diff --git a/web/src/components/api-docs.tsx b/web/src/components/api-docs.tsx index 339febd..7211fd9 100644 --- a/web/src/components/api-docs.tsx +++ b/web/src/components/api-docs.tsx @@ -27,7 +27,11 @@ import { Separator } from "./ui/separator"; export default function APIDocs() { const { t } = useTranslation() - const base_url = (window as any).__BICHON_BASE__ || ''; + const rawBase: string = (window as any).__BICHON_BASE__ || ''; + const normalized = rawBase.replace(/\/+$/, ''); + const base_url = normalized.startsWith('http') + ? normalized + : `${window.location.origin}${normalized}`; const docsOptions = [ { name: t('apiDocs.swaggerUI'), path: `${base_url}/api-docs/swagger` }, diff --git a/web/src/features/dashboard/index.tsx b/web/src/features/dashboard/index.tsx index 5335894..578d47d 100644 --- a/web/src/features/dashboard/index.tsx +++ b/web/src/features/dashboard/index.tsx @@ -278,9 +278,11 @@ export default function MailArchiveDashboard() { const dataPoint = payload[0].payload; const fullDate = formatTooltipDate(dataPoint.timestamp_ms, currentLocale); return ( -
-

{fullDate}

-

{t('dashboard.emails')}: {formatNumber(dataPoint.count)}

+
+

{fullDate}

+

+ {t('dashboard.emails')}: {formatNumber(dataPoint.count)} +

); } @@ -329,6 +331,9 @@ export default function MailArchiveDashboard() { fontSize: '12px', padding: '4px 8px', borderRadius: '6px', + backgroundColor: 'hsl(var(--background))', + border: '1px solid hsl(var(--border))', + color: 'hsl(var(--foreground))', }} itemStyle={{ fontSize: '12px', diff --git a/web/src/features/users/roles/components/action-dialog.tsx b/web/src/features/users/roles/components/action-dialog.tsx index 668d848..f9ad706 100644 --- a/web/src/features/users/roles/components/action-dialog.tsx +++ b/web/src/features/users/roles/components/action-dialog.tsx @@ -145,7 +145,7 @@ export function RoleActionDialog({ currentRow, open, onOpenChange }: Props) { return ( -
+
{isEdit ? t('roles.title.edit', { name: currentRow?.name }) : t('roles.title.create')} @@ -160,7 +160,7 @@ export function RoleActionDialog({ currentRow, open, onOpenChange }: Props) {
mutation.mutate(v))} - className="flex-1 overflow-y-auto p-6 bg-slate-50/50" + className="flex-1 overflow-y-auto p-6 bg-muted/30" >
@@ -169,11 +169,11 @@ export function RoleActionDialog({ currentRow, open, onOpenChange }: Props) { name="name" render={({ field }) => ( - + {t('roles.form.name_label')} - + @@ -184,7 +184,7 @@ export function RoleActionDialog({ currentRow, open, onOpenChange }: Props) { name="role_type" render={({ field }) => ( - + {t('roles.form.type_label')} @@ -208,7 +208,7 @@ export function RoleActionDialog({ currentRow, open, onOpenChange }: Props) { 'flex items-center justify-between p-3 rounded-md border-2 transition-all', isSelected ? 'border-primary bg-primary/5 shadow-sm' - : 'border-slate-200 bg-white', + : 'border-border bg-card', disabled ? 'opacity-40 cursor-not-allowed' : 'cursor-pointer hover:shadow-sm' @@ -236,11 +236,11 @@ export function RoleActionDialog({ currentRow, open, onOpenChange }: Props) { name="description" render={({ field }) => ( - + {t('roles.form.desc_label')} -