From 4cde6e31ca55fce1f6fd76fe63c83925684042e5 Mon Sep 17 00:00:00 2001 From: Stephen Zhou <38493346+hyoban@users.noreply.github.com> Date: Mon, 26 Jan 2026 19:29:21 +0800 Subject: [PATCH] Revert "[autofix.ci] apply automated fixes" This reverts commit 01a05289e97693eb164da1cac6ba84ce57ae827f. --- .../time-range-picker/date-picker.tsx | 3 +- .../time-range-picker/range-selector.tsx | 5 +- .../[appId]/overview/tracing/panel.tsx | 11 ++-- .../overview/tracing/provider-panel.tsx | 6 +- .../webapp-reset-password/check-code/page.tsx | 5 +- .../webapp-reset-password/page.tsx | 5 +- .../set-password/page.tsx | 3 +- .../webapp-signin/check-code/page.tsx | 5 +- .../webapp-signin/normalForm.tsx | 15 ++--- .../account-page/AvatarWithEdit.tsx | 5 +- .../account-page/email-change-modal.tsx | 3 +- .../(commonLayout)/account-page/index.tsx | 6 +- web/app/account/(commonLayout)/avatar.tsx | 6 +- web/app/account/(commonLayout)/header.tsx | 5 +- web/app/account/oauth/authorize/page.tsx | 2 +- web/app/components/app-sidebar/app-info.tsx | 26 ++++++--- .../components/app-sidebar/app-operations.tsx | 5 +- .../app-sidebar/app-sidebar-dropdown.tsx | 9 ++- .../app-sidebar/dataset-info/dropdown.tsx | 3 +- .../app-sidebar/dataset-sidebar-dropdown.tsx | 6 +- .../components/app-sidebar/toggle-button.tsx | 5 +- .../app/annotation/batch-action.tsx | 3 +- .../csv-uploader.tsx | 3 +- .../batch-add-annotation-modal/index.tsx | 3 +- .../edit-annotation-modal/edit-item/index.tsx | 7 ++- .../app/annotation/header-opts/index.tsx | 12 ++-- web/app/components/app/annotation/index.tsx | 3 +- web/app/components/app/annotation/list.tsx | 5 +- .../access-control-dialog.tsx | 3 +- .../add-member-or-group-pop.tsx | 7 ++- .../app/app-access-control/index.tsx | 7 ++- .../specific-groups-or-members.tsx | 11 ++-- .../components/app/app-publisher/index.tsx | 18 ++++-- .../publish-with-multiple-model.tsx | 3 +- .../app/app-publisher/suggested-action.tsx | 3 +- .../app/app-publisher/version-info-modal.tsx | 3 +- .../base/operation-btn/index.tsx | 9 ++- .../config-prompt/advanced-prompt-input.tsx | 9 ++- .../app/configuration/config-prompt/index.tsx | 6 +- .../config-var/config-modal/type-select.tsx | 3 +- .../config-var/config-select/index.tsx | 7 ++- .../app/configuration/config-var/var-item.tsx | 12 ++-- .../config-vision/param-config.tsx | 3 +- .../config/agent-setting-button.tsx | 3 +- .../config/agent/agent-setting/index.tsx | 3 +- .../config/agent/agent-tools/index.tsx | 14 +++-- .../agent-tools/setting-built-in-tool.tsx | 9 ++- .../config/assistant-type-picker/index.tsx | 3 +- .../config/automatic/automatic-btn.tsx | 6 +- .../config/automatic/prompt-toast.tsx | 5 +- .../configuration/config/automatic/result.tsx | 3 +- .../config/automatic/version-selector.tsx | 5 +- .../dataset-config/card-item/index.tsx | 9 ++- .../dataset-config/context-var/var-picker.tsx | 3 +- .../dataset-config/params-config/index.tsx | 3 +- .../dataset-config/settings-modal/index.tsx | 3 +- .../settings-modal/retrieval-section.tsx | 3 +- .../model-parameter-trigger.tsx | 3 +- .../app/configuration/debug/index.tsx | 12 ++-- .../components/app/configuration/index.tsx | 3 +- .../prompt-value-panel/index.tsx | 14 +++-- .../app/configuration/tools/index.tsx | 12 ++-- .../app/create-app-dialog/app-card/index.tsx | 6 +- .../app/create-app-dialog/app-list/index.tsx | 3 +- .../create-app-dialog/app-list/sidebar.tsx | 5 +- .../components/app/create-app-modal/index.tsx | 11 ++-- .../app/create-from-dsl-modal/index.tsx | 7 ++- .../app/create-from-dsl-modal/uploader.tsx | 9 ++- .../components/app/duplicate-modal/index.tsx | 3 +- web/app/components/app/log/filter.tsx | 3 +- web/app/components/app/log/list.tsx | 5 +- web/app/components/app/log/model-info.tsx | 6 +- web/app/components/app/log/var-panel.tsx | 9 ++- .../app/overview/apikey-info-panel/index.tsx | 3 +- web/app/components/app/overview/app-card.tsx | 15 +++-- .../app/overview/customize/index.tsx | 3 +- .../app/overview/embedded/index.tsx | 9 ++- .../app/overview/settings/index.tsx | 5 +- .../components/app/switch-app-modal/index.tsx | 3 +- .../app/text-generate/item/index.tsx | 36 +++++++----- .../app/text-generate/saved-items/index.tsx | 9 ++- .../saved-items/no-data/index.tsx | 9 ++- .../components/app/type-selector/index.tsx | 11 ++-- .../components/app/workflow-log/detail.tsx | 5 +- .../components/app/workflow-log/filter.tsx | 3 +- web/app/components/app/workflow-log/list.tsx | 5 +- web/app/components/apps/app-card.tsx | 11 ++-- web/app/components/apps/footer.tsx | 7 ++- web/app/components/apps/list.tsx | 23 +++++--- .../base/action-button/index.stories.tsx | 57 ++++++++++--------- .../components/base/agent-log-modal/index.tsx | 3 +- .../base/agent-log-modal/tool-call.tsx | 9 ++- web/app/components/base/alert.tsx | 8 ++- .../components/base/app-icon-picker/index.tsx | 3 +- web/app/components/base/app-icon/index.tsx | 3 +- .../base/audio-gallery/AudioPlayer.tsx | 8 ++- web/app/components/base/button/add-button.tsx | 3 +- .../components/base/button/index.stories.tsx | 3 +- .../components/base/button/sync-button.tsx | 3 +- .../chat-with-history/header-in-mobile.tsx | 6 +- .../chat/chat-with-history/header/index.tsx | 12 ++-- .../header/mobile-operation-dropdown.tsx | 5 +- .../chat-with-history/header/operation.tsx | 6 +- .../inputs-form/view-form-dropdown.tsx | 5 +- .../chat/chat-with-history/sidebar/index.tsx | 12 ++-- .../chat-with-history/sidebar/operation.tsx | 18 ++++-- .../base/chat/chat/answer/operation.tsx | 31 +++++----- .../base/chat/chat/answer/tool-detail.tsx | 15 +++-- .../chat/chat/answer/workflow-process.tsx | 12 ++-- .../chat/chat/chat-input-area/operation.tsx | 9 ++- .../base/chat/chat/citation/index.tsx | 3 +- .../components/base/chat/chat/log/index.tsx | 3 +- .../components/base/chat/chat/question.tsx | 5 +- .../chat/embedded-chatbot/header/index.tsx | 13 +++-- .../inputs-form/view-form-dropdown.tsx | 5 +- web/app/components/base/checkbox/index.tsx | 3 +- web/app/components/base/chip/index.tsx | 9 +-- .../components/base/copy-feedback/index.tsx | 9 ++- .../date-picker/footer.tsx | 3 +- .../date-picker/header.tsx | 7 ++- .../date-picker/index.tsx | 11 ++-- .../time-picker/index.tsx | 11 ++-- .../year-and-month-picker/header.tsx | 3 +- web/app/components/base/drawer-plus/index.tsx | 3 +- web/app/components/base/drawer/index.tsx | 3 +- web/app/components/base/dropdown/index.tsx | 6 +- .../components/base/emoji-picker/Inner.tsx | 12 ++-- .../base/encrypted-bottom/index.tsx | 3 +- .../components/base/error-boundary/index.tsx | 5 +- .../annotation-ctrl-button.tsx | 9 ++- .../annotation-reply/index.tsx | 5 +- .../conversation-opener/index.tsx | 3 +- .../conversation-opener/modal.tsx | 11 ++-- .../new-feature-panel/feature-bar.tsx | 9 +-- .../new-feature-panel/feature-card.tsx | 5 +- .../new-feature-panel/file-upload/index.tsx | 3 +- .../file-upload/setting-content.tsx | 3 +- .../new-feature-panel/image-upload/index.tsx | 5 +- .../base/features/new-feature-panel/index.tsx | 5 +- .../new-feature-panel/moderation/index.tsx | 3 +- .../moderation/moderation-setting-modal.tsx | 3 +- .../new-feature-panel/more-like-this.tsx | 3 +- .../text-to-speech/index.tsx | 3 +- .../text-to-speech/param-config-content.tsx | 18 ++++-- .../base/file-uploader/audio-preview.tsx | 3 +- .../file-from-link-or-local/index.tsx | 3 +- .../base/file-uploader/file-list-in-log.tsx | 3 +- .../file-uploader-in-attachment/file-item.tsx | 12 ++-- .../file-uploader-in-attachment/index.tsx | 9 ++- .../file-image-item.tsx | 9 ++- .../file-uploader-in-chat-input/file-item.tsx | 9 ++- .../file-uploader-in-chat-input/index.tsx | 6 +- .../base/file-uploader/pdf-preview.tsx | 7 ++- .../base/file-uploader/video-preview.tsx | 3 +- .../base/form/components/base/base-field.tsx | 3 +- .../field/input-type-select/trigger.tsx | 10 ++-- .../base/fullscreen-modal/index.tsx | 3 +- .../base/image-uploader/audio-preview.tsx | 3 +- .../base/image-uploader/image-list.tsx | 9 ++- .../base/image-uploader/image-preview.tsx | 15 ++--- .../base/image-uploader/video-preview.tsx | 3 +- .../components/base/input-number/index.tsx | 5 +- .../components/base/input-with-copy/index.tsx | 5 +- web/app/components/base/input/index.tsx | 7 ++- .../base/linked-apps-panel/index.tsx | 3 +- web/app/components/base/mermaid/index.tsx | 6 +- .../base/message-log-modal/index.tsx | 3 +- .../components/base/modal-like-wrap/index.tsx | 3 +- web/app/components/base/modal/index.tsx | 5 +- web/app/components/base/modal/modal.tsx | 3 +- .../base/new-audio-button/index.tsx | 6 +- web/app/components/base/notion-icon/index.tsx | 3 +- .../credential-selector/index.tsx | 3 +- .../page-selector/index.tsx | 5 +- .../search-input/index.tsx | 8 ++- web/app/components/base/pagination/index.tsx | 5 +- .../plugins/context-block/component.tsx | 6 +- .../plugins/history-block/component.tsx | 6 +- .../base/prompt-log-modal/index.tsx | 3 +- web/app/components/base/qrcode/index.tsx | 6 +- .../base/radio-card/index.stories.tsx | 45 ++++++++------- .../components/base/search-input/index.tsx | 5 +- web/app/components/base/select/custom.tsx | 16 ++++-- web/app/components/base/select/index.tsx | 28 +++++---- .../components/base/select/locale-signin.tsx | 3 +- web/app/components/base/select/locale.tsx | 3 +- web/app/components/base/select/pure.tsx | 16 ++++-- web/app/components/base/sort/index.tsx | 9 +-- .../base/tab-slider-new/index.stories.tsx | 5 +- web/app/components/base/tag-input/index.tsx | 5 +- .../components/base/tag-management/filter.tsx | 3 +- .../components/base/tag-management/index.tsx | 3 +- .../components/base/tag-management/panel.tsx | 7 ++- .../base/tag-management/tag-item-editor.tsx | 9 ++- .../base/tag-management/tag-remove-modal.tsx | 3 +- .../base/tag-management/trigger.tsx | 5 +- web/app/components/base/theme-selector.tsx | 24 +++++--- web/app/components/base/theme-switcher.tsx | 12 ++-- web/app/components/base/toast/index.tsx | 18 ++++-- web/app/components/base/tooltip/index.tsx | 3 +- web/app/components/base/voice-input/index.tsx | 8 ++- .../components/billing/billing-page/index.tsx | 6 +- web/app/components/billing/plan/index.tsx | 3 +- web/app/components/billing/pricing/footer.tsx | 3 +- web/app/components/billing/pricing/header.tsx | 3 +- .../pricing/plans/cloud-plan-item/button.tsx | 3 +- .../cloud-plan-item/list/item/tooltip.tsx | 3 +- .../plans/self-hosted-plan-item/button.tsx | 3 +- .../plans/self-hosted-plan-item/list/item.tsx | 3 +- .../billing/priority-label/index.tsx | 3 +- .../custom/custom-web-app-brand/index.tsx | 26 ++++++--- .../datasets/common/image-previewer/index.tsx | 9 +-- .../image-uploader-in-chunk/image-input.tsx | 3 +- .../image-uploader-in-chunk/image-item.tsx | 6 +- .../image-input.tsx | 3 +- .../image-item.tsx | 6 +- .../create-from-dsl-modal/header.tsx | 3 +- .../create-from-dsl-modal/uploader.tsx | 12 ++-- .../datasets/create-from-pipeline/footer.tsx | 3 +- .../datasets/create-from-pipeline/header.tsx | 3 +- .../create-from-pipeline/list/create-card.tsx | 3 +- .../list/template-card/actions.tsx | 7 ++- .../list/template-card/details/index.tsx | 5 +- .../list/template-card/edit-pipeline-info.tsx | 3 +- .../create/embedding-process/index.tsx | 12 ++-- .../indexing-progress-item.tsx | 9 ++- .../datasets/create/file-preview/index.tsx | 3 +- .../datasets/create/file-uploader/index.tsx | 5 +- .../create/notion-page-preview/index.tsx | 3 +- .../step-one/components/next-step-button.tsx | 3 +- .../datasets/create/step-one/index.tsx | 3 +- .../datasets/create/step-three/index.tsx | 3 +- .../components/general-chunking-options.tsx | 9 ++- .../components/parent-child-options.tsx | 3 +- .../step-two/components/preview-panel.tsx | 3 +- .../step-two/components/step-two-footer.tsx | 3 +- .../create/step-two/language-select/index.tsx | 7 ++- .../datasets/create/top-bar/index.tsx | 3 +- .../datasets/create/website/base/header.tsx | 5 +- .../create/website/base/options-wrap.tsx | 3 +- .../datasets/create/website/preview.tsx | 3 +- .../documents/components/documents-header.tsx | 8 ++- .../documents/components/empty-element.tsx | 3 +- .../datasets/documents/components/list.tsx | 14 +++-- .../documents/components/operations.tsx | 34 +++++++---- .../create-from-pipeline/actions/index.tsx | 3 +- .../base/credential-selector/item.tsx | 3 +- .../base/credential-selector/trigger.tsx | 3 +- .../data-source/base/header.tsx | 8 ++- .../data-source/local-file/index.tsx | 7 ++- .../online-documents/page-selector/item.tsx | 5 +- .../header/breadcrumbs/dropdown/index.tsx | 3 +- .../online-drive/file-list/list/index.tsx | 3 +- .../data-source/online-drive/header.tsx | 8 ++- .../website-crawl/base/error-message.tsx | 3 +- .../website-crawl/base/options/index.tsx | 3 +- .../create-from-pipeline/left-header.tsx | 3 +- .../preview/chunk-preview.tsx | 3 +- .../preview/file-preview.tsx | 3 +- .../preview/online-document-preview.tsx | 3 +- .../preview/web-preview.tsx | 5 +- .../process-documents/actions.tsx | 3 +- .../process-documents/header.tsx | 3 +- .../processing/embedding-process/index.tsx | 21 ++++--- .../create-from-pipeline/processing/index.tsx | 3 +- .../detail/batch-modal/csv-uploader.tsx | 6 +- .../documents/detail/batch-modal/index.tsx | 3 +- .../detail/completed/child-segment-detail.tsx | 10 +++- .../detail/completed/common/batch-action.tsx | 15 ++--- .../detail/completed/common/empty.tsx | 3 +- .../completed/common/regeneration-modal.tsx | 3 +- .../detail/completed/display-toggle.tsx | 3 +- .../detail/completed/new-child-segment.tsx | 5 +- .../detail/completed/segment-card/index.tsx | 5 +- .../detail/completed/segment-detail.tsx | 12 ++-- .../skeleton/paragraph-list-skeleton.tsx | 3 +- .../detail/completed/status-item.tsx | 3 +- .../documents/detail/embedding/index.tsx | 7 ++- .../datasets/documents/detail/index.tsx | 7 ++- .../documents/detail/metadata/index.tsx | 3 +- .../datasets/documents/detail/new-segment.tsx | 5 +- .../documents/detail/segment-add/index.tsx | 15 +++-- .../pipeline-settings/left-header.tsx | 3 +- .../external-api/external-api-modal/Form.tsx | 3 +- .../external-api/external-api-modal/index.tsx | 15 +++-- .../external-api/external-api-panel/index.tsx | 11 +++- .../external-knowledge-api-card/index.tsx | 9 ++- .../create/ExternalApiSelect.tsx | 8 ++- .../create/ExternalApiSelection.tsx | 3 +- .../create/InfoPanel.tsx | 3 +- .../external-knowledge-base/create/index.tsx | 5 +- .../datasets/extra-info/api-access/card.tsx | 5 +- .../datasets/extra-info/service-api/card.tsx | 5 +- .../datasets/extra-info/statistics.tsx | 3 +- .../formatted-text/flavours/edit-slice.tsx | 3 +- .../hit-testing/components/empty-records.tsx | 3 +- .../components/query-input/index.tsx | 11 ++-- .../hit-testing/components/records.tsx | 11 ++-- .../components/result-item-footer.tsx | 3 +- .../modify-external-retrieval-modal.tsx | 5 +- .../hit-testing/modify-retrieval-modal.tsx | 3 +- .../components/dataset-card-footer.tsx | 5 +- .../components/operations-popover.tsx | 3 +- .../datasets/metadata/add-metadata-button.tsx | 3 +- .../datasets/metadata/base/date-picker.tsx | 20 ++++--- .../metadata/edit-metadata-batch/add-row.tsx | 3 +- .../metadata/edit-metadata-batch/edit-row.tsx | 3 +- .../edit-metadata-batch/edited-beacon.tsx | 3 +- .../input-has-set-multiple-value.tsx | 6 +- .../metadata/edit-metadata-batch/modal.tsx | 3 +- .../metadata-dataset/create-content.tsx | 3 +- .../dataset-metadata-drawer.tsx | 7 ++- .../metadata-dataset/select-metadata.tsx | 5 +- .../metadata/metadata-document/index.tsx | 3 +- .../metadata/metadata-document/info-group.tsx | 5 +- .../metadata/metadata-document/no-data.tsx | 3 +- .../datasets/no-linked-apps-panel.tsx | 5 +- .../datasets/rename-modal/index.tsx | 3 +- .../datasets/settings/form/index.tsx | 3 +- .../settings/index-method/keyword-number.tsx | 3 +- .../settings/permission-selector/index.tsx | 18 +++--- .../permission-selector/member-item.tsx | 3 +- .../permission-selector/permission-item.tsx | 3 +- web/app/components/develop/doc.tsx | 5 +- .../develop/secret-key/secret-key-button.tsx | 3 +- .../secret-key/secret-key-generate.tsx | 3 +- .../develop/secret-key/secret-key-modal.tsx | 8 ++- web/app/components/explore/app-card/index.tsx | 6 +- .../components/explore/banner/banner-item.tsx | 3 +- .../explore/create-app-modal/index.tsx | 7 ++- .../explore/item-operation/index.tsx | 9 ++- web/app/components/explore/sidebar/index.tsx | 7 ++- .../explore/try-app/app-info/index.tsx | 3 +- .../components/explore/try-app/app/chat.tsx | 3 +- web/app/components/explore/try-app/index.tsx | 3 +- .../actions/commands/account.tsx | 3 +- .../actions/commands/community.tsx | 3 +- .../goto-anything/actions/commands/docs.tsx | 3 +- .../goto-anything/actions/commands/forum.tsx | 3 +- .../goto-anything/actions/commands/theme.tsx | 7 ++- .../goto-anything/actions/commands/zen.tsx | 3 +- web/app/components/goto-anything/index.tsx | 3 +- .../components/header/account-about/index.tsx | 3 +- .../header/account-dropdown/compliance.tsx | 7 ++- .../header/account-dropdown/index.tsx | 40 ++++++++----- .../header/account-dropdown/support.tsx | 19 ++++--- .../workplace-selector/index.tsx | 3 +- .../api-based-extension-page/empty.tsx | 8 ++- .../api-based-extension-page/index.tsx | 5 +- .../api-based-extension-page/item.tsx | 9 ++- .../api-based-extension-page/selector.tsx | 11 ++-- .../header/account-setting/collapse/index.tsx | 5 +- .../data-source-page-new/configure.tsx | 6 +- .../install-from-marketplace.tsx | 9 ++- .../data-source-page-new/operator.tsx | 18 ++++-- .../data-source-notion/operate/index.tsx | 15 +++-- .../data-source-page/panel/config-item.tsx | 6 +- .../data-source-page/panel/index.tsx | 3 +- .../header/account-setting/index.tsx | 47 +++++++++------ .../key-validator/ValidateStatus.tsx | 5 +- .../edit-workspace-modal/index.tsx | 3 +- .../account-setting/members-page/index.tsx | 3 +- .../members-page/invite-button.tsx | 3 +- .../members-page/invite-modal/index.tsx | 5 +- .../invite-modal/role-selector.tsx | 3 +- .../members-page/invited-modal/index.tsx | 9 ++- .../members-page/operation/index.tsx | 5 +- .../operation/transfer-ownership.tsx | 6 +- .../transfer-ownership-modal/index.tsx | 3 +- .../member-selector.tsx | 6 +- .../model-provider-page/index.tsx | 9 ++- .../install-from-marketplace.tsx | 9 ++- .../add-credential-in-load-balancing.tsx | 3 +- .../model-auth/add-custom-model.tsx | 9 ++- .../model-auth/authorized/credential-item.tsx | 14 +++-- .../model-auth/authorized/index.tsx | 6 +- .../model-auth/config-model.tsx | 10 +++- .../model-auth/config-provider.tsx | 6 +- .../model-auth/credential-selector.tsx | 9 ++- .../switch-credential-in-load-balancing.tsx | 3 +- .../model-provider-page/model-modal/index.tsx | 3 +- .../agent-model-trigger.tsx | 5 +- .../presets-parameter.tsx | 3 +- .../status-indicators.tsx | 7 ++- .../model-parameter-modal/trigger.tsx | 3 +- .../model-selector/empty-trigger.tsx | 3 +- .../model-selector/feature-icon.tsx | 23 +++++--- .../model-selector/model-trigger.tsx | 5 +- .../model-selector/popup.tsx | 12 ++-- .../provider-added-card/index.tsx | 14 +++-- .../provider-added-card/model-list.tsx | 8 ++- .../model-load-balancing-configs.tsx | 6 +- .../provider-added-card/priority-selector.tsx | 9 ++- .../system-model-selector/index.tsx | 5 +- .../account-setting/plugin-page/index.tsx | 3 +- web/app/components/header/app-back/index.tsx | 5 +- web/app/components/header/app-nav/index.tsx | 9 ++- .../components/header/app-selector/index.tsx | 8 ++- .../components/header/dataset-nav/index.tsx | 9 ++- .../components/header/explore-nav/index.tsx | 8 ++- .../components/header/github-star/index.tsx | 3 +- .../components/header/license-env/index.tsx | 3 +- .../header/nav/nav-selector/index.tsx | 17 ++++-- .../components/header/plan-badge/index.tsx | 6 +- web/app/components/header/tools-nav/index.tsx | 8 ++- .../plugins/base/deprecation-notice.tsx | 3 +- .../plugins/card/base/card-icon.tsx | 5 +- .../plugins/card/base/download-count.tsx | 3 +- web/app/components/plugins/card/index.tsx | 3 +- .../install-plugin/base/loading-error.tsx | 3 +- .../install-bundle/steps/install.tsx | 3 +- .../install-from-github/steps/loaded.tsx | 3 +- .../steps/install.tsx | 3 +- .../steps/uploading.tsx | 3 +- .../steps/install.tsx | 3 +- .../plugins/marketplace/list/card-wrapper.tsx | 3 +- .../marketplace/list/list-with-collection.tsx | 3 +- .../marketplace/plugin-type-switch.tsx | 21 ++++--- .../plugins/marketplace/search-box/index.tsx | 9 +-- .../search-box/trigger/marketplace.tsx | 10 +++- .../search-box/trigger/tool-selector.tsx | 7 ++- .../marketplace/sort-dropdown/index.tsx | 9 ++- .../authorize/add-oauth-button.tsx | 14 +++-- .../authorized-in-data-source-node.tsx | 8 ++- .../plugin-auth/authorized-in-node.tsx | 10 ++-- .../plugins/plugin-auth/authorized/index.tsx | 6 +- .../plugins/plugin-auth/authorized/item.tsx | 15 +++-- .../plugin-auth/plugin-auth-in-agent.tsx | 3 +- .../plugin-auth-in-datasource-node.tsx | 3 +- .../app-selector/app-trigger.tsx | 6 +- .../plugin-detail-panel/detail-header.tsx | 15 +++-- .../plugin-detail-panel/endpoint-card.tsx | 8 +-- .../plugin-detail-panel/endpoint-list.tsx | 12 ++-- .../plugin-detail-panel/endpoint-modal.tsx | 5 +- .../multiple-tool-selector/index.tsx | 9 ++- .../operation-dropdown.tsx | 5 +- .../plugin-detail-panel/strategy-detail.tsx | 9 ++- .../subscription-list/create/common-modal.tsx | 3 +- .../subscription-list/create/index.tsx | 9 +-- .../subscription-list/create/oauth-client.tsx | 9 ++- .../subscription-list/log-viewer.tsx | 18 ++++-- .../subscription-list/selector-entry.tsx | 14 +++-- .../subscription-list/selector-view.tsx | 7 ++- .../subscription-list/subscription-card.tsx | 12 ++-- .../components/reasoning-config-form.tsx | 9 ++- .../tool-selector/components/schema-modal.tsx | 3 +- .../components/tool-credentials-form.tsx | 6 +- .../tool-selector/components/tool-item.tsx | 12 ++-- .../tool-selector/components/tool-trigger.tsx | 9 ++- .../trigger/event-detail-drawer.tsx | 9 ++- .../components/plugins/plugin-item/action.tsx | 7 ++- .../components/plugins/plugin-item/index.tsx | 20 ++++--- .../plugins/plugin-page/debug-info.tsx | 9 ++- .../filter-management/category-filter.tsx | 10 +++- .../filter-management/tag-filter.tsx | 11 +++- .../components/plugins/plugin-page/index.tsx | 12 ++-- .../plugin-page/install-plugin-dropdown.tsx | 5 +- .../components/plugin-task-list.tsx | 12 ++-- .../components/task-status-indicator.tsx | 19 ++++--- web/app/components/plugins/provider-card.tsx | 3 +- .../plugins/readme-panel/entrance.tsx | 3 +- .../components/plugins/readme-panel/index.tsx | 5 +- .../auto-update-setting/index.tsx | 5 +- .../auto-update-setting/plugins-picker.tsx | 3 +- .../auto-update-setting/strategy-picker.tsx | 8 ++- .../editor/form/show-all-settings.tsx | 3 +- .../panel/input-field/editor/index.tsx | 3 +- .../input-field/field-list/field-item.tsx | 12 ++-- .../panel/input-field/field-list/index.tsx | 3 +- .../panel/input-field/footer-tip.tsx | 3 +- .../components/panel/input-field/index.tsx | 5 +- .../panel/input-field/preview/index.tsx | 3 +- .../components/panel/test-run/header.tsx | 3 +- .../test-run/result/result-preview/index.tsx | 3 +- .../publish-as-knowledge-pipeline-modal.tsx | 3 +- .../rag-pipeline/components/publish-toast.tsx | 8 ++- .../rag-pipeline-header/publisher/index.tsx | 3 +- .../rag-pipeline-header/publisher/popup.tsx | 17 ++++-- .../rag-pipeline-header/run-mode.tsx | 9 +-- .../components/update-dsl-modal.tsx | 12 ++-- .../share/text-generation/index.tsx | 9 ++- .../share/text-generation/menu-dropdown.tsx | 6 +- .../share/text-generation/no-data/index.tsx | 6 +- .../share/text-generation/result/header.tsx | 11 ++-- .../share/text-generation/result/index.tsx | 3 +- .../run-batch/res-download/index.tsx | 5 +- .../share/text-generation/run-once/index.tsx | 9 ++- .../get-schema.tsx | 9 ++- .../edit-custom-collection-modal/index.tsx | 3 +- .../edit-custom-collection-modal/test-api.tsx | 3 +- web/app/components/tools/labels/filter.tsx | 3 +- web/app/components/tools/labels/selector.tsx | 3 +- .../components/tools/marketplace/index.tsx | 12 +++- web/app/components/tools/mcp/create-card.tsx | 12 ++-- .../components/tools/mcp/detail/content.tsx | 12 ++-- .../tools/mcp/detail/operation-dropdown.tsx | 12 ++-- .../components/tools/mcp/headers-input.tsx | 7 ++- .../components/tools/mcp/mcp-server-modal.tsx | 3 +- .../components/tools/mcp/mcp-service-card.tsx | 5 +- web/app/components/tools/mcp/modal.tsx | 5 +- .../components/tools/mcp/provider-card.tsx | 3 +- .../tools/provider/custom-create-card.tsx | 6 +- web/app/components/tools/provider/detail.tsx | 6 +- web/app/components/tools/provider/empty.tsx | 3 +- .../tools/workflow-tool/configure-button.tsx | 7 ++- .../workflow-tool/confirm-modal/index.tsx | 3 +- .../components/tools/workflow-tool/index.tsx | 3 +- .../tools/workflow-tool/method-selector.tsx | 3 +- .../workflow-header/features-trigger.tsx | 3 +- .../block-selector/all-start-blocks.tsx | 3 +- .../workflow/block-selector/all-tools.tsx | 3 +- .../block-selector/featured-tools.tsx | 3 +- .../block-selector/featured-triggers.tsx | 3 +- .../market-place-plugin/action.tsx | 3 +- .../market-place-plugin/list.tsx | 7 ++- .../rag-tool-recommendations/index.tsx | 3 +- .../block-selector/view-type-select.tsx | 5 +- .../workflow/dsl-export-confirm-modal.tsx | 5 +- .../components/workflow/header/checklist.tsx | 11 +++- .../workflow/header/header-in-restoring.tsx | 3 +- .../workflow/header/run-and-history.tsx | 6 +- .../components/workflow/header/run-mode.tsx | 5 +- .../components/workflow/header/undo-redo.tsx | 9 ++- .../header/version-history-button.tsx | 3 +- .../workflow/header/view-history.tsx | 11 +++- .../workflow/header/view-workflow-history.tsx | 11 ++-- .../nodes/_base/components/add-button.tsx | 6 +- .../components/agent-strategy-selector.tsx | 5 +- .../components/before-run-form/form-item.tsx | 14 ++++- .../components/before-run-form/panel-wrap.tsx | 6 +- .../error-handle/error-handle-tip.tsx | 3 +- .../error-handle-type-selector.tsx | 8 ++- .../error-handle/fail-branch-card.tsx | 3 +- .../workflow/nodes/_base/components/field.tsx | 6 +- .../_base/components/form-input-item.tsx | 18 ++++-- .../components/form-input-type-switch.tsx | 6 +- .../nodes/_base/components/help-link.tsx | 3 +- .../_base/components/input-field/add.tsx | 3 +- .../components/install-plugin-button.tsx | 3 +- .../mcp-tool-not-support-tooltip.tsx | 3 +- .../nodes/_base/components/next-step/add.tsx | 6 +- .../_base/components/next-step/operator.tsx | 3 +- .../nodes/_base/components/node-control.tsx | 6 +- .../_base/components/node-status-icon.tsx | 14 +++-- .../_base/components/panel-operator/index.tsx | 3 +- .../nodes/_base/components/prompt/editor.tsx | 6 +- .../nodes/_base/components/remove-button.tsx | 3 +- .../_base/components/retry/retry-on-node.tsx | 12 ++-- .../components/switch-plugin-version.tsx | 5 +- .../variable/manage-input-field.tsx | 3 +- .../object-child-tree-panel/picker/field.tsx | 3 +- .../object-child-tree-panel/show/field.tsx | 6 +- .../_base/components/variable/var-list.tsx | 5 +- .../variable/var-reference-picker.tsx | 20 ++++--- .../components/variable/var-type-picker.tsx | 3 +- .../variable-label/base/variable-label.tsx | 9 ++- .../_base/components/workflow-panel/index.tsx | 9 ++- .../workflow-panel/last-run/index.tsx | 3 +- .../workflow-panel/last-run/no-data.tsx | 3 +- .../components/workflow/nodes/_base/node.tsx | 15 +++-- .../components/operation-selector.tsx | 9 ++- .../assigner/components/var-list/index.tsx | 3 +- .../workflow/nodes/assigner/panel.tsx | 6 +- .../workflow/nodes/code/dependency-picker.tsx | 6 +- .../nodes/data-source-empty/index.tsx | 3 +- .../nodes/http/components/api-input.tsx | 3 +- .../if-else/components/condition-add.tsx | 3 +- .../condition-list/condition-item.tsx | 3 +- .../condition-list/condition-operator.tsx | 3 +- .../components/condition-list/index.tsx | 3 +- .../components/condition-number-input.tsx | 3 +- .../if-else/components/condition-wrap.tsx | 16 ++++-- .../workflow/nodes/if-else/panel.tsx | 6 +- .../workflow/nodes/iteration-start/index.tsx | 5 +- .../workflow/nodes/iteration/add-block.tsx | 6 +- .../components/chunk-structure/index.tsx | 3 +- .../components/index-method.tsx | 3 +- .../components/dataset-item.tsx | 9 ++- .../components/metadata/add-condition.tsx | 6 +- .../condition-list/condition-date.tsx | 22 ++++--- .../condition-list/condition-item.tsx | 6 +- .../condition-list/condition-operator.tsx | 3 +- .../condition-list/condition-value-method.tsx | 3 +- .../metadata/condition-list/index.tsx | 3 +- .../metadata-filter-selector.tsx | 8 ++- .../components/metadata/metadata-icon.tsx | 11 +++- .../components/metadata/metadata-panel.tsx | 3 +- .../components/metadata/metadata-trigger.tsx | 3 +- .../components/retrieval-config.tsx | 3 +- .../json-schema-config-modal/code-editor.tsx | 5 +- .../error-message.tsx | 3 +- .../json-importer.tsx | 3 +- .../json-schema-config.tsx | 4 +- .../generated-result.tsx | 7 ++- .../json-schema-generator/prompt-editor.tsx | 5 +- .../visual-editor/add-field.tsx | 3 +- .../visual-editor/edit-card/actions.tsx | 7 ++- .../visual-editor/edit-card/type-selector.tsx | 5 +- .../visual-editor/schema-node.tsx | 5 +- .../nodes/llm/components/structure-output.tsx | 3 +- .../components/workflow/nodes/llm/panel.tsx | 5 +- .../workflow/nodes/loop-start/index.tsx | 5 +- .../workflow/nodes/loop/add-block.tsx | 6 +- .../nodes/loop/components/condition-add.tsx | 3 +- .../condition-list/condition-item.tsx | 3 +- .../condition-list/condition-operator.tsx | 3 +- .../loop/components/condition-list/index.tsx | 3 +- .../components/condition-number-input.tsx | 3 +- .../nodes/loop/components/condition-wrap.tsx | 6 +- .../loop/components/loop-variables/item.tsx | 3 +- .../components/workflow/nodes/loop/panel.tsx | 3 +- .../components/extract-parameter/item.tsx | 9 ++- .../components/class-list.tsx | 5 +- .../nodes/start/components/var-item.tsx | 6 +- .../nodes/start/components/var-list.tsx | 5 +- .../nodes/template-transform/panel.tsx | 6 +- .../nodes/tool/components/copy-id.tsx | 3 +- .../nodes/tool/components/tool-form/item.tsx | 6 +- .../components/trigger-form/item.tsx | 6 +- .../components/monthly-days-selector.tsx | 3 +- .../components/generic-table.tsx | 3 +- .../components/var-group-item.tsx | 8 ++- .../plugins/link-editor-plugin/component.tsx | 12 ++-- .../note-node/note-editor/toolbar/command.tsx | 17 ++++-- .../toolbar/font-size-selector.tsx | 3 +- .../note-editor/toolbar/operator.tsx | 3 +- .../workflow/operator/add-block.tsx | 3 +- .../components/workflow/operator/control.tsx | 21 ++++--- .../workflow/operator/more-actions.tsx | 5 +- .../workflow/operator/zoom-in-out.tsx | 9 ++- .../workflow/panel/chat-record/index.tsx | 3 +- .../workflow/panel/chat-record/user-input.tsx | 5 +- .../components/array-bool-list.tsx | 3 +- .../components/array-value-list.tsx | 3 +- .../components/variable-item.tsx | 5 +- .../components/variable-modal-trigger.tsx | 3 +- .../components/variable-modal.tsx | 7 ++- .../components/variable-type-select.tsx | 5 +- .../panel/chat-variable-panel/index.tsx | 5 +- .../conversation-variable-modal.tsx | 3 +- .../panel/debug-and-preview/index.tsx | 5 +- .../workflow/panel/env-panel/env-item.tsx | 7 ++- .../workflow/panel/env-panel/index.tsx | 3 +- .../panel/env-panel/variable-modal.tsx | 3 +- .../panel/env-panel/variable-trigger.tsx | 3 +- .../panel/global-variable-panel/index.tsx | 3 +- .../context-menu/index.tsx | 3 +- .../panel/version-history-panel/empty.tsx | 3 +- .../filter/filter-item.tsx | 3 +- .../version-history-panel/filter/index.tsx | 3 +- .../panel/version-history-panel/index.tsx | 7 ++- .../workflow/panel/workflow-preview.tsx | 8 ++- .../workflow/run/agent-log/agent-log-item.tsx | 13 +++-- .../run/agent-log/agent-log-nav-more.tsx | 3 +- .../workflow/run/agent-log/agent-log-nav.tsx | 3 +- .../run/agent-log/agent-log-trigger.tsx | 3 +- .../run/agent-log/agent-result-panel.tsx | 3 +- .../iteration-log/iteration-log-trigger.tsx | 3 +- .../iteration-log/iteration-result-panel.tsx | 22 ++++--- .../run/loop-log/loop-log-trigger.tsx | 3 +- .../run/loop-log/loop-result-panel.tsx | 22 ++++--- .../workflow/run/loop-result-panel.tsx | 11 ++-- web/app/components/workflow/run/node.tsx | 27 +++++---- .../run/retry-log/retry-log-trigger.tsx | 9 ++- .../run/retry-log/retry-result-panel.tsx | 6 +- .../components/workflow/run/tracing-panel.tsx | 7 ++- .../workflow/selection-contextmenu.tsx | 24 +++++--- .../components/workflow/simple-node/index.tsx | 15 +++-- .../components/workflow/update-dsl-modal.tsx | 12 ++-- .../workflow/variable-inspect/group.tsx | 16 ++++-- .../variable-inspect/large-data-alert.tsx | 3 +- .../workflow/variable-inspect/panel.tsx | 8 ++- .../workflow/variable-inspect/right.tsx | 20 ++++--- .../workflow/variable-inspect/trigger.tsx | 5 +- .../nodes/iteration-start/index.tsx | 3 +- .../components/nodes/loop-start/index.tsx | 3 +- .../components/zoom-in-out.tsx | 9 ++- .../education-apply/education-apply-page.tsx | 3 +- .../education-apply/expire-notice-modal.tsx | 3 +- .../education-apply/verify-state-modal.tsx | 5 +- .../forgot-password/ChangePasswordForm.tsx | 3 +- web/app/reset-password/check-code/page.tsx | 5 +- web/app/reset-password/page.tsx | 5 +- web/app/reset-password/set-password/page.tsx | 3 +- web/app/signin/check-code/page.tsx | 5 +- web/app/signin/invite-settings/page.tsx | 3 +- web/app/signin/normal-form.tsx | 15 ++--- web/app/signup/check-code/page.tsx | 5 +- 688 files changed, 2998 insertions(+), 1639 deletions(-) diff --git a/web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/time-range-picker/date-picker.tsx b/web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/time-range-picker/date-picker.tsx index 7f4e540340..368c3dcfc3 100644 --- a/web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/time-range-picker/date-picker.tsx +++ b/web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/time-range-picker/date-picker.tsx @@ -2,6 +2,7 @@ import type { Dayjs } from 'dayjs' import type { FC } from 'react' import type { TriggerProps } from '@/app/components/base/date-and-time-picker/types' +import { RiCalendarLine } from '@remixicon/react' import dayjs from 'dayjs' import { noop } from 'es-toolkit/function' import * as React from 'react' @@ -52,7 +53,7 @@ const DatePicker: FC = ({ return (
- +
= ({ return (
{isCustomRange ? t('filter.period.custom', { ns: 'appLog' }) : item?.name}
- +
) }, [isCustomRange]) @@ -59,7 +60,7 @@ const RangeSelector: FC = ({ 'absolute left-2 top-[9px] flex items-center text-text-accent', )} > - )} {item.name} diff --git a/web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/panel.tsx b/web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/panel.tsx index 3fa3f761ab..5e7d98d191 100644 --- a/web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/panel.tsx +++ b/web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/panel.tsx @@ -2,7 +2,10 @@ import type { FC } from 'react' import type { AliyunConfig, ArizeConfig, DatabricksConfig, LangFuseConfig, LangSmithConfig, MLflowConfig, OpikConfig, PhoenixConfig, TencentConfig, WeaveConfig } from './type' import type { TracingStatus } from '@/models/app' - +import { + RiArrowDownDoubleLine, + RiEqualizer2Line, +} from '@remixicon/react' import { useBoolean } from 'ahooks' import { usePathname } from 'next/navigation' import * as React from 'react' @@ -253,11 +256,11 @@ const Panel: FC = () => {
{t(`${I18N_PREFIX}.title`, { ns: 'app' })}
- +
- +
@@ -297,7 +300,7 @@ const Panel: FC = () => { {InUseProviderIcon && }
- +
diff --git a/web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/provider-panel.tsx b/web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/provider-panel.tsx index 92ec33fd3b..dc0fe2fbbc 100644 --- a/web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/provider-panel.tsx +++ b/web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/provider-panel.tsx @@ -1,6 +1,8 @@ 'use client' import type { FC } from 'react' - +import { + RiEqualizer2Line, +} from '@remixicon/react' import * as React from 'react' import { useCallback } from 'react' import { useTranslation } from 'react-i18next' @@ -94,7 +96,7 @@ const ProviderPanel: FC = ({ className="flex h-6 cursor-pointer items-center space-x-1 rounded-md border-[0.5px] border-components-button-secondary-border bg-components-button-secondary-bg px-2 text-text-secondary shadow-xs" onClick={handleConfigBtnClick} > - +
{t(`${I18N_PREFIX}.config`, { ns: 'app' })}
diff --git a/web/app/(shareLayout)/webapp-reset-password/check-code/page.tsx b/web/app/(shareLayout)/webapp-reset-password/check-code/page.tsx index ba27588db3..fbf45259e5 100644 --- a/web/app/(shareLayout)/webapp-reset-password/check-code/page.tsx +++ b/web/app/(shareLayout)/webapp-reset-password/check-code/page.tsx @@ -1,4 +1,5 @@ 'use client' +import { RiArrowLeftLine, RiMailSendFill } from '@remixicon/react' import { useRouter, useSearchParams } from 'next/navigation' import { useState } from 'react' import { useTranslation } from 'react-i18next' @@ -65,7 +66,7 @@ export default function CheckCode() { return (
- +

{t('checkCode.checkYourEmail', { ns: 'login' })}

@@ -91,7 +92,7 @@ export default function CheckCode() {
router.back()} className="flex h-9 cursor-pointer items-center justify-center text-text-tertiary">
- +
{t('back', { ns: 'login' })}
diff --git a/web/app/(shareLayout)/webapp-reset-password/page.tsx b/web/app/(shareLayout)/webapp-reset-password/page.tsx index 228c879a4f..9b9a853cdd 100644 --- a/web/app/(shareLayout)/webapp-reset-password/page.tsx +++ b/web/app/(shareLayout)/webapp-reset-password/page.tsx @@ -1,4 +1,5 @@ 'use client' +import { RiArrowLeftLine, RiLockPasswordLine } from '@remixicon/react' import { noop } from 'es-toolkit/function' import Link from 'next/link' import { useRouter, useSearchParams } from 'next/navigation' @@ -70,7 +71,7 @@ export default function CheckCode() { return (
- +

{t('resetPassword', { ns: 'login' })}

@@ -96,7 +97,7 @@ export default function CheckCode() {
- +
{t('backToLogin', { ns: 'login' })} diff --git a/web/app/(shareLayout)/webapp-reset-password/set-password/page.tsx b/web/app/(shareLayout)/webapp-reset-password/set-password/page.tsx index b8cd658f4f..9f59e8f9eb 100644 --- a/web/app/(shareLayout)/webapp-reset-password/set-password/page.tsx +++ b/web/app/(shareLayout)/webapp-reset-password/set-password/page.tsx @@ -1,4 +1,5 @@ 'use client' +import { RiCheckboxCircleFill } from '@remixicon/react' import { useCountDown } from 'ahooks' import { useRouter, useSearchParams } from 'next/navigation' import { useCallback, useState } from 'react' @@ -167,7 +168,7 @@ const ChangePasswordForm = () => {
- +

{t('passwordChangedTip', { ns: 'login' })} diff --git a/web/app/(shareLayout)/webapp-signin/check-code/page.tsx b/web/app/(shareLayout)/webapp-signin/check-code/page.tsx index 79b2734fda..afea9d668b 100644 --- a/web/app/(shareLayout)/webapp-signin/check-code/page.tsx +++ b/web/app/(shareLayout)/webapp-signin/check-code/page.tsx @@ -1,5 +1,6 @@ 'use client' import type { FormEvent } from 'react' +import { RiArrowLeftLine, RiMailSendFill } from '@remixicon/react' import { useRouter, useSearchParams } from 'next/navigation' import { useCallback, useEffect, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -106,7 +107,7 @@ export default function CheckCode() { return (
- +

{t('checkCode.checkYourEmail', { ns: 'login' })}

@@ -139,7 +140,7 @@ export default function CheckCode() {
router.back()} className="flex h-9 cursor-pointer items-center justify-center text-text-tertiary">
- +
{t('back', { ns: 'login' })}
diff --git a/web/app/(shareLayout)/webapp-signin/normalForm.tsx b/web/app/(shareLayout)/webapp-signin/normalForm.tsx index 07b118781d..b15145346f 100644 --- a/web/app/(shareLayout)/webapp-signin/normalForm.tsx +++ b/web/app/(shareLayout)/webapp-signin/normalForm.tsx @@ -1,4 +1,5 @@ 'use client' +import { RiContractLine, RiDoorLockLine, RiErrorWarningFill } from '@remixicon/react' import Link from 'next/link' import * as React from 'react' import { useCallback, useEffect, useState } from 'react' @@ -56,8 +57,8 @@ const NormalForm = () => {
- - + +

{t('licenseLost', { ns: 'login' })}

{t('licenseLostTip', { ns: 'login' })}

@@ -72,8 +73,8 @@ const NormalForm = () => {
- - + +

{t('licenseExpired', { ns: 'login' })}

{t('licenseExpiredTip', { ns: 'login' })}

@@ -88,8 +89,8 @@ const NormalForm = () => {
- - + +

{t('licenseInactive', { ns: 'login' })}

{t('licenseInactiveTip', { ns: 'login' })}

@@ -155,7 +156,7 @@ const NormalForm = () => { <>
- +

{t('noLoginMethod', { ns: 'login' })}

{t('noLoginMethodTip', { ns: 'login' })}

diff --git a/web/app/account/(commonLayout)/account-page/AvatarWithEdit.tsx b/web/app/account/(commonLayout)/account-page/AvatarWithEdit.tsx index 9440326429..49b59704b1 100644 --- a/web/app/account/(commonLayout)/account-page/AvatarWithEdit.tsx +++ b/web/app/account/(commonLayout)/account-page/AvatarWithEdit.tsx @@ -4,6 +4,7 @@ import type { Area } from 'react-easy-crop' import type { OnImageInput } from '@/app/components/base/app-icon-picker/ImageInput' import type { AvatarProps } from '@/app/components/base/avatar' import type { ImageFile } from '@/types/app' +import { RiDeleteBin5Line, RiPencilLine } from '@remixicon/react' import * as React from 'react' import { useCallback, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -121,12 +122,12 @@ const AvatarWithEdit = ({ onSave, ...props }: AvatarWithEditProps) => { {hoverArea === 'right' && !onAvatarError ? ( - + ) : ( - + )}
diff --git a/web/app/account/(commonLayout)/account-page/email-change-modal.tsx b/web/app/account/(commonLayout)/account-page/email-change-modal.tsx index 59fa484016..87ca6a689c 100644 --- a/web/app/account/(commonLayout)/account-page/email-change-modal.tsx +++ b/web/app/account/(commonLayout)/account-page/email-change-modal.tsx @@ -1,4 +1,5 @@ import type { ResponseError } from '@/service/fetch' +import { RiCloseLine } from '@remixicon/react' import { noop } from 'es-toolkit/function' import { useRouter } from 'next/navigation' import * as React from 'react' @@ -204,7 +205,7 @@ const EmailChangeModal = ({ onClose, email, show }: Props) => { className="!w-[420px] !p-6" >
- +
{step === STEP.start && ( <> diff --git a/web/app/account/(commonLayout)/account-page/index.tsx b/web/app/account/(commonLayout)/account-page/index.tsx index 68f3029a6a..f01efc002c 100644 --- a/web/app/account/(commonLayout)/account-page/index.tsx +++ b/web/app/account/(commonLayout)/account-page/index.tsx @@ -1,7 +1,9 @@ 'use client' import type { IItem } from '@/app/components/header/account-setting/collapse' import type { App } from '@/types/app' - +import { + RiGraduationCapFill, +} from '@remixicon/react' import { useState } from 'react' import { useTranslation } from 'react-i18next' import { useContext } from 'use-context-selector' @@ -153,7 +155,7 @@ export default function AccountPage() { {userProfile.name} {isEducationAccount && ( - + EDU )} diff --git a/web/app/account/(commonLayout)/avatar.tsx b/web/app/account/(commonLayout)/avatar.tsx index 5e366e504a..8ea29e8e45 100644 --- a/web/app/account/(commonLayout)/avatar.tsx +++ b/web/app/account/(commonLayout)/avatar.tsx @@ -1,6 +1,8 @@ 'use client' import { Menu, MenuButton, MenuItem, MenuItems, Transition } from '@headlessui/react' - +import { + RiGraduationCapFill, +} from '@remixicon/react' import { useRouter } from 'next/navigation' import { Fragment } from 'react' import { useTranslation } from 'react-i18next' @@ -75,7 +77,7 @@ export default function AppSelector() { {userProfile.name} {isEducationAccount && ( - + EDU )} diff --git a/web/app/account/(commonLayout)/header.tsx b/web/app/account/(commonLayout)/header.tsx index 8bb0d2db11..bb58be87a8 100644 --- a/web/app/account/(commonLayout)/header.tsx +++ b/web/app/account/(commonLayout)/header.tsx @@ -1,4 +1,5 @@ 'use client' +import { RiArrowRightUpLine, RiRobot2Line } from '@remixicon/react' import { useRouter } from 'next/navigation' import { useCallback } from 'react' import { useTranslation } from 'react-i18next' @@ -35,9 +36,9 @@ const Header = () => {
diff --git a/web/app/account/oauth/authorize/page.tsx b/web/app/account/oauth/authorize/page.tsx index 4f09619f4d..c923d6457a 100644 --- a/web/app/account/oauth/authorize/page.tsx +++ b/web/app/account/oauth/authorize/page.tsx @@ -167,7 +167,7 @@ export default function OAuthAuthorize() { const Icon = SCOPE_INFO_MAP[scope] return (
- {Icon ? : } + {Icon ? : } {Icon.label}
) diff --git a/web/app/components/app-sidebar/app-info.tsx b/web/app/components/app-sidebar/app-info.tsx index 056029408a..255feaccdf 100644 --- a/web/app/components/app-sidebar/app-info.tsx +++ b/web/app/components/app-sidebar/app-info.tsx @@ -2,7 +2,15 @@ import type { Operation } from './app-operations' import type { DuplicateAppModalProps } from '@/app/components/app/duplicate-modal' import type { CreateAppModalProps } from '@/app/components/explore/create-app-modal' import type { EnvironmentVariable } from '@/app/components/workflow/types' - +import { + RiDeleteBinLine, + RiEditLine, + RiEqualizer2Line, + RiExchange2Line, + RiFileCopy2Line, + RiFileDownloadLine, + RiFileUploadLine, +} from '@remixicon/react' import dynamic from 'next/dynamic' import { useRouter } from 'next/navigation' import * as React from 'react' @@ -208,7 +216,7 @@ const AppInfo = ({ expand, onlyShowDetail = false, openState = false, onDetailEx { id: 'edit', title: t('editApp', { ns: 'app' }), - icon: , + icon: , onClick: () => { setOpen(false) onDetailExpand?.(false) @@ -218,7 +226,7 @@ const AppInfo = ({ expand, onlyShowDetail = false, openState = false, onDetailEx { id: 'duplicate', title: t('duplicate', { ns: 'app' }), - icon: , + icon: , onClick: () => { setOpen(false) onDetailExpand?.(false) @@ -228,7 +236,7 @@ const AppInfo = ({ expand, onlyShowDetail = false, openState = false, onDetailEx { id: 'export', title: t('export', { ns: 'app' }), - icon: , + icon: , onClick: exportCheck, }, ] @@ -239,7 +247,7 @@ const AppInfo = ({ expand, onlyShowDetail = false, openState = false, onDetailEx ? [{ id: 'import', title: t('common.importDSL', { ns: 'workflow' }), - icon: , + icon: , onClick: () => { setOpen(false) onDetailExpand?.(false) @@ -259,7 +267,7 @@ const AppInfo = ({ expand, onlyShowDetail = false, openState = false, onDetailEx { id: 'delete', title: t('operation.delete', { ns: 'common' }), - icon: , + icon: , onClick: () => { setOpen(false) onDetailExpand?.(false) @@ -273,7 +281,7 @@ const AppInfo = ({ expand, onlyShowDetail = false, openState = false, onDetailEx ? { id: 'switch', title: t('switch', { ns: 'app' }), - icon: , + icon: , onClick: () => { setOpen(false) onDetailExpand?.(false) @@ -307,7 +315,7 @@ const AppInfo = ({ expand, onlyShowDetail = false, openState = false, onDetailEx {expand && (
- +
)} @@ -315,7 +323,7 @@ const AppInfo = ({ expand, onlyShowDetail = false, openState = false, onDetailEx {!expand && (
- +
)} diff --git a/web/app/components/app-sidebar/app-operations.tsx b/web/app/components/app-sidebar/app-operations.tsx index 503a2797a4..871d8a19e8 100644 --- a/web/app/components/app-sidebar/app-operations.tsx +++ b/web/app/components/app-sidebar/app-operations.tsx @@ -1,4 +1,5 @@ import type { JSX } from 'react' +import { RiMoreLine } from '@remixicon/react' import { cloneElement, useCallback, useEffect, useMemo, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' import Button from '@/app/components/base/button' @@ -145,7 +146,7 @@ const AppOperations = ({ className="gap-[1px]" tabIndex={-1} > - + {t('operation.more', { ns: 'common' })} @@ -180,7 +181,7 @@ const AppOperations = ({ variant="secondary" className="gap-[1px]" > - + {t('operation.more', { ns: 'common' })} diff --git a/web/app/components/app-sidebar/app-sidebar-dropdown.tsx b/web/app/components/app-sidebar/app-sidebar-dropdown.tsx index 8fa95b6abf..9ed86cbf32 100644 --- a/web/app/components/app-sidebar/app-sidebar-dropdown.tsx +++ b/web/app/components/app-sidebar/app-sidebar-dropdown.tsx @@ -1,5 +1,8 @@ import type { NavIcon } from './navLink' - +import { + RiEqualizer2Line, + RiMenuLine, +} from '@remixicon/react' import * as React from 'react' import { useCallback, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -65,7 +68,7 @@ const AppSidebarDropdown = ({ navigation }: Props) => { background={appDetail.icon_background} imageUrl={appDetail.icon_url} /> - +
@@ -88,7 +91,7 @@ const AppSidebarDropdown = ({ navigation }: Props) => { />
- +
diff --git a/web/app/components/app-sidebar/dataset-info/dropdown.tsx b/web/app/components/app-sidebar/dataset-info/dropdown.tsx index 33b61177a0..4d7c832e04 100644 --- a/web/app/components/app-sidebar/dataset-info/dropdown.tsx +++ b/web/app/components/app-sidebar/dataset-info/dropdown.tsx @@ -1,4 +1,5 @@ import type { DataSet } from '@/models/datasets' +import { RiMoreFill } from '@remixicon/react' import { useRouter } from 'next/navigation' import * as React from 'react' import { useCallback, useState } from 'react' @@ -119,7 +120,7 @@ const DropDown = ({ > - + diff --git a/web/app/components/app-sidebar/dataset-sidebar-dropdown.tsx b/web/app/components/app-sidebar/dataset-sidebar-dropdown.tsx index 44f6dda479..c81125e973 100644 --- a/web/app/components/app-sidebar/dataset-sidebar-dropdown.tsx +++ b/web/app/components/app-sidebar/dataset-sidebar-dropdown.tsx @@ -1,6 +1,8 @@ import type { NavIcon } from './navLink' import type { DataSet } from '@/models/datasets' - +import { + RiMenuLine, +} from '@remixicon/react' import * as React from 'react' import { useCallback, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -86,7 +88,7 @@ const DatasetSidebarDropdown = ({ background={iconInfo.icon_background} imageUrl={iconInfo.icon_url} /> - +
diff --git a/web/app/components/app-sidebar/toggle-button.tsx b/web/app/components/app-sidebar/toggle-button.tsx index 89a59f8aef..a6bdee4f78 100644 --- a/web/app/components/app-sidebar/toggle-button.tsx +++ b/web/app/components/app-sidebar/toggle-button.tsx @@ -1,3 +1,4 @@ +import { RiArrowLeftSLine, RiArrowRightSLine } from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' import { cn } from '@/utils/classnames' @@ -59,8 +60,8 @@ const ToggleButton = ({ > { expand - ? - : + ? + : } diff --git a/web/app/components/app/annotation/batch-action.tsx b/web/app/components/app/annotation/batch-action.tsx index d142363748..4d9ce3902a 100644 --- a/web/app/components/app/annotation/batch-action.tsx +++ b/web/app/components/app/annotation/batch-action.tsx @@ -1,4 +1,5 @@ import type { FC } from 'react' +import { RiDeleteBinLine } from '@remixicon/react' import { useBoolean } from 'ahooks' import * as React from 'react' import { useTranslation } from 'react-i18next' @@ -48,7 +49,7 @@ const BatchAction: FC = ({
- + diff --git a/web/app/components/app/annotation/batch-add-annotation-modal/csv-uploader.tsx b/web/app/components/app/annotation/batch-add-annotation-modal/csv-uploader.tsx index c2dd5bbf03..6d5eb1ef95 100644 --- a/web/app/components/app/annotation/batch-add-annotation-modal/csv-uploader.tsx +++ b/web/app/components/app/annotation/batch-add-annotation-modal/csv-uploader.tsx @@ -1,5 +1,6 @@ 'use client' import type { FC } from 'react' +import { RiDeleteBinLine } from '@remixicon/react' import * as React from 'react' import { useEffect, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -115,7 +116,7 @@ const CSVUploader: FC = ({
- +
diff --git a/web/app/components/app/annotation/batch-add-annotation-modal/index.tsx b/web/app/components/app/annotation/batch-add-annotation-modal/index.tsx index e503a28202..be1518b708 100644 --- a/web/app/components/app/annotation/batch-add-annotation-modal/index.tsx +++ b/web/app/components/app/annotation/batch-add-annotation-modal/index.tsx @@ -1,5 +1,6 @@ 'use client' import type { FC } from 'react' +import { RiCloseLine } from '@remixicon/react' import { noop } from 'es-toolkit/function' import * as React from 'react' import { useEffect, useState } from 'react' @@ -91,7 +92,7 @@ const BatchModal: FC = ({
{t('batchModal.title', { ns: 'appAnnotation' })}
- +
= ({ className, title }) => (
- +
{title}
= ({ setIsEdit(true) }} > - +
{t('operation.edit', { ns: 'common' })}
)} @@ -116,7 +117,7 @@ const EditItem: FC = ({ }} >
- +
{t('operation.delete', { ns: 'common' })}
diff --git a/web/app/components/app/annotation/header-opts/index.tsx b/web/app/components/app/annotation/header-opts/index.tsx index ff74ba097a..5add1aed32 100644 --- a/web/app/components/app/annotation/header-opts/index.tsx +++ b/web/app/components/app/annotation/header-opts/index.tsx @@ -2,7 +2,11 @@ import type { FC } from 'react' import type { AnnotationItemBasic } from '../type' import { Menu, MenuButton, MenuItems, Transition } from '@headlessui/react' - +import { + RiAddLine, + RiDeleteBinLine, + RiMoreFill, +} from '@remixicon/react' import * as React from 'react' import { Fragment, useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -149,7 +153,7 @@ const HeaderOptions: FC = ({ onClick={handleClearAll} className="mx-1 flex h-9 w-[calc(100%_-_8px)] cursor-pointer items-center space-x-2 rounded-lg px-3 py-2 text-red-600 hover:bg-red-50 disabled:opacity-50" > - + {t('table.header.clearAll', { ns: 'appAnnotation' })} @@ -163,7 +167,7 @@ const HeaderOptions: FC = ({ return (
= ({ position="br" trigger="click" btnElement={ - + } btnClassName="btn btn-secondary btn-medium w-8 p-0" className="!z-20 h-fit !w-[155px]" diff --git a/web/app/components/app/annotation/index.tsx b/web/app/components/app/annotation/index.tsx index ef5cddbf3f..553836d73c 100644 --- a/web/app/components/app/annotation/index.tsx +++ b/web/app/components/app/annotation/index.tsx @@ -4,6 +4,7 @@ import type { QueryParam } from './filter' import type { AnnotationItem, AnnotationItemBasic } from './type' import type { AnnotationReplyConfig } from '@/models/debug' import type { App } from '@/types/app' +import { RiEqualizer2Line } from '@remixicon/react' import { useDebounce } from 'ahooks' import * as React from 'react' import { useEffect, useState } from 'react' @@ -181,7 +182,7 @@ const Annotation: FC = (props) => {
setIsShowEdit(true)}> - +
)} diff --git a/web/app/components/app/annotation/list.tsx b/web/app/components/app/annotation/list.tsx index 55b0bb2427..75818f731c 100644 --- a/web/app/components/app/annotation/list.tsx +++ b/web/app/components/app/annotation/list.tsx @@ -1,6 +1,7 @@ 'use client' import type { FC } from 'react' import type { AnnotationItem } from './type' +import { RiDeleteBinLine, RiEditLine } from '@remixicon/react' import * as React from 'react' import { useCallback, useMemo } from 'react' import { useTranslation } from 'react-i18next' @@ -115,7 +116,7 @@ const List: FC = ({ {/* Actions */}
onView(item)}> - + { @@ -123,7 +124,7 @@ const List: FC = ({ setShowConfirmDelete(true) }} > - +
diff --git a/web/app/components/app/app-access-control/access-control-dialog.tsx b/web/app/components/app/app-access-control/access-control-dialog.tsx index f8c49892c5..da029f1b49 100644 --- a/web/app/components/app/app-access-control/access-control-dialog.tsx +++ b/web/app/components/app/app-access-control/access-control-dialog.tsx @@ -1,5 +1,6 @@ import type { ReactNode } from 'react' import { Dialog, Transition } from '@headlessui/react' +import { RiCloseLine } from '@remixicon/react' import { Fragment, useCallback } from 'react' import { cn } from '@/utils/classnames' @@ -46,7 +47,7 @@ const AccessControlDialog = ({ >
close()} className="absolute right-5 top-5 z-10 flex h-8 w-8 cursor-pointer items-center justify-center"> - +
{children}
diff --git a/web/app/components/app/app-access-control/add-member-or-group-pop.tsx b/web/app/components/app/app-access-control/add-member-or-group-pop.tsx index 2e9e21edee..5c803a91f0 100644 --- a/web/app/components/app/app-access-control/add-member-or-group-pop.tsx +++ b/web/app/components/app/app-access-control/add-member-or-group-pop.tsx @@ -1,6 +1,7 @@ 'use client' import type { AccessControlAccount, AccessControlGroup, Subject, SubjectAccount, SubjectGroup } from '@/models/access-control' import { FloatingOverlay } from '@floating-ui/react' +import { RiAddCircleFill, RiArrowRightSLine, RiOrganizationChart } from '@remixicon/react' import { useDebounce } from 'ahooks' import { useCallback, useEffect, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -47,7 +48,7 @@ export default function AddMemberOrGroupDialog() { @@ -157,7 +158,7 @@ function GroupItem({ group }: GroupItemProps) {
- +

{group.name}

@@ -171,7 +172,7 @@ function GroupItem({ group }: GroupItemProps) { onClick={handleExpandClick} > {t('accessControlDialog.operateGroupAndMember.expand', { ns: 'app' })} - + ) diff --git a/web/app/components/app/app-access-control/index.tsx b/web/app/components/app/app-access-control/index.tsx index 15b0d90908..8d46e41a11 100644 --- a/web/app/components/app/app-access-control/index.tsx +++ b/web/app/components/app/app-access-control/index.tsx @@ -2,6 +2,7 @@ import type { Subject } from '@/models/access-control' import type { App } from '@/types/app' import { Description as DialogDescription, DialogTitle } from '@headlessui/react' +import { RiBuildingLine, RiGlobalLine, RiVerifiedBadgeLine } from '@remixicon/react' import { useCallback, useEffect } from 'react' import { useTranslation } from 'react-i18next' import { useGlobalPublicStore } from '@/context/global-public-context' @@ -77,7 +78,7 @@ export default function AccessControl(props: AccessControlProps) {
- +

{t('accessControlDialog.accessItems.organization', { ns: 'app' })}

@@ -88,7 +89,7 @@ export default function AccessControl(props: AccessControlProps) {
- +

{t('accessControlDialog.accessItems.external', { ns: 'app' })}

{!hideTip && } @@ -96,7 +97,7 @@ export default function AccessControl(props: AccessControlProps) {
- +

{t('accessControlDialog.accessItems.anyone', { ns: 'app' })}

diff --git a/web/app/components/app/app-access-control/specific-groups-or-members.tsx b/web/app/components/app/app-access-control/specific-groups-or-members.tsx index ad973ddda8..8ca817c872 100644 --- a/web/app/components/app/app-access-control/specific-groups-or-members.tsx +++ b/web/app/components/app/app-access-control/specific-groups-or-members.tsx @@ -1,5 +1,6 @@ 'use client' import type { AccessControlAccount, AccessControlGroup } from '@/models/access-control' +import { RiAlertFill, RiCloseCircleFill, RiLockLine, RiOrganizationChart } from '@remixicon/react' import { useCallback, useEffect } from 'react' import { useTranslation } from 'react-i18next' import { AccessMode } from '@/models/access-control' @@ -27,7 +28,7 @@ export default function SpecificGroupsOrMembers() { return (
- +

{t('accessControlDialog.accessItems.specific', { ns: 'app' })}

@@ -38,7 +39,7 @@ export default function SpecificGroupsOrMembers() {
- +

{t('accessControlDialog.accessItems.specific', { ns: 'app' })}

@@ -85,7 +86,7 @@ function GroupItem({ group }: GroupItemProps) { }, [group, setSpecificGroups, specificGroups]) return ( } + icon={} onRemove={handleRemoveGroup} >

{group.name}

@@ -128,7 +129,7 @@ function BaseItem({ icon, onRemove, children }: BaseItemProps) {
{children}
- +
) @@ -138,7 +139,7 @@ export function WebAppSSONotEnabledTip() { const { t } = useTranslation() return ( - + ) } diff --git a/web/app/components/app/app-publisher/index.tsx b/web/app/components/app/app-publisher/index.tsx index 89a70b0194..0a026a680b 100644 --- a/web/app/components/app/app-publisher/index.tsx +++ b/web/app/components/app/app-publisher/index.tsx @@ -3,9 +3,15 @@ import type { InputVar, Variable } from '@/app/components/workflow/types' import type { I18nKeysByPrefix } from '@/types/i18n' import type { PublishWorkflowParams } from '@/types/workflow' import { + RiArrowDownSLine, + RiArrowRightSLine, RiBuildingLine, RiGlobalLine, RiLockLine, + RiPlanetLine, + RiPlayCircleLine, + RiPlayList2Line, + RiTerminalBoxLine, RiVerifiedBadgeLine, } from '@remixicon/react' import { useKeyPress } from 'ahooks' @@ -280,7 +286,7 @@ const AppPublisher = ({ disabled={disabled} > {t('common.publish', { ns: 'workflow' })} - + @@ -392,7 +398,7 @@ const AppPublisher = ({
{!isAppAccessSet &&

{t('publishApp.notSet', { ns: 'app' })}

}
- +
{!isAppAccessSet &&

{t('publishApp.notSetDesc', { ns: 'app' })}

} @@ -407,7 +413,7 @@ const AppPublisher = ({ className="flex-1" disabled={disabledFunctionButton} link={appURL} - icon={} + icon={} > {t('common.runApp', { ns: 'workflow' })} @@ -419,7 +425,7 @@ const AppPublisher = ({ className="flex-1" disabled={disabledFunctionButton} link={`${appURL}${appURL.includes('?') ? '&' : '?'}mode=batch`} - icon={} + icon={} > {t('common.batchRunApp', { ns: 'workflow' })} @@ -445,7 +451,7 @@ const AppPublisher = ({ handleOpenInExplore() }} disabled={disabledFunctionButton} - icon={} + icon={} > {t('common.openInExplore', { ns: 'workflow' })} @@ -455,7 +461,7 @@ const AppPublisher = ({ className="flex-1" disabled={!publishedAt || missingStartNode} link="./develop" - icon={} + icon={} > {t('common.accessAPIReference', { ns: 'workflow' })} diff --git a/web/app/components/app/app-publisher/publish-with-multiple-model.tsx b/web/app/components/app/app-publisher/publish-with-multiple-model.tsx index 6685915517..edc2bd32a8 100644 --- a/web/app/components/app/app-publisher/publish-with-multiple-model.tsx +++ b/web/app/components/app/app-publisher/publish-with-multiple-model.tsx @@ -1,6 +1,7 @@ import type { FC } from 'react' import type { ModelAndParameter } from '../configuration/debug/types' import type { Model, ModelItem } from '@/app/components/header/account-setting/model-provider-page/declarations' +import { RiArrowDownSLine } from '@remixicon/react' import { useState } from 'react' import { useTranslation } from 'react-i18next' import Button from '@/app/components/base/button' @@ -72,7 +73,7 @@ const PublishWithMultipleModel: FC = ({ className="mt-3 w-full" > {t('operation.applyConfig', { ns: 'appDebug' })} - + diff --git a/web/app/components/app/app-publisher/suggested-action.tsx b/web/app/components/app/app-publisher/suggested-action.tsx index 63d154cbf4..ee564cbf84 100644 --- a/web/app/components/app/app-publisher/suggested-action.tsx +++ b/web/app/components/app/app-publisher/suggested-action.tsx @@ -1,4 +1,5 @@ import type { HTMLProps, PropsWithChildren } from 'react' +import { RiArrowRightUpLine } from '@remixicon/react' import { cn } from '@/utils/classnames' export type SuggestedActionProps = PropsWithChildren & { @@ -24,7 +25,7 @@ const SuggestedAction = ({ icon, link, disabled, children, className, onClick, . >
{icon}
{children}
- + ) } diff --git a/web/app/components/app/app-publisher/version-info-modal.tsx b/web/app/components/app/app-publisher/version-info-modal.tsx index 1f033666c6..ee896cf583 100644 --- a/web/app/components/app/app-publisher/version-info-modal.tsx +++ b/web/app/components/app/app-publisher/version-info-modal.tsx @@ -1,5 +1,6 @@ import type { FC } from 'react' import type { VersionHistory } from '@/types/workflow' +import { RiCloseLine } from '@remixicon/react' import * as React from 'react' import { useCallback, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -77,7 +78,7 @@ const VersionInfoModal: FC = ({ {versionInfo?.marked_name ? t('versionHistory.editVersionInfo', { ns: 'workflow' }) : t('versionHistory.nameThisVersion', { ns: 'workflow' })}
- +
diff --git a/web/app/components/app/configuration/base/operation-btn/index.tsx b/web/app/components/app/configuration/base/operation-btn/index.tsx index 0224aaeaf9..d33b632071 100644 --- a/web/app/components/app/configuration/base/operation-btn/index.tsx +++ b/web/app/components/app/configuration/base/operation-btn/index.tsx @@ -1,6 +1,9 @@ 'use client' import type { FC } from 'react' - +import { + RiAddLine, + RiEditLine, +} from '@remixicon/react' import { noop } from 'es-toolkit/function' import * as React from 'react' import { useTranslation } from 'react-i18next' @@ -14,8 +17,8 @@ export type IOperationBtnProps = { } const iconMap = { - add: , - edit: , + add: , + edit: , } const OperationBtn: FC = ({ diff --git a/web/app/components/app/configuration/config-prompt/advanced-prompt-input.tsx b/web/app/components/app/configuration/config-prompt/advanced-prompt-input.tsx index aa3225e3ec..d0e9eb586c 100644 --- a/web/app/components/app/configuration/config-prompt/advanced-prompt-input.tsx +++ b/web/app/components/app/configuration/config-prompt/advanced-prompt-input.tsx @@ -2,7 +2,10 @@ import type { FC } from 'react' import type { ExternalDataTool } from '@/models/common' import type { PromptRole, PromptVariable } from '@/models/debug' - +import { + RiDeleteBinLine, + RiErrorWarningFill, +} from '@remixicon/react' import { useBoolean } from 'ahooks' import copy from 'copy-to-clipboard' import { produce } from 'immer' @@ -148,7 +151,7 @@ const AdvancedPromptInput: FC = ({ }} >
- +
{t('promptMode.contextMissing', { ns: 'appDebug' })}
)} diff --git a/web/app/components/app/configuration/config-var/config-modal/type-select.tsx b/web/app/components/app/configuration/config-var/config-modal/type-select.tsx index 40ce0447cf..66ec5a2a69 100644 --- a/web/app/components/app/configuration/config-var/config-modal/type-select.tsx +++ b/web/app/components/app/configuration/config-var/config-modal/type-select.tsx @@ -1,6 +1,7 @@ 'use client' import type { FC } from 'react' import type { InputVarType } from '@/app/components/workflow/types' +import { ChevronDownIcon } from '@heroicons/react/20/solid' import * as React from 'react' import { useState } from 'react' import Badge from '@/app/components/base/badge' @@ -61,7 +62,7 @@ const TypeSelector: FC = ({
{inputVarTypeToVarType(selectedItem?.value as InputVarType)} - +
diff --git a/web/app/components/app/configuration/config-var/config-select/index.tsx b/web/app/components/app/configuration/config-var/config-select/index.tsx index 41ec158291..36ea0a73c9 100644 --- a/web/app/components/app/configuration/config-var/config-select/index.tsx +++ b/web/app/components/app/configuration/config-var/config-select/index.tsx @@ -1,5 +1,6 @@ 'use client' import type { FC } from 'react' +import { RiAddLine, RiDeleteBinLine, RiDraggable } from '@remixicon/react' import * as React from 'react' import { useState } from 'react' import { useTranslation } from 'react-i18next' @@ -48,7 +49,7 @@ const ConfigSelect: FC = ({ )} key={index} > - + = ({ onMouseEnter={() => setDeletingID(index)} onMouseLeave={() => setDeletingID(null)} > - +
))} @@ -88,7 +89,7 @@ const ConfigSelect: FC = ({ onClick={() => { onChange([...options, '']) }} className="mt-1 flex h-9 cursor-pointer items-center gap-2 rounded-lg bg-components-button-tertiary-bg px-3 text-components-button-tertiary-text hover:bg-components-button-tertiary-bg-hover" > - +
{t('variableConfig.addOption', { ns: 'appDebug' })}

diff --git a/web/app/components/app/configuration/config-var/var-item.tsx b/web/app/components/app/configuration/config-var/var-item.tsx index ae86784c68..b26249dac8 100644 --- a/web/app/components/app/configuration/config-var/var-item.tsx +++ b/web/app/components/app/configuration/config-var/var-item.tsx @@ -1,7 +1,11 @@ 'use client' import type { FC } from 'react' import type { IInputTypeIconProps } from './input-type-icon' - +import { + RiDeleteBinLine, + RiDraggable, + RiEditLine, +} from '@remixicon/react' import * as React from 'react' import { useState } from 'react' import Badge from '@/app/components/base/badge' @@ -38,7 +42,7 @@ const VarItem: FC = ({
{canDrag && ( - + )}
@@ -58,7 +62,7 @@ const VarItem: FC = ({ className="mr-1 flex h-6 w-6 cursor-pointer items-center justify-center rounded-md hover:bg-black/5" onClick={onEdit} > - +
= ({ onMouseOver={() => setIsDeleting(true)} onMouseLeave={() => setIsDeleting(false)} > - +
diff --git a/web/app/components/app/configuration/config-vision/param-config.tsx b/web/app/components/app/configuration/config-vision/param-config.tsx index 04c8341ebc..9199145ddb 100644 --- a/web/app/components/app/configuration/config-vision/param-config.tsx +++ b/web/app/components/app/configuration/config-vision/param-config.tsx @@ -1,5 +1,6 @@ 'use client' import type { FC } from 'react' +import { RiSettings2Line } from '@remixicon/react' import { memo, useState } from 'react' import { useTranslation } from 'react-i18next' import Button from '@/app/components/base/button' @@ -26,7 +27,7 @@ const ParamsConfig: FC = () => { > setOpen(v => !v)}> diff --git a/web/app/components/app/configuration/config/agent-setting-button.tsx b/web/app/components/app/configuration/config/agent-setting-button.tsx index 6ebed49f80..a83722e8a1 100644 --- a/web/app/components/app/configuration/config/agent-setting-button.tsx +++ b/web/app/components/app/configuration/config/agent-setting-button.tsx @@ -1,6 +1,7 @@ 'use client' import type { FC } from 'react' import type { AgentConfig } from '@/models/debug' +import { RiSettings2Line } from '@remixicon/react' import * as React from 'react' import { useState } from 'react' import { useTranslation } from 'react-i18next' @@ -26,7 +27,7 @@ const AgentSettingButton: FC = ({ return ( <> {isShowAgentSetting && ( diff --git a/web/app/components/app/configuration/config/agent/agent-setting/index.tsx b/web/app/components/app/configuration/config/agent/agent-setting/index.tsx index 2c4b0dd019..ec42e946dd 100644 --- a/web/app/components/app/configuration/config/agent/agent-setting/index.tsx +++ b/web/app/components/app/configuration/config/agent/agent-setting/index.tsx @@ -1,6 +1,7 @@ 'use client' import type { FC } from 'react' import type { AgentConfig } from '@/models/debug' +import { RiCloseLine } from '@remixicon/react' import { useClickAway } from 'ahooks' import * as React from 'react' import { useEffect, useRef, useState } from 'react' @@ -67,7 +68,7 @@ const AgentSetting: FC = ({ onClick={onCancel} className="flex h-6 w-6 cursor-pointer items-center justify-center" > - +
diff --git a/web/app/components/app/configuration/config/agent/agent-tools/index.tsx b/web/app/components/app/configuration/config/agent/agent-tools/index.tsx index c8aa946a3c..486c0a8ac9 100644 --- a/web/app/components/app/configuration/config/agent/agent-tools/index.tsx +++ b/web/app/components/app/configuration/config/agent/agent-tools/index.tsx @@ -4,7 +4,11 @@ import type { Collection } from '@/app/components/tools/types' import type { ToolDefaultValue, ToolValue } from '@/app/components/workflow/block-selector/types' import type { ToolWithProvider } from '@/app/components/workflow/types' import type { AgentTool } from '@/types/app' - +import { + RiDeleteBinLine, + RiEqualizer2Line, + RiInformation2Line, +} from '@remixicon/react' import copy from 'copy-to-clipboard' import { produce } from 'immer' import * as React from 'react' @@ -222,7 +226,7 @@ const AgentTools: FC = () => { >
- +
@@ -251,7 +255,7 @@ const AgentTools: FC = () => { onMouseOver={() => setIsDeleting(index)} onMouseLeave={() => setIsDeleting(-1)} > - + )} @@ -269,7 +273,7 @@ const AgentTools: FC = () => { setIsShowSettingTool(true) }} > - + )} @@ -286,7 +290,7 @@ const AgentTools: FC = () => { onMouseLeave={() => setIsDeleting(-1)} data-testid="delete-removed-tool" > - + )} diff --git a/web/app/components/app/configuration/config/agent/agent-tools/setting-built-in-tool.tsx b/web/app/components/app/configuration/config/agent/agent-tools/setting-built-in-tool.tsx index 243df5be7f..b8a4ac46b8 100644 --- a/web/app/components/app/configuration/config/agent/agent-tools/setting-built-in-tool.tsx +++ b/web/app/components/app/configuration/config/agent/agent-tools/setting-built-in-tool.tsx @@ -2,7 +2,10 @@ import type { FC } from 'react' import type { Collection, Tool } from '@/app/components/tools/types' import type { ToolWithProvider } from '@/app/components/workflow/types' - +import { + RiArrowLeftLine, + RiCloseLine, +} from '@remixicon/react' import * as React from 'react' import { useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -178,7 +181,7 @@ const SettingBuiltInTool: FC = ({
- +
{showBackButton && ( @@ -186,7 +189,7 @@ const SettingBuiltInTool: FC = ({ className="system-xs-semibold-uppercase mb-2 flex cursor-pointer items-center gap-1 text-text-accent-secondary" onClick={onHide} > - + {t('detailPanel.operation.back', { ns: 'plugin' })}
)} diff --git a/web/app/components/app/configuration/config/assistant-type-picker/index.tsx b/web/app/components/app/configuration/config/assistant-type-picker/index.tsx index ebdf8eb37e..61c9ed2a0f 100644 --- a/web/app/components/app/configuration/config/assistant-type-picker/index.tsx +++ b/web/app/components/app/configuration/config/assistant-type-picker/index.tsx @@ -1,6 +1,7 @@ 'use client' import type { FC } from 'react' import type { AgentConfig } from '@/models/debug' +import { RiArrowDownSLine } from '@remixicon/react' import * as React from 'react' import { useState } from 'react' import { useTranslation } from 'react-i18next' @@ -119,7 +120,7 @@ const AssistantTypePicker: FC = ({
{isAgent ? : }
{t(`assistantType.${isAgent ? 'agentAssistant' : 'chatAssistant'}.name`, { ns: 'appDebug' })}
- +
diff --git a/web/app/components/app/configuration/config/automatic/automatic-btn.tsx b/web/app/components/app/configuration/config/automatic/automatic-btn.tsx index f79cf75238..49d9bc4cc1 100644 --- a/web/app/components/app/configuration/config/automatic/automatic-btn.tsx +++ b/web/app/components/app/configuration/config/automatic/automatic-btn.tsx @@ -1,6 +1,8 @@ 'use client' import type { FC } from 'react' - +import { + RiSparklingFill, +} from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' import Button from '@/app/components/base/button' @@ -15,7 +17,7 @@ const AutomaticBtn: FC = ({ return ( ) diff --git a/web/app/components/app/configuration/config/automatic/prompt-toast.tsx b/web/app/components/app/configuration/config/automatic/prompt-toast.tsx index 3bb71ead3e..1c9f5a074b 100644 --- a/web/app/components/app/configuration/config/automatic/prompt-toast.tsx +++ b/web/app/components/app/configuration/config/automatic/prompt-toast.tsx @@ -1,3 +1,4 @@ +import { RiArrowDownSLine, RiSparklingFill } from '@remixicon/react' import { useBoolean } from 'ahooks' import * as React from 'react' import { useTranslation } from 'react-i18next' @@ -36,10 +37,10 @@ const PromptToast = ({
- + {t('generate.optimizationNote', { ns: 'appDebug' })}
- +
{!isFold && (
diff --git a/web/app/components/app/configuration/config/automatic/result.tsx b/web/app/components/app/configuration/config/automatic/result.tsx index fd8618dff8..ef82007e51 100644 --- a/web/app/components/app/configuration/config/automatic/result.tsx +++ b/web/app/components/app/configuration/config/automatic/result.tsx @@ -1,6 +1,7 @@ 'use client' import type { FC } from 'react' import type { GenRes } from '@/service/debug' +import { RiClipboardLine } from '@remixicon/react' import copy from 'copy-to-clipboard' import * as React from 'react' import { useTranslation } from 'react-i18next' @@ -56,7 +57,7 @@ const Result: FC = ({ Toast.notify({ type: 'success', message: t('actionMsg.copySuccessfully', { ns: 'common' }) }) }} > - +
- {moreThanOneVersion && } + {moreThanOneVersion && }
= ({ versionLen, value, on {option.label} { - value === option.value && + value === option.value && } )) diff --git a/web/app/components/app/configuration/dataset-config/card-item/index.tsx b/web/app/components/app/configuration/dataset-config/card-item/index.tsx index 43257afbbe..a5ad3312ec 100644 --- a/web/app/components/app/configuration/dataset-config/card-item/index.tsx +++ b/web/app/components/app/configuration/dataset-config/card-item/index.tsx @@ -1,7 +1,10 @@ 'use client' import type { FC } from 'react' import type { DataSet } from '@/models/datasets' - +import { + RiDeleteBinLine, + RiEditLine, +} from '@remixicon/react' import * as React from 'react' import { useState } from 'react' import { useTranslation } from 'react-i18next' @@ -76,7 +79,7 @@ const Item: FC = ({ setShowSettingsModal(true) }} > - + ) } @@ -88,7 +91,7 @@ const Item: FC = ({ onMouseEnter={() => setIsDeleting(true)} onMouseLeave={() => setIsDeleting(false)} > - + ) } diff --git a/web/app/components/app/configuration/dataset-config/context-var/var-picker.tsx b/web/app/components/app/configuration/dataset-config/context-var/var-picker.tsx index f6cd6fe016..ef1281cde5 100644 --- a/web/app/components/app/configuration/dataset-config/context-var/var-picker.tsx +++ b/web/app/components/app/configuration/dataset-config/context-var/var-picker.tsx @@ -1,6 +1,7 @@ 'use client' import type { FC } from 'react' import type { IInputTypeIconProps } from '@/app/components/app/configuration/config-var/input-type-icon' +import { ChevronDownIcon } from '@heroicons/react/24/outline' import * as React from 'react' import { useState } from 'react' import { useTranslation } from 'react-i18next' @@ -75,7 +76,7 @@ const VarPicker: FC = ({ )} - + diff --git a/web/app/components/app/configuration/dataset-config/params-config/index.tsx b/web/app/components/app/configuration/dataset-config/params-config/index.tsx index 6a428ad5c8..5ad16d139f 100644 --- a/web/app/components/app/configuration/dataset-config/params-config/index.tsx +++ b/web/app/components/app/configuration/dataset-config/params-config/index.tsx @@ -1,6 +1,7 @@ 'use client' import type { DataSet } from '@/models/datasets' import type { DatasetConfigs } from '@/models/debug' +import { RiEqualizer2Line } from '@remixicon/react' import { memo, useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' import { useContext } from 'use-context-selector' @@ -121,7 +122,7 @@ const ParamsConfig = ({ }} disabled={disabled} > - + {t('retrievalSettings', { ns: 'dataset' })} { diff --git a/web/app/components/app/configuration/dataset-config/settings-modal/index.tsx b/web/app/components/app/configuration/dataset-config/settings-modal/index.tsx index 25adff067e..e910702b66 100644 --- a/web/app/components/app/configuration/dataset-config/settings-modal/index.tsx +++ b/web/app/components/app/configuration/dataset-config/settings-modal/index.tsx @@ -2,6 +2,7 @@ import type { FC } from 'react' import type { Member } from '@/models/common' import type { DataSet } from '@/models/datasets' import type { RetrievalConfig } from '@/types/app' +import { RiCloseLine } from '@remixicon/react' import { isEqual } from 'es-toolkit/predicate' import { useEffect, useMemo, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -201,7 +202,7 @@ const SettingsModal: FC = ({ onClick={onCancel} className="flex h-6 w-6 cursor-pointer items-center justify-center" > - + diff --git a/web/app/components/app/configuration/dataset-config/settings-modal/retrieval-section.tsx b/web/app/components/app/configuration/dataset-config/settings-modal/retrieval-section.tsx index 4e0331be2d..6d478de908 100644 --- a/web/app/components/app/configuration/dataset-config/settings-modal/retrieval-section.tsx +++ b/web/app/components/app/configuration/dataset-config/settings-modal/retrieval-section.tsx @@ -2,6 +2,7 @@ import type { FC } from 'react' import type { DataSet } from '@/models/datasets' import type { RetrievalConfig } from '@/types/app' import type { DocPathWithoutLang } from '@/types/doc-paths' +import { RiCloseLine } from '@remixicon/react' import Divider from '@/app/components/base/divider' import { AlertTriangle } from '@/app/components/base/icons/src/vender/solid/alertsAndFeedback' import { ApiConnectionMod } from '@/app/components/base/icons/src/vender/solid/development' @@ -211,7 +212,7 @@ export const RetrievalChangeTip: FC = ({ }} aria-label="close-retrieval-change-tip" > - + ) diff --git a/web/app/components/app/configuration/debug/debug-with-multiple-model/model-parameter-trigger.tsx b/web/app/components/app/configuration/debug/debug-with-multiple-model/model-parameter-trigger.tsx index fa895e6ec0..afe292c5ee 100644 --- a/web/app/components/app/configuration/debug/debug-with-multiple-model/model-parameter-trigger.tsx +++ b/web/app/components/app/configuration/debug/debug-with-multiple-model/model-parameter-trigger.tsx @@ -1,6 +1,7 @@ import type { FC } from 'react' import type { ModelAndParameter } from '../types' import type { FormValue } from '@/app/components/header/account-setting/model-provider-page/declarations' +import { RiArrowDownSLine } from '@remixicon/react' import { memo } from 'react' import { useTranslation } from 'react-i18next' import { AlertTriangle } from '@/app/components/base/icons/src/vender/line/alertsAndFeedback' @@ -107,7 +108,7 @@ const ModelParameterTrigger: FC = ({ ) } - + { currentModel && currentModel.status !== ModelStatusEnum.active && ( diff --git a/web/app/components/app/configuration/debug/index.tsx b/web/app/components/app/configuration/debug/index.tsx index 347ab7342e..14a00e85c7 100644 --- a/web/app/components/app/configuration/debug/index.tsx +++ b/web/app/components/app/configuration/debug/index.tsx @@ -5,7 +5,11 @@ import type { ModelAndParameter } from './types' import type { ModelParameterModalProps } from '@/app/components/header/account-setting/model-provider-page/model-parameter-modal' import type { Inputs } from '@/models/debug' import type { ModelConfig as BackendModelConfig, VisionFile, VisionSettings } from '@/types/app' - +import { + RiAddLine, + RiEqualizer2Line, + RiSparklingFill, +} from '@remixicon/react' import { useBoolean } from 'ahooks' import { noop } from 'es-toolkit/function' import { cloneDeep } from 'es-toolkit/object' @@ -401,7 +405,7 @@ const Debug: FC = ({ onClick={() => onMultipleModelConfigsChange(true, [...multipleModelConfigs, { id: `${Date.now()}`, model: '', provider: '', parameters: {} }])} disabled={multipleModelConfigs.length >= 4} > - + {t('modelProvider.addModel', { ns: 'common' })} ( {multipleModelConfigs.length} @@ -434,7 +438,7 @@ const Debug: FC = ({ popupContent={t('panel.userInputField', { ns: 'workflow' })} > !readonly && setExpanded(!expanded)}> - + {expanded &&
} @@ -534,7 +538,7 @@ const Debug: FC = ({ )} {!completionRes && !isResponding && (
- +
{t('noResult', { ns: 'appDebug' })}
)} diff --git a/web/app/components/app/configuration/index.tsx b/web/app/components/app/configuration/index.tsx index def1f44a93..919b7c355a 100644 --- a/web/app/components/app/configuration/index.tsx +++ b/web/app/components/app/configuration/index.tsx @@ -18,6 +18,7 @@ import type { TextToSpeechConfig, } from '@/models/debug' import type { ModelConfig as BackendModelConfig, UserInputFormItem, VisionSettings } from '@/types/app' +import { CodeBracketIcon } from '@heroicons/react/20/solid' import { useBoolean, useGetState } from 'ahooks' import { clone } from 'es-toolkit/object' import { isEqual } from 'es-toolkit/predicate' @@ -1008,7 +1009,7 @@ const Configuration: FC = () => { {isMobile && ( )} = ({
setUserInputFieldCollapse(!userInputFieldCollapse)}>
{t('inputs.userInputField', { ns: 'appDebug' })}
- {userInputFieldCollapse && } - {!userInputFieldCollapse && } + {userInputFieldCollapse && } + {!userInputFieldCollapse && }
{!userInputFieldCollapse && (
{t('inputs.completionVarTip', { ns: 'appDebug' })}
@@ -215,7 +219,7 @@ const PromptValuePanel: FC = ({ onClick={() => onSend?.()} className="w-[96px]" > -
@@ -126,7 +130,7 @@ const Tools = () => { className="flex h-7 cursor-pointer items-center px-3 text-xs font-medium text-gray-700" onClick={() => handleOpenExternalDataToolModal({}, -1)} > - + {t('operation.add', { ns: 'common' })}
@@ -171,7 +175,7 @@ const Tools = () => { className="group/action hidden h-6 w-6 cursor-pointer items-center justify-center rounded-md hover:bg-[#FEE4E2] group-hover:flex" onClick={() => setExternalDataToolsConfig([...externalDataToolsConfig.slice(0, index), ...externalDataToolsConfig.slice(index + 1)])} > - +
{isAppTypeExpanded && ( @@ -261,7 +262,7 @@ function CreateApp({ onClose, onSuccess, onCreateFromTemplate, defaultAppMode }:
{t('newApp.noIdeaTip', { ns: 'app' })}
- +
@@ -269,8 +270,8 @@ function CreateApp({ onClose, onSuccess, onCreateFromTemplate, defaultAppMode }:
diff --git a/web/app/components/app/create-from-dsl-modal/index.tsx b/web/app/components/app/create-from-dsl-modal/index.tsx index 12ef940168..838e9cc03f 100644 --- a/web/app/components/app/create-from-dsl-modal/index.tsx +++ b/web/app/components/app/create-from-dsl-modal/index.tsx @@ -1,6 +1,7 @@ 'use client' import type { MouseEventHandler } from 'react' +import { RiCloseLine, RiCommandLine, RiCornerDownLeftLine } from '@remixicon/react' import { useDebounceFn, useKeyPress } from 'ahooks' import { noop } from 'es-toolkit/function' import { useRouter } from 'next/navigation' @@ -236,7 +237,7 @@ const CreateFromDSLModal = ({ show, onSuccess, onClose, activeTab = CreateFromDS className="flex h-8 w-8 cursor-pointer items-center" onClick={() => onClose()} > - +
@@ -298,8 +299,8 @@ const CreateFromDSLModal = ({ show, onSuccess, onClose, activeTab = CreateFromDS > {t('newApp.Create', { ns: 'app' })}
- - + +
diff --git a/web/app/components/app/create-from-dsl-modal/uploader.tsx b/web/app/components/app/create-from-dsl-modal/uploader.tsx index 49e3436414..778a2c1420 100644 --- a/web/app/components/app/create-from-dsl-modal/uploader.tsx +++ b/web/app/components/app/create-from-dsl-modal/uploader.tsx @@ -1,6 +1,9 @@ 'use client' import type { FC } from 'react' - +import { + RiDeleteBinLine, + RiUploadCloud2Line, +} from '@remixicon/react' import * as React from 'react' import { useEffect, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -108,7 +111,7 @@ const Uploader: FC = ({ {!file && (
- +
{t('dslUploader.button', { ns: 'app' })} {t('dslUploader.browse', { ns: 'app' })} @@ -132,7 +135,7 @@ const Uploader: FC = ({
- +
diff --git a/web/app/components/app/duplicate-modal/index.tsx b/web/app/components/app/duplicate-modal/index.tsx index bb4784cee1..7d5b122f69 100644 --- a/web/app/components/app/duplicate-modal/index.tsx +++ b/web/app/components/app/duplicate-modal/index.tsx @@ -1,5 +1,6 @@ 'use client' import type { AppIconType } from '@/types/app' +import { RiCloseLine } from '@remixicon/react' import { noop } from 'es-toolkit/function' import * as React from 'react' import { useState } from 'react' @@ -76,7 +77,7 @@ const DuplicateAppModal = ({ className={cn('relative !max-w-[480px]', 'px-8')} >
- +
{t('duplicateTitle', { ns: 'app' })}
diff --git a/web/app/components/app/log/filter.tsx b/web/app/components/app/log/filter.tsx index 1ad0ff8aca..b5e0e0cf09 100644 --- a/web/app/components/app/log/filter.tsx +++ b/web/app/components/app/log/filter.tsx @@ -2,6 +2,7 @@ import type { FC } from 'react' import type { QueryParam } from './index' import type { I18nKeysByPrefix } from '@/types/i18n' +import { RiCalendarLine } from '@remixicon/react' import dayjs from 'dayjs' import quarterOfYear from 'dayjs/plugin/quarterOfYear' import * as React from 'react' @@ -46,7 +47,7 @@ const Filter: FC = ({ isChatMode, appId, queryParams, setQueryPara } + leftIcon={} value={queryParams.period} onSelect={(item) => { setQueryParams({ ...queryParams, period: item.value }) diff --git a/web/app/components/app/log/list.tsx b/web/app/components/app/log/list.tsx index d6774fd104..5197a02bb3 100644 --- a/web/app/components/app/log/list.tsx +++ b/web/app/components/app/log/list.tsx @@ -8,6 +8,7 @@ import { HandThumbDownIcon, HandThumbUpIcon, } from '@heroicons/react/24/outline' +import { RiCloseLine, RiEditFill } from '@remixicon/react' import dayjs from 'dayjs' import timezone from 'dayjs/plugin/timezone' import utc from 'dayjs/plugin/utc' @@ -609,7 +610,7 @@ function DetailPanel({ detail, onFeedback }: IDetailPanel) { {!isAdvanced && }
- +
{/* Panel Body */} @@ -973,7 +974,7 @@ const ConversationList: FC = ({ logs, appDetail, onRefresh }) - + {`${t('detail.annotationTip', { ns: 'appLog', user: annotation?.account?.name })} ${formatTime(annotation?.created_at || dayjs().unix(), 'MM-DD hh:mm A')}`} )} diff --git a/web/app/components/app/log/model-info.tsx b/web/app/components/app/log/model-info.tsx index 58fa4f5b6a..01db847914 100644 --- a/web/app/components/app/log/model-info.tsx +++ b/web/app/components/app/log/model-info.tsx @@ -1,6 +1,8 @@ 'use client' import type { FC } from 'react' - +import { + RiInformation2Line, +} from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' import { @@ -82,7 +84,7 @@ const ModelInfo: FC = ({ open && 'bg-components-button-tertiary-bg-hover', )} > - + diff --git a/web/app/components/app/log/var-panel.tsx b/web/app/components/app/log/var-panel.tsx index ab9c605cd5..ee0a83236c 100644 --- a/web/app/components/app/log/var-panel.tsx +++ b/web/app/components/app/log/var-panel.tsx @@ -1,6 +1,9 @@ 'use client' import type { FC } from 'react' - +import { + RiArrowDownSLine, + RiArrowRightSLine, +} from '@remixicon/react' import { useBoolean } from 'ahooks' import * as React from 'react' import { useState } from 'react' @@ -32,8 +35,8 @@ const VarPanel: FC = ({
{t('detail.variables', { ns: 'appLog' })}
{ isCollapse - ? - : + ? + : } {!isCollapse && ( diff --git a/web/app/components/app/overview/apikey-info-panel/index.tsx b/web/app/components/app/overview/apikey-info-panel/index.tsx index dc739ebc08..078386d4a9 100644 --- a/web/app/components/app/overview/apikey-info-panel/index.tsx +++ b/web/app/components/app/overview/apikey-info-panel/index.tsx @@ -1,5 +1,6 @@ 'use client' import type { FC } from 'react' +import { RiCloseLine } from '@remixicon/react' import * as React from 'react' import { useState } from 'react' import { useTranslation } from 'react-i18next' @@ -68,7 +69,7 @@ const APIKeyInfoPanel: FC = () => { onClick={() => setIsShow(false)} className="absolute right-4 top-4 flex h-8 w-8 cursor-pointer items-center justify-center " > - + ) diff --git a/web/app/components/app/overview/app-card.tsx b/web/app/components/app/overview/app-card.tsx index 9bef27e61d..9975c81b3e 100644 --- a/web/app/components/app/overview/app-card.tsx +++ b/web/app/components/app/overview/app-card.tsx @@ -3,10 +3,15 @@ import type { ConfigParams } from './settings' import type { AppDetailResponse } from '@/models/app' import type { AppSSO } from '@/types/app' import { + RiArrowRightSLine, RiBookOpenLine, + RiBuildingLine, RiEqualizer2Line, RiExternalLinkLine, + RiGlobalLine, + RiLockLine, RiPaintBrushLine, + RiVerifiedBadgeLine, RiWindowLine, } from '@remixicon/react' import { usePathname, useRouter } from 'next/navigation' @@ -323,35 +328,35 @@ function AppCard({ {appDetail?.access_mode === AccessMode.ORGANIZATION && ( <> - +

{t('accessControlDialog.accessItems.organization', { ns: 'app' })}

)} {appDetail?.access_mode === AccessMode.SPECIFIC_GROUPS_MEMBERS && ( <> - +

{t('accessControlDialog.accessItems.specific', { ns: 'app' })}

)} {appDetail?.access_mode === AccessMode.PUBLIC && ( <> - +

{t('accessControlDialog.accessItems.anyone', { ns: 'app' })}

)} {appDetail?.access_mode === AccessMode.EXTERNAL_MEMBERS && ( <> - +

{t('accessControlDialog.accessItems.external', { ns: 'app' })}

)} {!isAppAccessSet &&

{t('publishApp.notSet', { ns: 'app' })}

}
- +
diff --git a/web/app/components/app/overview/customize/index.tsx b/web/app/components/app/overview/customize/index.tsx index b6eee1faed..c7391abe3d 100644 --- a/web/app/components/app/overview/customize/index.tsx +++ b/web/app/components/app/overview/customize/index.tsx @@ -1,5 +1,6 @@ 'use client' import type { FC } from 'react' +import { ArrowTopRightOnSquareIcon } from '@heroicons/react/24/outline' import * as React from 'react' import { useTranslation } from 'react-i18next' import Button from '@/app/components/base/button' @@ -122,7 +123,7 @@ const CustomizeModal: FC = ({ )} > {t(`${prefixCustomize}.way2.operation`, { ns: 'appOverview' })} - + diff --git a/web/app/components/app/overview/embedded/index.tsx b/web/app/components/app/overview/embedded/index.tsx index be07735507..8305a35a84 100644 --- a/web/app/components/app/overview/embedded/index.tsx +++ b/web/app/components/app/overview/embedded/index.tsx @@ -1,5 +1,8 @@ import type { SiteInfo } from '@/models/share' - +import { + RiClipboardFill, + RiClipboardLine, +} from '@remixicon/react' import copy from 'copy-to-clipboard' import * as React from 'react' import { useEffect, useState } from 'react' @@ -182,8 +185,8 @@ const Embedded = ({ siteInfo, isShow, onClose, appBaseUrl, accessToken, classNam
- {isCopied[option] && } - {!isCopied[option] && } + {isCopied[option] && } + {!isCopied[option] && }
diff --git a/web/app/components/app/overview/settings/index.tsx b/web/app/components/app/overview/settings/index.tsx index 11b01ee8b9..0d087e27c2 100644 --- a/web/app/components/app/overview/settings/index.tsx +++ b/web/app/components/app/overview/settings/index.tsx @@ -3,6 +3,7 @@ import type { FC } from 'react' import type { AppIconSelection } from '@/app/components/base/app-icon-picker' import type { AppDetailResponse } from '@/models/app' import type { AppIconType, AppSSO, Language } from '@/types/app' +import { RiArrowRightSLine, RiCloseLine } from '@remixicon/react' import Link from 'next/link' import * as React from 'react' import { useCallback, useEffect, useState } from 'react' @@ -232,7 +233,7 @@ const SettingsModal: FC = ({
{t(`${prefixSettings}.title`, { ns: 'appOverview' })}
- +
@@ -345,7 +346,7 @@ const SettingsModal: FC = ({ {t(`${prefixSettings}.more.privacyPolicyPlaceholder`, { ns: 'appOverview' })}

- + )} {/* more settings */} diff --git a/web/app/components/app/switch-app-modal/index.tsx b/web/app/components/app/switch-app-modal/index.tsx index 3b9eb4b33a..30d7877ed0 100644 --- a/web/app/components/app/switch-app-modal/index.tsx +++ b/web/app/components/app/switch-app-modal/index.tsx @@ -1,6 +1,7 @@ 'use client' import type { App } from '@/types/app' +import { RiCloseLine } from '@remixicon/react' import { noop } from 'es-toolkit/function' import { useRouter } from 'next/navigation' import { useEffect, useState } from 'react' @@ -100,7 +101,7 @@ const SwitchAppModal = ({ show, appDetail, inAppDetail = false, onSuccess, onClo onClose={noop} >
- +
diff --git a/web/app/components/app/text-generate/item/index.tsx b/web/app/components/app/text-generate/item/index.tsx index d57bc4308e..c39282a022 100644 --- a/web/app/components/app/text-generate/item/index.tsx +++ b/web/app/components/app/text-generate/item/index.tsx @@ -3,7 +3,17 @@ import type { FC } from 'react' import type { FeedbackType } from '@/app/components/base/chat/chat/type' import type { WorkflowProcess } from '@/app/components/base/chat/types' import type { SiteInfo } from '@/models/share' - +import { + RiBookmark3Line, + RiClipboardLine, + RiFileList3Line, + RiPlayList2Line, + RiReplay15Line, + RiSparklingFill, + RiSparklingLine, + RiThumbDownLine, + RiThumbUpLine, +} from '@remixicon/react' import { useBoolean } from 'ahooks' import copy from 'copy-to-clipboard' import { useParams } from 'next/navigation' @@ -226,7 +236,7 @@ const GenerationItem: FC = ({ > {taskId && (
- + {t('generation.execution', { ns: 'share' })} · {taskId} @@ -271,7 +281,7 @@ const GenerationItem: FC = ({ )} {!workflowProcessData && taskId && (
- + {t('generation.execution', { ns: 'share' })} · {`${taskId}${depth > 1 ? `-${depth - 1}` : ''}`} @@ -304,7 +314,7 @@ const GenerationItem: FC = ({ {!isInWebApp && (appSourceType !== AppSourceType.installedApp) && !isResponding && (
- + {/*
{t('common.operation.log')}
*/}
@@ -312,7 +322,7 @@ const GenerationItem: FC = ({
{moreLikeThis && !isTryApp && ( - + )} {isShowTextToSpeech && !isTryApp && ( @@ -333,17 +343,17 @@ const GenerationItem: FC = ({ Toast.notify({ type: 'success', message: t('actionMsg.copySuccessfully', { ns: 'common' }) }) }} > - + )} {isInWebApp && isError && ( - + )} {isInWebApp && !isWorkflow && !isTryApp && ( { onSave?.(messageId as string) }}> - + )}
@@ -352,21 +362,21 @@ const GenerationItem: FC = ({ {!feedback?.rating && ( <> onFeedback?.({ rating: 'like' })}> - + onFeedback?.({ rating: 'dislike' })}> - + )} {feedback?.rating === 'like' && ( onFeedback?.({ rating: null })}> - + )} {feedback?.rating === 'dislike' && ( onFeedback?.({ rating: null })}> - + )}
@@ -386,7 +396,7 @@ const GenerationItem: FC = ({ isMobile ? 'top-[3.5px]' : 'top-2', )} > - +
)} diff --git a/web/app/components/app/text-generate/saved-items/index.tsx b/web/app/components/app/text-generate/saved-items/index.tsx index fa2e3b6d30..36006402c4 100644 --- a/web/app/components/app/text-generate/saved-items/index.tsx +++ b/web/app/components/app/text-generate/saved-items/index.tsx @@ -1,7 +1,10 @@ 'use client' import type { FC } from 'react' import type { SavedMessage } from '@/models/debug' - +import { + RiClipboardLine, + RiDeleteBinLine, +} from '@remixicon/react' import copy from 'copy-to-clipboard' import * as React from 'react' import { useTranslation } from 'react-i18next' @@ -60,13 +63,13 @@ const SavedItems: FC = ({ Toast.notify({ type: 'success', message: t('actionMsg.copySuccessfully', { ns: 'common' }) }) }} > - + { onRemove(id) }} > - + diff --git a/web/app/components/app/text-generate/saved-items/no-data/index.tsx b/web/app/components/app/text-generate/saved-items/no-data/index.tsx index 379bab06be..bad69018de 100644 --- a/web/app/components/app/text-generate/saved-items/no-data/index.tsx +++ b/web/app/components/app/text-generate/saved-items/no-data/index.tsx @@ -1,6 +1,9 @@ 'use client' import type { FC } from 'react' - +import { + RiAddLine, + RiBookmark3Line, +} from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' import Button from '@/app/components/base/button' @@ -17,7 +20,7 @@ const NoData: FC = ({ return (
- +
{t('generation.savedNoData.title', { ns: 'share' })} @@ -30,7 +33,7 @@ const NoData: FC = ({ className="mt-3" onClick={onStartCreateContent} > - + {t('generation.savedNoData.startCreateContent', { ns: 'share' })}
diff --git a/web/app/components/app/type-selector/index.tsx b/web/app/components/app/type-selector/index.tsx index 3cedeaa473..e97da4b7f3 100644 --- a/web/app/components/app/type-selector/index.tsx +++ b/web/app/components/app/type-selector/index.tsx @@ -1,3 +1,4 @@ +import { RiArrowDownSLine, RiCloseCircleFill, RiExchange2Fill, RiFilter3Line } from '@remixicon/react' import * as React from 'react' import { useState } from 'react' import { useTranslation } from 'react-i18next' @@ -49,7 +50,9 @@ const AppTypeSelector = ({ value, onChange }: AppSelectorProps) => { onChange([]) }} > - + )}
@@ -112,7 +115,7 @@ export const AppTypeIcon = React.memo(({ type, className, wrapperClassName, styl if (type === AppModeEnum.WORKFLOW) { return (
- +
) } @@ -134,9 +137,9 @@ function AppTypeSelectTrigger({ values }: { readonly values: AppSelectorProps['v 'flex h-8 items-center justify-between gap-1', )} > - +
{t('typeSelector.all', { ns: 'app' })}
- + ) } diff --git a/web/app/components/app/workflow-log/detail.tsx b/web/app/components/app/workflow-log/detail.tsx index 49727608c0..ce85653e71 100644 --- a/web/app/components/app/workflow-log/detail.tsx +++ b/web/app/components/app/workflow-log/detail.tsx @@ -1,5 +1,6 @@ 'use client' import type { FC } from 'react' +import { RiCloseLine, RiPlayLargeLine } from '@remixicon/react' import { useRouter } from 'next/navigation' import { useTranslation } from 'react-i18next' import { useStore } from '@/app/components/app/store' @@ -27,7 +28,7 @@ const DetailPanel: FC = ({ runID, onClose, canReplay = false }) => { return (
- +

{t('runDetail.workflowTitle', { ns: 'appLog' })}

@@ -42,7 +43,7 @@ const DetailPanel: FC = ({ runID, onClose, canReplay = false }) => { aria-label={t('runDetail.testWithParams', { ns: 'appLog' })} onClick={handleReplay} > - + )} diff --git a/web/app/components/app/workflow-log/filter.tsx b/web/app/components/app/workflow-log/filter.tsx index 29723bc188..90c78e6c9d 100644 --- a/web/app/components/app/workflow-log/filter.tsx +++ b/web/app/components/app/workflow-log/filter.tsx @@ -2,6 +2,7 @@ import type { FC } from 'react' import type { QueryParam } from './index' import type { I18nKeysByPrefix } from '@/types/i18n' +import { RiCalendarLine } from '@remixicon/react' import dayjs from 'dayjs' import quarterOfYear from 'dayjs/plugin/quarterOfYear' import * as React from 'react' @@ -51,7 +52,7 @@ const Filter: FC = ({ queryParams, setQueryParams }: IFilterProps) } + leftIcon={} value={queryParams.period} onSelect={(item) => { setQueryParams({ ...queryParams, period: item.value }) diff --git a/web/app/components/app/workflow-log/list.tsx b/web/app/components/app/workflow-log/list.tsx index cc9e76264b..b9597c8ea1 100644 --- a/web/app/components/app/workflow-log/list.tsx +++ b/web/app/components/app/workflow-log/list.tsx @@ -2,6 +2,7 @@ import type { FC } from 'react' import type { WorkflowAppLogDetail, WorkflowLogsResponse, WorkflowRunTriggeredFrom } from '@/models/log' import type { App } from '@/types/app' +import { ArrowDownIcon } from '@heroicons/react/24/outline' import * as React from 'react' import { useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -116,7 +117,9 @@ const WorkflowAppLogList: FC = ({ logs, appDetail, onRefresh }) => {
{t('table.header.startTime', { ns: 'appLog' })} - +
{t('table.header.status', { ns: 'appLog' })} diff --git a/web/app/components/apps/app-card.tsx b/web/app/components/apps/app-card.tsx index 00d3d5fde2..f1eadb9d05 100644 --- a/web/app/components/apps/app-card.tsx +++ b/web/app/components/apps/app-card.tsx @@ -6,6 +6,7 @@ import type { Tag } from '@/app/components/base/tag-management/constant' import type { CreateAppModalProps } from '@/app/components/explore/create-app-modal' import type { EnvironmentVariable } from '@/app/components/workflow/types' import type { App } from '@/types/app' +import { RiBuildingLine, RiGlobalLine, RiLockLine, RiMoreFill, RiVerifiedBadgeLine } from '@remixicon/react' import dynamic from 'next/dynamic' import { useRouter } from 'next/navigation' import * as React from 'react' @@ -380,22 +381,22 @@ const AppCard = ({ app, onRefresh }: AppCardProps) => {
{app.access_mode === AccessMode.PUBLIC && ( - + )} {app.access_mode === AccessMode.SPECIFIC_GROUPS_MEMBERS && ( - + )} {app.access_mode === AccessMode.ORGANIZATION && ( - + )} {app.access_mode === AccessMode.EXTERNAL_MEMBERS && ( - + )}
@@ -440,7 +441,7 @@ const AppCard = ({ app, onRefresh }: AppCardProps) => {
- +
)} btnClassName={open => diff --git a/web/app/components/apps/footer.tsx b/web/app/components/apps/footer.tsx index ddc8e26e5b..3a0e960e0d 100644 --- a/web/app/components/apps/footer.tsx +++ b/web/app/components/apps/footer.tsx @@ -1,3 +1,4 @@ +import { RiDiscordFill, RiDiscussLine, RiGithubFill } from '@remixicon/react' import Link from 'next/link' import * as React from 'react' import { useTranslation } from 'react-i18next' @@ -32,13 +33,13 @@ const Footer = () => {

{t('communityIntro', { ns: 'app' })}

- + - + - +
diff --git a/web/app/components/apps/list.tsx b/web/app/components/apps/list.tsx index 0245fc569d..6bf79b7338 100644 --- a/web/app/components/apps/list.tsx +++ b/web/app/components/apps/list.tsx @@ -1,7 +1,14 @@ 'use client' import type { FC } from 'react' - +import { + RiApps2Line, + RiDragDropLine, + RiExchange2Line, + RiFile4Line, + RiMessage3Line, + RiRobot3Line, +} from '@remixicon/react' import { useDebounceFn } from 'ahooks' import dynamic from 'next/dynamic' import { @@ -118,12 +125,12 @@ const List: FC = ({ const anchorRef = useRef(null) const options = [ - { value: 'all', text: t('types.all', { ns: 'app' }), icon: }, - { value: AppModeEnum.WORKFLOW, text: t('types.workflow', { ns: 'app' }), icon: }, - { value: AppModeEnum.ADVANCED_CHAT, text: t('types.advanced', { ns: 'app' }), icon: }, - { value: AppModeEnum.CHAT, text: t('types.chatbot', { ns: 'app' }), icon: }, - { value: AppModeEnum.AGENT_CHAT, text: t('types.agent', { ns: 'app' }), icon: }, - { value: AppModeEnum.COMPLETION, text: t('types.completion', { ns: 'app' }), icon: }, + { value: 'all', text: t('types.all', { ns: 'app' }), icon: }, + { value: AppModeEnum.WORKFLOW, text: t('types.workflow', { ns: 'app' }), icon: }, + { value: AppModeEnum.ADVANCED_CHAT, text: t('types.advanced', { ns: 'app' }), icon: }, + { value: AppModeEnum.CHAT, text: t('types.chatbot', { ns: 'app' }), icon: }, + { value: AppModeEnum.AGENT_CHAT, text: t('types.agent', { ns: 'app' }), icon: }, + { value: AppModeEnum.COMPLETION, text: t('types.completion', { ns: 'app' }), icon: }, ] useEffect(() => { @@ -265,7 +272,7 @@ const List: FC = ({ role="region" aria-label={t('newApp.dropDSLToCreateApp', { ns: 'app' })} > - + {t('newApp.dropDSLToCreateApp', { ns: 'app' })}
)} diff --git a/web/app/components/base/action-button/index.stories.tsx b/web/app/components/base/action-button/index.stories.tsx index bf6ba1d162..d6f0767faa 100644 --- a/web/app/components/base/action-button/index.stories.tsx +++ b/web/app/components/base/action-button/index.stories.tsx @@ -1,4 +1,5 @@ import type { Meta, StoryObj } from '@storybook/nextjs-vite' +import { RiAddLine, RiDeleteBinLine, RiEditLine, RiMore2Fill, RiSaveLine, RiShareLine } from '@remixicon/react' import ActionButton, { ActionButtonState } from '.' const meta = { @@ -48,7 +49,7 @@ type Story = StoryObj export const Default: Story = { args: { size: 'm', - children: , + children: , }, } @@ -66,7 +67,7 @@ export const IconWithText: Story = { size: 'm', children: ( <> - + Add Item ), @@ -77,35 +78,35 @@ export const IconWithText: Story = { export const ExtraSmall: Story = { args: { size: 'xs', - children: , + children: , }, } export const Small: Story = { args: { size: 'xs', - children: , + children: , }, } export const Medium: Story = { args: { size: 'm', - children: , + children: , }, } export const Large: Story = { args: { size: 'l', - children: , + children: , }, } export const ExtraLarge: Story = { args: { size: 'xl', - children: , + children: , }, } @@ -114,7 +115,7 @@ export const ActiveState: Story = { args: { size: 'm', state: ActionButtonState.Active, - children: , + children: , }, } @@ -122,7 +123,7 @@ export const DisabledState: Story = { args: { size: 'm', state: ActionButtonState.Disabled, - children: , + children: , }, } @@ -130,7 +131,7 @@ export const DestructiveState: Story = { args: { size: 'm', state: ActionButtonState.Destructive, - children: , + children: , }, } @@ -138,7 +139,7 @@ export const HoverState: Story = { args: { size: 'm', state: ActionButtonState.Hover, - children: , + children: , }, } @@ -147,17 +148,17 @@ export const ToolbarActions: Story = { render: () => (
- + - + - +
- +
), @@ -168,10 +169,10 @@ export const InlineActions: Story = {
Item name - + - +
), @@ -182,31 +183,31 @@ export const SizeComparison: Story = {
- + XS
- + S
- + M
- + L
- + XL
@@ -219,31 +220,31 @@ export const StateComparison: Story = {
- + Default
- + Active
- + Hover
- + Disabled
- + Destructive
@@ -256,6 +257,6 @@ export const Playground: Story = { args: { size: 'm', state: ActionButtonState.Default, - children: , + children: , }, } diff --git a/web/app/components/base/agent-log-modal/index.tsx b/web/app/components/base/agent-log-modal/index.tsx index d7ce49002a..6d41273e30 100644 --- a/web/app/components/base/agent-log-modal/index.tsx +++ b/web/app/components/base/agent-log-modal/index.tsx @@ -1,5 +1,6 @@ import type { FC } from 'react' import type { IChatItem } from '@/app/components/base/chat/chat/type' +import { RiCloseLine } from '@remixicon/react' import { useClickAway } from 'ahooks' import { useEffect, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -46,7 +47,7 @@ const AgentLogModal: FC = ({ >

{t('runDetail.workflowTitle', { ns: 'appLog' })}

- + = ({ toolCall, isLLM = false, isFinal, tokens, obs )}
{toolCall.status === 'success' && ( - + )} {toolCall.status === 'error' && ( - + )}
{!collapseState && ( diff --git a/web/app/components/base/alert.tsx b/web/app/components/base/alert.tsx index e85df1155e..cf602b541a 100644 --- a/web/app/components/base/alert.tsx +++ b/web/app/components/base/alert.tsx @@ -1,3 +1,7 @@ +import { + RiCloseLine, + RiInformation2Fill, +} from '@remixicon/react' import { cva } from 'class-variance-authority' import { memo, @@ -34,7 +38,7 @@ const Alert: React.FC = ({
- +
@@ -45,7 +49,7 @@ const Alert: React.FC = ({ className="pointer-events-auto flex h-6 w-6 cursor-pointer items-center justify-center" onClick={onHide} > - +
diff --git a/web/app/components/base/app-icon-picker/index.tsx b/web/app/components/base/app-icon-picker/index.tsx index 31462872cd..4dfad1f6eb 100644 --- a/web/app/components/base/app-icon-picker/index.tsx +++ b/web/app/components/base/app-icon-picker/index.tsx @@ -2,6 +2,7 @@ import type { FC } from 'react' import type { Area } from 'react-easy-crop' import type { OnImageInput } from './ImageInput' import type { AppIconType, ImageFile } from '@/types/app' +import { RiImageCircleAiLine } from '@remixicon/react' import { noop } from 'es-toolkit/function' import { useCallback, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -45,7 +46,7 @@ const AppIconPicker: FC = ({ const tabs = [ { key: 'emoji', label: t('iconPicker.emoji', { ns: 'app' }), icon: 🤖 }, - { key: 'image', label: t('iconPicker.image', { ns: 'app' }), icon: }, + { key: 'image', label: t('iconPicker.image', { ns: 'app' }), icon: }, ] const [activeTab, setActiveTab] = useState('emoji') diff --git a/web/app/components/base/app-icon/index.tsx b/web/app/components/base/app-icon/index.tsx index 10603bf0b9..78624bab07 100644 --- a/web/app/components/base/app-icon/index.tsx +++ b/web/app/components/base/app-icon/index.tsx @@ -2,6 +2,7 @@ import type { FC } from 'react' import type { AppIconType } from '@/types/app' import data from '@emoji-mart/data' +import { RiEditLine } from '@remixicon/react' import { useHover } from 'ahooks' import { cva } from 'class-variance-authority' import { init } from 'emoji-mart' @@ -122,7 +123,7 @@ const AppIcon: FC = ({ { showEditIcon && isHovering && (
- +
) } diff --git a/web/app/components/base/audio-gallery/AudioPlayer.tsx b/web/app/components/base/audio-gallery/AudioPlayer.tsx index b559200e1e..c310720905 100644 --- a/web/app/components/base/audio-gallery/AudioPlayer.tsx +++ b/web/app/components/base/audio-gallery/AudioPlayer.tsx @@ -1,3 +1,7 @@ +import { + RiPauseCircleFill, + RiPlayLargeFill, +} from '@remixicon/react' import { t } from 'i18next' import * as React from 'react' import { useCallback, useEffect, useRef, useState } from 'react' @@ -298,10 +302,10 @@ const AudioPlayer: React.FC = ({ src, srcs }) => { diff --git a/web/app/components/base/chat/chat/citation/index.tsx b/web/app/components/base/chat/chat/citation/index.tsx index 1ad3c56b7e..22aeec2597 100644 --- a/web/app/components/base/chat/chat/citation/index.tsx +++ b/web/app/components/base/chat/chat/citation/index.tsx @@ -1,5 +1,6 @@ import type { FC } from 'react' import type { CitationItem } from '../type' +import { RiArrowDownSLine } from '@remixicon/react' import { useEffect, useMemo, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' import Popup from './popup' @@ -111,7 +112,7 @@ const Citation: FC = ({ { !showMore ? `+ ${resourcesLength - limitNumberInOneLine}` - : + : }
) diff --git a/web/app/components/base/chat/chat/log/index.tsx b/web/app/components/base/chat/chat/log/index.tsx index a1bd83e238..f48da4739d 100644 --- a/web/app/components/base/chat/chat/log/index.tsx +++ b/web/app/components/base/chat/chat/log/index.tsx @@ -1,5 +1,6 @@ import type { FC } from 'react' import type { IChatItem } from '@/app/components/base/chat/chat/type' +import { RiFileList3Line } from '@remixicon/react' import { useStore as useAppStore } from '@/app/components/app/store' import ActionButton from '@/app/components/base/action-button' @@ -32,7 +33,7 @@ const Log: FC = ({ }} > - + ) diff --git a/web/app/components/base/chat/chat/question.tsx b/web/app/components/base/chat/chat/question.tsx index 9dcfae1f00..73f1b5cd93 100644 --- a/web/app/components/base/chat/chat/question.tsx +++ b/web/app/components/base/chat/chat/question.tsx @@ -4,6 +4,7 @@ import type { } from 'react' import type { Theme } from '../embedded-chatbot/theme/theme-context' import type { ChatItem } from '../types' +import { RiClipboardLine, RiEditLine } from '@remixicon/react' import copy from 'copy-to-clipboard' import { memo, @@ -112,11 +113,11 @@ const Question: FC = ({ Toast.notify({ type: 'success', message: t('actionMsg.copySuccessfully', { ns: 'common' }) }) }} > - + {enableEdit && ( - + )} diff --git a/web/app/components/base/chat/embedded-chatbot/header/index.tsx b/web/app/components/base/chat/embedded-chatbot/header/index.tsx index 95234a855d..fe7afc9e22 100644 --- a/web/app/components/base/chat/embedded-chatbot/header/index.tsx +++ b/web/app/components/base/chat/embedded-chatbot/header/index.tsx @@ -1,5 +1,6 @@ import type { FC } from 'react' import type { Theme } from '../theme/theme-context' +import { RiCollapseDiagonal2Line, RiExpandDiagonal2Line, RiResetLeftLine } from '@remixicon/react' import * as React from 'react' import { useCallback, useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -114,8 +115,8 @@ const Header: FC = ({ { expanded - ? - : + ? + : }
@@ -126,7 +127,7 @@ const Header: FC = ({ popupContent={t('chat.resetChat', { ns: 'share' })} > - + )} @@ -161,8 +162,8 @@ const Header: FC = ({ { expanded - ? - : + ? + : } @@ -173,7 +174,7 @@ const Header: FC = ({ popupContent={t('chat.resetChat', { ns: 'share' })} > - + )} diff --git a/web/app/components/base/chat/embedded-chatbot/inputs-form/view-form-dropdown.tsx b/web/app/components/base/chat/embedded-chatbot/inputs-form/view-form-dropdown.tsx index 91ba596c8e..e584c873b3 100644 --- a/web/app/components/base/chat/embedded-chatbot/inputs-form/view-form-dropdown.tsx +++ b/web/app/components/base/chat/embedded-chatbot/inputs-form/view-form-dropdown.tsx @@ -1,3 +1,6 @@ +import { + RiChatSettingsLine, +} from '@remixicon/react' import { useState } from 'react' import { useTranslation } from 'react-i18next' import ActionButton, { ActionButtonState } from '@/app/components/base/action-button' @@ -27,7 +30,7 @@ const ViewFormDropdown = ({ iconColor }: Props) => { onClick={() => setOpen(v => !v)} > - + diff --git a/web/app/components/base/checkbox/index.tsx b/web/app/components/base/checkbox/index.tsx index c5a72bb808..7ae56b218c 100644 --- a/web/app/components/base/checkbox/index.tsx +++ b/web/app/components/base/checkbox/index.tsx @@ -1,3 +1,4 @@ +import { RiCheckLine } from '@remixicon/react' import { cn } from '@/utils/classnames' import IndeterminateIcon from './assets/indeterminate-icon' @@ -42,7 +43,7 @@ const Checkbox = ({ data-testid={`checkbox-${id}`} > {!checked && indeterminate && } - {checked && } + {checked && } ) } diff --git a/web/app/components/base/chip/index.tsx b/web/app/components/base/chip/index.tsx index 39332799b8..faf4792de4 100644 --- a/web/app/components/base/chip/index.tsx +++ b/web/app/components/base/chip/index.tsx @@ -1,4 +1,5 @@ import type { FC } from 'react' +import { RiArrowDownSLine, RiCheckLine, RiCloseCircleFill, RiFilter3Line } from '@remixicon/react' import { useMemo, useState } from 'react' import { PortalToFollowElem, @@ -61,7 +62,7 @@ const Chip: FC = ({ {showLeftIcon && (
{leftIcon || ( - + )}
)} @@ -70,7 +71,7 @@ const Chip: FC = ({ {triggerContent} - {!value && } + {!value && } {!!value && (
= ({ onClear() }} > - +
)} @@ -97,7 +98,7 @@ const Chip: FC = ({ }} >
{item.name}
- {value === item.value && } + {value === item.value && } ))} diff --git a/web/app/components/base/copy-feedback/index.tsx b/web/app/components/base/copy-feedback/index.tsx index 07b2f2afeb..3d2160d185 100644 --- a/web/app/components/base/copy-feedback/index.tsx +++ b/web/app/components/base/copy-feedback/index.tsx @@ -1,5 +1,8 @@ 'use client' - +import { + RiClipboardFill, + RiClipboardLine, +} from '@remixicon/react' import { useClipboard } from 'foxact/use-clipboard' import { useCallback } from 'react' import { useTranslation } from 'react-i18next' @@ -35,8 +38,8 @@ const CopyFeedback = ({ content }: Props) => { onClick={handleCopy} onMouseLeave={reset} > - {copied && } - {!copied && } + {copied && } + {!copied && } diff --git a/web/app/components/base/date-and-time-picker/date-picker/footer.tsx b/web/app/components/base/date-and-time-picker/date-picker/footer.tsx index 5ec37a8125..acf14a6312 100644 --- a/web/app/components/base/date-and-time-picker/date-picker/footer.tsx +++ b/web/app/components/base/date-and-time-picker/date-picker/footer.tsx @@ -1,5 +1,6 @@ import type { FC } from 'react' import type { DatePickerFooterProps } from '../types' +import { RiTimeLine } from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' import { cn } from '@/utils/classnames' @@ -30,7 +31,7 @@ const Footer: FC = ({ py-1 text-components-button-secondary-accent-text shadow-xs shadow-shadow-shadow-3 backdrop-blur-[5px]" onClick={handleClickTimePicker} > - + {view === ViewType.date && {displayTime}} {view === ViewType.time && {t('operation.pickDate', { ns: 'time' })}} diff --git a/web/app/components/base/date-and-time-picker/date-picker/header.tsx b/web/app/components/base/date-and-time-picker/date-picker/header.tsx index 09999c5c90..4177edfe7a 100644 --- a/web/app/components/base/date-and-time-picker/date-picker/header.tsx +++ b/web/app/components/base/date-and-time-picker/date-picker/header.tsx @@ -1,5 +1,6 @@ import type { FC } from 'react' import type { DatePickerHeaderProps } from '../types' +import { RiArrowDownSLine, RiArrowUpSLine } from '@remixicon/react' import * as React from 'react' import { useMonths } from '../hooks' @@ -20,7 +21,7 @@ const Header: FC = ({ className="system-md-semibold flex items-center gap-x-0.5 rounded-lg px-2 py-1.5 text-text-primary hover:bg-state-base-hover" > {`${months[currentDate.month()]} ${currentDate.year()}`} - + ) diff --git a/web/app/components/base/date-and-time-picker/date-picker/index.tsx b/web/app/components/base/date-and-time-picker/date-picker/index.tsx index 919cd90c3c..15866be62a 100644 --- a/web/app/components/base/date-and-time-picker/date-picker/index.tsx +++ b/web/app/components/base/date-and-time-picker/date-picker/index.tsx @@ -1,5 +1,6 @@ import type { Dayjs } from 'dayjs' import type { DatePickerProps, Period } from '../types' +import { RiCalendarLine, RiCloseCircleFill } from '@remixicon/react' import * as React from 'react' import { useCallback, useEffect, useMemo, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -236,17 +237,17 @@ const DatePicker = ({ value={isOpen ? '' : displayValue} placeholder={placeholderDate} /> - - diff --git a/web/app/components/base/date-and-time-picker/time-picker/index.tsx b/web/app/components/base/date-and-time-picker/time-picker/index.tsx index a2157d692c..929f4b0c42 100644 --- a/web/app/components/base/date-and-time-picker/time-picker/index.tsx +++ b/web/app/components/base/date-and-time-picker/time-picker/index.tsx @@ -1,5 +1,6 @@ import type { Dayjs } from 'dayjs' import type { TimePickerProps } from '../types' +import { RiCloseCircleFill, RiTimeLine } from '@remixicon/react' import * as React from 'react' import { useCallback, useEffect, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -230,17 +231,17 @@ const TimePicker = ({ {showTimezone && timezone && ( )} - - = ({ className="system-md-semibold flex items-center gap-x-0.5 rounded-lg px-2 py-1.5 text-text-primary hover:bg-state-base-hover" > {`${months[selectedMonth]} ${selectedYear}`} - + ) diff --git a/web/app/components/base/drawer-plus/index.tsx b/web/app/components/base/drawer-plus/index.tsx index aa8c89c441..0b59997885 100644 --- a/web/app/components/base/drawer-plus/index.tsx +++ b/web/app/components/base/drawer-plus/index.tsx @@ -1,5 +1,6 @@ 'use client' import type { FC } from 'react' +import { RiCloseLine } from '@remixicon/react' import * as React from 'react' import { useRef } from 'react' import Drawer from '@/app/components/base/drawer' @@ -80,7 +81,7 @@ const DrawerPlus: FC = ({ onClick={onHide} className="flex h-6 w-6 cursor-pointer items-center justify-center" > - + diff --git a/web/app/components/base/drawer/index.tsx b/web/app/components/base/drawer/index.tsx index ac5a4e14d3..2f44ce75af 100644 --- a/web/app/components/base/drawer/index.tsx +++ b/web/app/components/base/drawer/index.tsx @@ -1,5 +1,6 @@ 'use client' import { Dialog, DialogBackdrop, DialogTitle } from '@headlessui/react' +import { XMarkIcon } from '@heroicons/react/24/outline' import { useTranslation } from 'react-i18next' import { cn } from '@/utils/classnames' import Button from '../button' @@ -80,7 +81,7 @@ export default function Drawer({ )} {showClose && ( - + )} diff --git a/web/app/components/base/dropdown/index.tsx b/web/app/components/base/dropdown/index.tsx index 79f7d9fda8..d83a97ce25 100644 --- a/web/app/components/base/dropdown/index.tsx +++ b/web/app/components/base/dropdown/index.tsx @@ -1,6 +1,8 @@ import type { FC } from 'react' import type { ActionButtonProps } from '@/app/components/base/action-button' - +import { + RiMoreFill, +} from '@remixicon/react' import { useState } from 'react' import ActionButton from '@/app/components/base/action-button' import { @@ -59,7 +61,7 @@ const Dropdown: FC = ({ triggerProps?.className, )} > - + ) } diff --git a/web/app/components/base/emoji-picker/Inner.tsx b/web/app/components/base/emoji-picker/Inner.tsx index c34a4d6491..f125cfa63b 100644 --- a/web/app/components/base/emoji-picker/Inner.tsx +++ b/web/app/components/base/emoji-picker/Inner.tsx @@ -2,7 +2,11 @@ import type { EmojiMartData } from '@emoji-mart/data' import type { ChangeEvent, FC } from 'react' import data from '@emoji-mart/data' - +import { + ChevronDownIcon, + ChevronUpIcon, + MagnifyingGlassIcon, +} from '@heroicons/react/24/outline' import { init } from 'emoji-mart' import * as React from 'react' import { useState } from 'react' @@ -67,7 +71,7 @@ const EmojiPickerInner: FC = ({
-
= ({

Choose Style

{showStyleColors - ? setShowStyleColors(!showStyleColors)} /> - : setShowStyleColors(!showStyleColors)} />} + ? setShowStyleColors(!showStyleColors)} /> + : setShowStyleColors(!showStyleColors)} />}
{showStyleColors && (
diff --git a/web/app/components/base/encrypted-bottom/index.tsx b/web/app/components/base/encrypted-bottom/index.tsx index 9e8dbfbb90..5a9bc9b488 100644 --- a/web/app/components/base/encrypted-bottom/index.tsx +++ b/web/app/components/base/encrypted-bottom/index.tsx @@ -1,4 +1,5 @@ import type { I18nKeysWithPrefix } from '@/types/i18n' +import { RiLock2Fill } from '@remixicon/react' import Link from 'next/link' import { useTranslation } from 'react-i18next' import { cn } from '@/utils/classnames' @@ -20,7 +21,7 @@ export const EncryptedBottom = (props: Props) => { return (
- + {t(frontTextKey, { ns: 'common' })}
- +

{customTitle || 'Something went wrong'}

@@ -129,7 +130,7 @@ class ErrorBoundaryInner extends React.Component<
- + Error Details (Development Only) diff --git a/web/app/components/base/features/new-feature-panel/annotation-reply/annotation-ctrl-button.tsx b/web/app/components/base/features/new-feature-panel/annotation-reply/annotation-ctrl-button.tsx index 2284637131..0e8fa8dfae 100644 --- a/web/app/components/base/features/new-feature-panel/annotation-reply/annotation-ctrl-button.tsx +++ b/web/app/components/base/features/new-feature-panel/annotation-reply/annotation-ctrl-button.tsx @@ -1,6 +1,9 @@ 'use client' import type { FC } from 'react' - +import { + RiEditLine, + RiFileEditLine, +} from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' import ActionButton from '@/app/components/base/action-button' @@ -57,7 +60,7 @@ const AnnotationCtrlButton: FC = ({ popupContent={t('feature.annotation.edit', { ns: 'appDebug' })} > - + )} @@ -66,7 +69,7 @@ const AnnotationCtrlButton: FC = ({ popupContent={t('feature.annotation.add', { ns: 'appDebug' })} > - + )} diff --git a/web/app/components/base/features/new-feature-panel/annotation-reply/index.tsx b/web/app/components/base/features/new-feature-panel/annotation-reply/index.tsx index 4c4a911749..e85e566a87 100644 --- a/web/app/components/base/features/new-feature-panel/annotation-reply/index.tsx +++ b/web/app/components/base/features/new-feature-panel/annotation-reply/index.tsx @@ -1,5 +1,6 @@ import type { OnFeaturesChange } from '@/app/components/base/features/types' import type { AnnotationReplyConfig } from '@/models/debug' +import { RiEqualizer2Line, RiExternalLinkLine } from '@remixicon/react' import { produce } from 'immer' import { usePathname, useRouter } from 'next/navigation' import * as React from 'react' @@ -111,7 +112,7 @@ const AnnotationReply = ({ {isHovering && (
diff --git a/web/app/components/base/features/new-feature-panel/conversation-opener/index.tsx b/web/app/components/base/features/new-feature-panel/conversation-opener/index.tsx index f48c135851..c7732cfa26 100644 --- a/web/app/components/base/features/new-feature-panel/conversation-opener/index.tsx +++ b/web/app/components/base/features/new-feature-panel/conversation-opener/index.tsx @@ -1,6 +1,7 @@ import type { OnFeaturesChange } from '@/app/components/base/features/types' import type { InputVar } from '@/app/components/workflow/types' import type { PromptVariable } from '@/models/debug' +import { RiEditLine } from '@remixicon/react' import { produce } from 'immer' import * as React from 'react' import { useCallback, useState } from 'react' @@ -105,7 +106,7 @@ const ConversationOpener = ({ )} {isHovering && ( )} diff --git a/web/app/components/base/features/new-feature-panel/conversation-opener/modal.tsx b/web/app/components/base/features/new-feature-panel/conversation-opener/modal.tsx index dcd23f3cd5..79520134a4 100644 --- a/web/app/components/base/features/new-feature-panel/conversation-opener/modal.tsx +++ b/web/app/components/base/features/new-feature-panel/conversation-opener/modal.tsx @@ -1,6 +1,7 @@ import type { OpeningStatement } from '@/app/components/base/features/types' import type { InputVar } from '@/app/components/workflow/types' import type { PromptVariable } from '@/models/debug' +import { RiAddLine, RiAsterisk, RiCloseLine, RiDeleteBinLine, RiDraggable } from '@remixicon/react' import { useBoolean } from 'ahooks' import { noop } from 'es-toolkit/function' import { produce } from 'immer' @@ -138,7 +139,7 @@ const OpeningSettingModal = ({ )} key={index} > - + setDeletingID(index)} onMouseLeave={() => setDeletingID(null)} > - +
) @@ -176,7 +177,7 @@ const OpeningSettingModal = ({ onClick={() => { setTempSuggestedQuestions([...tempSuggestedQuestions, '']) }} className="mt-1 flex h-9 cursor-pointer items-center gap-2 rounded-lg bg-components-button-tertiary-bg px-3 text-components-button-tertiary-text hover:bg-components-button-tertiary-bg-hover" > - +
{t('variableConfig.addOption', { ns: 'appDebug' })}
)} @@ -192,11 +193,11 @@ const OpeningSettingModal = ({ >
{t('feature.conversationOpener.title', { ns: 'appDebug' })}
-
+
- +
{noFeatureEnabled && (
onFeatureBarClick?.(true)}> - +
{t('feature.bar.empty', { ns: 'appDebug' })}
- +
)} {!noFeatureEnabled && ( @@ -54,7 +55,7 @@ const FeatureBar = ({ popupContent={t('feature.moreLikeThis.title', { ns: 'appDebug' })} >
- +
)} @@ -138,7 +139,7 @@ const FeatureBar = ({ !hideEditEntrance && ( ) } diff --git a/web/app/components/base/features/new-feature-panel/feature-card.tsx b/web/app/components/base/features/new-feature-panel/feature-card.tsx index b993198a64..7b7327517b 100644 --- a/web/app/components/base/features/new-feature-panel/feature-card.tsx +++ b/web/app/components/base/features/new-feature-panel/feature-card.tsx @@ -1,3 +1,6 @@ +import { + RiQuestionLine, +} from '@remixicon/react' import * as React from 'react' import Switch from '@/app/components/base/switch' import Tooltip from '@/app/components/base/tooltip' @@ -41,7 +44,7 @@ const FeatureCard = ({ -
+
)}
diff --git a/web/app/components/base/features/new-feature-panel/file-upload/index.tsx b/web/app/components/base/features/new-feature-panel/file-upload/index.tsx index e62b61d7c9..64c03d1fe1 100644 --- a/web/app/components/base/features/new-feature-panel/file-upload/index.tsx +++ b/web/app/components/base/features/new-feature-panel/file-upload/index.tsx @@ -1,4 +1,5 @@ import type { OnFeaturesChange } from '@/app/components/base/features/types' +import { RiEqualizer2Line } from '@remixicon/react' import { produce } from 'immer' import * as React from 'react' import { useCallback, useMemo, useState } from 'react' @@ -90,7 +91,7 @@ const FileUpload = ({ onChange={onChange} > diff --git a/web/app/components/base/features/new-feature-panel/file-upload/setting-content.tsx b/web/app/components/base/features/new-feature-panel/file-upload/setting-content.tsx index fc544c254b..f871cb6b02 100644 --- a/web/app/components/base/features/new-feature-panel/file-upload/setting-content.tsx +++ b/web/app/components/base/features/new-feature-panel/file-upload/setting-content.tsx @@ -1,5 +1,6 @@ import type { OnFeaturesChange } from '@/app/components/base/features/types' import type { UploadFileSetting } from '@/app/components/workflow/types' +import { RiCloseLine } from '@remixicon/react' import { produce } from 'immer' import * as React from 'react' import { useCallback, useMemo, useState } from 'react' @@ -58,7 +59,7 @@ const SettingContent = ({ <>
{!imageUpload ? t('feature.fileUpload.modalTitle', { ns: 'appDebug' }) : t('feature.imageUpload.modalTitle', { ns: 'appDebug' })}
-
+
- +
)} title={( @@ -99,7 +100,7 @@ const FileUpload = ({ onChange={onChange} > diff --git a/web/app/components/base/features/new-feature-panel/index.tsx b/web/app/components/base/features/new-feature-panel/index.tsx index b0858b9fa2..9ee2f407eb 100644 --- a/web/app/components/base/features/new-feature-panel/index.tsx +++ b/web/app/components/base/features/new-feature-panel/index.tsx @@ -1,6 +1,7 @@ import type { OnFeaturesChange } from '@/app/components/base/features/types' import type { InputVar } from '@/app/components/workflow/types' import type { PromptVariable } from '@/models/debug' +import { RiCloseLine, RiInformation2Fill } from '@remixicon/react' import { useTranslation } from 'react-i18next' import AnnotationReply from '@/app/components/base/features/new-feature-panel/annotation-reply' @@ -59,7 +60,7 @@ const NewFeaturePanel = ({
{t('common.features', { ns: 'workflow' })}
{t('common.featuresDescription', { ns: 'workflow' })}
-
+
{/* list */}
@@ -68,7 +69,7 @@ const NewFeaturePanel = ({
- +
{isChatMode ? t('common.fileUploadTip', { ns: 'workflow' }) : t('common.ImageUploadLegacyTip', { ns: 'workflow' })} diff --git a/web/app/components/base/features/new-feature-panel/moderation/index.tsx b/web/app/components/base/features/new-feature-panel/moderation/index.tsx index 75f0a196f3..0a22ce19f2 100644 --- a/web/app/components/base/features/new-feature-panel/moderation/index.tsx +++ b/web/app/components/base/features/new-feature-panel/moderation/index.tsx @@ -1,4 +1,5 @@ import type { OnFeaturesChange } from '@/app/components/base/features/types' +import { RiEqualizer2Line } from '@remixicon/react' import { produce } from 'immer' import { useCallback, useMemo, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -156,7 +157,7 @@ const Moderation = ({ )} {isHovering && ( )} diff --git a/web/app/components/base/features/new-feature-panel/moderation/moderation-setting-modal.tsx b/web/app/components/base/features/new-feature-panel/moderation/moderation-setting-modal.tsx index e8cf8a2446..c9455c98eb 100644 --- a/web/app/components/base/features/new-feature-panel/moderation/moderation-setting-modal.tsx +++ b/web/app/components/base/features/new-feature-panel/moderation/moderation-setting-modal.tsx @@ -1,6 +1,7 @@ import type { ChangeEvent, FC } from 'react' import type { CodeBasedExtensionItem } from '@/models/common' import type { ModerationConfig, ModerationContentConfig } from '@/models/debug' +import { RiCloseLine } from '@remixicon/react' import { noop } from 'es-toolkit/function' import { useState } from 'react' import { useTranslation } from 'react-i18next' @@ -238,7 +239,7 @@ const ModerationSettingModal: FC = ({ >
{t('feature.moderation.modal.title', { ns: 'appDebug' })}
-
+
diff --git a/web/app/components/base/features/new-feature-panel/more-like-this.tsx b/web/app/components/base/features/new-feature-panel/more-like-this.tsx index 88878585bc..be969d2f34 100644 --- a/web/app/components/base/features/new-feature-panel/more-like-this.tsx +++ b/web/app/components/base/features/new-feature-panel/more-like-this.tsx @@ -1,4 +1,5 @@ import type { OnFeaturesChange } from '@/app/components/base/features/types' +import { RiSparklingFill } from '@remixicon/react' import { produce } from 'immer' import * as React from 'react' import { useCallback } from 'react' @@ -41,7 +42,7 @@ const MoreLikeThis = ({ - +
)} title={t('feature.moreLikeThis.title', { ns: 'appDebug' })} diff --git a/web/app/components/base/features/new-feature-panel/text-to-speech/index.tsx b/web/app/components/base/features/new-feature-panel/text-to-speech/index.tsx index f46e73d036..f72a5859f7 100644 --- a/web/app/components/base/features/new-feature-panel/text-to-speech/index.tsx +++ b/web/app/components/base/features/new-feature-panel/text-to-speech/index.tsx @@ -1,4 +1,5 @@ import type { OnFeaturesChange } from '@/app/components/base/features/types' +import { RiEqualizer2Line } from '@remixicon/react' import { produce } from 'immer' import * as React from 'react' import { useCallback, useState } from 'react' @@ -87,7 +88,7 @@ const TextToSpeech = ({ {(isHovering || modalOpen) && ( diff --git a/web/app/components/base/features/new-feature-panel/text-to-speech/param-config-content.tsx b/web/app/components/base/features/new-feature-panel/text-to-speech/param-config-content.tsx index 834391435a..cab41c66c1 100644 --- a/web/app/components/base/features/new-feature-panel/text-to-speech/param-config-content.tsx +++ b/web/app/components/base/features/new-feature-panel/text-to-speech/param-config-content.tsx @@ -2,6 +2,8 @@ import type { OnFeaturesChange } from '@/app/components/base/features/types' import type { Item } from '@/app/components/base/select' import { Listbox, ListboxButton, ListboxOption, ListboxOptions, Transition } from '@headlessui/react' +import { CheckIcon, ChevronDownIcon } from '@heroicons/react/20/solid' +import { RiCloseLine } from '@remixicon/react' import { produce } from 'immer' import { usePathname } from 'next/navigation' import * as React from 'react' @@ -66,7 +68,7 @@ const VoiceParamConfig = ({ <>
{t('voice.voiceSettings.title', { ns: 'appDebug' })}
-
+
@@ -99,7 +101,10 @@ const VoiceParamConfig = ({ {languageItem?.name ? t(`voice.language.${replace(languageItem?.value, '-', '')}`, { ns: 'common' }) : localLanguagePlaceholder} - - )} @@ -166,7 +171,10 @@ const VoiceParamConfig = ({ {voiceItem?.name ?? localVoicePlaceholder} - - )} diff --git a/web/app/components/base/file-uploader/audio-preview.tsx b/web/app/components/base/file-uploader/audio-preview.tsx index b5db4380e3..e8be22fc9f 100644 --- a/web/app/components/base/file-uploader/audio-preview.tsx +++ b/web/app/components/base/file-uploader/audio-preview.tsx @@ -1,4 +1,5 @@ import type { FC } from 'react' +import { RiCloseLine } from '@remixicon/react' import * as React from 'react' import { createPortal } from 'react-dom' @@ -35,7 +36,7 @@ const AudioPreview: FC = ({ className="absolute right-6 top-6 flex h-8 w-8 cursor-pointer items-center justify-center rounded-lg bg-white/[0.08] backdrop-blur-[2px]" onClick={onCancel} > - +
, document.body, diff --git a/web/app/components/base/file-uploader/file-from-link-or-local/index.tsx b/web/app/components/base/file-uploader/file-from-link-or-local/index.tsx index 78ecf66e1b..04f75e834d 100644 --- a/web/app/components/base/file-uploader/file-from-link-or-local/index.tsx +++ b/web/app/components/base/file-uploader/file-from-link-or-local/index.tsx @@ -1,4 +1,5 @@ import type { FileUpload } from '@/app/components/base/features/types' +import { RiUploadCloud2Line } from '@remixicon/react' import { memo, useState, @@ -114,7 +115,7 @@ const FileFromLinkOrLocal = ({ variant="secondary-accent" disabled={disabled} > - + {t('fileUploader.uploadFromComputer', { ns: 'common' })} diff --git a/web/app/components/base/file-uploader/file-list-in-log.tsx b/web/app/components/base/file-uploader/file-list-in-log.tsx index 2cd3005808..635afd5a7e 100644 --- a/web/app/components/base/file-uploader/file-list-in-log.tsx +++ b/web/app/components/base/file-uploader/file-list-in-log.tsx @@ -1,4 +1,5 @@ import type { FileEntity } from './types' +import { RiArrowRightSLine } from '@remixicon/react' import * as React from 'react' import { useMemo, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -78,7 +79,7 @@ const FileListInLog = ({ fileList, isExpanded = false, noBorder = false, noPaddi )}
setExpanded(!expanded)}> {!expanded &&
{t('runDetail.fileListDetail', { ns: 'appLog' })}
} - +
{expanded && ( diff --git a/web/app/components/base/file-uploader/file-uploader-in-attachment/file-item.tsx b/web/app/components/base/file-uploader/file-uploader-in-attachment/file-item.tsx index 3cbcb26610..6ef5bcb308 100644 --- a/web/app/components/base/file-uploader/file-uploader-in-attachment/file-item.tsx +++ b/web/app/components/base/file-uploader/file-uploader-in-attachment/file-item.tsx @@ -1,5 +1,9 @@ import type { FileEntity } from '../types' - +import { + RiDeleteBinLine, + RiDownloadLine, + RiEyeLine, +} from '@remixicon/react' import { memo, useState, @@ -121,14 +125,14 @@ const FileInAttachmentItem = ({ { showDeleteAction && ( onRemove?.(id)}> - + ) } { canPreview && isImageFile && ( setImagePreviewUrl(url || '')}> - + ) } @@ -139,7 +143,7 @@ const FileInAttachmentItem = ({ downloadFile(url || base64Url || '', name) }} > - + ) } diff --git a/web/app/components/base/file-uploader/file-uploader-in-attachment/index.tsx b/web/app/components/base/file-uploader/file-uploader-in-attachment/index.tsx index 23a2a920a6..9af0fd77a8 100644 --- a/web/app/components/base/file-uploader/file-uploader-in-attachment/index.tsx +++ b/web/app/components/base/file-uploader/file-uploader-in-attachment/index.tsx @@ -1,6 +1,9 @@ import type { FileEntity } from '../types' import type { FileUpload } from '@/app/components/base/features/types' - +import { + RiLink, + RiUploadCloud2Line, +} from '@remixicon/react' import { useCallback, } from 'react' @@ -40,12 +43,12 @@ const FileUploaderInAttachment = ({ { value: TransferMethod.local_file, label: t('fileUploader.uploadFromComputer', { ns: 'common' }), - icon: , + icon: , }, { value: TransferMethod.remote_url, label: t('fileUploader.pasteFileLink', { ns: 'common' }), - icon: , + icon: , }, ] diff --git a/web/app/components/base/file-uploader/file-uploader-in-chat-input/file-image-item.tsx b/web/app/components/base/file-uploader/file-uploader-in-chat-input/file-image-item.tsx index a016397d9d..77dc3e35b8 100644 --- a/web/app/components/base/file-uploader/file-uploader-in-chat-input/file-image-item.tsx +++ b/web/app/components/base/file-uploader/file-uploader-in-chat-input/file-image-item.tsx @@ -1,5 +1,8 @@ import type { FileEntity } from '../types' - +import { + RiCloseLine, + RiDownloadLine, +} from '@remixicon/react' import { useState } from 'react' import Button from '@/app/components/base/button' import { ReplayLine } from '@/app/components/base/icons/src/vender/other' @@ -43,7 +46,7 @@ const FileImageItem = ({ className="absolute -right-1.5 -top-1.5 z-[11] hidden h-5 w-5 rounded-full p-0 group-hover/file-image:flex" onClick={() => onRemove?.(id)} > - + ) } @@ -85,7 +88,7 @@ const FileImageItem = ({ downloadFile(download_url || '', name) }} > - +
) diff --git a/web/app/components/base/file-uploader/file-uploader-in-chat-input/file-item.tsx b/web/app/components/base/file-uploader/file-uploader-in-chat-input/file-item.tsx index cc6d9a7bae..828864239a 100644 --- a/web/app/components/base/file-uploader/file-uploader-in-chat-input/file-item.tsx +++ b/web/app/components/base/file-uploader/file-uploader-in-chat-input/file-item.tsx @@ -1,5 +1,8 @@ import type { FileEntity } from '../types' - +import { + RiCloseLine, + RiDownloadLine, +} from '@remixicon/react' import { useState } from 'react' import ActionButton from '@/app/components/base/action-button' import Button from '@/app/components/base/button' @@ -60,7 +63,7 @@ const FileItem = ({ className="absolute -right-1.5 -top-1.5 z-[11] hidden h-5 w-5 rounded-full p-0 group-hover/file-item:flex" onClick={() => onRemove?.(id)} > - + ) } @@ -100,7 +103,7 @@ const FileItem = ({ downloadFile(download_url || '', name) }} > - + ) } diff --git a/web/app/components/base/file-uploader/file-uploader-in-chat-input/index.tsx b/web/app/components/base/file-uploader/file-uploader-in-chat-input/index.tsx index aa09e6df5f..08bb8b45d1 100644 --- a/web/app/components/base/file-uploader/file-uploader-in-chat-input/index.tsx +++ b/web/app/components/base/file-uploader/file-uploader-in-chat-input/index.tsx @@ -1,5 +1,7 @@ import type { FileUpload } from '@/app/components/base/features/types' - +import { + RiAttachmentLine, +} from '@remixicon/react' import { memo, useCallback, @@ -24,7 +26,7 @@ const FileUploaderInChatInput = ({ className={cn(open && 'bg-state-base-hover')} disabled={readonly} > - + ) }, []) diff --git a/web/app/components/base/file-uploader/pdf-preview.tsx b/web/app/components/base/file-uploader/pdf-preview.tsx index a7c4013cb1..aab8bcd9d1 100644 --- a/web/app/components/base/file-uploader/pdf-preview.tsx +++ b/web/app/components/base/file-uploader/pdf-preview.tsx @@ -1,4 +1,5 @@ import type { FC } from 'react' +import { RiCloseLine, RiZoomInLine, RiZoomOutLine } from '@remixicon/react' import { noop } from 'es-toolkit/function' import { t } from 'i18next' import * as React from 'react' @@ -81,7 +82,7 @@ const PdfPreview: FC = ({ className="absolute right-24 top-6 flex h-8 w-8 cursor-pointer items-center justify-center rounded-lg" onClick={zoomOut} > - +
@@ -89,7 +90,7 @@ const PdfPreview: FC = ({ className="absolute right-16 top-6 flex h-8 w-8 cursor-pointer items-center justify-center rounded-lg" onClick={zoomIn} > - + @@ -97,7 +98,7 @@ const PdfPreview: FC = ({ className="absolute right-6 top-6 flex h-8 w-8 cursor-pointer items-center justify-center rounded-lg bg-white/8 backdrop-blur-[2px]" onClick={onCancel} > - + , diff --git a/web/app/components/base/file-uploader/video-preview.tsx b/web/app/components/base/file-uploader/video-preview.tsx index 26c41cc68e..94d9a94c58 100644 --- a/web/app/components/base/file-uploader/video-preview.tsx +++ b/web/app/components/base/file-uploader/video-preview.tsx @@ -1,4 +1,5 @@ import type { FC } from 'react' +import { RiCloseLine } from '@remixicon/react' import * as React from 'react' import { createPortal } from 'react-dom' import { useHotkeys } from 'react-hotkeys-hook' @@ -34,7 +35,7 @@ const VideoPreview: FC = ({ className="absolute right-6 top-6 flex h-8 w-8 cursor-pointer items-center justify-center rounded-lg bg-white/[0.08] backdrop-blur-[2px]" onClick={onCancel} > - + , document.body, diff --git a/web/app/components/base/form/components/base/base-field.tsx b/web/app/components/base/form/components/base/base-field.tsx index 045f7cdbcd..6b2e325b77 100644 --- a/web/app/components/base/form/components/base/base-field.tsx +++ b/web/app/components/base/form/components/base/base-field.tsx @@ -1,5 +1,6 @@ import type { AnyFieldApi } from '@tanstack/react-form' import type { FieldState, FormSchema, TypeWithI18N } from '@/app/components/base/form/types' +import { RiExternalLinkLine } from '@remixicon/react' import { useStore } from '@tanstack/react-form' import { isValidElement, @@ -338,7 +339,7 @@ const BaseField = ({ {translatedHelp} - + ) } diff --git a/web/app/components/base/form/components/field/input-type-select/trigger.tsx b/web/app/components/base/form/components/field/input-type-select/trigger.tsx index def0ff046a..c03beeb472 100644 --- a/web/app/components/base/form/components/field/input-type-select/trigger.tsx +++ b/web/app/components/base/form/components/field/input-type-select/trigger.tsx @@ -1,4 +1,5 @@ import type { FileTypeSelectOption } from './types' +import { RiArrowDownSLine } from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' import Badge from '@/app/components/base/badge' @@ -30,10 +31,11 @@ const Trigger = ({ : ( {t('placeholder.select', { ns: 'common' })} )} - ) diff --git a/web/app/components/base/fullscreen-modal/index.tsx b/web/app/components/base/fullscreen-modal/index.tsx index 818a3227b0..fb2d2fa79b 100644 --- a/web/app/components/base/fullscreen-modal/index.tsx +++ b/web/app/components/base/fullscreen-modal/index.tsx @@ -1,4 +1,5 @@ import { Dialog, DialogPanel, Transition, TransitionChild } from '@headlessui/react' +import { RiCloseLargeLine } from '@remixicon/react' import { noop } from 'es-toolkit/function' import { cn } from '@/utils/classnames' @@ -50,7 +51,7 @@ export default function FullScreenModal({ onClose() }} > - + )} {children} diff --git a/web/app/components/base/image-uploader/audio-preview.tsx b/web/app/components/base/image-uploader/audio-preview.tsx index 86cd2019d4..ce0ea5ca0c 100644 --- a/web/app/components/base/image-uploader/audio-preview.tsx +++ b/web/app/components/base/image-uploader/audio-preview.tsx @@ -1,4 +1,5 @@ import type { FC } from 'react' +import { RiCloseLine } from '@remixicon/react' import { createPortal } from 'react-dom' type AudioPreviewProps = { @@ -26,7 +27,7 @@ const AudioPreview: FC = ({ className="absolute right-6 top-6 flex h-8 w-8 cursor-pointer items-center justify-center rounded-lg bg-white/[0.08] backdrop-blur-[2px]" onClick={onCancel} > - + , document.body, diff --git a/web/app/components/base/image-uploader/image-list.tsx b/web/app/components/base/image-uploader/image-list.tsx index 06e2c2202b..5488990891 100644 --- a/web/app/components/base/image-uploader/image-list.tsx +++ b/web/app/components/base/image-uploader/image-list.tsx @@ -1,6 +1,9 @@ import type { FC } from 'react' import type { ImageFile } from '@/types/app' - +import { + RiCloseLine, + RiLoader2Line, +} from '@remixicon/react' import { useState } from 'react' import { useTranslation } from 'react-i18next' import { RefreshCcw01 } from '@/app/components/base/icons/src/vender/line/arrows' @@ -83,7 +86,7 @@ const ImageList: FC = ({ `} > {item.progress > -1 && ( - + )} {item.progress === -1 && ( = ({ )} onClick={() => onRemove?.(item._id)} > - + )} diff --git a/web/app/components/base/image-uploader/image-preview.tsx b/web/app/components/base/image-uploader/image-preview.tsx index 13bbe3fa7a..b6a07c60aa 100644 --- a/web/app/components/base/image-uploader/image-preview.tsx +++ b/web/app/components/base/image-uploader/image-preview.tsx @@ -1,4 +1,5 @@ import type { FC } from 'react' +import { RiAddBoxLine, RiCloseLine, RiDownloadCloud2Line, RiFileCopyLine, RiZoomInLine, RiZoomOutLine } from '@remixicon/react' import { noop } from 'es-toolkit/function' import { t } from 'i18next' import * as React from 'react' @@ -230,8 +231,8 @@ const ImagePreview: FC = ({ onClick={imageCopy} > {isCopied - ? - : } + ? + : } @@ -239,7 +240,7 @@ const ImagePreview: FC = ({ className="absolute right-40 top-6 flex h-8 w-8 cursor-pointer items-center justify-center rounded-lg" onClick={zoomOut} > - + @@ -247,7 +248,7 @@ const ImagePreview: FC = ({ className="absolute right-32 top-6 flex h-8 w-8 cursor-pointer items-center justify-center rounded-lg" onClick={zoomIn} > - + @@ -255,7 +256,7 @@ const ImagePreview: FC = ({ className="absolute right-24 top-6 flex h-8 w-8 cursor-pointer items-center justify-center rounded-lg" onClick={downloadImage} > - + @@ -263,7 +264,7 @@ const ImagePreview: FC = ({ className="absolute right-16 top-6 flex h-8 w-8 cursor-pointer items-center justify-center rounded-lg" onClick={openInNewTab} > - + @@ -271,7 +272,7 @@ const ImagePreview: FC = ({ className="absolute right-6 top-6 flex h-8 w-8 cursor-pointer items-center justify-center rounded-lg bg-white/8 backdrop-blur-[2px]" onClick={onCancel} > - + , diff --git a/web/app/components/base/image-uploader/video-preview.tsx b/web/app/components/base/image-uploader/video-preview.tsx index 6af7ef6f0c..59a439e6c8 100644 --- a/web/app/components/base/image-uploader/video-preview.tsx +++ b/web/app/components/base/image-uploader/video-preview.tsx @@ -1,4 +1,5 @@ import type { FC } from 'react' +import { RiCloseLine } from '@remixicon/react' import { createPortal } from 'react-dom' type VideoPreviewProps = { @@ -26,7 +27,7 @@ const VideoPreview: FC = ({ className="absolute right-6 top-6 flex h-8 w-8 cursor-pointer items-center justify-center rounded-lg bg-white/[0.08] backdrop-blur-[2px]" onClick={onCancel} > - + , document.body, diff --git a/web/app/components/base/input-number/index.tsx b/web/app/components/base/input-number/index.tsx index 163d8da813..f5cdf36780 100644 --- a/web/app/components/base/input-number/index.tsx +++ b/web/app/components/base/input-number/index.tsx @@ -1,5 +1,6 @@ import type { FC } from 'react' import type { InputProps } from '../input' +import { RiArrowDownSLine, RiArrowUpSLine } from '@remixicon/react' import { useCallback } from 'react' import { cn } from '@/utils/classnames' import Input from '../input' @@ -107,7 +108,7 @@ export const InputNumber: FC = (props) => { aria-label="increment" className={cn(size === 'regular' ? 'pt-1' : 'pt-1.5', 'px-1.5 hover:bg-components-input-bg-hover', disabled && 'cursor-not-allowed hover:bg-transparent', controlClassName)} > - + diff --git a/web/app/components/base/input-with-copy/index.tsx b/web/app/components/base/input-with-copy/index.tsx index 862ef52e1d..7981ba6236 100644 --- a/web/app/components/base/input-with-copy/index.tsx +++ b/web/app/components/base/input-with-copy/index.tsx @@ -1,5 +1,6 @@ 'use client' import type { InputProps } from '../input' +import { RiClipboardFill, RiClipboardLine } from '@remixicon/react' import { useClipboard } from 'foxact/use-clipboard' import * as React from 'react' import { useTranslation } from 'react-i18next' @@ -71,10 +72,10 @@ const InputWithCopy = React.forwardRef(( > {copied ? ( - + ) : ( - + )} diff --git a/web/app/components/base/input/index.tsx b/web/app/components/base/input/index.tsx index 531a19722d..ae76b71a1c 100644 --- a/web/app/components/base/input/index.tsx +++ b/web/app/components/base/input/index.tsx @@ -1,5 +1,6 @@ import type { VariantProps } from 'class-variance-authority' import type { ChangeEventHandler, CSSProperties, FocusEventHandler } from 'react' +import { RiCloseCircleFill, RiErrorWarningLine, RiSearchLine } from '@remixicon/react' import { cva } from 'class-variance-authority' import { noop } from 'es-toolkit/function' import * as React from 'react' @@ -82,7 +83,7 @@ const Input = React.forwardRef(({ } return (
- {showLeftIcon && } + {showLeftIcon && } (({ onClick={onClear} data-testid="input-clear" > - +
)} {destructive && ( - + )} {showCopyIcon && (
diff --git a/web/app/components/base/linked-apps-panel/index.tsx b/web/app/components/base/linked-apps-panel/index.tsx index ebf0a6508b..adc8ccf729 100644 --- a/web/app/components/base/linked-apps-panel/index.tsx +++ b/web/app/components/base/linked-apps-panel/index.tsx @@ -1,6 +1,7 @@ 'use client' import type { FC } from 'react' import type { RelatedApp } from '@/models/datasets' +import { RiArrowRightUpLine } from '@remixicon/react' import Link from 'next/link' import * as React from 'react' import AppIcon from '@/app/components/base/app-icon' @@ -34,7 +35,7 @@ const LikedItem = ({ {!isMobile &&
{detail?.name || '--'}
}
{appTypeMap[detail.mode]}
- + ) } diff --git a/web/app/components/base/mermaid/index.tsx b/web/app/components/base/mermaid/index.tsx index 5cf0ffc2ee..d8db7f625e 100644 --- a/web/app/components/base/mermaid/index.tsx +++ b/web/app/components/base/mermaid/index.tsx @@ -1,4 +1,6 @@ import type { MermaidConfig } from 'mermaid' +import { ExclamationTriangleIcon } from '@heroicons/react/24/outline' +import { MoonIcon, SunIcon } from '@heroicons/react/24/solid' import mermaid from 'mermaid' import * as React from 'react' import { useCallback, useEffect, useRef, useState } from 'react' @@ -556,7 +558,7 @@ const Flowchart = (props: FlowchartProps) => { title={(currentTheme === Theme.light ? t('theme.switchDark', { ns: 'app' }) : t('theme.switchLight', { ns: 'app' })) || ''} style={{ transform: 'translate3d(0, 0, 0)' }} > - {currentTheme === Theme.light ? : } + {currentTheme === Theme.light ? : } @@ -570,7 +572,7 @@ const Flowchart = (props: FlowchartProps) => { {errMsg && (
- + {errMsg}
diff --git a/web/app/components/base/message-log-modal/index.tsx b/web/app/components/base/message-log-modal/index.tsx index df67a291dd..a4c1531d46 100644 --- a/web/app/components/base/message-log-modal/index.tsx +++ b/web/app/components/base/message-log-modal/index.tsx @@ -1,5 +1,6 @@ import type { FC } from 'react' import type { IChatItem } from '@/app/components/base/chat/chat/type' +import { RiCloseLine } from '@remixicon/react' import { useClickAway } from 'ahooks' import { useEffect, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -58,7 +59,7 @@ const MessageLogModal: FC = ({ >

{t('runDetail.title', { ns: 'appLog' })}

- + = ({ className="cursor-pointer p-1.5 text-text-tertiary" onClick={onClose} > - + )} diff --git a/web/app/components/base/modal/index.tsx b/web/app/components/base/modal/index.tsx index 32e3ccbb20..192fb7b70a 100644 --- a/web/app/components/base/modal/index.tsx +++ b/web/app/components/base/modal/index.tsx @@ -1,4 +1,5 @@ import { Dialog, DialogPanel, DialogTitle, Transition, TransitionChild } from '@headlessui/react' +import { RiCloseLine } from '@remixicon/react' import { noop } from 'es-toolkit/function' import { Fragment } from 'react' import { cn } from '@/utils/classnames' @@ -67,8 +68,8 @@ export default function Modal({ {closable && (
- { e.stopPropagation() diff --git a/web/app/components/base/modal/modal.tsx b/web/app/components/base/modal/modal.tsx index bb480c5eb8..0061cdf7a0 100644 --- a/web/app/components/base/modal/modal.tsx +++ b/web/app/components/base/modal/modal.tsx @@ -1,4 +1,5 @@ import type { ButtonProps } from '@/app/components/base/button' +import { RiCloseLine } from '@remixicon/react' import { noop } from 'es-toolkit/function' import { memo } from 'react' import { useTranslation } from 'react-i18next' @@ -81,7 +82,7 @@ const Modal = ({ className="absolute right-5 top-5 flex h-8 w-8 cursor-pointer items-center justify-center rounded-lg" onClick={onClose} > - +
{ diff --git a/web/app/components/base/new-audio-button/index.tsx b/web/app/components/base/new-audio-button/index.tsx index 01d2f746c2..7e1e1ccc78 100644 --- a/web/app/components/base/new-audio-button/index.tsx +++ b/web/app/components/base/new-audio-button/index.tsx @@ -1,5 +1,7 @@ 'use client' - +import { + RiVolumeUpLine, +} from '@remixicon/react' import { t } from 'i18next' import { useParams, usePathname } from 'next/navigation' import { useState } from 'react' @@ -88,7 +90,7 @@ const AudioBtn = ({ onClick={handleToggle} disabled={audioState === 'loading'} > - + ) diff --git a/web/app/components/base/notion-icon/index.tsx b/web/app/components/base/notion-icon/index.tsx index 69ccb6618e..967600fdf1 100644 --- a/web/app/components/base/notion-icon/index.tsx +++ b/web/app/components/base/notion-icon/index.tsx @@ -1,4 +1,5 @@ import type { DataSourceNotionPage } from '@/models/common' +import { RiFileTextLine } from '@remixicon/react' import { cn } from '@/utils/classnames' type IconTypes = 'workspace' | 'page' @@ -50,7 +51,7 @@ const NotionIcon = ({ } return ( - + ) } diff --git a/web/app/components/base/notion-page-selector/credential-selector/index.tsx b/web/app/components/base/notion-page-selector/credential-selector/index.tsx index 4e176a7535..a7bfa1053d 100644 --- a/web/app/components/base/notion-page-selector/credential-selector/index.tsx +++ b/web/app/components/base/notion-page-selector/credential-selector/index.tsx @@ -1,5 +1,6 @@ 'use client' import { Menu, MenuButton, MenuItem, MenuItems, Transition } from '@headlessui/react' +import { RiArrowDownSLine } from '@remixicon/react' import * as React from 'react' import { Fragment, useMemo } from 'react' import { CredentialIcon } from '@/app/components/datasets/common/credential-icon' @@ -50,7 +51,7 @@ const CredentialSelector = ({ > {currentDisplayName} - + { current.expand - ? - : + ? + : } ) diff --git a/web/app/components/base/notion-page-selector/search-input/index.tsx b/web/app/components/base/notion-page-selector/search-input/index.tsx index 220273da95..b087976d34 100644 --- a/web/app/components/base/notion-page-selector/search-input/index.tsx +++ b/web/app/components/base/notion-page-selector/search-input/index.tsx @@ -1,4 +1,5 @@ import type { ChangeEvent } from 'react' +import { RiCloseCircleFill, RiSearchLine } from '@remixicon/react' import { useCallback } from 'react' import { useTranslation } from 'react-i18next' import { cn } from '@/utils/classnames' @@ -19,7 +20,7 @@ const SearchInput = ({ return (
- + { value && ( - + ) }
diff --git a/web/app/components/base/pagination/index.tsx b/web/app/components/base/pagination/index.tsx index 4a42757a29..15164ef2aa 100644 --- a/web/app/components/base/pagination/index.tsx +++ b/web/app/components/base/pagination/index.tsx @@ -1,4 +1,5 @@ import type { FC } from 'react' +import { RiArrowLeftLine, RiArrowRightLine } from '@remixicon/react' import { useDebounceFn } from 'ahooks' import * as React from 'react' import { useTranslation } from 'react-i18next' @@ -107,7 +108,7 @@ const CustomizedPagination: FC = ({ className="h-7 w-7 px-1.5" disabled={current === 0} > - + {!showInput && ( @@ -144,7 +145,7 @@ const CustomizedPagination: FC = ({ className="h-7 w-7 px-1.5" disabled={current === totalPages - 1} > - + diff --git a/web/app/components/base/prompt-editor/plugins/context-block/component.tsx b/web/app/components/base/prompt-editor/plugins/context-block/component.tsx index 2fe5f43aa0..90a78326d5 100644 --- a/web/app/components/base/prompt-editor/plugins/context-block/component.tsx +++ b/web/app/components/base/prompt-editor/plugins/context-block/component.tsx @@ -1,6 +1,8 @@ import type { FC } from 'react' import type { Dataset } from './index' - +import { + RiAddLine, +} from '@remixicon/react' import { useState } from 'react' import { useTranslation } from 'react-i18next' import { File05, Folder } from '@/app/components/base/icons/src/vender/solid/files' @@ -87,7 +89,7 @@ const ContextBlockComponent: FC = ({
- +
{t('promptEditor.context.modal.add', { ns: 'common' })}
diff --git a/web/app/components/base/prompt-editor/plugins/history-block/component.tsx b/web/app/components/base/prompt-editor/plugins/history-block/component.tsx index 0da5a4df4a..ccb9802b25 100644 --- a/web/app/components/base/prompt-editor/plugins/history-block/component.tsx +++ b/web/app/components/base/prompt-editor/plugins/history-block/component.tsx @@ -1,6 +1,8 @@ import type { FC } from 'react' import type { RoleName } from './index' - +import { + RiMoreFill, +} from '@remixicon/react' import { useState } from 'react' import { useTranslation } from 'react-i18next' import { MessageClockCircle } from '@/app/components/base/icons/src/vender/solid/general' @@ -62,7 +64,7 @@ const HistoryBlockComponent: FC = ({ ${open ? 'bg-[#DD2590] text-white' : 'bg-white/50 group-hover:bg-white group-hover:shadow-xs'} `} > - + diff --git a/web/app/components/base/prompt-log-modal/index.tsx b/web/app/components/base/prompt-log-modal/index.tsx index 5e261c9654..aab75d4989 100644 --- a/web/app/components/base/prompt-log-modal/index.tsx +++ b/web/app/components/base/prompt-log-modal/index.tsx @@ -1,5 +1,6 @@ import type { FC } from 'react' import type { IChatItem } from '@/app/components/base/chat/chat/type' +import { RiCloseLine } from '@remixicon/react' import { useClickAway } from 'ahooks' import { useEffect, useRef, useState } from 'react' import { CopyFeedbackNew } from '@/app/components/base/copy-feedback' @@ -57,7 +58,7 @@ const PromptLogModal: FC = ({ onClick={onCancel} className="flex h-6 w-6 cursor-pointer items-center justify-center" > - + diff --git a/web/app/components/base/qrcode/index.tsx b/web/app/components/base/qrcode/index.tsx index 1eb6dcf72b..f69305ef6d 100644 --- a/web/app/components/base/qrcode/index.tsx +++ b/web/app/components/base/qrcode/index.tsx @@ -1,5 +1,7 @@ 'use client' - +import { + RiQrCodeLine, +} from '@remixicon/react' import { QRCodeCanvas as QRCode } from 'qrcode.react' import * as React from 'react' import { useEffect, useRef, useState } from 'react' @@ -55,7 +57,7 @@ const ShareQRCode = ({ content }: Props) => { >
- + {isShow && (
{ export const Default: Story = { render: args => , args: { - icon: , + icon: , iconBgClassName: 'bg-purple-100', title: 'Quick Start', description: 'Get started quickly with default settings', @@ -76,7 +77,7 @@ export const Default: Story = { export const Selected: Story = { render: args => , args: { - icon: , + icon: , iconBgClassName: 'bg-purple-100', title: 'Quick Start', description: 'Get started quickly with default settings', @@ -89,7 +90,7 @@ export const Selected: Story = { export const NoRadio: Story = { render: args => , args: { - icon: , + icon: , iconBgClassName: 'bg-purple-100', title: 'Information Card', description: 'Card without radio indicator', @@ -104,7 +105,7 @@ const WithConfigurationDemo = () => { return (
} + icon={} iconBgClassName="bg-blue-100" title="Database Storage" description="Store data in a managed database" @@ -147,21 +148,21 @@ const MultipleCardsDemo = () => { const options = [ { value: 'standard', - icon: , + icon: , iconBg: 'bg-purple-100', title: 'Standard', description: 'Perfect for most use cases', }, { value: 'advanced', - icon: , + icon: , iconBg: 'bg-blue-100', title: 'Advanced', description: 'More features and customization', }, { value: 'enterprise', - icon: , + icon: , iconBg: 'bg-green-100', title: 'Enterprise', description: 'Full features with premium support', @@ -205,7 +206,7 @@ const CloudProviderSelectionDemo = () => {

Select Cloud Provider

} + icon={} iconBgClassName="bg-orange-100" title="Amazon Web Services" description="Industry-leading cloud infrastructure" @@ -228,7 +229,7 @@ const CloudProviderSelectionDemo = () => { )} /> } + icon={} iconBgClassName="bg-blue-100" title="Microsoft Azure" description="Enterprise-grade cloud platform" @@ -236,7 +237,7 @@ const CloudProviderSelectionDemo = () => { onChosen={() => setProvider('azure')} /> } + icon={} iconBgClassName="bg-red-100" title="Google Cloud Platform" description="Scalable and reliable infrastructure" @@ -263,7 +264,7 @@ const DeploymentStrategyDemo = () => {

Choose how you want to deploy your application

} + icon={} iconBgClassName="bg-green-100" title="Rolling Deployment" description="Gradually replace instances with zero downtime" @@ -280,7 +281,7 @@ const DeploymentStrategyDemo = () => { )} /> } + icon={} iconBgClassName="bg-blue-100" title="Blue-Green Deployment" description="Switch between two identical environments" @@ -297,7 +298,7 @@ const DeploymentStrategyDemo = () => { )} /> } + icon={} iconBgClassName="bg-yellow-100" title="Canary Deployment" description="Test with a small subset of users first" @@ -337,7 +338,7 @@ const StorageOptionsDemo = () => { const storageOptions = [ { value: 'ssd', - icon: , + icon: , iconBg: 'bg-purple-100', title: 'SSD Storage', description: 'Fast and reliable solid state drives', @@ -346,7 +347,7 @@ const StorageOptionsDemo = () => { }, { value: 'hdd', - icon: , + icon: , iconBg: 'bg-gray-100', title: 'HDD Storage', description: 'Cost-effective magnetic disk storage', @@ -355,7 +356,7 @@ const StorageOptionsDemo = () => { }, { value: 'nvme', - icon: , + icon: , iconBg: 'bg-red-100', title: 'NVMe Storage', description: 'Ultra-fast PCIe-based storage', @@ -421,7 +422,7 @@ const APIAuthMethodDemo = () => {

API Authentication

} + icon={} iconBgClassName="bg-blue-100" title="API Key" description="Simple authentication using a secret key" @@ -442,7 +443,7 @@ const APIAuthMethodDemo = () => { )} /> } + icon={} iconBgClassName="bg-green-100" title="OAuth 2.0" description="Industry-standard authorization protocol" @@ -460,7 +461,7 @@ const APIAuthMethodDemo = () => { )} /> } + icon={} iconBgClassName="bg-purple-100" title="JWT Token" description="JSON Web Token based authentication" @@ -489,7 +490,7 @@ const PlaygroundDemo = () => { return (
} + icon={} iconBgClassName="bg-purple-100" title="Option 1" description="First option with icon and description" @@ -497,7 +498,7 @@ const PlaygroundDemo = () => { onChosen={() => setSelected('option1')} /> } + icon={} iconBgClassName="bg-blue-100" title="Option 2" description="Second option with different styling" @@ -510,7 +511,7 @@ const PlaygroundDemo = () => { )} /> } + icon={} iconBgClassName="bg-green-100" title="Option 3" description="Third option to demonstrate selection" diff --git a/web/app/components/base/search-input/index.tsx b/web/app/components/base/search-input/index.tsx index 6dd518febd..a2752373f1 100644 --- a/web/app/components/base/search-input/index.tsx +++ b/web/app/components/base/search-input/index.tsx @@ -1,4 +1,5 @@ import type { FC } from 'react' +import { RiCloseCircleFill, RiSearchLine } from '@remixicon/react' import { useRef, useState } from 'react' import { useTranslation } from 'react-i18next' import { cn } from '@/utils/classnames' @@ -33,7 +34,7 @@ const SearchInput: FC = ({ )} >
-
= ({ inputRef.current?.focus() }} > - + )}
diff --git a/web/app/components/base/select/custom.tsx b/web/app/components/base/select/custom.tsx index 376e6d620e..36a6cef3a7 100644 --- a/web/app/components/base/select/custom.tsx +++ b/web/app/components/base/select/custom.tsx @@ -1,7 +1,10 @@ import type { PortalToFollowElemOptions, } from '@/app/components/base/portal-to-follow-elem' - +import { + RiArrowDownSLine, + RiCheckLine, +} from '@remixicon/react' import { useCallback, useState, @@ -106,10 +109,11 @@ const CustomSelect = ({ > {triggerText}
- )} @@ -150,7 +154,7 @@ const CustomSelect = ({ {option.label}
{ - selected && + selected && } )} diff --git a/web/app/components/base/select/index.tsx b/web/app/components/base/select/index.tsx index e00870dfb6..ac59894771 100644 --- a/web/app/components/base/select/index.tsx +++ b/web/app/components/base/select/index.tsx @@ -1,6 +1,8 @@ 'use client' import type { FC } from 'react' import { Combobox, ComboboxButton, ComboboxInput, ComboboxOption, ComboboxOptions, Listbox, ListboxButton, ListboxOption, ListboxOptions } from '@headlessui/react' +import { ChevronDownIcon, ChevronUpIcon, XMarkIcon } from '@heroicons/react/20/solid' +import { RiCheckLine, RiLoader4Line } from '@remixicon/react' import * as React from 'react' import { useEffect, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -136,7 +138,7 @@ const Select: FC = ({ } } > - {open ? : } + {open ? : }
@@ -160,7 +162,7 @@ const Select: FC = ({ - )} @@ -237,26 +239,32 @@ const SimpleSelect: FC = ({ {selectedItem?.name ?? localPlaceholder} {isLoading - ? + ? : (selectedItem && !notClearable) ? ( - { e.stopPropagation() setSelectedItem(null) onSelect({ name: '', value: '' }) }} + className="h-4 w-4 cursor-pointer text-text-quaternary" aria-hidden="false" /> ) : ( open ? ( -
- +
)} @@ -414,7 +422,7 @@ const PortalSelect: FC = ({ )} {!hideChecked && item.value === value && ( - + )} {item.extra}
diff --git a/web/app/components/base/select/locale-signin.tsx b/web/app/components/base/select/locale-signin.tsx index a2cc39d36d..02ed469a22 100644 --- a/web/app/components/base/select/locale-signin.tsx +++ b/web/app/components/base/select/locale-signin.tsx @@ -1,5 +1,6 @@ 'use client' import { Menu, MenuButton, MenuItem, MenuItems, Transition } from '@headlessui/react' +import { GlobeAltIcon } from '@heroicons/react/24/outline' import { Fragment } from 'react' type ISelectProps = { @@ -21,7 +22,7 @@ export default function LocaleSigninSelect({
-
diff --git a/web/app/components/base/select/locale.tsx b/web/app/components/base/select/locale.tsx index c0be8e59e8..bf64d2c901 100644 --- a/web/app/components/base/select/locale.tsx +++ b/web/app/components/base/select/locale.tsx @@ -1,5 +1,6 @@ 'use client' import { Menu, MenuButton, MenuItem, MenuItems, Transition } from '@headlessui/react' +import { GlobeAltIcon } from '@heroicons/react/24/outline' import { Fragment } from 'react' type ISelectProps = { @@ -21,7 +22,7 @@ export default function Select({
-
diff --git a/web/app/components/base/select/pure.tsx b/web/app/components/base/select/pure.tsx index 0ef4f35ee0..e811aa63c8 100644 --- a/web/app/components/base/select/pure.tsx +++ b/web/app/components/base/select/pure.tsx @@ -1,7 +1,10 @@ import type { PortalToFollowElemOptions, } from '@/app/components/base/portal-to-follow-elem' - +import { + RiArrowDownSLine, + RiCheckLine, +} from '@remixicon/react' import { useCallback, useMemo, @@ -128,10 +131,11 @@ const PureSelect = (props: PureSelectProps) => { > {triggerText} - @@ -189,7 +193,7 @@ const PureSelect = (props: PureSelectProps) => { multiple ? (value ?? []).includes(option.value) : value === option.value - ) && + ) && } )) diff --git a/web/app/components/base/sort/index.tsx b/web/app/components/base/sort/index.tsx index 4caaddc42b..37444e727d 100644 --- a/web/app/components/base/sort/index.tsx +++ b/web/app/components/base/sort/index.tsx @@ -1,4 +1,5 @@ import type { FC } from 'react' +import { RiArrowDownSLine, RiCheckLine, RiSortAsc, RiSortDesc } from '@remixicon/react' import { useMemo, useState } from 'react' import { useTranslation } from 'react-i18next' import { @@ -56,7 +57,7 @@ const Sort: FC = ({ {triggerContent} - + @@ -72,7 +73,7 @@ const Sort: FC = ({ }} >
{item.name}
- {value === item.value && } + {value === item.value && } ))} @@ -81,8 +82,8 @@ const Sort: FC = ({
onSelect(`${order ? '' : '-'}${value}`)}> - {!order && } - {order && } + {!order && } + {order && }
diff --git a/web/app/components/base/tab-slider-new/index.stories.tsx b/web/app/components/base/tab-slider-new/index.stories.tsx index b4175a1b8a..56f9df4e27 100644 --- a/web/app/components/base/tab-slider-new/index.stories.tsx +++ b/web/app/components/base/tab-slider-new/index.stories.tsx @@ -1,10 +1,11 @@ import type { Meta, StoryObj } from '@storybook/nextjs-vite' +import { RiSparklingFill, RiTerminalBoxLine } from '@remixicon/react' import { useState } from 'react' import TabSliderNew from '.' const OPTIONS = [ - { value: 'visual', text: 'Visual builder', icon: }, - { value: 'code', text: 'Code', icon: }, + { value: 'visual', text: 'Visual builder', icon: }, + { value: 'code', text: 'Code', icon: }, ] const TabSliderNewDemo = ({ diff --git a/web/app/components/base/tag-input/index.tsx b/web/app/components/base/tag-input/index.tsx index a6e5547fe5..e291842a2a 100644 --- a/web/app/components/base/tag-input/index.tsx +++ b/web/app/components/base/tag-input/index.tsx @@ -1,4 +1,5 @@ import type { ChangeEvent, FC, KeyboardEvent } from 'react' +import { RiAddLine, RiCloseLine } from '@remixicon/react' import { useCallback, useState } from 'react' import AutosizeInput from 'react-18-input-autosize' import { useTranslation } from 'react-i18next' @@ -95,7 +96,7 @@ const TagInput: FC = ({ { !disableRemove && (
handleRemove(index)}> - +
) } @@ -105,7 +106,7 @@ const TagInput: FC = ({ { !disableAdd && (
- {!isSpecialMode && !focused && } + {!isSpecialMode && !focused && } = ({ )} {!value.length && (
- +
)} {!!value.length && ( diff --git a/web/app/components/base/tag-management/index.tsx b/web/app/components/base/tag-management/index.tsx index 9f92c44b36..f6d90afeaf 100644 --- a/web/app/components/base/tag-management/index.tsx +++ b/web/app/components/base/tag-management/index.tsx @@ -1,5 +1,6 @@ 'use client' +import { RiCloseLine } from '@remixicon/react' import { useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' import { useContext } from 'use-context-selector' @@ -65,7 +66,7 @@ const TagManagementModal = ({ show, type }: TagManagementModalProps) => { >
{t('tag.manageTags', { ns: 'common' })}
setShowTagManagementModal(false)}> - +
{ className="flex cursor-pointer items-center gap-x-1 rounded-lg px-2 py-1.5 hover:bg-state-base-hover" onClick={createNewTag} > - +
{`${t('tag.create', { ns: 'common' })} `} {`'${keywords}'`} @@ -188,7 +189,7 @@ const Panel = (props: PanelProps) => { {!keywords && !filteredTagList.length && !filteredSelectedTagList.length && (
- +
{t('tag.noTag', { ns: 'common' })}
@@ -199,7 +200,7 @@ const Panel = (props: PanelProps) => { className="flex cursor-pointer items-center gap-x-1 rounded-lg px-2 py-1.5 hover:bg-state-base-hover" onClick={() => setShowTagManagementModal(true)} > - +
{t('tag.manageTags', { ns: 'common' })}
diff --git a/web/app/components/base/tag-management/tag-item-editor.tsx b/web/app/components/base/tag-management/tag-item-editor.tsx index b2bf26ef86..16945af13e 100644 --- a/web/app/components/base/tag-management/tag-item-editor.tsx +++ b/web/app/components/base/tag-management/tag-item-editor.tsx @@ -1,6 +1,9 @@ import type { FC } from 'react' import type { Tag } from '@/app/components/base/tag-management/constant' - +import { + RiDeleteBinLine, + RiEditLine, +} from '@remixicon/react' import { useDebounceFn } from 'ahooks' import { useState } from 'react' import { useTranslation } from 'react-i18next' @@ -116,7 +119,7 @@ const TagItemEditor: FC = ({
{tag.binding_count}
setIsEditing(true)}> - +
= ({ handleRemove() }} > - +
)} diff --git a/web/app/components/base/tag-management/tag-remove-modal.tsx b/web/app/components/base/tag-management/tag-remove-modal.tsx index c75fdcc877..6ce52e9dd6 100644 --- a/web/app/components/base/tag-management/tag-remove-modal.tsx +++ b/web/app/components/base/tag-management/tag-remove-modal.tsx @@ -1,6 +1,7 @@ 'use client' import type { Tag } from '@/app/components/base/tag-management/constant' +import { RiCloseLine } from '@remixicon/react' import { noop } from 'es-toolkit/function' import { useTranslation } from 'react-i18next' import Button from '@/app/components/base/button' @@ -25,7 +26,7 @@ const TagRemoveModal = ({ show, tag, onConfirm, onClose }: TagRemoveModalProps) onClose={noop} >
- +
diff --git a/web/app/components/base/tag-management/trigger.tsx b/web/app/components/base/tag-management/trigger.tsx index bd343aacdb..6f0c72ffb0 100644 --- a/web/app/components/base/tag-management/trigger.tsx +++ b/web/app/components/base/tag-management/trigger.tsx @@ -1,3 +1,4 @@ +import { RiPriceTag3Line } from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' @@ -15,7 +16,7 @@ const Trigger = ({ {!tags.length ? (
- +
{t('tag.addTag', { ns: 'common' })}
@@ -30,7 +31,7 @@ const Trigger = ({ key={index} className="flex items-center gap-x-0.5 rounded-[5px] border border-divider-deep bg-components-badge-bg-dimm px-[5px] py-[3px]" > - +
{content}
diff --git a/web/app/components/base/theme-selector.tsx b/web/app/components/base/theme-selector.tsx index 2821d37aae..8869407057 100644 --- a/web/app/components/base/theme-selector.tsx +++ b/web/app/components/base/theme-selector.tsx @@ -1,5 +1,11 @@ 'use client' +import { + RiCheckLine, + RiComputerLine, + RiMoonLine, + RiSunLine, +} from '@remixicon/react' import { useTheme } from 'next-themes' import { useState } from 'react' import { useTranslation } from 'react-i18next' @@ -24,9 +30,9 @@ export default function ThemeSelector() { const getCurrentIcon = () => { switch (theme) { - case 'light': return - case 'dark': return - default: return + case 'light': return + case 'dark': return + default: return } } @@ -53,13 +59,13 @@ export default function ThemeSelector() { className="flex w-full items-center gap-1 rounded-lg px-2 py-1.5 text-text-secondary hover:bg-state-base-hover" onClick={() => handleThemeChange('light')} > - +
{t('theme.light', { ns: 'common' })}
{theme === 'light' && (
- +
)} @@ -68,13 +74,13 @@ export default function ThemeSelector() { className="flex w-full items-center gap-1 rounded-lg px-2 py-1.5 text-text-secondary hover:bg-state-base-hover" onClick={() => handleThemeChange('dark')} > - +
{t('theme.dark', { ns: 'common' })}
{theme === 'dark' && (
- +
)} @@ -83,13 +89,13 @@ export default function ThemeSelector() { className="flex w-full items-center gap-1 rounded-lg px-2 py-1.5 text-text-secondary hover:bg-state-base-hover" onClick={() => handleThemeChange('system')} > - +
{t('theme.auto', { ns: 'common' })}
{theme === 'system' && (
- +
)} diff --git a/web/app/components/base/theme-switcher.tsx b/web/app/components/base/theme-switcher.tsx index f21d3ba33f..d223ff738e 100644 --- a/web/app/components/base/theme-switcher.tsx +++ b/web/app/components/base/theme-switcher.tsx @@ -1,5 +1,9 @@ 'use client' - +import { + RiComputerLine, + RiMoonLine, + RiSunLine, +} from '@remixicon/react' import { useTheme } from 'next-themes' import { cn } from '@/utils/classnames' @@ -22,7 +26,7 @@ export default function ThemeSwitcher() { onClick={() => handleThemeChange('system')} >
- +
@@ -34,7 +38,7 @@ export default function ThemeSwitcher() { onClick={() => handleThemeChange('light')} >
- +
@@ -46,7 +50,7 @@ export default function ThemeSwitcher() { onClick={() => handleThemeChange('dark')} >
- +
diff --git a/web/app/components/base/toast/index.tsx b/web/app/components/base/toast/index.tsx index 62526b8053..1b9ae4eedb 100644 --- a/web/app/components/base/toast/index.tsx +++ b/web/app/components/base/toast/index.tsx @@ -1,6 +1,12 @@ 'use client' import type { ReactNode } from 'react' - +import { + RiAlertFill, + RiCheckboxCircleFill, + RiCloseLine, + RiErrorWarningFill, + RiInformation2Fill, +} from '@remixicon/react' import { noop } from 'es-toolkit/function' import * as React from 'react' import { useEffect, useState } from 'react' @@ -64,10 +70,10 @@ const Toast = ({ />
- {type === 'success' &&
@@ -83,7 +89,7 @@ const Toast = ({ {close && ( - + )}
diff --git a/web/app/components/base/tooltip/index.tsx b/web/app/components/base/tooltip/index.tsx index 67babaee89..ee9928745d 100644 --- a/web/app/components/base/tooltip/index.tsx +++ b/web/app/components/base/tooltip/index.tsx @@ -1,6 +1,7 @@ 'use client' import type { OffsetOptions, Placement } from '@floating-ui/react' import type { FC } from 'react' +import { RiQuestionLine } from '@remixicon/react' import { useBoolean } from 'ahooks' import * as React from 'react' import { useEffect, useRef, useState } from 'react' @@ -103,7 +104,7 @@ const Tooltip: FC = ({ asChild={asChild} className={!asChild ? triggerClassName : ''} > - {children ||
} + {children ||
} { - startConvert && + startConvert && }
{ @@ -200,7 +204,7 @@ const VoiceInput = ({ className="mr-1 flex h-8 w-8 cursor-pointer items-center justify-center rounded-lg hover:bg-gray-200" onClick={onCancel} > - +
) } diff --git a/web/app/components/billing/billing-page/index.tsx b/web/app/components/billing/billing-page/index.tsx index ec7d10be5f..cf61845d85 100644 --- a/web/app/components/billing/billing-page/index.tsx +++ b/web/app/components/billing/billing-page/index.tsx @@ -1,6 +1,8 @@ 'use client' import type { FC } from 'react' - +import { + RiArrowRightUpLine, +} from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' import { useAppContext } from '@/context/app-context' @@ -47,7 +49,7 @@ const Billing: FC = () => {
{t('viewBillingAction', { ns: 'billing' })} - + )} diff --git a/web/app/components/billing/plan/index.tsx b/web/app/components/billing/plan/index.tsx index 380f6f8ad1..2f953c3a8e 100644 --- a/web/app/components/billing/plan/index.tsx +++ b/web/app/components/billing/plan/index.tsx @@ -3,6 +3,7 @@ import type { FC } from 'react' import { RiBook2Line, RiFileEditLine, + RiGraduationCapLine, RiGroupLine, } from '@remixicon/react' import { useUnmountedRef } from 'ahooks' @@ -109,7 +110,7 @@ const PlanComp: FC = ({
{enableEducationPlan && (!isEducationAccount || isAboutToExpire) && ( diff --git a/web/app/components/billing/pricing/footer.tsx b/web/app/components/billing/pricing/footer.tsx index ade2d78b43..7569ccaa76 100644 --- a/web/app/components/billing/pricing/footer.tsx +++ b/web/app/components/billing/pricing/footer.tsx @@ -1,4 +1,5 @@ import type { Category } from '.' +import { RiArrowRightUpLine } from '@remixicon/react' import Link from 'next/link' import * as React from 'react' import { useTranslation } from 'react-i18next' @@ -33,7 +34,7 @@ const Footer = ({ > {t('plansCommon.comparePlanAndFeatures', { ns: 'billing' })} - +
diff --git a/web/app/components/billing/pricing/header.tsx b/web/app/components/billing/pricing/header.tsx index 98d015524a..b130f23981 100644 --- a/web/app/components/billing/pricing/header.tsx +++ b/web/app/components/billing/pricing/header.tsx @@ -1,3 +1,4 @@ +import { RiCloseLine } from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' import Button from '../../base/button' @@ -31,7 +32,7 @@ const Header = ({ className="absolute bottom-[40.5px] right-[-18px] z-10 size-9 rounded-full p-2" onClick={onClose} > - +
diff --git a/web/app/components/billing/pricing/plans/cloud-plan-item/button.tsx b/web/app/components/billing/pricing/plans/cloud-plan-item/button.tsx index 6b01b04739..9cdef8e333 100644 --- a/web/app/components/billing/pricing/plans/cloud-plan-item/button.tsx +++ b/web/app/components/billing/pricing/plans/cloud-plan-item/button.tsx @@ -1,4 +1,5 @@ import type { BasicPlan } from '../../../type' +import { RiArrowRightLine } from '@remixicon/react' import * as React from 'react' import { cn } from '@/utils/classnames' import { Plan } from '../../../type' @@ -44,7 +45,7 @@ const Button = ({ onClick={handleGetPayUrl} > {btnText} - {!isPlanDisabled && } + {!isPlanDisabled && } ) } diff --git a/web/app/components/billing/pricing/plans/cloud-plan-item/list/item/tooltip.tsx b/web/app/components/billing/pricing/plans/cloud-plan-item/list/item/tooltip.tsx index ff8b4ab5c7..bfac36e529 100644 --- a/web/app/components/billing/pricing/plans/cloud-plan-item/list/item/tooltip.tsx +++ b/web/app/components/billing/pricing/plans/cloud-plan-item/list/item/tooltip.tsx @@ -1,3 +1,4 @@ +import { RiInfoI } from '@remixicon/react' import * as React from 'react' type TooltipProps = { @@ -15,7 +16,7 @@ const Tooltip = ({ {content}
- +
) diff --git a/web/app/components/billing/pricing/plans/self-hosted-plan-item/button.tsx b/web/app/components/billing/pricing/plans/self-hosted-plan-item/button.tsx index 62cca72df6..9412b87a6a 100644 --- a/web/app/components/billing/pricing/plans/self-hosted-plan-item/button.tsx +++ b/web/app/components/billing/pricing/plans/self-hosted-plan-item/button.tsx @@ -1,3 +1,4 @@ +import { RiArrowRightLine } from '@remixicon/react' import * as React from 'react' import { useMemo } from 'react' import { useTranslation } from 'react-i18next' @@ -48,7 +49,7 @@ const Button = ({
)} - + ) } diff --git a/web/app/components/billing/pricing/plans/self-hosted-plan-item/list/item.tsx b/web/app/components/billing/pricing/plans/self-hosted-plan-item/list/item.tsx index 53bcb4ffd7..ee14117d24 100644 --- a/web/app/components/billing/pricing/plans/self-hosted-plan-item/list/item.tsx +++ b/web/app/components/billing/pricing/plans/self-hosted-plan-item/list/item.tsx @@ -1,3 +1,4 @@ +import { RiCheckLine } from '@remixicon/react' import * as React from 'react' type ItemProps = { @@ -10,7 +11,7 @@ const Item = ({ return (
- +
{label}
diff --git a/web/app/components/billing/priority-label/index.tsx b/web/app/components/billing/priority-label/index.tsx index 280bc74088..1d130c8b32 100644 --- a/web/app/components/billing/priority-label/index.tsx +++ b/web/app/components/billing/priority-label/index.tsx @@ -1,3 +1,4 @@ +import { RiAedFill } from '@remixicon/react' import { useMemo } from 'react' import { useTranslation } from 'react-i18next' import Tooltip from '@/app/components/base/tooltip' @@ -54,7 +55,7 @@ const PriorityLabel = ({ className }: PriorityLabelProps) => { > { (plan.type === Plan.professional || plan.type === Plan.team || plan.type === Plan.enterprise) && ( - + ) } {t(`plansCommon.priority.${priority}`, { ns: 'billing' })} diff --git a/web/app/components/custom/custom-web-app-brand/index.tsx b/web/app/components/custom/custom-web-app-brand/index.tsx index 6f8a5682fb..d9e80e80d1 100644 --- a/web/app/components/custom/custom-web-app-brand/index.tsx +++ b/web/app/components/custom/custom-web-app-brand/index.tsx @@ -1,5 +1,13 @@ import type { ChangeEvent } from 'react' - +import { + RiEditBoxLine, + RiEqualizer2Line, + RiExchange2Fill, + RiImageAddLine, + RiLayoutLeft2Line, + RiLoader2Line, + RiPlayLargeLine, +} from '@remixicon/react' import { useState } from 'react' import { useTranslation } from 'react-i18next' import Button from '@/app/components/base/button' @@ -141,7 +149,7 @@ const CustomWebAppBrand = () => { className="relative mr-2" disabled={uploadDisabled} > - + { (webappLogo || fileId) ? t('change', { ns: 'custom' }) @@ -164,7 +172,7 @@ const CustomWebAppBrand = () => { className="relative mr-2" disabled={true} > - + {t('uploading', { ns: 'custom' })} ) @@ -209,12 +217,12 @@ const CustomWebAppBrand = () => {
Chatflow App
- +
- +
{!webappBrandRemoved && ( @@ -268,11 +276,11 @@ const CustomWebAppBrand = () => {
- +
Workflow App
- +
@@ -292,7 +300,7 @@ const CustomWebAppBrand = () => {
diff --git a/web/app/components/datasets/common/image-previewer/index.tsx b/web/app/components/datasets/common/image-previewer/index.tsx index 3d27af9169..ec153e874c 100644 --- a/web/app/components/datasets/common/image-previewer/index.tsx +++ b/web/app/components/datasets/common/image-previewer/index.tsx @@ -1,3 +1,4 @@ +import { RiArrowLeftLine, RiArrowRightLine, RiCloseLine, RiRefreshLine } from '@remixicon/react' import { useCallback, useEffect, useMemo, useRef, useState } from 'react' import { createPortal } from 'react-dom' import { useHotkeys } from 'react-hotkeys-hook' @@ -161,7 +162,7 @@ const ImagePreviewer = ({ className="size-9 rounded-[10px] p-0" size="large" > - + Esc @@ -179,7 +180,7 @@ const ImagePreviewer = ({ className="size-9 rounded-full p-0" size="large" > - +
)} @@ -206,7 +207,7 @@ const ImagePreviewer = ({ disabled={currentIndex === 0} size="large" > - +
, document.body, diff --git a/web/app/components/datasets/common/image-uploader/image-uploader-in-chunk/image-input.tsx b/web/app/components/datasets/common/image-uploader/image-uploader-in-chunk/image-input.tsx index be01e94f1c..3cbea6d02c 100644 --- a/web/app/components/datasets/common/image-uploader/image-uploader-in-chunk/image-input.tsx +++ b/web/app/components/datasets/common/image-uploader/image-uploader-in-chunk/image-input.tsx @@ -1,3 +1,4 @@ +import { RiUploadCloud2Line } from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' import { cn } from '@/utils/classnames' @@ -36,7 +37,7 @@ const ImageUploader = () => { )} >
- +
{t('imageUploader.button', { ns: 'dataset' })} - + ) } diff --git a/web/app/components/datasets/common/image-uploader/image-uploader-in-retrieval-testing/image-input.tsx b/web/app/components/datasets/common/image-uploader/image-uploader-in-retrieval-testing/image-input.tsx index de9ad97d61..f70c55a3b9 100644 --- a/web/app/components/datasets/common/image-uploader/image-uploader-in-retrieval-testing/image-input.tsx +++ b/web/app/components/datasets/common/image-uploader/image-uploader-in-retrieval-testing/image-input.tsx @@ -1,3 +1,4 @@ +import { RiImageAddLine } from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' import Tooltip from '@/app/components/base/tooltip' @@ -44,7 +45,7 @@ const ImageUploader = () => { onClick={selectHandle} >
- +
{files.length === 0 && ( diff --git a/web/app/components/datasets/common/image-uploader/image-uploader-in-retrieval-testing/image-item.tsx b/web/app/components/datasets/common/image-uploader/image-uploader-in-retrieval-testing/image-item.tsx index 9fa693a3cc..50f69ac98f 100644 --- a/web/app/components/datasets/common/image-uploader/image-uploader-in-retrieval-testing/image-item.tsx +++ b/web/app/components/datasets/common/image-uploader/image-uploader-in-retrieval-testing/image-item.tsx @@ -1,5 +1,7 @@ import type { FileEntity } from '../types' - +import { + RiCloseLine, +} from '@remixicon/react' import { memo, useCallback, @@ -55,7 +57,7 @@ const ImageItem = ({ className="absolute -right-1.5 -top-1.5 z-[11] hidden h-5 w-5 rounded-full p-0 group-hover/file-image:flex" onClick={handleRemove} > - + ) } diff --git a/web/app/components/datasets/create-from-pipeline/create-options/create-from-dsl-modal/header.tsx b/web/app/components/datasets/create-from-pipeline/create-options/create-from-dsl-modal/header.tsx index ac05714196..5e4cb88c27 100644 --- a/web/app/components/datasets/create-from-pipeline/create-options/create-from-dsl-modal/header.tsx +++ b/web/app/components/datasets/create-from-pipeline/create-options/create-from-dsl-modal/header.tsx @@ -1,3 +1,4 @@ +import { RiCloseLine } from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' @@ -17,7 +18,7 @@ const Header = ({ className="absolute right-5 top-5 flex size-8 cursor-pointer items-center" onClick={onClose} > - +
) diff --git a/web/app/components/datasets/create-from-pipeline/create-options/create-from-dsl-modal/uploader.tsx b/web/app/components/datasets/create-from-pipeline/create-options/create-from-dsl-modal/uploader.tsx index 149233a75e..3fa940c60d 100644 --- a/web/app/components/datasets/create-from-pipeline/create-options/create-from-dsl-modal/uploader.tsx +++ b/web/app/components/datasets/create-from-pipeline/create-options/create-from-dsl-modal/uploader.tsx @@ -1,6 +1,10 @@ 'use client' import type { FC } from 'react' - +import { + RiDeleteBinLine, + RiNodeTree, + RiUploadCloud2Line, +} from '@remixicon/react' import * as React from 'react' import { useEffect, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -109,7 +113,7 @@ const Uploader: FC = ({ )} >
- +
{t('dslUploader.button', { ns: 'app' })} = ({ {file && (
- +
@@ -140,7 +144,7 @@ const Uploader: FC = ({
- +
diff --git a/web/app/components/datasets/create-from-pipeline/footer.tsx b/web/app/components/datasets/create-from-pipeline/footer.tsx index b44a0a8144..23e83d1da3 100644 --- a/web/app/components/datasets/create-from-pipeline/footer.tsx +++ b/web/app/components/datasets/create-from-pipeline/footer.tsx @@ -1,3 +1,4 @@ +import { RiFileUploadLine } from '@remixicon/react' import { useRouter, useSearchParams } from 'next/navigation' import * as React from 'react' import { useCallback, useMemo, useState } from 'react' @@ -45,7 +46,7 @@ const Footer = () => { className="system-md-medium flex items-center gap-x-3 text-text-accent" onClick={openImportFromDSL} > - + {t('creation.importDSL', { ns: 'datasetPipeline' })} { variant="secondary-accent" className="size-9 rounded-full p-0" > - +
diff --git a/web/app/components/datasets/create-from-pipeline/list/create-card.tsx b/web/app/components/datasets/create-from-pipeline/list/create-card.tsx index e65e238e0e..b32a7dba2d 100644 --- a/web/app/components/datasets/create-from-pipeline/list/create-card.tsx +++ b/web/app/components/datasets/create-from-pipeline/list/create-card.tsx @@ -1,3 +1,4 @@ +import { RiAddCircleLine } from '@remixicon/react' import { useRouter } from 'next/navigation' import * as React from 'react' import { useCallback } from 'react' @@ -46,7 +47,7 @@ const CreateCard = () => { >
- +
{t('creation.createFromScratch.title', { ns: 'datasetPipeline' })} diff --git a/web/app/components/datasets/create-from-pipeline/list/template-card/actions.tsx b/web/app/components/datasets/create-from-pipeline/list/template-card/actions.tsx index f1a50b39fe..718cb982b1 100644 --- a/web/app/components/datasets/create-from-pipeline/list/template-card/actions.tsx +++ b/web/app/components/datasets/create-from-pipeline/list/template-card/actions.tsx @@ -1,3 +1,4 @@ +import { RiAddLine, RiArrowRightUpLine, RiMoreFill } from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' import Button from '@/app/components/base/button' @@ -30,7 +31,7 @@ const Actions = ({ onClick={onApplyTemplate} className="grow gap-x-0.5" > - + {t('operations.choose', { ns: 'datasetPipeline' })} { @@ -56,7 +57,7 @@ const Actions = ({ position="br" trigger="click" btnElement={ - + } btnClassName="size-8 cursor-pointer justify-center rounded-lg p-0 shadow-xs shadow-shadow-shadow-3" /> diff --git a/web/app/components/datasets/create-from-pipeline/list/template-card/details/index.tsx b/web/app/components/datasets/create-from-pipeline/list/template-card/details/index.tsx index 73680b83be..2093de7af4 100644 --- a/web/app/components/datasets/create-from-pipeline/list/template-card/details/index.tsx +++ b/web/app/components/datasets/create-from-pipeline/list/template-card/details/index.tsx @@ -1,4 +1,5 @@ import type { AppIconType } from '@/types/app' +import { RiAddLine, RiCloseLine } from '@remixicon/react' import * as React from 'react' import { useMemo } from 'react' import { useTranslation } from 'react-i18next' @@ -61,7 +62,7 @@ const Details = ({ className="absolute right-4 top-4 z-10 flex size-8 items-center justify-center" onClick={onClose} > - +
- + {t('operations.useTemplate', { ns: 'datasetPipeline' })}
diff --git a/web/app/components/datasets/create-from-pipeline/list/template-card/edit-pipeline-info.tsx b/web/app/components/datasets/create-from-pipeline/list/template-card/edit-pipeline-info.tsx index 5cd13a037b..69f8f470d0 100644 --- a/web/app/components/datasets/create-from-pipeline/list/template-card/edit-pipeline-info.tsx +++ b/web/app/components/datasets/create-from-pipeline/list/template-card/edit-pipeline-info.tsx @@ -1,5 +1,6 @@ import type { AppIconSelection } from '@/app/components/base/app-icon-picker' import type { PipelineTemplate } from '@/models/pipeline' +import { RiCloseLine } from '@remixicon/react' import * as React from 'react' import { useCallback, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -104,7 +105,7 @@ const EditPipelineInfo = ({ className="absolute right-5 top-5 flex size-8 items-center justify-center" onClick={onClose} > - + {/* Form */}
diff --git a/web/app/components/datasets/create/embedding-process/index.tsx b/web/app/components/datasets/create/embedding-process/index.tsx index b745faf2b5..e9cea84f00 100644 --- a/web/app/components/datasets/create/embedding-process/index.tsx +++ b/web/app/components/datasets/create/embedding-process/index.tsx @@ -1,7 +1,11 @@ import type { FC } from 'react' import type { FullDocumentDetail } from '@/models/datasets' import type { RETRIEVE_METHOD } from '@/types/app' - +import { + RiArrowRightLine, + RiLoader2Fill, + RiTerminalBoxLine, +} from '@remixicon/react' import Link from 'next/link' import { useRouter } from 'next/navigation' import { useMemo } from 'react' @@ -38,7 +42,7 @@ const StatusHeader: FC<{ isEmbedding: boolean, isCompleted: boolean }> = ({
{isEmbedding && ( <> - + {t('embedding.processing', { ns: 'datasetDocuments' })} )} @@ -58,7 +62,7 @@ const ActionButtons: FC<{
@@ -68,7 +72,7 @@ const ActionButtons: FC<{ onClick={onNavToDocuments} > {t('stepThree.navTo', { ns: 'datasetCreation' })} - +
) diff --git a/web/app/components/datasets/create/embedding-process/indexing-progress-item.tsx b/web/app/components/datasets/create/embedding-process/indexing-progress-item.tsx index fe1b755421..b7c085cff9 100644 --- a/web/app/components/datasets/create/embedding-process/indexing-progress-item.tsx +++ b/web/app/components/datasets/create/embedding-process/indexing-progress-item.tsx @@ -1,6 +1,9 @@ import type { FC } from 'react' import type { IndexingStatusResponse } from '@/models/datasets' - +import { + RiCheckboxCircleFill, + RiErrorWarningFill, +} from '@remixicon/react' import NotionIcon from '@/app/components/base/notion-icon' import Tooltip from '@/app/components/base/tooltip' import PriorityLabel from '@/app/components/billing/priority-label' @@ -20,7 +23,7 @@ type IndexingProgressItemProps = { // Status icon component for completed/error states const StatusIcon: FC<{ status: string, error?: string }> = ({ status, error }) => { if (status === 'completed') - return + return if (status === 'error') { return ( @@ -30,7 +33,7 @@ const StatusIcon: FC<{ status: string, error?: string }> = ({ status, error }) = popupContent={error} > - + ) diff --git a/web/app/components/datasets/create/file-preview/index.tsx b/web/app/components/datasets/create/file-preview/index.tsx index bf6de60f3e..77af5edeed 100644 --- a/web/app/components/datasets/create/file-preview/index.tsx +++ b/web/app/components/datasets/create/file-preview/index.tsx @@ -1,5 +1,6 @@ 'use client' import type { CustomFile as File } from '@/models/datasets' +import { XMarkIcon } from '@heroicons/react/20/solid' import * as React from 'react' import { useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -50,7 +51,7 @@ const FilePreview = ({
{t('stepOne.filePreview', { ns: 'datasetCreation' })}
- +
diff --git a/web/app/components/datasets/create/file-uploader/index.tsx b/web/app/components/datasets/create/file-uploader/index.tsx index 59254526aa..781b97200a 100644 --- a/web/app/components/datasets/create/file-uploader/index.tsx +++ b/web/app/components/datasets/create/file-uploader/index.tsx @@ -1,5 +1,6 @@ 'use client' import type { CustomFile as File, FileItem } from '@/models/datasets' +import { RiDeleteBinLine, RiUploadCloud2Line } from '@remixicon/react' import * as React from 'react' import { useCallback, useEffect, useMemo, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -317,7 +318,7 @@ const FileUploader = ({ {!hideUpload && (
- + {supportBatchUpload ? t('stepOne.uploader.button', { ns: 'datasetCreation' }) : t('stepOne.uploader.buttonSingleFile', { ns: 'datasetCreation' })} @@ -384,7 +385,7 @@ const FileUploader = ({ removeFile(fileItem.fileID) }} > - +
diff --git a/web/app/components/datasets/create/notion-page-preview/index.tsx b/web/app/components/datasets/create/notion-page-preview/index.tsx index 02ec5d3bbf..fb6cd09a55 100644 --- a/web/app/components/datasets/create/notion-page-preview/index.tsx +++ b/web/app/components/datasets/create/notion-page-preview/index.tsx @@ -1,5 +1,6 @@ 'use client' import type { NotionPage } from '@/models/common' +import { XMarkIcon } from '@heroicons/react/20/solid' import * as React from 'react' import { useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -52,7 +53,7 @@ const NotionPagePreview = ({
{t('stepOne.pagePreview', { ns: 'datasetCreation' })}
- +
diff --git a/web/app/components/datasets/create/step-one/components/next-step-button.tsx b/web/app/components/datasets/create/step-one/components/next-step-button.tsx index 5a5b3b0154..71e4e87fcf 100644 --- a/web/app/components/datasets/create/step-one/components/next-step-button.tsx +++ b/web/app/components/datasets/create/step-one/components/next-step-button.tsx @@ -1,5 +1,6 @@ 'use client' +import { RiArrowRightLine } from '@remixicon/react' import { useTranslation } from 'react-i18next' import Button from '@/app/components/base/button' @@ -19,7 +20,7 @@ function NextStepButton({ disabled, onClick }: NextStepButtonProps) {
diff --git a/web/app/components/datasets/create/step-one/index.tsx b/web/app/components/datasets/create/step-one/index.tsx index fdb561566e..a86c9d86c2 100644 --- a/web/app/components/datasets/create/step-one/index.tsx +++ b/web/app/components/datasets/create/step-one/index.tsx @@ -3,6 +3,7 @@ import type { DataSourceAuth } from '@/app/components/header/account-setting/data-source-page-new/types' import type { DataSourceProvider, NotionPage } from '@/models/common' import type { CrawlOptions, CrawlResultItem, FileItem } from '@/models/datasets' +import { RiFolder6Line } from '@remixicon/react' import { useBoolean } from 'ahooks' import { useCallback, useMemo } from 'react' import { useTranslation } from 'react-i18next' @@ -268,7 +269,7 @@ const StepOne = ({ className="inline-flex cursor-pointer items-center text-[13px] leading-4 text-text-accent" onClick={openModal} > - + {t('stepOne.emptyDatasetCreation', { ns: 'datasetCreation' })} diff --git a/web/app/components/datasets/create/step-three/index.tsx b/web/app/components/datasets/create/step-three/index.tsx index 9e29557c1a..5ab21f6302 100644 --- a/web/app/components/datasets/create/step-three/index.tsx +++ b/web/app/components/datasets/create/step-three/index.tsx @@ -1,6 +1,7 @@ 'use client' import type { createDocumentResponse, FullDocumentDetail } from '@/models/datasets' import type { RETRIEVE_METHOD } from '@/types/app' +import { RiBookOpenLine } from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' @@ -81,7 +82,7 @@ const StepThree = ({ datasetId, datasetName, indexingType, creationCache, retrie
- +
{t('stepThree.sideTipTitle', { ns: 'datasetCreation' })}
{t('stepThree.sideTipContent', { ns: 'datasetCreation' })}
diff --git a/web/app/components/datasets/create/step-two/components/general-chunking-options.tsx b/web/app/components/datasets/create/step-two/components/general-chunking-options.tsx index 538e55431e..5140c902f5 100644 --- a/web/app/components/datasets/create/step-two/components/general-chunking-options.tsx +++ b/web/app/components/datasets/create/step-two/components/general-chunking-options.tsx @@ -2,7 +2,10 @@ import type { FC } from 'react' import type { PreProcessingRule } from '@/models/datasets' - +import { + RiAlertFill, + RiSearchEyeLine, +} from '@remixicon/react' import Image from 'next/image' import { useTranslation } from 'react-i18next' import Button from '@/app/components/base/button' @@ -95,7 +98,7 @@ export const GeneralChunkingOptions: FC = ({ actions={( <>
))}
@@ -45,10 +46,10 @@ const LanguageSelect: FC = ({ > {currentLanguage} -
)} diff --git a/web/app/components/datasets/create/top-bar/index.tsx b/web/app/components/datasets/create/top-bar/index.tsx index 3e9f1684ef..0051430511 100644 --- a/web/app/components/datasets/create/top-bar/index.tsx +++ b/web/app/components/datasets/create/top-bar/index.tsx @@ -1,5 +1,6 @@ import type { FC } from 'react' import type { StepperProps } from '../stepper' +import { RiArrowLeftLine } from '@remixicon/react' import Link from 'next/link' import { useMemo } from 'react' import { useTranslation } from 'react-i18next' @@ -29,7 +30,7 @@ export const TopBar: FC = (props) => {
- +

{t('steps.header.fallbackRoute', { ns: 'datasetCreation' })} diff --git a/web/app/components/datasets/create/website/base/header.tsx b/web/app/components/datasets/create/website/base/header.tsx index 95c75541d9..cf4d537e3f 100644 --- a/web/app/components/datasets/create/website/base/header.tsx +++ b/web/app/components/datasets/create/website/base/header.tsx @@ -1,3 +1,4 @@ +import { RiBookOpenLine, RiEqualizer2Line } from '@remixicon/react' import * as React from 'react' import Button from '@/app/components/base/button' import Divider from '@/app/components/base/divider' @@ -37,7 +38,7 @@ const Header = ({ className={cn(isInPipeline ? 'size-6 px-1' : 'gap-x-0.5 px-1.5')} onClick={onClickConfiguration} > - + {!isInPipeline && ( {buttonText} @@ -51,7 +52,7 @@ const Header = ({ target="_blank" rel="noopener noreferrer" > - + {docTitle}

diff --git a/web/app/components/datasets/create/website/base/options-wrap.tsx b/web/app/components/datasets/create/website/base/options-wrap.tsx index 73473a3df3..fde518d7a1 100644 --- a/web/app/components/datasets/create/website/base/options-wrap.tsx +++ b/web/app/components/datasets/create/website/base/options-wrap.tsx @@ -1,5 +1,6 @@ 'use client' import type { FC } from 'react' +import { RiEqualizer2Line } from '@remixicon/react' import { useBoolean } from 'ahooks' import * as React from 'react' import { useEffect } from 'react' @@ -38,7 +39,7 @@ const OptionsWrap: FC = ({ onClick={foldToggle} >
- + {t(`${I18N_PREFIX}.options`, { ns: 'datasetCreation' })}
diff --git a/web/app/components/datasets/create/website/preview.tsx b/web/app/components/datasets/create/website/preview.tsx index 94989629e0..70cd57e437 100644 --- a/web/app/components/datasets/create/website/preview.tsx +++ b/web/app/components/datasets/create/website/preview.tsx @@ -1,5 +1,6 @@ 'use client' import type { CrawlResultItem } from '@/models/datasets' +import { XMarkIcon } from '@heroicons/react/20/solid' import * as React from 'react' import { useTranslation } from 'react-i18next' import { cn } from '@/utils/classnames' @@ -22,7 +23,7 @@ const WebsitePreview = ({
{t('stepOne.pagePreview', { ns: 'datasetCreation' })}
- +
diff --git a/web/app/components/datasets/documents/components/documents-header.tsx b/web/app/components/datasets/documents/components/documents-header.tsx index 6765eaad7a..490893d43f 100644 --- a/web/app/components/datasets/documents/components/documents-header.tsx +++ b/web/app/components/datasets/documents/components/documents-header.tsx @@ -3,6 +3,8 @@ import type { FC } from 'react' import type { Item } from '@/app/components/base/select' import type { BuiltInMetadataItem, MetadataItemWithValueLength } from '@/app/components/datasets/metadata/types' import type { SortType } from '@/service/datasets' +import { PlusIcon } from '@heroicons/react/24/solid' +import { RiDraftLine, RiExternalLinkLine } from '@remixicon/react' import { useMemo } from 'react' import { useTranslation } from 'react-i18next' import Button from '@/app/components/base/button' @@ -122,7 +124,7 @@ const DocumentsHeader: FC = ({ href={docLink('/use-dify/knowledge/integrate-knowledge-within-application')} > {t('list.learnMore', { ns: 'datasetDocuments' })} - +
@@ -168,7 +170,7 @@ const DocumentsHeader: FC = ({ )} {embeddingAvailable && ( )} @@ -186,7 +188,7 @@ const DocumentsHeader: FC = ({ )} {embeddingAvailable && ( )} diff --git a/web/app/components/datasets/documents/components/empty-element.tsx b/web/app/components/datasets/documents/components/empty-element.tsx index be3f0df3f6..40c4bbdb9e 100644 --- a/web/app/components/datasets/documents/components/empty-element.tsx +++ b/web/app/components/datasets/documents/components/empty-element.tsx @@ -1,5 +1,6 @@ 'use client' import type { FC } from 'react' +import { PlusIcon } from '@heroicons/react/24/solid' import { useTranslation } from 'react-i18next' import Button from '@/app/components/base/button' import s from '../style.module.css' @@ -28,7 +29,7 @@ const EmptyElement: FC = ({ canAdd = true, onClick, type = 'u
{type === 'upload' && canAdd && ( )} diff --git a/web/app/components/datasets/documents/components/list.tsx b/web/app/components/datasets/documents/components/list.tsx index 886668e0ff..01d4afb646 100644 --- a/web/app/components/datasets/documents/components/list.tsx +++ b/web/app/components/datasets/documents/components/list.tsx @@ -3,7 +3,11 @@ import type { FC } from 'react' import type { Props as PaginationProps } from '@/app/components/base/pagination' import type { CommonResponse } from '@/models/common' import type { LegacyDataSourceInfo, LocalFileInfo, OnlineDocumentInfo, OnlineDriveInfo, SimpleDocumentDetail } from '@/models/datasets' - +import { + RiArrowDownLine, + RiEditLine, + RiGlobalLine, +} from '@remixicon/react' import { useBoolean } from 'ahooks' import { uniq } from 'es-toolkit/array' import { pick } from 'es-toolkit/object' @@ -180,7 +184,9 @@ const DocumentList: FC = ({ return (
handleSort(field)}> {label} - +
) } @@ -430,7 +436,7 @@ const DocumentList: FC = ({ /> )} {isWebsiteCrawl(doc.data_source_type) && ( - + )}
= ({ handleShowRenameModal(doc) }} > - +
diff --git a/web/app/components/datasets/documents/components/operations.tsx b/web/app/components/datasets/documents/components/operations.tsx index 48fa26f629..ee638c5e12 100644 --- a/web/app/components/datasets/documents/components/operations.tsx +++ b/web/app/components/datasets/documents/components/operations.tsx @@ -1,7 +1,17 @@ import type { OperationName } from '../types' import type { CommonResponse } from '@/models/common' import type { DocumentDownloadResponse } from '@/service/datasets' - +import { + RiArchive2Line, + RiDeleteBinLine, + RiDownload2Line, + RiEditLine, + RiEqualizer2Line, + RiLoopLeftLine, + RiMoreFill, + RiPauseCircleLine, + RiPlayCircleLine, +} from '@remixicon/react' import { useBoolean, useDebounceFn } from 'ahooks' import { noop } from 'es-toolkit/function' import { useRouter } from 'next/navigation' @@ -207,7 +217,7 @@ const Operations = ({ : 'p-0.5 hover:bg-state-base-hover')} onClick={() => router.push(`/datasets/${datasetId}/documents/${detail.id}/settings`)} > - + - + {t('list.table.rename', { ns: 'datasetDocuments' })}
{data_source_type === DataSourceType.FILE && ( @@ -237,13 +247,13 @@ const Operations = ({ handleDownload() }} > - + {t('list.action.download', { ns: 'datasetDocuments' })} )} {['notion_import', DataSourceType.WEB].includes(data_source_type) && (
onOperate('sync')}> - + {t('list.action.sync', { ns: 'datasetDocuments' })}
)} @@ -261,7 +271,7 @@ const Operations = ({ handleDownload() }} > - + {t('list.action.download', { ns: 'datasetDocuments' })} @@ -269,30 +279,30 @@ const Operations = ({ )} {!archived && display_status?.toLowerCase() === 'indexing' && (
onOperate('pause')}> - + {t('list.action.pause', { ns: 'datasetDocuments' })}
)} {!archived && display_status?.toLowerCase() === 'paused' && (
onOperate('resume')}> - + {t('list.action.resume', { ns: 'datasetDocuments' })}
)} {!archived && (
onOperate('archive')}> - + {t('list.action.archive', { ns: 'datasetDocuments' })}
)} {archived && (
onOperate('un_archive')}> - + {t('list.action.unarchive', { ns: 'datasetDocuments' })}
)}
setShowModal(true)}> - + {t('list.action.delete', { ns: 'datasetDocuments' })}
@@ -301,7 +311,7 @@ const Operations = ({ position="br" btnElement={(
- +
)} btnClassName={open => cn(isListScene ? s.actionIconWrapperList : s.actionIconWrapperDetail, open ? '!hover:bg-state-base-hover !shadow-none' : '!bg-transparent')} diff --git a/web/app/components/datasets/documents/create-from-pipeline/actions/index.tsx b/web/app/components/datasets/documents/create-from-pipeline/actions/index.tsx index 10dd034436..de0609b4d8 100644 --- a/web/app/components/datasets/documents/create-from-pipeline/actions/index.tsx +++ b/web/app/components/datasets/documents/create-from-pipeline/actions/index.tsx @@ -1,3 +1,4 @@ +import { RiArrowRightLine } from '@remixicon/react' import Link from 'next/link' import { useParams } from 'next/navigation' import * as React from 'react' @@ -84,7 +85,7 @@ const Actions = ({ className="gap-x-0.5" > {t('stepOne.button', { ns: 'datasetCreation' })} - + diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/base/credential-selector/item.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/base/credential-selector/item.tsx index 2629c3653a..4d54a04d1f 100644 --- a/web/app/components/datasets/documents/create-from-pipeline/data-source/base/credential-selector/item.tsx +++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/base/credential-selector/item.tsx @@ -1,4 +1,5 @@ import type { DataSourceCredential } from '@/types/pipeline' +import { RiCheckLine } from '@remixicon/react' import * as React from 'react' import { useCallback } from 'react' import { CredentialIcon } from '@/app/components/datasets/common/credential-icon' @@ -35,7 +36,7 @@ const Item = ({ { isSelected && ( - + ) } diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/base/credential-selector/trigger.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/base/credential-selector/trigger.tsx index 052445fbfc..ed68eaef5d 100644 --- a/web/app/components/datasets/documents/create-from-pipeline/data-source/base/credential-selector/trigger.tsx +++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/base/credential-selector/trigger.tsx @@ -1,4 +1,5 @@ import type { DataSourceCredential } from '@/types/pipeline' +import { RiArrowDownSLine } from '@remixicon/react' import * as React from 'react' import { CredentialIcon } from '@/app/components/datasets/common/credential-icon' import { cn } from '@/utils/classnames' @@ -33,7 +34,7 @@ const Trigger = ({ {name} - + ) diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/base/header.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/base/header.tsx index 0ecf3c7baa..c299a53c5d 100644 --- a/web/app/components/datasets/documents/create-from-pipeline/data-source/base/header.tsx +++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/base/header.tsx @@ -1,4 +1,5 @@ import type { CredentialSelectorProps } from './credential-selector' +import { RiBookOpenLine, RiEqualizer2Line } from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' import Button from '@/app/components/base/button' @@ -38,7 +39,10 @@ const Header = ({ size="small" className="size-6 shrink-0 px-1" > - + @@ -48,7 +52,7 @@ const Header = ({ target="_blank" rel="noopener noreferrer" > - + {docTitle} diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/index.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/index.tsx index 8632899575..d02d5927f2 100644 --- a/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/index.tsx +++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/local-file/index.tsx @@ -1,5 +1,6 @@ 'use client' import type { CustomFile as File, FileItem } from '@/models/datasets' +import { RiDeleteBinLine, RiErrorWarningFill, RiUploadCloud2Line } from '@remixicon/react' import { produce } from 'immer' import dynamic from 'next/dynamic' import * as React from 'react' @@ -294,7 +295,7 @@ const LocalFile = ({ )} >
- + {supportBatchUpload ? t('stepOne.uploader.button', { ns: 'datasetCreation' }) : t('stepOne.uploader.buttonSingleFile', { ns: 'datasetCreation' })} @@ -353,7 +354,7 @@ const LocalFile = ({ )} { isError && ( - + ) } - +
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-documents/page-selector/item.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-documents/page-selector/item.tsx index 92a79805ab..29e4143e0c 100644 --- a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-documents/page-selector/item.tsx +++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-documents/page-selector/item.tsx @@ -1,5 +1,6 @@ import type { ListChildComponentProps } from 'react-window' import type { DataSourceNotionPage, DataSourceNotionPageMap } from '@/models/common' +import { RiArrowDownSLine, RiArrowRightSLine } from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' import { areEqual } from 'react-window' @@ -68,8 +69,8 @@ const Item = ({ index, style, data }: ListChildComponentProps<{ > { current.expand - ? - : + ? + : } ) diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/dropdown/index.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/dropdown/index.tsx index 78f10eeac6..f6eda7f7af 100644 --- a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/dropdown/index.tsx +++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/dropdown/index.tsx @@ -1,3 +1,4 @@ +import { RiMoreFill } from '@remixicon/react' import * as React from 'react' import { useCallback, useState } from 'react' import { @@ -48,7 +49,7 @@ const Dropdown = ({ open ? 'bg-state-base-hover' : 'hover:bg-state-base-hover', )} > - + diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/index.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/index.tsx index c89d7246aa..f0245cc9a4 100644 --- a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/index.tsx +++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/index.tsx @@ -1,4 +1,5 @@ import type { OnlineDriveFile } from '@/models/pipeline' +import { RiLoader2Line } from '@remixicon/react' import * as React from 'react' import { useEffect, useRef } from 'react' import { useTranslation } from 'react-i18next' @@ -95,7 +96,7 @@ const List = ({ aria-live="polite" aria-label={t('loading', { ns: 'appApi' })} > - + ) } diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/header.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/header.tsx index 16ba4cfd08..3a6f294e09 100644 --- a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/header.tsx +++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/header.tsx @@ -1,3 +1,4 @@ +import { RiBookOpenLine, RiEqualizer2Line } from '@remixicon/react' import * as React from 'react' import Button from '@/app/components/base/button' import Divider from '@/app/components/base/divider' @@ -25,7 +26,10 @@ const Header = ({ size="small" className="px-1" > - + - + {docTitle} diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/website-crawl/base/error-message.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/website-crawl/base/error-message.tsx index e555d19a3a..f0a1fb64a9 100644 --- a/web/app/components/datasets/documents/create-from-pipeline/data-source/website-crawl/base/error-message.tsx +++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/website-crawl/base/error-message.tsx @@ -1,3 +1,4 @@ +import { RiErrorWarningFill } from '@remixicon/react' import * as React from 'react' import { cn } from '@/utils/classnames' @@ -20,7 +21,7 @@ const ErrorMessage = ({ )} >
- +
{title}
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/website-crawl/base/options/index.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/website-crawl/base/options/index.tsx index 62ce45a573..eb8cceb3e5 100644 --- a/web/app/components/datasets/documents/create-from-pipeline/data-source/website-crawl/base/options/index.tsx +++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/website-crawl/base/options/index.tsx @@ -1,4 +1,5 @@ import type { RAGPipelineVariables } from '@/models/pipeline' +import { RiPlayLargeLine } from '@remixicon/react' import { useBoolean } from 'ahooks' import { useEffect, useMemo } from 'react' import { useTranslation } from 'react-i18next' @@ -100,7 +101,7 @@ const Options = ({ className="shrink-0 gap-x-0.5" spinnerClassName="!ml-0" > - + {!isRunning ? t(`${I18N_PREFIX}.run`, { ns: 'datasetCreation' }) : t(`${I18N_PREFIX}.running`, { ns: 'datasetCreation' })}
diff --git a/web/app/components/datasets/documents/create-from-pipeline/left-header.tsx b/web/app/components/datasets/documents/create-from-pipeline/left-header.tsx index 381595f400..2b30c79022 100644 --- a/web/app/components/datasets/documents/create-from-pipeline/left-header.tsx +++ b/web/app/components/datasets/documents/create-from-pipeline/left-header.tsx @@ -1,4 +1,5 @@ import type { Step } from './step-indicator' +import { RiArrowLeftLine } from '@remixicon/react' import Link from 'next/link' import { useParams } from 'next/navigation' import * as React from 'react' @@ -40,7 +41,7 @@ const LeftHeader = ({ variant="secondary-accent" className="absolute -left-11 top-3.5 size-9 rounded-full p-0" > - + )} diff --git a/web/app/components/datasets/documents/create-from-pipeline/preview/chunk-preview.tsx b/web/app/components/datasets/documents/create-from-pipeline/preview/chunk-preview.tsx index f2e66a76e4..abfdea319b 100644 --- a/web/app/components/datasets/documents/create-from-pipeline/preview/chunk-preview.tsx +++ b/web/app/components/datasets/documents/create-from-pipeline/preview/chunk-preview.tsx @@ -1,6 +1,7 @@ import type { NotionPage } from '@/models/common' import type { CrawlResultItem, CustomFile, DocumentItem, FileIndexingEstimateResponse } from '@/models/datasets' import type { OnlineDriveFile } from '@/models/pipeline' +import { RiSearchEyeLine } from '@remixicon/react' import * as React from 'react' import { useState } from 'react' import { useTranslation } from 'react-i18next' @@ -214,7 +215,7 @@ const ChunkPreview = ({ {isIdle && (
- +

{t('stepTwo.previewChunkTip', { ns: 'datasetCreation' })}

diff --git a/web/app/components/datasets/documents/create-from-pipeline/preview/file-preview.tsx b/web/app/components/datasets/documents/create-from-pipeline/preview/file-preview.tsx index 7189b2eea9..6e1b567bd6 100644 --- a/web/app/components/datasets/documents/create-from-pipeline/preview/file-preview.tsx +++ b/web/app/components/datasets/documents/create-from-pipeline/preview/file-preview.tsx @@ -1,5 +1,6 @@ 'use client' import type { CustomFile as File } from '@/models/datasets' +import { RiCloseLine } from '@remixicon/react' import * as React from 'react' import { useMemo } from 'react' import { useTranslation } from 'react-i18next' @@ -55,7 +56,7 @@ const FilePreview = ({ className="flex h-8 w-8 shrink-0 items-center justify-center" onClick={hidePreview} > - +
{isFetching && ( diff --git a/web/app/components/datasets/documents/create-from-pipeline/preview/online-document-preview.tsx b/web/app/components/datasets/documents/create-from-pipeline/preview/online-document-preview.tsx index f825dc7cd3..1e3019d427 100644 --- a/web/app/components/datasets/documents/create-from-pipeline/preview/online-document-preview.tsx +++ b/web/app/components/datasets/documents/create-from-pipeline/preview/online-document-preview.tsx @@ -1,5 +1,6 @@ 'use client' import type { NotionPage } from '@/models/common' +import { RiCloseLine } from '@remixicon/react' import * as React from 'react' import { useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -69,7 +70,7 @@ const OnlineDocumentPreview = ({ className="flex h-8 w-8 shrink-0 items-center justify-center" onClick={hidePreview} > - +
{isPending && ( diff --git a/web/app/components/datasets/documents/create-from-pipeline/preview/web-preview.tsx b/web/app/components/datasets/documents/create-from-pipeline/preview/web-preview.tsx index 804bf457ba..a527f12c0d 100644 --- a/web/app/components/datasets/documents/create-from-pipeline/preview/web-preview.tsx +++ b/web/app/components/datasets/documents/create-from-pipeline/preview/web-preview.tsx @@ -1,5 +1,6 @@ 'use client' import type { CrawlResultItem } from '@/models/datasets' +import { RiCloseLine, RiGlobalLine } from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' import { formatNumberAbbreviated } from '@/utils/format' @@ -22,7 +23,7 @@ const WebsitePreview = ({
{t('addDocuments.stepOne.preview', { ns: 'datasetPipeline' })}
{currentWebsite.title}
- + {currentWebsite.source_url} · · @@ -34,7 +35,7 @@ const WebsitePreview = ({ className="flex h-8 w-8 shrink-0 items-center justify-center" onClick={hidePreview} > - +
diff --git a/web/app/components/datasets/documents/create-from-pipeline/process-documents/actions.tsx b/web/app/components/datasets/documents/create-from-pipeline/process-documents/actions.tsx index 5e9000bf5b..7b378cb808 100644 --- a/web/app/components/datasets/documents/create-from-pipeline/process-documents/actions.tsx +++ b/web/app/components/datasets/documents/create-from-pipeline/process-documents/actions.tsx @@ -1,3 +1,4 @@ +import { RiArrowLeftLine } from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' import Button from '@/app/components/base/button' @@ -22,7 +23,7 @@ const Actions = ({ onClick={onBack} className="gap-x-0.5" > - + {t('operations.dataSource', { ns: 'datasetPipeline' })}
diff --git a/web/app/components/datasets/documents/create-from-pipeline/processing/embedding-process/index.tsx b/web/app/components/datasets/documents/create-from-pipeline/processing/embedding-process/index.tsx index a89d87d21f..a7834fc656 100644 --- a/web/app/components/datasets/documents/create-from-pipeline/processing/embedding-process/index.tsx +++ b/web/app/components/datasets/documents/create-from-pipeline/processing/embedding-process/index.tsx @@ -2,7 +2,14 @@ import type { IndexingType } from '@/app/components/datasets/create/step-two' import type { IndexingStatusResponse } from '@/models/datasets' import type { InitialDocumentDetail } from '@/models/pipeline' import type { RETRIEVE_METHOD } from '@/types/app' - +import { + RiAedFill, + RiArrowRightLine, + RiCheckboxCircleFill, + RiErrorWarningFill, + RiLoader2Fill, + RiTerminalBoxLine, +} from '@remixicon/react' import Link from 'next/link' import { useRouter } from 'next/navigation' import * as React from 'react' @@ -130,7 +137,7 @@ const EmbeddingProcess = ({
{(isEmbeddingWaiting || isEmbedding) && ( <> - + {isEmbeddingWaiting ? t('embedding.waiting', { ns: 'datasetDocuments' }) : t('embedding.processing', { ns: 'datasetDocuments' })} @@ -142,7 +149,7 @@ const EmbeddingProcess = ({ enableBilling && plan.type !== Plan.team && (
- +
{t('plansCommon.documentProcessingPriorityUpgrade', { ns: 'billing' })} @@ -202,12 +209,12 @@ const EmbeddingProcess = ({ popupContent={indexingStatusDetail.error} > - + )} {indexingStatusDetail.indexing_status === 'completed' && ( - + )}
@@ -229,7 +236,7 @@ const EmbeddingProcess = ({ @@ -239,7 +246,7 @@ const EmbeddingProcess = ({ onClick={navToDocumentList} > {t('stepThree.navTo', { ns: 'datasetCreation' })} - +
diff --git a/web/app/components/datasets/documents/create-from-pipeline/processing/index.tsx b/web/app/components/datasets/documents/create-from-pipeline/processing/index.tsx index ea88bc215c..283600fa69 100644 --- a/web/app/components/datasets/documents/create-from-pipeline/processing/index.tsx +++ b/web/app/components/datasets/documents/create-from-pipeline/processing/index.tsx @@ -1,5 +1,6 @@ 'use client' import type { InitialDocumentDetail } from '@/models/pipeline' +import { RiBookOpenLine } from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' import { useDatasetDetailContextWithSelector } from '@/context/dataset-detail' @@ -37,7 +38,7 @@ const Processing = ({
- +
{t('stepThree.sideTipTitle', { ns: 'datasetCreation' })}
diff --git a/web/app/components/datasets/documents/detail/batch-modal/csv-uploader.tsx b/web/app/components/datasets/documents/detail/batch-modal/csv-uploader.tsx index 5a4e6fa76f..f3a86e910d 100644 --- a/web/app/components/datasets/documents/detail/batch-modal/csv-uploader.tsx +++ b/web/app/components/datasets/documents/detail/batch-modal/csv-uploader.tsx @@ -1,7 +1,9 @@ 'use client' import type { FC } from 'react' import type { FileItem } from '@/models/datasets' - +import { + RiDeleteBinLine, +} from '@remixicon/react' import * as React from 'react' import { useCallback, useEffect, useMemo, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -230,7 +232,7 @@ const CSVUploader: FC = ({
- +
diff --git a/web/app/components/datasets/documents/detail/batch-modal/index.tsx b/web/app/components/datasets/documents/detail/batch-modal/index.tsx index 8a302d2df8..8917d85ee7 100644 --- a/web/app/components/datasets/documents/detail/batch-modal/index.tsx +++ b/web/app/components/datasets/documents/detail/batch-modal/index.tsx @@ -1,6 +1,7 @@ 'use client' import type { FC } from 'react' import type { ChunkingMode, FileItem } from '@/models/datasets' +import { RiCloseLine } from '@remixicon/react' import { noop } from 'es-toolkit/function' import * as React from 'react' import { useEffect, useState } from 'react' @@ -43,7 +44,7 @@ const BatchModal: FC = ({
{t('list.batchModal.title', { ns: 'datasetDocuments' })}
- +
= ({ )}
- {fullScreen ? : } + {fullScreen ? : }
- +
diff --git a/web/app/components/datasets/documents/detail/completed/common/batch-action.tsx b/web/app/components/datasets/documents/detail/completed/common/batch-action.tsx index 7db95f003f..2de72d9ff6 100644 --- a/web/app/components/datasets/documents/detail/completed/common/batch-action.tsx +++ b/web/app/components/datasets/documents/detail/completed/common/batch-action.tsx @@ -1,4 +1,5 @@ import type { FC } from 'react' +import { RiArchive2Line, RiCheckboxCircleLine, RiCloseCircleLine, RiDeleteBinLine, RiDownload2Line, RiDraftLine, RiRefreshLine } from '@remixicon/react' import { useBoolean } from 'ahooks' import * as React from 'react' import { useTranslation } from 'react-i18next' @@ -62,7 +63,7 @@ const BatchAction: FC = ({ className="gap-x-0.5 px-3" onClick={onBatchEnable} > - + {t(`${i18nPrefix}.enable`, { ns: 'dataset' })} {onEditMetadata && ( @@ -79,7 +80,7 @@ const BatchAction: FC = ({ className="gap-x-0.5 px-3" onClick={onEditMetadata} > - + {t('metadata.metadata', { ns: 'dataset' })} )} @@ -90,7 +91,7 @@ const BatchAction: FC = ({ className="gap-x-0.5 px-3" onClick={onArchive} > - + {t(`${i18nPrefix}.archive`, { ns: 'dataset' })} )} @@ -100,7 +101,7 @@ const BatchAction: FC = ({ className="gap-x-0.5 px-3" onClick={onBatchReIndex} > - + {t(`${i18nPrefix}.reIndex`, { ns: 'dataset' })} )} @@ -110,7 +111,7 @@ const BatchAction: FC = ({ className="gap-x-0.5 px-3" onClick={onBatchDownload} > - + {t(`${i18nPrefix}.download`, { ns: 'dataset' })} )} @@ -120,7 +121,7 @@ const BatchAction: FC = ({ className="gap-x-0.5 px-3" onClick={showDeleteConfirm} > - + {t(`${i18nPrefix}.delete`, { ns: 'dataset' })} diff --git a/web/app/components/datasets/documents/detail/completed/common/empty.tsx b/web/app/components/datasets/documents/detail/completed/common/empty.tsx index 85facd9914..c212a55c86 100644 --- a/web/app/components/datasets/documents/detail/completed/common/empty.tsx +++ b/web/app/components/datasets/documents/detail/completed/common/empty.tsx @@ -1,4 +1,5 @@ import type { FC } from 'react' +import { RiFileList2Line } from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' @@ -46,7 +47,7 @@ const Empty: FC = ({
- + diff --git a/web/app/components/datasets/documents/detail/completed/common/regeneration-modal.tsx b/web/app/components/datasets/documents/detail/completed/common/regeneration-modal.tsx index dc51cb32c4..23c1e826b7 100644 --- a/web/app/components/datasets/documents/detail/completed/common/regeneration-modal.tsx +++ b/web/app/components/datasets/documents/detail/completed/common/regeneration-modal.tsx @@ -1,4 +1,5 @@ import type { FC } from 'react' +import { RiLoader2Line } from '@remixicon/react' import { useCountDown } from 'ahooks' import { noop } from 'es-toolkit/function' import * as React from 'react' @@ -50,7 +51,7 @@ const RegeneratingContent: FC = React.memo(() => {
diff --git a/web/app/components/datasets/documents/detail/completed/display-toggle.tsx b/web/app/components/datasets/documents/detail/completed/display-toggle.tsx index 231578e589..6e961ac43f 100644 --- a/web/app/components/datasets/documents/detail/completed/display-toggle.tsx +++ b/web/app/components/datasets/documents/detail/completed/display-toggle.tsx @@ -1,4 +1,5 @@ import type { FC } from 'react' +import { RiLineHeight } from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' import { Collapse } from '@/app/components/base/icons/src/vender/knowledge' @@ -28,7 +29,7 @@ const DisplayToggle: FC = ({ > { isCollapsed - ? + ? : } diff --git a/web/app/components/datasets/documents/detail/completed/new-child-segment.tsx b/web/app/components/datasets/documents/detail/completed/new-child-segment.tsx index 34ce094372..89143662c6 100644 --- a/web/app/components/datasets/documents/detail/completed/new-child-segment.tsx +++ b/web/app/components/datasets/documents/detail/completed/new-child-segment.tsx @@ -1,5 +1,6 @@ import type { FC } from 'react' import type { ChildChunkDetail, SegmentUpdater } from '@/models/datasets' +import { RiCloseLine, RiExpandDiagonalLine } from '@remixicon/react' import { useParams } from 'next/navigation' import { memo, useMemo, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -141,10 +142,10 @@ const NewChildSegmentModal: FC = ({ )}
- +
- +
diff --git a/web/app/components/datasets/documents/detail/completed/segment-card/index.tsx b/web/app/components/datasets/documents/detail/completed/segment-card/index.tsx index 356803bda6..8a01f48b09 100644 --- a/web/app/components/datasets/documents/detail/completed/segment-card/index.tsx +++ b/web/app/components/datasets/documents/detail/completed/segment-card/index.tsx @@ -1,5 +1,6 @@ import type { FC } from 'react' import type { ChildChunkDetail, SegmentDetailModel } from '@/models/datasets' +import { RiDeleteBinLine, RiEditLine } from '@remixicon/react' import * as React from 'react' import { useCallback, useMemo, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -184,7 +185,7 @@ const SegmentCard: FC = ({ onClickEdit?.() }} > - + = ({ setShowModal(true) }} > - + diff --git a/web/app/components/datasets/documents/detail/completed/segment-detail.tsx b/web/app/components/datasets/documents/detail/completed/segment-detail.tsx index 786d2bf7a5..dada6f2fe7 100644 --- a/web/app/components/datasets/documents/detail/completed/segment-detail.tsx +++ b/web/app/components/datasets/documents/detail/completed/segment-detail.tsx @@ -1,7 +1,11 @@ import type { FC } from 'react' import type { FileEntity } from '@/app/components/datasets/common/image-uploader/types' import type { SegmentDetailModel } from '@/models/datasets' - +import { + RiCloseLine, + RiCollapseDiagonalLine, + RiExpandDiagonalLine, +} from '@remixicon/react' import * as React from 'react' import { useCallback, useMemo, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -157,12 +161,12 @@ const SegmentDetail: FC = ({
{ fullScreen - ? - : + ? + : }
- +
diff --git a/web/app/components/datasets/documents/detail/completed/skeleton/paragraph-list-skeleton.tsx b/web/app/components/datasets/documents/detail/completed/skeleton/paragraph-list-skeleton.tsx index bcb660b7f4..9af0543fb6 100644 --- a/web/app/components/datasets/documents/detail/completed/skeleton/paragraph-list-skeleton.tsx +++ b/web/app/components/datasets/documents/detail/completed/skeleton/paragraph-list-skeleton.tsx @@ -1,3 +1,4 @@ +import { RiArrowRightSLine } from '@remixicon/react' import * as React from 'react' import Checkbox from '@/app/components/base/checkbox' import Divider from '@/app/components/base/divider' @@ -36,7 +37,7 @@ const CardSkelton = React.memo(() => { - + diff --git a/web/app/components/datasets/documents/detail/completed/status-item.tsx b/web/app/components/datasets/documents/detail/completed/status-item.tsx index 2eecee773f..34fc8bf0cb 100644 --- a/web/app/components/datasets/documents/detail/completed/status-item.tsx +++ b/web/app/components/datasets/documents/detail/completed/status-item.tsx @@ -1,5 +1,6 @@ import type { FC } from 'react' import type { Item } from '@/app/components/base/select' +import { RiCheckLine } from '@remixicon/react' import * as React from 'react' type IStatusItemProps = { @@ -14,7 +15,7 @@ const StatusItem: FC = ({ return (
{item.name} - {selected && } + {selected && }
) } diff --git a/web/app/components/datasets/documents/detail/embedding/index.tsx b/web/app/components/datasets/documents/detail/embedding/index.tsx index 0a281eb748..37b5bb85e7 100644 --- a/web/app/components/datasets/documents/detail/embedding/index.tsx +++ b/web/app/components/datasets/documents/detail/embedding/index.tsx @@ -1,6 +1,7 @@ import type { FC } from 'react' import type { CommonResponse } from '@/models/common' import type { IndexingStatusResponse, ProcessRuleResponse } from '@/models/datasets' +import { RiLoader2Line, RiPauseCircleLine, RiPlayCircleLine } from '@remixicon/react' import Image from 'next/image' import * as React from 'react' import { useCallback, useEffect, useMemo, useRef, useState } from 'react' @@ -246,7 +247,7 @@ const EmbeddingDetail: FC = ({ <>
- {isEmbedding && } + {isEmbedding && } {isEmbedding && t('embedding.processing', { ns: 'datasetDocuments' })} {isEmbeddingCompleted && t('embedding.completed', { ns: 'datasetDocuments' })} @@ -260,7 +261,7 @@ const EmbeddingDetail: FC = ({ border-components-button-secondary-border bg-components-button-secondary-bg px-1.5 py-1 shadow-xs shadow-shadow-shadow-3 backdrop-blur-[5px]`} onClick={handleSwitch} > - + {t('embedding.pause', { ns: 'datasetDocuments' })} @@ -273,7 +274,7 @@ const EmbeddingDetail: FC = ({ border-components-button-secondary-border bg-components-button-secondary-bg px-1.5 py-1 shadow-xs shadow-shadow-shadow-3 backdrop-blur-[5px]`} onClick={handleSwitch} > - + {t('embedding.resume', { ns: 'datasetDocuments' })} diff --git a/web/app/components/datasets/documents/detail/index.tsx b/web/app/components/datasets/documents/detail/index.tsx index 876ef8fb85..ea2c453355 100644 --- a/web/app/components/datasets/documents/detail/index.tsx +++ b/web/app/components/datasets/documents/detail/index.tsx @@ -1,6 +1,7 @@ 'use client' import type { FC } from 'react' import type { DataSourceInfo, FileItem, LegacyDataSourceInfo } from '@/models/datasets' +import { RiArrowLeftLine, RiLayoutLeft2Line, RiLayoutRight2Line } from '@remixicon/react' import { useRouter } from 'next/navigation' import * as React from 'react' import { useMemo, useState } from 'react' @@ -162,7 +163,7 @@ const DocumentDetail: FC = ({ datasetId, documentId }) => {
- +
= ({ datasetId, documentId }) => { > { showMetadata - ? - : + ? + : }
diff --git a/web/app/components/datasets/documents/detail/metadata/index.tsx b/web/app/components/datasets/documents/detail/metadata/index.tsx index c5af8ae201..7d1c65b1cd 100644 --- a/web/app/components/datasets/documents/detail/metadata/index.tsx +++ b/web/app/components/datasets/documents/detail/metadata/index.tsx @@ -3,6 +3,7 @@ import type { FC, ReactNode } from 'react' import type { inputType, metadataType } from '@/hooks/use-metadata' import type { CommonResponse } from '@/models/common' import type { DocType, FullDocumentDetail } from '@/models/datasets' +import { PencilIcon } from '@heroicons/react/24/outline' import { get } from 'es-toolkit/compat' import * as React from 'react' import { useEffect, useState } from 'react' @@ -355,7 +356,7 @@ const Metadata: FC = ({ docDetail, loading, onUpdate }) => { {!editStatus ? ( ) diff --git a/web/app/components/datasets/documents/detail/new-segment.tsx b/web/app/components/datasets/documents/detail/new-segment.tsx index d240624f7a..3a58d6ac06 100644 --- a/web/app/components/datasets/documents/detail/new-segment.tsx +++ b/web/app/components/datasets/documents/detail/new-segment.tsx @@ -1,6 +1,7 @@ import type { FC } from 'react' import type { FileEntity } from '@/app/components/datasets/common/image-uploader/types' import type { SegmentUpdater } from '@/models/datasets' +import { RiCloseLine, RiExpandDiagonalLine } from '@remixicon/react' import { useParams } from 'next/navigation' import { memo, useCallback, useMemo, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -180,10 +181,10 @@ const NewSegmentModal: FC = ({ )}
- +
- +
diff --git a/web/app/components/datasets/documents/detail/segment-add/index.tsx b/web/app/components/datasets/documents/detail/segment-add/index.tsx index 9fb0c056b2..ad61033fce 100644 --- a/web/app/components/datasets/documents/detail/segment-add/index.tsx +++ b/web/app/components/datasets/documents/detail/segment-add/index.tsx @@ -1,6 +1,11 @@ 'use client' import type { FC } from 'react' - +import { + RiAddLine, + RiArrowDownSLine, + RiErrorWarningFill, + RiLoader2Line, +} from '@remixicon/react' import { useBoolean } from 'ahooks' import * as React from 'react' import { useCallback, useMemo } from 'react' @@ -67,7 +72,7 @@ const SegmentAdd: FC = ({ shadow-xs shadow-shadow-shadow-3 backdrop-blur-[5px]" >
- + {t('list.batchModal.processing', { ns: 'datasetDocuments' })}
)} @@ -86,7 +91,7 @@ const SegmentAdd: FC = ({ {importStatus === ProcessStatus.ERROR && (
- + {t('list.batchModal.error', { ns: 'datasetDocuments' })}
@@ -112,7 +117,7 @@ const SegmentAdd: FC = ({ onClick={withNeedUpgradeCheck(showNewSegmentModal)} disabled={embedding} > - + {t('list.action.addButton', { ns: 'datasetDocuments' })} @@ -135,7 +140,7 @@ const SegmentAdd: FC = ({ )} btnElement={(
- +
)} btnClassName={open => cn( diff --git a/web/app/components/datasets/documents/detail/settings/pipeline-settings/left-header.tsx b/web/app/components/datasets/documents/detail/settings/pipeline-settings/left-header.tsx index d033892d27..280d835586 100644 --- a/web/app/components/datasets/documents/detail/settings/pipeline-settings/left-header.tsx +++ b/web/app/components/datasets/documents/detail/settings/pipeline-settings/left-header.tsx @@ -1,3 +1,4 @@ +import { RiArrowLeftLine } from '@remixicon/react' import { useRouter } from 'next/navigation' import * as React from 'react' import { useCallback } from 'react' @@ -33,7 +34,7 @@ const LeftHeader = ({ onClick={navigateBack} aria-label={t('operation.back', { ns: 'common' })} > - +
diff --git a/web/app/components/datasets/external-api/external-api-modal/Form.tsx b/web/app/components/datasets/external-api/external-api-modal/Form.tsx index d75c0edaf9..cd2f02ea8b 100644 --- a/web/app/components/datasets/external-api/external-api-modal/Form.tsx +++ b/web/app/components/datasets/external-api/external-api-modal/Form.tsx @@ -1,5 +1,6 @@ import type { FC } from 'react' import type { CreateExternalAPIReq, FormSchema } from '../declarations' +import { RiBookOpenLine } from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' import Input from '@/app/components/base/input' @@ -61,7 +62,7 @@ const Form: FC = React.memo(({ rel="noopener noreferrer" className="body-xs-regular flex items-center text-text-accent" > - + {t('externalAPIPanelDocumentation', { ns: 'dataset' })} )} diff --git a/web/app/components/datasets/external-api/external-api-modal/index.tsx b/web/app/components/datasets/external-api/external-api-modal/index.tsx index 5aa438fed0..a9a87d11bd 100644 --- a/web/app/components/datasets/external-api/external-api-modal/index.tsx +++ b/web/app/components/datasets/external-api/external-api-modal/index.tsx @@ -1,6 +1,11 @@ import type { FC } from 'react' import type { CreateExternalAPIReq, FormSchema } from '../declarations' - +import { + RiBook2Line, + RiCloseLine, + RiInformation2Line, + RiLock2Fill, +} from '@remixicon/react' import { memo, useEffect, @@ -138,7 +143,7 @@ const AddExternalAPIModal: FC = ({ data, onSave, onCan
{datasetBindings?.map(binding => (
- +
{binding.name}
))} @@ -147,14 +152,14 @@ const AddExternalAPIModal: FC = ({ data, onSave, onCan asChild={false} position="bottom" > - +
)} - +
= ({ data, onSave, onCan
onClose()}> - +
@@ -68,7 +73,7 @@ const ExternalAPIPanel: React.FC = ({ onClose }) => { className="flex items-center justify-center gap-0.5 px-3 py-2" onClick={handleOpenExternalAPIModal} > - +
{t('createExternalAPI', { ns: 'dataset' })}
diff --git a/web/app/components/datasets/external-api/external-knowledge-api-card/index.tsx b/web/app/components/datasets/external-api/external-knowledge-api-card/index.tsx index 20eb1379b0..224b090b6e 100644 --- a/web/app/components/datasets/external-api/external-knowledge-api-card/index.tsx +++ b/web/app/components/datasets/external-api/external-knowledge-api-card/index.tsx @@ -1,6 +1,9 @@ import type { CreateExternalAPIReq } from '../declarations' import type { ExternalAPIItem } from '@/models/datasets' - +import { + RiDeleteBinLine, + RiEditLine, +} from '@remixicon/react' import * as React from 'react' import { useState } from 'react' import { useTranslation } from 'react-i18next' @@ -116,7 +119,7 @@ const ExternalKnowledgeAPICard: React.FC = ({ api
- + = ({ api onMouseEnter={() => setIsHovered(true)} onMouseLeave={() => setIsHovered(false)} > - +
diff --git a/web/app/components/datasets/external-knowledge-base/create/ExternalApiSelect.tsx b/web/app/components/datasets/external-knowledge-base/create/ExternalApiSelect.tsx index 9bf86674f6..f84e6c57c1 100644 --- a/web/app/components/datasets/external-knowledge-base/create/ExternalApiSelect.tsx +++ b/web/app/components/datasets/external-knowledge-base/create/ExternalApiSelect.tsx @@ -1,3 +1,7 @@ +import { + RiAddLine, + RiArrowDownSLine, +} from '@remixicon/react' import { useRouter } from 'next/navigation' import * as React from 'react' import { useEffect, useState } from 'react' @@ -72,7 +76,7 @@ const ExternalApiSelect: React.FC = ({ items, value, onS : ( {t('selectExternalKnowledgeAPI.placeholder', { ns: 'dataset' })} )} - + {isOpen && (
@@ -94,7 +98,7 @@ const ExternalApiSelect: React.FC = ({ items, value, onS className="flex cursor-pointer items-center gap-2 self-stretch rounded-lg p-2 hover:bg-state-base-hover" onClick={handleAddNewAPI} > - + {t('createNewExternalAPI', { ns: 'dataset' })}
diff --git a/web/app/components/datasets/external-knowledge-base/create/ExternalApiSelection.tsx b/web/app/components/datasets/external-knowledge-base/create/ExternalApiSelection.tsx index 48b11db1e9..75b9e8de9c 100644 --- a/web/app/components/datasets/external-knowledge-base/create/ExternalApiSelection.tsx +++ b/web/app/components/datasets/external-knowledge-base/create/ExternalApiSelection.tsx @@ -1,5 +1,6 @@ 'use client' +import { RiAddLine } from '@remixicon/react' import { useRouter } from 'next/navigation' import * as React from 'react' import { useEffect, useState } from 'react' @@ -77,7 +78,7 @@ const ExternalApiSelection: React.FC = ({ external_kn ) : ( )} diff --git a/web/app/components/datasets/external-knowledge-base/create/InfoPanel.tsx b/web/app/components/datasets/external-knowledge-base/create/InfoPanel.tsx index 4df1246c5b..61b37a0a1d 100644 --- a/web/app/components/datasets/external-knowledge-base/create/InfoPanel.tsx +++ b/web/app/components/datasets/external-knowledge-base/create/InfoPanel.tsx @@ -1,3 +1,4 @@ +import { RiBookOpenLine } from '@remixicon/react' import { useTranslation } from 'react-i18next' import { useDocLink } from '@/context/i18n' @@ -9,7 +10,7 @@ const InfoPanel = () => {
- +

diff --git a/web/app/components/datasets/external-knowledge-base/create/index.tsx b/web/app/components/datasets/external-knowledge-base/create/index.tsx index ffae6b90d9..07b6e71fa6 100644 --- a/web/app/components/datasets/external-knowledge-base/create/index.tsx +++ b/web/app/components/datasets/external-knowledge-base/create/index.tsx @@ -1,6 +1,7 @@ 'use client' import type { CreateKnowledgeBaseReq } from './declarations' +import { RiArrowLeftLine, RiArrowRightLine } from '@remixicon/react' import { useRouter } from 'next/navigation' import { useCallback, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -73,7 +74,7 @@ const ExternalKnowledgeBaseCreate: React.FC = variant="tertiary" onClick={navBackHandle} > - +

= loading={loading} >
{t('externalKnowledgeForm.connect', { ns: 'dataset' })}
- +
diff --git a/web/app/components/datasets/extra-info/api-access/card.tsx b/web/app/components/datasets/extra-info/api-access/card.tsx index d4660f4528..77c44795f4 100644 --- a/web/app/components/datasets/extra-info/api-access/card.tsx +++ b/web/app/components/datasets/extra-info/api-access/card.tsx @@ -1,3 +1,4 @@ +import { RiArrowRightUpLine, RiBookOpenLine } from '@remixicon/react' import Link from 'next/link' import * as React from 'react' import { useCallback } from 'react' @@ -77,11 +78,11 @@ const Card = ({ rel="noopener noreferrer" className="flex h-8 items-center space-x-[7px] rounded-lg px-2 text-text-tertiary hover:bg-state-base-hover" > - +
{t('overview.apiInfo.doc', { ns: 'appOverview' })}
- + diff --git a/web/app/components/datasets/extra-info/service-api/card.tsx b/web/app/components/datasets/extra-info/service-api/card.tsx index 3c0727e308..31076d12fc 100644 --- a/web/app/components/datasets/extra-info/service-api/card.tsx +++ b/web/app/components/datasets/extra-info/service-api/card.tsx @@ -1,3 +1,4 @@ +import { RiBookOpenLine, RiKey2Line } from '@remixicon/react' import Link from 'next/link' import * as React from 'react' import { useCallback, useState } from 'react' @@ -79,7 +80,7 @@ const Card = ({ className="gap-x-px text-text-tertiary" onClick={handleOpenSecretKeyModal} > - + {t('serviceApi.card.apiKey', { ns: 'dataset' })} @@ -94,7 +95,7 @@ const Card = ({ size="small" className="gap-x-px text-text-tertiary" > - + {t('serviceApi.card.apiReference', { ns: 'dataset' })} diff --git a/web/app/components/datasets/extra-info/statistics.tsx b/web/app/components/datasets/extra-info/statistics.tsx index a6d6c42a09..18a66849af 100644 --- a/web/app/components/datasets/extra-info/statistics.tsx +++ b/web/app/components/datasets/extra-info/statistics.tsx @@ -1,4 +1,5 @@ import type { RelatedAppResponse } from '@/models/datasets' +import { RiInformation2Line } from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' import Divider from '@/app/components/base/divider' @@ -56,7 +57,7 @@ const Statistics = ({ >
{t('datasetMenus.relatedApp', { ns: 'common' })} - +
diff --git a/web/app/components/datasets/formatted-text/flavours/edit-slice.tsx b/web/app/components/datasets/formatted-text/flavours/edit-slice.tsx index 05d010a825..3ae95ec531 100644 --- a/web/app/components/datasets/formatted-text/flavours/edit-slice.tsx +++ b/web/app/components/datasets/formatted-text/flavours/edit-slice.tsx @@ -2,6 +2,7 @@ import type { OffsetOptions } from '@floating-ui/react' import type { FC, ReactNode } from 'react' import type { SliceProps } from './type' import { autoUpdate, flip, FloatingFocusManager, offset, shift, useDismiss, useFloating, useHover, useInteractions, useRole } from '@floating-ui/react' +import { RiDeleteBinLine } from '@remixicon/react' // @ts-expect-error no types available import lineClamp from 'line-clamp' import { useState } from 'react' @@ -101,7 +102,7 @@ export const EditSlice: FC = (props) => { }} state={ActionButtonState.Destructive} > - + diff --git a/web/app/components/datasets/hit-testing/components/empty-records.tsx b/web/app/components/datasets/hit-testing/components/empty-records.tsx index a486cc0653..e942ba0d92 100644 --- a/web/app/components/datasets/hit-testing/components/empty-records.tsx +++ b/web/app/components/datasets/hit-testing/components/empty-records.tsx @@ -1,3 +1,4 @@ +import { RiHistoryLine } from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' @@ -6,7 +7,7 @@ const EmptyRecords = () => { return (
- +
{t('noRecentTip', { ns: 'datasetHitTesting' })}
diff --git a/web/app/components/datasets/hit-testing/components/query-input/index.tsx b/web/app/components/datasets/hit-testing/components/query-input/index.tsx index 45d0630ae0..b634859dcf 100644 --- a/web/app/components/datasets/hit-testing/components/query-input/index.tsx +++ b/web/app/components/datasets/hit-testing/components/query-input/index.tsx @@ -10,7 +10,10 @@ import type { Query, } from '@/models/datasets' import type { RetrievalConfig } from '@/types/app' - +import { + RiEqualizer2Line, + RiPlayCircleLine, +} from '@remixicon/react' import Image from 'next/image' import * as React from 'react' import { useCallback, useMemo, useState } from 'react' @@ -193,7 +196,7 @@ const QueryInput = ({ disabled={(text.length === 0 && images.length === 0) || text.length > 200 || (images.length > 0 && !isAllUploaded)} className="w-[88px]" > - + {t('input.testing', { ns: 'datasetHitTesting' })} ) @@ -213,7 +216,7 @@ const QueryInput = ({ size="small" onClick={() => setIsSettingsOpen(!isSettingsOpen)} > - +
{t('settingTitle', { ns: 'datasetHitTesting' })}
@@ -226,7 +229,7 @@ const QueryInput = ({ > {icon}
{t(`retrieval.${retrievalMethod}.title`, { ns: 'dataset' })}
- + )} { diff --git a/web/app/components/datasets/hit-testing/components/records.tsx b/web/app/components/datasets/hit-testing/components/records.tsx index 180e8c78ed..64adf82eef 100644 --- a/web/app/components/datasets/hit-testing/components/records.tsx +++ b/web/app/components/datasets/hit-testing/components/records.tsx @@ -1,5 +1,5 @@ import type { Attachment, HitTestingRecord, Query } from '@/models/datasets' -import { RiApps2Line, RiFocus2Line } from '@remixicon/react' +import { RiApps2Line, RiArrowDownLine, RiFocus2Line } from '@remixicon/react' import * as React from 'react' import { useCallback, useMemo, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -58,10 +58,11 @@ const Records = ({ onClick={handleSortTime} > {t('table.header.time', { ns: 'datasetHitTesting' })} - diff --git a/web/app/components/datasets/hit-testing/components/result-item-footer.tsx b/web/app/components/datasets/hit-testing/components/result-item-footer.tsx index 45b052cd3e..bdb43eb4bd 100644 --- a/web/app/components/datasets/hit-testing/components/result-item-footer.tsx +++ b/web/app/components/datasets/hit-testing/components/result-item-footer.tsx @@ -1,6 +1,7 @@ 'use client' import type { FC } from 'react' import type { FileAppearanceTypeEnum } from '@/app/components/base/file-uploader/types' +import { RiArrowRightUpLine } from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' import FileIcon from '@/app/components/base/file-uploader/file-type-icon' @@ -32,7 +33,7 @@ const ResultItemFooter: FC = ({ onClick={showDetailModal} >
{t(`${i18nPrefix}open`, { ns: 'datasetHitTesting' })}
- + ) diff --git a/web/app/components/datasets/hit-testing/modify-external-retrieval-modal.tsx b/web/app/components/datasets/hit-testing/modify-external-retrieval-modal.tsx index 89d8028f86..21b2f6b56d 100644 --- a/web/app/components/datasets/hit-testing/modify-external-retrieval-modal.tsx +++ b/web/app/components/datasets/hit-testing/modify-external-retrieval-modal.tsx @@ -1,3 +1,6 @@ +import { + RiCloseLine, +} from '@remixicon/react' import { useState } from 'react' import { useTranslation } from 'react-i18next' import ActionButton from '@/app/components/base/action-button' @@ -45,7 +48,7 @@ const ModifyExternalRetrievalModal: React.FC
{t('settingTitle', { ns: 'datasetHitTesting' })}
- +
diff --git a/web/app/components/datasets/hit-testing/modify-retrieval-modal.tsx b/web/app/components/datasets/hit-testing/modify-retrieval-modal.tsx index a93ff95f5a..a942c402ed 100644 --- a/web/app/components/datasets/hit-testing/modify-retrieval-modal.tsx +++ b/web/app/components/datasets/hit-testing/modify-retrieval-modal.tsx @@ -2,6 +2,7 @@ import type { FC } from 'react' import type { IndexingType } from '../create/step-two' import type { RetrievalConfig } from '@/types/app' +import { RiCloseLine } from '@remixicon/react' import * as React from 'react' import { useMemo, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -108,7 +109,7 @@ const ModifyRetrievalModal: FC = ({ onClick={onHide} className="flex h-8 w-8 cursor-pointer items-center justify-center" > - +
diff --git a/web/app/components/datasets/list/dataset-card/components/dataset-card-footer.tsx b/web/app/components/datasets/list/dataset-card/components/dataset-card-footer.tsx index 22f5d7efbe..854f34f49c 100644 --- a/web/app/components/datasets/list/dataset-card/components/dataset-card-footer.tsx +++ b/web/app/components/datasets/list/dataset-card/components/dataset-card-footer.tsx @@ -1,4 +1,5 @@ import type { DataSet } from '@/models/datasets' +import { RiFileTextFill, RiRobot2Fill } from '@remixicon/react' import * as React from 'react' import { useMemo } from 'react' import { useTranslation } from 'react-i18next' @@ -40,14 +41,14 @@ const DatasetCardFooter = ({ dataset }: DatasetCardFooterProps) => { >
- + {documentCount}
{!isExternalProvider && (
- + {dataset.app_count}
diff --git a/web/app/components/datasets/list/dataset-card/components/operations-popover.tsx b/web/app/components/datasets/list/dataset-card/components/operations-popover.tsx index 7efd96169f..80ae2fb7a1 100644 --- a/web/app/components/datasets/list/dataset-card/components/operations-popover.tsx +++ b/web/app/components/datasets/list/dataset-card/components/operations-popover.tsx @@ -1,4 +1,5 @@ import type { DataSet } from '@/models/datasets' +import { RiMoreFill } from '@remixicon/react' import * as React from 'react' import CustomPopover from '@/app/components/base/popover' import { cn } from '@/utils/classnames' @@ -36,7 +37,7 @@ const OperationsPopover = ({ trigger="click" btnElement={(
- +
)} btnClassName={open => diff --git a/web/app/components/datasets/metadata/add-metadata-button.tsx b/web/app/components/datasets/metadata/add-metadata-button.tsx index 099c69a5c2..6c920f5b49 100644 --- a/web/app/components/datasets/metadata/add-metadata-button.tsx +++ b/web/app/components/datasets/metadata/add-metadata-button.tsx @@ -1,5 +1,6 @@ 'use client' import type { FC } from 'react' +import { RiAddLine } from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' import { cn } from '@/utils/classnames' @@ -22,7 +23,7 @@ const AddedMetadataButton: FC = ({ variant="tertiary" onClick={onClick} > - +
{t('metadata.addMetadata', { ns: 'dataset' })}
) diff --git a/web/app/components/datasets/metadata/base/date-picker.tsx b/web/app/components/datasets/metadata/base/date-picker.tsx index c0ae9d8d42..2f61549859 100644 --- a/web/app/components/datasets/metadata/base/date-picker.tsx +++ b/web/app/components/datasets/metadata/base/date-picker.tsx @@ -1,5 +1,8 @@ import type { TriggerProps } from '@/app/components/base/date-and-time-picker/types' - +import { + RiCalendarLine, + RiCloseCircleFill, +} from '@remixicon/react' import dayjs from 'dayjs' import { useCallback } from 'react' import { useTranslation } from 'react-i18next' @@ -41,17 +44,18 @@ const WrappedDatePicker = ({ > {value ? formatTimestamp(value, t('metadata.dateTimeFormat', { ns: 'datasetDocuments' })) : t('metadata.chooseTime', { ns: 'dataset' })} - handleDateChange()} /> - ) diff --git a/web/app/components/datasets/metadata/edit-metadata-batch/add-row.tsx b/web/app/components/datasets/metadata/edit-metadata-batch/add-row.tsx index 470fa103ee..20fad9769a 100644 --- a/web/app/components/datasets/metadata/edit-metadata-batch/add-row.tsx +++ b/web/app/components/datasets/metadata/edit-metadata-batch/add-row.tsx @@ -1,6 +1,7 @@ 'use client' import type { FC } from 'react' import type { MetadataItemWithEdit } from '../types' +import { RiIndeterminateCircleLine } from '@remixicon/react' import * as React from 'react' import { cn } from '@/utils/classnames' import InputCombined from './input-combined' @@ -35,7 +36,7 @@ const AddRow: FC = ({ } onClick={onRemove} > - + ) diff --git a/web/app/components/datasets/metadata/edit-metadata-batch/edit-row.tsx b/web/app/components/datasets/metadata/edit-metadata-batch/edit-row.tsx index 6481897db2..1fdf8c2ef7 100644 --- a/web/app/components/datasets/metadata/edit-metadata-batch/edit-row.tsx +++ b/web/app/components/datasets/metadata/edit-metadata-batch/edit-row.tsx @@ -1,6 +1,7 @@ 'use client' import type { FC } from 'react' import type { MetadataItemWithEdit } from '../types' +import { RiDeleteBinLine } from '@remixicon/react' import * as React from 'react' import { cn } from '@/utils/classnames' import { UpdateType } from '../types' @@ -53,7 +54,7 @@ const EditMetadatabatchItem: FC = ({ } onClick={() => onRemove(payload.id)} > - + ) diff --git a/web/app/components/datasets/metadata/edit-metadata-batch/edited-beacon.tsx b/web/app/components/datasets/metadata/edit-metadata-batch/edited-beacon.tsx index 189d05c6a8..001ec74c00 100644 --- a/web/app/components/datasets/metadata/edit-metadata-batch/edited-beacon.tsx +++ b/web/app/components/datasets/metadata/edit-metadata-batch/edited-beacon.tsx @@ -1,5 +1,6 @@ 'use client' import type { FC } from 'react' +import { RiResetLeftLine } from '@remixicon/react' import { useHover } from 'ahooks' import * as React from 'react' import { useRef } from 'react' @@ -23,7 +24,7 @@ const EditedBeacon: FC = ({ ? (
- +
) diff --git a/web/app/components/datasets/metadata/edit-metadata-batch/input-has-set-multiple-value.tsx b/web/app/components/datasets/metadata/edit-metadata-batch/input-has-set-multiple-value.tsx index d95bbe20a1..7ae57342fc 100644 --- a/web/app/components/datasets/metadata/edit-metadata-batch/input-has-set-multiple-value.tsx +++ b/web/app/components/datasets/metadata/edit-metadata-batch/input-has-set-multiple-value.tsx @@ -1,5 +1,6 @@ 'use client' import type { FC } from 'react' +import { RiCloseLine } from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' import { cn } from '@/utils/classnames' @@ -20,7 +21,10 @@ const InputHasSetMultipleValue: FC = ({
{t('metadata.batchEditMetadata.multipleValue', { ns: 'dataset' })}
{!readOnly && (
- +
)} diff --git a/web/app/components/datasets/metadata/edit-metadata-batch/modal.tsx b/web/app/components/datasets/metadata/edit-metadata-batch/modal.tsx index 4c1b601769..9095970768 100644 --- a/web/app/components/datasets/metadata/edit-metadata-batch/modal.tsx +++ b/web/app/components/datasets/metadata/edit-metadata-batch/modal.tsx @@ -1,6 +1,7 @@ 'use client' import type { FC } from 'react' import type { BuiltInMetadataItem, MetadataItemInBatchEdit, MetadataItemWithEdit } from '../types' +import { RiQuestionLine } from '@remixicon/react' import { produce } from 'immer' import * as React from 'react' import { useCallback, useState } from 'react' @@ -170,7 +171,7 @@ const EditMetadataBatchModal: FC = ({ } >
- +
diff --git a/web/app/components/datasets/metadata/metadata-dataset/create-content.tsx b/web/app/components/datasets/metadata/metadata-dataset/create-content.tsx index c9488299ce..ee1b9cbcdc 100644 --- a/web/app/components/datasets/metadata/metadata-dataset/create-content.tsx +++ b/web/app/components/datasets/metadata/metadata-dataset/create-content.tsx @@ -1,5 +1,6 @@ 'use client' import type { FC } from 'react' +import { RiArrowLeftLine } from '@remixicon/react' import { noop } from 'es-toolkit/function' import * as React from 'react' import { useCallback, useState } from 'react' @@ -51,7 +52,7 @@ const CreateContent: FC = ({ hideCloseBtn={hasBack} beforeHeader={hasBack && (
- +
{t(`${i18nPrefix}.back`, { ns: 'dataset' })}
)} diff --git a/web/app/components/datasets/metadata/metadata-dataset/dataset-metadata-drawer.tsx b/web/app/components/datasets/metadata/metadata-dataset/dataset-metadata-drawer.tsx index 9595878ecb..242275d594 100644 --- a/web/app/components/datasets/metadata/metadata-dataset/dataset-metadata-drawer.tsx +++ b/web/app/components/datasets/metadata/metadata-dataset/dataset-metadata-drawer.tsx @@ -1,6 +1,7 @@ 'use client' import type { FC } from 'react' import type { BuiltInMetadataItem, MetadataItemWithValueLength } from '../types' +import { RiAddLine, RiDeleteBinLine, RiEditLine } from '@remixicon/react' import { useBoolean, useHover } from 'ahooks' import * as React from 'react' import { useCallback, useRef, useState } from 'react' @@ -89,9 +90,9 @@ const Item: FC = ({ )}
- +
- +
{isShowDeleteConfirm && ( @@ -182,7 +183,7 @@ const DatasetMetadataDrawer: FC = ({ setOpen={setOpen} trigger={( )} diff --git a/web/app/components/datasets/metadata/metadata-dataset/select-metadata.tsx b/web/app/components/datasets/metadata/metadata-dataset/select-metadata.tsx index 7471e3ba72..284bd46ef6 100644 --- a/web/app/components/datasets/metadata/metadata-dataset/select-metadata.tsx +++ b/web/app/components/datasets/metadata/metadata-dataset/select-metadata.tsx @@ -1,6 +1,7 @@ 'use client' import type { FC } from 'react' import type { MetadataItem } from '../types' +import { RiAddLine, RiArrowRightUpLine } from '@remixicon/react' import * as React from 'react' import { useMemo, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -66,14 +67,14 @@ const SelectMetadata: FC = ({
- +
{t(`${i18nPrefix}.newAction`, { ns: 'dataset' })}
{t(`${i18nPrefix}.manageAction`, { ns: 'dataset' })}
- +
diff --git a/web/app/components/datasets/metadata/metadata-document/index.tsx b/web/app/components/datasets/metadata/metadata-document/index.tsx index 14e2c085ed..68d9d7bf75 100644 --- a/web/app/components/datasets/metadata/metadata-document/index.tsx +++ b/web/app/components/datasets/metadata/metadata-document/index.tsx @@ -1,6 +1,7 @@ 'use client' import type { FC } from 'react' import type { FullDocumentDetail } from '@/models/datasets' +import { RiEditLine } from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' import Button from '@/app/components/base/button' @@ -69,7 +70,7 @@ const MetadataDocument: FC = ({ ) : ( ))} diff --git a/web/app/components/datasets/metadata/metadata-document/info-group.tsx b/web/app/components/datasets/metadata/metadata-document/info-group.tsx index 1bbc68b46d..6d172c92f4 100644 --- a/web/app/components/datasets/metadata/metadata-document/info-group.tsx +++ b/web/app/components/datasets/metadata/metadata-document/info-group.tsx @@ -1,6 +1,7 @@ 'use client' import type { FC } from 'react' import type { MetadataItemWithValue } from '../types' +import { RiDeleteBinLine, RiQuestionLine } from '@remixicon/react' import { useRouter } from 'next/navigation' import * as React from 'react' import { useTranslation } from 'react-i18next' @@ -64,7 +65,7 @@ const InfoGroup: FC = ({
{title}
{titleTooltip && ( {titleTooltip}}> -
+
)} @@ -99,7 +100,7 @@ const InfoGroup: FC = ({ onChange={value => onChange?.({ ...item, value })} />
- onDelete?.(item)} /> + onDelete?.(item)} />
) diff --git a/web/app/components/datasets/metadata/metadata-document/no-data.tsx b/web/app/components/datasets/metadata/metadata-document/no-data.tsx index 3ee34aef22..da56871029 100644 --- a/web/app/components/datasets/metadata/metadata-document/no-data.tsx +++ b/web/app/components/datasets/metadata/metadata-document/no-data.tsx @@ -1,5 +1,6 @@ 'use client' import type { FC } from 'react' +import { RiArrowRightLine } from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' import Button from '@/app/components/base/button' @@ -18,7 +19,7 @@ const NoData: FC = ({
{t('metadata.documentMetadata.metadataToolTip', { ns: 'dataset' })}
) diff --git a/web/app/components/datasets/no-linked-apps-panel.tsx b/web/app/components/datasets/no-linked-apps-panel.tsx index 8a1ce0dd8a..12e87a7379 100644 --- a/web/app/components/datasets/no-linked-apps-panel.tsx +++ b/web/app/components/datasets/no-linked-apps-panel.tsx @@ -1,3 +1,4 @@ +import { RiApps2AddLine, RiBookOpenLine } from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' import { useDocLink } from '@/context/i18n' @@ -9,7 +10,7 @@ const NoLinkedAppsPanel = () => { return ( diff --git a/web/app/components/datasets/rename-modal/index.tsx b/web/app/components/datasets/rename-modal/index.tsx index 7963f7017a..106e35c4ac 100644 --- a/web/app/components/datasets/rename-modal/index.tsx +++ b/web/app/components/datasets/rename-modal/index.tsx @@ -3,6 +3,7 @@ import type { MouseEventHandler } from 'react' import type { AppIconSelection } from '../../base/app-icon-picker' import type { DataSet } from '@/models/datasets' +import { RiCloseLine } from '@remixicon/react' import { noop } from 'es-toolkit/function' import { useCallback, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -104,7 +105,7 @@ const RenameDatasetModal = ({ show, dataset, onSuccess, onClose }: RenameDataset
{t('title', { ns: 'datasetSettings' })}
- +
diff --git a/web/app/components/datasets/settings/form/index.tsx b/web/app/components/datasets/settings/form/index.tsx index cbf7c4acf6..a25d770518 100644 --- a/web/app/components/datasets/settings/form/index.tsx +++ b/web/app/components/datasets/settings/form/index.tsx @@ -4,6 +4,7 @@ import type { DefaultModel } from '@/app/components/header/account-setting/model import type { Member } from '@/models/common' import type { IconInfo } from '@/models/datasets' import type { AppIconType, RetrievalConfig } from '@/types/app' +import { RiAlertFill } from '@remixicon/react' import { useCallback, useEffect, useMemo, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' import AppIcon from '@/app/components/base/app-icon' @@ -321,7 +322,7 @@ const Form = () => {
- +
{t('form.upgradeHighQualityTip', { ns: 'datasetSettings' })} diff --git a/web/app/components/datasets/settings/index-method/keyword-number.tsx b/web/app/components/datasets/settings/index-method/keyword-number.tsx index 4967b411a7..66b29a39c5 100644 --- a/web/app/components/datasets/settings/index-method/keyword-number.tsx +++ b/web/app/components/datasets/settings/index-method/keyword-number.tsx @@ -1,3 +1,4 @@ +import { RiQuestionLine } from '@remixicon/react' import * as React from 'react' import { useCallback } from 'react' import { useTranslation } from 'react-i18next' @@ -30,7 +31,7 @@ const KeyWordNumber = ({ - +
- +
{t('form.permissionsAllMember', { ns: 'datasetSettings' })} @@ -166,11 +167,12 @@ const PermissionSelector = ({ ) } -
@@ -190,7 +192,7 @@ const PermissionSelector = ({ - +
)} text={t('form.permissionsAllMember', { ns: 'datasetSettings' })} @@ -201,7 +203,7 @@ const PermissionSelector = ({ - +
)} text={t('form.permissionsInvitedMembers', { ns: 'datasetSettings' })} diff --git a/web/app/components/datasets/settings/permission-selector/member-item.tsx b/web/app/components/datasets/settings/permission-selector/member-item.tsx index cd27d6ca3f..a28ba7ff74 100644 --- a/web/app/components/datasets/settings/permission-selector/member-item.tsx +++ b/web/app/components/datasets/settings/permission-selector/member-item.tsx @@ -1,3 +1,4 @@ +import { RiCheckLine } from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' import { cn } from '@/utils/classnames' @@ -38,7 +39,7 @@ const MemberItem = ({
{email}
- {isSelected && } + {isSelected && } ) } diff --git a/web/app/components/datasets/settings/permission-selector/permission-item.tsx b/web/app/components/datasets/settings/permission-selector/permission-item.tsx index 6b22f99de8..c5847896f7 100644 --- a/web/app/components/datasets/settings/permission-selector/permission-item.tsx +++ b/web/app/components/datasets/settings/permission-selector/permission-item.tsx @@ -1,3 +1,4 @@ +import { RiCheckLine } from '@remixicon/react' import * as React from 'react' type PermissionItemProps = { @@ -22,7 +23,7 @@ const PermissionItem = ({
{text}
- {isSelected && } + {isSelected && } ) } diff --git a/web/app/components/develop/doc.tsx b/web/app/components/develop/doc.tsx index 3bcc3ae721..4e853113d4 100644 --- a/web/app/components/develop/doc.tsx +++ b/web/app/components/develop/doc.tsx @@ -1,4 +1,5 @@ 'use client' +import { RiCloseLine, RiListUnordered } from '@remixicon/react' import { useEffect, useMemo, useState } from 'react' import { useTranslation } from 'react-i18next' import { useLocale } from '@/context/i18n' @@ -172,7 +173,7 @@ const Doc = ({ appDetail }: IDocProps) => { className="group flex h-6 w-6 items-center justify-center rounded-md transition-colors hover:bg-state-base-hover" aria-label="Close" > - + @@ -231,7 +232,7 @@ const Doc = ({ appDetail }: IDocProps) => { className="group flex h-11 w-11 items-center justify-center rounded-full border-[0.5px] border-components-panel-border bg-components-panel-bg shadow-lg transition-all duration-150 hover:bg-background-default-hover hover:shadow-xl" aria-label="Open table of contents" > - + )} diff --git a/web/app/components/develop/secret-key/secret-key-button.tsx b/web/app/components/develop/secret-key/secret-key-button.tsx index 20dd111c82..16bdc15ce2 100644 --- a/web/app/components/develop/secret-key/secret-key-button.tsx +++ b/web/app/components/develop/secret-key/secret-key-button.tsx @@ -1,4 +1,5 @@ 'use client' +import { RiKey2Line } from '@remixicon/react' import { useState } from 'react' import { useTranslation } from 'react-i18next' import Button from '@/app/components/base/button' @@ -22,7 +23,7 @@ const SecretKeyButton = ({ className, appId, textCls }: ISecretKeyButtonProps) = variant="ghost" >
- +
{t('apiKey', { ns: 'appApi' })}
diff --git a/web/app/components/develop/secret-key/secret-key-generate.tsx b/web/app/components/develop/secret-key/secret-key-generate.tsx index f606813c1e..6280a3220c 100644 --- a/web/app/components/develop/secret-key/secret-key-generate.tsx +++ b/web/app/components/develop/secret-key/secret-key-generate.tsx @@ -1,5 +1,6 @@ 'use client' import type { CreateApiKeyResponse } from '@/models/app' +import { XMarkIcon } from '@heroicons/react/20/solid' import { useTranslation } from 'react-i18next' import Button from '@/app/components/base/button' import Modal from '@/app/components/base/modal' @@ -23,7 +24,7 @@ const SecretKeyGenerateModal = ({ return (
- +

{t('apiKeyModal.generateTips', { ns: 'appApi' })}

diff --git a/web/app/components/develop/secret-key/secret-key-modal.tsx b/web/app/components/develop/secret-key/secret-key-modal.tsx index df1c0c9ac2..238d949500 100644 --- a/web/app/components/develop/secret-key/secret-key-modal.tsx +++ b/web/app/components/develop/secret-key/secret-key-modal.tsx @@ -1,5 +1,7 @@ 'use client' import type { CreateApiKeyResponse } from '@/models/app' +import { PlusIcon, XMarkIcon } from '@heroicons/react/20/solid' +import { RiDeleteBinLine } from '@remixicon/react' import { useState, } from 'react' @@ -88,7 +90,7 @@ const SecretKeyModal = ({ return (
- +

{t('apiKeyModal.apiSecretKeyTips', { ns: 'appApi' })}

{isApiKeysLoading &&
} @@ -116,7 +118,7 @@ const SecretKeyModal = ({ setShowConfirmDelete(true) }} > - + )}
@@ -128,7 +130,7 @@ const SecretKeyModal = ({ }
diff --git a/web/app/components/explore/app-card/index.tsx b/web/app/components/explore/app-card/index.tsx index f5c5506956..5d82ab65cc 100644 --- a/web/app/components/explore/app-card/index.tsx +++ b/web/app/components/explore/app-card/index.tsx @@ -1,5 +1,7 @@ 'use client' import type { App } from '@/models/explore' +import { PlusIcon } from '@heroicons/react/20/solid' +import { RiInformation2Line } from '@remixicon/react' import { useCallback } from 'react' import { useTranslation } from 'react-i18next' import { useContextSelector } from 'use-context-selector' @@ -74,12 +76,12 @@ const AppCard = ({ {/* Main content */} diff --git a/web/app/components/goto-anything/actions/commands/account.tsx b/web/app/components/goto-anything/actions/commands/account.tsx index 1b64cb58f6..d1fa36b6f0 100644 --- a/web/app/components/goto-anything/actions/commands/account.tsx +++ b/web/app/components/goto-anything/actions/commands/account.tsx @@ -1,4 +1,5 @@ import type { SlashCommandHandler } from './types' +import { RiUser3Line } from '@remixicon/react' import * as React from 'react' import { getI18n } from 'react-i18next' import { registerCommands, unregisterCommands } from './command-bus' @@ -28,7 +29,7 @@ export const accountCommand: SlashCommandHandler = { type: 'command' as const, icon: (
- +
), data: { command: 'navigation.account', args: {} }, diff --git a/web/app/components/goto-anything/actions/commands/community.tsx b/web/app/components/goto-anything/actions/commands/community.tsx index 2b4ebae49d..685149402d 100644 --- a/web/app/components/goto-anything/actions/commands/community.tsx +++ b/web/app/components/goto-anything/actions/commands/community.tsx @@ -1,4 +1,5 @@ import type { SlashCommandHandler } from './types' +import { RiDiscordLine } from '@remixicon/react' import * as React from 'react' import { getI18n } from 'react-i18next' import { registerCommands, unregisterCommands } from './command-bus' @@ -29,7 +30,7 @@ export const communityCommand: SlashCommandHandler = { type: 'command' as const, icon: (
- +
), data: { command: 'navigation.community', args: { url: 'https://discord.gg/5AEfbxcd9k' } }, diff --git a/web/app/components/goto-anything/actions/commands/docs.tsx b/web/app/components/goto-anything/actions/commands/docs.tsx index 410c47bf4f..8b04e84157 100644 --- a/web/app/components/goto-anything/actions/commands/docs.tsx +++ b/web/app/components/goto-anything/actions/commands/docs.tsx @@ -1,4 +1,5 @@ import type { SlashCommandHandler } from './types' +import { RiBookOpenLine } from '@remixicon/react' import * as React from 'react' import { getI18n } from 'react-i18next' import { defaultDocBaseUrl } from '@/context/i18n' @@ -34,7 +35,7 @@ export const docsCommand: SlashCommandHandler = { type: 'command' as const, icon: (
- +
), data: { command: 'navigation.doc', args: {} }, diff --git a/web/app/components/goto-anything/actions/commands/forum.tsx b/web/app/components/goto-anything/actions/commands/forum.tsx index d9a5bf983f..36116ceb1f 100644 --- a/web/app/components/goto-anything/actions/commands/forum.tsx +++ b/web/app/components/goto-anything/actions/commands/forum.tsx @@ -1,4 +1,5 @@ import type { SlashCommandHandler } from './types' +import { RiFeedbackLine } from '@remixicon/react' import * as React from 'react' import { getI18n } from 'react-i18next' import { registerCommands, unregisterCommands } from './command-bus' @@ -29,7 +30,7 @@ export const forumCommand: SlashCommandHandler = { type: 'command' as const, icon: (
- +
), data: { command: 'navigation.forum', args: { url: 'https://forum.dify.ai' } }, diff --git a/web/app/components/goto-anything/actions/commands/theme.tsx b/web/app/components/goto-anything/actions/commands/theme.tsx index 803ba8fe6f..ba1416229d 100644 --- a/web/app/components/goto-anything/actions/commands/theme.tsx +++ b/web/app/components/goto-anything/actions/commands/theme.tsx @@ -1,5 +1,6 @@ import type { CommandSearchResult } from '../types' import type { SlashCommandHandler } from './types' +import { RiComputerLine, RiMoonLine, RiSunLine } from '@remixicon/react' import * as React from 'react' import { getI18n } from 'react-i18next' import { registerCommands, unregisterCommands } from './command-bus' @@ -14,19 +15,19 @@ const THEME_ITEMS = [ id: 'system', titleKey: 'gotoAnything.actions.themeSystem', descKey: 'gotoAnything.actions.themeSystemDesc', - icon: , + icon: , }, { id: 'light', titleKey: 'gotoAnything.actions.themeLight', descKey: 'gotoAnything.actions.themeLightDesc', - icon: , + icon: , }, { id: 'dark', titleKey: 'gotoAnything.actions.themeDark', descKey: 'gotoAnything.actions.themeDarkDesc', - icon: , + icon: , }, ] as const diff --git a/web/app/components/goto-anything/actions/commands/zen.tsx b/web/app/components/goto-anything/actions/commands/zen.tsx index b5a26dc2e8..1645e40fd9 100644 --- a/web/app/components/goto-anything/actions/commands/zen.tsx +++ b/web/app/components/goto-anything/actions/commands/zen.tsx @@ -1,4 +1,5 @@ import type { SlashCommandHandler } from './types' +import { RiFullscreenLine } from '@remixicon/react' import * as React from 'react' import { getI18n } from 'react-i18next' import { isInWorkflowPage } from '@/app/components/workflow/constants' @@ -39,7 +40,7 @@ export const zenCommand: SlashCommandHandler = { type: 'command' as const, icon: (
- +
), data: { command: 'workflow.zen', args: {} }, diff --git a/web/app/components/goto-anything/index.tsx b/web/app/components/goto-anything/index.tsx index daa35d8ea1..d34176e4c7 100644 --- a/web/app/components/goto-anything/index.tsx +++ b/web/app/components/goto-anything/index.tsx @@ -3,6 +3,7 @@ import type { FC } from 'react' import type { Plugin } from '../plugins/types' import type { SearchResult } from './actions' +import { RiSearchLine } from '@remixicon/react' import { useQuery } from '@tanstack/react-query' import { useDebounce, useKeyPress } from 'ahooks' import { Command } from 'cmdk' @@ -306,7 +307,7 @@ const GotoAnything: FC = ({ loop >
- +
- +
{systemFeatures.branding.enabled && systemFeatures.branding.workspace_logo diff --git a/web/app/components/header/account-dropdown/compliance.tsx b/web/app/components/header/account-dropdown/compliance.tsx index 81d5850493..562914dd07 100644 --- a/web/app/components/header/account-dropdown/compliance.tsx +++ b/web/app/components/header/account-dropdown/compliance.tsx @@ -1,5 +1,6 @@ import type { FC, MouseEvent } from 'react' import { Menu, MenuButton, MenuItem, MenuItems, Transition } from '@headlessui/react' +import { RiArrowDownCircleLine, RiArrowRightSLine, RiVerifiedBadgeLine } from '@remixicon/react' import { useMutation } from '@tanstack/react-query' import { Fragment, useCallback } from 'react' import { useTranslation } from 'react-i18next' @@ -78,7 +79,7 @@ const UpgradeOrDownload: FC = ({ doc_name }) => { if (isCurrentPlanCanDownload) { return ( ) @@ -119,9 +120,9 @@ export default function Compliance() { cn('group flex h-9 w-full items-center gap-1 rounded-lg py-2 pl-3 pr-2 hover:bg-state-base-hover', open && 'bg-state-base-hover') } > - +
{t('userProfile.compliance', { ns: 'common' })}
- + - + EDU )} @@ -104,9 +116,9 @@ export default function AppSelector() { target="_self" rel="noopener noreferrer" > - +
{t('account.account', { ns: 'common' })}
- + @@ -114,7 +126,7 @@ export default function AppSelector() { className={cn(itemClassName, 'data-[active]:bg-state-base-hover')} onClick={() => setShowAccountSettingModal({ payload: ACCOUNT_SETTING_TAB.MEMBERS })} > - +
{t('userProfile.settings', { ns: 'common' })}
@@ -129,9 +141,9 @@ export default function AppSelector() { target="_blank" rel="noopener noreferrer" > - +
{t('userProfile.helpCenter', { ns: 'common' })}
- + @@ -145,9 +157,9 @@ export default function AppSelector() { target="_blank" rel="noopener noreferrer" > - +
{t('userProfile.roadmap', { ns: 'common' })}
- + @@ -157,10 +169,10 @@ export default function AppSelector() { target="_blank" rel="noopener noreferrer" > - +
{t('userProfile.github', { ns: 'common' })}
- +
@@ -172,7 +184,7 @@ export default function AppSelector() { className={cn(itemClassName, 'justify-between', 'data-[active]:bg-state-base-hover')} onClick={() => setAboutVisible(true)} > - +
{t('userProfile.about', { ns: 'common' })}
{langGeniusVersionInfo.current_version}
@@ -188,7 +200,7 @@ export default function AppSelector() {
- +
{t('theme.theme', { ns: 'common' })}
@@ -199,7 +211,7 @@ export default function AppSelector() {
- +
{t('userProfile.logout', { ns: 'common' })}
diff --git a/web/app/components/header/account-dropdown/support.tsx b/web/app/components/header/account-dropdown/support.tsx index e249308b56..7873b676c3 100644 --- a/web/app/components/header/account-dropdown/support.tsx +++ b/web/app/components/header/account-dropdown/support.tsx @@ -1,4 +1,5 @@ import { Menu, MenuButton, MenuItem, MenuItems, Transition } from '@headlessui/react' +import { RiArrowRightSLine, RiArrowRightUpLine, RiChatSmile2Line, RiDiscordLine, RiDiscussLine, RiMailSendLine, RiQuestionLine } from '@remixicon/react' import Link from 'next/link' import { Fragment } from 'react' import { useTranslation } from 'react-i18next' @@ -33,9 +34,9 @@ export default function Support({ closeAccountDropdown }: SupportProps) { cn('group flex h-9 w-full items-center gap-1 rounded-lg py-2 pl-3 pr-2 hover:bg-state-base-hover', open && 'bg-state-base-hover') } > - +
{t('userProfile.support', { ns: 'common' })}
- + - +
{t('userProfile.contactUs', { ns: 'common' })}
) @@ -76,9 +77,9 @@ export default function Support({ closeAccountDropdown }: SupportProps) { target="_blank" rel="noopener noreferrer" > - +
{t('userProfile.emailSupport', { ns: 'common' })}
- + )}
@@ -90,9 +91,9 @@ export default function Support({ closeAccountDropdown }: SupportProps) { target="_blank" rel="noopener noreferrer" > - +
{t('userProfile.forum', { ns: 'common' })}
- + @@ -102,9 +103,9 @@ export default function Support({ closeAccountDropdown }: SupportProps) { target="_blank" rel="noopener noreferrer" > - +
{t('userProfile.community', { ns: 'common' })}
- +
diff --git a/web/app/components/header/account-dropdown/workplace-selector/index.tsx b/web/app/components/header/account-dropdown/workplace-selector/index.tsx index 40c1da5377..058935aa27 100644 --- a/web/app/components/header/account-dropdown/workplace-selector/index.tsx +++ b/web/app/components/header/account-dropdown/workplace-selector/index.tsx @@ -1,5 +1,6 @@ import type { Plan } from '@/app/components/billing/type' import { Menu, MenuButton, MenuItems, Transition } from '@headlessui/react' +import { RiArrowDownSLine } from '@remixicon/react' import { Fragment } from 'react' import { useTranslation } from 'react-i18next' import { useContext } from 'use-context-selector' @@ -46,7 +47,7 @@ const WorkplaceSelector = () => {
{currentWorkspace?.name}
- +
{ return ( ) diff --git a/web/app/components/header/account-setting/api-based-extension-page/index.tsx b/web/app/components/header/account-setting/api-based-extension-page/index.tsx index 473fbc4776..dce2a61de6 100644 --- a/web/app/components/header/account-setting/api-based-extension-page/index.tsx +++ b/web/app/components/header/account-setting/api-based-extension-page/index.tsx @@ -1,3 +1,6 @@ +import { + RiAddLine, +} from '@remixicon/react' import { useTranslation } from 'react-i18next' import Button from '@/app/components/base/button' import { useModalContext } from '@/context/modal-context' @@ -40,7 +43,7 @@ const ApiBasedExtensionPage = () => { className="w-full" onClick={handleOpenApiBasedExtensionModal} > - + {t('apiBasedExtension.add', { ns: 'common' })}
diff --git a/web/app/components/header/account-setting/api-based-extension-page/item.tsx b/web/app/components/header/account-setting/api-based-extension-page/item.tsx index 99a05e4371..d1e3e8f368 100644 --- a/web/app/components/header/account-setting/api-based-extension-page/item.tsx +++ b/web/app/components/header/account-setting/api-based-extension-page/item.tsx @@ -1,6 +1,9 @@ import type { FC } from 'react' import type { ApiBasedExtension } from '@/models/common' - +import { + RiDeleteBinLine, + RiEditLine, +} from '@remixicon/react' import { useState } from 'react' import { useTranslation } from 'react-i18next' import Button from '@/app/components/base/button' @@ -44,13 +47,13 @@ const Item: FC = ({ className="mr-1" onClick={handleOpenApiBasedExtensionModal} > - + {t('operation.edit', { ns: 'common' })}
diff --git a/web/app/components/header/account-setting/api-based-extension-page/selector.tsx b/web/app/components/header/account-setting/api-based-extension-page/selector.tsx index e4a0b3b28f..38acb73154 100644 --- a/web/app/components/header/account-setting/api-based-extension-page/selector.tsx +++ b/web/app/components/header/account-setting/api-based-extension-page/selector.tsx @@ -1,5 +1,8 @@ import type { FC } from 'react' - +import { + RiAddLine, + RiArrowDownSLine, +} from '@remixicon/react' import { useState } from 'react' import { useTranslation } from 'react-i18next' import { @@ -54,14 +57,14 @@ const ApiBasedExtensionSelector: FC = ({
{currentItem.api_endpoint}
- + ) : (
{t('apiBasedExtension.selector.placeholder', { ns: 'common' })} - +
) } @@ -108,7 +111,7 @@ const ApiBasedExtensionSelector: FC = ({ setShowApiBasedExtensionModal({ payload: {}, onSaveCallback: () => mutate() }) }} > - + {t('operation.add', { ns: 'common' })} diff --git a/web/app/components/header/account-setting/collapse/index.tsx b/web/app/components/header/account-setting/collapse/index.tsx index bd99af244d..7c66256fe5 100644 --- a/web/app/components/header/account-setting/collapse/index.tsx +++ b/web/app/components/header/account-setting/collapse/index.tsx @@ -1,3 +1,4 @@ +import { ChevronDownIcon, ChevronRightIcon } from '@heroicons/react/24/outline' import { useState } from 'react' import { cn } from '@/utils/classnames' @@ -29,8 +30,8 @@ const Collapse = ({ {title} { open - ? - : + ? + : } { diff --git a/web/app/components/header/account-setting/data-source-page-new/configure.tsx b/web/app/components/header/account-setting/data-source-page-new/configure.tsx index 2eab0ab8a6..a3dba783e1 100644 --- a/web/app/components/header/account-setting/data-source-page-new/configure.tsx +++ b/web/app/components/header/account-setting/data-source-page-new/configure.tsx @@ -4,7 +4,9 @@ import type { AddOAuthButtonProps, PluginPayload, } from '@/app/components/plugins/plugin-auth/types' - +import { + RiAddLine, +} from '@remixicon/react' import { memo, useCallback, @@ -78,7 +80,7 @@ const Configure = ({ diff --git a/web/app/components/header/account-setting/data-source-page-new/install-from-marketplace.tsx b/web/app/components/header/account-setting/data-source-page-new/install-from-marketplace.tsx index e0565fbfdd..f02e276f55 100644 --- a/web/app/components/header/account-setting/data-source-page-new/install-from-marketplace.tsx +++ b/web/app/components/header/account-setting/data-source-page-new/install-from-marketplace.tsx @@ -1,5 +1,8 @@ import type { Plugin } from '@/app/components/plugins/types' - +import { + RiArrowDownSLine, + RiArrowRightUpLine, +} from '@remixicon/react' import { useTheme } from 'next-themes' import Link from 'next/link' import { @@ -46,14 +49,14 @@ const InstallFromMarketplace = ({
setCollapse(!collapse)}> - + {t('modelProvider.installDataSourceProvider', { ns: 'common' })}
{t('modelProvider.discoverMore', { ns: 'common' })} {t('marketplace.difyMarketplace', { ns: 'plugin' })} - +
diff --git a/web/app/components/header/account-setting/data-source-page-new/operator.tsx b/web/app/components/header/account-setting/data-source-page-new/operator.tsx index 6792271442..14bdee4fd0 100644 --- a/web/app/components/header/account-setting/data-source-page-new/operator.tsx +++ b/web/app/components/header/account-setting/data-source-page-new/operator.tsx @@ -2,7 +2,13 @@ import type { DataSourceCredential, } from './types' import type { Item } from '@/app/components/base/dropdown' - +import { + RiDeleteBinLine, + RiEditLine, + RiEqualizer2Line, + RiHome9Line, + RiStickyNoteAddLine, +} from '@remixicon/react' import { memo, useCallback, @@ -32,7 +38,7 @@ const Operator = ({ value: 'setDefault', text: (
- +
{t('auth.setDefault', { ns: 'plugin' })}
), @@ -44,7 +50,7 @@ const Operator = ({ value: 'rename', text: (
- +
{t('operation.rename', { ns: 'common' })}
), @@ -59,7 +65,7 @@ const Operator = ({ value: 'edit', text: (
- +
{t('operation.edit', { ns: 'common' })}
), @@ -74,7 +80,7 @@ const Operator = ({ value: 'change', text: (
- +
{t('dataSource.notion.changeAuthorizedPages', { ns: 'common' })}
), @@ -91,7 +97,7 @@ const Operator = ({ value: 'delete', text: (
- +
{t('operation.remove', { ns: 'common' })}
diff --git a/web/app/components/header/account-setting/data-source-page/data-source-notion/operate/index.tsx b/web/app/components/header/account-setting/data-source-page/data-source-notion/operate/index.tsx index d84a3f6a93..043eb3c846 100644 --- a/web/app/components/header/account-setting/data-source-page/data-source-notion/operate/index.tsx +++ b/web/app/components/header/account-setting/data-source-page/data-source-notion/operate/index.tsx @@ -1,6 +1,11 @@ 'use client' import { Menu, MenuButton, MenuItem, MenuItems, Transition } from '@headlessui/react' - +import { + RiDeleteBinLine, + RiLoopLeftLine, + RiMoreFill, + RiStickyNoteAddLine, +} from '@remixicon/react' import { Fragment } from 'react' import { useTranslation } from 'react-i18next' import Toast from '@/app/components/base/toast' @@ -44,7 +49,7 @@ export default function Operate({ ({ open }) => ( <> - + - +
{t('dataSource.notion.changeAuthorizedPages', { ns: 'common' })}
@@ -75,7 +80,7 @@ export default function Operate({
- +
{t('dataSource.notion.sync', { ns: 'common' })}
@@ -83,7 +88,7 @@ export default function Operate({
- +
{t('dataSource.notion.remove', { ns: 'common' })}
diff --git a/web/app/components/header/account-setting/data-source-page/panel/config-item.tsx b/web/app/components/header/account-setting/data-source-page/panel/config-item.tsx index 02ebcad81e..f62c5e147d 100644 --- a/web/app/components/header/account-setting/data-source-page/panel/config-item.tsx +++ b/web/app/components/header/account-setting/data-source-page/panel/config-item.tsx @@ -1,6 +1,8 @@ 'use client' import type { FC } from 'react' - +import { + RiDeleteBinLine, +} from '@remixicon/react' import { noop } from 'es-toolkit/function' import * as React from 'react' import { useTranslation } from 'react-i18next' @@ -72,7 +74,7 @@ const ConfigItem: FC = ({ { isWebsite && !readOnly && (
- +
) } diff --git a/web/app/components/header/account-setting/data-source-page/panel/index.tsx b/web/app/components/header/account-setting/data-source-page/panel/index.tsx index 850226c717..0909603ae8 100644 --- a/web/app/components/header/account-setting/data-source-page/panel/index.tsx +++ b/web/app/components/header/account-setting/data-source-page/panel/index.tsx @@ -1,6 +1,7 @@ 'use client' import type { FC } from 'react' import type { ConfigItemType } from './config-item' +import { RiAddLine } from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' import Button from '@/app/components/base/button' @@ -94,7 +95,7 @@ const Panel: FC = ({ } onClick={onConfigure} > - + {t('dataSource.connect', { ns: 'common' })}
)} diff --git a/web/app/components/header/account-setting/index.tsx b/web/app/components/header/account-setting/index.tsx index 2b5e8c6ef1..5de543c01b 100644 --- a/web/app/components/header/account-setting/index.tsx +++ b/web/app/components/header/account-setting/index.tsx @@ -1,6 +1,21 @@ 'use client' import type { AccountSettingTab } from '@/app/components/header/account-setting/constants' - +import { + RiBrain2Fill, + RiBrain2Line, + RiCloseLine, + RiColorFilterFill, + RiColorFilterLine, + RiDatabase2Fill, + RiDatabase2Line, + RiGroup2Fill, + RiGroup2Line, + RiMoneyDollarCircleFill, + RiMoneyDollarCircleLine, + RiPuzzle2Fill, + RiPuzzle2Line, + RiTranslate2, +} from '@remixicon/react' import { useEffect, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' import Input from '@/app/components/base/input' @@ -61,14 +76,14 @@ export default function AccountSetting({ { key: ACCOUNT_SETTING_TAB.PROVIDER, name: t('settings.provider', { ns: 'common' }), - icon: , - activeIcon: , + icon: , + activeIcon: , }, { key: ACCOUNT_SETTING_TAB.MEMBERS, name: t('settings.members', { ns: 'common' }), - icon: , - activeIcon: , + icon: , + activeIcon: , }, ] @@ -77,8 +92,8 @@ export default function AccountSetting({ key: ACCOUNT_SETTING_TAB.BILLING, name: t('settings.billing', { ns: 'common' }), description: t('plansCommon.receiptInfo', { ns: 'billing' }), - icon: , - activeIcon: , + icon: , + activeIcon: , }) } @@ -86,14 +101,14 @@ export default function AccountSetting({ { key: ACCOUNT_SETTING_TAB.DATA_SOURCE, name: t('settings.dataSource', { ns: 'common' }), - icon: , - activeIcon: , + icon: , + activeIcon: , }, { key: ACCOUNT_SETTING_TAB.API_BASED_EXTENSION, name: t('settings.apiBasedExtension', { ns: 'common' }), - icon: , - activeIcon: , + icon: , + activeIcon: , }, ) @@ -101,8 +116,8 @@ export default function AccountSetting({ items.push({ key: ACCOUNT_SETTING_TAB.CUSTOM, name: t('custom', { ns: 'custom' }), - icon: , - activeIcon: , + icon: , + activeIcon: , }) } @@ -125,8 +140,8 @@ export default function AccountSetting({ { key: ACCOUNT_SETTING_TAB.LANGUAGE, name: t('settings.language', { ns: 'common' }), - icon: , - activeIcon: , + icon: , + activeIcon: , }, ], }, @@ -198,7 +213,7 @@ export default function AccountSetting({ className="px-2" onClick={onCancel} > - +
ESC
diff --git a/web/app/components/header/account-setting/key-validator/ValidateStatus.tsx b/web/app/components/header/account-setting/key-validator/ValidateStatus.tsx index b012a01af9..deefcb6b63 100644 --- a/web/app/components/header/account-setting/key-validator/ValidateStatus.tsx +++ b/web/app/components/header/account-setting/key-validator/ValidateStatus.tsx @@ -1,8 +1,11 @@ +import { + RiErrorWarningFill, +} from '@remixicon/react' import { useTranslation } from 'react-i18next' import { CheckCircle } from '@/app/components/base/icons/src/vender/solid/general' export const ValidatedErrorIcon = () => { - return + return } export const ValidatedSuccessIcon = () => { diff --git a/web/app/components/header/account-setting/members-page/edit-workspace-modal/index.tsx b/web/app/components/header/account-setting/members-page/edit-workspace-modal/index.tsx index b81b85b1ac..76f04382bd 100644 --- a/web/app/components/header/account-setting/members-page/edit-workspace-modal/index.tsx +++ b/web/app/components/header/account-setting/members-page/edit-workspace-modal/index.tsx @@ -1,4 +1,5 @@ 'use client' +import { RiCloseLine } from '@remixicon/react' import { noop } from 'es-toolkit/function' import { useState } from 'react' import { useTranslation } from 'react-i18next' @@ -44,7 +45,7 @@ const EditWorkspaceModal = ({
{t('account.editWorkspaceInfo', { ns: 'common' })}
- +
{t('account.workspaceName', { ns: 'common' })}
diff --git a/web/app/components/header/account-setting/members-page/index.tsx b/web/app/components/header/account-setting/members-page/index.tsx index 64ba2bb704..5a8f3aebdb 100644 --- a/web/app/components/header/account-setting/members-page/index.tsx +++ b/web/app/components/header/account-setting/members-page/index.tsx @@ -1,5 +1,6 @@ 'use client' import type { InvitationResult } from '@/models/common' +import { RiPencilLine } from '@remixicon/react' import { useState } from 'react' import { useTranslation } from 'react-i18next' import Avatar from '@/app/components/base/avatar' @@ -68,7 +69,7 @@ const MembersPage = () => { setEditWorkspaceModalVisible(true) }} > - +
diff --git a/web/app/components/header/account-setting/members-page/invite-button.tsx b/web/app/components/header/account-setting/members-page/invite-button.tsx index 53d780ed65..fb5b5cdc5e 100644 --- a/web/app/components/header/account-setting/members-page/invite-button.tsx +++ b/web/app/components/header/account-setting/members-page/invite-button.tsx @@ -1,3 +1,4 @@ +import { RiUserAddLine } from '@remixicon/react' import { useTranslation } from 'react-i18next' import Button from '@/app/components/base/button' import Loading from '@/app/components/base/loading' @@ -25,7 +26,7 @@ const InviteButton = (props: InviteButtonProps) => { } return ( ) diff --git a/web/app/components/header/account-setting/members-page/invite-modal/index.tsx b/web/app/components/header/account-setting/members-page/invite-modal/index.tsx index 0a3435629d..2d8d138af5 100644 --- a/web/app/components/header/account-setting/members-page/invite-modal/index.tsx +++ b/web/app/components/header/account-setting/members-page/invite-modal/index.tsx @@ -1,6 +1,7 @@ 'use client' import type { RoleKey } from './role-selector' import type { InvitationResult } from '@/models/common' +import { RiCloseLine, RiErrorWarningFill } from '@remixicon/react' import { useBoolean } from 'ahooks' import { noop } from 'es-toolkit/function' import { useCallback, useEffect, useState } from 'react' @@ -84,7 +85,7 @@ const InviteModal = ({
{t('members.inviteTeamMember', { ns: 'common' })}
- +
{t('members.inviteTeamMemberTip', { ns: 'common' })}
{!isEmailSetup && ( @@ -93,7 +94,7 @@ const InviteModal = ({
- +
{t('members.emailNotSetup', { ns: 'common' })} diff --git a/web/app/components/header/account-setting/members-page/invite-modal/role-selector.tsx b/web/app/components/header/account-setting/members-page/invite-modal/role-selector.tsx index 2efd5776c5..912fb339a1 100644 --- a/web/app/components/header/account-setting/members-page/invite-modal/role-selector.tsx +++ b/web/app/components/header/account-setting/members-page/invite-modal/role-selector.tsx @@ -1,3 +1,4 @@ +import { RiArrowDownSLine } from '@remixicon/react' import * as React from 'react' import { useState } from 'react' import { useTranslation } from 'react-i18next' @@ -43,7 +44,7 @@ const RoleSelector = ({ value, onChange }: RoleSelectorProps) => { >
{t('members.invitedAsRole', { ns: 'common', role: t(roleI18nKeyMap[value], { ns: 'common' }) })}
- +
diff --git a/web/app/components/header/account-setting/members-page/invited-modal/index.tsx b/web/app/components/header/account-setting/members-page/invited-modal/index.tsx index 0efc5aa509..389db4a42d 100644 --- a/web/app/components/header/account-setting/members-page/invited-modal/index.tsx +++ b/web/app/components/header/account-setting/members-page/invited-modal/index.tsx @@ -1,4 +1,7 @@ import type { InvitationResult } from '@/models/common' +import { XMarkIcon } from '@heroicons/react/24/outline' +import { CheckCircleIcon } from '@heroicons/react/24/solid' +import { RiQuestionLine } from '@remixicon/react' import { noop } from 'es-toolkit/function' import { useMemo } from 'react' import { useTranslation } from 'react-i18next' @@ -35,9 +38,9 @@ const InvitedModal = ({ shadow-xl " > - +
- +
{t('members.invitationSent', { ns: 'common' })}
{!IS_CE_EDITION && ( @@ -71,7 +74,7 @@ const InvitedModal = ({ >
{item.email} - +
diff --git a/web/app/components/header/account-setting/members-page/operation/index.tsx b/web/app/components/header/account-setting/members-page/operation/index.tsx index 22a4585b01..88c8e250ea 100644 --- a/web/app/components/header/account-setting/members-page/operation/index.tsx +++ b/web/app/components/header/account-setting/members-page/operation/index.tsx @@ -1,5 +1,6 @@ 'use client' import type { Member } from '@/models/common' +import { CheckIcon, ChevronDownIcon } from '@heroicons/react/24/outline' import { memo, useMemo, useState } from 'react' import { useTranslation } from 'react-i18next' import { useContext } from 'use-context-selector' @@ -98,7 +99,7 @@ const Operation = ({ setOpen(prev => !prev)}>
{RoleMap[member.role] || RoleMap.normal} - +
@@ -109,7 +110,7 @@ const Operation = ({
handleUpdateMemberRole(role)}> { role === member.role - ? + ? :
}
diff --git a/web/app/components/header/account-setting/members-page/operation/transfer-ownership.tsx b/web/app/components/header/account-setting/members-page/operation/transfer-ownership.tsx index d45a098df3..d7d7943c67 100644 --- a/web/app/components/header/account-setting/members-page/operation/transfer-ownership.tsx +++ b/web/app/components/header/account-setting/members-page/operation/transfer-ownership.tsx @@ -1,6 +1,8 @@ 'use client' import { Menu, MenuButton, MenuItem, MenuItems, Transition } from '@headlessui/react' - +import { + RiArrowDownSLine, +} from '@remixicon/react' import { Fragment } from 'react' import { useTranslation } from 'react-i18next' import Loading from '@/app/components/base/loading' @@ -34,7 +36,7 @@ const TransferOwnership = ({ onOperate }: Props) => { <> {t('members.owner', { ns: 'common' })} - + { className="!w-[420px] !p-6" >
- +
{step === STEP.start && ( <> diff --git a/web/app/components/header/account-setting/members-page/transfer-ownership-modal/member-selector.tsx b/web/app/components/header/account-setting/members-page/transfer-ownership-modal/member-selector.tsx index 0abc504259..87eee1d623 100644 --- a/web/app/components/header/account-setting/members-page/transfer-ownership-modal/member-selector.tsx +++ b/web/app/components/header/account-setting/members-page/transfer-ownership-modal/member-selector.tsx @@ -1,6 +1,8 @@ 'use client' import type { FC } from 'react' - +import { + RiArrowDownSLine, +} from '@remixicon/react' import * as React from 'react' import { useMemo, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -72,7 +74,7 @@ const MemberSelector: FC = ({
{currentValue.email}
)} - +
diff --git a/web/app/components/header/account-setting/model-provider-page/index.tsx b/web/app/components/header/account-setting/model-provider-page/index.tsx index b6804607f8..7606bbc04f 100644 --- a/web/app/components/header/account-setting/model-provider-page/index.tsx +++ b/web/app/components/header/account-setting/model-provider-page/index.tsx @@ -1,7 +1,10 @@ import type { ModelProvider, } from './declarations' - +import { + RiAlertFill, + RiBrainLine, +} from '@remixicon/react' import { useDebounce } from 'ahooks' import { useEffect, useMemo } from 'react' import { useTranslation } from 'react-i18next' @@ -105,7 +108,7 @@ const ModelProviderPage = ({ searchText }: Props) => { {defaultModelNotConfigured &&
} {defaultModelNotConfigured && (
- + {t('modelProvider.notConfigured', { ns: 'common' })}
)} @@ -124,7 +127,7 @@ const ModelProviderPage = ({ searchText }: Props) => { {!filteredConfiguredProviders?.length && (
- +
{t('modelProvider.emptyProviderTitle', { ns: 'common' })}
{t('modelProvider.emptyProviderTip', { ns: 'common' })}
diff --git a/web/app/components/header/account-setting/model-provider-page/install-from-marketplace.tsx b/web/app/components/header/account-setting/model-provider-page/install-from-marketplace.tsx index b73a576263..289146f2d2 100644 --- a/web/app/components/header/account-setting/model-provider-page/install-from-marketplace.tsx +++ b/web/app/components/header/account-setting/model-provider-page/install-from-marketplace.tsx @@ -2,7 +2,10 @@ import type { ModelProvider, } from './declarations' import type { Plugin } from '@/app/components/plugins/types' - +import { + RiArrowDownSLine, + RiArrowRightUpLine, +} from '@remixicon/react' import { useTheme } from 'next-themes' import Link from 'next/link' import { useCallback, useState } from 'react' @@ -45,14 +48,14 @@ const InstallFromMarketplace = ({
setCollapse(!collapse)}> - + {t('modelProvider.installProvider', { ns: 'common' })}
{t('modelProvider.discoverMore', { ns: 'common' })} {t('marketplace.difyMarketplace', { ns: 'plugin' })} - +
diff --git a/web/app/components/header/account-setting/model-provider-page/model-auth/add-credential-in-load-balancing.tsx b/web/app/components/header/account-setting/model-provider-page/model-auth/add-credential-in-load-balancing.tsx index 53ebb51b44..31f3ecda94 100644 --- a/web/app/components/header/account-setting/model-provider-page/model-auth/add-credential-in-load-balancing.tsx +++ b/web/app/components/header/account-setting/model-provider-page/model-auth/add-credential-in-load-balancing.tsx @@ -5,6 +5,7 @@ import type { ModelCredential, ModelProvider, } from '@/app/components/header/account-setting/model-provider-page/declarations' +import { RiAddLine } from '@remixicon/react' import { memo, useCallback, @@ -50,7 +51,7 @@ const AddCredentialInLoadBalancing = ({ open && 'bg-state-base-hover', )} > - + {t('modelProvider.auth.addCredential', { ns: 'common' })}
) diff --git a/web/app/components/header/account-setting/model-provider-page/model-auth/add-custom-model.tsx b/web/app/components/header/account-setting/model-provider-page/model-auth/add-custom-model.tsx index 525ce2c8f3..4025e307f1 100644 --- a/web/app/components/header/account-setting/model-provider-page/model-auth/add-custom-model.tsx +++ b/web/app/components/header/account-setting/model-provider-page/model-auth/add-custom-model.tsx @@ -3,7 +3,10 @@ import type { CustomConfigurationModelFixedFields, ModelProvider, } from '@/app/components/header/account-setting/model-provider-page/declarations' - +import { + RiAddCircleFill, + RiAddLine, +} from '@remixicon/react' import { memo, useCallback, @@ -76,7 +79,7 @@ const AddCustomModel = ({ notAllowCustomCredential && !!noModels && 'cursor-not-allowed opacity-50', )} > - + {t('modelProvider.addModel', { ns: 'common' })} ) @@ -151,7 +154,7 @@ const AddCustomModel = ({ setOpen(false) }} > - + {t('modelProvider.auth.addNewModel', { ns: 'common' })}
) diff --git a/web/app/components/header/account-setting/model-provider-page/model-auth/authorized/credential-item.tsx b/web/app/components/header/account-setting/model-provider-page/model-auth/authorized/credential-item.tsx index 1583f91795..11fb65c3e5 100644 --- a/web/app/components/header/account-setting/model-provider-page/model-auth/authorized/credential-item.tsx +++ b/web/app/components/header/account-setting/model-provider-page/model-auth/authorized/credential-item.tsx @@ -1,5 +1,9 @@ import type { Credential } from '../../declarations' - +import { + RiCheckLine, + RiDeleteBinLine, + RiEqualizer2Line, +} from '@remixicon/react' import { memo, useMemo, @@ -66,7 +70,7 @@ const CredentialItem = ({
{ selectedCredentialId === credential.credential_id && ( - + ) }
@@ -100,7 +104,7 @@ const CredentialItem = ({ onEdit?.(credential) }} > - + ) @@ -117,11 +121,11 @@ const CredentialItem = ({ onDelete?.(credential) }} > - diff --git a/web/app/components/header/account-setting/model-provider-page/model-auth/authorized/index.tsx b/web/app/components/header/account-setting/model-provider-page/model-auth/authorized/index.tsx index a9e9ab5893..e2f859b09d 100644 --- a/web/app/components/header/account-setting/model-provider-page/model-auth/authorized/index.tsx +++ b/web/app/components/header/account-setting/model-provider-page/model-auth/authorized/index.tsx @@ -9,7 +9,9 @@ import type { import type { PortalToFollowElemOptions, } from '@/app/components/base/portal-to-follow-elem' - +import { + RiAddLine, +} from '@remixicon/react' import { Fragment, memo, @@ -218,7 +220,7 @@ const Authorized = ({ )} className="system-xs-medium flex h-[40px] cursor-pointer items-center px-3 text-text-accent-light-mode-only" > - + {t('modelProvider.auth.addModelCredential', { ns: 'common' })}
) diff --git a/web/app/components/header/account-setting/model-provider-page/model-auth/config-model.tsx b/web/app/components/header/account-setting/model-provider-page/model-auth/config-model.tsx index e6fd7c2ccb..7e53869b28 100644 --- a/web/app/components/header/account-setting/model-provider-page/model-auth/config-model.tsx +++ b/web/app/components/header/account-setting/model-provider-page/model-auth/config-model.tsx @@ -1,3 +1,7 @@ +import { + RiEqualizer2Line, + RiScales3Line, +} from '@remixicon/react' import { memo } from 'react' import { useTranslation } from 'react-i18next' import Button from '@/app/components/base/button' @@ -24,7 +28,7 @@ const ConfigModel = ({ className="system-2xs-medium-uppercase relative flex h-[18px] cursor-pointer items-center rounded-[5px] border border-text-warning bg-components-badge-bg-dimm px-1.5 text-text-warning" onClick={onClick} > - + {t('modelProvider.auth.authorizationError', { ns: 'common' })}
@@ -52,7 +56,7 @@ const ConfigModel = ({ { !loadBalancingEnabled && !credentialRemoved && !loadBalancingInvalid && ( <> - + {t('operation.config', { ns: 'common' })} ) @@ -60,7 +64,7 @@ const ConfigModel = ({ { loadBalancingEnabled && !credentialRemoved && !loadBalancingInvalid && ( <> - + {t('modelProvider.auth.configLoadBalancing', { ns: 'common' })} ) diff --git a/web/app/components/header/account-setting/model-provider-page/model-auth/config-provider.tsx b/web/app/components/header/account-setting/model-provider-page/model-auth/config-provider.tsx index 186e6a404a..de9ad0a396 100644 --- a/web/app/components/header/account-setting/model-provider-page/model-auth/config-provider.tsx +++ b/web/app/components/header/account-setting/model-provider-page/model-auth/config-provider.tsx @@ -2,7 +2,9 @@ import type { CustomConfigurationModelFixedFields, ModelProvider, } from '@/app/components/header/account-setting/model-provider-page/declarations' - +import { + RiEqualizer2Line, +} from '@remixicon/react' import { memo, useCallback, @@ -43,7 +45,7 @@ const ConfigProvider = ({ variant={!authorized ? 'secondary-accent' : 'secondary'} title={text} > - + {text} diff --git a/web/app/components/header/account-setting/model-provider-page/model-auth/credential-selector.tsx b/web/app/components/header/account-setting/model-provider-page/model-auth/credential-selector.tsx index 7d4e7aedb4..52513e7aeb 100644 --- a/web/app/components/header/account-setting/model-provider-page/model-auth/credential-selector.tsx +++ b/web/app/components/header/account-setting/model-provider-page/model-auth/credential-selector.tsx @@ -1,5 +1,8 @@ import type { Credential } from '@/app/components/header/account-setting/model-provider-page/declarations' - +import { + RiAddLine, + RiArrowDownSLine, +} from '@remixicon/react' import { memo, useCallback, @@ -71,7 +74,7 @@ const CredentialSelector = ({
{t('modelProvider.auth.selectModelCredential', { ns: 'common' })}
) } - + @@ -98,7 +101,7 @@ const CredentialSelector = ({ className="system-xs-medium flex h-10 cursor-pointer items-center border-t border-t-divider-subtle px-7 text-text-accent-light-mode-only" onClick={handleAddNewCredential} > - + {t('modelProvider.auth.addNewModelCredential', { ns: 'common' })} ) diff --git a/web/app/components/header/account-setting/model-provider-page/model-auth/switch-credential-in-load-balancing.tsx b/web/app/components/header/account-setting/model-provider-page/model-auth/switch-credential-in-load-balancing.tsx index a8294ff741..b32deacab4 100644 --- a/web/app/components/header/account-setting/model-provider-page/model-auth/switch-credential-in-load-balancing.tsx +++ b/web/app/components/header/account-setting/model-provider-page/model-auth/switch-credential-in-load-balancing.tsx @@ -4,6 +4,7 @@ import type { CustomModel, ModelProvider, } from '../declarations' +import { RiArrowDownSLine } from '@remixicon/react' import { memo, useCallback, @@ -83,7 +84,7 @@ const SwitchCredentialInLoadBalancing = ({ Enterprise ) } - + ) if (empty && notAllowCustomCredential) { diff --git a/web/app/components/header/account-setting/model-provider-page/model-modal/index.tsx b/web/app/components/header/account-setting/model-provider-page/model-modal/index.tsx index 1c986e16ff..ab6f23c831 100644 --- a/web/app/components/header/account-setting/model-provider-page/model-modal/index.tsx +++ b/web/app/components/header/account-setting/model-provider-page/model-modal/index.tsx @@ -9,6 +9,7 @@ import type { FormRefObject, FormSchema, } from '@/app/components/base/form/types' +import { RiCloseLine } from '@remixicon/react' import { memo, useCallback, @@ -297,7 +298,7 @@ const ModelModal: FC = ({ className="absolute right-5 top-5 flex h-8 w-8 cursor-pointer items-center justify-center" onClick={onCancel} > - +
{modalTitle} diff --git a/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/agent-model-trigger.tsx b/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/agent-model-trigger.tsx index cdb0054932..b8d8cd1a87 100644 --- a/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/agent-model-trigger.tsx +++ b/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/agent-model-trigger.tsx @@ -3,6 +3,7 @@ import type { ModelItem, ModelProvider, } from '../declarations' +import { RiEqualizer2Line } from '@remixicon/react' import { useMemo, useState } from 'react' import { useTranslation } from 'react-i18next' import Loading from '@/app/components/base/loading' @@ -130,7 +131,7 @@ const AgentModelTrigger: FC = ({ )} {modelProvider && !disabled && !needsConfiguration && (
- +
)} @@ -143,7 +144,7 @@ const AgentModelTrigger: FC = ({
- +
)} diff --git a/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/presets-parameter.tsx b/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/presets-parameter.tsx index ab56efae00..35e15a29f4 100644 --- a/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/presets-parameter.tsx +++ b/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/presets-parameter.tsx @@ -1,4 +1,5 @@ import type { FC } from 'react' +import { RiArrowDownSLine } from '@remixicon/react' import { useCallback } from 'react' import { useTranslation } from 'react-i18next' import Button from '@/app/components/base/button' @@ -31,7 +32,7 @@ const PresetsParameter: FC = ({ className={cn(open && 'bg-state-base-hover')} > {t('modelProvider.loadPresets', { ns: 'common' })} - + ) }, [t]) diff --git a/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/status-indicators.tsx b/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/status-indicators.tsx index 639feec1a0..e9780680e2 100644 --- a/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/status-indicators.tsx +++ b/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/status-indicators.tsx @@ -1,3 +1,4 @@ +import { RiErrorWarningFill } from '@remixicon/react' import Link from 'next/link' import Tooltip from '@/app/components/base/tooltip' import { SwitchPluginVersion } from '@/app/components/workflow/nodes/_base/components/switch-plugin-version' @@ -52,7 +53,7 @@ const StatusIndicators = ({ needsConfiguration, modelProvider, inModelList, disa asChild={false} needsDelay={false} > - + ) : !pluginInfo @@ -66,7 +67,7 @@ const StatusIndicators = ({ needsConfiguration, modelProvider, inModelList, disa )} asChild={false} > - + ) : ( @@ -90,7 +91,7 @@ const StatusIndicators = ({ needsConfiguration, modelProvider, inModelList, disa )} asChild={false} > - + )} diff --git a/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/trigger.tsx b/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/trigger.tsx index 30257932b8..3389f5112e 100644 --- a/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/trigger.tsx +++ b/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/trigger.tsx @@ -4,6 +4,7 @@ import type { ModelItem, ModelProvider, } from '../declarations' +import { RiArrowDownSLine } from '@remixicon/react' import { useTranslation } from 'react-i18next' import { AlertTriangle } from '@/app/components/base/icons/src/vender/line/alertsAndFeedback' import { SlidersH } from '@/app/components/base/icons/src/vender/line/mediaAndDevices' @@ -103,7 +104,7 @@ const Trigger: FC = ({ ) } - {isInWorkflow && ()} + {isInWorkflow && ()} ) } diff --git a/web/app/components/header/account-setting/model-provider-page/model-selector/empty-trigger.tsx b/web/app/components/header/account-setting/model-provider-page/model-selector/empty-trigger.tsx index c50424e12f..4989e9e26c 100644 --- a/web/app/components/header/account-setting/model-provider-page/model-selector/empty-trigger.tsx +++ b/web/app/components/header/account-setting/model-provider-page/model-selector/empty-trigger.tsx @@ -1,4 +1,5 @@ import type { FC } from 'react' +import { RiEqualizer2Line } from '@remixicon/react' import { useTranslation } from 'react-i18next' import { CubeOutline } from '@/app/components/base/icons/src/vender/line/shapes' import { cn } from '@/utils/classnames' @@ -32,7 +33,7 @@ const ModelTrigger: FC = ({
- +
) diff --git a/web/app/components/header/account-setting/model-provider-page/model-selector/feature-icon.tsx b/web/app/components/header/account-setting/model-provider-page/model-selector/feature-icon.tsx index fbd008ec39..8e6e4567ff 100644 --- a/web/app/components/header/account-setting/model-provider-page/model-selector/feature-icon.tsx +++ b/web/app/components/header/account-setting/model-provider-page/model-selector/feature-icon.tsx @@ -1,5 +1,10 @@ import type { FC } from 'react' - +import { + RiFileTextLine, + RiFilmAiLine, + RiImageCircleAiLine, + RiVoiceAiFill, +} from '@remixicon/react' import { useTranslation } from 'react-i18next' import Tooltip from '@/app/components/base/tooltip' import { cn } from '@/utils/classnames' @@ -63,7 +68,7 @@ const FeatureIcon: FC = ({ - + {ModelFeatureTextEnum.vision} ) @@ -80,7 +85,7 @@ const FeatureIcon: FC = ({ className, )} > - + @@ -93,7 +98,7 @@ const FeatureIcon: FC = ({ - + {ModelFeatureTextEnum.document} ) @@ -110,7 +115,7 @@ const FeatureIcon: FC = ({ className, )} > - + @@ -123,7 +128,7 @@ const FeatureIcon: FC = ({ - + {ModelFeatureTextEnum.audio} ) @@ -140,7 +145,7 @@ const FeatureIcon: FC = ({ className, )} > - + @@ -153,7 +158,7 @@ const FeatureIcon: FC = ({ - + {ModelFeatureTextEnum.video} ) @@ -170,7 +175,7 @@ const FeatureIcon: FC = ({ className, )} > - + diff --git a/web/app/components/header/account-setting/model-provider-page/model-selector/model-trigger.tsx b/web/app/components/header/account-setting/model-provider-page/model-selector/model-trigger.tsx index a5b70724fb..b44dbfefb1 100644 --- a/web/app/components/header/account-setting/model-provider-page/model-selector/model-trigger.tsx +++ b/web/app/components/header/account-setting/model-provider-page/model-selector/model-trigger.tsx @@ -3,6 +3,7 @@ import type { Model, ModelItem, } from '../declarations' +import { RiArrowDownSLine } from '@remixicon/react' import { AlertTriangle } from '@/app/components/base/icons/src/vender/line/alertsAndFeedback' import Tooltip from '@/app/components/base/tooltip' import { cn } from '@/utils/classnames' @@ -62,7 +63,9 @@ const ModelTrigger: FC = ({ ) : ( - + ) } diff --git a/web/app/components/header/account-setting/model-provider-page/model-selector/popup.tsx b/web/app/components/header/account-setting/model-provider-page/model-selector/popup.tsx index 00a9f9a370..93446e1a36 100644 --- a/web/app/components/header/account-setting/model-provider-page/model-selector/popup.tsx +++ b/web/app/components/header/account-setting/model-provider-page/model-selector/popup.tsx @@ -4,7 +4,10 @@ import type { Model, ModelItem, } from '../declarations' - +import { + RiArrowRightUpLine, + RiSearchLine, +} from '@remixicon/react' import { useEffect, useMemo, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' import { XCircle } from '@/app/components/base/icons/src/vender/solid/general' @@ -86,10 +89,11 @@ const Popup: FC = ({ ${searchText ? 'border-components-input-border-active bg-components-input-bg-active shadow-xs' : 'border-transparent bg-components-input-bg-normal'} `} > - = ({ }} > {t('model.settingsLink', { ns: 'common' })} - + ) diff --git a/web/app/components/header/account-setting/model-provider-page/provider-added-card/index.tsx b/web/app/components/header/account-setting/model-provider-page/provider-added-card/index.tsx index ef4442887e..0a10b6ab70 100644 --- a/web/app/components/header/account-setting/model-provider-page/provider-added-card/index.tsx +++ b/web/app/components/header/account-setting/model-provider-page/provider-added-card/index.tsx @@ -4,7 +4,11 @@ import type { ModelProvider, } from '../declarations' import type { ModelProviderQuotaGetPaid } from '../utils' - +import { + RiArrowRightSLine, + RiInformation2Fill, + RiLoader2Line, +} from '@remixicon/react' import { useState } from 'react' import { useTranslation } from 'react-i18next' import { @@ -119,7 +123,7 @@ const ProviderAddedCard: FC = ({ ? t('modelProvider.modelsNum', { ns: 'common', num: modelList.length }) : t('modelProvider.showModels', { ns: 'common' }) } - {!loading && } + {!loading && }
= ({ ? t('modelProvider.showModelsNum', { ns: 'common', num: modelList.length }) : t('modelProvider.showModels', { ns: 'common' }) } - {!loading && } + {!loading && } { loading && ( - + ) }
@@ -141,7 +145,7 @@ const ProviderAddedCard: FC = ({ )} {!showModelProvider && notConfigured && (
- + {t('modelProvider.configureTip', { ns: 'common' })}
)} diff --git a/web/app/components/header/account-setting/model-provider-page/provider-added-card/model-list.tsx b/web/app/components/header/account-setting/model-provider-page/provider-added-card/model-list.tsx index ef5197fa43..21c1ca3fd5 100644 --- a/web/app/components/header/account-setting/model-provider-page/provider-added-card/model-list.tsx +++ b/web/app/components/header/account-setting/model-provider-page/provider-added-card/model-list.tsx @@ -4,7 +4,9 @@ import type { ModelItem, ModelProvider, } from '../declarations' - +import { + RiArrowRightSLine, +} from '@remixicon/react' import { useCallback } from 'react' import { useTranslation } from 'react-i18next' import { @@ -55,14 +57,14 @@ const ModelList: FC = ({ {t('modelProvider.modelsNum', { ns: 'common', num: models.length })} - + onCollapse()} > {t('modelProvider.modelsNum', { ns: 'common', num: models.length })} - + { diff --git a/web/app/components/header/account-setting/model-provider-page/provider-added-card/model-load-balancing-configs.tsx b/web/app/components/header/account-setting/model-provider-page/provider-added-card/model-load-balancing-configs.tsx index d5457d53bc..7e53c774f7 100644 --- a/web/app/components/header/account-setting/model-provider-page/provider-added-card/model-load-balancing-configs.tsx +++ b/web/app/components/header/account-setting/model-provider-page/provider-added-card/model-load-balancing-configs.tsx @@ -8,7 +8,9 @@ import type { ModelLoadBalancingConfigEntry, ModelProvider, } from '../declarations' - +import { + RiIndeterminateCircleLine, +} from '@remixicon/react' import { useCallback, useMemo } from 'react' import { useTranslation } from 'react-i18next' import Badge from '@/app/components/base/badge/index' @@ -214,7 +216,7 @@ const ModelLoadBalancingConfigs = ({ className="flex h-8 w-8 cursor-pointer items-center justify-center rounded-lg bg-components-button-secondary-bg text-text-tertiary transition-colors hover:bg-components-button-secondary-bg-hover" onClick={() => updateConfigEntry(index, () => undefined)} > - + diff --git a/web/app/components/header/account-setting/model-provider-page/provider-added-card/priority-selector.tsx b/web/app/components/header/account-setting/model-provider-page/provider-added-card/priority-selector.tsx index ffec099423..a751553fb0 100644 --- a/web/app/components/header/account-setting/model-provider-page/provider-added-card/priority-selector.tsx +++ b/web/app/components/header/account-setting/model-provider-page/provider-added-card/priority-selector.tsx @@ -1,6 +1,9 @@ import type { FC } from 'react' import { Popover, PopoverButton, PopoverPanel, Transition } from '@headlessui/react' - +import { + RiCheckLine, + RiMoreFill, +} from '@remixicon/react' import { Fragment } from 'react' import { useTranslation } from 'react-i18next' import Button from '@/app/components/base/button' @@ -37,7 +40,7 @@ const Selector: FC = ({ open && 'bg-components-button-secondary-bg-hover', )} > - + ) } @@ -59,7 +62,7 @@ const Selector: FC = ({ onClick={() => onSelect(option.key)} >
{option.text}
- {value === option.key && } + {value === option.key && } )) diff --git a/web/app/components/header/account-setting/model-provider-page/system-model-selector/index.tsx b/web/app/components/header/account-setting/model-provider-page/system-model-selector/index.tsx index bf4beed88b..29c71e04fc 100644 --- a/web/app/components/header/account-setting/model-provider-page/system-model-selector/index.tsx +++ b/web/app/components/header/account-setting/model-provider-page/system-model-selector/index.tsx @@ -3,6 +3,7 @@ import type { DefaultModel, DefaultModelResponse, } from '../declarations' +import { RiEqualizer2Line, RiLoader2Line } from '@remixicon/react' import { useState } from 'react' import { useTranslation } from 'react-i18next' import Button from '@/app/components/base/button' @@ -138,8 +139,8 @@ const SystemModel: FC = ({ disabled={isLoading} > {isLoading - ? - : } + ? + : } {t('modelProvider.systemModelSettings', { ns: 'common' })} diff --git a/web/app/components/header/account-setting/plugin-page/index.tsx b/web/app/components/header/account-setting/plugin-page/index.tsx index 7987feef88..beda55f2f2 100644 --- a/web/app/components/header/account-setting/plugin-page/index.tsx +++ b/web/app/components/header/account-setting/plugin-page/index.tsx @@ -1,4 +1,5 @@ import type { PluginProvider } from '@/models/common' +import { LockClosedIcon } from '@heroicons/react/24/solid' import Link from 'next/link' import { useTranslation } from 'react-i18next' import { usePluginProviders } from '@/service/use-common' @@ -18,7 +19,7 @@ const PluginPage = () => { {plugins?.map(plugin => Plugin_MAP[plugin.tool_name](plugin))}
- + {t('provider.encrypted.front', { ns: 'common' })} { (hovered && curApp) - ? - : + ? + : } {t('menus.apps', { ns: 'common' })}
diff --git a/web/app/components/header/app-nav/index.tsx b/web/app/components/header/app-nav/index.tsx index 61ad57189c..737dd96bab 100644 --- a/web/app/components/header/app-nav/index.tsx +++ b/web/app/components/header/app-nav/index.tsx @@ -1,7 +1,10 @@ 'use client' import type { NavItem } from '../nav/nav-selector' - +import { + RiRobot2Fill, + RiRobot2Line, +} from '@remixicon/react' import { flatten } from 'es-toolkit/compat' import { produce } from 'immer' import { useParams } from 'next/navigation' @@ -99,8 +102,8 @@ const AppNav = () => { <>