diff --git a/web/app/components/base/form/components/base/base-field.tsx b/web/app/components/base/form/components/base/base-field.tsx
index 00a1f9b2da..55a4201cf2 100644
--- a/web/app/components/base/form/components/base/base-field.tsx
+++ b/web/app/components/base/form/components/base/base-field.tsx
@@ -3,7 +3,10 @@ import {
memo,
useMemo,
} from 'react'
-import { RiExternalLinkLine } from '@remixicon/react'
+import {
+ RiArrowDownSFill,
+ RiExternalLinkLine,
+} from '@remixicon/react'
import type { AnyFieldApi } from '@tanstack/react-form'
import { useStore } from '@tanstack/react-form'
import cn from '@/utils/classnames'
@@ -13,6 +16,9 @@ import type { FormSchema } from '@/app/components/base/form/types'
import { FormTypeEnum } from '@/app/components/base/form/types'
import { useRenderI18nObject } from '@/hooks/use-i18n'
import RadioE from '@/app/components/base/radio/ui'
+import Textarea from '@/app/components/base/textarea'
+import PromptEditor from '@/app/components/base/prompt-editor'
+import ModelParameterModal from '@/app/components/plugins/plugin-detail-panel/model-selector'
export type BaseFieldProps = {
fieldClassName?: string
@@ -39,6 +45,9 @@ const BaseField = ({
placeholder,
options,
labelClassName: formLabelClassName,
+ fieldClassName: formFieldClassName,
+ inputContainerClassName: formInputContainerClassName,
+ inputClassName: formInputClassName,
show_on = [],
} = formSchema
@@ -104,7 +113,7 @@ const BaseField = ({
return null
return (
-
+
{memorizedLabel}
{
@@ -112,14 +121,25 @@ const BaseField = ({
*
)
}
+ {
+ formSchema.type === FormTypeEnum.collapse && (
+ field.handleChange(!value)}
+ />
+ )
+ }
-
+
{
formSchema.type === FormTypeEnum.textInput && (
field.handleChange(e.target.value)}
onBlur={field.handleBlur}
@@ -134,7 +154,7 @@ const BaseField = ({
id={field.name}
name={field.name}
type='password'
- className={cn(inputClassName)}
+ className={cn(inputClassName, formInputClassName)}
value={value || ''}
onChange={e => field.handleChange(e.target.value)}
onBlur={field.handleBlur}
@@ -149,7 +169,7 @@ const BaseField = ({
id={field.name}
name={field.name}
type='number'
- className={cn(inputClassName)}
+ className={cn(inputClassName, formInputClassName)}
value={value || ''}
onChange={e => field.handleChange(e.target.value)}
onBlur={field.handleBlur}
@@ -183,6 +203,7 @@ const BaseField = ({
'system-sm-regular hover:bg-components-option-card-option-hover-bg hover:border-components-option-card-option-hover-border flex h-8 flex-[1] grow cursor-pointer items-center justify-center rounded-lg border border-components-option-card-option-border bg-components-option-card-option-bg p-2 text-text-secondary',
value === option.value && 'border-components-option-card-option-selected-border bg-components-option-card-option-selected-bg text-text-primary shadow-xs',
inputClassName,
+ formInputClassName,
)}
onClick={() => field.handleChange(option.value)}
>
@@ -201,6 +222,50 @@ const BaseField = ({
)
}
+ {
+ formSchema.type === FormTypeEnum.textareaInput && (
+
+