Enable auto-height for textarea fields in forms (#7749)

#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.21.x

#### What this PR does / why we need it:

Add auto-height prop to  formkit textarea to support automatic resizing based on content length.

#### Does this PR introduce a user-facing change?

```release-note
Console 端的部分多行文本输入框支持自动高度。
```
pull/7762/head^2
Ryan Wang 2025-09-20 23:16:03 +08:00 committed by GitHub
parent 974c645b4a
commit d0f050ff86
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 216 additions and 12 deletions

View File

@ -104,10 +104,12 @@ spec:
name: keywords
label: "站点关键词"
help: "目前主流搜索引擎已经不再使用此字段,所以通常不建议设置,此选项可能在未来版本中被移除"
auto-height: true
- $formkit: textarea
name: description
label: "站点描述"
help: "仅对首页生效,其他页面将根据页面类型自动生成描述"
auto-height: true
- group: user
label: 用户设置
formSchema:

View File

@ -370,7 +370,8 @@ async function slugUniqueValidation(node: FormKitNode) {
:label="$t('core.page.settings.fields.raw_excerpt.label')"
type="textarea"
validation="length:0,1024"
:rows="5"
auto-height
:max-auto-height="200"
></FormKit>
</div>
</div>

View File

@ -353,6 +353,8 @@ async function slugUniqueValidation(node: FormKitNode) {
$t('core.post_category.editing_modal.fields.description.label')
"
type="textarea"
auto-height
:max-auto-height="200"
validation="length:0,200"
></FormKit>
</div>

View File

@ -397,7 +397,8 @@ const showCancelPublishButton = computed(() => {
:label="$t('core.post.settings.fields.raw_excerpt.label')"
name="raw"
type="textarea"
:rows="5"
auto-height
:max-auto-height="200"
validation="length:0,1024"
></FormKit>
</div>

View File

@ -130,6 +130,8 @@ const handleCreateUser = async () => {
:label="$t('core.user.editing_modal.fields.bio.label')"
type="textarea"
name="bio"
auto-height
:max-auto-height="200"
validation="length:0,2048"
></FormKit>
</FormKit>

View File

@ -124,6 +124,8 @@ const handleUpdateUser = async () => {
:label="$t('core.user.editing_modal.fields.bio.label')"
type="textarea"
name="bio"
auto-height
:max-auto-height="200"
validation="length:0,2048"
></FormKit>
</div>

View File

@ -54,6 +54,7 @@
"@codemirror/state": "^6.1.4",
"@codemirror/view": "^6.5.1",
"@emoji-mart/data": "^1.2.1",
"@formkit/addons": "^1.5.9",
"@formkit/core": "^1.5.9",
"@formkit/drag-and-drop": "^0.1.6",
"@formkit/i18n": "^1.5.9",

View File

@ -45,6 +45,9 @@ importers:
'@emoji-mart/data':
specifier: ^1.2.1
version: 1.2.1
'@formkit/addons':
specifier: ^1.5.9
version: 1.5.9
'@formkit/core':
specifier: ^1.5.9
version: 1.5.9
@ -2603,6 +2606,12 @@ packages:
'@floating-ui/utils@0.1.6':
resolution: {integrity: sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==}
'@formkit/addons@1.5.9':
resolution: {integrity: sha512-YchMmYhZHkdj1F1qTSpB+AErq0imIjB1VmsRtaPHYpbk3ucGWUqmsEBDU/Xy+zP4lTrHlPLWm2Oz1mLfPWiwTA==}
'@formkit/auto-animate@0.9.0':
resolution: {integrity: sha512-VhP4zEAacXS3dfTpJpJ88QdLqMTcabMg0jwpOSxZ/VzfQVfl3GkZSCZThhGC5uhq/TxPHPzW0dzr4H9Bb1OgKA==}
'@formkit/core@1.5.9':
resolution: {integrity: sha512-hkF2uwmXcyeGqrYAO1RN3me77NdRWhuH4pZP+A2xlGZqBLx98nvABYUfTiQsCmdnPv9RkGHHB7qTq9BOvFATHQ==}
@ -3099,9 +3108,16 @@ packages:
resolution: {integrity: sha512-cYxcj5CPn/vo5QSpCZcYzBiLidU5+GlFSqIeNaMgBDtcVRBsBJHZg3pHw999W6nHamFQ1EHuPPByB26tjaJiJw==}
engines: {node: '>=6.9.0'}
'@oxc-project/runtime@0.87.0':
resolution: {integrity: sha512-ky2Hqi2q/uGX36UfY79zxMbUqiNIl1RyKKVJfFenG70lbn+/fcaKBVTbhmUwn8a2wPyv2gNtDQxuDytbKX9giQ==}
engines: {node: '>=6.9.0'}
'@oxc-project/types@0.82.2':
resolution: {integrity: sha512-WMGSwd9FsNBs/WfqIOH0h3k1LBdjZJQGYjGnC+vla/fh6HUsu5HzGPerRljiq1hgMQ6gs031YJR12VyP57b/hQ==}
'@oxc-project/types@0.87.0':
resolution: {integrity: sha512-ipZFWVGE9fADBVXXWJWY/cxpysc41Gt5upKDeb32F6WMgFyO7XETUMVq8UuREKCih+Km5E6p2VhEvf6Fuhey6g==}
'@pkgjs/parseargs@0.11.0':
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines: {node: '>=14'}
@ -3448,71 +3464,154 @@ packages:
cpu: [arm64]
os: [android]
'@rolldown/binding-android-arm64@1.0.0-beta.37':
resolution: {integrity: sha512-Pdr3USGBdoYzcygfJTSATHd7x476vVF3rnQ6SuUAh4YjhgGoNaI/ZycQ0RsonptwwU5NmQRWxfWv+aUPL6JlJg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [android]
'@rolldown/binding-darwin-arm64@1.0.0-beta.33':
resolution: {integrity: sha512-7lhhY08v5ZtRq8JJQaJ49fnJombAPnqllKKCDLU/UvaqNAOEyTGC8J1WVOLC4EA4zbXO5U3CCRgVGyAFNH2VtQ==}
cpu: [arm64]
os: [darwin]
'@rolldown/binding-darwin-arm64@1.0.0-beta.37':
resolution: {integrity: sha512-iDdmatSgbWhTYOq51G2CkJXwFayiuQpv/ywG7Bv3wKqy31L7d0LltUhWqAdfCl7eBG3gybfUm/iEXiTldH3jYA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [darwin]
'@rolldown/binding-darwin-x64@1.0.0-beta.33':
resolution: {integrity: sha512-U2iGjcDV7NWyYyhap8YuY0nwrLX6TvX/9i7gBtdEMPm9z3wIUVGNMVdGlA43uqg7xDpRGpEqGnxbeDgiEwYdnA==}
cpu: [x64]
os: [darwin]
'@rolldown/binding-darwin-x64@1.0.0-beta.37':
resolution: {integrity: sha512-LQPpi3YJDtIprj6mwMbVM1gLM4BV2m9oqe9h3Y1UwAd20xs+imnzWJqWFpm4Hw9SiFmefIf3q4EPx2k6Nj2K7A==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [darwin]
'@rolldown/binding-freebsd-x64@1.0.0-beta.33':
resolution: {integrity: sha512-gd6ASromVHFLlzrjJWMG5CXHkS7/36DEZ8HhvGt2NN8eZALCIuyEx8HMMLqvKA7z4EAztVkdToVrdxpGMsKZxw==}
cpu: [x64]
os: [freebsd]
'@rolldown/binding-freebsd-x64@1.0.0-beta.37':
resolution: {integrity: sha512-9JnfSWfYd/YrZOu4Sj3rb2THBrCj70nJB/2FOSdg0O9ZoRrdTeB8b7Futo6N7HLWZM5uqqnJBX6VTpA0RZD+ow==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [freebsd]
'@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.33':
resolution: {integrity: sha512-xmeLfkfGthuynO1EpCdyTVr0r4G+wqvnKCuyR6rXOet+hLrq5HNAC2XtP/jU2TB4Bc6aiLYxl868B8CGtFDhcw==}
cpu: [arm]
os: [linux]
'@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.37':
resolution: {integrity: sha512-eEmQTpvefEtHxc0vg5sOnWCqBcGQB/SIDlPkkzKR9ESKq9BsjQfHxssJWuNMyQ+rpr9CYaogddyQtZ9GHkp8vA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [linux]
'@rolldown/binding-linux-arm64-gnu@1.0.0-beta.33':
resolution: {integrity: sha512-cHGp8yfHL4pes6uaLbO5L58ceFkUK4efd8iE86jClD1QPPDLKiqEXJCFYeuK3OfODuF5EBOmf0SlcUZNEYGdmw==}
cpu: [arm64]
os: [linux]
'@rolldown/binding-linux-arm64-gnu@1.0.0-beta.37':
resolution: {integrity: sha512-Ekv4OjDzQUl0X9kHM7M23N9hVRiYCYr89neLBNITCp7P4IHs1f6SNZiCIvvBVy6NIFzO1w9LZJGEeJYK5cQBVQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
'@rolldown/binding-linux-arm64-musl@1.0.0-beta.33':
resolution: {integrity: sha512-wZ1t7JAvVeFgskH1L9y7c47ITitPytpL0s8FmAT8pVfXcaTmS58ZyoXT+y6cz8uCkQnETjrX3YezTGI18u3ecg==}
cpu: [arm64]
os: [linux]
'@rolldown/binding-linux-arm64-musl@1.0.0-beta.37':
resolution: {integrity: sha512-z8Aa5Kar5mhh0RVZEL+zKJwNz1cgcDISmwUMcTk0w986T8JZJOJCfJ/u9e8pqUTIJjxdM8SZq9/24nMgMlx5ng==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
'@rolldown/binding-linux-x64-gnu@1.0.0-beta.33':
resolution: {integrity: sha512-cDndWo3VEYbm7yeujOV6Ie2XHz0K8YX/R/vbNmMo03m1QwtBKKvbYNSyJb3B9+8igltDjd8zNM9mpiNNrq/ekQ==}
cpu: [x64]
os: [linux]
'@rolldown/binding-linux-x64-gnu@1.0.0-beta.37':
resolution: {integrity: sha512-e+fNseKhfE/socjOw6VrQcXrbNKfi2V/KZ+ssuLnmeaYNGuJWqPhvML56oYhGb3IgROEEc61lzr3Riy5BIqoMA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
'@rolldown/binding-linux-x64-musl@1.0.0-beta.33':
resolution: {integrity: sha512-bl7uzi6es/l6LT++NZcBpiX43ldLyKXCPwEZGY1rZJ99HQ7m1g3KxWwYCcGxtKjlb2ExVvDZicF6k+96vxOJKg==}
cpu: [x64]
os: [linux]
'@rolldown/binding-linux-x64-musl@1.0.0-beta.37':
resolution: {integrity: sha512-dPZfB396PMIasd19X0ikpdCvjK/7SaJFO8y5/TxnozJEy70vOf4GESe/oKcsJPav/MSTWBYsHjJSO6vX0oAW8g==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
'@rolldown/binding-openharmony-arm64@1.0.0-beta.33':
resolution: {integrity: sha512-TrgzQanpLgcmmzolCbYA9BPZgF1gYxkIGZhU/HROnJPsq67gcyaYw/JBLioqQLjIwMipETkn25YY799D2OZzJA==}
cpu: [arm64]
os: [openharmony]
'@rolldown/binding-openharmony-arm64@1.0.0-beta.37':
resolution: {integrity: sha512-rFjLXoHpRqxJqkSBXHuyt6bhyiIFnvLD9X2iPmCYlfpEkdTbrY1AXg4ZbF8UMO5LM7DAAZm/7vPYPO1TKTA7Sg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [openharmony]
'@rolldown/binding-wasm32-wasi@1.0.0-beta.33':
resolution: {integrity: sha512-z0LltdUfvoKak9SuaLz/M9AVSg+RTOZjFksbZXzC6Svl1odyW4ai21VHhZy3m2Faeeb/rl/9efVLayj+qYEGxw==}
engines: {node: '>=14.0.0'}
cpu: [wasm32]
'@rolldown/binding-wasm32-wasi@1.0.0-beta.37':
resolution: {integrity: sha512-oQAe3lMaBGX6q0GSic0l3Obmd6/rX8R6eHLnRC8kyy/CvPLiCMV82MPGT8fxpPTo/ULFGrupSu2nV1zmOFBt/w==}
engines: {node: '>=14.0.0'}
cpu: [wasm32]
'@rolldown/binding-win32-arm64-msvc@1.0.0-beta.33':
resolution: {integrity: sha512-CpvOHyqDNOYx9riD4giyXQDIu72bWRU2Dwt1xFSPlBudk6NumK0OJl6Ch+LPnkp5podQHcQg0mMauAXPVKct7g==}
cpu: [arm64]
os: [win32]
'@rolldown/binding-win32-arm64-msvc@1.0.0-beta.37':
resolution: {integrity: sha512-ucO6CiZhpkNRiVAk7ybvA9pZaMreCtfHej3BtJcBL5S3aYmp4h0g6TvaXLD5YRJx5sXobp/9A//xU4wPMul3Bg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [win32]
'@rolldown/binding-win32-ia32-msvc@1.0.0-beta.33':
resolution: {integrity: sha512-/tNTvZTWHz6HiVuwpR3zR0kGIyCNb+/tFhnJmti+Aw2fAXs3l7Aj0DcXd0646eFKMX8L2w5hOW9H08FXTUkN0g==}
cpu: [ia32]
os: [win32]
'@rolldown/binding-win32-ia32-msvc@1.0.0-beta.37':
resolution: {integrity: sha512-Ya9DBWJe1EGHwil7ielI8CdE0ELCg6KyDvDQqIFllnTJEYJ1Rb74DK6mvlZo273qz6Mw8WrMm26urfDeZhCc3Q==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [ia32]
os: [win32]
'@rolldown/binding-win32-x64-msvc@1.0.0-beta.33':
resolution: {integrity: sha512-Bb2qK3z7g2mf4zaKRvkohHzweaP1lLbaoBmXZFkY6jJWMm0Z8Pfnh8cOoRlH1IVM1Ufbo8ZZ1WXp1LbOpRMtXw==}
cpu: [x64]
os: [win32]
'@rolldown/binding-win32-x64-msvc@1.0.0-beta.37':
resolution: {integrity: sha512-r+RI+wMReoTIF/uXqQWJcD8xGWXzCzUyGdpLmQ8FC+MCyPHlkjEsFRv8OFIYI6HhiGAmbfWVYEGf+aeLJzkHGw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [win32]
'@rolldown/pluginutils@1.0.0-beta.19':
resolution: {integrity: sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==}
@ -3525,6 +3624,9 @@ packages:
'@rolldown/pluginutils@1.0.0-beta.33':
resolution: {integrity: sha512-she25NCG6NoEPC/SEB4pHs5STcnfI4VBFOzjeI63maSPrWME5J2XC8ogrBgp8NaE/xzj28/kbpSaebiMvFRj+w==}
'@rolldown/pluginutils@1.0.0-beta.37':
resolution: {integrity: sha512-0taU1HpxFzrukvWIhLRI4YssJX2wOW5q1MxPXWztltsQ13TE51/larZIwhFdpyk7+K43TH7x6GJ8oEqAo+vDbA==}
'@rollup/plugin-babel@5.3.1':
resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==}
engines: {node: '>= 10.0.0'}
@ -9351,6 +9453,11 @@ packages:
resolution: {integrity: sha512-mgu118ZuRguC8unhPCbdZbyRbjQfEMiWqlojBA5aRIncBelRaBomnHNpGKYkYWeK7twRz5Cql30xgqqrA3Xelw==}
hasBin: true
rolldown@1.0.0-beta.37:
resolution: {integrity: sha512-KiTU6z1kHGaLvqaYjgsrv2LshHqNBn74waRZivlK8WbfN1obZeScVkQPKYunB66E/mxZWv/zyZlCv3xF2t0WOQ==}
engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true
rollup-plugin-gzip@3.1.0:
resolution: {integrity: sha512-PFS9s6/w6dCra6/Z8PGD+ug3aaaqKLDCbr5y1Ek71Wd4rQSmMnOqCIIMgwbYxZ9A/gjP3pCN6rA4pAG47jxF0w==}
engines: {node: '>=10.0.0'}
@ -10612,8 +10719,8 @@ packages:
vue-component-type-helpers@2.0.19:
resolution: {integrity: sha512-cN3f1aTxxKo4lzNeQAkVopswuImUrb5Iurll9Gaw5cqpnbTAxtEMM1mgi6ou4X79OCyqYv1U1mzBHJkzmiK82w==}
vue-component-type-helpers@3.0.5:
resolution: {integrity: sha512-uoNZaJ+a1/zppa/Vgmi8zIOP2PHXDN2rT8NyF+zQRK6ZG94lNB9prcV0GdLJbY9i9lrD47JOVIH92SaiA7oJ1A==}
vue-component-type-helpers@3.0.7:
resolution: {integrity: sha512-TvyUcFXmjZcXUvU+r1MOyn4/vv4iF+tPwg5Ig33l/FJ3myZkxeQpzzQMLMFWcQAjr6Xs7BRwVy/TwbmNZUA/4w==}
vue-demi@0.13.11:
resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==}
@ -11503,7 +11610,7 @@ snapshots:
dependencies:
'@babel/template': 7.27.2
'@babel/traverse': 7.28.0
'@babel/types': 7.28.1
'@babel/types': 7.28.2
transitivePeerDependencies:
- supports-color
@ -13638,6 +13745,15 @@ snapshots:
'@floating-ui/utils@0.1.6': {}
'@formkit/addons@1.5.9':
dependencies:
'@formkit/auto-animate': 0.9.0
'@formkit/core': 1.5.9
'@formkit/inputs': 1.5.9
'@formkit/utils': 1.5.9
'@formkit/auto-animate@0.9.0': {}
'@formkit/core@1.5.9':
dependencies:
'@formkit/utils': 1.5.9
@ -14318,8 +14434,12 @@ snapshots:
'@oxc-project/runtime@0.82.2': {}
'@oxc-project/runtime@0.87.0': {}
'@oxc-project/types@0.82.2': {}
'@oxc-project/types@0.87.0': {}
'@pkgjs/parseargs@0.11.0':
optional: true
@ -14645,47 +14765,91 @@ snapshots:
'@rolldown/binding-android-arm64@1.0.0-beta.33':
optional: true
'@rolldown/binding-android-arm64@1.0.0-beta.37':
optional: true
'@rolldown/binding-darwin-arm64@1.0.0-beta.33':
optional: true
'@rolldown/binding-darwin-arm64@1.0.0-beta.37':
optional: true
'@rolldown/binding-darwin-x64@1.0.0-beta.33':
optional: true
'@rolldown/binding-darwin-x64@1.0.0-beta.37':
optional: true
'@rolldown/binding-freebsd-x64@1.0.0-beta.33':
optional: true
'@rolldown/binding-freebsd-x64@1.0.0-beta.37':
optional: true
'@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.33':
optional: true
'@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.37':
optional: true
'@rolldown/binding-linux-arm64-gnu@1.0.0-beta.33':
optional: true
'@rolldown/binding-linux-arm64-gnu@1.0.0-beta.37':
optional: true
'@rolldown/binding-linux-arm64-musl@1.0.0-beta.33':
optional: true
'@rolldown/binding-linux-arm64-musl@1.0.0-beta.37':
optional: true
'@rolldown/binding-linux-x64-gnu@1.0.0-beta.33':
optional: true
'@rolldown/binding-linux-x64-gnu@1.0.0-beta.37':
optional: true
'@rolldown/binding-linux-x64-musl@1.0.0-beta.33':
optional: true
'@rolldown/binding-linux-x64-musl@1.0.0-beta.37':
optional: true
'@rolldown/binding-openharmony-arm64@1.0.0-beta.33':
optional: true
'@rolldown/binding-openharmony-arm64@1.0.0-beta.37':
optional: true
'@rolldown/binding-wasm32-wasi@1.0.0-beta.33':
dependencies:
'@napi-rs/wasm-runtime': 1.0.3
optional: true
'@rolldown/binding-wasm32-wasi@1.0.0-beta.37':
dependencies:
'@napi-rs/wasm-runtime': 1.0.3
optional: true
'@rolldown/binding-win32-arm64-msvc@1.0.0-beta.33':
optional: true
'@rolldown/binding-win32-arm64-msvc@1.0.0-beta.37':
optional: true
'@rolldown/binding-win32-ia32-msvc@1.0.0-beta.33':
optional: true
'@rolldown/binding-win32-ia32-msvc@1.0.0-beta.37':
optional: true
'@rolldown/binding-win32-x64-msvc@1.0.0-beta.33':
optional: true
'@rolldown/binding-win32-x64-msvc@1.0.0-beta.37':
optional: true
'@rolldown/pluginutils@1.0.0-beta.19': {}
'@rolldown/pluginutils@1.0.0-beta.29': {}
@ -14694,6 +14858,8 @@ snapshots:
'@rolldown/pluginutils@1.0.0-beta.33': {}
'@rolldown/pluginutils@1.0.0-beta.37': {}
'@rollup/plugin-babel@5.3.1(@babel/core@7.28.0)(@types/babel__core@7.20.5)(rollup@2.79.1)':
dependencies:
'@babel/core': 7.28.0
@ -15535,7 +15701,7 @@ snapshots:
ts-dedent: 2.2.0
type-fest: 2.19.0
vue: 3.5.16(typescript@5.8.3)
vue-component-type-helpers: 3.0.5
vue-component-type-helpers: 3.0.7
transitivePeerDependencies:
- encoding
- supports-color
@ -21363,7 +21529,7 @@ snapshots:
dependencies:
glob: 10.3.10
rolldown-plugin-dts@0.15.6(@typescript/native-preview@7.0.0-dev.20250619.1)(rolldown@1.0.0-beta.33)(typescript@5.8.3)(vue-tsc@2.2.10(typescript@5.8.3)):
rolldown-plugin-dts@0.15.6(@typescript/native-preview@7.0.0-dev.20250619.1)(rolldown@1.0.0-beta.37)(typescript@5.8.3)(vue-tsc@2.2.10(typescript@5.8.3)):
dependencies:
'@babel/generator': 7.28.0
'@babel/parser': 7.28.0
@ -21373,7 +21539,7 @@ snapshots:
debug: 4.4.1
dts-resolver: 2.1.1
get-tsconfig: 4.10.1
rolldown: 1.0.0-beta.33
rolldown: 1.0.0-beta.37
optionalDependencies:
'@typescript/native-preview': 7.0.0-dev.20250619.1
typescript: 5.8.3
@ -21422,6 +21588,28 @@ snapshots:
'@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.33
'@rolldown/binding-win32-x64-msvc': 1.0.0-beta.33
rolldown@1.0.0-beta.37:
dependencies:
'@oxc-project/runtime': 0.87.0
'@oxc-project/types': 0.87.0
'@rolldown/pluginutils': 1.0.0-beta.37
ansis: 4.1.0
optionalDependencies:
'@rolldown/binding-android-arm64': 1.0.0-beta.37
'@rolldown/binding-darwin-arm64': 1.0.0-beta.37
'@rolldown/binding-darwin-x64': 1.0.0-beta.37
'@rolldown/binding-freebsd-x64': 1.0.0-beta.37
'@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.37
'@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.37
'@rolldown/binding-linux-arm64-musl': 1.0.0-beta.37
'@rolldown/binding-linux-x64-gnu': 1.0.0-beta.37
'@rolldown/binding-linux-x64-musl': 1.0.0-beta.37
'@rolldown/binding-openharmony-arm64': 1.0.0-beta.37
'@rolldown/binding-wasm32-wasi': 1.0.0-beta.37
'@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.37
'@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.37
'@rolldown/binding-win32-x64-msvc': 1.0.0-beta.37
rollup-plugin-gzip@3.1.0(rollup@4.43.0):
dependencies:
rollup: 4.43.0
@ -22334,8 +22522,8 @@ snapshots:
diff: 8.0.2
empathic: 2.0.0
hookable: 5.5.3
rolldown: 1.0.0-beta.33
rolldown-plugin-dts: 0.15.6(@typescript/native-preview@7.0.0-dev.20250619.1)(rolldown@1.0.0-beta.33)(typescript@5.8.3)(vue-tsc@2.2.10(typescript@5.8.3))
rolldown: 1.0.0-beta.37
rolldown-plugin-dts: 0.15.6(@typescript/native-preview@7.0.0-dev.20250619.1)(rolldown@1.0.0-beta.37)(typescript@5.8.3)(vue-tsc@2.2.10(typescript@5.8.3))
semver: 7.7.2
tinyexec: 1.0.1
tinyglobby: 0.2.14
@ -22790,7 +22978,7 @@ snapshots:
vue-component-type-helpers@2.0.19: {}
vue-component-type-helpers@3.0.5: {}
vue-component-type-helpers@3.0.7: {}
vue-demi@0.13.11(vue@3.5.16(typescript@5.8.3)):
dependencies:

View File

@ -1,3 +1,4 @@
import { createAutoHeightTextareaPlugin } from "@formkit/addons";
import { en, zh } from "@formkit/i18n";
import { group as nativeGroup, select as nativeSelect } from "@formkit/inputs";
import { generateClasses } from "@formkit/themes";
@ -44,6 +45,7 @@ const config: DefaultConfigOptions = {
passwordPreventAutocomplete,
requiredAsterisk,
autoScrollToErrors,
createAutoHeightTextareaPlugin(),
],
inputs: {
attachment,

View File

@ -178,7 +178,8 @@ const publishTimeHelp = computed(() => {
:label="$t('core.post.settings.fields.raw_excerpt.label')"
name="excerptRaw"
type="textarea"
:rows="5"
auto-height
:max-auto-height="200"
validation="length:0,1024"
></FormKit>
</div>

View File

@ -143,6 +143,8 @@ async function onEmailVerifyModalClose() {
v-model="formState.spec.bio"
:label="$t('core.uc_profile.editing_modal.fields.bio.label')"
type="textarea"
auto-height
:max-auto-height="200"
name="bio"
validation="length:0,2048"
></FormKit>