diff --git a/application/src/main/resources/extensions/system-setting.yaml b/application/src/main/resources/extensions/system-setting.yaml index 66f06ce2c..f44119ebc 100644 --- a/application/src/main/resources/extensions/system-setting.yaml +++ b/application/src/main/resources/extensions/system-setting.yaml @@ -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: diff --git a/ui/console-src/modules/contents/pages/components/SinglePageSettingModal.vue b/ui/console-src/modules/contents/pages/components/SinglePageSettingModal.vue index f1d81b984..38056b1b0 100644 --- a/ui/console-src/modules/contents/pages/components/SinglePageSettingModal.vue +++ b/ui/console-src/modules/contents/pages/components/SinglePageSettingModal.vue @@ -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" > diff --git a/ui/console-src/modules/contents/posts/categories/components/CategoryEditingModal.vue b/ui/console-src/modules/contents/posts/categories/components/CategoryEditingModal.vue index 5c440b161..f17b5990b 100644 --- a/ui/console-src/modules/contents/posts/categories/components/CategoryEditingModal.vue +++ b/ui/console-src/modules/contents/posts/categories/components/CategoryEditingModal.vue @@ -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" > diff --git a/ui/console-src/modules/contents/posts/components/PostSettingModal.vue b/ui/console-src/modules/contents/posts/components/PostSettingModal.vue index 78ddf52b1..f9eb26cb6 100644 --- a/ui/console-src/modules/contents/posts/components/PostSettingModal.vue +++ b/ui/console-src/modules/contents/posts/components/PostSettingModal.vue @@ -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" > diff --git a/ui/console-src/modules/system/users/components/UserCreationModal.vue b/ui/console-src/modules/system/users/components/UserCreationModal.vue index cba1237bf..f427c7771 100644 --- a/ui/console-src/modules/system/users/components/UserCreationModal.vue +++ b/ui/console-src/modules/system/users/components/UserCreationModal.vue @@ -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" > diff --git a/ui/console-src/modules/system/users/components/UserEditingModal.vue b/ui/console-src/modules/system/users/components/UserEditingModal.vue index e7adb37f1..a485f335d 100644 --- a/ui/console-src/modules/system/users/components/UserEditingModal.vue +++ b/ui/console-src/modules/system/users/components/UserEditingModal.vue @@ -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" > diff --git a/ui/package.json b/ui/package.json index 676c92d8f..a944a9a63 100644 --- a/ui/package.json +++ b/ui/package.json @@ -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", diff --git a/ui/pnpm-lock.yaml b/ui/pnpm-lock.yaml index 37b16ad68..45404d2d9 100644 --- a/ui/pnpm-lock.yaml +++ b/ui/pnpm-lock.yaml @@ -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: diff --git a/ui/src/formkit/formkit.config.ts b/ui/src/formkit/formkit.config.ts index 93108633f..97f853c26 100644 --- a/ui/src/formkit/formkit.config.ts +++ b/ui/src/formkit/formkit.config.ts @@ -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, diff --git a/ui/uc-src/modules/contents/posts/components/PostSettingForm.vue b/ui/uc-src/modules/contents/posts/components/PostSettingForm.vue index 243acc89f..9c317ce99 100644 --- a/ui/uc-src/modules/contents/posts/components/PostSettingForm.vue +++ b/ui/uc-src/modules/contents/posts/components/PostSettingForm.vue @@ -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" > diff --git a/ui/uc-src/modules/profile/components/ProfileEditingModal.vue b/ui/uc-src/modules/profile/components/ProfileEditingModal.vue index d60546fff..0cbe4b511 100644 --- a/ui/uc-src/modules/profile/components/ProfileEditingModal.vue +++ b/ui/uc-src/modules/profile/components/ProfileEditingModal.vue @@ -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" >