Caisin
ccabbf0e97
feat: enable project-scoped preferences extension tabs ( #7803 )
...
* feat: enable project-scoped preferences extension tabs
Add a typed extension schema so subprojects can define extra settings,
render them in the shared preferences drawer only when configured, and
consume them in playground as a real feature demo. Extension labels now
follow locale keys instead of hardcoded app-specific strings.
Constraint: Reuse the shared preferences drawer and field blocks
Rejected: Add app-specific fields to core preferences | too tightly coupled
Rejected: Inline localized label objects | breaks existing locale-key flow
Confidence: high
Scope-risk: moderate
Reversibility: clean
Directive: Keep extension labels as locale keys rendered via $t in UI
Tested: Vitest preferences tests
Tested: Turbo typecheck for preferences, layouts, web-antd, and playground
Tested: ESLint for touched preferences and playground files
Not-tested: Manual browser interaction in playground preferences drawer
* fix: satisfy lint formatting for preferences extension demo
Adjust the playground preferences extension demo template so formatter and
Vue template lint rules agree on the rendered markup. This keeps CI green
without changing runtime behavior.
Constraint: Must preserve the existing demo behavior while fixing CI only
Rejected: Disable the Vue newline rule | would weaken shared lint guarantees
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Prefer computed/template structures that avoid formatter-vs-lint conflicts
Tested: pnpm run lint
Not-tested: Manual browser interaction in playground preferences extension demo
* fix: harden custom preferences validation and i18n labels
Tighten custom preferences handling so numeric extension fields respect
min, max, and step constraints. Number inputs now ignore NaN values,
and web-antd extension metadata uses locale keys instead of raw strings.
Also align tip-based hover guards in shared preference inputs/selects.
Constraint: Keep fixes scoped to verified findings only
Rejected: Broader refactor of preferences field components | not needed for these fixes
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Reuse the same validation path for updates and cache hydration
Tested: Vitest preferences tests
Tested: ESLint for touched preferences and widget files
Tested: Typecheck for web-antd, layouts, and core preferences
Not-tested: Manual browser interaction for all preference field variants
* fix: remove localized default from playground extension config
Drop the hardcoded Chinese default value from the playground extension
report title field and fall back to an empty string instead. This keeps
extension config locale-neutral while preserving localized labels and
placeholders through translation keys.
Constraint: Keep the fix limited to the verified localized default issue
Rejected: Compute the default from runtime locale in config | unnecessary for this finding
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Avoid embedding localized literals in extension default values
Tested: ESLint for playground/src/preferences.ts
Tested: Oxfmt check for playground/src/preferences.ts
Not-tested: Manual playground preferences interaction
* docs: document project-scoped preferences extension workflow
Add Chinese and English guide sections explaining how to define,
initialize, read, and update project-scoped preferences extensions.
Also document numeric field validation and point readers to the
playground demo for a complete example.
Constraint: Keep this docs-only and aligned with the shipped API
Rejected: Update only Chinese docs | would leave English docs inconsistent
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Keep zh/en examples and playground demo paths synchronized
Tested: git diff --check; pnpm build:docs
Not-tested: Manual browser review of the rendered docs site
* fix: harden custom preferences defaults and baselines
Use a locale-neutral default for the web-antd report title.
Also stop preference getters from exposing mutable baseline
or extension schema objects, and add a regression test for
external mutation attempts.
Constraint: Keep behavior compatible with the shipped preferences API
Rejected: Return raw refs with readonly typing only | callers could still mutate internals
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Keep defensive copies for baseline and schema getters unless storage semantics change
Tested: eslint, oxlint, targeted vitest, filtered typecheck, git diff --check
Not-tested: Full monorepo typecheck and test suite
* test: relax custom preference cache key matching
Avoid coupling the custom-number cache test to one exact
localStorage key string. Match the intended cache lookup
more loosely so the test still verifies filtering behavior
without depending on the full namespaced cache key.
Constraint: Focus the test on cache filtering behavior
Rejected: Assert one exact key | brittle with namespace changes
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Prefer behavior tests over literal storage keys
Tested: targeted vitest, eslint, git diff --check
Not-tested: Full monorepo test suite
---------
Co-authored-by: caisin <caisin@caisins-Mac-mini.local>
2026-04-13 15:11:57 +08:00
xingyu4j
4d59ac78bd
fix: lint
2026-03-14 19:34:22 +08:00
xingyu4j
9d6fbfd0d6
refactor: replace simple px utility styles
2026-03-14 18:43:00 +08:00
xingyu
a4736a49f8
feat: migrate to Tailwind CSS v4 ( #7614 )
...
* chore: update deps
* feat: use jsonc/x language
* chore: update eslint 10.0
* fix: no-useless-assignment
* feat: add CLAUDE.md
* chore: ignore
* feat: claude
* fix: lint
* chore: suppot eslint v10
* fix: lint
* fix: lint
* fix: type check
* fix: unit test
* fix: Suggested fix
* fix: unit test
* chore: update stylelint v17
* chore: update all major deps
* fix: echarts console warn
* chore: update vitest v4
* feat: add skills ignores
* chore: update deps
* chore: update deps
* fix: cspell
* chore: update deps
* chore: update tailwindcss v4
* chore: remove postcss config
* fix: no use catalog
* chore: tailwind v4 config
* fix: tailwindcss v4 sort
* feat: use eslint-plugin-better-tailwindcss
* fix: Interference between enforce-consistent-line-wrapping, jsx-curly-brace-presence and Prettier
* fix: Interference between enforce-consistent-line-wrapping, jsx-curly-brace-presence and Prettier
* fix(lint): resolve prettier and better-tailwindcss formatting conflicts
* fix(tailwind): update theme references and lint sources
* style(format): normalize apps docs and playground vue files
* style(format): normalize core ui-kit components
* style(format): normalize effects ui and layout components
2026-03-10 05:08:45 +08:00
zouawen
aa7d8630b5
fix: 侧边菜单栏拖拽优化 ( #7606 )
...
* fix: 拖拽使用遮罩层实现,使得拖拽到min或max临界值时cursor显示not-allowed,同时拖拽线条颜色变浅,类似于disabled,提升用户体验
* fix: 修复代码审查建议;修复lint和test报错
* fix: 修复遮罩层挡住hover:bg-primary视觉效果问题
2026-03-07 05:32:09 +08:00
han
b8a0199cde
feat(preferences): add toggle for copy preferences button ( #7594 )
...
Co-authored-by: hl <hl@nmcsoft.com>
2026-03-02 15:30:38 +08:00
zouawen
8e71261d49
fix: 侧边栏菜单拖拽功能在设置内增加开关
2026-02-28 11:19:24 +08:00
zouawen
32379ba4b7
fix: 双列菜单模式下新增深色侧边栏和深色侧边栏子栏 ( #7542 )
...
* fix: 双列菜单模式下新增深色侧边栏和深色侧边栏子栏
* fix: 修复报错 config.test.ts.snap
* fix: 修复lint报错
* fix: 修复侧边栏菜单文本内容溢出问题
* fix: 修复lint报错
2026-02-11 16:08:32 +08:00
zhongming4762
7a2b916387
perf: optimize the closing jump logic of tabs
...
* 依据tab访问历史回退上一个tab,原逻辑是返回一下个 或 上一个
* 支持在配置中开启或关闭
2026-02-08 20:36:16 +08:00
ppxb
24d20ca9ee
refactor: preference manager and export ( #7068 )
...
* fix: preferences drawer outline z-index
* refactor: preferencesManager and exports
2026-01-06 12:42:32 +08:00
ppxb
ed3353a271
fix: preferences drawer outline z-index ( #7067 )
2026-01-04 14:44:33 +08:00
米山
0bc7169698
feat: add global font size adjustment
2025-11-12 17:39:07 +08:00
米山
24b6e7a835
feat: add global font size adjustment
2025-11-12 17:38:41 +08:00
zouawen
59097e2466
chore: 新增是否开启首选项导航栏(外观、布局、快捷键、通用)吸顶效果,调整部分样式 ( #6804 )
2025-10-14 06:55:11 +08:00
zouawen
2ce161e585
feat: 1、新增水印文案自定义功能;2、input-item输入框组件新增清除功能(可用于快捷清除水印文案);3、偏好设置、主题切换、语言选择、是否全屏按钮新增动画效果 ( #6800 )
...
* feature: 新增水印文案自定义功能;
* chore: 偏好设置、主题切换、语言选择、是否全屏按钮新增动画效果
2025-10-07 06:15:41 +08:00
Jin Mao
18722ce434
feat: sidebar button config ( #5818 )
...
* feat: 新增 PreferenceCheckboxItem 组件
* feat(preferences): 添加侧边栏按钮配置功能
* feat: 新增按钮点击事件触发功能
* feat(SidebarPreferences): 新增侧边栏折叠按钮与固定按钮配置
* feat(ui): 新增侧边栏固定按钮及配置选项
* fix(test): 修正侧边栏配置项缺失问题
2025-03-31 10:17:42 +08:00
Netfan
5262233312
feat: tabbar support max count limit ( #5490 )
...
* 标签栏支持限制打开的最大数量
2025-02-06 19:33:10 +08:00
Netfan
b8bffd884c
feat: allow close tab when mouse middle button click ( #5347 )
...
* 偏好设置增加鼠标中键关闭标签页的设置
2025-01-10 20:52:31 +08:00
Vben
081d2aed23
perf: format code with better style ( #5283 )
2025-01-01 11:39:49 +08:00
Netfan
e9dc613548
fix: breadcrumb setting not valid for `header-sidebar-nav` layout ( #5275 )
2024-12-31 12:00:50 +08:00
Netfan
ec2c6eff6f
feat: header menu align support ( #5256 )
...
* feat: header menu align support
* fix: typo
2024-12-28 16:16:48 +08:00
Netfan
2efb5b71c3
feat: auto activate subMenu on select root menu ( #5147 )
...
* feat: auto activate subMenu on click root menu
* fix: prop name fixed
* chore: test and docs update
2024-12-16 02:57:50 +08:00
Netfan
7fbf7b189a
feat: tabbar support mouse wheel vertical ( #5129 )
...
* feat: tabbar support mouse wheel
* docs: add tabbar wheelable tips
* chore: resolve vitest test
2024-12-13 14:45:06 +08:00
Vben
24d14c2841
refactor(adapter): separate form and component adapters so that components adapt to components other than the form ( #4628 )
...
* refactor: global components can be customized
* refactor: remove use Toast and reconstruct the form adapter
2024-10-13 18:33:43 +08:00
GavinLucky
437cb02e11
feat: preferences settings panel to add display switches with copyright ( #4603 )
...
* feat: preferences settings panel to add display switches with copyright
* feat: 更新 snapshots 测试用例
---------
Co-authored-by: ZhangYantao <Gavin@163.com>
2024-10-10 21:59:43 +08:00
Netfan
ba539f6793
chore: correct spelling for 'dragable' ( #4600 )
2024-10-10 10:55:52 +08:00
Vben
60c615ce8a
refactor: adjust layout refresh button and watermark; allow static i18n on language switch ( #4579 )
...
* refactor: adjust layout refresh button and watermark; allow static i18n on language switch
* chore: typo
2024-10-06 17:27:32 +08:00
Vben
524b9badf2
feat: add VbenForm component ( #4352 )
...
* feat: add form component
* fix: build error
* feat: add form adapter
* feat: add some component
* feat: add some component
* feat: add example
* feat: suppoer custom action button
* chore: update
* feat: add example
* feat: add formModel,formDrawer demo
* fix: build error
* fix: typo
* fix: ci error
---------
Co-authored-by: jinmao <jinmao88@qq.com>
Co-authored-by: likui628 <90845831+likui628@users.noreply.github.com>
2024-09-10 21:48:51 +08:00
dependabot[bot]
83ecae7c4e
chore(deps): bump the non-breaking-changes group across 1 directory with 22 updates ( #4314 )
...
* chore(deps): bump the non-breaking-changes group across 1 directory with 22 updates
Bumps the non-breaking-changes group with 22 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ) | `22.5.1` | `22.5.2` |
| [lint-staged](https://github.com/lint-staged/lint-staged ) | `15.2.9` | `15.2.10` |
| [turbo](https://github.com/vercel/turborepo ) | `2.1.0` | `2.1.1` |
| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite ) | `5.4.2` | `5.4.3` |
| [vue](https://github.com/vuejs/core ) | `3.4.38` | `3.5.0` |
| [vue-tsc](https://github.com/vuejs/language-tools/tree/HEAD/packages/tsc ) | `2.1.2` | `2.1.4` |
| [@iconify/json](https://github.com/iconify/icon-sets ) | `2.2.242` | `2.2.243` |
| [postcss](https://github.com/postcss/postcss ) | `8.4.41` | `8.4.44` |
| [@jspm/generator](https://github.com/jspm/generator ) | `2.1.3` | `2.2.0` |
| [vite-plugin-pwa](https://github.com/vite-pwa/vite-plugin-pwa ) | `0.20.2` | `0.20.3` |
| [vite-plugin-vue-devtools](https://github.com/vuejs/devtools-next/tree/HEAD/packages/vite ) | `7.3.9` | `7.4.0` |
| [vite-plugin-dts](https://github.com/qmhc/vite-plugin-dts ) | `4.0.3` | `4.1.0` |
| [eslint-config-turbo](https://github.com/vercel/turborepo/tree/HEAD/packages/eslint-config-turbo ) | `2.1.0` | `2.1.1` |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin ) | `8.3.0` | `8.4.0` |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser ) | `8.3.0` | `8.4.0` |
| [eslint-plugin-vue](https://github.com/vuejs/eslint-plugin-vue ) | `9.27.0` | `9.28.0` |
| [lucide-vue-next](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-vue-next ) | `0.436.0` | `0.438.0` |
| [@vue/shared](https://github.com/vuejs/core/tree/HEAD/packages/shared ) | `3.4.38` | `3.5.0` |
| [sortablejs](https://github.com/SortableJS/Sortable ) | `1.15.2` | `1.15.3` |
| [axios](https://github.com/axios/axios ) | `1.7.5` | `1.7.7` |
| [@nolebase/vitepress-plugin-git-changelog](https://github.com/nolebase/integrations/tree/HEAD/packages/vitepress-plugin-git-changelog ) | `2.4.0` | `2.5.0` |
| [@vite-pwa/vitepress](https://github.com/vite-pwa/vitepress ) | `0.5.0` | `0.5.1` |
Updates `@types/node` from 22.5.1 to 22.5.2
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
Updates `lint-staged` from 15.2.9 to 15.2.10
- [Release notes](https://github.com/lint-staged/lint-staged/releases )
- [Changelog](https://github.com/lint-staged/lint-staged/blob/master/CHANGELOG.md )
- [Commits](https://github.com/lint-staged/lint-staged/compare/v15.2.9...v15.2.10 )
Updates `turbo` from 2.1.0 to 2.1.1
- [Release notes](https://github.com/vercel/turborepo/releases )
- [Changelog](https://github.com/vercel/turborepo/blob/main/release.md )
- [Commits](https://github.com/vercel/turborepo/compare/v2.1.0...v2.1.1 )
Updates `vite` from 5.4.2 to 5.4.3
- [Release notes](https://github.com/vitejs/vite/releases )
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md )
- [Commits](https://github.com/vitejs/vite/commits/v5.4.3/packages/vite )
Updates `vue` from 3.4.38 to 3.5.0
- [Release notes](https://github.com/vuejs/core/releases )
- [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md )
- [Commits](https://github.com/vuejs/core/compare/v3.4.38...v3.5.0 )
Updates `vue-tsc` from 2.1.2 to 2.1.4
- [Release notes](https://github.com/vuejs/language-tools/releases )
- [Changelog](https://github.com/vuejs/language-tools/blob/master/CHANGELOG.md )
- [Commits](https://github.com/vuejs/language-tools/commits/v2.1.4/packages/tsc )
Updates `@iconify/json` from 2.2.242 to 2.2.243
- [Commits](https://github.com/iconify/icon-sets/compare/2.2.242...2.2.243 )
Updates `postcss` from 8.4.41 to 8.4.44
- [Release notes](https://github.com/postcss/postcss/releases )
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md )
- [Commits](https://github.com/postcss/postcss/compare/8.4.41...8.4.44 )
Updates `@jspm/generator` from 2.1.3 to 2.2.0
- [Release notes](https://github.com/jspm/generator/releases )
- [Commits](https://github.com/jspm/generator/compare/2.1.3...2.2.0 )
Updates `vite-plugin-pwa` from 0.20.2 to 0.20.3
- [Release notes](https://github.com/vite-pwa/vite-plugin-pwa/releases )
- [Commits](https://github.com/vite-pwa/vite-plugin-pwa/compare/v0.20.2...v0.20.3 )
Updates `vite-plugin-vue-devtools` from 7.3.9 to 7.4.0
- [Release notes](https://github.com/vuejs/devtools-next/releases )
- [Commits](https://github.com/vuejs/devtools-next/commits/v7.4.0/packages/vite )
Updates `vite-plugin-dts` from 4.0.3 to 4.1.0
- [Release notes](https://github.com/qmhc/vite-plugin-dts/releases )
- [Changelog](https://github.com/qmhc/vite-plugin-dts/blob/main/CHANGELOG.md )
- [Commits](https://github.com/qmhc/vite-plugin-dts/compare/v4.0.3...v4.1.0 )
Updates `eslint-config-turbo` from 2.1.0 to 2.1.1
- [Release notes](https://github.com/vercel/turborepo/releases )
- [Changelog](https://github.com/vercel/turborepo/blob/main/release.md )
- [Commits](https://github.com/vercel/turborepo/commits/v2.1.1/packages/eslint-config-turbo )
Updates `@typescript-eslint/eslint-plugin` from 8.3.0 to 8.4.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.4.0/packages/eslint-plugin )
Updates `@typescript-eslint/parser` from 8.3.0 to 8.4.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.4.0/packages/parser )
Updates `eslint-plugin-vue` from 9.27.0 to 9.28.0
- [Release notes](https://github.com/vuejs/eslint-plugin-vue/releases )
- [Commits](https://github.com/vuejs/eslint-plugin-vue/compare/v9.27.0...v9.28.0 )
Updates `lucide-vue-next` from 0.436.0 to 0.438.0
- [Release notes](https://github.com/lucide-icons/lucide/releases )
- [Commits](https://github.com/lucide-icons/lucide/commits/0.438.0/packages/lucide-vue-next )
Updates `@vue/shared` from 3.4.38 to 3.5.0
- [Release notes](https://github.com/vuejs/core/releases )
- [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md )
- [Commits](https://github.com/vuejs/core/commits/v3.5.0/packages/shared )
Updates `sortablejs` from 1.15.2 to 1.15.3
- [Release notes](https://github.com/SortableJS/Sortable/releases )
- [Commits](https://github.com/SortableJS/Sortable/compare/1.15.2...1.15.3 )
Updates `axios` from 1.7.5 to 1.7.7
- [Release notes](https://github.com/axios/axios/releases )
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md )
- [Commits](https://github.com/axios/axios/compare/v1.7.5...v1.7.7 )
Updates `@nolebase/vitepress-plugin-git-changelog` from 2.4.0 to 2.5.0
- [Release notes](https://github.com/nolebase/integrations/releases )
- [Commits](https://github.com/nolebase/integrations/commits/v2.5.0/packages/vitepress-plugin-git-changelog )
Updates `@vite-pwa/vitepress` from 0.5.0 to 0.5.1
- [Release notes](https://github.com/vite-pwa/vitepress/releases )
- [Commits](https://github.com/vite-pwa/vitepress/compare/v0.5.0...v0.5.1 )
---
updated-dependencies:
- dependency-name: "@types/node"
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: non-breaking-changes
- dependency-name: lint-staged
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: non-breaking-changes
- dependency-name: turbo
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: non-breaking-changes
- dependency-name: vite
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: non-breaking-changes
- dependency-name: vue
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: non-breaking-changes
- dependency-name: vue-tsc
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: non-breaking-changes
- dependency-name: "@iconify/json"
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: non-breaking-changes
- dependency-name: postcss
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: non-breaking-changes
- dependency-name: "@jspm/generator"
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: non-breaking-changes
- dependency-name: vite-plugin-pwa
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: non-breaking-changes
- dependency-name: vite-plugin-vue-devtools
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: non-breaking-changes
- dependency-name: vite-plugin-dts
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: non-breaking-changes
- dependency-name: eslint-config-turbo
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: non-breaking-changes
- dependency-name: "@typescript-eslint/eslint-plugin"
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: non-breaking-changes
- dependency-name: "@typescript-eslint/parser"
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: non-breaking-changes
- dependency-name: eslint-plugin-vue
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: non-breaking-changes
- dependency-name: lucide-vue-next
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: non-breaking-changes
- dependency-name: "@vue/shared"
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: non-breaking-changes
- dependency-name: sortablejs
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: non-breaking-changes
- dependency-name: axios
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: non-breaking-changes
- dependency-name: "@nolebase/vitepress-plugin-git-changelog"
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: non-breaking-changes
- dependency-name: "@vite-pwa/vitepress"
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: non-breaking-changes
...
Signed-off-by: dependabot[bot] <support@github.com>
* chore: update deps
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-04 22:57:31 +08:00
Li Kui
c6b9a56b73
fix: clearPreferencesAndLogout does not take effect when the preferences button is at the top ( #4253 )
2024-08-28 09:58:59 +08:00
Vben
20a3868594
feat: add modal and drawer components and examples ( #4229 )
...
* feat: add modal component
* feat: add drawer component
* feat: apply new modal and drawer components to the layout
* chore: typo
* feat: add some unit tests
2024-08-25 23:40:52 +08:00