From c0823e8d6de94ea902886bd32f04664a8fc4ad7a Mon Sep 17 00:00:00 2001 From: Jimmy Ben Klieve Date: Fri, 27 Feb 2026 22:26:19 +0800 Subject: [PATCH] refactor: update chat ui (#13269) ### What problem does this PR solve? Update **Chat** UI: - Align to the design. - Update `` visualizer logic. - Fix keyboard navigation issue. ### Type of change - [x] Refactoring --- web/package-lock.json | 163 +++++-------- web/package.json | 8 +- web/src/components/avatar-upload.tsx | 41 ++-- web/src/components/confirm-delete-dialog.tsx | 87 ++++--- web/src/components/copy-to-clipboard.tsx | 31 ++- web/src/components/message-input/next.tsx | 58 ++--- .../components/message-item/group-button.tsx | 138 ++++++----- .../components/message-item/index.module.less | 1 + web/src/components/more-button.tsx | 5 +- web/src/components/ui/audio-button.tsx | 184 +++++++------- web/src/components/ui/breadcrumb.tsx | 5 +- web/src/components/ui/button-group.tsx | 83 +++++++ web/src/components/ui/button.tsx | 15 +- web/src/components/ui/dual-range-slider.tsx | 12 +- web/src/components/ui/slider.tsx | 30 ++- web/src/locales/en.ts | 2 +- .../chat/app-settings/chat-settings.tsx | 45 ++-- .../chat/app-settings/dynamic-variable.tsx | 51 ++-- .../chat/chat-box/next-multiple-chat-box.tsx | 15 +- .../chat/chat-box/single-chat-box.tsx | 118 ++++----- web/src/pages/next-chats/chat/index.tsx | 51 ++-- web/src/pages/next-chats/chat/sessions.tsx | 229 +++++++++--------- .../next-chats/hooks/use-send-chat-message.ts | 15 +- 23 files changed, 785 insertions(+), 602 deletions(-) create mode 100644 web/src/components/ui/button-group.tsx diff --git a/web/package-lock.json b/web/package-lock.json index e06dbdaa8d..3e15ca0f96 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -34,9 +34,9 @@ "@radix-ui/react-radio-group": "^1.2.3", "@radix-ui/react-scroll-area": "^1.2.2", "@radix-ui/react-select": "2.1.4", - "@radix-ui/react-separator": "^1.1.0", + "@radix-ui/react-separator": "^1.1.8", "@radix-ui/react-slider": "^1.2.1", - "@radix-ui/react-slot": "^1.1.0", + "@radix-ui/react-slot": "^1.2.4", "@radix-ui/react-switch": "^1.1.1", "@radix-ui/react-tabs": "^1.1.1", "@radix-ui/react-toast": "^1.2.6", @@ -56,7 +56,7 @@ "ajv-formats": "^3.0.1", "antd": "^5.12.7", "axios": "^1.12.0", - "class-variance-authority": "^0.7.0", + "class-variance-authority": "^0.7.1", "classnames": "^2.5.1", "clsx": "^2.1.1", "cmdk": "^1.0.4", @@ -105,7 +105,7 @@ "remark-gfm": "^4.0.0", "remark-math": "^6.0.0", "sonner": "^1.7.4", - "tailwind-merge": "^2.5.4", + "tailwind-merge": "^2.6.1", "tailwind-scrollbar": "^3.1.0", "tailwindcss-animate": "^1.0.7", "umi-request": "^1.4.0", @@ -915,6 +915,7 @@ "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.5", @@ -1678,6 +1679,7 @@ "resolved": "https://registry.npmmirror.com/@dnd-kit/core/-/core-6.3.1.tgz", "integrity": "sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==", "license": "MIT", + "peer": true, "dependencies": { "@dnd-kit/accessibility": "^3.1.1", "@dnd-kit/utilities": "^3.2.2", @@ -1812,6 +1814,7 @@ "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.13.5", @@ -7949,6 +7952,7 @@ "dev": true, "hasInstallScript": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "@swc/counter": "^0.1.3", "@swc/types": "^0.1.25" @@ -8212,6 +8216,7 @@ "resolved": "https://registry.npmmirror.com/@tanstack/react-query/-/react-query-5.90.14.tgz", "integrity": "sha512-JAMuULej09hrZ14W9+mxoRZ44rR2BuZfCd6oKTQVNfynQxCN3muH3jh3W46gqZNw5ZqY0ZVaS43Imb3dMr6tgw==", "license": "MIT", + "peer": true, "dependencies": { "@tanstack/query-core": "5.90.14" }, @@ -8879,6 +8884,7 @@ "resolved": "https://registry.npmmirror.com/@types/node/-/node-24.10.4.tgz", "integrity": "sha512-vnDVpYPMzs4wunl27jHrfmwojOGKya0xyM3sH+UE5iv5uPS6vX7UIoh6m+vQc5LGBq52HBKPIn/zcSZVzeDEZg==", "license": "MIT", + "peer": true, "dependencies": { "undici-types": "~7.16.0" } @@ -8916,6 +8922,7 @@ "resolved": "https://registry.npmmirror.com/@types/react/-/react-18.3.27.tgz", "integrity": "sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==", "license": "MIT", + "peer": true, "dependencies": { "@types/prop-types": "*", "csstype": "^3.2.2" @@ -8937,6 +8944,7 @@ "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", "devOptional": true, "license": "MIT", + "peer": true, "peerDependencies": { "@types/react": "^18.0.0" } @@ -9089,6 +9097,7 @@ "integrity": "sha512-iIACsx8pxRnguSYhHiMn2PvhvfpopO9FXHyn1mG5txZIsAaB6F0KwbFnUQN3KCiG3Jcuad/Cao2FAs1Wp7vAyg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.52.0", "@typescript-eslint/types": "8.52.0", @@ -9519,7 +9528,6 @@ "integrity": "sha512-vXyI5GMfuoBCnv5ucIT7jhHKl55Y477yxP6fc4eUswjP8FG3FFVFd41eNDArR+Uk3QKn2Z85NavjaxLxOC19/w==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/parser": "^7.28.5", "@vue/shared": "3.5.26", @@ -9534,7 +9542,6 @@ "integrity": "sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ==", "dev": true, "license": "BSD-2-Clause", - "peer": true, "engines": { "node": ">=0.12" }, @@ -9547,8 +9554,7 @@ "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@vue/compiler-dom": { "version": "3.5.26", @@ -9556,7 +9562,6 @@ "integrity": "sha512-y1Tcd3eXs834QjswshSilCBnKGeQjQXB6PqFn/1nxcQw4pmG42G8lwz+FZPAZAby6gZeHSt/8LMPfZ4Rb+Bd/A==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@vue/compiler-core": "3.5.26", "@vue/shared": "3.5.26" @@ -9568,7 +9573,6 @@ "integrity": "sha512-egp69qDTSEZcf4bGOSsprUr4xI73wfrY5oRs6GSgXFTiHrWj4Y3X5Ydtip9QMqiCMCPVwLglB9GBxXtTadJ3mA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/parser": "^7.28.5", "@vue/compiler-core": "3.5.26", @@ -9586,8 +9590,7 @@ "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@vue/compiler-ssr": { "version": "3.5.26", @@ -9595,7 +9598,6 @@ "integrity": "sha512-lZT9/Y0nSIRUPVvapFJEVDbEXruZh2IYHMk2zTtEgJSlP5gVOqeWXH54xDKAaFS4rTnDeDBQUYDtxKyoW9FwDw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@vue/compiler-dom": "3.5.26", "@vue/shared": "3.5.26" @@ -9607,7 +9609,6 @@ "integrity": "sha512-9EnYB1/DIiUYYnzlnUBgwU32NNvLp/nhxLXeWRhHUEeWNTn1ECxX8aGO7RTXeX6PPcxe3LLuNBFoJbV4QZ+CFQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@vue/shared": "3.5.26" } @@ -9618,7 +9619,6 @@ "integrity": "sha512-xJWM9KH1kd201w5DvMDOwDHYhrdPTrAatn56oB/LRG4plEQeZRQLw0Bpwih9KYoqmzaxF0OKSn6swzYi84e1/Q==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@vue/reactivity": "3.5.26", "@vue/shared": "3.5.26" @@ -9630,7 +9630,6 @@ "integrity": "sha512-XLLd/+4sPC2ZkN/6+V4O4gjJu6kSDbHAChvsyWgm1oGbdSO3efvGYnm25yCjtFm/K7rrSDvSfPDgN1pHgS4VNQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@vue/reactivity": "3.5.26", "@vue/runtime-core": "3.5.26", @@ -9644,7 +9643,6 @@ "integrity": "sha512-TYKLXmrwWKSodyVuO1WAubucd+1XlLg4set0YoV+Hu8Lo79mp/YMwWV5mC5FgtsDxX3qo1ONrxFaTP1OQgy1uA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@vue/compiler-ssr": "3.5.26", "@vue/shared": "3.5.26" @@ -9658,8 +9656,7 @@ "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.26.tgz", "integrity": "sha512-7Z6/y3uFI5PRoKeorTOSXKcDj0MSasfNNltcslbFrPpcw6aXRUALq4IfJlaTRspiWIUOEZbrpM+iQGmCOiWe4A==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@webassemblyjs/ast": { "version": "1.14.1", @@ -9891,6 +9888,7 @@ "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.15.0.tgz", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -10011,6 +10009,7 @@ "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.17.1.tgz", "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -10124,6 +10123,7 @@ "resolved": "https://registry.npmmirror.com/antd/-/antd-5.29.3.tgz", "integrity": "sha512-3DdbGCa9tWAJGcCJ6rzR8EJFsv2CtyEbkVabZE14pfgUHfCicWCj0/QzQVLDYg8CPfQk9BH7fHCoTXHTy7MP/A==", "license": "MIT", + "peer": true, "dependencies": { "@ant-design/colors": "^7.2.1", "@ant-design/cssinjs": "^1.23.0", @@ -10774,7 +10774,6 @@ "resolved": "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "license": "MIT", - "peer": true, "engines": { "node": "*" } @@ -10845,6 +10844,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -12226,6 +12226,7 @@ "resolved": "https://registry.npmmirror.com/d3-selection/-/d3-selection-3.0.0.tgz", "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", "license": "ISC", + "peer": true, "engines": { "node": ">=12" } @@ -12394,6 +12395,7 @@ "resolved": "https://registry.npmmirror.com/date-fns/-/date-fns-4.1.0.tgz", "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", "license": "MIT", + "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/kossnocorp" @@ -12952,7 +12954,8 @@ "version": "8.6.0", "resolved": "https://registry.npmmirror.com/embla-carousel/-/embla-carousel-8.6.0.tgz", "integrity": "sha512-SjWyZBHJPbqxHOzckOfo8lHisEaJWmwd23XppYFYVh10bU66/Pn5tkVkbkCMZVdbUE5eTCI2nD8OyIP4Z+uwkA==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/embla-carousel-react": { "version": "8.6.0", @@ -13001,7 +13004,6 @@ "resolved": "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz", "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", "license": "MIT", - "peer": true, "engines": { "node": ">= 4" } @@ -13011,6 +13013,7 @@ "resolved": "https://registry.npmmirror.com/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "license": "MIT", + "peer": true, "dependencies": { "iconv-lite": "^0.6.2" } @@ -13326,6 +13329,7 @@ "dev": true, "hasInstallScript": true, "license": "MIT", + "peer": true, "bin": { "esbuild": "bin/esbuild" }, @@ -13436,6 +13440,7 @@ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -15810,6 +15815,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "@babel/runtime": "^7.23.2" } @@ -15883,6 +15889,7 @@ "resolved": "https://registry.npmmirror.com/immer/-/immer-10.2.0.tgz", "integrity": "sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==", "license": "MIT", + "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/immer" @@ -16164,7 +16171,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=4" } @@ -16680,7 +16686,6 @@ "resolved": "https://registry.npmmirror.com/isomorphic.js/-/isomorphic.js-0.2.5.tgz", "integrity": "sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw==", "license": "MIT", - "peer": true, "funding": { "type": "GitHub Sponsors ❤", "url": "https://github.com/sponsors/dmonad" @@ -18189,7 +18194,6 @@ "resolved": "https://registry.npmmirror.com/lib0/-/lib0-0.2.117.tgz", "integrity": "sha512-DeXj9X5xDCjgKLU/7RR+/HQEVzuuEUiwldwOGsHK/sfAfELGWEyTcf0x+uOvCvK3O2zPmZePXWL85vtia6GyZw==", "license": "MIT", - "peer": true, "dependencies": { "isomorphic.js": "^0.2.4" }, @@ -18837,7 +18841,6 @@ "resolved": "https://registry.npmmirror.com/marked/-/marked-14.0.0.tgz", "integrity": "sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ==", "license": "MIT", - "peer": true, "bin": { "marked": "bin/marked.js" }, @@ -20098,23 +20101,11 @@ "ml-array-rescale": "^1.3.7" } }, - "node_modules/moment": { - "version": "2.30.1", - "resolved": "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz", - "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": "*" - } - }, "node_modules/monaco-editor": { "version": "0.55.1", "resolved": "https://registry.npmmirror.com/monaco-editor/-/monaco-editor-0.55.1.tgz", "integrity": "sha512-jz4x+TJNFHwHtwuV9vA9rMujcZRb0CEilTEwG2rRSpe/A7Jdkuj8xPKttCgOh+v/lkHy7HsZ64oj+q3xoAFl9A==", "license": "MIT", - "peer": true, "dependencies": { "dompurify": "3.2.7", "marked": "14.0.0" @@ -20125,7 +20116,6 @@ "resolved": "https://registry.npmmirror.com/dompurify/-/dompurify-3.2.7.tgz", "integrity": "sha512-WhL/YuveyGXJaerVlMYGWhvQswa7myDG17P7Vu65EWC05o8vfeNbvNf4d/BOvH99+ZW+LlQsc1GDKMa1vNK6dw==", "license": "(MPL-2.0 OR Apache-2.0)", - "peer": true, "optionalDependencies": { "@types/trusted-types": "^2.0.7" } @@ -20136,7 +20126,6 @@ "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=4" } @@ -21133,6 +21122,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -21406,6 +21396,7 @@ "integrity": "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==", "dev": true, "license": "MIT", + "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -21778,6 +21769,7 @@ "resolved": "https://registry.npmmirror.com/rc-field-form/-/rc-field-form-2.7.1.tgz", "integrity": "sha512-vKeSifSJ6HoLaAB+B8aq/Qgm8a3dyxROzCtKNCsBQgiverpc4kWDQihoUwzUj+zNWJOykwSY4dNX3QrGwtVb9A==", "license": "MIT", + "peer": true, "dependencies": { "@babel/runtime": "^7.18.0", "@rc-component/async-validator": "^5.0.3", @@ -22319,6 +22311,7 @@ "resolved": "https://registry.npmmirror.com/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -22457,6 +22450,7 @@ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -22768,6 +22762,7 @@ "resolved": "https://registry.npmmirror.com/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -22846,6 +22841,7 @@ "resolved": "https://registry.npmmirror.com/react-hook-form/-/react-hook-form-7.69.0.tgz", "integrity": "sha512-yt6ZGME9f4F6WHwevrvpAjh42HMvocuSnSIHUGycBqXIJdhqGSPQzTpGF+1NLREk/58IdPxEMfPcFCjlMhclGw==", "license": "MIT", + "peer": true, "engines": { "node": ">=18.0.0" }, @@ -23057,6 +23053,7 @@ "resolved": "https://registry.npmmirror.com/react-router/-/react-router-7.11.0.tgz", "integrity": "sha512-uI4JkMmjbWCZc01WVP2cH7ZfSzH91JAZUDd7/nIprDgWxBV1TkkmLToFh7EbMTcMak8URFRa2YoBL/W8GWnCTQ==", "license": "MIT", + "peer": true, "dependencies": { "cookie": "^1.0.1", "set-cookie-parser": "^2.6.0" @@ -23824,7 +23821,6 @@ "integrity": "sha512-bfmJW1dmR2LvaMJuAnE88pZP9DktIFYXazkTfOIKZzi3Knk9lT0roItIA24ydOucI3bV/g/tXBA6hzqq3FV9Ew==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/mdast": "^3.0.0", "remark-parse": "^10.0.0", @@ -23974,7 +23970,6 @@ "integrity": "sha512-koyOzCMYoUHudypbj4XpnAKFbkddRMYZHwghnxd7ue5210WzGw6kOBwauJTRUMq16jsovXx8dYNvSSWP89kZ3A==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/mdast": "^3.0.0", "mdast-util-to-markdown": "^1.0.0", @@ -23991,7 +23986,6 @@ "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/unist": "^2" } @@ -24001,8 +23995,7 @@ "resolved": "https://registry.npmmirror.com/@types/unist/-/unist-2.0.11.tgz", "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/remark-stringify/node_modules/mdast-util-phrasing": { "version": "3.0.1", @@ -24010,7 +24003,6 @@ "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/mdast": "^3.0.0", "unist-util-is": "^5.0.0" @@ -24026,7 +24018,6 @@ "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", @@ -24048,7 +24039,6 @@ "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/mdast": "^3.0.0" }, @@ -24073,7 +24063,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "micromark-util-symbol": "^1.0.0", "micromark-util-types": "^1.0.0" @@ -24095,7 +24084,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "micromark-util-symbol": "^1.0.0" } @@ -24116,7 +24104,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "decode-named-character-reference": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -24139,8 +24126,7 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/remark-stringify/node_modules/micromark-util-types": { "version": "1.1.0", @@ -24157,8 +24143,7 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/remark-stringify/node_modules/unified": { "version": "10.1.2", @@ -24166,7 +24151,6 @@ "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/unist": "^2.0.0", "bail": "^2.0.0", @@ -24187,7 +24171,6 @@ "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/unist": "^2.0.0" }, @@ -24202,7 +24185,6 @@ "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/unist": "^2.0.0" }, @@ -24217,7 +24199,6 @@ "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0", @@ -24234,7 +24215,6 @@ "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" @@ -24250,7 +24230,6 @@ "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/unist": "^2.0.0", "is-buffer": "^2.0.0", @@ -24268,7 +24247,6 @@ "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/unist": "^2.0.0", "unist-util-stringify-position": "^3.0.0" @@ -24284,7 +24262,6 @@ "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/unist": "^2" } @@ -24294,8 +24271,7 @@ "resolved": "https://registry.npmmirror.com/@types/unist/-/unist-2.0.11.tgz", "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/remark/node_modules/mdast-util-from-markdown": { "version": "1.3.1", @@ -24303,7 +24279,6 @@ "integrity": "sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", @@ -24329,7 +24304,6 @@ "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/mdast": "^3.0.0" }, @@ -24354,7 +24328,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "@types/debug": "^4.0.0", "debug": "^4.0.0", @@ -24391,7 +24364,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "decode-named-character-reference": "^1.0.0", "micromark-factory-destination": "^1.0.0", @@ -24427,7 +24399,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "micromark-util-character": "^1.0.0", "micromark-util-symbol": "^1.0.0", @@ -24450,7 +24421,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "micromark-util-character": "^1.0.0", "micromark-util-symbol": "^1.0.0", @@ -24474,7 +24444,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "micromark-util-character": "^1.0.0", "micromark-util-types": "^1.0.0" @@ -24496,7 +24465,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -24520,7 +24488,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -24544,7 +24511,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "micromark-util-symbol": "^1.0.0", "micromark-util-types": "^1.0.0" @@ -24566,7 +24532,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "micromark-util-symbol": "^1.0.0" } @@ -24587,7 +24552,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "micromark-util-character": "^1.0.0", "micromark-util-symbol": "^1.0.0", @@ -24610,7 +24574,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "micromark-util-chunked": "^1.0.0", "micromark-util-types": "^1.0.0" @@ -24632,7 +24595,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "micromark-util-symbol": "^1.0.0" } @@ -24653,7 +24615,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "decode-named-character-reference": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -24676,8 +24637,7 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/remark/node_modules/micromark-util-html-tag-name": { "version": "1.2.0", @@ -24694,8 +24654,7 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/remark/node_modules/micromark-util-normalize-identifier": { "version": "1.1.0", @@ -24713,7 +24672,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "micromark-util-symbol": "^1.0.0" } @@ -24734,7 +24692,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "micromark-util-types": "^1.0.0" } @@ -24755,7 +24712,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "micromark-util-character": "^1.0.0", "micromark-util-encode": "^1.0.0", @@ -24778,7 +24734,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "micromark-util-chunked": "^1.0.0", "micromark-util-symbol": "^1.0.0", @@ -24801,8 +24756,7 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/remark/node_modules/micromark-util-types": { "version": "1.1.0", @@ -24819,8 +24773,7 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/remark/node_modules/remark-parse": { "version": "10.0.2", @@ -24828,7 +24781,6 @@ "integrity": "sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/mdast": "^3.0.0", "mdast-util-from-markdown": "^1.0.0", @@ -24845,7 +24797,6 @@ "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/unist": "^2.0.0", "bail": "^2.0.0", @@ -24866,7 +24817,6 @@ "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/unist": "^2.0.0" }, @@ -24881,7 +24831,6 @@ "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/unist": "^2.0.0", "is-buffer": "^2.0.0", @@ -24899,7 +24848,6 @@ "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/unist": "^2.0.0", "unist-util-stringify-position": "^3.0.0" @@ -25110,6 +25058,7 @@ "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.54.0.tgz", "integrity": "sha512-3nk8Y3a9Ea8szgKhinMlGMhGMw89mqule3KWczxhIzqudyHdCIOHw8WJlj/r329fACjKLEh13ZSk7oE22kyeIw==", "license": "MIT", + "peer": true, "dependencies": { "@types/estree": "1.0.8" }, @@ -25181,7 +25130,6 @@ "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "mri": "^1.1.0" }, @@ -25334,6 +25282,7 @@ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -25818,6 +25767,7 @@ "integrity": "sha512-kfr6kxQAjA96ADlH6FMALJwJ+eM80UqXy106yVHNgdsAP/CdzkkicglRAhZAvUycXK9AeadF6KZ00CWLtVMN4w==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@storybook/global": "^5.0.0", "@testing-library/jest-dom": "^6.6.3", @@ -26369,9 +26319,9 @@ } }, "node_modules/tailwind-merge": { - "version": "2.6.0", - "resolved": "https://registry.npmmirror.com/tailwind-merge/-/tailwind-merge-2.6.0.tgz", - "integrity": "sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==", + "version": "2.6.1", + "resolved": "https://registry.npmmirror.com/tailwind-merge/-/tailwind-merge-2.6.1.tgz", + "integrity": "sha512-Oo6tHdpZsGpkKG88HJ8RR1rg/RdnEkQEfMoEk2x1XRI3F1AxeU+ijRXpiVUF4UbLfcxxRGw6TbUINKYdWVsQTQ==", "license": "MIT", "funding": { "type": "github", @@ -26395,6 +26345,7 @@ "resolved": "https://registry.npmmirror.com/tailwindcss/-/tailwindcss-3.4.19.tgz", "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==", "license": "MIT", + "peer": true, "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", @@ -26477,6 +26428,7 @@ "resolved": "https://registry.npmmirror.com/jiti/-/jiti-1.21.7.tgz", "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", "license": "MIT", + "peer": true, "bin": { "jiti": "bin/jiti.js" } @@ -26973,6 +26925,7 @@ "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -27188,6 +27141,7 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -27574,7 +27528,6 @@ "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "dequal": "^2.0.0", "diff": "^5.0.0", @@ -27594,7 +27547,6 @@ "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", "dev": true, "license": "BSD-3-Clause", - "peer": true, "engines": { "node": ">=0.3.1" } @@ -27605,7 +27557,6 @@ "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6" } @@ -27733,6 +27684,7 @@ "integrity": "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", @@ -28620,6 +28572,7 @@ "resolved": "https://registry.npmmirror.com/webpack/-/webpack-5.104.1.tgz", "integrity": "sha512-Qphch25abbMNtekmEGJmeRUhLDbe+QfiWTiqpKYkpCOWY64v9eyl+KRRLmqOFA2AvKPpc9DC6+u2n76tQLBoaA==", "license": "MIT", + "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", @@ -29010,7 +28963,6 @@ "resolved": "https://registry.npmmirror.com/workerize-loader/-/workerize-loader-2.0.2.tgz", "integrity": "sha512-HoZ6XY4sHWxA2w0WpzgBwUiR3dv1oo7bS+oCwIpb6n54MclQ/7KXdXsVIChTCygyuHtVuGBO1+i3HzTt699UJQ==", "license": "MIT", - "peer": true, "dependencies": { "loader-utils": "^2.0.0" }, @@ -29023,7 +28975,6 @@ "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "license": "MIT", - "peer": true, "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", diff --git a/web/package.json b/web/package.json index 5a5727e45a..513493316c 100644 --- a/web/package.json +++ b/web/package.json @@ -50,9 +50,9 @@ "@radix-ui/react-radio-group": "^1.2.3", "@radix-ui/react-scroll-area": "^1.2.2", "@radix-ui/react-select": "2.1.4", - "@radix-ui/react-separator": "^1.1.0", + "@radix-ui/react-separator": "^1.1.8", "@radix-ui/react-slider": "^1.2.1", - "@radix-ui/react-slot": "^1.1.0", + "@radix-ui/react-slot": "^1.2.4", "@radix-ui/react-switch": "^1.1.1", "@radix-ui/react-tabs": "^1.1.1", "@radix-ui/react-toast": "^1.2.6", @@ -72,7 +72,7 @@ "ajv-formats": "^3.0.1", "antd": "^5.12.7", "axios": "^1.12.0", - "class-variance-authority": "^0.7.0", + "class-variance-authority": "^0.7.1", "classnames": "^2.5.1", "clsx": "^2.1.1", "cmdk": "^1.0.4", @@ -121,7 +121,7 @@ "remark-gfm": "^4.0.0", "remark-math": "^6.0.0", "sonner": "^1.7.4", - "tailwind-merge": "^2.5.4", + "tailwind-merge": "^2.6.1", "tailwind-scrollbar": "^3.1.0", "tailwindcss-animate": "^1.0.7", "umi-request": "^1.4.0", diff --git a/web/src/components/avatar-upload.tsx b/web/src/components/avatar-upload.tsx index 9f4a370766..bee9c85f0c 100644 --- a/web/src/components/avatar-upload.tsx +++ b/web/src/components/avatar-upload.tsx @@ -1,5 +1,5 @@ import { transformFile2Base64 } from '@/utils/file-util'; -import { Pencil, Plus, XIcon } from 'lucide-react'; +import { LucidePencil, LucidePlus, LucideX } from 'lucide-react'; import { ChangeEventHandler, forwardRef, @@ -45,7 +45,7 @@ export const AvatarUpload = forwardRef( } ev.target.value = ''; }, - [onChange], + [], ); const handleRemove = useCallback(() => { @@ -249,30 +249,36 @@ export const AvatarUpload = forwardRef( }; } }, 100); - }, [handleWheel, containerRef.current]); + }, [handleWheel, imageToCrop, isCropModalOpen]); return (
{!avatarBase64Str ? ( -
-
- -

{t('common.upload')}

-
+
+ + {t('common.upload')}
) : ( -
- +
+ -
- + +
+
+
)} + ( ref={ref} />
-
+
{tips ?? t('knowledgeConfiguration.photoTip')}
diff --git a/web/src/components/confirm-delete-dialog.tsx b/web/src/components/confirm-delete-dialog.tsx index 668ba8c6e6..616ff7a072 100644 --- a/web/src/components/confirm-delete-dialog.tsx +++ b/web/src/components/confirm-delete-dialog.tsx @@ -9,7 +9,7 @@ import { AlertDialogTitle, AlertDialogTrigger, } from '@/components/ui/alert-dialog'; -import { AlertDialogOverlay } from '@radix-ui/react-alert-dialog'; + import { DialogProps } from '@radix-ui/react-dialog'; import { X } from 'lucide-react'; import { useTranslation } from 'react-i18next'; @@ -55,53 +55,48 @@ export function ConfirmDeleteDialog({ defaultOpen={defaultOpen} > {children && {children}} - { - e.stopPropagation(); - }} + + e.preventDefault()} + onClick={(e) => e.stopPropagation()} + className="bg-bg-base " > - e.preventDefault()} - onClick={(e) => e.stopPropagation()} - className="bg-bg-base " - > - - - {title ?? t('common.deleteModalTitle')} - - - - - {content && ( - <> - - -
-
- {content.title || t('common.deleteModalTitle')} -
- {content.node} -
-
- - )} -
- - - {cancelButtonText || t('common.cancel')} - - + + {title ?? t('common.deleteModalTitle')} + - {okButtonText || t('common.delete')} - - -
-
+ + + + {content && ( + <> + + +
+
+ {content.title || t('common.deleteModalTitle')} +
+ {content.node} +
+
+ + )} + + + + {cancelButtonText || t('common.cancel')} + + + {okButtonText || t('common.delete')} + + + ); } diff --git a/web/src/components/copy-to-clipboard.tsx b/web/src/components/copy-to-clipboard.tsx index 38b2128d47..55f3e7c05b 100644 --- a/web/src/components/copy-to-clipboard.tsx +++ b/web/src/components/copy-to-clipboard.tsx @@ -1,10 +1,16 @@ import { useTranslate } from '@/hooks/common-hooks'; -import { CheckOutlined, CopyOutlined } from '@ant-design/icons'; +import { cn } from '@/lib/utils'; +import { LucideCheck, LucideCopy } from 'lucide-react'; import { useState } from 'react'; -import { CopyToClipboard as Clipboard, Props } from 'react-copy-to-clipboard'; +import { CopyToClipboard as Clipboard } from 'react-copy-to-clipboard'; +import { Button, ButtonProps } from './ui/button'; import { Tooltip, TooltipContent, TooltipTrigger } from './ui/tooltip'; -const CopyToClipboard = ({ text }: Props) => { +const CopyToClipboard = ({ + text, + className, + ...buttonProps +}: { text: string } & ButtonProps) => { const [copied, setCopied] = useState(false); const { t } = useTranslate('common'); @@ -16,12 +22,19 @@ const CopyToClipboard = ({ text }: Props) => { }; return ( - - - - {copied ? : } - - + + + + + + {copied ? t('copied') : t('copy')} ); diff --git a/web/src/components/message-input/next.tsx b/web/src/components/message-input/next.tsx index b68bc85a30..7dafe52c1d 100644 --- a/web/src/components/message-input/next.tsx +++ b/web/src/components/message-input/next.tsx @@ -14,7 +14,6 @@ import { } from '@/components/file-upload'; import { Button } from '@/components/ui/button'; import { Textarea } from '@/components/ui/textarea'; -import { cn } from '@/lib/utils'; import { t } from 'i18next'; import { Atom, @@ -159,7 +158,7 @@ export function NextMessageInput({ onValueChange={setFiles} onUpload={onUpload} onFileReject={onFileReject} - className="relative w-full items-center " + className="relative w-full items-center" disabled={isUploading || disabled} >
+
))} +