From b41523deebe3eaa1e01245f3a5f39728930901e3 Mon Sep 17 00:00:00 2001 From: CSCITech Date: Tue, 14 Jul 2026 00:13:28 +0800 Subject: [PATCH 1/8] v1.0.5-preview.1 --- .../components/ai-elements/conversation.tsx | 3 +- .../src/components/ai-elements/tool.tsx | 4 +- web/default/src/components/config-drawer.tsx | 51 +- .../components/data-table/bulk-actions.tsx | 20 +- .../components/data-table/data-table-page.tsx | 48 +- .../data-table/mobile-card-list.tsx | 56 +- .../src/components/data-table/pagination.tsx | 4 +- .../src/components/datetime-picker.tsx | 4 +- web/default/src/components/json-editor.tsx | 4 +- .../src/components/language-switcher.tsx | 46 +- .../layout/components/app-header.tsx | 14 +- .../components/layout/components/footer.tsx | 6 +- .../layout/components/header-tools-menu.tsx | 157 ++++ .../layout/components/nav-group.tsx | 2 +- .../layout/components/public-header.tsx | 35 +- .../layout/components/section-page-layout.tsx | 2 +- .../components/layout/components/top-nav.tsx | 69 +- web/default/src/components/password-input.tsx | 4 +- web/default/src/components/tag-input.tsx | 2 +- web/default/src/components/theme-switch.tsx | 56 +- web/default/src/components/ui/breadcrumb.tsx | 9 +- web/default/src/components/ui/carousel.tsx | 7 +- web/default/src/components/ui/command.tsx | 2 +- .../src/components/ui/context-menu.tsx | 2 +- web/default/src/components/ui/dialog.tsx | 5 +- .../src/components/ui/dropdown-menu.tsx | 2 +- web/default/src/components/ui/empty.tsx | 2 +- web/default/src/components/ui/markdown.tsx | 83 +- web/default/src/components/ui/menubar.tsx | 2 +- web/default/src/components/ui/pagination.tsx | 25 +- web/default/src/components/ui/sheet.tsx | 5 +- web/default/src/components/ui/sidebar.tsx | 16 +- web/default/src/components/ui/spinner.tsx | 5 +- web/default/src/components/ui/titled-card.tsx | 7 +- .../channels/components/channels-columns.tsx | 8 +- .../components/dialogs/codex-usage-dialog.tsx | 5 +- .../dialogs/ollama-models-dialog.tsx | 49 +- .../dialogs/param-override-editor-dialog.tsx | 788 +----------------- .../param-override-specialized-editors.tsx | 779 +++++++++++++++++ .../drawers/channel-editor-navigation.tsx | 217 +++++ .../drawers/channel-editor-state.ts | 201 +++++ .../drawers/channel-mutate-drawer.tsx | 403 +-------- .../components/numeric-spinner-input.tsx | 6 +- .../components/models/log-stat-cards.tsx | 6 +- .../overview/overview-dashboard.tsx | 260 +++++- .../overview/overview-query-utils.test.ts | 40 + .../overview/overview-query-utils.ts | 33 + .../components/overview/summary-cards.tsx | 6 +- .../components/overview/uptime-panel.tsx | 2 +- .../dashboard/components/ui/stat-card.tsx | 4 +- web/default/src/features/dashboard/index.tsx | 92 +- .../home/components/sections/hero.tsx | 2 +- .../keys/components/api-keys-columns.tsx | 4 +- .../prefill-group-management-dialog.tsx | 14 +- .../dialogs/upstream-conflict-dialog.tsx | 8 +- .../models/components/models-columns.tsx | 12 +- web/default/src/features/playground/api.ts | 9 +- .../lib/playground-option-utils.test.ts | 7 + .../playground/lib/playground-option-utils.ts | 4 + .../model-details-uptime-sparkline.tsx | 20 +- .../components/settings-form-layout.tsx | 66 +- .../components/settings-page.tsx | 43 +- .../models/channel-selector-dialog.tsx | 4 +- .../models/model-pricing-sheet.tsx | 9 + .../models/tiered-pricing-editor.tsx | 663 +-------------- .../models/tiered-pricing-fields.tsx | 116 +++ .../models/tiered-pricing-support.tsx | 567 +++++++++++++ .../models/tiered-pricing-utils.ts | 42 + .../users/components/users-columns.tsx | 4 +- .../i18n/locales/_reports/_sync-report.json | 8 +- .../locales/_reports/fr.untranslated.json | 69 -- .../locales/_reports/ja.untranslated.json | 117 --- .../locales/_reports/ru.untranslated.json | 117 --- .../locales/_reports/vi.untranslated.json | 69 -- web/default/src/i18n/locales/en.json | 31 +- web/default/src/i18n/locales/fr.json | 165 ++-- web/default/src/i18n/locales/ja.json | 261 +++--- web/default/src/i18n/locales/ru.json | 261 +++--- web/default/src/i18n/locales/vi.json | 165 ++-- web/default/src/i18n/locales/zh.json | 31 +- web/default/src/main.tsx | 4 - web/default/src/styles/index.css | 21 +- web/default/src/styles/theme-presets.css | 7 +- web/default/src/tanstack-table.d.ts | 4 + 84 files changed, 3632 insertions(+), 2950 deletions(-) create mode 100644 web/default/src/components/layout/components/header-tools-menu.tsx create mode 100644 web/default/src/features/channels/components/dialogs/param-override-specialized-editors.tsx create mode 100644 web/default/src/features/channels/components/drawers/channel-editor-navigation.tsx create mode 100644 web/default/src/features/channels/components/drawers/channel-editor-state.ts create mode 100644 web/default/src/features/dashboard/components/overview/overview-query-utils.test.ts create mode 100644 web/default/src/features/dashboard/components/overview/overview-query-utils.ts create mode 100644 web/default/src/features/system-settings/models/tiered-pricing-fields.tsx create mode 100644 web/default/src/features/system-settings/models/tiered-pricing-support.tsx create mode 100644 web/default/src/features/system-settings/models/tiered-pricing-utils.ts delete mode 100644 web/default/src/i18n/locales/_reports/fr.untranslated.json delete mode 100644 web/default/src/i18n/locales/_reports/ja.untranslated.json delete mode 100644 web/default/src/i18n/locales/_reports/ru.untranslated.json delete mode 100644 web/default/src/i18n/locales/_reports/vi.untranslated.json diff --git a/web/default/src/components/ai-elements/conversation.tsx b/web/default/src/components/ai-elements/conversation.tsx index bfbdca7..9a8248f 100644 --- a/web/default/src/components/ai-elements/conversation.tsx +++ b/web/default/src/components/ai-elements/conversation.tsx @@ -98,6 +98,7 @@ export const ConversationScrollButton = ({ className, ...props }: ConversationScrollButtonProps) => { + const { t } = useTranslation() const { isAtBottom, scrollToBottom } = useStickToBottomContext() const handleScrollToBottom = useCallback(() => { @@ -115,7 +116,7 @@ export const ConversationScrollButton = ({ size='icon' type='button' variant='outline' - aria-label='Scroll to bottom' + aria-label={t('Scroll to bottom')} {...props} >