style: update UI components to use white background and consistent border radius
- Change dialog surfaces, drawers, and confirm dialogs from off-white (#F4F3EB) to white background - Standardize border radius from 3xl/36px to 2xl across multiple components - Update default setting view from 'account' to 'general' for better user experience - Adjust input field heights and backgrounds for improved visual consistency
This commit is contained in:
@@ -2,7 +2,7 @@ import { useEffect, useState } from 'react';
|
|||||||
import AgentsDialogSurface from './AgentsDialogSurface';
|
import AgentsDialogSurface from './AgentsDialogSurface';
|
||||||
|
|
||||||
const INPUT_CLASS_NAME = [
|
const INPUT_CLASS_NAME = [
|
||||||
'h-[88px] w-full rounded-[26px] border border-black/10 bg-[#F8F4EC] px-7',
|
'h-[44px] w-full rounded-xl border border-black/10 bg-white px-7',
|
||||||
'text-[22px] text-[#171717] outline-none transition-colors placeholder:text-[#9A958C]',
|
'text-[22px] text-[#171717] outline-none transition-colors placeholder:text-[#9A958C]',
|
||||||
'focus:border-black/20 dark:border-white/10 dark:bg-[#222225] dark:text-[#f3f4f6] dark:placeholder:text-gray-500',
|
'focus:border-black/20 dark:border-white/10 dark:bg-[#222225] dark:text-[#f3f4f6] dark:placeholder:text-gray-500',
|
||||||
].join(' ');
|
].join(' ');
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import qqIcon from '../../../assets/channels/qq.svg';
|
|||||||
import AgentsConfirmDialog from './AgentsConfirmDialog';
|
import AgentsConfirmDialog from './AgentsConfirmDialog';
|
||||||
|
|
||||||
const inputClasses = [
|
const inputClasses = [
|
||||||
'h-[44px] flex-1 rounded-xl border border-black/10 bg-[#F8F4EC] px-4 text-[14px] text-[#171717]',
|
'h-[44px] flex-1 rounded-xl border border-black/10 bg-white px-4 text-[14px] text-[#171717]',
|
||||||
'outline-none transition-colors placeholder:text-[#99A0AE] focus:border-black/20',
|
'outline-none transition-colors placeholder:text-[#99A0AE] focus:border-black/20',
|
||||||
'disabled:cursor-not-allowed disabled:opacity-65 dark:border-white/10 dark:bg-[#222225] dark:text-[#f3f4f6] dark:placeholder:text-gray-500 dark:focus:border-white/20',
|
'disabled:cursor-not-allowed disabled:opacity-65 dark:border-white/10 dark:bg-[#222225] dark:text-[#f3f4f6] dark:placeholder:text-gray-500 dark:focus:border-white/20',
|
||||||
].join(' ');
|
].join(' ');
|
||||||
@@ -318,7 +318,7 @@ function AgentModelDialog({
|
|||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div className="fixed inset-0 z-60 flex items-center justify-center bg-black/50 p-4">
|
<div className="fixed inset-0 z-60 flex items-center justify-center bg-black/50 p-4">
|
||||||
<div className="w-full max-w-xl overflow-hidden rounded-3xl bg-[#f3f1e9] shadow-2xl dark:bg-[#1f1f22]">
|
<div className="w-full max-w-xl overflow-hidden rounded-2xl bg-white shadow-2xl dark:bg-[#1f1f22]">
|
||||||
<div className="flex items-start justify-between gap-4 px-6 pb-2 pt-6">
|
<div className="flex items-start justify-between gap-4 px-6 pb-2 pt-6">
|
||||||
<div>
|
<div>
|
||||||
<h3
|
<h3
|
||||||
@@ -537,7 +537,7 @@ export default function AgentSettingsDialog({
|
|||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div className="fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4">
|
<div className="fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4">
|
||||||
<div className="flex max-h-[90vh] w-full max-w-2xl flex-col overflow-hidden rounded-3xl bg-[#f3f1e9] shadow-2xl dark:bg-[#1f1f22]">
|
<div className="flex max-h-[90vh] w-full max-w-2xl flex-col overflow-hidden rounded-2xl bg-white shadow-2xl dark:bg-[#1f1f22]">
|
||||||
<div className="flex shrink-0 flex-row items-start justify-between px-6 pb-2 pt-6">
|
<div className="flex shrink-0 flex-row items-start justify-between px-6 pb-2 pt-6">
|
||||||
<div>
|
<div>
|
||||||
<h2
|
<h2
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ export default function AgentsConfirmDialog({
|
|||||||
<Dialog.Portal>
|
<Dialog.Portal>
|
||||||
<Dialog.Overlay className="fixed inset-0 z-60 bg-black/45 backdrop-blur-[2px]" />
|
<Dialog.Overlay className="fixed inset-0 z-60 bg-black/45 backdrop-blur-[2px]" />
|
||||||
<Dialog.Content
|
<Dialog.Content
|
||||||
className="fixed left-1/2 top-1/2 z-70 w-[calc(100vw-32px)] max-w-126 -translate-x-1/2 -translate-y-1/2 rounded-3xl bg-[#F4F3EB] p-0 shadow-[0_30px_80px_rgba(15,23,42,0.18)] outline-none dark:bg-[#1f1f22]"
|
className="fixed left-1/2 top-1/2 z-70 w-[calc(100vw-32px)] max-w-126 -translate-x-1/2 -translate-y-1/2 rounded-2xl bg-white p-0 shadow-[0_30px_80px_rgba(15,23,42,0.18)] outline-none dark:bg-[#1f1f22]"
|
||||||
onEscapeKeyDown={(event) => {
|
onEscapeKeyDown={(event) => {
|
||||||
if (busy) {
|
if (busy) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ export default function AgentsDialogSurface({
|
|||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
className={[
|
className={[
|
||||||
'w-full overflow-hidden rounded-[36px] bg-[#F4F0E8] shadow-[0_30px_80px_rgba(15,23,42,0.18)] dark:bg-[#1f1f22]',
|
'w-full overflow-hidden rounded-2xl bg-white shadow-[0_30px_80px_rgba(15,23,42,0.18)] dark:bg-[#1f1f22]',
|
||||||
widthClassName,
|
widthClassName,
|
||||||
].join(' ')}
|
].join(' ')}
|
||||||
onClick={(event) => event.stopPropagation()}
|
onClick={(event) => event.stopPropagation()}
|
||||||
|
|||||||
@@ -388,7 +388,7 @@ export default function AgentsPage() {
|
|||||||
{feedback ? (
|
{feedback ? (
|
||||||
<div
|
<div
|
||||||
className={[
|
className={[
|
||||||
'rounded-3xl border px-5 py-4 text-[15px]',
|
'rounded-2xl border px-5 py-4 text-[15px]',
|
||||||
feedback.tone === 'success' ? 'border-emerald-500/25 bg-emerald-500/10 text-emerald-700 dark:text-emerald-300' : '',
|
feedback.tone === 'success' ? 'border-emerald-500/25 bg-emerald-500/10 text-emerald-700 dark:text-emerald-300' : '',
|
||||||
feedback.tone === 'error' ? 'border-red-500/25 bg-red-500/10 text-red-700 dark:text-red-300' : '',
|
feedback.tone === 'error' ? 'border-red-500/25 bg-red-500/10 text-red-700 dark:text-red-300' : '',
|
||||||
feedback.tone === 'info' ? 'border-black/10 bg-white text-[#525866] dark:border-gray-700 dark:bg-[#222225] dark:text-gray-300' : '',
|
feedback.tone === 'info' ? 'border-black/10 bg-white text-[#525866] dark:border-gray-700 dark:bg-[#222225] dark:text-gray-300' : '',
|
||||||
@@ -399,7 +399,7 @@ export default function AgentsPage() {
|
|||||||
) : null}
|
) : null}
|
||||||
|
|
||||||
{warning ? (
|
{warning ? (
|
||||||
<div className="rounded-3xl border border-amber-500/25 bg-amber-500/10 px-5 py-4 text-[15px] text-amber-700 dark:text-amber-300">
|
<div className="rounded-2xl border border-amber-500/25 bg-amber-500/10 px-5 py-4 text-[15px] text-amber-700 dark:text-amber-300">
|
||||||
<div className="flex items-start gap-3">
|
<div className="flex items-start gap-3">
|
||||||
<AlertCircle className="mt-0.5 h-5 w-5 shrink-0" />
|
<AlertCircle className="mt-0.5 h-5 w-5 shrink-0" />
|
||||||
<span>{warning}</span>
|
<span>{warning}</span>
|
||||||
@@ -408,7 +408,7 @@ export default function AgentsPage() {
|
|||||||
) : null}
|
) : null}
|
||||||
|
|
||||||
{error ? (
|
{error ? (
|
||||||
<div className="rounded-3xl border border-red-500/25 bg-red-500/10 px-5 py-4 text-[15px] text-red-700 dark:text-red-300">
|
<div className="rounded-2xl border border-red-500/25 bg-red-500/10 px-5 py-4 text-[15px] text-red-700 dark:text-red-300">
|
||||||
<div className="flex items-start gap-3">
|
<div className="flex items-start gap-3">
|
||||||
<AlertCircle className="mt-0.5 h-5 w-5 shrink-0" />
|
<AlertCircle className="mt-0.5 h-5 w-5 shrink-0" />
|
||||||
<span>{message('agents.errorPrefix', '加载 Agents 失败:{error}', { error })}</span>
|
<span>{message('agents.errorPrefix', '加载 Agents 失败:{error}', { error })}</span>
|
||||||
@@ -417,7 +417,7 @@ export default function AgentsPage() {
|
|||||||
) : null}
|
) : null}
|
||||||
|
|
||||||
{providerError ? (
|
{providerError ? (
|
||||||
<div className="rounded-3xl border border-amber-500/25 bg-amber-500/10 px-5 py-4 text-[15px] text-amber-700 dark:text-amber-300">
|
<div className="rounded-2xl border border-amber-500/25 bg-amber-500/10 px-5 py-4 text-[15px] text-amber-700 dark:text-amber-300">
|
||||||
<div className="flex items-start gap-3">
|
<div className="flex items-start gap-3">
|
||||||
<AlertCircle className="mt-0.5 h-5 w-5 shrink-0" />
|
<AlertCircle className="mt-0.5 h-5 w-5 shrink-0" />
|
||||||
<span>{`${message('agents.settings.providerLoadErrorPrefix', '加载 Provider 账号失败:')}${providerError}`}</span>
|
<span>{`${message('agents.settings.providerLoadErrorPrefix', '加载 Provider 账号失败:')}${providerError}`}</span>
|
||||||
|
|||||||
@@ -1097,7 +1097,7 @@ function StatCard({ label, value, tone, icon: Icon }: StatCardProps) {
|
|||||||
: 'bg-[#E8E6DE] text-[#7A7668] dark:bg-[#2a2a2d] dark:text-gray-400';
|
: 'bg-[#E8E6DE] text-[#7A7668] dark:bg-[#2a2a2d] dark:text-gray-400';
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="min-h-[130px] rounded-[24px] border border-transparent bg-[#F4F3EB]/60 p-5 transition-colors hover:bg-[#F4F3EB] dark:border-[#2a2a2d] dark:bg-[#1f1f22] dark:hover:bg-[#222225]">
|
<div className="min-h-[130px] rounded-[24px] border border-transparent bg-white /60 p-5 transition-colors hover:bg-white dark:border-[#2a2a2d] dark:bg-[#1f1f22] dark:hover:bg-[#222225]">
|
||||||
<div className="flex items-center justify-between">
|
<div className="flex items-center justify-between">
|
||||||
<div className={cn('flex h-11 w-11 items-center justify-center rounded-full', iconWrapperClass)}>
|
<div className={cn('flex h-11 w-11 items-center justify-center rounded-full', iconWrapperClass)}>
|
||||||
<Icon className="h-5 w-5" />
|
<Icon className="h-5 w-5" />
|
||||||
@@ -1193,7 +1193,7 @@ function CronJobCard({
|
|||||||
<p className="line-clamp-2 text-[13.5px] leading-[1.5] text-[#525866] dark:text-gray-400">{job.message}</p>
|
<p className="line-clamp-2 text-[13.5px] leading-[1.5] text-[#525866] dark:text-gray-400">{job.message}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="mb-3 grid gap-2 rounded-2xl bg-[#F4F3EB]/70 px-3.5 py-3 text-[12.5px] dark:bg-[#222225]">
|
<div className="mb-3 grid gap-2 rounded-2xl bg-white /70 px-3.5 py-3 text-[12.5px] dark:bg-[#222225]">
|
||||||
<div className="flex items-start gap-2 text-[#525866] dark:text-gray-400">
|
<div className="flex items-start gap-2 text-[#525866] dark:text-gray-400">
|
||||||
<BotIcon className="mt-0.5 h-3.5 w-3.5 shrink-0 text-[#99A0AE] dark:text-gray-500" />
|
<BotIcon className="mt-0.5 h-3.5 w-3.5 shrink-0 text-[#99A0AE] dark:text-gray-500" />
|
||||||
<span className="min-w-0">
|
<span className="min-w-0">
|
||||||
@@ -1548,8 +1548,8 @@ function CronTaskDialog({
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="fixed inset-0 z-50 flex items-center justify-center bg-black/30 p-4 backdrop-blur-[1px]">
|
<div className="fixed inset-0 z-50 flex items-center justify-center bg-black/30 p-4 backdrop-blur-[1px]">
|
||||||
<div className="max-h-[calc(100vh-48px)] w-full max-w-[720px] overflow-hidden rounded-[20px] bg-[#F4F3EB] shadow-[0_25px_50px_-12px_rgba(0,0,0,0.2)] dark:bg-[#1f1f22]">
|
<div className="max-h-[calc(100vh-48px)] w-full max-w-[720px] overflow-hidden rounded-[20px] bg-white shadow-[0_25px_50px_-12px_rgba(0,0,0,0.2)] dark:bg-[#1f1f22]">
|
||||||
<div className="flex items-start justify-between border-b border-black/5 bg-[#F4F3EB] px-8 py-6 dark:border-[#2a2a2d] dark:bg-[#1f1f22]">
|
<div className="flex items-start justify-between border-b border-black/5 bg-white px-8 py-6 dark:border-[#2a2a2d] dark:bg-[#1f1f22]">
|
||||||
<div>
|
<div>
|
||||||
<h2
|
<h2
|
||||||
className="mb-2 text-[24px] font-normal tracking-tight text-[#171717] dark:text-[#f3f4f6]"
|
className="mb-2 text-[24px] font-normal tracking-tight text-[#171717] dark:text-[#f3f4f6]"
|
||||||
@@ -2149,7 +2149,7 @@ export default function CronPage() {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{jobs.length === 0 ? (
|
{jobs.length === 0 ? (
|
||||||
<div className="flex flex-col items-center justify-center rounded-3xl border border-transparent bg-[#F4F3EB]/40 py-20 text-[#525866] dark:border-[#2a2a2d] dark:bg-[#1f1f22] dark:text-gray-400">
|
<div className="flex flex-col items-center justify-center rounded-2xl border border-transparent bg-white /40 py-20 text-[#525866] dark:border-[#2a2a2d] dark:bg-[#1f1f22] dark:text-gray-400">
|
||||||
<ClockIcon className="mb-4 h-10 w-10 opacity-50" />
|
<ClockIcon className="mb-4 h-10 w-10 opacity-50" />
|
||||||
<h3 className="mb-2 text-lg font-medium text-[#171717] dark:text-[#f3f4f6]">还没有定时任务</h3>
|
<h3 className="mb-2 text-lg font-medium text-[#171717] dark:text-[#f3f4f6]">还没有定时任务</h3>
|
||||||
<p className="mb-6 max-w-md text-center text-[14px]">
|
<p className="mb-6 max-w-md text-center text-[14px]">
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ export default function ConversationDeleteDialog({
|
|||||||
<Dialog.Portal>
|
<Dialog.Portal>
|
||||||
<Dialog.Overlay className="fixed inset-0 z-50 bg-black/45 backdrop-blur-[2px]" />
|
<Dialog.Overlay className="fixed inset-0 z-50 bg-black/45 backdrop-blur-[2px]" />
|
||||||
<Dialog.Content
|
<Dialog.Content
|
||||||
className="fixed left-1/2 top-1/2 z-60 w-[calc(100vw-32px)] max-w-140 -translate-x-1/2 -translate-y-1/2 rounded-3xl bg-[#F4F3EB] p-0 shadow-[0_30px_80px_rgba(15,23,42,0.18)] outline-none dark:bg-[#1f1f22]"
|
className="fixed left-1/2 top-1/2 z-60 w-[calc(100vw-32px)] max-w-140 -translate-x-1/2 -translate-y-1/2 rounded-2xl bg-white p-0 shadow-[0_30px_80px_rgba(15,23,42,0.18)] outline-none dark:bg-[#1f1f22]"
|
||||||
onEscapeKeyDown={(event) => {
|
onEscapeKeyDown={(event) => {
|
||||||
if (busy) {
|
if (busy) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ export default function DialogSurface({
|
|||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
className={[
|
className={[
|
||||||
'w-full rounded-[20px] bg-[#F4F3EB] shadow-[0_25px_50px_-12px_rgba(0,0,0,0.2)] dark:bg-[#1f1f22]',
|
'w-full rounded-[20px] bg-white shadow-[0_25px_50px_-12px_rgba(0,0,0,0.2)] dark:bg-[#1f1f22]',
|
||||||
widthClassName,
|
widthClassName,
|
||||||
].join(' ')}
|
].join(' ')}
|
||||||
onClick={(event) => event.stopPropagation()}
|
onClick={(event) => event.stopPropagation()}
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ export default function KnowledgeConfirmDialog({
|
|||||||
<Dialog.Portal>
|
<Dialog.Portal>
|
||||||
<Dialog.Overlay className="fixed inset-0 z-50 bg-black/45 backdrop-blur-[2px]" />
|
<Dialog.Overlay className="fixed inset-0 z-50 bg-black/45 backdrop-blur-[2px]" />
|
||||||
<Dialog.Content
|
<Dialog.Content
|
||||||
className="fixed left-1/2 top-1/2 z-60 w-[calc(100vw-32px)] max-w-130 -translate-x-1/2 -translate-y-1/2 rounded-2xl bg-[#F4F3EB] p-0 shadow-[0_30px_80px_rgba(15,23,42,0.18)] outline-none dark:bg-[#1f1f22]"
|
className="fixed left-1/2 top-1/2 z-60 w-[calc(100vw-32px)] max-w-130 -translate-x-1/2 -translate-y-1/2 rounded-2xl bg-white p-0 shadow-[0_30px_80px_rgba(15,23,42,0.18)] outline-none dark:bg-[#1f1f22]"
|
||||||
onEscapeKeyDown={(event) => {
|
onEscapeKeyDown={(event) => {
|
||||||
if (busy) {
|
if (busy) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|||||||
@@ -28,11 +28,11 @@ export default function KnowledgePageHeader({
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="grid gap-3 sm:grid-cols-2 md:mt-2 md:min-w-[320px]">
|
<div className="grid gap-3 sm:grid-cols-2 md:mt-2 md:min-w-[320px]">
|
||||||
<div className="rounded-3xl bg-[#f4f7fb] px-5 py-4 dark:bg-[#222225]">
|
<div className="rounded-2xl bg-[#f4f7fb] px-5 py-4 dark:bg-[#222225]">
|
||||||
<div className="text-xs uppercase tracking-[0.18em] text-[#99A0AE] dark:text-gray-500">{documentsLabel}</div>
|
<div className="text-xs uppercase tracking-[0.18em] text-[#99A0AE] dark:text-gray-500">{documentsLabel}</div>
|
||||||
<div className="mt-3 text-3xl font-semibold text-[#171717] dark:text-[#f3f4f6]">{totalCount}</div>
|
<div className="mt-3 text-3xl font-semibold text-[#171717] dark:text-[#f3f4f6]">{totalCount}</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="rounded-3xl bg-[#fff7ed] px-5 py-4 dark:bg-[#31251a]">
|
<div className="rounded-2xl bg-[#fff7ed] px-5 py-4 dark:bg-[#31251a]">
|
||||||
<div className="text-xs uppercase tracking-[0.18em] text-[#6b7280] dark:text-gray-400">{storageLabel}</div>
|
<div className="text-xs uppercase tracking-[0.18em] text-[#6b7280] dark:text-gray-400">{storageLabel}</div>
|
||||||
<div className="mt-3 text-3xl font-semibold text-[#171717] dark:text-[#f3f4f6]">{totalSize}</div>
|
<div className="mt-3 text-3xl font-semibold text-[#171717] dark:text-[#f3f4f6]">{totalSize}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -378,7 +378,7 @@ export default function KnowledgePage() {
|
|||||||
) : null}
|
) : null}
|
||||||
|
|
||||||
{loading && docs.length === 0 ? (
|
{loading && docs.length === 0 ? (
|
||||||
<div className="flex min-h-105 items-center justify-center rounded-3xl border border-black/5 bg-[#fcfcfd] dark:border-[#2a2a2d] dark:bg-[#222225]">
|
<div className="flex min-h-105 items-center justify-center rounded-2xl border border-black/5 bg-[#fcfcfd] dark:border-[#2a2a2d] dark:bg-[#222225]">
|
||||||
<div className="text-center text-[#99A0AE] dark:text-gray-500">{t('knowledge.status.loading')}</div>
|
<div className="text-center text-[#99A0AE] dark:text-gray-500">{t('knowledge.status.loading')}</div>
|
||||||
</div>
|
</div>
|
||||||
) : docs.length === 0 ? (
|
) : docs.length === 0 ? (
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ export default function DialogSurface({
|
|||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
className={[
|
className={[
|
||||||
'w-full rounded-[20px] bg-[#F4F3EB] shadow-[0_25px_50px_-12px_rgba(0,0,0,0.2)] dark:bg-[#1f1f22]',
|
'w-full rounded-[20px] bg-white shadow-[0_25px_50px_-12px_rgba(0,0,0,0.2)] dark:bg-[#1f1f22]',
|
||||||
widthClassName,
|
widthClassName,
|
||||||
].join(' ')}
|
].join(' ')}
|
||||||
onClick={(event) => event.stopPropagation()}
|
onClick={(event) => event.stopPropagation()}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ type ProviderEditorDialogProps = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const FIELD_CLASS_NAME = [
|
const FIELD_CLASS_NAME = [
|
||||||
'w-full rounded-[12px] border border-black/10 bg-[#F4F3EB] px-4 py-3 text-[14px] text-[#171717]',
|
'w-full rounded-[12px] border border-black/10 bg-white px-4 py-3 text-[14px] text-[#171717]',
|
||||||
'outline-none transition-colors placeholder:text-[#99A0AE] focus:border-black/20',
|
'outline-none transition-colors placeholder:text-[#99A0AE] focus:border-black/20',
|
||||||
'dark:border-white/10 dark:bg-[#222225] dark:text-[#f3f4f6] dark:placeholder:text-gray-500 dark:focus:border-white/20',
|
'dark:border-white/10 dark:bg-[#222225] dark:text-[#f3f4f6] dark:placeholder:text-gray-500 dark:focus:border-white/20',
|
||||||
].join(' ');
|
].join(' ');
|
||||||
@@ -66,7 +66,7 @@ export default function ProviderEditorDialog({
|
|||||||
>
|
>
|
||||||
<div className="space-y-6">
|
<div className="space-y-6">
|
||||||
<div className="flex items-center gap-4 rounded-[16px] bg-white p-5 shadow-sm dark:bg-[#1f1f22]">
|
<div className="flex items-center gap-4 rounded-[16px] bg-white p-5 shadow-sm dark:bg-[#1f1f22]">
|
||||||
<div className="flex h-12 w-12 items-center justify-center overflow-hidden rounded-[14px] bg-[#F4F3EB] text-[24px] dark:bg-[#222225]">
|
<div className="flex h-12 w-12 items-center justify-center overflow-hidden rounded-[14px] bg-white text-[24px] dark:bg-[#222225]">
|
||||||
{provider?.icon || t('models.common.ai')}
|
{provider?.icon || t('models.common.ai')}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ function ModalFrame({
|
|||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
className={[
|
className={[
|
||||||
'max-h-full w-full overflow-hidden rounded-[24px] bg-[#f4f3eb] shadow-[0_24px_80px_rgba(15,23,42,0.18)] dark:bg-[#1f1f22]',
|
'max-h-full w-full overflow-hidden rounded-[24px] bg-white shadow-[0_24px_80px_rgba(15,23,42,0.18)] dark:bg-[#1f1f22]',
|
||||||
widthClassName,
|
widthClassName,
|
||||||
].join(' ')}
|
].join(' ')}
|
||||||
onClick={(event) => event.stopPropagation()}
|
onClick={(event) => event.stopPropagation()}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import SettingMenu, { type SettingView } from './components/SettingMenu';
|
|||||||
import { useSettingUpdateState } from './useSettingUpdateState';
|
import { useSettingUpdateState } from './useSettingUpdateState';
|
||||||
|
|
||||||
export default function SettingPage() {
|
export default function SettingPage() {
|
||||||
const [currentView, setCurrentView] = useState<SettingView>('account');
|
const [currentView, setCurrentView] = useState<SettingView>('general');
|
||||||
const themeMode = useSettingsStore((state) => state.themeMode);
|
const themeMode = useSettingsStore((state) => state.themeMode);
|
||||||
const language = useSettingsStore((state) => state.language);
|
const language = useSettingsStore((state) => state.language);
|
||||||
const updateState = useSettingUpdateState();
|
const updateState = useSettingUpdateState();
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ export default function MarketplaceDrawer({
|
|||||||
onClick={onClose}
|
onClick={onClose}
|
||||||
>
|
>
|
||||||
<aside
|
<aside
|
||||||
className="flex h-full w-full max-w-[560px] flex-col bg-[#f3f1e9] shadow-[-18px_0_30px_rgba(15,23,42,0.12)] dark:bg-[#1b1b1d]"
|
className="flex h-full w-full max-w-[560px] flex-col bg-white shadow-[-18px_0_30px_rgba(15,23,42,0.12)] dark:bg-[#1b1b1d]"
|
||||||
onClick={(event) => event.stopPropagation()}
|
onClick={(event) => event.stopPropagation()}
|
||||||
>
|
>
|
||||||
<div className="border-b border-black/10 px-7 py-6 dark:border-gray-700">
|
<div className="border-b border-black/10 px-7 py-6 dark:border-gray-700">
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ export default function SkillDetailDrawer({
|
|||||||
onClick={onClose}
|
onClick={onClose}
|
||||||
>
|
>
|
||||||
<aside
|
<aside
|
||||||
className="flex h-full w-full max-w-[450px] flex-col bg-[#f3f1e9] shadow-[-18px_0_30px_rgba(15,23,42,0.12)] dark:bg-[#1b1b1d]"
|
className="flex h-full w-full max-w-[450px] flex-col bg-white shadow-[-18px_0_30px_rgba(15,23,42,0.12)] dark:bg-[#1b1b1d]"
|
||||||
onClick={(event) => event.stopPropagation()}
|
onClick={(event) => event.stopPropagation()}
|
||||||
>
|
>
|
||||||
<div className="flex items-center justify-end px-5 pt-5">
|
<div className="flex items-center justify-end px-5 pt-5">
|
||||||
@@ -119,7 +119,7 @@ export default function SkillDetailDrawer({
|
|||||||
<div className="relative mb-4 flex h-16 w-16 shrink-0 items-center justify-center rounded-full border border-black/5 bg-white text-3xl shadow-sm dark:border-gray-700 dark:bg-[#222225]">
|
<div className="relative mb-4 flex h-16 w-16 shrink-0 items-center justify-center rounded-full border border-black/5 bg-white text-3xl shadow-sm dark:border-gray-700 dark:bg-[#222225]">
|
||||||
<span className="text-3xl leading-none">{skill.icon || '🔧'}</span>
|
<span className="text-3xl leading-none">{skill.icon || '🔧'}</span>
|
||||||
{skill.isCore ? (
|
{skill.isCore ? (
|
||||||
<div className="absolute -bottom-1 -right-1 rounded-full border border-black/5 bg-[#f3f1e9] p-1 shadow-sm dark:border-gray-700 dark:bg-[#1b1b1d]">
|
<div className="absolute -bottom-1 -right-1 rounded-full border border-black/5 bg-white p-1 shadow-sm dark:border-gray-700 dark:bg-[#1b1b1d]">
|
||||||
<LockIcon className="h-3 w-3 text-[#525866] dark:text-gray-400" />
|
<LockIcon className="h-3 w-3 text-[#525866] dark:text-gray-400" />
|
||||||
</div>
|
</div>
|
||||||
) : null}
|
) : null}
|
||||||
|
|||||||
Reference in New Issue
Block a user