This commit is contained in:
Joel
2026-03-09 10:14:23 +08:00
1301 changed files with 30844 additions and 12184 deletions

View File

@ -34,7 +34,7 @@ export const ChunkContainer: FC<ChunkContainerProps> = (props) => {
return (
<div className="space-y-2">
<ChunkLabel label={label} characterCount={characterCount} />
<div className="body-md-regular text-text-secondary">
<div className="text-text-secondary body-md-regular">
{children}
</div>
</div>
@ -51,11 +51,11 @@ export const QAPreview: FC<QAPreviewProps> = (props) => {
<div className="flex flex-col gap-y-2">
<div className="flex gap-x-1">
<label className="shrink-0 text-[13px] font-medium leading-[20px] text-text-tertiary">Q</label>
<p className="body-md-regular text-text-secondary">{qa.question}</p>
<p className="text-text-secondary body-md-regular">{qa.question}</p>
</div>
<div className="flex gap-x-1">
<label className="shrink-0 text-[13px] font-medium leading-[20px] text-text-tertiary">A</label>
<p className="body-md-regular text-text-secondary">{qa.answer}</p>
<p className="text-text-secondary body-md-regular">{qa.answer}</p>
</div>
</div>
)

View File

@ -87,7 +87,7 @@ const DocumentPicker: FC<Props> = ({
<FileIcon name={name} extension={extension} size="xl" />
<div className="ml-1 mr-0.5 flex flex-col items-start">
<div className="flex items-center space-x-0.5">
<span className={cn('system-md-semibold text-text-primary')}>
<span className={cn('text-text-primary system-md-semibold')}>
{' '}
{name || '--'}
</span>

View File

@ -56,7 +56,7 @@ const PreviewDocumentPicker: FC<Props> = ({
<FileIcon name={name} extension={extension} size="lg" />
<div className="ml-1 flex flex-col items-start">
<div className="flex items-center space-x-0.5">
<span className={cn('system-md-semibold max-w-[200px] truncate text-text-primary')}>
<span className={cn('max-w-[200px] truncate text-text-primary system-md-semibold')}>
{' '}
{name || '--'}
</span>
@ -67,7 +67,7 @@ const PreviewDocumentPicker: FC<Props> = ({
</PortalToFollowElemTrigger>
<PortalToFollowElemContent className="z-[11]">
<div className="w-[392px] rounded-xl border-[0.5px] border-components-panel-border bg-components-panel-bg-blur p-1 shadow-lg backdrop-blur-[5px]">
{files?.length > 1 && <div className="system-xs-medium-uppercase flex h-8 items-center pl-2 text-text-tertiary">{t('preprocessDocument', { ns: 'dataset', num: files.length })}</div>}
{files?.length > 1 && <div className="flex h-8 items-center pl-2 text-text-tertiary system-xs-medium-uppercase">{t('preprocessDocument', { ns: 'dataset', num: files.length })}</div>}
{files?.length > 0
? (
<DocumentList

View File

@ -27,7 +27,7 @@ const More = ({ count, onClick }: MoreProps) => {
<div className="relative size-8 cursor-pointer p-[0.5px]" onClick={handleClick}>
<div className="relative z-10 size-full rounded-md border-[1.5px] border-components-panel-bg bg-divider-regular">
<div className="flex size-full items-center justify-center">
<span className="system-xs-regular text-text-tertiary">
<span className="text-text-tertiary system-xs-regular">
{`+${formatNumber(count)}`}
</span>
</div>

View File

@ -164,7 +164,7 @@ const ImagePreviewer = ({
>
<RiCloseLine className="size-5" />
</Button>
<span className="system-2xs-medium-uppercase text-text-tertiary">
<span className="text-text-tertiary system-2xs-medium-uppercase">
Esc
</span>
</div>
@ -172,7 +172,7 @@ const ImagePreviewer = ({
<Loading type="app" />
)}
{cachedImages[currentImage.url].status === 'error' && (
<div className="system-sm-regular flex max-w-sm flex-col items-center gap-y-2 text-text-tertiary">
<div className="flex max-w-sm flex-col items-center gap-y-2 text-text-tertiary system-sm-regular">
<span>{`Failed to load image: ${currentImage.url}. Please try again.`}</span>
<Button
variant="secondary"
@ -191,7 +191,7 @@ const ImagePreviewer = ({
src={cachedImages[currentImage.url].blobUrl}
className="max-h-[calc(100%-2.5rem)] max-w-full object-contain shadow-lg ring-8 ring-effects-image-frame backdrop-blur-[5px]"
/>
<div className="system-sm-regular flex shrink-0 gap-x-2 pb-1 pt-3 text-text-tertiary">
<div className="flex shrink-0 gap-x-2 pb-1 pt-3 text-text-tertiary system-sm-regular">
<span>{currentImage.name}</span>
<span>·</span>
<span>{`${cachedImages[currentImage.url].width} × ${cachedImages[currentImage.url].height}`}</span>

View File

@ -36,7 +36,7 @@ const ImageUploader = () => {
dragging && 'border-components-dropzone-border-accent bg-components-dropzone-bg-accent',
)}
>
<div className="system-sm-medium flex items-center justify-center gap-x-2 text-text-secondary">
<div className="flex items-center justify-center gap-x-2 text-text-secondary system-sm-medium">
<RiUploadCloud2Line className="size-5 text-text-tertiary" />
<div>
<span>{t('imageUploader.button', { ns: 'dataset' })}</span>

View File

@ -48,7 +48,7 @@ const ImageUploader = () => {
<RiImageAddLine className="size-4 text-text-tertiary" />
</div>
{files.length === 0 && (
<span className="system-sm-regular text-text-quaternary group-hover:text-text-tertiary">
<span className="text-text-quaternary system-sm-regular group-hover:text-text-tertiary">
{t('imageUploader.tip', {
ns: 'datasetHitTesting',
size: fileUploadConfig.imageFileSizeLimit,

View File

@ -127,7 +127,7 @@ const RetrievalParamConfig: FC<Props> = ({
/>
)}
<div className="flex items-center">
<span className="system-sm-semibold mr-0.5 text-text-secondary">{t('modelProvider.rerankModel.key', { ns: 'common' })}</span>
<span className="mr-0.5 text-text-secondary system-sm-semibold">{t('modelProvider.rerankModel.key', { ns: 'common' })}</span>
<Tooltip
popupContent={
<div className="w-[200px]">{t('modelProvider.rerankModel.tip', { ns: 'common' })}</div>
@ -157,7 +157,7 @@ const RetrievalParamConfig: FC<Props> = ({
<div className="p-1">
<AlertTriangle className="size-4 text-text-warning-secondary" />
</div>
<span className="system-xs-medium text-text-primary">
<span className="text-text-primary system-xs-medium">
{t('form.retrievalSetting.multiModalTip', { ns: 'datasetSettings' })}
</span>
</div>
@ -281,7 +281,7 @@ const RetrievalParamConfig: FC<Props> = ({
<div className="p-1">
<AlertTriangle className="size-4 text-text-warning-secondary" />
</div>
<span className="system-xs-medium text-text-primary">
<span className="text-text-primary system-xs-medium">
{t('form.retrievalSetting.multiModalTip', { ns: 'datasetSettings' })}
</span>
</div>

View File

@ -4,7 +4,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'
import Uploader from '../uploader'
const mockNotify = vi.fn()
vi.mock('@/app/components/base/toast', () => ({
vi.mock('@/app/components/base/toast/context', () => ({
ToastContext: {
Provider: ({ children }: { children: React.ReactNode }) => children,
Consumer: ({ children }: { children: (value: { notify: typeof mockNotify }) => React.ReactNode }) => children({ notify: mockNotify }),

View File

@ -26,8 +26,8 @@ const DSLConfirmModal = ({
className="w-[480px]"
>
<div className="flex flex-col items-start gap-2 self-stretch pb-4">
<div className="title-2xl-semi-bold text-text-primary">{t('newApp.appCreateDSLErrorTitle', { ns: 'app' })}</div>
<div className="system-md-regular flex grow flex-col text-text-secondary">
<div className="text-text-primary title-2xl-semi-bold">{t('newApp.appCreateDSLErrorTitle', { ns: 'app' })}</div>
<div className="flex grow flex-col text-text-secondary system-md-regular">
<div>{t('newApp.appCreateDSLErrorPart1', { ns: 'app' })}</div>
<div>{t('newApp.appCreateDSLErrorPart2', { ns: 'app' })}</div>
<br />

View File

@ -12,7 +12,7 @@ const Header = ({
const { t } = useTranslation()
return (
<div className="title-2xl-semi-bold relative flex items-center justify-between pb-3 pl-6 pr-14 pt-6 text-text-primary">
<div className="relative flex items-center justify-between pb-3 pl-6 pr-14 pt-6 text-text-primary title-2xl-semi-bold">
{t('importFromDSL', { ns: 'app' })}
<div
className="absolute right-5 top-5 flex size-8 cursor-pointer items-center"

View File

@ -4,7 +4,7 @@ import { useRouter } from 'next/navigation'
import { useCallback, useMemo, useRef, useState } from 'react'
import { useTranslation } from 'react-i18next'
import { useContext } from 'use-context-selector'
import { ToastContext } from '@/app/components/base/toast'
import { ToastContext } from '@/app/components/base/toast/context'
import { usePluginDependencies } from '@/app/components/workflow/plugin-dependency/hooks'
import {
DSLImportMode,

View File

@ -78,7 +78,7 @@ const CreateFromDSLModal = ({
)}
{currentTab === CreateFromDSLModalTab.FROM_URL && (
<div>
<div className="system-md-semibold leading6 mb-1 text-text-secondary">
<div className="leading6 mb-1 text-text-secondary system-md-semibold">
DSL URL
</div>
<Input

View File

@ -26,7 +26,7 @@ const Tab = ({
]
return (
<div className="system-md-semibold flex h-9 items-center gap-x-6 border-b border-divider-subtle px-6 text-text-tertiary">
<div className="flex h-9 items-center gap-x-6 border-b border-divider-subtle px-6 text-text-tertiary system-md-semibold">
{
tabs.map(tab => (
<Item

View File

@ -15,7 +15,7 @@ const Item = ({
return (
<div
className={cn(
'system-md-semibold relative flex h-full cursor-pointer items-center text-text-tertiary',
'relative flex h-full cursor-pointer items-center text-text-tertiary system-md-semibold',
isActive && 'text-text-primary',
)}
onClick={onClick}

View File

@ -10,7 +10,7 @@ import { useEffect, useRef, useState } from 'react'
import { useTranslation } from 'react-i18next'
import { useContext } from 'use-context-selector'
import ActionButton from '@/app/components/base/action-button'
import { ToastContext } from '@/app/components/base/toast'
import { ToastContext } from '@/app/components/base/toast/context'
import { cn } from '@/utils/classnames'
import { formatFileSize } from '@/utils/format'

View File

@ -43,7 +43,7 @@ const Footer = () => {
<Divider type="horizontal" className="my-0 w-8" />
<button
type="button"
className="system-md-medium flex items-center gap-x-3 text-text-accent"
className="flex items-center gap-x-3 text-text-accent system-md-medium"
onClick={openImportFromDSL}
>
<RiFileUploadLine className="size-5" />

View File

@ -8,7 +8,7 @@ const Header = () => {
const { t } = useTranslation()
return (
<div className="system-md-semibold relative flex px-16 pb-2 pt-5 text-text-primary">
<div className="relative flex px-16 pb-2 pt-5 text-text-primary system-md-semibold">
<span>{t('creation.backToKnowledge', { ns: 'datasetPipeline' })}</span>
<Link
className="absolute bottom-0 left-5"
@ -19,7 +19,7 @@ const Header = () => {
variant="secondary-accent"
className="size-9 rounded-full p-0"
>
<RiArrowLeftLine className="size-5 " />
<RiArrowLeftLine className="size-5" />
</Button>
</Link>
</div>

View File

@ -49,11 +49,11 @@ const CreateCard = () => {
<div className="flex size-10 shrink-0 items-center justify-center rounded-[10px] border border-dashed border-divider-regular bg-background-section group-hover:border-state-accent-hover-alt group-hover:bg-state-accent-hover">
<RiAddCircleLine className="size-5 text-text-quaternary group-hover:text-text-accent" />
</div>
<div className="system-md-semibold truncate text-text-primary">
<div className="truncate text-text-primary system-md-semibold">
{t('creation.createFromScratch.title', { ns: 'datasetPipeline' })}
</div>
</div>
<p className="system-xs-regular line-clamp-3 px-4 py-1 text-text-tertiary">
<p className="line-clamp-3 px-4 py-1 text-text-tertiary system-xs-regular">
{t('creation.createFromScratch.description', { ns: 'datasetPipeline' })}
</p>
</div>

View File

@ -12,7 +12,7 @@ const CustomizedList = () => {
return (
<>
<div className="system-sm-semibold-uppercase pt-2 text-text-tertiary">{t('templates.customized', { ns: 'datasetPipeline' })}</div>
<div className="pt-2 text-text-tertiary system-sm-semibold-uppercase">{t('templates.customized', { ns: 'datasetPipeline' })}</div>
<div className="grid grid-cols-1 gap-3 py-2 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4">
{list.map((pipeline, index) => (
<TemplateCard

View File

@ -38,18 +38,18 @@ const Content = ({
</div>
<div className="flex grow flex-col gap-y-1 overflow-hidden py-px">
<div
className="system-md-semibold truncate text-text-secondary"
className="truncate text-text-secondary system-md-semibold"
title={name}
>
{name}
</div>
<div className="system-2xs-medium-uppercase text-text-tertiary">
<div className="text-text-tertiary system-2xs-medium-uppercase">
{t(`chunkingMode.${DOC_FORM_TEXT[chunkStructure]}`, { ns: 'dataset' })}
</div>
</div>
</div>
<p
className="system-xs-regular line-clamp-3 grow px-4 py-1 text-text-tertiary"
className="line-clamp-3 grow px-4 py-1 text-text-tertiary system-xs-regular"
title={description}
>
{description}

View File

@ -50,13 +50,13 @@ const ChunkStructureCard = ({
</div>
<div className="flex grow flex-col gap-y-0.5 py-px">
<div className="flex items-center gap-x-1">
<span className="system-sm-medium text-text-secondary">
<span className="text-text-secondary system-sm-medium">
{title}
</span>
</div>
{
description && (
<div className="system-xs-regular text-text-tertiary">
<div className="text-text-tertiary system-xs-regular">
{description}
</div>
)

View File

@ -75,14 +75,14 @@ const Details = ({
/>
<div className="flex grow flex-col gap-y-1 overflow-hidden py-px">
<div
className="system-md-semibold truncate text-text-secondary"
className="truncate text-text-secondary system-md-semibold"
title={pipelineTemplateInfo.name}
>
{pipelineTemplateInfo.name}
</div>
{pipelineTemplateInfo.created_by && (
<div
className="system-2xs-medium-uppercase truncate text-text-tertiary"
className="truncate text-text-tertiary system-2xs-medium-uppercase"
title={pipelineTemplateInfo.created_by}
>
{t('details.createdBy', {
@ -93,7 +93,7 @@ const Details = ({
)}
</div>
</div>
<p className="system-sm-regular px-4 pb-2 pt-1 text-text-secondary">
<p className="px-4 pb-2 pt-1 text-text-secondary system-sm-regular">
{pipelineTemplateInfo.description}
</p>
<div className="p-3">
@ -108,7 +108,7 @@ const Details = ({
</div>
<div className="flex flex-col gap-y-1 px-4 py-2">
<div className="flex h-6 items-center gap-x-0.5">
<span className="system-sm-semibold-uppercase text-text-secondary">
<span className="text-text-secondary system-sm-semibold-uppercase">
{t('details.structure', { ns: 'datasetPipeline' })}
</span>
<Tooltip

View File

@ -96,7 +96,7 @@ const EditPipelineInfo = ({
<div className="relative flex flex-col">
{/* Header */}
<div className="pb-3 pl-6 pr-14 pt-6">
<span className="title-2xl-semi-bold text-text-primary">
<span className="text-text-primary title-2xl-semi-bold">
{t('editPipelineInfo', { ns: 'datasetPipeline' })}
</span>
</div>
@ -111,7 +111,7 @@ const EditPipelineInfo = ({
<div className="flex flex-col gap-y-5 px-6 py-3">
<div className="flex items-end gap-x-3 self-stretch">
<div className="flex grow flex-col gap-y-1 pb-1">
<label className="system-sm-medium flex h-6 items-center text-text-secondary">
<label className="flex h-6 items-center text-text-secondary system-sm-medium">
{t('pipelineNameAndIcon', { ns: 'datasetPipeline' })}
</label>
<Input
@ -132,7 +132,7 @@ const EditPipelineInfo = ({
/>
</div>
<div className="flex flex-col gap-y-1">
<label className="system-sm-medium flex h-6 items-center text-text-secondary">
<label className="flex h-6 items-center text-text-secondary system-sm-medium">
{t('knowledgeDescription', { ns: 'datasetPipeline' })}
</label>
<Textarea

View File

@ -40,7 +40,7 @@ const Operations = ({
className="flex cursor-pointer items-center gap-x-1 rounded-lg px-2 py-1.5 hover:bg-state-base-hover"
onClick={onClickEdit}
>
<span className="system-md-regular px-1 text-text-secondary">
<span className="px-1 text-text-secondary system-md-regular">
{t('operations.editInfo', { ns: 'datasetPipeline' })}
</span>
</div>
@ -48,7 +48,7 @@ const Operations = ({
className="flex cursor-pointer items-center gap-x-1 rounded-lg px-2 py-1.5 hover:bg-state-base-hover"
onClick={onClickExport}
>
<span className="system-md-regular px-1 text-text-secondary">
<span className="px-1 text-text-secondary system-md-regular">
{t('operations.exportPipeline', { ns: 'datasetPipeline' })}
</span>
</div>
@ -59,7 +59,7 @@ const Operations = ({
className="group flex cursor-pointer items-center gap-x-1 rounded-lg px-2 py-1.5 hover:bg-state-destructive-hover"
onClick={onClickDelete}
>
<span className="system-md-regular px-1 text-text-secondary group-hover:text-text-destructive">
<span className="px-1 text-text-secondary system-md-regular group-hover:text-text-destructive">
{t('operation.delete', { ns: 'common' })}
</span>
</div>

View File

@ -39,7 +39,7 @@ const StatusHeader: FC<{ isEmbedding: boolean, isCompleted: boolean }> = ({
const { t } = useTranslation()
return (
<div className="system-md-semibold-uppercase flex items-center gap-x-1 text-text-secondary">
<div className="flex items-center gap-x-1 text-text-secondary system-md-semibold-uppercase">
{isEmbedding && (
<>
<RiLoader2Fill className="size-4 animate-spin" />

View File

@ -103,7 +103,7 @@ const IndexingProgressItem: FC<IndexingProgressItemProps> = ({
notionIcon={notionIcon}
/>
<div className="flex w-0 grow items-center gap-1" title={name}>
<div className="system-xs-medium truncate text-text-secondary">
<div className="truncate text-text-secondary system-xs-medium">
{name}
</div>
{enableBilling && <PriorityLabel className="ml-0" />}

View File

@ -8,7 +8,7 @@ import { trackEvent } from '@/app/components/base/amplitude'
import Button from '@/app/components/base/button'
import Input from '@/app/components/base/input'
import Modal from '@/app/components/base/modal'
import { ToastContext } from '@/app/components/base/toast'
import { ToastContext } from '@/app/components/base/toast/context'
import { createEmptyDataset } from '@/service/datasets'
import { useInvalidDatasetList } from '@/service/knowledge/use-dataset'

View File

@ -2,7 +2,7 @@ import type { ReactNode } from 'react'
import type { CustomFile, FileItem } from '@/models/datasets'
import { act, render, renderHook, waitFor } from '@testing-library/react'
import { beforeEach, describe, expect, it, vi } from 'vitest'
import { ToastContext } from '@/app/components/base/toast'
import { ToastContext } from '@/app/components/base/toast/context'
import { PROGRESS_COMPLETE, PROGRESS_ERROR, PROGRESS_NOT_STARTED } from '../../constants'
// Import after mocks

View File

@ -5,7 +5,7 @@ import { useCallback, useEffect, useMemo, useRef, useState } from 'react'
import { useTranslation } from 'react-i18next'
import { useContext } from 'use-context-selector'
import { getFileUploadErrorMessage } from '@/app/components/base/file-uploader/utils'
import { ToastContext } from '@/app/components/base/toast'
import { ToastContext } from '@/app/components/base/toast/context'
import { IS_CE_EDITION } from '@/config'
import { useLocale } from '@/context/i18n'
import { LanguagesSupported } from '@/i18n-config/language'

View File

@ -165,7 +165,7 @@ const StepOne = ({
<div className={cn(s.form)}>
{shouldShowDataSourceTypeList && (
<>
<div className={cn(s.stepHeader, 'system-md-semibold text-text-secondary')}>
<div className={cn(s.stepHeader, 'text-text-secondary system-md-semibold')}>
{t('steps.one', { ns: 'datasetCreation' })}
</div>
<DataSourceTypeSelector

View File

@ -15,10 +15,10 @@ const UpgradeCard: FC = () => {
}, [setShowPricingModal])
return (
<div className="flex items-center justify-between rounded-xl border-[0.5px] border-components-panel-border-subtle bg-components-panel-on-panel-item-bg py-3 pl-4 pr-3.5 shadow-xs backdrop-blur-[5px] ">
<div className="flex items-center justify-between rounded-xl border-[0.5px] border-components-panel-border-subtle bg-components-panel-on-panel-item-bg py-3 pl-4 pr-3.5 shadow-xs backdrop-blur-[5px]">
<div>
<div className="title-md-semi-bold bg-[linear-gradient(92deg,_var(--components-input-border-active-prompt-1,_#0BA5EC)_0%,_var(--components-input-border-active-prompt-2,_#155AEF)_99.21%)] bg-clip-text text-transparent">{t('upgrade.uploadMultipleFiles.title', { ns: 'billing' })}</div>
<div className="system-xs-regular text-text-tertiary">{t('upgrade.uploadMultipleFiles.description', { ns: 'billing' })}</div>
<div className="bg-[linear-gradient(92deg,_var(--components-input-border-active-prompt-1,_#0BA5EC)_0%,_var(--components-input-border-active-prompt-2,_#155AEF)_99.21%)] bg-clip-text text-transparent title-md-semi-bold">{t('upgrade.uploadMultipleFiles.title', { ns: 'billing' })}</div>
<div className="text-text-tertiary system-xs-regular">{t('upgrade.uploadMultipleFiles.description', { ns: 'billing' })}</div>
</div>
<UpgradeBtn
size="custom"

View File

@ -39,8 +39,8 @@ const StepThree = ({ datasetId, datasetName, indexingType, creationCache, retrie
{!datasetId && (
<>
<div className="flex flex-col gap-y-1 pb-3">
<div className="title-2xl-semi-bold text-text-primary">{t('stepThree.creationTitle', { ns: 'datasetCreation' })}</div>
<div className="system-sm-regular text-text-tertiary">{t('stepThree.creationContent', { ns: 'datasetCreation' })}</div>
<div className="text-text-primary title-2xl-semi-bold">{t('stepThree.creationTitle', { ns: 'datasetCreation' })}</div>
<div className="text-text-tertiary system-sm-regular">{t('stepThree.creationContent', { ns: 'datasetCreation' })}</div>
</div>
<div className="flex items-center gap-x-4">
<AppIcon
@ -52,10 +52,10 @@ const StepThree = ({ datasetId, datasetName, indexingType, creationCache, retrie
className="shrink-0"
/>
<div className="flex grow flex-col gap-y-1">
<div className="system-sm-semibold flex h-6 items-center text-text-secondary">
<div className="flex h-6 items-center text-text-secondary system-sm-semibold">
{t('stepThree.label', { ns: 'datasetCreation' })}
</div>
<div className="system-sm-regular w-full truncate rounded-lg bg-components-input-bg-normal p-2 text-components-input-text-filled">
<div className="w-full truncate rounded-lg bg-components-input-bg-normal p-2 text-components-input-text-filled system-sm-regular">
<span className="px-1">{datasetName || creationCache?.dataset?.name}</span>
</div>
</div>
@ -65,8 +65,8 @@ const StepThree = ({ datasetId, datasetName, indexingType, creationCache, retrie
)}
{datasetId && (
<div className="flex flex-col gap-y-1 pb-3">
<div className="title-2xl-semi-bold text-text-primary">{t('stepThree.additionTitle', { ns: 'datasetCreation' })}</div>
<div className="system-sm-regular text-text-tertiary">{`${t('stepThree.additionP1', { ns: 'datasetCreation' })} ${datasetName || creationCache?.dataset?.name} ${t('stepThree.additionP2', { ns: 'datasetCreation' })}`}</div>
<div className="text-text-primary title-2xl-semi-bold">{t('stepThree.additionTitle', { ns: 'datasetCreation' })}</div>
<div className="text-text-tertiary system-sm-regular">{`${t('stepThree.additionP1', { ns: 'datasetCreation' })} ${datasetName || creationCache?.dataset?.name} ${t('stepThree.additionP2', { ns: 'datasetCreation' })}`}</div>
</div>
)}
<EmbeddingProcess
@ -90,7 +90,7 @@ const StepThree = ({ datasetId, datasetName, indexingType, creationCache, retrie
href={docLink('/use-dify/knowledge/integrate-knowledge-within-application')}
target="_blank"
rel="noreferrer noopener"
className="system-sm-regular text-text-accent"
className="text-text-accent system-sm-regular"
>
{t('addDocuments.stepThree.learnMore', { ns: 'datasetPipeline' })}
</a>

View File

@ -26,7 +26,7 @@ type TextLabelProps = {
}
const TextLabel: FC<TextLabelProps> = ({ children }) => {
return <label className="system-sm-semibold text-text-secondary">{children}</label>
return <label className="text-text-secondary system-sm-semibold">{children}</label>
}
type GeneralChunkingOptionsProps = {
@ -148,7 +148,7 @@ export const GeneralChunkingOptions: FC<GeneralChunkingOptionsProps> = ({
onClick={() => onRuleToggle(rule.id)}
>
<Checkbox checked={rule.enabled} />
<label className="system-sm-regular ml-2 cursor-pointer text-text-secondary">
<label className="ml-2 cursor-pointer text-text-secondary system-sm-regular">
{getRuleName(rule.id)}
</label>
</div>
@ -183,7 +183,7 @@ export const GeneralChunkingOptions: FC<GeneralChunkingOptionsProps> = ({
checked={currentDocForm === ChunkingMode.qa}
disabled={hasCurrentDatasetDocForm}
/>
<label className="system-sm-regular ml-2 cursor-pointer text-text-secondary">
<label className="ml-2 cursor-pointer text-text-secondary system-sm-regular">
{t('stepTwo.useQALanguage', { ns: 'datasetCreation' })}
</label>
</div>
@ -202,7 +202,7 @@ export const GeneralChunkingOptions: FC<GeneralChunkingOptionsProps> = ({
className="mt-2 flex h-10 items-center gap-2 rounded-xl border border-components-panel-border px-3 text-xs shadow-xs backdrop-blur-[5px]"
>
<RiAlertFill className="size-4 text-text-warning-secondary" />
<span className="system-xs-medium text-text-primary">
<span className="text-text-primary system-xs-medium">
{t('stepTwo.QATip', { ns: 'datasetCreation' })}
</span>
</div>

View File

@ -70,7 +70,7 @@ export const IndexingModeSection: FC<IndexingModeSectionProps> = ({
return (
<>
{/* Index Mode */}
<div className="system-md-semibold mb-1 text-text-secondary">
<div className="mb-1 text-text-secondary system-md-semibold">
{t('stepTwo.indexMode', { ns: 'datasetCreation' })}
</div>
<div className="flex items-center gap-2">
@ -160,7 +160,7 @@ export const IndexingModeSection: FC<IndexingModeSectionProps> = ({
<div className="p-1">
<AlertTriangle className="size-4 text-text-warning-secondary" />
</div>
<span className="system-xs-medium text-text-primary">
<span className="text-text-primary system-xs-medium">
{t('stepTwo.highQualityTip', { ns: 'datasetCreation' })}
</span>
</div>
@ -168,7 +168,7 @@ export const IndexingModeSection: FC<IndexingModeSectionProps> = ({
{/* Economical index setting tip */}
{hasSetIndexType && indexType === IndexingType.ECONOMICAL && (
<div className="system-xs-medium mt-2 text-text-tertiary">
<div className="mt-2 text-text-tertiary system-xs-medium">
{t('stepTwo.indexSettingTip', { ns: 'datasetCreation' })}
<Link className="text-text-accent" href={`/datasets/${datasetId}/settings`}>
{t('stepTwo.datasetSettingLink', { ns: 'datasetCreation' })}
@ -179,7 +179,7 @@ export const IndexingModeSection: FC<IndexingModeSectionProps> = ({
{/* Embedding model */}
{indexType === IndexingType.QUALIFIED && (
<div className="mt-5">
<div className={cn('system-md-semibold mb-1 text-text-secondary', datasetId && 'flex items-center justify-between')}>
<div className={cn('mb-1 text-text-secondary system-md-semibold', datasetId && 'flex items-center justify-between')}>
{t('form.embeddingModel', { ns: 'datasetSettings' })}
</div>
<ModelSelector
@ -190,7 +190,7 @@ export const IndexingModeSection: FC<IndexingModeSectionProps> = ({
onSelect={onEmbeddingModelChange}
/>
{isModelAndRetrievalConfigDisabled && (
<div className="system-xs-medium mt-2 text-text-tertiary">
<div className="mt-2 text-text-tertiary system-xs-medium">
{t('stepTwo.indexSettingTip', { ns: 'datasetCreation' })}
<Link className="text-text-accent" href={`/datasets/${datasetId}/settings`}>
{t('stepTwo.datasetSettingLink', { ns: 'datasetCreation' })}
@ -207,10 +207,10 @@ export const IndexingModeSection: FC<IndexingModeSectionProps> = ({
{!isModelAndRetrievalConfigDisabled
? (
<div className="mb-1">
<div className="system-md-semibold mb-0.5 text-text-secondary">
<div className="mb-0.5 text-text-secondary system-md-semibold">
{t('form.retrievalSetting.title', { ns: 'datasetSettings' })}
</div>
<div className="body-xs-regular text-text-tertiary">
<div className="text-text-tertiary body-xs-regular">
<a
target="_blank"
rel="noopener noreferrer"
@ -224,7 +224,7 @@ export const IndexingModeSection: FC<IndexingModeSectionProps> = ({
</div>
)
: (
<div className={cn('system-md-semibold mb-0.5 text-text-secondary', 'flex items-center justify-between')}>
<div className={cn('mb-0.5 text-text-secondary system-md-semibold', 'flex items-center justify-between')}>
<div>{t('form.retrievalSetting.title', { ns: 'datasetSettings' })}</div>
</div>
)}

View File

@ -25,7 +25,7 @@ export const DelimiterInput: FC<InputProps & { tooltip?: string }> = (props) =>
return (
<FormField label={(
<div className="mb-1 flex items-center">
<span className="system-sm-semibold mr-0.5">{t('stepTwo.separator', { ns: 'datasetCreation' })}</span>
<span className="mr-0.5 system-sm-semibold">{t('stepTwo.separator', { ns: 'datasetCreation' })}</span>
<Tooltip
popupContent={(
<div className="max-w-[200px]">
@ -52,7 +52,7 @@ export const MaxLengthInput: FC<InputNumberProps> = (props) => {
const { t } = useTranslation()
return (
<FormField label={(
<div className="system-sm-semibold mb-1">
<div className="mb-1 system-sm-semibold">
{t('stepTwo.maxLength', { ns: 'datasetCreation' })}
</div>
)}

View File

@ -34,8 +34,8 @@ export const OptionCardHeader: FC<OptionCardHeaderProps> = (props) => {
className={cn('absolute -bottom-1.5 left-4 text-transparent', isActive && 'text-components-panel-bg')}
/>
<div className="flex-1 space-y-0.5 py-3 pr-4">
<div className="system-md-semibold text-text-secondary">{title}</div>
<div className="system-xs-regular text-text-tertiary">{description}</div>
<div className="text-text-secondary system-md-semibold">{title}</div>
<div className="text-text-tertiary system-xs-regular">{description}</div>
</div>
</div>
)

View File

@ -26,7 +26,7 @@ type TextLabelProps = {
}
const TextLabel: FC<TextLabelProps> = ({ children }) => {
return <label className="system-sm-semibold text-text-secondary">{children}</label>
return <label className="text-text-secondary system-sm-semibold">{children}</label>
}
type ParentChildOptionsProps = {
@ -186,7 +186,7 @@ export const ParentChildOptions: FC<ParentChildOptionsProps> = ({
onClick={() => onRuleToggle(rule.id)}
>
<Checkbox checked={rule.enabled} />
<label className="system-sm-regular ml-2 cursor-pointer text-text-secondary">
<label className="ml-2 cursor-pointer text-text-secondary system-sm-regular">
{getRuleName(rule.id)}
</label>
</div>

View File

@ -197,7 +197,7 @@ const StepTwo: FC<StepTwoProps> = ({
return (
<div className="flex h-full w-full">
<div className={cn('relative h-full w-1/2 overflow-y-auto py-6', isMobile ? 'px-4' : 'px-12')}>
<div className="system-md-semibold mb-1 text-text-secondary">{t('stepTwo.segmentation', { ns: 'datasetCreation' })}</div>
<div className="mb-1 text-text-secondary system-md-semibold">{t('stepTwo.segmentation', { ns: 'datasetCreation' })}</div>
{showGeneralOption && (
<GeneralChunkingOptions
segmentIdentifier={segmentation.segmentIdentifier}

View File

@ -31,7 +31,7 @@ const LanguageSelect: FC<ILanguageSelectProps> = ({
className="inline-flex w-full cursor-pointer items-center justify-between rounded-lg px-3 py-2 hover:bg-state-base-hover"
onClick={() => onSelect(prompt_name)}
>
<span className="system-sm-medium text-text-secondary">{prompt_name}</span>
<span className="text-text-secondary system-sm-medium">{prompt_name}</span>
{(currentLanguage === prompt_name) && <RiCheckLine className="size-4 text-text-accent" />}
</div>
))}
@ -40,7 +40,7 @@ const LanguageSelect: FC<ILanguageSelectProps> = ({
btnElement={(
<div className={cn('inline-flex items-center gap-x-[1px]', disabled && 'cursor-not-allowed')}>
<span className={cn(
'system-xs-semibold px-[3px] text-components-button-tertiary-text',
'px-[3px] text-components-button-tertiary-text system-xs-semibold',
disabled ? 'text-components-button-tertiary-text-disabled' : '',
)}
>

View File

@ -23,7 +23,7 @@ export const StepperStep: FC<StepperStepProps> = (props) => {
? 'w-5 border border-text-quaternary'
: 'w-5 border border-divider-deep')}
>
<div className={cn('system-2xs-semibold-uppercase text-center', isActive
<div className={cn('text-center system-2xs-semibold-uppercase', isActive
? 'text-text-primary-on-surface'
: !isDisabled
? 'text-text-tertiary'
@ -33,7 +33,7 @@ export const StepperStep: FC<StepperStepProps> = (props) => {
</div>
</div>
<div className={cn('system-xs-medium-uppercase', isActive
? 'system-xs-semibold-uppercase text-text-accent'
? 'text-text-accent system-xs-semibold-uppercase'
: !isDisabled
? 'text-text-tertiary'
: 'text-text-quaternary')}

View File

@ -32,7 +32,7 @@ export const TopBar: FC<TopBarProps> = (props) => {
<div className="p-2">
<RiArrowLeftLine className="size-4 text-text-primary" />
</div>
<p className="system-sm-semibold-uppercase text-text-primary">
<p className="text-text-primary system-sm-semibold-uppercase">
{t('steps.header.fallbackRoute', { ns: 'datasetCreation' })}
</p>
</Link>

View File

@ -19,10 +19,10 @@ const ErrorMessage: FC<Props> = ({
<div className={cn(className, 'border-t border-divider-subtle bg-dataset-warning-message-bg px-4 py-2 opacity-40')}>
<div className="flex h-5 items-center">
<AlertTriangle className="mr-2 h-4 w-4 text-text-warning-secondary" />
<div className="system-md-medium text-text-warning">{title}</div>
<div className="text-text-warning system-md-medium">{title}</div>
</div>
{errorMsg && (
<div className="system-xs-regular mt-1 pl-6 text-text-secondary">{errorMsg}</div>
<div className="mt-1 pl-6 text-text-secondary system-xs-regular">{errorMsg}</div>
)}
</div>
)

View File

@ -47,7 +47,7 @@ const Header = ({
</Button>
</div>
<a
className="system-xs-medium flex items-center gap-x-1 overflow-hidden text-text-accent"
className="flex items-center gap-x-1 overflow-hidden text-text-accent system-xs-medium"
href={docLink}
target="_blank"
rel="noopener noreferrer"

View File

@ -51,9 +51,9 @@ const Input: FC<Props> = ({
{...otherOption}
value={value}
onChange={handleChange}
className="system-xs-regular focus:bg-components-inout-border-active flex h-8 w-full rounded-lg border border-transparent
bg-components-input-bg-normal p-2 text-components-input-text-filled
caret-[#295eff] placeholder:text-components-input-text-placeholder hover:border
className="focus:bg-components-inout-border-active flex h-8 w-full rounded-lg border border-transparent bg-components-input-bg-normal
p-2 text-components-input-text-filled caret-[#295eff]
system-xs-regular placeholder:text-components-input-text-placeholder hover:border
hover:border-components-input-border-hover hover:bg-components-input-bg-hover focus:border focus:border-components-input-border-active
focus:shadow-xs focus:shadow-shadow-shadow-3
focus-visible:outline-none"

View File

@ -32,7 +32,7 @@ const Options: FC<Props> = ({
}
}, [payload, onChange])
return (
<div className={cn(className, ' space-y-2')}>
<div className={cn(className, 'space-y-2')}>
<CheckboxWithLabel
label={t(`${I18N_PREFIX}.crawlSubPage`, { ns: 'datasetCreation' })}
isChecked={payload.crawl_sub_pages}

View File

@ -60,7 +60,7 @@ const Website: FC<Props> = ({
return (
<div>
<div className="mb-4">
<div className="system-md-medium mb-2 text-text-secondary">
<div className="mb-2 text-text-secondary system-md-medium">
{t('stepOne.website.chooseProvider', { ns: 'datasetCreation' })}
</div>
<div className="flex space-x-2">
@ -68,8 +68,8 @@ const Website: FC<Props> = ({
<button
type="button"
className={cn('flex items-center justify-center rounded-lg px-4 py-2', selectedProvider === DataSourceProvider.jinaReader
? 'system-sm-medium border-[1.5px] border-components-option-card-option-selected-border bg-components-option-card-option-selected-bg text-text-primary'
: `system-sm-regular border border-components-option-card-option-border bg-components-option-card-option-bg text-text-secondary
? 'border-[1.5px] border-components-option-card-option-selected-border bg-components-option-card-option-selected-bg text-text-primary system-sm-medium'
: `border border-components-option-card-option-border bg-components-option-card-option-bg text-text-secondary system-sm-regular
hover:border-components-option-card-option-border-hover hover:bg-components-option-card-option-bg-hover hover:shadow-xs hover:shadow-shadow-shadow-3`)}
onClick={() => {
setSelectedProvider(DataSourceProvider.jinaReader)
@ -84,8 +84,8 @@ const Website: FC<Props> = ({
<button
type="button"
className={cn('rounded-lg px-4 py-2', selectedProvider === DataSourceProvider.fireCrawl
? 'system-sm-medium border-[1.5px] border-components-option-card-option-selected-border bg-components-option-card-option-selected-bg text-text-primary'
: `system-sm-regular border border-components-option-card-option-border bg-components-option-card-option-bg text-text-secondary
? 'border-[1.5px] border-components-option-card-option-selected-border bg-components-option-card-option-selected-bg text-text-primary system-sm-medium'
: `border border-components-option-card-option-border bg-components-option-card-option-bg text-text-secondary system-sm-regular
hover:border-components-option-card-option-border-hover hover:bg-components-option-card-option-bg-hover hover:shadow-xs hover:shadow-shadow-shadow-3`)}
onClick={() => {
setSelectedProvider(DataSourceProvider.fireCrawl)
@ -99,8 +99,8 @@ const Website: FC<Props> = ({
<button
type="button"
className={cn('flex items-center justify-center rounded-lg px-4 py-2', selectedProvider === DataSourceProvider.waterCrawl
? 'system-sm-medium border-[1.5px] border-components-option-card-option-selected-border bg-components-option-card-option-selected-bg text-text-primary'
: `system-sm-regular border border-components-option-card-option-border bg-components-option-card-option-bg text-text-secondary
? 'border-[1.5px] border-components-option-card-option-selected-border bg-components-option-card-option-selected-bg text-text-primary system-sm-medium'
: `border border-components-option-card-option-border bg-components-option-card-option-bg text-text-secondary system-sm-regular
hover:border-components-option-card-option-border-hover hover:bg-components-option-card-option-bg-hover hover:shadow-xs hover:shadow-shadow-shadow-3`)}
onClick={() => {
setSelectedProvider(DataSourceProvider.waterCrawl)

View File

@ -32,7 +32,7 @@ const Options: FC<Props> = ({
}
}, [payload, onChange])
return (
<div className={cn(className, ' space-y-2')}>
<div className={cn(className, 'space-y-2')}>
<CheckboxWithLabel
label={t(`${I18N_PREFIX}.crawlSubPage`, { ns: 'datasetCreation' })}
isChecked={payload.crawl_sub_pages}

View File

@ -63,11 +63,11 @@ const NoData: FC<Props> = ({
{currentProvider.emoji}
</div>
<div className="mb-1 mt-2 flex flex-col gap-y-1 pb-3 pt-1">
<span className="system-md-semibold text-text-secondary">
<span className="text-text-secondary system-md-semibold">
{currentProvider.title}
<Icon3Dots className="relative -left-1.5 -top-2.5 inline" />
</span>
<div className="system-sm-regular text-text-tertiary">
<div className="text-text-tertiary system-sm-regular">
{currentProvider.description}
</div>
</div>

View File

@ -26,10 +26,10 @@ const WebsitePreview = ({
<XMarkIcon className="h-4 w-4"></XMarkIcon>
</div>
</div>
<div className="title-sm-semi-bold break-words text-text-primary">
<div className="break-words text-text-primary title-sm-semi-bold">
{payload.title}
</div>
<div className="system-xs-medium truncate text-text-tertiary" title={payload.source_url}>{payload.source_url}</div>
<div className="truncate text-text-tertiary system-xs-medium" title={payload.source_url}>{payload.source_url}</div>
</div>
<div className={cn(s.previewContent, 'body-md-regular')}>
<div className={cn(s.fileContent)}>{payload.markdown}</div>

View File

@ -32,7 +32,7 @@ const Options: FC<Props> = ({
}
}, [payload, onChange])
return (
<div className={cn(className, ' space-y-2')}>
<div className={cn(className, 'space-y-2')}>
<CheckboxWithLabel
label={t(`${I18N_PREFIX}.crawlSubPage`, { ns: 'datasetCreation' })}
isChecked={payload.crawl_sub_pages}

View File

@ -10,7 +10,7 @@ vi.mock('next/navigation', () => ({
}))
const mockNotify = vi.fn()
vi.mock('@/app/components/base/toast', () => ({
vi.mock('@/app/components/base/toast/context', () => ({
ToastContext: {
Provider: ({ children }: { children: React.ReactNode }) => children,
},

View File

@ -24,7 +24,7 @@ import Divider from '@/app/components/base/divider'
import { SearchLinesSparkle } from '@/app/components/base/icons/src/vender/knowledge'
import CustomPopover from '@/app/components/base/popover'
import Switch from '@/app/components/base/switch'
import { ToastContext } from '@/app/components/base/toast'
import { ToastContext } from '@/app/components/base/toast/context'
import Tooltip from '@/app/components/base/tooltip'
import { IS_CE_EDITION } from '@/config'
import { DataSourceType, DocumentActionType } from '@/models/datasets'

View File

@ -55,12 +55,12 @@ const Actions = ({
indeterminate={indeterminate}
checked={checked}
/>
<span className="system-sm-medium text-text-accent">
<span className="text-text-accent system-sm-medium">
{t('operation.selectAll', { ns: 'common' })}
</span>
</div>
{tip && (
<div title={tip} className="system-xs-regular max-w-full truncate text-text-tertiary">
<div title={tip} className="max-w-full truncate text-text-tertiary system-xs-regular">
{tip}
</div>
)}

View File

@ -33,7 +33,7 @@ const OptionCard = ({
<DatasourceIcon iconUrl={iconUrl} />
</div>
<div
className={cn('system-sm-medium line-clamp-2 grow text-text-secondary', selected && 'text-text-primary')}
className={cn('line-clamp-2 grow text-text-secondary system-sm-medium', selected && 'text-text-primary')}
title={label}
>
{label}

View File

@ -31,7 +31,7 @@ const Item = ({
name={name}
size={20}
/>
<span className="system-sm-medium grow truncate text-text-secondary">
<span className="grow truncate text-text-secondary system-sm-medium">
{name}
</span>
{

View File

@ -31,7 +31,7 @@ const Trigger = ({
size={20}
/>
<div className="flex grow items-center gap-x-1 overflow-hidden">
<span className="system-md-semibold grow truncate text-text-secondary">
<span className="grow truncate text-text-secondary system-md-semibold">
{name}
</span>
<RiArrowDownSLine className="size-4 shrink-0 text-text-secondary" />

View File

@ -47,7 +47,7 @@ const Header = ({
</Tooltip>
</div>
<a
className="system-xs-medium flex shrink-0 items-center gap-x-1 text-text-accent"
className="flex shrink-0 items-center gap-x-1 text-text-accent system-xs-medium"
href={docLink}
target="_blank"
rel="noopener noreferrer"

View File

@ -9,7 +9,7 @@ const mockNotify = vi.fn()
const mockClose = vi.fn()
// Mock ToastContext with factory function
vi.mock('@/app/components/base/toast', async () => {
vi.mock('@/app/components/base/toast/context', async () => {
const { createContext, useContext } = await import('use-context-selector')
const context = createContext({ notify: mockNotify, close: mockClose })
return {
@ -87,7 +87,7 @@ vi.mock('@/service/base', () => ({
// Import after all mocks are set up
const { useLocalFileUpload } = await import('../use-local-file-upload')
const { ToastContext } = await import('@/app/components/base/toast')
const { ToastContext } = await import('@/app/components/base/toast/context')
const createWrapper = () => {
return ({ children }: { children: ReactNode }) => (

View File

@ -11,7 +11,7 @@ const Title = ({
const { t } = useTranslation()
return (
<div className="system-sm-medium px-[5px] py-1 text-text-secondary">
<div className="px-[5px] py-1 text-text-secondary system-sm-medium">
{t('onlineDocument.pageSelectorTitle', { ns: 'datasetPipeline', name })}
</div>
)

View File

@ -29,13 +29,13 @@ const Connect = ({
</div>
<div className="flex flex-col gap-y-1">
<div className="flex flex-col gap-y-1 pb-3 pt-1">
<div className="system-md-semibold text-text-secondary">
<div className="text-text-secondary system-md-semibold">
<span className="relative">
{t('onlineDrive.notConnected', { ns: 'datasetPipeline', name: nodeData.title })}
<Icon3Dots className="absolute -right-2.5 -top-1.5 size-4 text-text-secondary" />
</span>
</div>
<div className="system-sm-regular text-text-tertiary">
<div className="text-text-tertiary system-sm-regular">
{t('onlineDrive.notConnectedTip', { ns: 'datasetPipeline', name: nodeData.title })}
</div>
</div>

View File

@ -41,12 +41,12 @@ const Bucket = ({
<BucketsGray />
</button>
</Tooltip>
<span className="system-xs-regular text-divider-deep">/</span>
<span className="text-divider-deep system-xs-regular">/</span>
<button
type="button"
className={cn(
'max-w-full shrink truncate rounded-md px-[5px] py-1',
isActive ? 'system-sm-medium text-text-secondary' : 'system-sm-regular text-text-tertiary',
isActive ? 'text-text-secondary system-sm-medium' : 'text-text-tertiary system-sm-regular',
!disabled && 'hover:bg-state-base-hover',
)}
disabled={disabled}
@ -55,7 +55,7 @@ const Bucket = ({
>
{bucketName}
</button>
{showSeparator && <span className="system-xs-regular shrink-0 text-divider-deep">/</span>}
{showSeparator && <span className="shrink-0 text-divider-deep system-xs-regular">/</span>}
</>
)
}

View File

@ -19,15 +19,15 @@ const Drive = ({
type="button"
className={cn(
'max-w-full shrink truncate rounded-md px-[5px] py-1',
breadcrumbs.length > 0 && 'system-sm-regular text-text-tertiary hover:bg-state-base-hover',
breadcrumbs.length === 0 && 'system-sm-medium text-text-secondary',
breadcrumbs.length > 0 && 'text-text-tertiary system-sm-regular hover:bg-state-base-hover',
breadcrumbs.length === 0 && 'text-text-secondary system-sm-medium',
)}
onClick={handleBackToRoot}
disabled={breadcrumbs.length === 0}
>
{t('onlineDrive.breadcrumbs.allFiles', { ns: 'datasetPipeline' })}
</button>
{breadcrumbs.length > 0 && <span className="system-xs-regular text-divider-deep">/</span>}
{breadcrumbs.length > 0 && <span className="text-divider-deep system-xs-regular">/</span>}
</>
)
}

View File

@ -59,7 +59,7 @@ const Dropdown = ({
onBreadcrumbClick={handleBreadCrumbClick}
/>
</PortalToFollowElemContent>
<span className="system-xs-regular text-divider-deep">/</span>
<span className="text-divider-deep system-xs-regular">/</span>
</PortalToFollowElem>
)
}

View File

@ -18,7 +18,7 @@ const Item = ({
return (
<div
className="system-md-regular rounded-lg px-3 py-1.5 text-text-secondary hover:bg-state-base-hover"
className="rounded-lg px-3 py-1.5 text-text-secondary system-md-regular hover:bg-state-base-hover"
onClick={handleClick}
>
{name}

View File

@ -83,7 +83,7 @@ const Breadcrumbs = ({
return (
<div className="flex grow items-center overflow-hidden">
{showSearchResult && (
<div className="system-sm-medium text-test-secondary px-[5px]">
<div className="text-test-secondary px-[5px] system-sm-medium">
{t('onlineDrive.breadcrumbs.searchResult', {
ns: 'datasetPipeline',
searchResultsLength,
@ -92,7 +92,7 @@ const Breadcrumbs = ({
</div>
)}
{!showSearchResult && showBucketListTitle && (
<div className="system-sm-medium text-test-secondary px-[5px]">
<div className="text-test-secondary px-[5px] system-sm-medium">
{t('onlineDrive.breadcrumbs.allBuckets', { ns: 'datasetPipeline' })}
</div>
)}

View File

@ -30,7 +30,7 @@ const BreadcrumbItem = ({
type="button"
className={cn(
'max-w-full shrink truncate rounded-md px-[5px] py-1',
isActive ? 'system-sm-medium text-text-secondary' : 'system-sm-regular text-text-tertiary',
isActive ? 'text-text-secondary system-sm-medium' : 'text-text-tertiary system-sm-regular',
!disabled && 'hover:bg-state-base-hover',
)}
disabled={disabled}
@ -39,7 +39,7 @@ const BreadcrumbItem = ({
>
{name}
</button>
{showSeparator && <span className="system-xs-regular shrink-0 text-divider-deep">/</span>}
{showSeparator && <span className="shrink-0 text-divider-deep system-xs-regular">/</span>}
</>
)
}

View File

@ -6,7 +6,7 @@ const EmptyFolder = () => {
return (
<div className="flex size-full items-center justify-center rounded-[10px] bg-background-section px-1 py-1.5">
<span className="system-xs-regular text-text-tertiary">{t('onlineDrive.emptyFolder', { ns: 'datasetPipeline' })}</span>
<span className="text-text-tertiary system-xs-regular">{t('onlineDrive.emptyFolder', { ns: 'datasetPipeline' })}</span>
</div>
)
}

View File

@ -17,7 +17,7 @@ const EmptySearchResult = ({
return (
<div className="flex size-full flex-col items-center justify-center gap-y-2 rounded-[10px] bg-background-section p-6">
<SearchMenu className="size-8 text-text-tertiary" />
<div className="system-sm-regular text-text-secondary">
<div className="text-text-secondary system-sm-regular">
{t('onlineDrive.emptySearchResult', { ns: 'datasetPipeline' })}
</div>
<Button

View File

@ -91,13 +91,13 @@ const Item = ({
>
<FileIcon type={type} fileName={name} className="shrink-0 transform-gpu" />
<span
className="system-sm-medium grow truncate text-text-secondary"
className="grow truncate text-text-secondary system-sm-medium"
title={name}
>
{name}
</span>
{!isFolder && typeof size === 'number' && (
<span className="system-xs-regular shrink-0 text-text-tertiary">{formatFileSize(size)}</span>
<span className="shrink-0 text-text-tertiary system-xs-regular">{formatFileSize(size)}</span>
)}
</div>
</Wrapper>

View File

@ -33,7 +33,7 @@ const Header = ({
</Button>
</div>
<a
className="system-xs-medium flex items-center gap-x-1 overflow-hidden text-text-accent"
className="flex items-center gap-x-1 overflow-hidden text-text-accent system-xs-medium"
href={docLink}
target="_blank"
rel="noopener noreferrer"

View File

@ -24,7 +24,7 @@ const CheckboxWithLabel = ({
return (
<label className={cn('flex items-center space-x-2', className)}>
<Checkbox checked={isChecked} onCheck={() => onChange(!isChecked)} />
<div className={cn('system-sm-medium text-text-secondary', labelClassName)}>{label}</div>
<div className={cn('text-text-secondary system-sm-medium', labelClassName)}>{label}</div>
{tooltip && (
<Tooltip
popupContent={

View File

@ -58,13 +58,13 @@ const CrawledResultItem = ({
}
<div className="flex min-w-0 grow flex-col gap-y-0.5">
<div
className="system-sm-medium truncate text-text-secondary"
className="truncate text-text-secondary system-sm-medium"
title={payload.title}
>
{payload.title}
</div>
<div
className="system-xs-regular truncate text-text-tertiary"
className="truncate text-text-tertiary system-xs-regular"
title={payload.source_url}
>
{payload.source_url}
@ -74,7 +74,7 @@ const CrawledResultItem = ({
<Button
size="small"
onClick={onPreview}
className="system-xs-medium-uppercase right-2 top-2 hidden px-1.5 group-hover:absolute group-hover:block"
className="right-2 top-2 hidden px-1.5 system-xs-medium-uppercase group-hover:absolute group-hover:block"
>
{t('stepOne.website.preview', { ns: 'datasetCreation' })}
</Button>

View File

@ -64,7 +64,7 @@ const CrawledResult = ({
return (
<div className={cn('flex flex-col gap-y-2', className)}>
<div className="system-sm-medium pt-2 text-text-primary">
<div className="pt-2 text-text-primary system-sm-medium">
{t(`${I18N_PREFIX}.scrapTimeInfo`, {
ns: 'datasetCreation',
total: list.length,

View File

@ -65,7 +65,7 @@ const Crawling = ({
return (
<div className={cn('mt-2 flex flex-col gap-y-2 pt-2', className)}>
<div className="system-sm-medium text-text-primary">
<div className="text-text-primary system-sm-medium">
{t('stepOne.website.totalPageScraped', { ns: 'datasetCreation' })}
{' '}
{crawledNum}

View File

@ -23,9 +23,9 @@ const ErrorMessage = ({
<RiErrorWarningFill className="h-4 w-4 text-text-destructive" />
</div>
<div className="flex flex-col gap-y-0.5 py-1">
<div className="system-xs-medium text-text-primary">{title}</div>
<div className="text-text-primary system-xs-medium">{title}</div>
{errorMsg && (
<div className="system-xs-regular text-text-secondary">{errorMsg}</div>
<div className="text-text-secondary system-xs-regular">{errorMsg}</div>
)}
</div>
</div>

View File

@ -88,7 +88,7 @@ const Options = ({
className="flex grow cursor-pointer select-none items-center gap-x-0.5"
onClick={foldToggle}
>
<span className="system-sm-semibold-uppercase text-text-secondary">
<span className="text-text-secondary system-sm-semibold-uppercase">
{t(`${I18N_PREFIX}.options`, { ns: 'datasetCreation' })}
</span>
<ArrowDownRoundFill className={cn('h-4 w-4 shrink-0 text-text-quaternary', fold && '-rotate-90')} />

View File

@ -23,13 +23,13 @@ const LeftHeader = ({
return (
<div className="relative flex flex-col gap-y-0.5 pb-2 pt-4">
<div className="flex items-center gap-x-2">
<span className="system-2xs-semibold-uppercase bg-pipeline-add-documents-title-bg bg-clip-text text-transparent">
<span className="bg-pipeline-add-documents-title-bg bg-clip-text text-transparent system-2xs-semibold-uppercase">
{title}
</span>
<span className="system-2xs-regular text-divider-regular">/</span>
<span className="text-divider-regular system-2xs-regular">/</span>
<StepIndicator steps={steps} currentStep={currentStep} />
</div>
<div className="system-md-semibold text-text-primary">
<div className="text-text-primary system-md-semibold">
{steps[currentStep - 1]?.label}
</div>
{currentStep !== steps.length && (
@ -41,7 +41,7 @@ const LeftHeader = ({
variant="secondary-accent"
className="absolute -left-11 top-3.5 size-9 rounded-full p-0"
>
<RiArrowLeftLine className="size-5 " />
<RiArrowLeftLine className="size-5" />
</Button>
</Link>
)}

View File

@ -32,9 +32,9 @@ const FilePreview = ({
<div className="flex h-full w-full flex-col rounded-t-xl border-l border-t border-components-panel-border bg-background-default-lighter shadow-md shadow-shadow-shadow-5">
<div className="flex gap-x-2 border-b border-divider-subtle pb-3 pl-6 pr-4 pt-4">
<div className="flex grow flex-col gap-y-1">
<div className="system-2xs-semibold-uppercase text-text-accent">{t('addDocuments.stepOne.preview', { ns: 'datasetPipeline' })}</div>
<div className="title-md-semi-bold text-tex-primary">{`${fileName}.${file.extension || ''}`}</div>
<div className="system-xs-medium flex items-center gap-x-1 text-text-tertiary">
<div className="text-text-accent system-2xs-semibold-uppercase">{t('addDocuments.stepOne.preview', { ns: 'datasetPipeline' })}</div>
<div className="text-tex-primary title-md-semi-bold">{`${fileName}.${file.extension || ''}`}</div>
<div className="flex items-center gap-x-1 text-text-tertiary system-xs-medium">
<DocumentFileIcon
className="size-3.5 shrink-0"
name={file.name}
@ -65,7 +65,7 @@ const FilePreview = ({
</div>
)}
{!isFetching && fileData && (
<div className="body-md-regular grow overflow-hidden px-6 py-5 text-text-secondary">
<div className="grow overflow-hidden px-6 py-5 text-text-secondary body-md-regular">
{fileData.content}
</div>
)}

View File

@ -56,9 +56,9 @@ const OnlineDocumentPreview = ({
<div className="flex h-full w-full flex-col rounded-t-xl border-l border-t border-components-panel-border bg-background-default-lighter shadow-md shadow-shadow-shadow-5">
<div className="flex gap-x-2 border-b border-divider-subtle pb-3 pl-6 pr-4 pt-4">
<div className="flex grow flex-col gap-y-1">
<div className="system-2xs-semibold-uppercase text-text-accent">{t('addDocuments.stepOne.preview', { ns: 'datasetPipeline' })}</div>
<div className="title-md-semi-bold text-tex-primary">{currentPage?.page_name}</div>
<div className="system-xs-medium flex items-center gap-x-1 text-text-tertiary">
<div className="text-text-accent system-2xs-semibold-uppercase">{t('addDocuments.stepOne.preview', { ns: 'datasetPipeline' })}</div>
<div className="text-tex-primary title-md-semi-bold">{currentPage?.page_name}</div>
<div className="flex items-center gap-x-1 text-text-tertiary system-xs-medium">
<Notion className="size-3.5" />
<span>{currentPage.type}</span>
<span>·</span>
@ -79,7 +79,7 @@ const OnlineDocumentPreview = ({
</div>
)}
{!isPending && content && (
<div className="body-md-regular grow overflow-hidden px-6 py-5 text-text-secondary">
<div className="grow overflow-hidden px-6 py-5 text-text-secondary body-md-regular">
<Markdown content={content} />
</div>
)}

View File

@ -21,8 +21,8 @@ const WebsitePreview = ({
<div className="flex gap-x-2 border-b border-divider-subtle pb-3 pl-6 pr-4 pt-4">
<div className="flex grow flex-col gap-y-1">
<div className="system-2xs-semibold-uppercase">{t('addDocuments.stepOne.preview', { ns: 'datasetPipeline' })}</div>
<div className="title-md-semi-bold text-tex-primary">{currentWebsite.title}</div>
<div className="system-xs-medium flex gap-x-1 text-text-tertiary">
<div className="text-tex-primary title-md-semi-bold">{currentWebsite.title}</div>
<div className="flex gap-x-1 text-text-tertiary system-xs-medium">
<RiGlobalLine className="size-3.5" />
<span className="uppercase" title={currentWebsite.source_url}>{currentWebsite.source_url}</span>
<span>·</span>
@ -38,7 +38,7 @@ const WebsitePreview = ({
<RiCloseLine className="size-[18px]" />
</button>
</div>
<div className="body-md-regular grow overflow-hidden px-6 py-5 text-text-secondary">
<div className="grow overflow-hidden px-6 py-5 text-text-secondary body-md-regular">
{currentWebsite.markdown}
</div>
</div>

View File

@ -20,7 +20,7 @@ const Header = ({
return (
<div className="flex items-center gap-x-1 px-4 py-2">
<div className="system-sm-semibold-uppercase grow text-text-secondary">
<div className="grow text-text-secondary system-sm-semibold-uppercase">
{t('addDocuments.stepTwo.chunkSettings', { ns: 'datasetPipeline' })}
</div>
<Button variant="ghost" disabled={resetDisabled} onClick={onReset}>

View File

@ -134,7 +134,7 @@ const EmbeddingProcess = ({
return (
<>
<div className="flex flex-col gap-y-3">
<div className="system-md-semibold-uppercase flex items-center gap-x-1 text-text-secondary">
<div className="flex items-center gap-x-1 text-text-secondary system-md-semibold-uppercase">
{(isEmbeddingWaiting || isEmbedding) && (
<>
<RiLoader2Fill className="size-4 animate-spin" />
@ -151,7 +151,7 @@ const EmbeddingProcess = ({
<div className="flex shrink-0 items-center justify-center rounded-lg border-[0.5px] border-divider-subtle bg-util-colors-blue-brand-blue-brand-500 shadow-md shadow-shadow-shadow-5">
<RiAedFill className="size-4 text-text-primary-on-surface" />
</div>
<div className="system-md-medium grow text-text-primary">
<div className="grow text-text-primary system-md-medium">
{t('plansCommon.documentProcessingPriorityUpgrade', { ns: 'billing' })}
</div>
<UpgradeBtn loc="knowledge-speed-up" />
@ -190,7 +190,7 @@ const EmbeddingProcess = ({
/>
)}
<div className="flex w-0 grow items-center gap-1" title={getSourceName(indexingStatusDetail.id)}>
<div className="system-xs-medium truncate text-text-secondary">
<div className="truncate text-text-secondary system-xs-medium">
{getSourceName(indexingStatusDetail.id)}
</div>
{

View File

@ -41,13 +41,13 @@ const Processing = ({
<RiBookOpenLine className="size-5 text-text-accent" />
</div>
<div className="flex flex-col gap-y-2">
<div className="system-xl-semibold text-text-secondary">{t('stepThree.sideTipTitle', { ns: 'datasetCreation' })}</div>
<div className="system-sm-regular text-text-tertiary">{t('stepThree.sideTipContent', { ns: 'datasetCreation' })}</div>
<div className="text-text-secondary system-xl-semibold">{t('stepThree.sideTipTitle', { ns: 'datasetCreation' })}</div>
<div className="text-text-tertiary system-sm-regular">{t('stepThree.sideTipContent', { ns: 'datasetCreation' })}</div>
<a
href={docLink('/use-dify/knowledge/knowledge-pipeline/authorize-data-source')}
target="_blank"
rel="noreferrer noopener"
className="system-sm-regular text-text-accent"
className="text-text-accent system-sm-regular"
>
{t('addDocuments.stepThree.learnMore', { ns: 'datasetPipeline' })}
</a>

View File

@ -25,7 +25,7 @@ vi.mock('@/hooks/use-theme', () => ({
}))
const mockNotify = vi.fn()
vi.mock('@/app/components/base/toast', () => ({
vi.mock('@/app/components/base/toast/context', () => ({
ToastContext: {
Provider: ({ children }: { children: ReactNode }) => children,
Consumer: ({ children }: { children: (ctx: { notify: typeof mockNotify }) => ReactNode }) => children({ notify: mockNotify }),

View File

@ -12,7 +12,7 @@ import Button from '@/app/components/base/button'
import { getFileUploadErrorMessage } from '@/app/components/base/file-uploader/utils'
import { Csv as CSVIcon } from '@/app/components/base/icons/src/public/files'
import SimplePieChart from '@/app/components/base/simple-pie-chart'
import { ToastContext } from '@/app/components/base/toast'
import { ToastContext } from '@/app/components/base/toast/context'
import useTheme from '@/hooks/use-theme'
import { upload } from '@/service/base'
import { useFileUploadConfig } from '@/service/use-common'
@ -204,7 +204,7 @@ const CSVUploader: FC<Props> = ({
/>
<div ref={dropRef}>
{!file && (
<div className={cn('flex h-20 items-center rounded-xl border border-dashed border-components-panel-border bg-components-panel-bg-blur text-sm font-normal', dragging && 'border border-divider-subtle bg-components-panel-on-panel-item-bg-hover')}>
<div className={cn('flex h-20 items-center rounded-xl border border-dashed border-components-panel-border bg-components-panel-bg-blur text-sm font-normal', dragging && 'border border-divider-subtle bg-components-panel-on-panel-item-bg-hover')}>
<div className="flex w-full items-center justify-center space-x-2">
<CSVIcon className="shrink-0" />
<div className="text-text-secondary">

View File

@ -65,7 +65,7 @@ vi.mock('../../context', () => ({
},
}))
vi.mock('@/app/components/base/toast', () => ({
vi.mock('@/app/components/base/toast/context', () => ({
ToastContext: { Provider: ({ children }: { children: React.ReactNode }) => children, Consumer: () => null },
useToastContext: () => ({ notify: mockNotify }),
}))

View File

@ -76,13 +76,13 @@ const ChildSegmentDetail: FC<IChildSegmentDetailProps> = ({
<div className="flex h-full flex-col">
<div className={cn('flex items-center justify-between', fullScreen ? 'border border-divider-subtle py-3 pl-6 pr-4' : 'pl-4 pr-3 pt-3')}>
<div className="flex flex-col">
<div className="system-xl-semibold text-text-primary">{t('segment.editChildChunk', { ns: 'datasetDocuments' })}</div>
<div className="text-text-primary system-xl-semibold">{t('segment.editChildChunk', { ns: 'datasetDocuments' })}</div>
<div className="flex items-center gap-x-2">
<SegmentIndexTag positionId={childChunkInfo?.position || ''} labelPrefix={t('segment.childChunk', { ns: 'datasetDocuments' }) as string} />
<Dot />
<span className="system-xs-medium text-text-tertiary">{wordCountText}</span>
<span className="text-text-tertiary system-xs-medium">{wordCountText}</span>
<Dot />
<span className="system-xs-medium text-text-tertiary">
<span className="text-text-tertiary system-xs-medium">
{EditTimeText}
</span>
</div>

View File

@ -169,12 +169,12 @@ const ChildSegmentList: FC<IChildSegmentCardProps> = ({
}}
>
{renderCollapseIcon()}
<span className="system-sm-semibold-uppercase text-text-secondary">{totalText}</span>
<span className="text-text-secondary system-sm-semibold-uppercase">{totalText}</span>
<span className={cn('pl-1.5 text-xs font-medium text-text-quaternary', hoverVisibleClass)}>·</span>
<button
type="button"
className={cn(
'system-xs-semibold-uppercase px-1.5 py-1 text-components-button-secondary-accent-text',
'px-1.5 py-1 text-components-button-secondary-accent-text system-xs-semibold-uppercase',
hoverVisibleClass,
isFullDocMode && isLoading && 'text-components-button-secondary-accent-text-disabled',
)}

View File

@ -1,7 +1,8 @@
import type { ReactNode } from 'react'
import { act, fireEvent, render, screen, waitFor } from '@testing-library/react'
import { beforeEach, describe, expect, it, vi } from 'vitest'
import { EventEmitterContextProvider, useEventEmitterContextContext } from '@/context/event-emitter'
import { useEventEmitterContextContext } from '@/context/event-emitter'
import { EventEmitterContextProvider } from '@/context/event-emitter-provider'
import RegenerationModal from '../regeneration-modal'
// Store emit function for triggering events in tests

View File

@ -54,7 +54,7 @@ const ActionButtons: FC<IActionButtonsProps> = ({
onClick={handleCancel}
>
<div className="flex items-center gap-x-1">
<span className="system-sm-medium text-components-button-secondary-text">{t('operation.cancel', { ns: 'common' })}</span>
<span className="text-components-button-secondary-text system-sm-medium">{t('operation.cancel', { ns: 'common' })}</span>
<ShortcutsName keys={['ESC']} textColor="secondary" />
</div>
</Button>
@ -64,7 +64,7 @@ const ActionButtons: FC<IActionButtonsProps> = ({
onClick={handleRegeneration}
disabled={loading}
>
<span className="system-sm-medium text-components-button-secondary-text">
<span className="text-components-button-secondary-text system-sm-medium">
{t('operation.saveAndRegenerate', { ns: 'common' })}
</span>
</Button>

View File

@ -25,7 +25,7 @@ const AddAnother: FC<AddAnotherProps> = ({
checked={isChecked}
onCheck={onCheck}
/>
<span className="system-xs-medium text-text-tertiary">{t('segment.addAnother', { ns: 'datasetDocuments' })}</span>
<span className="text-text-tertiary system-xs-medium">{t('segment.addAnother', { ns: 'datasetDocuments' })}</span>
</div>
)
}

View File

@ -56,10 +56,10 @@ const BatchAction: FC<IBatchActionProps> = ({
<div className={cn('pointer-events-none flex w-full justify-center gap-x-2', className)}>
<div className="pointer-events-auto flex items-center gap-x-1 rounded-[10px] border border-components-actionbar-border-accent bg-components-actionbar-bg-accent p-1 shadow-xl shadow-shadow-shadow-5">
<div className="inline-flex items-center gap-x-2 py-1 pl-2 pr-3">
<span className="system-xs-medium flex h-5 w-5 items-center justify-center rounded-md bg-text-accent text-text-primary-on-surface">
<span className="flex h-5 w-5 items-center justify-center rounded-md bg-text-accent text-text-primary-on-surface system-xs-medium">
{selectedIds.length}
</span>
<span className="system-sm-semibold text-text-accent">{t(`${i18nPrefix}.selected`, { ns: 'dataset' })}</span>
<span className="text-text-accent system-sm-semibold">{t(`${i18nPrefix}.selected`, { ns: 'dataset' })}</span>
</div>
<Divider type="vertical" className="mx-0.5 h-3.5 bg-divider-regular" />
<Button

View File

@ -185,7 +185,7 @@ const ChunkContent: FC<IChunkContentProps> = ({
return (
<Textarea
className="body-md-regular h-full w-full pb-6 tracking-[-0.07px] text-text-secondary caret-[#295EFF]"
className="h-full w-full pb-6 tracking-[-0.07px] text-text-secondary caret-[#295EFF] body-md-regular"
value={question}
placeholder={t('segment.contentPlaceholder', { ns: 'datasetDocuments' }) || ''}
onChange={e => onQuestionChange(e.target.value)}

View File

@ -2,7 +2,7 @@ import * as React from 'react'
const Dot = () => {
return (
<div className="system-xs-medium text-text-quaternary">·</div>
<div className="text-text-quaternary system-xs-medium">·</div>
)
}

View File

@ -53,12 +53,12 @@ const Empty: FC<IEmptyProps> = ({
<Line className="absolute left-1/2 top-0 -translate-x-1/2 -translate-y-1/2 rotate-90" />
<Line className="absolute left-1/2 top-full -translate-x-1/2 -translate-y-1/2 rotate-90" />
</div>
<div className="system-md-regular mt-3 text-text-tertiary">
<div className="mt-3 text-text-tertiary system-md-regular">
{t('segment.empty', { ns: 'datasetDocuments' })}
</div>
<button
type="button"
className="system-sm-medium mt-1 text-text-accent"
className="mt-1 text-text-accent system-sm-medium"
onClick={onClearFilter}
>
{t('segment.clearFilter', { ns: 'datasetDocuments' })}

View File

@ -25,7 +25,7 @@ const Keywords: FC<IKeywordsProps> = ({
const { t } = useTranslation()
return (
<div className={cn('flex flex-col', className)}>
<div className="system-xs-medium-uppercase text-text-tertiary">{t('segment.keywords', { ns: 'datasetDocuments' })}</div>
<div className="text-text-tertiary system-xs-medium-uppercase">{t('segment.keywords', { ns: 'datasetDocuments' })}</div>
<div className="flex max-h-[200px] w-full flex-wrap gap-1 overflow-auto text-text-tertiary">
{(!segInfo?.keywords?.length && actionType === 'view')
? '-'

View File

@ -23,8 +23,8 @@ const DefaultContent: FC<IDefaultContentProps> = React.memo(({
return (
<>
<div className="pb-4">
<span className="title-2xl-semi-bold text-text-primary">{t('segment.regenerationConfirmTitle', { ns: 'datasetDocuments' })}</span>
<p className="system-md-regular text-text-secondary">{t('segment.regenerationConfirmMessage', { ns: 'datasetDocuments' })}</p>
<span className="text-text-primary title-2xl-semi-bold">{t('segment.regenerationConfirmTitle', { ns: 'datasetDocuments' })}</span>
<p className="text-text-secondary system-md-regular">{t('segment.regenerationConfirmMessage', { ns: 'datasetDocuments' })}</p>
</div>
<div className="flex justify-end gap-x-2 pt-6">
<Button onClick={onCancel}>
@ -46,8 +46,8 @@ const RegeneratingContent: FC = React.memo(() => {
return (
<>
<div className="pb-4">
<span className="title-2xl-semi-bold text-text-primary">{t('segment.regeneratingTitle', { ns: 'datasetDocuments' })}</span>
<p className="system-md-regular text-text-secondary">{t('segment.regeneratingMessage', { ns: 'datasetDocuments' })}</p>
<span className="text-text-primary title-2xl-semi-bold">{t('segment.regeneratingTitle', { ns: 'datasetDocuments' })}</span>
<p className="text-text-secondary system-md-regular">{t('segment.regeneratingMessage', { ns: 'datasetDocuments' })}</p>
</div>
<div className="flex justify-end pt-6">
<Button variant="warning" destructive disabled className="inline-flex items-center gap-x-0.5">
@ -80,8 +80,8 @@ const RegenerationCompletedContent: FC<IRegenerationCompletedContentProps> = Rea
return (
<>
<div className="pb-4">
<span className="title-2xl-semi-bold text-text-primary">{t('segment.regenerationSuccessTitle', { ns: 'datasetDocuments' })}</span>
<p className="system-md-regular text-text-secondary">{t('segment.regenerationSuccessMessage', { ns: 'datasetDocuments' })}</p>
<span className="text-text-primary title-2xl-semi-bold">{t('segment.regenerationSuccessTitle', { ns: 'datasetDocuments' })}</span>
<p className="text-text-secondary system-md-regular">{t('segment.regenerationSuccessMessage', { ns: 'datasetDocuments' })}</p>
</div>
<div className="flex justify-end pt-6">
<Button variant="primary" onClick={onClose}>

View File

@ -30,7 +30,7 @@ export const SegmentIndexTag: FC<ISegmentIndexTagProps> = ({
return (
<div className={cn('flex items-center', className)}>
<Chunk className={cn('mr-0.5 h-3 w-3 p-[1px] text-text-tertiary', iconClassName)} />
<div className={cn('system-xs-medium text-text-tertiary', labelClassName)}>
<div className={cn('text-text-tertiary system-xs-medium', labelClassName)}>
{label || localPositionId}
</div>
</div>

View File

@ -14,11 +14,11 @@ const SummaryLabel = ({
return (
<div className={cn('space-y-1', className)}>
<div className="system-xs-medium-uppercase mt-2 flex items-center justify-between text-text-tertiary">
<div className="mt-2 flex items-center justify-between text-text-tertiary system-xs-medium-uppercase">
{t('segment.summary', { ns: 'datasetDocuments' })}
<div className="ml-2 h-px grow bg-divider-regular"></div>
</div>
<div className="body-xs-regular text-text-tertiary">{summary}</div>
<div className="text-text-tertiary body-xs-regular">{summary}</div>
</div>
)
}

Some files were not shown because too many files have changed in this diff Show More