From 14af775f157f876063fe32a204f6dc383c4e0eef Mon Sep 17 00:00:00 2001 From: tslee Date: Mon, 18 May 2026 17:31:02 +0900 Subject: [PATCH] fix(review): reduce portal warnings --- .husky/pre-commit | 5 - package-lock.json | 515 --------------------- package.json | 8 - src/ui/components/ProgressIndicator.ts | 16 +- src/ui/settings/base/CommonUIComponents.ts | 6 +- src/ui/styles/file-picker.css | 12 +- src/ui/styles/progress.css | 417 +---------------- styles.css | 437 +---------------- styles/provider-settings.css | 8 +- 9 files changed, 42 insertions(+), 1382 deletions(-) diff --git a/.husky/pre-commit b/.husky/pre-commit index 69ac5ba..9c9f69b 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,6 +1 @@ -#!/usr/bin/env sh -. "$(dirname -- "$0")/_/husky.sh" - -# Run lint-staged for incremental checks on staged files -npx lint-staged npm run format:check diff --git a/package-lock.json b/package-lock.json index 7a4d3e4..9f487b6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,6 @@ "@types/node": "^16.18.126", "@typescript-eslint/eslint-plugin": "^7.18.0", "@typescript-eslint/parser": "^7.18.0", - "builtin-modules": "^3.3.0", "conventional-changelog-conventionalcommits": "^9.1.0", "esbuild": "0.25.0", "eslint": "^8.42.0", @@ -37,7 +36,6 @@ "jest-serializer-html": "^7.1.0", "jest-sonar-reporter": "^2.0.0", "jest-watch-typeahead": "^2.2.2", - "lint-staged": "^16.2.7", "obsidian": "latest", "prettier": "^2.8.8", "semantic-release": "^25.0.2", @@ -4947,19 +4945,6 @@ "dev": true, "license": "MIT" }, - "node_modules/builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/call-bind": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", @@ -5111,22 +5096,6 @@ "node": ">=6" } }, - "node_modules/cli-cursor": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", - "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cli-highlight": { "version": "2.1.11", "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz", @@ -5213,69 +5182,6 @@ "@colors/colors": "1.5.0" } }, - "node_modules/cli-truncate": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-5.1.1.tgz", - "integrity": "sha512-SroPvNHxUnk+vIW/dOSfNqdy1sPEFkrTk6TUtqLCnBlo3N7TNYYkzzN7uSD6+jVjrdO4+p8nH7JzH6cIvUem6A==", - "dev": true, - "license": "MIT", - "dependencies": { - "slice-ansi": "^7.1.0", - "string-width": "^8.0.0" - }, - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate/node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/cli-truncate/node_modules/string-width": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.1.0.tgz", - "integrity": "sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-east-asian-width": "^1.3.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate/node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -5329,23 +5235,6 @@ "dev": true, "license": "MIT" }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/commander": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.2.tgz", - "integrity": "sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=20" - } - }, "node_modules/compare-func": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", @@ -7394,13 +7283,6 @@ "node": ">=0.10.0" } }, - "node_modules/eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", - "dev": true, - "license": "MIT" - }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", @@ -10549,134 +10431,6 @@ "dev": true, "license": "MIT" }, - "node_modules/lint-staged": { - "version": "16.2.7", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-16.2.7.tgz", - "integrity": "sha512-lDIj4RnYmK7/kXMya+qJsmkRFkGolciXjrsZ6PC25GdTfWOAWetR0ZbsNXRAj1EHHImRSalc+whZFg56F5DVow==", - "dev": true, - "license": "MIT", - "dependencies": { - "commander": "^14.0.2", - "listr2": "^9.0.5", - "micromatch": "^4.0.8", - "nano-spawn": "^2.0.0", - "pidtree": "^0.6.0", - "string-argv": "^0.3.2", - "yaml": "^2.8.1" - }, - "bin": { - "lint-staged": "bin/lint-staged.js" - }, - "engines": { - "node": ">=20.17" - }, - "funding": { - "url": "https://opencollective.com/lint-staged" - } - }, - "node_modules/listr2": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-9.0.5.tgz", - "integrity": "sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==", - "dev": true, - "license": "MIT", - "dependencies": { - "cli-truncate": "^5.0.0", - "colorette": "^2.0.20", - "eventemitter3": "^5.0.1", - "log-update": "^6.1.0", - "rfdc": "^1.4.1", - "wrap-ansi": "^9.0.0" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/listr2/node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/listr2/node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/listr2/node_modules/emoji-regex": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", - "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", - "dev": true, - "license": "MIT" - }, - "node_modules/listr2/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/listr2/node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/listr2/node_modules/wrap-ansi": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", - "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", @@ -10845,127 +10599,6 @@ "dev": true, "license": "MIT" }, - "node_modules/log-update": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", - "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-escapes": "^7.0.0", - "cli-cursor": "^5.0.0", - "slice-ansi": "^7.1.0", - "strip-ansi": "^7.1.0", - "wrap-ansi": "^9.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/ansi-escapes": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.2.0.tgz", - "integrity": "sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "environment": "^1.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/log-update/node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-update/node_modules/emoji-regex": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", - "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", - "dev": true, - "license": "MIT" - }, - "node_modules/log-update/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/log-update/node_modules/wrap-ansi": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", - "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -11210,19 +10843,6 @@ "node": ">=6" } }, - "node_modules/mimic-function": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", - "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/min-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", @@ -11305,19 +10925,6 @@ "thenify-all": "^1.0.0" } }, - "node_modules/nano-spawn": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/nano-spawn/-/nano-spawn-2.0.0.tgz", - "integrity": "sha512-tacvGzUY5o2D8CBh2rrwxyNojUsZNU2zjNTzKQrkgGJQTbGAfArVWXSKMBokBeeg6C7OLRGUEyoFlYbfeWQIqw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=20.17" - }, - "funding": { - "url": "https://github.com/sindresorhus/nano-spawn?sponsor=1" - } - }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -13978,19 +13585,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pidtree": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", - "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", - "dev": true, - "license": "MIT", - "bin": { - "pidtree": "bin/pidtree.js" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", @@ -14689,52 +14283,6 @@ "node": ">=10" } }, - "node_modules/restore-cursor": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", - "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", - "dev": true, - "license": "MIT", - "dependencies": { - "onetime": "^7.0.0", - "signal-exit": "^4.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/restore-cursor/node_modules/onetime": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", - "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-function": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/restore-cursor/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", @@ -14756,13 +14304,6 @@ "node": ">=0.10.0" } }, - "node_modules/rfdc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", - "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", - "dev": true, - "license": "MIT" - }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -15638,52 +15179,6 @@ "node": ">=8" } }, - "node_modules/slice-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.2.tgz", - "integrity": "sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "is-fullwidth-code-point": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz", - "integrity": "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-east-asian-width": "^1.3.1" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -15863,16 +15358,6 @@ "safe-buffer": "~5.2.0" } }, - "node_modules/string-argv": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", - "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6.19" - } - }, "node_modules/string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", diff --git a/package.json b/package.json index b563911..1c830f2 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,6 @@ "@types/node": "^16.18.126", "@typescript-eslint/eslint-plugin": "^7.18.0", "@typescript-eslint/parser": "^7.18.0", - "builtin-modules": "^3.3.0", "conventional-changelog-conventionalcommits": "^9.1.0", "esbuild": "0.25.0", "eslint": "^8.42.0", @@ -78,18 +77,11 @@ "jest-serializer-html": "^7.1.0", "jest-sonar-reporter": "^2.0.0", "jest-watch-typeahead": "^2.2.2", - "lint-staged": "^16.2.7", "obsidian": "latest", "prettier": "^2.8.8", "semantic-release": "^25.0.2", "ts-jest": "^29.1.0", "tslib": "^2.4.0", "typescript": "^4.9.5" - }, - "lint-staged": { - "*.ts": [ - "eslint --fix", - "prettier --write" - ] } } diff --git a/src/ui/components/ProgressIndicator.ts b/src/ui/components/ProgressIndicator.ts index bbdd771..777a409 100644 --- a/src/ui/components/ProgressIndicator.ts +++ b/src/ui/components/ProgressIndicator.ts @@ -55,13 +55,13 @@ export class ProgressIndicator { spinner.appendChild(this.getSpinnerElement()); // 진행률 바 컨테이너 - const barContainer = content.createDiv('sn-progress-bar-container'); + const barContainer = content.createDiv('sn-inline-progress-bar-container'); barContainer.addClass('sn-hidden'); // 진행률 바 - const progressBar = barContainer.createDiv('sn-progress-bar'); - progressBar.createDiv('sn-progress-fill'); - const progressText = progressBar.createDiv('sn-progress-text'); + const progressBar = barContainer.createDiv('sn-inline-progress-bar'); + progressBar.createDiv('sn-inline-progress-fill'); + const progressText = progressBar.createDiv('sn-inline-progress-text'); progressText.setText('0%'); // 메시지 @@ -104,7 +104,9 @@ export class ProgressIndicator { } // 진행률 바 표시/숨김 - const barContainer = this.progressElement.querySelector('.sn-progress-bar-container'); + const barContainer = this.progressElement.querySelector( + '.sn-inline-progress-bar-container' + ); const spinner = this.progressElement.querySelector('.sn-progress-spinner'); if (showProgressBar) { @@ -163,8 +165,8 @@ export class ProgressIndicator { this.currentProgress = Math.min(100, Math.max(0, progress)); // 진행률 바 업데이트 - const progressFill = this.progressElement.querySelector('.sn-progress-fill'); - const progressText = this.progressElement.querySelector('.sn-progress-text'); + const progressFill = this.progressElement.querySelector('.sn-inline-progress-fill'); + const progressText = this.progressElement.querySelector('.sn-inline-progress-text'); if (progressFill instanceof HTMLElement && progressText instanceof HTMLElement) { progressFill.setAttribute('style', `--sn-progress-width:${this.currentProgress}%`); diff --git a/src/ui/settings/base/CommonUIComponents.ts b/src/ui/settings/base/CommonUIComponents.ts index 36ef451..ddbff07 100644 --- a/src/ui/settings/base/CommonUIComponents.ts +++ b/src/ui/settings/base/CommonUIComponents.ts @@ -53,7 +53,7 @@ export class UIComponentFactory { } const progressBar = progressContainer.createDiv({ - cls: 'sn-progress-bar', + cls: 'sn-inline-progress-bar', attr: { role: 'progressbar', 'aria-valuenow': String(value), @@ -64,7 +64,7 @@ export class UIComponentFactory { }); const progressFill = progressBar.createDiv({ - cls: 'sn-progress-fill', + cls: 'sn-inline-progress-fill', attr: { style: `width: ${(value / max) * 100}%`, }, @@ -73,7 +73,7 @@ export class UIComponentFactory { // 접근성을 위한 텍스트 progressFill.createSpan({ text: `${Math.round((value / max) * 100)}%`, - cls: 'sn-progress-text', + cls: 'sn-inline-progress-text', }); return progressContainer; diff --git a/src/ui/styles/file-picker.css b/src/ui/styles/file-picker.css index 7dc8432..18373bd 100644 --- a/src/ui/styles/file-picker.css +++ b/src/ui/styles/file-picker.css @@ -564,11 +564,11 @@ } } -.sn-progress-bar-container { +.sn-inline-progress-bar-container { margin: 20px 0; } -.sn-progress-bar { +.sn-inline-progress-bar { height: 20px; background: var(--background-modifier-border); border-radius: 10px; @@ -576,21 +576,21 @@ position: relative; } -.sn-progress-fill { +.sn-inline-progress-fill { height: 100%; background: var(--interactive-accent); transition: width 0.3s ease; } -.sn-progress-fill.sn-is-warning { +.sn-inline-progress-fill.sn-is-warning { background: var(--text-warning); } -.sn-progress-fill.sn-is-success { +.sn-inline-progress-fill.sn-is-success { background: var(--text-success); } -.sn-progress-text { +.sn-inline-progress-text { position: absolute; top: 50%; left: 50%; diff --git a/src/ui/styles/progress.css b/src/ui/styles/progress.css index f29c623..d57ea9c 100644 --- a/src/ui/styles/progress.css +++ b/src/ui/styles/progress.css @@ -44,213 +44,6 @@ --sn-color-info: #5e81ac; } -/* ===== 로딩 인디케이터 ===== */ - -/* 스피너 */ -.sn-loading-spinner { - display: inline-flex; - flex-direction: column; - align-items: center; - gap: var(--sn-spacing-sm); -} - -.sn-loading-spinner svg { - color: var(--sn-color-primary); -} - -.sn-loading-spinner--small svg { - width: 20px; - height: 20px; -} - -.sn-loading-spinner--medium svg { - width: 40px; - height: 40px; -} - -.sn-loading-spinner--large svg { - width: 60px; - height: 60px; -} - -@keyframes sn-progress-spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} - -/* 펄스 로더 */ -.sn-loading-pulse { - display: inline-flex; - align-items: center; - gap: var(--sn-spacing-xs); -} - -.sn-pulse-dot { - width: 8px; - height: 8px; - border-radius: 50%; - background-color: var(--sn-color-primary); - animation: sn-progress-pulse 1.5s ease-in-out infinite; -} - -.sn-pulse-dot--1 { - animation-delay: 0s; -} - -.sn-pulse-dot--2 { - animation-delay: 0.15s; -} - -.sn-pulse-dot--3 { - animation-delay: 0.3s; -} - -@keyframes sn-progress-pulse { - 0%, - 80%, - 100% { - opacity: 0.3; - transform: scale(1); - } - 40% { - opacity: 1; - transform: scale(1.2); - } -} - -/* 스켈레톤 로더 */ -.sn-loading-skeleton { - width: 100%; -} - -.sn-skeleton-line { - height: 20px; - background: linear-gradient( - 90deg, - var(--background-secondary) 25%, - var(--background-modifier-border) 50%, - var(--background-secondary) 75% - ); - background-size: 200% 100%; - border-radius: 4px; -} - -.sn-skeleton-animated { - animation: sn-progress-skeleton-loading 1.5s ease-in-out infinite; -} - -.sn-loading-skeleton .sn-skeleton-line:last-child { - width: 70%; -} - -.sn-loading-skeleton--height-sm .sn-skeleton-line { - height: 14px; -} - -.sn-loading-skeleton--height-md .sn-skeleton-line { - height: 20px; -} - -.sn-loading-skeleton--height-lg .sn-skeleton-line { - height: 28px; -} - -.sn-loading-skeleton--spacing-none .sn-skeleton-line:not(:last-child) { - margin-bottom: 0; -} - -.sn-loading-skeleton--spacing-sm .sn-skeleton-line:not(:last-child) { - margin-bottom: 6px; -} - -.sn-loading-skeleton--spacing-md .sn-skeleton-line:not(:last-child) { - margin-bottom: 10px; -} - -.sn-loading-skeleton--spacing-lg .sn-skeleton-line:not(:last-child) { - margin-bottom: 16px; -} - -@keyframes sn-progress-skeleton-loading { - 0% { - background-position: 200% 0; - } - 100% { - background-position: -200% 0; - } -} - -/* 도트 로더 */ -.sn-loading-dots { - display: inline-flex; - flex-direction: column; - align-items: center; - gap: var(--sn-spacing-sm); -} - -.sn-dots-container { - display: flex; - gap: var(--sn-spacing-xs); -} - -.sn-dots-container .sn-dot { - display: inline-block; - width: 8px; - height: 8px; - border-radius: 50%; - background-color: var(--sn-color-primary); - animation: sn-progress-dot-bounce 1.4s ease-in-out infinite both; -} - -.sn-dots-container .sn-dot:nth-child(1) { - animation-delay: -0.32s; -} -.sn-dots-container .sn-dot:nth-child(2) { - animation-delay: -0.16s; -} - -@keyframes sn-progress-dot-bounce { - 0%, - 80%, - 100% { - transform: scale(0.8); - opacity: 0.5; - } - 40% { - transform: scale(1); - opacity: 1; - } -} - -/* 상태 아이콘 */ -.sn-status-icon { - display: inline-flex; - align-items: center; - gap: var(--sn-spacing-sm); -} - -.sn-status-icon__icon svg { - width: 24px; - height: 24px; -} - -.sn-status-icon--success { - color: var(--sn-color-success); -} -.sn-status-icon--error { - color: var(--sn-color-error); -} -.sn-status-icon--warning { - color: var(--sn-color-warning); -} -.sn-status-icon--info { - color: var(--sn-color-info); -} - /* ===== 진행률 바 ===== */ .sn-progress-bar { @@ -323,7 +116,7 @@ /* Indeterminate 모드 */ .sn-progress-bar__fill--indeterminate { - width: 30% !important; + width: 30%; animation: sn-progress-indeterminate 1.5s ease-in-out infinite; } @@ -420,194 +213,7 @@ /* ===== 알림 시스템 ===== */ -/* Toast 알림 */ -.sn-toast-container { - position: fixed; - z-index: 10000; - display: flex; - flex-direction: column; - gap: var(--sn-spacing-sm); - padding: var(--sn-spacing-md); - pointer-events: none; -} - -.sn-toast-container--top-right { - top: 0; - right: 0; - align-items: flex-end; -} - -.sn-toast-container--top-left { - top: 0; - left: 0; - align-items: flex-start; -} - -.sn-toast-container--bottom-right { - bottom: 0; - right: 0; - align-items: flex-end; -} - -.sn-toast-container--bottom-left { - bottom: 0; - left: 0; - align-items: flex-start; -} - -.sn-toast-container--top-center { - top: 0; - left: 50%; - transform: translateX(-50%); - align-items: center; -} - -.sn-toast-container--bottom-center { - bottom: 0; - left: 50%; - transform: translateX(-50%); - align-items: center; -} - -.sn-toast { - display: flex; - align-items: flex-start; - gap: var(--sn-spacing-sm); - min-width: 300px; - max-width: 500px; - padding: var(--sn-spacing-md); - background-color: var(--sn-bg-primary); - border-radius: 8px; - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); - pointer-events: auto; - opacity: 0; - transform: translateY(-20px); - transition: all var(--sn-transition-normal); -} - -.sn-toast--show { - opacity: 1; - transform: translateY(0); -} - -.sn-toast--hide { - opacity: 0; - transform: translateY(-20px); -} - -.sn-toast--success { - border-left: 4px solid var(--sn-color-success); -} - -.sn-toast--error { - border-left: 4px solid var(--sn-color-error); -} - -.sn-toast--warning { - border-left: 4px solid var(--sn-color-warning); -} - -.sn-toast--info { - border-left: 4px solid var(--sn-color-info); -} - -.sn-toast__icon { - flex-shrink: 0; -} - -.sn-toast__content { - flex: 1; -} - -.sn-toast__title { - font-weight: 600; - margin-bottom: var(--sn-spacing-xs); - color: var(--sn-text-primary); -} - -.sn-toast__message { - color: var(--sn-text-secondary); - line-height: 1.5; -} - -.sn-toast__progress { - margin-top: var(--sn-spacing-sm); - height: 3px; - background-color: var(--background-modifier-border); - border-radius: 2px; - overflow: hidden; -} - -.sn-toast__progress-fill { - height: 100%; - background-color: var(--sn-color-primary); - transition: width var(--sn-transition-normal); -} - -.sn-toast__actions { - display: flex; - gap: var(--sn-spacing-sm); - margin-top: var(--sn-spacing-sm); -} - -.sn-toast__action { - padding: var(--sn-spacing-xs) var(--sn-spacing-sm); - background: none; - border: none; - color: var(--sn-color-primary); - cursor: pointer; - font-size: 0.9em; - transition: opacity var(--sn-transition-fast); -} - -.sn-toast__action:hover { - opacity: 0.8; -} - -.sn-toast__action--primary { - background-color: var(--sn-color-primary); - color: var(--sn-text-on-primary); - border-radius: 4px; -} - -.sn-toast__action--secondary { - border: 1px solid var(--background-modifier-border); - border-radius: 4px; -} - -.sn-toast__close { - position: absolute; - top: var(--sn-spacing-sm); - right: var(--sn-spacing-sm); - width: 24px; - height: 24px; - background: none; - border: none; - color: var(--text-muted); - cursor: pointer; - font-size: 20px; - line-height: 1; - opacity: 0.5; - transition: opacity var(--sn-transition-fast); -} - -.sn-toast__close:hover { - opacity: 1; -} - /* 모달 알림 */ -.sn-modal-overlay { - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: var(--sn-bg-overlay); - z-index: 9998; - opacity: 0; - transition: opacity var(--sn-transition-normal); -} - .sn-modal-overlay--show { opacity: 1; } @@ -1186,19 +792,6 @@ /* ===== 접근성 ===== */ -/* 스크린 리더 전용 */ -.sn-sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - white-space: nowrap; - border: 0; -} - /* 포커스 스타일 */ button:focus-visible, select:focus-visible, @@ -1214,10 +807,10 @@ textarea:focus-visible, *, *::before, *::after { - animation-duration: 0.01ms !important; - animation-iteration-count: 1 !important; - transition-duration: 0.01ms !important; - scroll-behavior: auto !important; + animation-duration: 0.01ms; + animation-iteration-count: 1; + transition-duration: 0.01ms; + scroll-behavior: auto; } } diff --git a/styles.css b/styles.css index d598202..7f673dd 100644 --- a/styles.css +++ b/styles.css @@ -564,11 +564,11 @@ } } -.sn-progress-bar-container { +.sn-inline-progress-bar-container { margin: 20px 0; } -.sn-progress-bar { +.sn-inline-progress-bar { height: 20px; background: var(--background-modifier-border); border-radius: 10px; @@ -576,21 +576,21 @@ position: relative; } -.sn-progress-fill { +.sn-inline-progress-fill { height: 100%; background: var(--interactive-accent); transition: width 0.3s ease; } -.sn-progress-fill.sn-is-warning { +.sn-inline-progress-fill.sn-is-warning { background: var(--text-warning); } -.sn-progress-fill.sn-is-success { +.sn-inline-progress-fill.sn-is-success { background: var(--text-success); } -.sn-progress-text { +.sn-inline-progress-text { position: absolute; top: 50%; left: 50%; @@ -1363,213 +1363,6 @@ --sn-color-info: #5e81ac; } -/* ===== 로딩 인디케이터 ===== */ - -/* 스피너 */ -.sn-loading-spinner { - display: inline-flex; - flex-direction: column; - align-items: center; - gap: var(--sn-spacing-sm); -} - -.sn-loading-spinner svg { - color: var(--sn-color-primary); -} - -.sn-loading-spinner--small svg { - width: 20px; - height: 20px; -} - -.sn-loading-spinner--medium svg { - width: 40px; - height: 40px; -} - -.sn-loading-spinner--large svg { - width: 60px; - height: 60px; -} - -@keyframes sn-progress-spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} - -/* 펄스 로더 */ -.sn-loading-pulse { - display: inline-flex; - align-items: center; - gap: var(--sn-spacing-xs); -} - -.sn-pulse-dot { - width: 8px; - height: 8px; - border-radius: 50%; - background-color: var(--sn-color-primary); - animation: sn-progress-pulse 1.5s ease-in-out infinite; -} - -.sn-pulse-dot--1 { - animation-delay: 0s; -} - -.sn-pulse-dot--2 { - animation-delay: 0.15s; -} - -.sn-pulse-dot--3 { - animation-delay: 0.3s; -} - -@keyframes sn-progress-pulse { - 0%, - 80%, - 100% { - opacity: 0.3; - transform: scale(1); - } - 40% { - opacity: 1; - transform: scale(1.2); - } -} - -/* 스켈레톤 로더 */ -.sn-loading-skeleton { - width: 100%; -} - -.sn-skeleton-line { - height: 20px; - background: linear-gradient( - 90deg, - var(--background-secondary) 25%, - var(--background-modifier-border) 50%, - var(--background-secondary) 75% - ); - background-size: 200% 100%; - border-radius: 4px; -} - -.sn-skeleton-animated { - animation: sn-progress-skeleton-loading 1.5s ease-in-out infinite; -} - -.sn-loading-skeleton .sn-skeleton-line:last-child { - width: 70%; -} - -.sn-loading-skeleton--height-sm .sn-skeleton-line { - height: 14px; -} - -.sn-loading-skeleton--height-md .sn-skeleton-line { - height: 20px; -} - -.sn-loading-skeleton--height-lg .sn-skeleton-line { - height: 28px; -} - -.sn-loading-skeleton--spacing-none .sn-skeleton-line:not(:last-child) { - margin-bottom: 0; -} - -.sn-loading-skeleton--spacing-sm .sn-skeleton-line:not(:last-child) { - margin-bottom: 6px; -} - -.sn-loading-skeleton--spacing-md .sn-skeleton-line:not(:last-child) { - margin-bottom: 10px; -} - -.sn-loading-skeleton--spacing-lg .sn-skeleton-line:not(:last-child) { - margin-bottom: 16px; -} - -@keyframes sn-progress-skeleton-loading { - 0% { - background-position: 200% 0; - } - 100% { - background-position: -200% 0; - } -} - -/* 도트 로더 */ -.sn-loading-dots { - display: inline-flex; - flex-direction: column; - align-items: center; - gap: var(--sn-spacing-sm); -} - -.sn-dots-container { - display: flex; - gap: var(--sn-spacing-xs); -} - -.sn-dots-container .sn-dot { - display: inline-block; - width: 8px; - height: 8px; - border-radius: 50%; - background-color: var(--sn-color-primary); - animation: sn-progress-dot-bounce 1.4s ease-in-out infinite both; -} - -.sn-dots-container .sn-dot:nth-child(1) { - animation-delay: -0.32s; -} -.sn-dots-container .sn-dot:nth-child(2) { - animation-delay: -0.16s; -} - -@keyframes sn-progress-dot-bounce { - 0%, - 80%, - 100% { - transform: scale(0.8); - opacity: 0.5; - } - 40% { - transform: scale(1); - opacity: 1; - } -} - -/* 상태 아이콘 */ -.sn-status-icon { - display: inline-flex; - align-items: center; - gap: var(--sn-spacing-sm); -} - -.sn-status-icon__icon svg { - width: 24px; - height: 24px; -} - -.sn-status-icon--success { - color: var(--sn-color-success); -} -.sn-status-icon--error { - color: var(--sn-color-error); -} -.sn-status-icon--warning { - color: var(--sn-color-warning); -} -.sn-status-icon--info { - color: var(--sn-color-info); -} - /* ===== 진행률 바 ===== */ .sn-progress-bar { @@ -1642,7 +1435,7 @@ /* Indeterminate 모드 */ .sn-progress-bar__fill--indeterminate { - width: 30% !important; + width: 30%; animation: sn-progress-indeterminate 1.5s ease-in-out infinite; } @@ -1739,194 +1532,7 @@ /* ===== 알림 시스템 ===== */ -/* Toast 알림 */ -.sn-toast-container { - position: fixed; - z-index: 10000; - display: flex; - flex-direction: column; - gap: var(--sn-spacing-sm); - padding: var(--sn-spacing-md); - pointer-events: none; -} - -.sn-toast-container--top-right { - top: 0; - right: 0; - align-items: flex-end; -} - -.sn-toast-container--top-left { - top: 0; - left: 0; - align-items: flex-start; -} - -.sn-toast-container--bottom-right { - bottom: 0; - right: 0; - align-items: flex-end; -} - -.sn-toast-container--bottom-left { - bottom: 0; - left: 0; - align-items: flex-start; -} - -.sn-toast-container--top-center { - top: 0; - left: 50%; - transform: translateX(-50%); - align-items: center; -} - -.sn-toast-container--bottom-center { - bottom: 0; - left: 50%; - transform: translateX(-50%); - align-items: center; -} - -.sn-toast { - display: flex; - align-items: flex-start; - gap: var(--sn-spacing-sm); - min-width: 300px; - max-width: 500px; - padding: var(--sn-spacing-md); - background-color: var(--sn-bg-primary); - border-radius: 8px; - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); - pointer-events: auto; - opacity: 0; - transform: translateY(-20px); - transition: all var(--sn-transition-normal); -} - -.sn-toast--show { - opacity: 1; - transform: translateY(0); -} - -.sn-toast--hide { - opacity: 0; - transform: translateY(-20px); -} - -.sn-toast--success { - border-left: 4px solid var(--sn-color-success); -} - -.sn-toast--error { - border-left: 4px solid var(--sn-color-error); -} - -.sn-toast--warning { - border-left: 4px solid var(--sn-color-warning); -} - -.sn-toast--info { - border-left: 4px solid var(--sn-color-info); -} - -.sn-toast__icon { - flex-shrink: 0; -} - -.sn-toast__content { - flex: 1; -} - -.sn-toast__title { - font-weight: 600; - margin-bottom: var(--sn-spacing-xs); - color: var(--sn-text-primary); -} - -.sn-toast__message { - color: var(--sn-text-secondary); - line-height: 1.5; -} - -.sn-toast__progress { - margin-top: var(--sn-spacing-sm); - height: 3px; - background-color: var(--background-modifier-border); - border-radius: 2px; - overflow: hidden; -} - -.sn-toast__progress-fill { - height: 100%; - background-color: var(--sn-color-primary); - transition: width var(--sn-transition-normal); -} - -.sn-toast__actions { - display: flex; - gap: var(--sn-spacing-sm); - margin-top: var(--sn-spacing-sm); -} - -.sn-toast__action { - padding: var(--sn-spacing-xs) var(--sn-spacing-sm); - background: none; - border: none; - color: var(--sn-color-primary); - cursor: pointer; - font-size: 0.9em; - transition: opacity var(--sn-transition-fast); -} - -.sn-toast__action:hover { - opacity: 0.8; -} - -.sn-toast__action--primary { - background-color: var(--sn-color-primary); - color: var(--sn-text-on-primary); - border-radius: 4px; -} - -.sn-toast__action--secondary { - border: 1px solid var(--background-modifier-border); - border-radius: 4px; -} - -.sn-toast__close { - position: absolute; - top: var(--sn-spacing-sm); - right: var(--sn-spacing-sm); - width: 24px; - height: 24px; - background: none; - border: none; - color: var(--text-muted); - cursor: pointer; - font-size: 20px; - line-height: 1; - opacity: 0.5; - transition: opacity var(--sn-transition-fast); -} - -.sn-toast__close:hover { - opacity: 1; -} - /* 모달 알림 */ -.sn-modal-overlay { - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: var(--sn-bg-overlay); - z-index: 9998; - opacity: 0; - transition: opacity var(--sn-transition-normal); -} - .sn-modal-overlay--show { opacity: 1; } @@ -2505,19 +2111,6 @@ /* ===== 접근성 ===== */ -/* 스크린 리더 전용 */ -.sn-sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - white-space: nowrap; - border: 0; -} - /* 포커스 스타일 */ button:focus-visible, select:focus-visible, @@ -2533,10 +2126,10 @@ textarea:focus-visible, *, *::before, *::after { - animation-duration: 0.01ms !important; - animation-iteration-count: 1 !important; - transition-duration: 0.01ms !important; - scroll-behavior: auto !important; + animation-duration: 0.01ms; + animation-iteration-count: 1; + transition-duration: 0.01ms; + scroll-behavior: auto; } } @@ -2806,19 +2399,19 @@ textarea:focus-visible, /* === Stat Value Colors === */ .speech-to-text-settings .sn-stat-excellent { - color: var(--interactive-success) !important; + color: var(--interactive-success); } .speech-to-text-settings .sn-stat-good { - color: var(--text-accent) !important; + color: var(--text-accent); } .speech-to-text-settings .sn-stat-fair { - color: var(--text-warning) !important; + color: var(--text-warning); } .speech-to-text-settings .sn-stat-poor { - color: var(--text-error) !important; + color: var(--text-error); } /* === Comparison Chart === */ diff --git a/styles/provider-settings.css b/styles/provider-settings.css index 3e6367c..c912c3b 100644 --- a/styles/provider-settings.css +++ b/styles/provider-settings.css @@ -207,19 +207,19 @@ /* === Stat Value Colors === */ .speech-to-text-settings .sn-stat-excellent { - color: var(--interactive-success) !important; + color: var(--interactive-success); } .speech-to-text-settings .sn-stat-good { - color: var(--text-accent) !important; + color: var(--text-accent); } .speech-to-text-settings .sn-stat-fair { - color: var(--text-warning) !important; + color: var(--text-warning); } .speech-to-text-settings .sn-stat-poor { - color: var(--text-error) !important; + color: var(--text-error); } /* === Comparison Chart === */