When the layout footer is enabled and not fixed, LayoutContent is a flex
item of the scroll container with min-height:auto. An auto-content-height
Page then feeds its inner content's min-content height back into that
automatic minimum, so the content region gets clamped taller than the
available space on first render: the layout footer is pushed below the
viewport and the page's own scrollbar only appears after switching tabs
(the KeepAlive remount breaks the feedback loop). See #5677.
Apply size containment to the Page content region in auto-content-height
mode so it no longer contributes min-content height to the outer flex
layout; the region manages its own scrolling there by design.
* feat(@vben/layouts): make user dropdown avatar dot configurable
The online-status dot on the UserDropdown avatar was hardcoded to
bg-green-500. Expose avatarDot and avatarDotClass props, defaulting to the
previous behavior, so apps can toggle the dot and restyle it like the
notification badge.
Co-Authored-By: EvoX <evox@evomap.ai>
* fix(@vben/layouts): apply avatarDotClass to header trigger avatar too
CodeRabbit noted the avatarDotClass prop only styled the dropdown-content
avatar; the header trigger avatar still used the default dot style, making
custom styling inconsistent. Bind dot-class to both avatars.
Co-Authored-By: EvoX <evox@evomap.ai>
---------
Co-authored-by: EvoX <evox@evomap.ai>
* feat(@vben-core/form-ui): add typed form value codecs
* test(@vben-core/form-ui): cover codec value boundaries
* refactor(project): propagate form codec generics
* feat(@vben/plugins): propagate form codecs through vxe grids
* refactor(@vben/playground): migrate form codec examples
* refactor(@vben/playground): migrate query forms to codecs
* docs(@vben/docs): document form value codecs
* build(@vben-core/form-ui): update form validation dependencies
* refactor(@vben-core/form-ui): replace vee-validate with TanStack Form
* test(@vben-core/form-ui): cover TanStack Form migration
* docs(@vben/docs): document Zod 4 form migration
* refactor(project): update form adapters
* refactor(project): migrate application form consumers
* refactor(@vben/playground): migrate form examples
* docs(@vben/docs): fix validate return type and required rule empty check in form docs
* fix(@vben-core/form-ui): resolve oxlint and eslint errors
- rewrite nested ternary expressions as if/else in form-field-array.vue and form-runtime.ts
- sort @tanstack/vue-form before @vben-core/composables in package.json
* chore: fix merge artifacts and formatting
- move dependencies before devDependencies in root package.json
- update preferences snapshot for widget positioning fields
- format form-array demo README
* refactor(@vben-core/form-ui): optimize form runtime and value flow
- add fine-grained field selectors and atomic dependency resolution
- expose raw and formatted value snapshots with focused regression coverage
* fix(@vben/layouts): dispose sortable instance on unmount
* docs(@vben/docs): document form runtime API changes
- list added, changed, removed, and deprecated form APIs
- document atomic dependencies and raw versus formatted values
* chore: update deps
* chore: update archiver v8
* fix: 还原 vue/html-closing-bracket-newline
* feat: 增加默认配置和配置注释
* feat: 增加oxlint默认插件配置和注释
* refactor: remove unicorn ESLint configuration and update dependencies
- Deleted the unicorn ESLint configuration file from the lint-configs package.
- Removed unicorn configuration from the main index file.
- Updated oxlint-config to include a comprehensive set of unicorn rules.
- Adjusted preferences and vxe-table files to disable specific unicorn rules.
- Removed references to eslint-plugin-unicorn from pnpm-lock.yaml and pnpm-workspace.yaml.
* refactor: 移除 eslint 的 @typescript-eslint/eslint-plugin 依赖,将 TypeScript 配置迁移到 oxlint
* feat: open typeAware
* fix: mac 和linux下报错
The Page component's outer container used min-h-full, which doesn't
provide an explicit height for flex children. Combined with h-full on
the content div, this caused the footer slot to overlap table content
(Grid/vxe-table) because the content area didn't properly account for
footer space in the flex column layout.
Fix:
1. Change outer container from min-h-full to h-full — gives the flex
container an explicit height so percentage heights resolve correctly.
2. Change content area from static h-full to flex-1 when autoContentHeight
is false — lets the flex layout naturally distribute remaining space
between content and footer.
Closes#5494
Co-authored-by: jefsky <jefsky@users.noreply.github.com>
* chore: remove rolldown dep
* fix: issues-helper and maintain-one-comment are temporarily disabled due to security issues
* chore: update deps
* fix: change error type to TypeError for non-browser environment check in LocalStorageDriver
* chore: update pnpm v11
Migrate vsh check-dep from depcheck to knip, reducing
315 transitive dependencies. Config is inlined in
DEFAULT_CONFIG, matching the check-circular pattern.
Also re-export CollapsibleParams from @vben/common-ui.