Compare commits

...

13 Commits

Author SHA1 Message Date
autofix-ci[bot]
6943254233 [autofix.ci] apply automated fixes 2026-04-02 05:42:12 +00:00
yyh
dbdc9a9ff0 fix toast 2026-04-02 13:39:01 +08:00
autofix-ci[bot]
63d2f7d6ec [autofix.ci] apply automated fixes 2026-04-02 05:09:41 +00:00
yyh
8ad67021f6 fix toast css 2026-04-02 13:06:34 +08:00
yyh
bcc62e6517 chore: merge origin/main into 4-1-tailwind-v4 2026-04-02 12:43:53 +08:00
Stephen Zhou
7ba58c6dac Merge branch 'main' into 4-1-tailwind-v4 2026-04-02 11:41:43 +08:00
Stephen Zhou
5e4aa26b9f fix test 2026-04-02 11:32:45 +08:00
Stephen Zhou
3cacedcfad clean up 2026-04-02 11:29:09 +08:00
autofix-ci[bot]
1e9ec4152e [autofix.ci] apply automated fixes 2026-04-02 03:19:03 +00:00
Stephen Zhou
2ab221fc67 tweaks 2026-04-02 11:15:34 +08:00
Stephen Zhou
4bc0e7d062 add reference 2026-04-02 10:44:53 +08:00
Stephen Zhou
0f1f0cce1d clean 2026-04-01 23:36:00 +08:00
Stephen Zhou
2db661499d refactor: update to tailwind v4 2026-04-01 23:35:29 +08:00
919 changed files with 6545 additions and 3901 deletions

1
.npmrc Normal file
View File

@@ -0,0 +1 @@
save-exact=true

1150
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +1,9 @@
trustPolicy: no-downgrade
minimumReleaseAge: 1440
minimumReleaseAge: 2880
blockExoticSubdeps: true
strictDepBuilds: true
allowBuilds:
'@parcel/watcher': false
"@parcel/watcher": false
canvas: false
esbuild: false
sharp: false
@@ -78,7 +78,7 @@ catalog:
"@egoist/tailwindcss-icons": 1.9.2
"@emoji-mart/data": 1.2.1
"@eslint-react/eslint-plugin": 3.0.0
"@eslint/js": ^10.0.1
"@eslint/js": 10.0.1
"@floating-ui/react": 0.27.19
"@formatjs/intl-localematcher": 0.8.2
"@headlessui/react": 2.2.9
@@ -116,7 +116,9 @@ catalog:
"@streamdown/math": 1.0.2
"@svgdotjs/svg.js": 3.2.5
"@t3-oss/env-nextjs": 0.13.11
"@tailwindcss/postcss": 4.2.2
"@tailwindcss/typography": 0.5.19
"@tailwindcss/vite": 4.2.2
"@tanstack/eslint-plugin-query": 5.95.2
"@tanstack/react-devtools": 0.10.0
"@tanstack/react-form": 1.28.5
@@ -141,7 +143,7 @@ catalog:
"@types/react-syntax-highlighter": 15.5.13
"@types/react-window": 1.8.8
"@types/sortablejs": 1.15.9
"@typescript-eslint/eslint-plugin": ^8.57.2
"@typescript-eslint/eslint-plugin": 8.57.2
"@typescript-eslint/parser": 8.57.2
"@typescript/native-preview": 7.0.0-dev.20260329.1
"@vitejs/plugin-react": 6.0.1
@@ -234,8 +236,8 @@ catalog:
storybook: 10.3.3
streamdown: 2.5.0
string-ts: 2.3.1
tailwind-merge: 2.6.1
tailwindcss: 3.4.19
tailwind-merge: 3.5.0
tailwindcss: 4.2.2
taze: 19.10.0
tldts: 7.0.27
tsup: ^8.5.1

View File

@@ -8,13 +8,8 @@ export default defineConfig({
'@types/react-window',
// We can not upgrade these yet
'tailwind-merge',
'tailwindcss',
'typescript',
],
write: true,
install: false,
recursive: true,
interactive: true,
maturityPeriod: 2,
})

View File

@@ -57,7 +57,7 @@ const LongTimeRangePicker: FC<Props> = ({
return (
<SimpleSelect
items={Object.entries(periodMapping).map(([k, v]) => ({ value: k, name: t(`filter.period.${v.name}`, { ns: 'appLog' }) }))}
className="mt-0 !w-40"
className="mt-0 w-40!"
notClearable={true}
onSelect={handleSelect}
defaultValue="2"

View File

@@ -70,7 +70,7 @@ const RangeSelector: FC<Props> = ({
return (
<SimpleSelect
items={ranges.map(v => ({ ...v, name: t(`filter.period.${v.name}`, { ns: 'appLog' }) }))}
className="mt-0 !w-40"
className="mt-0 w-40!"
notClearable={true}
onSelect={handleSelectRange}
defaultValue={0}

View File

@@ -51,7 +51,7 @@ const ConfigBtn: FC<Props> = ({
{children}
</div>
</PortalToFollowElemTrigger>
<PortalToFollowElemContent className="z-[11]">
<PortalToFollowElemContent className="z-11">
<ConfigPopup {...popupProps} />
</PortalToFollowElemContent>
</PortalToFollowElem>

View File

@@ -288,7 +288,7 @@ const ProviderConfigModal: FC<Props> = ({
{!isShowRemoveConfirm
? (
<PortalToFollowElem open>
<PortalToFollowElemContent className="z-[60] h-full w-full">
<PortalToFollowElemContent className="z-60 h-full w-full">
<div className="fixed inset-0 flex items-center justify-center bg-background-overlay">
<div className="mx-2 max-h-[calc(100vh-120px)] w-[640px] overflow-y-auto rounded-2xl bg-components-panel-bg shadow-xl">
<div className="px-8 pt-8">
@@ -304,7 +304,7 @@ const ProviderConfigModal: FC<Props> = ({
<>
<Field
label="API Key"
labelClassName="!text-sm"
labelClassName="text-sm!"
isRequired
value={(config as ArizeConfig).api_key}
onChange={handleConfigChange('api_key')}
@@ -312,7 +312,7 @@ const ProviderConfigModal: FC<Props> = ({
/>
<Field
label="Space ID"
labelClassName="!text-sm"
labelClassName="text-sm!"
isRequired
value={(config as ArizeConfig).space_id}
onChange={handleConfigChange('space_id')}
@@ -320,7 +320,7 @@ const ProviderConfigModal: FC<Props> = ({
/>
<Field
label={t(`${I18N_PREFIX}.project`, { ns: 'app' })!}
labelClassName="!text-sm"
labelClassName="text-sm!"
isRequired
value={(config as ArizeConfig).project}
onChange={handleConfigChange('project')}
@@ -328,7 +328,7 @@ const ProviderConfigModal: FC<Props> = ({
/>
<Field
label="Endpoint"
labelClassName="!text-sm"
labelClassName="text-sm!"
value={(config as ArizeConfig).endpoint}
onChange={handleConfigChange('endpoint')}
placeholder="https://otlp.arize.com"
@@ -339,7 +339,7 @@ const ProviderConfigModal: FC<Props> = ({
<>
<Field
label="API Key"
labelClassName="!text-sm"
labelClassName="text-sm!"
isRequired
value={(config as PhoenixConfig).api_key}
onChange={handleConfigChange('api_key')}
@@ -347,7 +347,7 @@ const ProviderConfigModal: FC<Props> = ({
/>
<Field
label={t(`${I18N_PREFIX}.project`, { ns: 'app' })!}
labelClassName="!text-sm"
labelClassName="text-sm!"
isRequired
value={(config as PhoenixConfig).project}
onChange={handleConfigChange('project')}
@@ -355,7 +355,7 @@ const ProviderConfigModal: FC<Props> = ({
/>
<Field
label="Endpoint"
labelClassName="!text-sm"
labelClassName="text-sm!"
value={(config as PhoenixConfig).endpoint}
onChange={handleConfigChange('endpoint')}
placeholder="https://app.phoenix.arize.com"
@@ -366,7 +366,7 @@ const ProviderConfigModal: FC<Props> = ({
<>
<Field
label="License Key"
labelClassName="!text-sm"
labelClassName="text-sm!"
isRequired
value={(config as AliyunConfig).license_key}
onChange={handleConfigChange('license_key')}
@@ -374,14 +374,14 @@ const ProviderConfigModal: FC<Props> = ({
/>
<Field
label="Endpoint"
labelClassName="!text-sm"
labelClassName="text-sm!"
value={(config as AliyunConfig).endpoint}
onChange={handleConfigChange('endpoint')}
placeholder="https://tracing.arms.aliyuncs.com"
/>
<Field
label="App Name"
labelClassName="!text-sm"
labelClassName="text-sm!"
value={(config as AliyunConfig).app_name}
onChange={handleConfigChange('app_name')}
/>
@@ -391,7 +391,7 @@ const ProviderConfigModal: FC<Props> = ({
<>
<Field
label="Token"
labelClassName="!text-sm"
labelClassName="text-sm!"
isRequired
value={(config as TencentConfig).token}
onChange={handleConfigChange('token')}
@@ -399,7 +399,7 @@ const ProviderConfigModal: FC<Props> = ({
/>
<Field
label="Endpoint"
labelClassName="!text-sm"
labelClassName="text-sm!"
isRequired
value={(config as TencentConfig).endpoint}
onChange={handleConfigChange('endpoint')}
@@ -407,7 +407,7 @@ const ProviderConfigModal: FC<Props> = ({
/>
<Field
label="Service Name"
labelClassName="!text-sm"
labelClassName="text-sm!"
isRequired
value={(config as TencentConfig).service_name}
onChange={handleConfigChange('service_name')}
@@ -419,7 +419,7 @@ const ProviderConfigModal: FC<Props> = ({
<>
<Field
label="API Key"
labelClassName="!text-sm"
labelClassName="text-sm!"
isRequired
value={(config as WeaveConfig).api_key}
onChange={handleConfigChange('api_key')}
@@ -427,7 +427,7 @@ const ProviderConfigModal: FC<Props> = ({
/>
<Field
label={t(`${I18N_PREFIX}.project`, { ns: 'app' })!}
labelClassName="!text-sm"
labelClassName="text-sm!"
isRequired
value={(config as WeaveConfig).project}
onChange={handleConfigChange('project')}
@@ -435,21 +435,21 @@ const ProviderConfigModal: FC<Props> = ({
/>
<Field
label="Entity"
labelClassName="!text-sm"
labelClassName="text-sm!"
value={(config as WeaveConfig).entity}
onChange={handleConfigChange('entity')}
placeholder={t(`${I18N_PREFIX}.placeholder`, { ns: 'app', key: 'Entity' })!}
/>
<Field
label="Endpoint"
labelClassName="!text-sm"
labelClassName="text-sm!"
value={(config as WeaveConfig).endpoint}
onChange={handleConfigChange('endpoint')}
placeholder="https://trace.wandb.ai/"
/>
<Field
label="Host"
labelClassName="!text-sm"
labelClassName="text-sm!"
value={(config as WeaveConfig).host}
onChange={handleConfigChange('host')}
placeholder="https://api.wandb.ai"
@@ -460,7 +460,7 @@ const ProviderConfigModal: FC<Props> = ({
<>
<Field
label="API Key"
labelClassName="!text-sm"
labelClassName="text-sm!"
isRequired
value={(config as LangSmithConfig).api_key}
onChange={handleConfigChange('api_key')}
@@ -468,7 +468,7 @@ const ProviderConfigModal: FC<Props> = ({
/>
<Field
label={t(`${I18N_PREFIX}.project`, { ns: 'app' })!}
labelClassName="!text-sm"
labelClassName="text-sm!"
isRequired
value={(config as LangSmithConfig).project}
onChange={handleConfigChange('project')}
@@ -476,7 +476,7 @@ const ProviderConfigModal: FC<Props> = ({
/>
<Field
label="Endpoint"
labelClassName="!text-sm"
labelClassName="text-sm!"
value={(config as LangSmithConfig).endpoint}
onChange={handleConfigChange('endpoint')}
placeholder="https://api.smith.langchain.com"
@@ -487,7 +487,7 @@ const ProviderConfigModal: FC<Props> = ({
<>
<Field
label={t(`${I18N_PREFIX}.secretKey`, { ns: 'app' })!}
labelClassName="!text-sm"
labelClassName="text-sm!"
value={(config as LangFuseConfig).secret_key}
isRequired
onChange={handleConfigChange('secret_key')}
@@ -495,7 +495,7 @@ const ProviderConfigModal: FC<Props> = ({
/>
<Field
label={t(`${I18N_PREFIX}.publicKey`, { ns: 'app' })!}
labelClassName="!text-sm"
labelClassName="text-sm!"
isRequired
value={(config as LangFuseConfig).public_key}
onChange={handleConfigChange('public_key')}
@@ -503,7 +503,7 @@ const ProviderConfigModal: FC<Props> = ({
/>
<Field
label="Host"
labelClassName="!text-sm"
labelClassName="text-sm!"
isRequired
value={(config as LangFuseConfig).host}
onChange={handleConfigChange('host')}
@@ -515,28 +515,28 @@ const ProviderConfigModal: FC<Props> = ({
<>
<Field
label="API Key"
labelClassName="!text-sm"
labelClassName="text-sm!"
value={(config as OpikConfig).api_key}
onChange={handleConfigChange('api_key')}
placeholder={t(`${I18N_PREFIX}.placeholder`, { ns: 'app', key: 'API Key' })!}
/>
<Field
label={t(`${I18N_PREFIX}.project`, { ns: 'app' })!}
labelClassName="!text-sm"
labelClassName="text-sm!"
value={(config as OpikConfig).project}
onChange={handleConfigChange('project')}
placeholder={t(`${I18N_PREFIX}.placeholder`, { ns: 'app', key: t(`${I18N_PREFIX}.project`, { ns: 'app' }) })!}
/>
<Field
label="Workspace"
labelClassName="!text-sm"
labelClassName="text-sm!"
value={(config as OpikConfig).workspace}
onChange={handleConfigChange('workspace')}
placeholder="default"
/>
<Field
label="Url"
labelClassName="!text-sm"
labelClassName="text-sm!"
value={(config as OpikConfig).url}
onChange={handleConfigChange('url')}
placeholder="https://www.comet.com/opik/api/"
@@ -547,7 +547,7 @@ const ProviderConfigModal: FC<Props> = ({
<>
<Field
label={t(`${I18N_PREFIX}.trackingUri`, { ns: 'app' })!}
labelClassName="!text-sm"
labelClassName="text-sm!"
value={(config as MLflowConfig).tracking_uri}
isRequired
onChange={handleConfigChange('tracking_uri')}
@@ -555,7 +555,7 @@ const ProviderConfigModal: FC<Props> = ({
/>
<Field
label={t(`${I18N_PREFIX}.experimentId`, { ns: 'app' })!}
labelClassName="!text-sm"
labelClassName="text-sm!"
isRequired
value={(config as MLflowConfig).experiment_id}
onChange={handleConfigChange('experiment_id')}
@@ -563,14 +563,14 @@ const ProviderConfigModal: FC<Props> = ({
/>
<Field
label={t(`${I18N_PREFIX}.username`, { ns: 'app' })!}
labelClassName="!text-sm"
labelClassName="text-sm!"
value={(config as MLflowConfig).username}
onChange={handleConfigChange('username')}
placeholder={t(`${I18N_PREFIX}.placeholder`, { ns: 'app', key: t(`${I18N_PREFIX}.username`, { ns: 'app' }) })!}
/>
<Field
label={t(`${I18N_PREFIX}.password`, { ns: 'app' })!}
labelClassName="!text-sm"
labelClassName="text-sm!"
value={(config as MLflowConfig).password}
onChange={handleConfigChange('password')}
placeholder={t(`${I18N_PREFIX}.placeholder`, { ns: 'app', key: t(`${I18N_PREFIX}.password`, { ns: 'app' }) })!}
@@ -581,7 +581,7 @@ const ProviderConfigModal: FC<Props> = ({
<>
<Field
label={t(`${I18N_PREFIX}.experimentId`, { ns: 'app' })!}
labelClassName="!text-sm"
labelClassName="text-sm!"
value={(config as DatabricksConfig).experiment_id}
onChange={handleConfigChange('experiment_id')}
placeholder={t(`${I18N_PREFIX}.placeholder`, { ns: 'app', key: t(`${I18N_PREFIX}.experimentId`, { ns: 'app' }) })!}
@@ -589,7 +589,7 @@ const ProviderConfigModal: FC<Props> = ({
/>
<Field
label={t(`${I18N_PREFIX}.databricksHost`, { ns: 'app' })!}
labelClassName="!text-sm"
labelClassName="text-sm!"
value={(config as DatabricksConfig).host}
onChange={handleConfigChange('host')}
placeholder={t(`${I18N_PREFIX}.placeholder`, { ns: 'app', key: t(`${I18N_PREFIX}.databricksHost`, { ns: 'app' }) })!}
@@ -597,21 +597,21 @@ const ProviderConfigModal: FC<Props> = ({
/>
<Field
label={t(`${I18N_PREFIX}.clientId`, { ns: 'app' })!}
labelClassName="!text-sm"
labelClassName="text-sm!"
value={(config as DatabricksConfig).client_id}
onChange={handleConfigChange('client_id')}
placeholder={t(`${I18N_PREFIX}.placeholder`, { ns: 'app', key: t(`${I18N_PREFIX}.clientId`, { ns: 'app' }) })!}
/>
<Field
label={t(`${I18N_PREFIX}.clientSecret`, { ns: 'app' })!}
labelClassName="!text-sm"
labelClassName="text-sm!"
value={(config as DatabricksConfig).client_secret}
onChange={handleConfigChange('client_secret')}
placeholder={t(`${I18N_PREFIX}.placeholder`, { ns: 'app', key: t(`${I18N_PREFIX}.clientSecret`, { ns: 'app' }) })!}
/>
<Field
label={t(`${I18N_PREFIX}.personalAccessToken`, { ns: 'app' })!}
labelClassName="!text-sm"
labelClassName="text-sm!"
value={(config as DatabricksConfig).personal_access_token}
onChange={handleConfigChange('personal_access_token')}
placeholder={t(`${I18N_PREFIX}.placeholder`, { ns: 'app', key: t(`${I18N_PREFIX}.personalAccessToken`, { ns: 'app' }) })!}

View File

@@ -82,7 +82,7 @@ const ProviderPanel: FC<Props> = ({
<div className="flex items-center justify-between space-x-1">
<div className="flex items-center">
<Icon className="h-6" />
{isChosen && <div className="system-2xs-medium-uppercase ml-1 flex h-4 items-center rounded-[4px] border border-text-accent-secondary px-1 text-text-accent-secondary">{t(`${I18N_PREFIX}.inUse`, { ns: 'app' })}</div>}
{isChosen && <div className="system-2xs-medium-uppercase ml-1 flex h-4 items-center radius-xs border border-text-accent-secondary px-1 text-text-accent-secondary">{t(`${I18N_PREFIX}.inUse`, { ns: 'app' })}</div>}
</div>
{!readOnly && (
<div className="flex items-center justify-between space-x-1">

View File

@@ -10,7 +10,7 @@ type Props = {
}
const sizeClassMap = {
lg: 'w-9 h-9 p-2 rounded-[10px]',
lg: 'w-9 h-9 p-2 radius-lg',
md: 'w-6 h-6 p-1 rounded-lg',
}

View File

@@ -1,3 +1,5 @@
@reference "../../../../styles/globals.css";
.app {
flex-grow: 1;
height: 0;

View File

@@ -1,3 +1,5 @@
@reference "../../../../../styles/globals.css";
.logTable td {
padding: 7px 8px;
box-sizing: border-box;

View File

@@ -101,7 +101,7 @@ const FormContent = () => {
return (
<div className={cn('flex h-full w-full flex-col items-center justify-center')}>
<div className="min-w-[480px] max-w-[640px]">
<div className="border-components-divider-subtle flex h-[320px] flex-col gap-4 rounded-[20px] border bg-chat-bubble-bg p-10 pb-9 shadow-lg backdrop-blur-sm">
<div className="border-components-divider-subtle flex h-[320px] flex-col gap-4 radius-3xl border bg-chat-bubble-bg p-10 pb-9 shadow-lg backdrop-blur-xs">
<div className="h-[56px] w-[56px] shrink-0 rounded-2xl border border-components-panel-border-subtle bg-background-default-dodge p-3">
<RiCheckboxCircleFill className="h-8 w-8 text-text-success" />
</div>
@@ -129,7 +129,7 @@ const FormContent = () => {
return (
<div className={cn('flex h-full w-full flex-col items-center justify-center')}>
<div className="min-w-[480px] max-w-[640px]">
<div className="border-components-divider-subtle flex h-[320px] flex-col gap-4 rounded-[20px] border bg-chat-bubble-bg p-10 pb-9 shadow-lg backdrop-blur-sm">
<div className="border-components-divider-subtle flex h-[320px] flex-col gap-4 radius-3xl border bg-chat-bubble-bg p-10 pb-9 shadow-lg backdrop-blur-xs">
<div className="flex h-14 w-14 shrink-0 items-center justify-center rounded-2xl border border-components-panel-border-subtle bg-background-default-dodge p-3">
<RiInformation2Fill className="h-8 w-8 text-text-accent" />
</div>
@@ -157,7 +157,7 @@ const FormContent = () => {
return (
<div className={cn('flex h-full w-full flex-col items-center justify-center')}>
<div className="min-w-[480px] max-w-[640px]">
<div className="border-components-divider-subtle flex h-[320px] flex-col gap-4 rounded-[20px] border bg-chat-bubble-bg p-10 pb-9 shadow-lg backdrop-blur-sm">
<div className="border-components-divider-subtle flex h-[320px] flex-col gap-4 radius-3xl border bg-chat-bubble-bg p-10 pb-9 shadow-lg backdrop-blur-xs">
<div className="flex h-14 w-14 shrink-0 items-center justify-center rounded-2xl border border-components-panel-border-subtle bg-background-default-dodge p-3">
<RiInformation2Fill className="h-8 w-8 text-text-accent" />
</div>
@@ -185,7 +185,7 @@ const FormContent = () => {
return (
<div className={cn('flex h-full w-full flex-col items-center justify-center')}>
<div className="min-w-[480px] max-w-[640px]">
<div className="border-components-divider-subtle flex h-[320px] flex-col gap-4 rounded-[20px] border bg-chat-bubble-bg p-10 pb-9 shadow-lg backdrop-blur-sm">
<div className="border-components-divider-subtle flex h-[320px] flex-col gap-4 radius-3xl border bg-chat-bubble-bg p-10 pb-9 shadow-lg backdrop-blur-xs">
<div className="flex h-14 w-14 shrink-0 items-center justify-center rounded-2xl border border-components-panel-border-subtle bg-background-default-dodge p-3">
<RiErrorWarningFill className="h-8 w-8 text-text-destructive" />
</div>
@@ -211,7 +211,7 @@ const FormContent = () => {
return (
<div className={cn('flex h-full w-full flex-col items-center justify-center')}>
<div className="min-w-[480px] max-w-[640px]">
<div className="border-components-divider-subtle flex h-[320px] flex-col gap-4 rounded-[20px] border bg-chat-bubble-bg p-10 pb-9 shadow-lg backdrop-blur-sm">
<div className="border-components-divider-subtle flex h-[320px] flex-col gap-4 radius-3xl border bg-chat-bubble-bg p-10 pb-9 shadow-lg backdrop-blur-xs">
<div className="flex h-14 w-14 shrink-0 items-center justify-center rounded-2xl border border-components-panel-border-subtle bg-background-default-dodge p-3">
<RiErrorWarningFill className="h-8 w-8 text-text-destructive" />
</div>
@@ -248,7 +248,7 @@ const FormContent = () => {
<div className="system-xl-semibold grow text-text-primary">{site.title}</div>
</div>
<div className="h-0 w-full grow overflow-y-auto">
<div className="border-components-divider-subtle rounded-[20px] border bg-chat-bubble-bg p-4 shadow-lg backdrop-blur-sm">
<div className="border-components-divider-subtle radius-3xl border bg-chat-bubble-bg p-4 shadow-lg backdrop-blur-xs">
{contentList.map((content, index) => (
<ContentItem
key={index}

View File

@@ -82,7 +82,7 @@ export default function CheckCode() {
<Countdown onResend={resendCode} />
</form>
<div className="py-2">
<div className="h-px bg-gradient-to-r from-background-gradient-mask-transparent via-divider-regular to-background-gradient-mask-transparent"></div>
<div className="h-px bg-linear-to-r from-background-gradient-mask-transparent via-divider-regular to-background-gradient-mask-transparent"></div>
</div>
<div onClick={() => router.back()} className="flex h-9 cursor-pointer items-center justify-center text-text-tertiary">
<div className="bg-background-default-dimm inline-block rounded-full p-1">

View File

@@ -84,7 +84,7 @@ export default function CheckCode() {
</div>
</form>
<div className="py-2">
<div className="h-px bg-gradient-to-r from-background-gradient-mask-transparent via-divider-regular to-background-gradient-mask-transparent"></div>
<div className="h-px bg-linear-to-r from-background-gradient-mask-transparent via-divider-regular to-background-gradient-mask-transparent"></div>
</div>
<Link href={`/webapp-signin?${searchParams.toString()}`} className="flex h-9 items-center justify-center text-text-tertiary hover:text-text-primary">
<div className="inline-block rounded-full bg-background-default-dimmed p-1">

View File

@@ -127,7 +127,7 @@ export default function CheckCode() {
<Countdown onResend={resendCode} />
</form>
<div className="py-2">
<div className="h-px bg-gradient-to-r from-background-gradient-mask-transparent via-divider-regular to-background-gradient-mask-transparent"></div>
<div className="h-px bg-linear-to-r from-background-gradient-mask-transparent via-divider-regular to-background-gradient-mask-transparent"></div>
</div>
<div onClick={() => router.back()} className="flex h-9 cursor-pointer items-center justify-center text-text-tertiary">
<div className="bg-background-default-dimm inline-block rounded-full p-1">

View File

@@ -55,7 +55,7 @@ const NormalForm = () => {
return (
<div className="mx-auto mt-8 w-full">
<div className="relative">
<div className="rounded-lg bg-gradient-to-r from-workflow-workflow-progress-bg-1 to-workflow-workflow-progress-bg-2 p-4">
<div className="rounded-lg bg-linear-to-r from-workflow-workflow-progress-bg-1 to-workflow-workflow-progress-bg-2 p-4">
<div className="shadows-shadow-lg relative mb-2 flex h-10 w-10 items-center justify-center rounded-xl bg-components-card-bg shadow">
<RiContractLine className="h-5 w-5" />
<RiErrorWarningFill className="absolute -right-1 -top-1 h-4 w-4 text-text-warning-secondary" />
@@ -71,7 +71,7 @@ const NormalForm = () => {
return (
<div className="mx-auto mt-8 w-full">
<div className="relative">
<div className="rounded-lg bg-gradient-to-r from-workflow-workflow-progress-bg-1 to-workflow-workflow-progress-bg-2 p-4">
<div className="rounded-lg bg-linear-to-r from-workflow-workflow-progress-bg-1 to-workflow-workflow-progress-bg-2 p-4">
<div className="shadows-shadow-lg relative mb-2 flex h-10 w-10 items-center justify-center rounded-xl bg-components-card-bg shadow">
<RiContractLine className="h-5 w-5" />
<RiErrorWarningFill className="absolute -right-1 -top-1 h-4 w-4 text-text-warning-secondary" />
@@ -87,7 +87,7 @@ const NormalForm = () => {
return (
<div className="mx-auto mt-8 w-full">
<div className="relative">
<div className="rounded-lg bg-gradient-to-r from-workflow-workflow-progress-bg-1 to-workflow-workflow-progress-bg-2 p-4">
<div className="rounded-lg bg-linear-to-r from-workflow-workflow-progress-bg-1 to-workflow-workflow-progress-bg-2 p-4">
<div className="shadows-shadow-lg relative mb-2 flex h-10 w-10 items-center justify-center rounded-xl bg-components-card-bg shadow">
<RiContractLine className="h-5 w-5" />
<RiErrorWarningFill className="absolute -right-1 -top-1 h-4 w-4 text-text-warning-secondary" />
@@ -119,7 +119,7 @@ const NormalForm = () => {
{showORLine && (
<div className="relative mt-6">
<div className="absolute inset-0 flex items-center" aria-hidden="true">
<div className="h-px w-full bg-gradient-to-r from-background-gradient-mask-transparent via-divider-regular to-background-gradient-mask-transparent"></div>
<div className="h-px w-full bg-linear-to-r from-background-gradient-mask-transparent via-divider-regular to-background-gradient-mask-transparent"></div>
</div>
<div className="relative flex justify-center">
<span className="system-xs-medium-uppercase px-2 text-text-tertiary">{t('or', { ns: 'login' })}</span>
@@ -154,7 +154,7 @@ const NormalForm = () => {
}
{allMethodsAreDisabled && (
<>
<div className="rounded-lg bg-gradient-to-r from-workflow-workflow-progress-bg-1 to-workflow-workflow-progress-bg-2 p-4">
<div className="rounded-lg bg-linear-to-r from-workflow-workflow-progress-bg-1 to-workflow-workflow-progress-bg-2 p-4">
<div className="shadows-shadow-lg mb-2 flex h-10 w-10 items-center justify-center rounded-xl bg-components-card-bg shadow">
<RiDoorLockLine className="h-5 w-5" />
</div>
@@ -163,7 +163,7 @@ const NormalForm = () => {
</div>
<div className="relative my-2 py-2">
<div className="absolute inset-0 flex items-center" aria-hidden="true">
<div className="h-px w-full bg-gradient-to-r from-background-gradient-mask-transparent via-divider-regular to-background-gradient-mask-transparent"></div>
<div className="h-px w-full bg-linear-to-r from-background-gradient-mask-transparent via-divider-regular to-background-gradient-mask-transparent"></div>
</div>
</div>
</>

View File

@@ -133,7 +133,7 @@ const AvatarWithEdit = ({ onSave, ...props }: AvatarWithEditProps) => {
</div>
<Dialog open={isShowAvatarPicker} onOpenChange={open => !open && setIsShowAvatarPicker(false)}>
<DialogContent className="!w-[362px] !p-0">
<DialogContent className="w-[362px]! p-0!">
<ImageInput onImageInput={handleImageInput} cropShape="round" />
<Divider className="m-0" />
@@ -150,7 +150,7 @@ const AvatarWithEdit = ({ onSave, ...props }: AvatarWithEditProps) => {
</Dialog>
<Dialog open={isShowDeleteConfirm} onOpenChange={open => !open && setIsShowDeleteConfirm(false)}>
<DialogContent className="!w-[362px] !p-6">
<DialogContent className="w-[362px]! p-6!">
<div className="mb-3 text-text-primary title-2xl-semi-bold">{t('avatar.deleteTitle', { ns: 'common' })}</div>
<p className="mb-8 text-text-secondary">{t('avatar.deleteDescription', { ns: 'common' })}</p>

View File

@@ -182,7 +182,7 @@ const EmailChangeModal = ({ onClose, email, show }: Props) => {
return (
<Dialog open={show} onOpenChange={open => !open && onClose()}>
<DialogContent className="!w-[420px] !p-6">
<DialogContent className="w-[420px]! p-6!">
<div className="absolute right-5 top-5 cursor-pointer p-1.5" onClick={onClose}>
<RiCloseLine className="h-5 w-5 text-text-tertiary" />
</div>
@@ -203,14 +203,14 @@ const EmailChangeModal = ({ onClose, email, show }: Props) => {
<div className="pt-3"></div>
<div className="space-y-2">
<Button
className="!w-full"
className="w-full!"
variant="primary"
onClick={sendCodeToOriginEmail}
>
{t('account.changeEmail.sendVerifyCode', { ns: 'common' })}
</Button>
<Button
className="!w-full"
className="w-full!"
onClick={onClose}
>
{t('operation.cancel', { ns: 'common' })}
@@ -234,7 +234,7 @@ const EmailChangeModal = ({ onClose, email, show }: Props) => {
<div className="pt-3">
<div className="mb-1 flex h-6 items-center text-text-secondary system-sm-medium">{t('account.changeEmail.codeLabel', { ns: 'common' })}</div>
<Input
className="!w-full"
className="w-full!"
placeholder={t('account.changeEmail.codePlaceholder', { ns: 'common' })}
value={code}
onChange={e => setCode(e.target.value)}
@@ -244,14 +244,14 @@ const EmailChangeModal = ({ onClose, email, show }: Props) => {
<div className="mt-3 space-y-2">
<Button
disabled={code.length !== 6}
className="!w-full"
className="w-full!"
variant="primary"
onClick={handleVerifyOriginEmail}
>
{t('account.changeEmail.continue', { ns: 'common' })}
</Button>
<Button
className="!w-full"
className="w-full!"
onClick={onClose}
>
{t('operation.cancel', { ns: 'common' })}
@@ -277,7 +277,7 @@ const EmailChangeModal = ({ onClose, email, show }: Props) => {
<div className="pt-3">
<div className="mb-1 flex h-6 items-center text-text-secondary system-sm-medium">{t('account.changeEmail.emailLabel', { ns: 'common' })}</div>
<Input
className="!w-full"
className="w-full!"
placeholder={t('account.changeEmail.emailPlaceholder', { ns: 'common' })}
value={mail}
onChange={e => handleNewEmailValueChange(e.target.value)}
@@ -293,14 +293,14 @@ const EmailChangeModal = ({ onClose, email, show }: Props) => {
<div className="mt-3 space-y-2">
<Button
disabled={!mail || newEmailExited || unAvailableEmail || isCheckingEmail || !isValidEmail(mail)}
className="!w-full"
className="w-full!"
variant="primary"
onClick={sendCodeToNewEmail}
>
{t('account.changeEmail.sendVerifyCode', { ns: 'common' })}
</Button>
<Button
className="!w-full"
className="w-full!"
onClick={onClose}
>
{t('operation.cancel', { ns: 'common' })}
@@ -324,7 +324,7 @@ const EmailChangeModal = ({ onClose, email, show }: Props) => {
<div className="pt-3">
<div className="mb-1 flex h-6 items-center text-text-secondary system-sm-medium">{t('account.changeEmail.codeLabel', { ns: 'common' })}</div>
<Input
className="!w-full"
className="w-full!"
placeholder={t('account.changeEmail.codePlaceholder', { ns: 'common' })}
value={code}
onChange={e => setCode(e.target.value)}
@@ -334,14 +334,14 @@ const EmailChangeModal = ({ onClose, email, show }: Props) => {
<div className="mt-3 space-y-2">
<Button
disabled={code.length !== 6}
className="!w-full"
className="w-full!"
variant="primary"
onClick={submitNewEmail}
>
{t('account.changeEmail.changeTo', { ns: 'common', email: mail })}
</Button>
<Button
className="!w-full"
className="w-full!"
onClick={onClose}
>
{t('operation.cancel', { ns: 'common' })}

View File

@@ -217,7 +217,7 @@ export default function AccountPage() {
{
editNameModalVisible && (
<Dialog open={editNameModalVisible} onOpenChange={open => !open && setEditNameModalVisible(false)}>
<DialogContent className="!w-[420px] !p-6">
<DialogContent className="w-[420px]! p-6!">
<div className="mb-6 text-text-primary title-2xl-semi-bold">{t('account.editName', { ns: 'common' })}</div>
<div className={titleClassName}>{t('account.name', { ns: 'common' })}</div>
<Input
@@ -242,7 +242,7 @@ export default function AccountPage() {
{
editPasswordModalVisible && (
<Dialog open={editPasswordModalVisible} onOpenChange={open => !open && (setEditPasswordModalVisible(false), resetPasswordForm())}>
<DialogContent className="!w-[420px] !p-6">
<DialogContent className="w-[420px]! p-6!">
<div className="mb-6 text-text-primary title-2xl-semi-bold">{userProfile.is_password_set ? t('account.resetPassword', { ns: 'common' }) : t('account.setPassword', { ns: 'common' })}</div>
{userProfile.is_password_set && (
<>

View File

@@ -48,7 +48,7 @@ export default function AppSelector() {
<MenuButton
className={`
p-1x inline-flex
items-center rounded-[20px] text-sm
items-center radius-3xl text-sm
text-text-primary
mobile:px-1
${open && 'bg-components-panel-bg-blur'}
@@ -80,7 +80,7 @@ export default function AppSelector() {
<div className="system-md-medium break-all text-text-primary">
{userProfile.name}
{isEducationAccount && (
<PremiumBadge size="s" color="blue" className="ml-1 !px-2">
<PremiumBadge size="s" color="blue" className="ml-1 px-2!">
<RiGraduationCapFill className="mr-1 h-3 w-3" />
<span className="system-2xs-medium">EDU</span>
</PremiumBadge>

View File

@@ -31,7 +31,7 @@ const Header = () => {
)
: <DifyLogo />}
</div>
<div className="h-4 w-[1px] origin-center rotate-[11.31deg] bg-divider-regular" />
<div className="h-4 w-px origin-center rotate-[11.31deg] bg-divider-regular" />
<p className="title-3xl-semi-bold relative mt-[-2px] text-text-primary">{t('account.account', { ns: 'common' })}</p>
</div>
<div className="flex shrink-0 items-center gap-3">
@@ -40,7 +40,7 @@ const Header = () => {
<p>{t('account.studio', { ns: 'common' })}</p>
<RiArrowRightUpLine className="h-4 w-4" />
</Button>
<div className="h-4 w-[1px] bg-divider-regular" />
<div className="h-4 w-px bg-divider-regular" />
<Avatar />
</div>
</div>

View File

@@ -118,14 +118,14 @@ export default function OAuthAuthorize() {
<div className="bg-background-default-subtle">
{authAppInfo?.app_icon && (
<div className="w-max rounded-2xl border-[0.5px] border-components-panel-border bg-text-primary-on-surface p-3 shadow-lg">
<img src={authAppInfo.app_icon} alt="app icon" className="h-10 w-10 rounded" />
<img src={authAppInfo.app_icon} alt="app icon" className="h-10 w-10 rounded-sm" />
</div>
)}
<div className={`mb-4 mt-5 flex flex-col gap-2 ${isLoggedIn ? 'pb-2' : ''}`}>
<div className="title-4xl-semi-bold">
{isLoggedIn && <div className="text-text-primary">{t('connect', { ns: 'oauth' })}</div>}
<div className="text-[var(--color-saas-dify-blue-inverted)]">{authAppInfo?.app_label[language] || authAppInfo?.app_label?.en_US || t('unknownApp', { ns: 'oauth' })}</div>
<div className="text-(--color-saas-dify-blue-inverted)">{authAppInfo?.app_label[language] || authAppInfo?.app_label?.en_US || t('unknownApp', { ns: 'oauth' })}</div>
{!isLoggedIn && <div className="text-text-primary">{t('tips.notLoggedIn', { ns: 'oauth' })}</div>}
</div>
<div className="text-text-secondary body-md-regular">{isLoggedIn ? `${authAppInfo?.app_label[language] || authAppInfo?.app_label?.en_US || t('unknownApp', { ns: 'oauth' })} ${t('tips.loggedIn', { ns: 'oauth' })}` : t('tips.needLogin', { ns: 'oauth' })}</div>

View File

@@ -55,11 +55,11 @@ const ActivateForm = () => {
{checkRes && !checkRes.is_valid && (
<div className="flex flex-col md:w-[400px]">
<div className="mx-auto w-full">
<div className="mb-3 flex h-20 w-20 items-center justify-center rounded-[20px] border border-divider-regular bg-components-option-card-option-bg p-5 text-[40px] font-bold shadow-lg">🤷</div>
<div className="mb-3 flex h-20 w-20 items-center justify-center radius-3xl border border-divider-regular bg-components-option-card-option-bg p-5 text-[40px] font-bold shadow-lg">🤷</div>
<h2 className="text-[32px] font-bold text-text-primary">{t('invalid', { ns: 'login' })}</h2>
</div>
<div className="mx-auto mt-6 w-full">
<Button variant="primary" className="w-full !text-sm">
<Button variant="primary" className="w-full text-sm!">
<a href="https://dify.ai">{t('explore', { ns: 'login' })}</a>
</Button>
</div>

View File

@@ -97,7 +97,7 @@ const AppInfoDetailPanel = ({
<ContentDialog
show={show}
onClose={onClose}
className="absolute bottom-2 left-2 top-2 flex w-[420px] flex-col rounded-2xl !p-0"
className="absolute bottom-2 left-2 top-2 flex w-[420px] flex-col rounded-2xl p-0!"
>
<div className="flex shrink-0 flex-col items-start justify-center gap-3 self-stretch p-4">
<div className="flex items-center gap-3 self-stretch">
@@ -116,7 +116,7 @@ const AppInfoDetailPanel = ({
</div>
</div>
{appDetail.description && (
<div className="overflow-wrap-anywhere max-h-[105px] w-full max-w-full overflow-y-auto whitespace-normal break-words text-text-tertiary system-xs-regular">
<div className="overflow-wrap-anywhere max-h-[105px] w-full max-w-full overflow-y-auto whitespace-normal wrap-break-word text-text-tertiary system-xs-regular">
{appDetail.description}
</div>
)}

View File

@@ -130,7 +130,7 @@ const AppOperations = ({
data-targetid={operation.id}
size="small"
variant="secondary"
className="gap-[1px]"
className="gap-px"
tabIndex={-1}
>
{cloneElement(operation.icon, { className: 'h-3.5 w-3.5 text-components-button-secondary-text' })}
@@ -143,7 +143,7 @@ const AppOperations = ({
id="more-measure"
size="small"
variant="secondary"
className="gap-[1px]"
className="gap-px"
tabIndex={-1}
>
<RiMoreLine className="h-3.5 w-3.5 text-components-button-secondary-text" />
@@ -159,7 +159,7 @@ const AppOperations = ({
data-targetid={operation.id}
size="small"
variant="secondary"
className="gap-[1px]"
className="gap-px"
onClick={operation.onClick}
>
{cloneElement(operation.icon, { className: 'h-3.5 w-3.5 text-components-button-secondary-text' })}
@@ -179,7 +179,7 @@ const AppOperations = ({
<Button
size="small"
variant="secondary"
className="gap-[1px]"
className="gap-px"
>
<RiMoreLine className="h-3.5 w-3.5 text-components-button-secondary-text" />
<span className="text-components-button-secondary-text system-xs-medium">
@@ -187,8 +187,8 @@ const AppOperations = ({
</span>
</Button>
</PortalToFollowElemTrigger>
<PortalToFollowElemContent className="z-[30]">
<div className="flex min-w-[264px] flex-col rounded-[12px] border-[0.5px] border-components-panel-border bg-components-panel-bg-blur p-1 shadow-lg backdrop-blur-[5px]">
<PortalToFollowElemContent className="z-30">
<div className="flex min-w-[264px] flex-col radius-xl border-[0.5px] border-components-panel-border bg-components-panel-bg-blur p-1 shadow-lg backdrop-blur-[5px]">
{moreOperations.map(item => item.type === 'divider'
? (
<div key={item.id} className="my-1 h-px bg-divider-subtle" />

View File

@@ -60,7 +60,7 @@ const AppSidebarDropdown = ({ navigation }: Props) => {
}}
>
<PortalToFollowElemTrigger onClick={handleTrigger}>
<div className={cn('flex cursor-pointer items-center rounded-[10px] border-[0.5px] border-components-actionbar-border bg-components-actionbar-bg p-1 shadow-lg backdrop-blur-sm hover:bg-background-default-hover', open && 'bg-background-default-hover')}>
<div className={cn('flex cursor-pointer items-center radius-lg border-[0.5px] border-components-actionbar-border bg-components-actionbar-bg p-1 shadow-lg backdrop-blur-xs hover:bg-background-default-hover', open && 'bg-background-default-hover')}>
<AppIcon
size="small"
iconType={appDetail.icon_type}
@@ -71,7 +71,7 @@ const AppSidebarDropdown = ({ navigation }: Props) => {
<RiMenuLine className="h-4 w-4 text-text-tertiary" />
</div>
</PortalToFollowElemTrigger>
<PortalToFollowElemContent className="z-[1000]">
<PortalToFollowElemContent className="z-1000">
<div className={cn('w-[305px] rounded-xl border-[0.5px] border-components-panel-border bg-background-default-subtle shadow-lg')}>
<div className="p-2">
<div

View File

@@ -43,19 +43,19 @@ const NotionSvg = (
)
const ICON_MAP = {
app: <AppIcon className="border !border-[rgba(0,0,0,0.05)]" />,
app: <AppIcon className="border border-[rgba(0,0,0,0.05)]!" />,
api: (
<div className="rounded-lg border-[0.5px] border-divider-subtle bg-util-colors-blue-brand-blue-brand-500 p-1 shadow-md">
<ApiAggregate className="h-4 w-4 text-text-primary-on-surface" />
</div>
),
dataset: <AppIcon innerIcon={DatasetSvg} className="!border-[0.5px] !border-indigo-100 !bg-indigo-25" />,
dataset: <AppIcon innerIcon={DatasetSvg} className="border-[0.5px]! border-indigo-100! bg-indigo-25!" />,
webapp: (
<div className="rounded-lg border-[0.5px] border-divider-subtle bg-util-colors-blue-brand-blue-brand-500 p-1 shadow-md">
<WindowCursor className="h-4 w-4 text-text-primary-on-surface" />
</div>
),
notion: <AppIcon innerIcon={NotionSvg} className="!border-[0.5px] !border-indigo-100 !bg-white" />,
notion: <AppIcon innerIcon={NotionSvg} className="border-[0.5px]! border-indigo-100! bg-white!" />,
}
export default function AppBasic({ icon, icon_background, name, isExternal, type, hoverTip, textStyle, isExtraInLine, mode = 'expand', iconType = 'app', hideType }: IAppBasicProps) {

View File

@@ -119,7 +119,7 @@ const DropDown = ({
<RiMoreFill className="size-4" />
</ActionButton>
</PortalToFollowElemTrigger>
<PortalToFollowElemContent className="z-[60]">
<PortalToFollowElemContent className="z-60">
<Menu
showDelete={!isCurrentWorkspaceDatasetOperator}
openRenameModal={openRenameModal}

View File

@@ -77,7 +77,7 @@ const DatasetSidebarDropdown = ({
<PortalToFollowElemTrigger onClick={handleTrigger}>
<div
className={cn(
'flex cursor-pointer items-center rounded-[10px] border-[0.5px] border-components-actionbar-border bg-components-actionbar-bg p-1 shadow-lg backdrop-blur-sm hover:bg-background-default-hover',
'flex cursor-pointer items-center radius-lg border-[0.5px] border-components-actionbar-border bg-components-actionbar-bg p-1 shadow-lg backdrop-blur-xs hover:bg-background-default-hover',
open && 'bg-background-default-hover',
)}
>
@@ -132,7 +132,7 @@ const DatasetSidebarDropdown = ({
<Divider
type="horizontal"
bgStyle="gradient"
className="my-0 h-px bg-gradient-to-r from-divider-subtle to-background-gradient-mask-transparent"
className="my-0 h-px bg-linear-to-r from-divider-subtle to-background-gradient-mask-transparent"
/>
</div>
<nav className="flex min-h-[200px] grow flex-col gap-y-0.5 px-3 py-2">

View File

@@ -118,7 +118,7 @@ const AppDetailNav = ({
className={cn(
'my-0 h-px',
expand
? 'bg-gradient-to-r from-divider-subtle to-background-gradient-mask-transparent'
? 'bg-linear-to-r from-divider-subtle to-background-gradient-mask-transparent'
: 'bg-divider-subtle',
)}
/>

View File

@@ -72,7 +72,7 @@ const AddAnnotationModal: FC<Props> = ({
<Drawer
isShow={isShow}
onHide={onHide}
maxWidthClassName="!max-w-[480px]"
maxWidthClassName="max-w-[480px]!"
title={t('addModal.title', { ns: 'appAnnotation' }) as string}
body={(
<div className="space-y-6 p-6 pb-4">

View File

@@ -40,7 +40,7 @@ const BatchAction: FC<IBatchActionProps> = ({
}
return (
<div className={cn('pointer-events-none flex w-full justify-center', 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 backdrop-blur-[5px]">
<div className="pointer-events-auto flex items-center gap-x-1 radius-lg border border-components-actionbar-border-accent bg-components-actionbar-bg-accent p-1 shadow-xl shadow-shadow-shadow-5 backdrop-blur-[5px]">
<div className="inline-flex items-center gap-x-2 py-1 pl-2 pr-3">
<span className="flex h-5 w-5 items-center justify-center rounded-md bg-text-accent px-1 py-0.5 text-xs font-medium text-text-primary-on-surface">
{selectedIds.length}

View File

@@ -107,7 +107,7 @@ const CSVUploader: FC<Props> = ({
<div className={cn('group flex h-20 items-center rounded-xl border border-components-panel-border bg-components-panel-bg px-6 text-sm font-normal', 'hover:border-components-panel-bg-blur hover:bg-components-panel-bg-blur')}>
<CSVIcon className="shrink-0" />
<div className="ml-2 flex w-0 grow">
<span className="max-w-[calc(100%_-_30px)] overflow-hidden text-ellipsis whitespace-nowrap text-text-primary">{file.name.replace(/.csv$/, '')}</span>
<span className="max-w-[calc(100%-30px)] overflow-hidden text-ellipsis whitespace-nowrap text-text-primary">{file.name.replace(/.csv$/, '')}</span>
<span className="shrink-0 text-text-tertiary">.csv</span>
</div>
<div className="hidden items-center group-hover:flex">

View File

@@ -88,7 +88,7 @@ const BatchModal: FC<IBatchModalProps> = ({
}
return (
<Modal isShow={isShow} onClose={noop} className="!max-w-[520px] !rounded-xl px-8 py-6">
<Modal isShow={isShow} onClose={noop} className="max-w-[520px]! rounded-xl! px-8 py-6">
<div className="system-xl-medium relative pb-1 text-text-primary">{t('batchModal.title', { ns: 'appAnnotation' })}</div>
<div className="absolute right-4 top-4 cursor-pointer p-2" onClick={onCancel}>
<RiCloseLine className="h-4 w-4 text-text-tertiary" />

View File

@@ -89,7 +89,7 @@ const EditAnnotationModal: FC<Props> = ({
<Drawer
isShow={isShow}
onHide={onHide}
maxWidthClassName="!max-w-[480px]"
maxWidthClassName="max-w-[480px]!"
title={t('editModal.title', { ns: 'appAnnotation' }) as string}
body={(
<div>

View File

@@ -97,7 +97,7 @@ const HeaderOptions: FC<Props> = ({
<div className="w-full py-1">
<button
type="button"
className="mx-1 flex h-9 w-[calc(100%_-_8px)] cursor-pointer items-center space-x-2 rounded-lg px-3 py-2 hover:bg-components-panel-on-panel-item-bg-hover disabled:opacity-50"
className="mx-1 flex h-9 w-[calc(100%-8px)] cursor-pointer items-center space-x-2 rounded-lg px-3 py-2 hover:bg-components-panel-on-panel-item-bg-hover disabled:opacity-50"
onClick={() => {
setShowBulkImportModal(true)
}}
@@ -106,7 +106,7 @@ const HeaderOptions: FC<Props> = ({
<span className="system-sm-regular grow text-left text-text-secondary">{t('table.header.bulkImport', { ns: 'appAnnotation' })}</span>
</button>
<Menu as="div" className="relative h-full w-full">
<MenuButton className="mx-1 flex h-9 w-[calc(100%_-_8px)] cursor-pointer items-center space-x-2 rounded-lg px-3 py-2 hover:bg-components-panel-on-panel-item-bg-hover disabled:opacity-50">
<MenuButton className="mx-1 flex h-9 w-[calc(100%-8px)] cursor-pointer items-center space-x-2 rounded-lg px-3 py-2 hover:bg-components-panel-on-panel-item-bg-hover disabled:opacity-50">
<FileDownload02 className="h-4 w-4 text-text-tertiary" />
<span className="system-sm-regular grow text-left text-text-secondary">{t('table.header.bulkExport', { ns: 'appAnnotation' })}</span>
<ChevronRight className="h-[14px] w-[14px] shrink-0 text-text-tertiary" />
@@ -122,7 +122,7 @@ const HeaderOptions: FC<Props> = ({
>
<MenuItems
className={cn(
'absolute left-1 top-[1px] z-10 min-w-[100px] origin-top-right -translate-x-full rounded-xl border-[0.5px] border-components-panel-on-panel-item-bg bg-components-panel-bg py-1 shadow-xs',
'absolute left-1 top-px z-10 min-w-[100px] origin-top-right -translate-x-full rounded-xl border-[0.5px] border-components-panel-on-panel-item-bg bg-components-panel-bg py-1 shadow-xs',
)}
>
<CSVDownloader
@@ -134,11 +134,11 @@ const HeaderOptions: FC<Props> = ({
...list.map(item => [item.question, item.answer]),
]}
>
<button type="button" disabled={annotationUnavailable} className="mx-1 flex h-9 w-[calc(100%_-_8px)] cursor-pointer items-center space-x-2 rounded-lg px-3 py-2 hover:bg-components-panel-on-panel-item-bg-hover disabled:opacity-50">
<button type="button" disabled={annotationUnavailable} className="mx-1 flex h-9 w-[calc(100%-8px)] cursor-pointer items-center space-x-2 rounded-lg px-3 py-2 hover:bg-components-panel-on-panel-item-bg-hover disabled:opacity-50">
<span className="system-sm-regular grow text-left text-text-secondary">CSV</span>
</button>
</CSVDownloader>
<button type="button" disabled={annotationUnavailable} className={cn('mx-1 flex h-9 w-[calc(100%_-_8px)] cursor-pointer items-center space-x-2 rounded-lg px-3 py-2 hover:bg-components-panel-on-panel-item-bg-hover disabled:opacity-50', '!border-0')} onClick={JSONLOutput}>
<button type="button" disabled={annotationUnavailable} className={cn('mx-1 flex h-9 w-[calc(100%-8px)] cursor-pointer items-center space-x-2 rounded-lg px-3 py-2 hover:bg-components-panel-on-panel-item-bg-hover disabled:opacity-50', 'border-0!')} onClick={JSONLOutput}>
<span className="system-sm-regular grow text-left text-text-secondary">JSONL</span>
</button>
</MenuItems>
@@ -147,7 +147,7 @@ const HeaderOptions: FC<Props> = ({
<button
type="button"
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"
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"
>
<RiDeleteBinLine className="h-4 w-4" />
<span className="system-sm-regular grow text-left">
@@ -174,8 +174,8 @@ const HeaderOptions: FC<Props> = ({
<RiMoreFill className="h-4 w-4" />
}
btnClassName="btn btn-secondary btn-medium w-8 p-0"
className="!z-20 h-fit !w-[155px]"
popupClassName="!w-full !overflow-visible"
className="z-20! h-fit w-[155px]!"
popupClassName="w-full! overflow-visible!"
manualClose
/>
{showAddModal && (

View File

@@ -177,14 +177,14 @@ const Annotation: FC<Props> = (props) => {
</Switch>
{annotationConfig?.enabled && (
<div className="flex items-center pl-1.5">
<div className="mr-1 h-3.5 w-[1px] shrink-0 bg-divider-subtle"></div>
<div className="mr-1 h-3.5 w-px shrink-0 bg-divider-subtle"></div>
<ActionButton onClick={() => setIsShowEdit(true)}>
<RiEqualizer2Line className="h-4 w-4 text-text-tertiary" />
</ActionButton>
</div>
)}
</div>
<div className="mx-3 h-3.5 w-[1px] shrink-0 bg-divider-regular"></div>
<div className="mx-3 h-3.5 w-px shrink-0 bg-divider-regular"></div>
</>
)}

View File

@@ -196,7 +196,7 @@ const ViewAnnotationModal: FC<Props> = ({
<Drawer
isShow={isShow}
onHide={onHide}
maxWidthClassName="!max-w-[800px]"
maxWidthClassName="max-w-[800px]!"
title={(
<TabSlider
className="relative top-[9px] shrink-0"
@@ -204,7 +204,7 @@ const ViewAnnotationModal: FC<Props> = ({
onChange={v => setActiveTab(v as TabType)}
options={tabs}
noBorderBottom
itemClassName="!pb-3.5"
itemClassName="pb-3.5!"
/>
)}
body={(

View File

@@ -22,7 +22,7 @@ const AccessControlDialog = ({
}, [onClose])
return (
<Transition appear show={show} as={Fragment}>
<Dialog as="div" open={true} className="relative z-[99]" onClose={() => null}>
<Dialog as="div" open={true} className="relative z-99" onClose={() => null}>
<Transition.Child
as={Fragment}
enter="ease-out duration-300"

View File

@@ -13,7 +13,7 @@ const AccessControlItem: FC<AccessControlItemProps> = ({ type, children }) => {
if (currentMenu !== type) {
return (
<div
className="cursor-pointer rounded-[10px] border-[1px]
className="cursor-pointer radius-lg border
border-components-option-card-option-border bg-components-option-card-option-bg
hover:border-components-option-card-option-border-hover hover:bg-components-option-card-option-bg-hover"
onClick={() => setCurrentMenu(type)}
@@ -24,7 +24,7 @@ const AccessControlItem: FC<AccessControlItemProps> = ({ type, children }) => {
}
return (
<div className="rounded-[10px] border-[1.5px]
<div className="radius-lg border-[1.5px]
border-components-option-card-option-selected-border bg-components-option-card-option-selected-bg shadow-sm"
>
{children}

View File

@@ -53,7 +53,7 @@ export default function AddMemberOrGroupDialog() {
</Button>
</PortalToFollowElemTrigger>
{open && <FloatingOverlay />}
<PortalToFollowElemContent className="z-[100]">
<PortalToFollowElemContent className="z-100">
<div className="relative flex max-h-[400px] w-[400px] flex-col overflow-y-auto rounded-xl border-[0.5px] border-components-panel-border bg-components-panel-bg-blur shadow-lg backdrop-blur-[5px]">
<div className="sticky top-0 z-10 bg-components-panel-bg-blur p-2 pb-0.5 backdrop-blur-[5px]">
<Input value={keyword} onChange={handleKeywordChange} showLeftIcon placeholder={t('accessControlDialog.operateGroupAndMember.searchPlaceholder', { ns: 'app' }) as string} />

View File

@@ -275,7 +275,7 @@ const AppPublisher = ({
<span className="i-ri-arrow-down-s-line h-4 w-4 text-components-button-primary-text" />
</Button>
</PortalToFollowElemTrigger>
<PortalToFollowElemContent className="z-[11]">
<PortalToFollowElemContent className="z-11">
<div className="w-[320px] rounded-2xl border-[0.5px] border-components-panel-border bg-components-panel-bg shadow-xl shadow-shadow-shadow-5">
<div className="p-4 pt-3">
<div className="flex h-6 items-center text-text-tertiary system-xs-medium-uppercase">

View File

@@ -19,7 +19,7 @@ const SuggestedAction = ({ icon, link, disabled, children, className, onClick, .
href={disabled ? undefined : link}
target="_blank"
rel="noreferrer"
className={cn('flex items-center justify-start gap-2 rounded-lg bg-background-section-burn px-2.5 py-2 text-text-secondary transition-colors [&:not(:first-child)]:mt-1', disabled ? 'cursor-not-allowed opacity-30 shadow-xs' : 'cursor-pointer text-text-secondary hover:bg-state-accent-hover hover:text-text-accent', className)}
className={cn('flex items-center justify-start gap-2 rounded-lg bg-background-section-burn px-2.5 py-2 text-text-secondary transition-colors not-first:mt-1', disabled ? 'cursor-not-allowed opacity-30 shadow-xs' : 'cursor-pointer text-text-secondary hover:bg-state-accent-hover hover:text-text-accent', className)}
onClick={handleClick}
{...props}
>

View File

@@ -1,3 +1,5 @@
@reference "../../../../../styles/globals.css";
.item {
background-color: rgba(21, 94, 239, 0.05);
}

View File

@@ -20,7 +20,7 @@ const FormattingChanged: FC<IFormattingChangedProps> = ({
description={t('feature.dataSet.queryVariable.unableToQueryDataSetTip', { ns: 'appDebug' })}
footer={(
<div className="flex space-x-2">
<Button variant="primary" className="flex !w-[96px] justify-start" onClick={onConfirm}>
<Button variant="primary" className="flex w-[96px]! justify-start" onClick={onConfirm}>
<span className="text-[13px] font-medium">{t('feature.dataSet.queryVariable.ok', { ns: 'appDebug' })}</span>
</Button>
</div>

View File

@@ -15,8 +15,8 @@ const HasNotSetAPI: FC<IHasNotSetAPIProps> = ({
return (
<div className="flex grow flex-col items-center justify-center pb-[120px]">
<div className="flex w-full max-w-[400px] flex-col gap-2 px-4 py-4">
<div className="flex h-10 w-10 items-center justify-center rounded-[10px]">
<div className="flex h-full w-full items-center justify-center overflow-hidden rounded-[10px] border-[0.5px] border-components-card-border bg-components-card-bg p-1 shadow-lg backdrop-blur-[5px]">
<div className="flex h-10 w-10 items-center justify-center radius-lg">
<div className="flex h-full w-full items-center justify-center overflow-hidden radius-lg border-[0.5px] border-components-card-border bg-components-card-bg p-1 shadow-lg backdrop-blur-[5px]">
<span className="i-ri-brain-2-line h-5 w-5 text-text-tertiary" />
</div>
</div>

View File

@@ -1,3 +1,5 @@
@reference "../../../../../styles/globals.css";
.mask {
backdrop-filter: blur(2px);
}

View File

@@ -167,7 +167,7 @@ const AdvancedPromptInput: FC<Props> = ({
</div>
)
return (
<div className={`rounded-xl bg-gradient-to-r from-components-input-border-active-prompt-1 to-components-input-border-active-prompt-2 p-0.5 shadow-xs ${!isContextMissing ? '' : s.warningBorder}`}>
<div className={`rounded-xl bg-linear-to-r from-components-input-border-active-prompt-1 to-components-input-border-active-prompt-2 p-0.5 shadow-xs ${!isContextMissing ? '' : s.warningBorder}`}>
<div className="rounded-xl bg-background-default">
{isContextMissing
? contextMissing

View File

@@ -53,7 +53,7 @@ const ConfirmAddVar: FC<IConfirmAddVarProps> = ({
>
{VarIcon}
</div>
<div className="grow-1">
<div className="grow">
<div className="text-sm font-medium text-text-primary">{t('autoAddVar', { ns: 'appDebug' })}</div>
<div className="mt-[15px] flex max-h-[66px] flex-wrap space-x-1 overflow-y-auto px-1">
{varNameArr.map(name => (

View File

@@ -32,7 +32,7 @@ const HistoryPanel: FC<Props> = ({
headerRight={(
<div className="flex items-center">
<div className="text-xs text-text-tertiary">{t('feature.conversationHistory.description', { ns: 'appDebug' })}</div>
<div className="ml-3 h-[14px] w-[1px] bg-divider-regular"></div>
<div className="ml-3 h-[14px] w-px bg-divider-regular"></div>
<OperationBtn type="edit" onClick={onShowEditModal} />
</div>
)}

View File

@@ -90,7 +90,7 @@ const PromptEditorHeightResizeWrap: FC<Props> = ({
className="absolute bottom-0 left-0 flex h-2 w-full cursor-row-resize justify-center"
onMouseDown={handleStartResize}
>
<div className="h-[3px] w-5 rounded-sm bg-gray-300"></div>
<div className="h-[3px] w-5 rounded-xs bg-gray-300"></div>
</div>
)}
</div>

View File

@@ -176,7 +176,7 @@ const Prompt: FC<ISimplePromptInput> = ({
const [editorHeight, setEditorHeight] = useState(minHeight)
return (
<div className={cn('relative rounded-xl bg-gradient-to-r from-components-input-border-active-prompt-1 to-components-input-border-active-prompt-2 p-0.5 shadow-xs')}>
<div className={cn('relative rounded-xl bg-linear-to-r from-components-input-border-active-prompt-1 to-components-input-border-active-prompt-2 p-0.5 shadow-xs')}>
<div className="rounded-xl bg-background-section-burn">
{!noTitle && (
<div className="flex h-11 items-center justify-between pl-3 pr-2.5">

View File

@@ -1,3 +1,5 @@
@reference "../../../../styles/globals.css";
.gradientBorder {
background: radial-gradient(circle at 100% 100%, #fcfcfd 0, #fcfcfd 10px, transparent 10px) 0% 0%/12px 12px no-repeat,
radial-gradient(circle at 0 100%, #fcfcfd 0, #fcfcfd 10px, transparent 10px) 100% 0%/12px 12px no-repeat,

View File

@@ -20,7 +20,7 @@ const Field: FC<Props> = ({
const { t } = useTranslation()
return (
<div className={cn(className)}>
<div className="!leading-8 text-text-secondary system-sm-semibold">
<div className="leading-8! text-text-secondary system-sm-semibold">
{title}
{isOptional && (
<span className="ml-1 text-text-tertiary system-xs-regular">

View File

@@ -466,7 +466,7 @@ const ConfigModal: FC<IConfigModalProps> = ({
value={jsonSchemaStr}
onChange={handleJSONSchemaChange}
noWrapper
className="bg h-[80px] overflow-y-auto rounded-[10px] bg-components-input-bg-normal p-1"
className="bg h-[80px] overflow-y-auto radius-lg bg-components-input-bg-normal p-1"
placeholder={
<div className="whitespace-pre">{jsonConfigPlaceHolder}</div>
}
@@ -474,12 +474,12 @@ const ConfigModal: FC<IConfigModalProps> = ({
</Field>
)}
<div className="!mt-5 flex h-6 items-center space-x-2">
<div className="mt-5! flex h-6 items-center space-x-2">
<Checkbox checked={tempPayload.required} disabled={tempPayload.hide} onCheck={() => handlePayloadChange('required')(!tempPayload.required)} />
<span className="system-sm-semibold text-text-secondary">{t('variableConfig.required', { ns: 'appDebug' })}</span>
</div>
<div className="!mt-5 flex h-6 items-center space-x-2">
<div className="mt-5! flex h-6 items-center space-x-2">
<Checkbox checked={tempPayload.hide} disabled={tempPayload.required} onCheck={() => handlePayloadChange('hide')(!tempPayload.hide)} />
<span className="system-sm-semibold text-text-secondary">{t('variableConfig.hide', { ns: 'appDebug' })}</span>
</div>

View File

@@ -67,9 +67,9 @@ const TypeSelector: FC<Props> = ({
</div>
</PortalToFollowElemTrigger>
<PortalToFollowElemContent className="z-[61]">
<PortalToFollowElemContent className="z-61">
<div
className={cn('w-[432px] rounded-md border-[0.5px] border-components-panel-border bg-components-panel-bg px-1 py-1 text-base shadow-lg focus:outline-none sm:text-sm', popupInnerClassName)}
className={cn('w-[432px] rounded-md border-[0.5px] border-components-panel-border bg-components-panel-bg px-1 py-1 text-base shadow-lg focus:outline-hidden sm:text-sm', popupInnerClassName)}
>
{items.map((item: Item) => (
<div

View File

@@ -63,7 +63,7 @@ const ConfigSelect: FC<IConfigSelectProps> = ({
return item
}))
}}
className="h-9 w-full grow cursor-pointer overflow-x-auto rounded-lg border-0 bg-transparent pl-1.5 pr-8 text-sm leading-9 text-text-secondary focus:outline-none"
className="h-9 w-full grow cursor-pointer overflow-x-auto rounded-lg border-0 bg-transparent pl-1.5 pr-8 text-sm leading-9 text-text-secondary focus:outline-hidden"
onFocus={() => setFocusID(index)}
onBlur={() => setFocusID(null)}
/>

View File

@@ -60,7 +60,7 @@ const SelectVarType: FC<Props> = ({
<OperationBtn type="add" />
</PortalToFollowElemTrigger>
<PortalToFollowElemContent style={{ zIndex: 1000 }}>
<div className="min-w-[192px] rounded-lg border border-components-panel-border bg-components-panel-bg-blur shadow-lg backdrop-blur-sm">
<div className="min-w-[192px] rounded-lg border border-components-panel-border bg-components-panel-bg-blur shadow-lg backdrop-blur-xs">
<div className="p-1">
<SelectItem type={InputVarType.textInput} value="string" text={t('variableConfig.string', { ns: 'appDebug' })} onClick={handleChange}></SelectItem>
<SelectItem type={InputVarType.paragraph} value="paragraph" text={t('variableConfig.paragraph', { ns: 'appDebug' })} onClick={handleChange}></SelectItem>

View File

@@ -119,7 +119,7 @@ const ConfigVision: FC = () => {
: (
<>
<ParamConfig />
<div className="ml-1 mr-3 h-3.5 w-[1px] bg-divider-regular"></div>
<div className="ml-1 mr-3 h-3.5 w-px bg-divider-regular"></div>
<Switch
value={isImageEnabled}
onChange={handleChange}

View File

@@ -50,7 +50,7 @@ const AgentSetting: FC<Props> = ({
return (
<div
className="fixed inset-0 z-[100] flex justify-end overflow-hidden p-2"
className="fixed inset-0 z-100 flex justify-end overflow-hidden p-2"
style={{
backgroundColor: 'rgba(16, 24, 40, 0.20)',
}}
@@ -151,7 +151,7 @@ const AgentSetting: FC<Props> = ({
</div>
<div
className="sticky bottom-0 z-[5] flex w-full justify-end border-t border-divider-regular bg-background-section-burn px-6 py-4"
className="sticky bottom-0 z-5 flex w-full justify-end border-t border-divider-regular bg-background-section-burn px-6 py-4"
>
<Button
onClick={onCancel}

View File

@@ -171,7 +171,7 @@ const SettingBuiltInTool: FC<Props> = ({
footer={null}
mask={false}
positionCenter={false}
panelClassName={cn('mb-2 mr-2 mt-[64px] !w-[420px] !max-w-[420px] justify-start rounded-2xl border-[0.5px] border-components-panel-border !bg-components-panel-bg !p-0 shadow-xl')}
panelClassName={cn('mb-2 mr-2 mt-[64px] w-[420px]! max-w-[420px]! justify-start rounded-2xl border-[0.5px] border-components-panel-border bg-components-panel-bg! p-0! shadow-xl')}
>
<>
{isLoading && <Loading type="app" />}
@@ -246,8 +246,8 @@ const SettingBuiltInTool: FC<Props> = ({
{isInfoActive ? infoUI : settingUI}
{!readonly && !isInfoActive && (
<div className="flex shrink-0 justify-end space-x-2 rounded-b-[10px] bg-components-panel-bg py-2">
<Button className="flex h-8 items-center !px-3 !text-[13px] font-medium " onClick={onHide}>{t('operation.cancel', { ns: 'common' })}</Button>
<Button className="flex h-8 items-center !px-3 !text-[13px] font-medium" variant="primary" disabled={!isValid} onClick={() => onSave?.(tempSetting)}>{t('operation.save', { ns: 'common' })}</Button>
<Button className="flex h-8 items-center px-3! text-[13px]! font-medium " onClick={onHide}>{t('operation.cancel', { ns: 'common' })}</Button>
<Button className="flex h-8 items-center px-3! text-[13px]! font-medium" variant="primary" disabled={!isValid} onClick={() => onSave?.(tempSetting)}>{t('operation.save', { ns: 'common' })}</Button>
</div>
)}
</div>

View File

@@ -41,7 +41,7 @@ type ItemProps = {
const SelectItem: FC<ItemProps> = ({ text, value, Icon, isChecked, description, onClick, disabled }) => {
return (
<div
className={cn(disabled ? 'opacity-50' : 'cursor-pointer', isChecked ? 'border-[2px] border-indigo-600 shadow-sm' : 'border border-gray-100', 'mb-2 rounded-xl bg-gray-25 p-3 pr-4 hover:bg-gray-50')}
className={cn(disabled ? 'opacity-50' : 'cursor-pointer', isChecked ? 'border-2 border-indigo-600 shadow-sm' : 'border border-gray-100', 'mb-2 rounded-xl bg-gray-25 p-3 pr-4 hover:bg-gray-50')}
onClick={() => !disabled && onClick(value)}
>
<div className="flex items-center justify-between">

View File

@@ -278,7 +278,7 @@ const GetAutomaticRes: FC<IGetAutomaticResProps> = ({
<Modal
isShow={isShow}
onClose={onClose}
className="min-w-[1140px] !p-0"
className="min-w-[1140px] p-0!"
>
<div className="flex h-[680px] flex-wrap">
<div className="h-full w-[570px] shrink-0 overflow-y-auto border-r border-divider-regular p-6">
@@ -288,7 +288,7 @@ const GetAutomaticRes: FC<IGetAutomaticResProps> = ({
</div>
<div>
<ModelParameterModal
popupClassName="!w-[520px]"
popupClassName="w-[520px]!"
isAdvancedMode={true}
provider={model.provider}
completionParams={model.completion_params}

View File

@@ -36,7 +36,7 @@ const IdeaOutput: FC<Props> = ({
{t(`${i18nPrefix}.optional`, { ns: 'appDebug' })}
)
</div>
<ArrowDownRoundFill className={cn('size text-text-quaternary', isFoldIdeaOutput && 'relative top-[1px] rotate-[-90deg]')} />
<ArrowDownRoundFill className={cn('size text-text-quaternary', isFoldIdeaOutput && 'relative top-px -rotate-90')} />
</div>
{!isFoldIdeaOutput && (
<Textarea

View File

@@ -45,7 +45,7 @@ const InstructionEditor: FC<Props> = ({
const isCode = generatorType === 'code'
const placeholder = isCode
? (
<div className="system-sm-regular whitespace-break-spaces !leading-6 text-text-placeholder">
<div className="system-sm-regular whitespace-break-spaces leading-6! text-text-placeholder">
{t(`${i18nPrefix}.codeGenInstructionPlaceHolderLine`, { ns: 'appDebug' })}
</div>
)
@@ -67,7 +67,7 @@ const InstructionEditor: FC<Props> = ({
return (
<div className="relative">
<PromptEditor
wrapperClassName="border !border-components-input-bg-normal bg-components-input-bg-normal hover:!border-components-input-bg-hover rounded-[10px] px-4 pt-3"
wrapperClassName="border border-components-input-bg-normal! bg-components-input-bg-normal hover:border-components-input-bg-hover! radius-lg px-4 pt-3"
key={editorKey}
instanceId={editorKey}
placeholder={placeholder}
@@ -111,9 +111,9 @@ const InstructionEditor: FC<Props> = ({
/>
<div className="system-xs-regular absolute bottom-0 left-4 flex h-8 items-center space-x-0.5 text-components-input-text-placeholder">
<span>{t('generate.press', { ns: 'appDebug' })}</span>
<span className="system-kbd flex h-4 w-3.5 items-center justify-center rounded-[4px] bg-components-kbd-bg-gray text-text-placeholder">/</span>
<span className="system-kbd flex h-4 w-3.5 items-center justify-center radius-xs bg-components-kbd-bg-gray text-text-placeholder">/</span>
<span>{t('generate.to', { ns: 'appDebug' })}</span>
<span onClick={handleInsertVariable} className="!ml-1 cursor-pointer hover:border-b hover:border-dotted hover:border-text-tertiary hover:text-text-tertiary">{t('generate.insertContext', { ns: 'appDebug' })}</span>
<span onClick={handleInsertVariable} className="ml-1! cursor-pointer hover:border-b hover:border-dotted hover:border-text-tertiary hover:text-text-tertiary">{t('generate.insertContext', { ns: 'appDebug' })}</span>
</div>
</div>
)

View File

@@ -40,11 +40,11 @@ const PromptToast = ({
<RiSparklingFill className="size-3.5 text-components-input-border-active-prompt-1" />
<span className={cn(s.optimizationNoteText, 'system-xs-semibold-uppercase')}>{t('generate.optimizationNote', { ns: 'appDebug' })}</span>
</div>
<RiArrowDownSLine className={cn('size-4 cursor-pointer text-text-tertiary', isFold && 'rotate-[-90deg]')} onClick={toggleFold} />
<RiArrowDownSLine className={cn('size-4 cursor-pointer text-text-tertiary', isFold && '-rotate-90')} onClick={toggleFold} />
</div>
{!isFold && (
<div className="pb-4 pr-4">
<Markdown className="!text-sm" content={message} />
<Markdown className="text-sm!" content={message} />
</div>
)}
</div>

View File

@@ -1,3 +1,5 @@
@reference "../../../../../styles/globals.css";
.textGradient {
background: linear-gradient(92deg, #2250F2 -29.55%, #0EBCF3 75.22%);
-webkit-background-clip: text;

View File

@@ -63,7 +63,7 @@ const VersionSelector: React.FC<VersionSelectorProps> = ({ versionLen, value, on
</div>
</PortalToFollowElemTrigger>
<PortalToFollowElemContent className={cn(
'z-[99]',
'z-99',
)}
>
<div

View File

@@ -197,7 +197,7 @@ export const GetCodeGeneratorResModal: FC<IGetCodeGeneratorResProps> = (
<Modal
isShow={isShow}
onClose={onClose}
className="min-w-[1140px] !p-0"
className="min-w-[1140px] p-0!"
>
<div className="relative flex h-[680px] flex-wrap">
<div className="h-full w-[570px] shrink-0 overflow-y-auto border-r border-divider-regular p-6">
@@ -207,7 +207,7 @@ export const GetCodeGeneratorResModal: FC<IGetCodeGeneratorResProps> = (
</div>
<div className="mb-4">
<ModelParameterModal
popupClassName="!w-[520px]"
popupClassName="w-[520px]!"
isAdvancedMode={true}
provider={model.provider}
completionParams={model.completion_params}

View File

@@ -67,7 +67,7 @@ const ConfigAudio: FC = () => {
</div>
{!readonly && (
<div className="flex shrink-0 items-center">
<div className="ml-1 mr-3 h-3.5 w-[1px] bg-divider-subtle"></div>
<div className="ml-1 mr-3 h-3.5 w-px bg-divider-subtle"></div>
<Switch
value={isAudioEnabled}
onChange={handleChange}

View File

@@ -67,7 +67,7 @@ const ConfigDocument: FC = () => {
</div>
{!readonly && (
<div className="flex shrink-0 items-center">
<div className="ml-1 mr-3 h-3.5 w-[1px] bg-divider-subtle"></div>
<div className="ml-1 mr-3 h-3.5 w-px bg-divider-subtle"></div>
<Switch
value={isDocumentEnabled}
onChange={handleChange}

View File

@@ -1,3 +1,5 @@
@reference "../../../../styles/globals.css";
.ctrlBtn {
left: -16px;
right: -16px;

View File

@@ -112,7 +112,7 @@ const Item: FC<ItemProps> = ({
/>
)
}
<Drawer isOpen={showSettingsModal} onClose={() => setShowSettingsModal(false)} footer={null} mask={isMobile} panelClassName="mt-16 mx-2 sm:mr-2 mb-3 !p-0 !max-w-[640px] rounded-xl">
<Drawer isOpen={showSettingsModal} onClose={() => setShowSettingsModal(false)} footer={null} mask={isMobile} panelClassName="mt-16 mx-2 sm:mr-2 mb-3 p-0! max-w-[640px]! rounded-xl">
{showSettingsModal && (
<SettingsModal
currentDataset={config}

View File

@@ -24,7 +24,7 @@ export type Props = {
}
const VarItem: FC<{ item: Option }> = ({ item }) => (
<div className="flex h-[18px] items-center space-x-1 rounded bg-[#EFF8FF] px-1">
<div className="flex h-[18px] items-center space-x-1 rounded-sm bg-[#EFF8FF] px-1">
<IconTypeIcon type={item.type as IInputTypeIconProps['type']} className="text-[#1570EF]" />
<div className="flex text-xs font-medium text-[#1570EF]">
<span className="opacity-60">{'{{'}</span>

View File

@@ -198,7 +198,7 @@ const ConfigContent: FC<Props> = ({
<div className="mb-2 mr-2 shrink-0 text-text-secondary system-xs-semibold-uppercase">
{t('rerankSettings', { ns: 'dataset' })}
</div>
<Divider bgStyle="gradient" className="m-0 !h-px" />
<Divider bgStyle="gradient" className="m-0 h-px!" />
</div>
{
selectedDatasetsMode.inconsistentEmbeddingModel
@@ -369,7 +369,7 @@ const ConfigContent: FC<Props> = ({
</div>
<ModelParameterModal
isInWorkflow={isInWorkflow}
popupClassName="!w-[387px]"
popupClassName="w-[387px]!"
isAdvancedMode={true}
provider={model?.provider}
completionParams={model?.completion_params}

View File

@@ -132,7 +132,7 @@ const SelectDataSet: FC<ISelectDataSetProps> = ({
imageUrl={item.icon_info.icon_type === 'image' ? item.icon_info.icon_url : undefined}
/>
</div>
<div className={cn('max-w-[200px] truncate text-[13px] font-medium text-text-secondary', !item.embedding_available && '!max-w-[120px] opacity-30')}>{item.name}</div>
<div className={cn('max-w-[200px] truncate text-[13px] font-medium text-text-secondary', !item.embedding_available && 'max-w-[120px]! opacity-30')}>{item.name}</div>
{!item.embedding_available && (
<span className="ml-1 shrink-0 rounded-md border border-divider-deep px-1 text-xs font-normal leading-[18px] text-text-tertiary">{t('unavailable', { ns: 'dataset' })}</span>
)}

View File

@@ -323,7 +323,7 @@ const SettingsModal: FC<SettingsModalProps> = ({
/>
<div
className="sticky bottom-0 z-[5] flex w-full justify-end border-t border-divider-regular bg-background-section px-6 py-4"
className="sticky bottom-0 z-5 flex w-full justify-end border-t border-divider-regular bg-background-section px-6 py-4"
>
<Button
onClick={onCancel}

View File

@@ -66,7 +66,7 @@ const ChatUserInput = ({
return null
return (
<div className={cn('z-[1] rounded-xl border-[0.5px] border-components-panel-border-subtle bg-components-panel-on-panel-item-bg shadow-xs')}>
<div className={cn('z-1 rounded-xl border-[0.5px] border-components-panel-border-subtle bg-components-panel-on-panel-item-bg shadow-xs')}>
<div className="px-4 pb-4 pt-3">
{promptVariables.map(({ key, name, type, options, max_length, required }, index) => (
<div

View File

@@ -432,7 +432,7 @@ describe('ModelParameterTrigger', () => {
const { container } = render(<>{triggerContent}</>)
expect(container.firstChild).toHaveClass('bg-state-base-hover')
expect(container.firstChild).toHaveClass('!bg-[#FFFAEB]')
expect(container.firstChild).toHaveClass('bg-[#FFFAEB]!')
})
})

View File

@@ -88,13 +88,13 @@ const ModelParameterTrigger: FC<ModelParameterTriggerProps> = ({
className={`
flex h-8 max-w-[200px] cursor-pointer items-center rounded-lg px-2
${open && 'bg-state-base-hover'}
${!isEmpty && !isActive && '!bg-[#FFFAEB]'}
${!isEmpty && !isActive && 'bg-[#FFFAEB]!'}
`}
>
{
iconProvider && !isEmpty && (
<ModelIcon
className="mr-1 !h-4 !w-4"
className="mr-1 h-4! w-4!"
provider={iconProvider}
modelName={currentModel?.model || modelAndParameter.model}
/>
@@ -102,7 +102,7 @@ const ModelParameterTrigger: FC<ModelParameterTriggerProps> = ({
}
{
(!iconProvider || isEmpty) && (
<div className="mr-1 flex h-4 w-4 items-center justify-center rounded">
<div className="mr-1 flex h-4 w-4 items-center justify-center rounded-sm">
<span className="i-custom-vender-line-shapes-cube-outline h-4 w-4 text-text-accent" />
</div>
)

View File

@@ -412,7 +412,7 @@ const Debug: FC<IDebug> = ({
{multipleModelConfigs.length}
/4)
</Button>
<div className="mx-2 h-[14px] w-[1px] bg-divider-regular" />
<div className="mx-2 h-[14px] w-px bg-divider-regular" />
</>
)
: null
@@ -511,8 +511,8 @@ const Debug: FC<IDebug> = ({
{modelConfig.provider && isAPIKeySet && !modelConfig.model_id && (
<div className="flex grow flex-col items-center justify-center pb-[120px]">
<div className="flex w-full max-w-[400px] flex-col gap-2 px-4 py-4">
<div className="flex h-10 w-10 items-center justify-center rounded-[10px]">
<div className="flex h-full w-full items-center justify-center overflow-hidden rounded-[10px] border-[0.5px] border-components-card-border bg-components-card-bg p-1 shadow-lg backdrop-blur-[5px]">
<div className="flex h-10 w-10 items-center justify-center radius-lg">
<div className="flex h-full w-full items-center justify-center overflow-hidden radius-lg border-[0.5px] border-components-card-border bg-components-card-bg p-1 shadow-lg backdrop-blur-[5px]">
<span className="i-ri-brain-2-line h-5 w-5 text-text-tertiary" />
</div>
</div>

View File

@@ -1005,7 +1005,7 @@ const Configuration: FC = () => {
</>
)}
{isMobile && (
<Button className="mr-2 !h-8 !text-[13px] font-medium" onClick={showDebugPanel}>
<Button className="mr-2 h-8! text-[13px]! font-medium" onClick={showDebugPanel}>
<span className="mr-1">{t('operation.debugConfig', { ns: 'appDebug' })}</span>
<CodeBracketIcon className="h-4 w-4 text-text-tertiary" />
</Button>

View File

@@ -109,7 +109,7 @@ const PromptValuePanel: FC<IPromptValuePanelProps> = ({
return (
<>
<div className="relative z-[1] mx-3 rounded-xl border-[0.5px] border-components-panel-border-subtle bg-components-panel-on-panel-item-bg shadow-md">
<div className="relative z-1 mx-3 rounded-xl border-[0.5px] border-components-panel-border-subtle bg-components-panel-on-panel-item-bg shadow-md">
<div className={cn('px-4 pt-3', userInputFieldCollapse ? 'pb-3' : 'pb-1')}>
<div className="flex cursor-pointer items-center gap-0.5 py-0.5" onClick={() => setUserInputFieldCollapse(!userInputFieldCollapse)}>
<div className="system-md-semibold-uppercase text-text-secondary">{t('inputs.userInputField', { ns: 'appDebug' })}</div>

View File

@@ -1,3 +1,5 @@
@reference "../../../styles/globals.css";
.advancedPromptMode {
position: relative;
}

View File

@@ -180,7 +180,7 @@ const ExternalDataToolModal: FC<ExternalDataToolModalProps> = ({
open
onOpenChange={noop}
>
<DialogContent className="!w-[640px] !max-w-none !p-8 !pb-6">
<DialogContent className="w-[640px]! max-w-none! p-8! pb-6!">
<div className="mb-2 text-xl font-semibold text-text-primary">
{`${action} ${t('variableConfig.apiBasedVar', { ns: 'appDebug' })}`}
</div>
@@ -212,13 +212,13 @@ const ExternalDataToolModal: FC<ExternalDataToolModalProps> = ({
<input
value={localeData.label || ''}
onChange={e => handleValueChange({ label: e.target.value })}
className="mr-2 block h-9 grow appearance-none rounded-lg bg-components-input-bg-normal px-3 text-sm text-components-input-text-filled outline-none"
className="mr-2 block h-9 grow appearance-none rounded-lg bg-components-input-bg-normal px-3 text-sm text-components-input-text-filled outline-hidden"
placeholder={t('feature.tools.modal.name.placeholder', { ns: 'appDebug' }) || ''}
/>
<AppIcon
size="large"
onClick={() => { setShowEmojiPicker(true) }}
className="!h-9 !w-9 cursor-pointer rounded-lg border-[0.5px] border-components-panel-border"
className="h-9! w-9! cursor-pointer rounded-lg border-[0.5px] border-components-panel-border"
icon={localeData.icon}
background={localeData.icon_background}
/>
@@ -231,7 +231,7 @@ const ExternalDataToolModal: FC<ExternalDataToolModalProps> = ({
<input
value={localeData.variable || ''}
onChange={e => handleValueChange({ variable: e.target.value })}
className="block h-9 w-full appearance-none rounded-lg bg-components-input-bg-normal px-3 text-sm text-components-input-text-filled outline-none"
className="block h-9 w-full appearance-none rounded-lg bg-components-input-bg-normal px-3 text-sm text-components-input-text-filled outline-hidden"
placeholder={t('feature.tools.modal.variableName.placeholder', { ns: 'appDebug' }) || ''}
/>
</div>

View File

@@ -125,7 +125,7 @@ const Tools = () => {
!expanded && !!externalDataToolsConfig.length && (
<>
<div className="mr-3 text-xs text-gray-500">{t('feature.tools.toolsInUse', { ns: 'appDebug', count: externalDataToolsConfig.length })}</div>
<div className="mr-1 h-3.5 w-[1px] bg-gray-200" />
<div className="mr-1 h-3.5 w-px bg-gray-200" />
</>
)
}
@@ -149,7 +149,7 @@ const Tools = () => {
<div className="flex grow items-center">
<AppIcon
size="large"
className="mr-2 !h-6 !w-6 rounded-md border-[0.5px] border-black/5"
className="mr-2 h-6! w-6! rounded-md border-[0.5px] border-black/5"
icon={item.icon}
background={item.icon_background}
/>
@@ -185,7 +185,7 @@ const Tools = () => {
>
<RiDeleteBinLine className="h-4 w-4 text-gray-500 group-hover/action:text-[#D92D20]" />
</div>
<div className="ml-2 mr-3 hidden h-3.5 w-[1px] bg-gray-200 group-hover:block" />
<div className="ml-2 mr-3 hidden h-3.5 w-px bg-gray-200 group-hover:block" />
<Switch
size="lg"
value={item.enabled ?? false}

View File

@@ -45,7 +45,7 @@ const AppCard = ({
imageUrl={appBasicInfo.icon_url}
/>
<AppTypeIcon
wrapperClassName="absolute -bottom-0.5 -right-0.5 w-4 h-4 rounded-[4px] border border-divider-regular outline outline-components-panel-on-panel-item-bg"
wrapperClassName="absolute -bottom-0.5 -right-0.5 w-4 h-4 radius-xs border border-divider-regular outline-solid outline-components-panel-on-panel-item-bg"
className="h-3 w-3"
type={appBasicInfo.mode}
/>
@@ -63,7 +63,7 @@ const AppCard = ({
</div>
</div>
{(canCreate || isTrialApp) && (
<div className={cn('absolute bottom-0 left-0 right-0 hidden bg-gradient-to-t from-components-panel-gradient-2 from-[60.27%] to-transparent p-4 pt-8 group-hover:flex')}>
<div className={cn('absolute bottom-0 left-0 right-0 hidden bg-linear-to-t from-components-panel-gradient-2 from-[60.27%] to-transparent p-4 pt-8 group-hover:flex')}>
<div className={cn('grid h-8 w-full grid-cols-1 items-center space-x-2', canCreate && 'grid-cols-2')}>
{canCreate && (
<Button variant="primary" onClick={() => onCreate()}>

View File

@@ -256,7 +256,7 @@ function CreateApp({ onClose, onSuccess, onCreateFromTemplate, defaultAppMode }:
<div className="flex items-center justify-between pb-10 pt-5">
<div className="flex cursor-pointer items-center gap-1 text-text-tertiary system-xs-regular" onClick={onCreateFromTemplate}>
<span>{t('newApp.noIdeaTip', { ns: 'app' })}</span>
<div className="p-[1px]">
<div className="p-px">
<RiArrowRightLine className="h-3.5 w-3.5" />
</div>
</div>
@@ -322,7 +322,7 @@ function AppTypeCard({ icon, title, description, active, onClick }: AppTypeCardP
cn(`relative box-content h-[84px] w-[191px] cursor-pointer rounded-xl
border-[0.5px] border-components-option-card-option-border
bg-components-panel-on-panel-item-bg p-3 shadow-xs hover:shadow-md`, active
? 'shadow-md outline outline-[1.5px] outline-components-option-card-option-selected-border'
? 'shadow-md outline-solid outline-[1.5px] outline-components-option-card-option-selected-border'
: '')
}
onClick={onClick}

View File

@@ -107,7 +107,7 @@ const Uploader: FC<Props> = ({
/>
<div ref={dropRef}>
{!file && (
<div className={cn('flex h-12 items-center rounded-[10px] border border-dashed border-components-dropzone-border bg-components-dropzone-bg text-sm font-normal', dragging && 'border-components-dropzone-border-accent bg-components-dropzone-bg-accent')}>
<div className={cn('flex h-12 items-center radius-lg border border-dashed border-components-dropzone-border bg-components-dropzone-bg text-sm font-normal', dragging && 'border-components-dropzone-border-accent bg-components-dropzone-bg-accent')}>
<div className="flex w-full items-center justify-center space-x-2">
<RiUploadCloud2Line className="h-6 w-6 text-text-tertiary" />
<div className="text-text-tertiary">
@@ -124,7 +124,7 @@ const Uploader: FC<Props> = ({
<YamlIcon className="h-6 w-6 shrink-0" />
</div>
<div className="flex grow flex-col items-start gap-0.5 py-1 pr-2">
<span className="font-inter max-w-[calc(100%_-_30px)] overflow-hidden text-ellipsis whitespace-nowrap text-[12px] font-medium leading-4 text-text-secondary">{file.name}</span>
<span className="font-inter max-w-[calc(100%-30px)] overflow-hidden text-ellipsis whitespace-nowrap text-[12px] font-medium leading-4 text-text-secondary">{file.name}</span>
<div className="font-inter flex h-3 items-center gap-1 self-stretch text-[10px] font-medium uppercase leading-3 text-text-tertiary">
<span>{displayName}</span>
<span className="text-text-quaternary">·</span>

View File

@@ -74,7 +74,7 @@ const DuplicateAppModal = ({
<Modal
isShow={show}
onClose={noop}
className={cn('relative !max-w-[480px]', 'px-8')}
className={cn('relative max-w-[480px]!', 'px-8')}
>
<div className="absolute right-4 top-4 cursor-pointer p-2" onClick={onHide}>
<RiCloseLine className="h-4 w-4 text-text-tertiary" />

View File

@@ -945,7 +945,7 @@ const ConversationList: FC<IConversationList> = ({ logs, appDetail, onRefresh })
{`${t('detail.annotationTip', { ns: 'appLog', user: annotation?.account?.name })} ${formatTime(annotation?.created_at || dayjs().unix(), 'MM-DD hh:mm A')}`}
</span>
)}
popupClassName={(isHighlight && !isChatMode) ? '' : '!hidden'}
popupClassName={(isHighlight && !isChatMode) ? '' : 'hidden!'}
>
<div className={cn(isEmptyStyle ? 'text-text-quaternary' : 'text-text-secondary', !isHighlight ? '' : 'bg-orange-100', 'overflow-hidden text-ellipsis whitespace-nowrap system-sm-regular')}>
{value || '-'}
@@ -987,7 +987,7 @@ const ConversationList: FC<IConversationList> = ({ logs, appDetail, onRefresh })
<td className="h-4">
{!log.read_at && (
<div className="flex items-center p-3 pr-0.5">
<span className="inline-block h-1.5 w-1.5 rounded bg-util-colors-blue-blue-500"></span>
<span className="inline-block h-1.5 w-1.5 rounded-sm bg-util-colors-blue-blue-500"></span>
</div>
)}
</td>
@@ -1035,7 +1035,7 @@ const ConversationList: FC<IConversationList> = ({ logs, appDetail, onRefresh })
onClose={onCloseDrawer}
mask={isMobile}
footer={null}
panelClassName="mt-16 mx-2 sm:mr-2 mb-4 !p-0 !max-w-[640px] rounded-xl bg-components-panel-bg"
panelClassName="mt-16 mx-2 sm:mr-2 mb-4 p-0! max-w-[640px]! rounded-xl bg-components-panel-bg"
>
<DrawerContext.Provider value={{
onClose: onCloseDrawer,

View File

@@ -59,7 +59,7 @@ const ModelInfo: FC<Props> = ({
<div className={cn('flex items-center rounded-lg')}>
<div className="mr-px flex h-8 shrink-0 items-center gap-1 rounded-l-lg bg-components-input-bg-normal pl-1.5 pr-2">
<ModelIcon
className="!h-5 !w-5"
className="h-5! w-5!"
provider={currentProvider}
modelName={currentModel?.model}
/>
@@ -87,7 +87,7 @@ const ModelInfo: FC<Props> = ({
<RiInformation2Line className="h-4 w-4 text-text-tertiary" />
</div>
</PortalToFollowElemTrigger>
<PortalToFollowElemContent className="z-[1002]">
<PortalToFollowElemContent className="z-1002">
<div className="relative w-[280px] overflow-hidden rounded-2xl border-[0.5px] border-components-panel-border bg-components-panel-bg px-4 pb-2 pt-3 shadow-xl">
<div className="system-sm-semibold-uppercase mb-1 h-6 text-text-secondary">{t('detail.modelParams', { ns: 'appLog' })}</div>
<div className="py-1">

View File

@@ -26,7 +26,7 @@ const VarPanel: FC<Props> = ({
const [imagePreviewUrl, setImagePreviewUrl] = useState('')
return (
<div className="rounded-[10px] border border-divider-subtle bg-chat-bubble-bg">
<div className="radius-lg border border-divider-subtle bg-chat-bubble-bg">
<div
className={cn('flex cursor-pointer items-center gap-1 border-b border-divider-subtle px-3 pb-2 pt-2.5 text-text-secondary', isCollapse && 'border-0 pb-2.5')}
onClick={toggleCollapse}

View File

@@ -279,10 +279,10 @@ function AppCard({
</div>
<CopyFeedback
content={isApp ? appUrl : apiUrl}
className="!size-6"
className="size-6!"
/>
{isApp && <ShareQRCode content={isApp ? appUrl : apiUrl} />}
{isApp && <Divider type="vertical" className="!mx-0.5 !h-3.5 shrink-0" />}
{isApp && <Divider type="vertical" className="mx-0.5! h-3.5! shrink-0" />}
{/* button copy link/ button regenerate */}
{showConfirmDelete && (
<Confirm
@@ -385,9 +385,9 @@ function AppCard({
popupContent={
t('overview.appInfo.preUseReminder', { ns: 'appOverview' }) ?? ''
}
popupClassName={disabled ? 'mt-[-8px]' : '!hidden'}
popupClassName={disabled ? 'mt-[-8px]' : 'hidden!'}
>
<div className="flex items-center justify-center gap-[1px]">
<div className="flex items-center justify-center gap-px">
<op.opIcon className="h-3.5 w-3.5" />
<div className={`${(runningStatus || !disabled) ? 'text-text-tertiary' : 'text-components-button-ghost-text-disabled'} system-xs-medium px-[3px]`}>{op.opName}</div>
</div>

View File

@@ -282,7 +282,7 @@ const Chart: React.FC<IChartProps> = ({
</span>
</span>
)}
textStyle={{ main: `!text-3xl !font-normal ${sumData === 0 ? '!text-text-quaternary' : ''}` }}
textStyle={{ main: `text-3xl! font-normal! ${sumData === 0 ? 'text-text-quaternary!' : ''}` }}
/>
</div>
<ReactECharts option={options} style={{ height: 160 }} />

View File

@@ -50,7 +50,7 @@ const CustomizeModal: FC<IShareLinkProps> = ({
description={t(`${prefixCustomize}.explanation`, { ns: 'appOverview' })}
isShow={isShow}
onClose={onClose}
className="w-[640px] !max-w-2xl"
className="w-[640px] max-w-2xl!"
closable={true}
>
<div className="mt-4 w-full rounded-lg border-[0.5px] border-components-panel-border px-6 py-5">
@@ -80,7 +80,7 @@ const CustomizeModal: FC<IShareLinkProps> = ({
<div className="mb-2 mt-1 text-xs text-text-tertiary">{t(`${prefixCustomize}.way1.step2Tip`, { ns: 'appOverview' })}</div>
<a href="https://vercel.com/docs/concepts/deployments/git/vercel-for-github" target="_blank" rel="noopener noreferrer">
<Button>
<div className="mr-1.5 border-b-[12px] border-l-[7px] border-r-[7px] border-t-0 border-solid border-text-primary border-l-transparent border-r-transparent border-t-transparent"></div>
<div className="mr-1.5 border-b-12 border-l-[7px] border-r-[7px] border-t-0 border-solid border-text-primary border-l-transparent border-r-transparent border-t-transparent"></div>
<span>{t(`${prefixCustomize}.way1.step2Operation`, { ns: 'appOverview' })}</span>
</Button>
</a>

View File

@@ -135,7 +135,7 @@ const Embedded = ({ siteInfo, isShow, onClose, appBaseUrl, accessToken, classNam
title={t(`${prefixEmbedded}.title`, { ns: 'appOverview' })}
isShow={isShow}
onClose={onClose}
className="w-[640px] !max-w-2xl"
className="w-[640px] max-w-2xl!"
wrapperClassName={className}
closable={true}
>

View File

@@ -1,3 +1,5 @@
@reference "../../../../styles/globals.css";
.option {
width: 188px;
height: 128px;

View File

@@ -373,7 +373,7 @@ const SettingsModal: FC<ISettingsModalProps> = ({
{enableBilling && isFreePlan && (
<div className="h-[18px] select-none">
<PremiumBadge size="s" color="blue" allowHover={true} onClick={handlePlanClick}>
<SparklesSoft className="flex h-3.5 w-3.5 items-center py-[1px] pl-[3px] text-components-premium-badge-indigo-text-stop-0" />
<SparklesSoft className="flex h-3.5 w-3.5 items-center py-px pl-[3px] text-components-premium-badge-indigo-text-stop-0" />
<div className="system-xs-medium">
<span className="p-1">
{t('upgradeBtn.encourageShort', { ns: 'billing' })}

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