-
Notifications
You must be signed in to change notification settings - Fork 8.3k
chore: update node >=20.12.0 #6937
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
WalkthroughReplaces many in-place array mutations (e.g., Changes
Sequence Diagram(s)sequenceDiagram
participant Component as Vue Component
participant Source as Original Array
participant Op as toSorted()/toReversed()
participant Consumer as Consumer (chart/tree)
Component->>Source: prepare data slice/reference
Component->>Op: call toSorted(comparator) / toReversed()
Op-->>Component: returns new array (non-mutating)
Component->>Consumer: pass new array (no mutation of Source)
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~30 minutes Areas to inspect:
Possibly related PRs
Suggested labels
Suggested reviewers
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
🧰 Additional context used🧠 Learnings (1)📚 Learning: 2024-12-09T04:41:58.914ZApplied to files:
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (7)
🔇 Additional comments (1)
Tip 📝 Customizable high-level summaries are now available in beta!You can now customize how CodeRabbit generates the high-level summary in your pull requests — including its content, structure, tone, and formatting.
Example instruction:
Note: This feature is currently in beta for Pro-tier users, and pricing will be announced later. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
🧹 Nitpick comments (5)
packages/@core/ui-kit/menu-ui/src/components/normal-menu/normal-menu.vue (1)
128-137: LGTM: Coordinated class reordering for style consistency.The Tailwind utility class reorderings across the active and hover states maintain equivalent styling while normalizing class order.
Optional cleanup: Line 128 applies
text-primaryto the active item container, but all text content resides in child elements (.nameand.iconat line 132) that override this withtext-primary-foreground. The parent's text color utility is effectively unused and could be removed for clarity:- @apply bg-primary text-primary dark:bg-accent; + @apply bg-primary dark:bg-accent;Note: This redundancy existed before this PR and can be deferred.
packages/@core/preferences/src/preferences.ts (1)
224-225: LGTM - Cleaner approach usingclassList.toggle()with boolean.The refactored code using
classList.toggle(className, boolean)is more concise and idiomatic than the previous conditional add/remove pattern while maintaining identical behavior.internal/vite-config/src/config/application.ts (1)
103-122: Clarify intent of commented-outapi: 'modern'in Sass optionsYou’ve effectively reverted to the default Sass API by commenting out
api: 'modern'. If this is a permanent change for compatibility with newer Sass/Node, consider either:
- Removing the commented line, or
- Adding a short comment explaining why the explicit
apioption is disabled, so future readers don’t re-enable it blindly.Also worth confirming in your environment that
NodePackageImporterstill behaves as expected with the default API.internal/lint-configs/commitlint-config/index.mjs (1)
24-26:replaceAllchange is correct; consider simplifying patternSwitching to
replaceAllwith a global regexp preserves the original behavior of replacing all/characters in the git path-derived string and is compatible with the updated Node ≥20.12.0 requirement.If you want to simplify and avoid regexp overhead/confusion here, you could optionally use a plain string pattern:
- ?.replaceAll(/(\/)/g, '%%') + ?.replaceAll('/', '%%')Semantics are the same for this use case.
Please ensure that the Node version used by your commit hooks/CI for commitlint matches the updated
engines.node(≥20.12.0), soString.prototype.replaceAllis always available.packages/@core/ui-kit/shadcn-ui/src/ui/dropdown-menu/DropdownMenuSubContent.vue (1)
30-30: LGTM! Tailwind class reordering improves consistency.The class reordering (layout utilities first, then color/animation) aligns with the PR's consistency improvements across dropdown components. Functionality is preserved.
Optional: Consider multi-line formatting for readability.
The 500+ character class string on a single line is difficult to scan and maintain. Breaking it into logical groups would improve readability:
cn( - 'z-50 min-w-32 overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2', + 'z-50 min-w-32 overflow-hidden rounded-md', + 'border border-border', + 'bg-popover p-1 text-popover-foreground shadow-lg', + 'data-[state=open]:animate-in data-[state=closed]:animate-out', + 'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0', + 'data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95', + 'data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2', + 'data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2', props.class, )
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (107)
apps/web-antd/src/views/dashboard/analytics/analytics-visits-sales.vue(1 hunks)apps/web-ele/src/views/dashboard/analytics/analytics-visits-sales.vue(1 hunks)apps/web-naive/src/views/dashboard/analytics/analytics-visits-sales.vue(1 hunks)apps/web-tdesign/package.json(1 hunks)apps/web-tdesign/src/app.vue(1 hunks)apps/web-tdesign/src/bootstrap.ts(2 hunks)apps/web-tdesign/src/views/dashboard/analytics/analytics-visits-sales.vue(1 hunks)cspell.json(1 hunks)docs/.vitepress/components/demo-preview.vue(1 hunks)docs/.vitepress/components/preview-group.vue(4 hunks)docs/.vitepress/config/plugins/demo-preview.ts(1 hunks)docs/src/demos/vben-drawer/auto-height/drawer.vue(1 hunks)docs/src/demos/vben-modal/auto-height/modal.vue(1 hunks)internal/lint-configs/commitlint-config/index.mjs(1 hunks)internal/lint-configs/eslint-config/src/configs/command.ts(0 hunks)internal/lint-configs/eslint-config/src/configs/node.ts(1 hunks)internal/lint-configs/eslint-config/src/configs/perfectionist.ts(0 hunks)internal/lint-configs/eslint-config/src/configs/turbo.ts(0 hunks)internal/lint-configs/eslint-config/src/configs/typescript.ts(1 hunks)internal/lint-configs/eslint-config/src/configs/vue.ts(0 hunks)internal/lint-configs/eslint-config/tsconfig.json(1 hunks)internal/tailwind-config/package.json(1 hunks)internal/vite-config/src/config/application.ts(1 hunks)package.json(2 hunks)packages/@core/base/design/src/design-tokens/index.ts(0 hunks)packages/@core/base/design/src/index.ts(0 hunks)packages/@core/preferences/src/preferences.ts(1 hunks)packages/@core/ui-kit/form-ui/src/form-render/form-field.vue(2 hunks)packages/@core/ui-kit/form-ui/src/form-render/form-label.vue(1 hunks)packages/@core/ui-kit/layout-ui/src/components/layout-content.vue(1 hunks)packages/@core/ui-kit/layout-ui/src/components/layout-footer.vue(1 hunks)packages/@core/ui-kit/layout-ui/src/components/layout-header.vue(1 hunks)packages/@core/ui-kit/layout-ui/src/components/layout-sidebar.vue(2 hunks)packages/@core/ui-kit/layout-ui/src/components/layout-tabbar.vue(1 hunks)packages/@core/ui-kit/layout-ui/src/components/widgets/sidebar-collapse-button.vue(1 hunks)packages/@core/ui-kit/layout-ui/src/components/widgets/sidebar-fixed-button.vue(1 hunks)packages/@core/ui-kit/layout-ui/src/vben-layout.vue(1 hunks)packages/@core/ui-kit/menu-ui/src/components/menu-badge.vue(1 hunks)packages/@core/ui-kit/menu-ui/src/components/normal-menu/normal-menu.vue(1 hunks)packages/@core/ui-kit/popup-ui/src/alert/AlertBuilder.ts(1 hunks)packages/@core/ui-kit/popup-ui/src/alert/alert.vue(2 hunks)packages/@core/ui-kit/popup-ui/src/drawer/drawer.vue(2 hunks)packages/@core/ui-kit/popup-ui/src/modal/modal.vue(2 hunks)packages/@core/ui-kit/shadcn-ui/src/components/avatar/avatar.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/components/back-top/back-top.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/components/breadcrumb/breadcrumb-background.vue(3 hunks)packages/@core/ui-kit/shadcn-ui/src/components/dropdown-menu/dropdown-menu.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/components/dropdown-menu/dropdown-radio-menu.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/components/full-screen/full-screen.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/components/input-password/input-password.vue(2 hunks)packages/@core/ui-kit/shadcn-ui/src/components/input-password/password-strength.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/components/logo/logo.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/components/scrollbar/scrollbar.vue(2 hunks)packages/@core/ui-kit/shadcn-ui/src/components/segmented/segmented.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/components/segmented/tabs-indicator.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/components/spinner/loading.vue(2 hunks)packages/@core/ui-kit/shadcn-ui/src/components/spinner/spinner.vue(2 hunks)packages/@core/ui-kit/shadcn-ui/src/components/tooltip/help-tooltip.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/components/tooltip/tooltip.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/accordion/AccordionContent.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/accordion/AccordionTrigger.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/alert-dialog/AlertDialogContent.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/alert-dialog/AlertDialogDescription.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/alert-dialog/AlertDialogOverlay.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/breadcrumb/BreadcrumbItem.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/breadcrumb/BreadcrumbLink.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/breadcrumb/BreadcrumbList.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/breadcrumb/BreadcrumbPage.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/card/Card.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/card/CardDescription.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/checkbox/Checkbox.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuCheckboxItem.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuContent.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuItem.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuLabel.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuRadioItem.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuSeparator.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuShortcut.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuSubContent.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuSubTrigger.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/dialog/DialogContent.vue(2 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/dialog/DialogDescription.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/dialog/DialogOverlay.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/dialog/DialogScrollContent.vue(2 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/dropdown-menu/DropdownMenuCheckboxItem.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/dropdown-menu/DropdownMenuContent.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/dropdown-menu/DropdownMenuItem.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/dropdown-menu/DropdownMenuRadioItem.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/dropdown-menu/DropdownMenuSeparator.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/dropdown-menu/DropdownMenuSubContent.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/dropdown-menu/DropdownMenuSubTrigger.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/form/FormDescription.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/form/FormMessage.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/hover-card/HoverCardContent.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/input/Input.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/number-field/NumberFieldInput.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/pin-input/PinInputInput.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/popover/PopoverContent.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/radio-group/RadioGroupItem.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/resizable/ResizableHandle.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/scroll-area/ScrollBar.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/select/SelectContent.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/select/SelectItem.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/select/SelectSeparator.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/select/SelectTrigger.vue(1 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/separator/Separator.vue(2 hunks)packages/@core/ui-kit/shadcn-ui/src/ui/sheet/SheetDescription.vue(1 hunks)
⛔ Files not processed due to max files limit (34)
- packages/@core/ui-kit/shadcn-ui/src/ui/sheet/SheetOverlay.vue
- packages/@core/ui-kit/shadcn-ui/src/ui/sheet/SheetTitle.vue
- packages/@core/ui-kit/shadcn-ui/src/ui/switch/Switch.vue
- packages/@core/ui-kit/shadcn-ui/src/ui/tabs/TabsContent.vue
- packages/@core/ui-kit/shadcn-ui/src/ui/tabs/TabsList.vue
- packages/@core/ui-kit/shadcn-ui/src/ui/tabs/TabsTrigger.vue
- packages/@core/ui-kit/shadcn-ui/src/ui/textarea/Textarea.vue
- packages/@core/ui-kit/shadcn-ui/src/ui/tooltip/TooltipContent.vue
- packages/@core/ui-kit/shadcn-ui/src/ui/tree/tree.vue
- packages/@core/ui-kit/tabs-ui/src/components/tabs-chrome/tabs.vue
- packages/@core/ui-kit/tabs-ui/src/components/tabs/tabs.vue
- packages/@core/ui-kit/tabs-ui/src/components/widgets/tool-more.vue
- packages/@core/ui-kit/tabs-ui/src/components/widgets/tool-screen.vue
- packages/@core/ui-kit/tabs-ui/src/tabs-view.vue
- packages/effects/common-ui/src/components/json-viewer/index.vue
- packages/effects/common-ui/src/components/resize/resize.vue
- packages/effects/layouts/src/basic/header/header.vue
- packages/effects/layouts/src/widgets/theme-toggle/theme-button.vue
- packages/stores/shim-pinia.d.ts
- packages/stores/src/modules/tabbar.ts
- packages/utils/src/helpers/generate-menus.ts
- playground/src/views/dashboard/analytics/analytics-visits-sales.vue
- playground/src/views/demos/access/button-control.vue
- playground/src/views/demos/access/index.vue
- playground/src/views/demos/features/icons/index.vue
- playground/src/views/demos/features/login-expired/index.vue
- playground/src/views/demos/features/tabs/index.vue
- playground/src/views/demos/features/watermark/index.vue
- playground/src/views/examples/drawer/auto-height-demo.vue
- playground/src/views/examples/layout/col-page.vue
- playground/src/views/examples/loading/index.vue
- playground/src/views/examples/modal/auto-height-demo.vue
- playground/src/views/examples/tippy/index.vue
- pnpm-workspace.yaml
💤 Files with no reviewable changes (6)
- internal/lint-configs/eslint-config/src/configs/turbo.ts
- internal/lint-configs/eslint-config/src/configs/vue.ts
- internal/lint-configs/eslint-config/src/configs/command.ts
- internal/lint-configs/eslint-config/src/configs/perfectionist.ts
- packages/@core/base/design/src/index.ts
- packages/@core/base/design/src/design-tokens/index.ts
🧰 Additional context used
🧠 Learnings (6)
📚 Learning: 2024-12-04T04:43:22.179Z
Learnt from: mynetfan
Repo: vbenjs/vue-vben-admin PR: 5013
File: docs/src/components/layout-ui/page.md:23-24
Timestamp: 2024-12-04T04:43:22.179Z
Learning: 在 `docs/src/components/layout-ui/page.md` 的 `Page` 组件中,`title` 和 `description` 属性有意使用 `string|slot` 类型表示法,表示它们可以接受字符串或插槽。
Applied to files:
packages/@core/ui-kit/shadcn-ui/src/ui/form/FormDescription.vue
📚 Learning: 2025-01-15T04:29:13.944Z
Learnt from: mynetfan
Repo: vbenjs/vue-vben-admin PR: 5397
File: playground/src/bootstrap.ts:23-30
Timestamp: 2025-01-15T04:29:13.944Z
Learning: In the Vue-Vben-Admin project, commented code in bootstrap.ts showing modal and drawer configuration examples should be preserved as reference documentation, even after moving to CSS variables for z-index management.
Applied to files:
internal/vite-config/src/config/application.tspackages/@core/ui-kit/layout-ui/src/components/widgets/sidebar-fixed-button.vuedocs/src/demos/vben-drawer/auto-height/drawer.vueapps/web-tdesign/src/bootstrap.tspackages/@core/ui-kit/popup-ui/src/drawer/drawer.vuepackages/@core/ui-kit/popup-ui/src/modal/modal.vuedocs/src/demos/vben-modal/auto-height/modal.vuepackages/@core/ui-kit/shadcn-ui/src/components/back-top/back-top.vue
📚 Learning: 2025-07-17T16:38:41.911Z
Learnt from: Elm1992
Repo: vbenjs/vue-vben-admin PR: 6537
File: packages/@core/ui-kit/shadcn-ui/src/ui/dialog/DialogContent.vue:110-114
Timestamp: 2025-07-17T16:38:41.911Z
Learning: In the Vue-Vben-Admin DialogContent component, the animation system uses a layered approach: zoom animation classes (zoom-out-95, zoom-in-95) are applied unconditionally as the base effect for scale animation, while specific animation types like 'slide' add conditional classes on top of the base effect. This design allows scale animation to use the dialog's built-in zoom effect and enables future animation types to be added without affecting the scale behavior.
Applied to files:
packages/@core/ui-kit/shadcn-ui/src/ui/dialog/DialogOverlay.vuepackages/@core/ui-kit/shadcn-ui/src/ui/dialog/DialogContent.vuepackages/@core/ui-kit/popup-ui/src/modal/modal.vuepackages/@core/ui-kit/shadcn-ui/src/ui/alert-dialog/AlertDialogContent.vuepackages/@core/ui-kit/shadcn-ui/src/ui/dialog/DialogScrollContent.vuepackages/@core/ui-kit/shadcn-ui/src/ui/dialog/DialogDescription.vuepackages/@core/ui-kit/shadcn-ui/src/components/spinner/spinner.vue
📚 Learning: 2024-12-04T04:41:30.161Z
Learnt from: mynetfan
Repo: vbenjs/vue-vben-admin PR: 5013
File: docs/src/components/layout-ui/page.md:31-31
Timestamp: 2024-12-04T04:41:30.161Z
Learning: 在 Vben Admin 项目的 `Page` 组件中,`extra` 内容仅通过 slots 提供,没有对应的 prop 属性。
Applied to files:
packages/@core/ui-kit/popup-ui/src/alert/AlertBuilder.ts
📚 Learning: 2024-12-09T04:41:58.914Z
Learnt from: mynetfan
Repo: vbenjs/vue-vben-admin PR: 5075
File: packages/effects/common-ui/src/components/api-select/api-select.vue:61-62
Timestamp: 2024-12-09T04:41:58.914Z
Learning: 在文件 `packages/effects/common-ui/src/components/api-select/api-select.vue` 的组件 `ApiSelect` 中,`childrenField` 的默认值设置为空字符串是有意的,因为并非所有组件都使用树形数据。
Applied to files:
packages/@core/ui-kit/shadcn-ui/src/ui/select/SelectItem.vue
📚 Learning: 2025-02-08T07:36:14.722Z
Learnt from: dingdayu
Repo: vbenjs/vue-vben-admin PR: 5500
File: packages/@core/ui-kit/tabs-ui/src/components/tabs-chrome/tabs.vue:51-51
Timestamp: 2025-02-08T07:36:14.722Z
Learning: The project uses changesets for version management and changelog generation. Breaking changes should be documented by creating a new changeset using `pnpm changeset` command, selecting affected packages, choosing "major" as the bump type, and providing a detailed description of the change and its impact.
Applied to files:
package.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (7)
- GitHub Check: Check (windows-latest)
- GitHub Check: Check (ubuntu-latest)
- GitHub Check: Lint (ubuntu-latest)
- GitHub Check: Test (windows-latest)
- GitHub Check: Lint (windows-latest)
- GitHub Check: post-update (ubuntu-latest)
- GitHub Check: post-update (windows-latest)
🔇 Additional comments (97)
packages/@core/ui-kit/shadcn-ui/src/components/tooltip/help-tooltip.vue (1)
22-22: Class reordering aligns with PR standardization goals.The Tailwind utility classes have been reordered for consistency across the UI kit without any functional impact on the component's behavior or styling output. This is approved.
packages/@core/ui-kit/shadcn-ui/src/components/input-password/password-strength.vue (1)
54-54: Class reordering is consistent with PR objectives.The Tailwind CSS utility classes have been reordered to follow a convention (layout/sizing → appearance → state/responsive modifiers). This is a cosmetic change with no impact on component behavior or functionality.
docs/src/demos/vben-drawer/auto-height/drawer.vue (1)
35-35: Tailwind class reordering for consistency—approved.The utility classes have been reordered as part of the broader consistency effort across the codebase. All classes are preserved, and the reorder has no impact on styling or behavior (Tailwind's cascade and specificity handling are independent of class token order).
packages/@core/ui-kit/shadcn-ui/src/components/scrollbar/scrollbar.vue (1)
103-103: Tailwind class reordering is consistent with project-wide pattern.The class order changes on these lines (from
border-border border-t→border-t border-borderand similarly for the bottom border) are cosmetic—Tailwind CSS applies classes regardless of order. This reordering aligns with the broader ESLint/linting fixes applied across the PR and does not affect component logic or behavior.Also applies to: 112-112
packages/@core/ui-kit/layout-ui/src/components/widgets/sidebar-collapse-button.vue (1)
13-13: Tailwind class reordering: cosmetic change with no functional impact.The class attribute has been reordered for consistency (aligning with the broader PR pattern of Tailwind utility class reorganization). The computed styles, component behavior, and accessibility remain unchanged. This is a safe, non-functional refactor.
packages/@core/ui-kit/shadcn-ui/src/components/back-top/back-top.vue (1)
35-35: Tailwind class reordering is consistent and maintains functionality.The class order on the VbenButton now follows a logical grouping pattern (functional selectors → layout → sizing → appearance → transitions → interactive states → dark mode variants), which improves consistency across the codebase without affecting rendered styles or component behavior.
packages/@core/ui-kit/layout-ui/src/vben-layout.vue (1)
613-613: Tailwind utility class reordering is safe.This cosmetic reordering of Tailwind CSS classes on the mask overlay has no impact on functionality or rendering; the class set and their effects remain identical. The change aligns with the PR's focus on consistency and linting improvements.
packages/@core/ui-kit/shadcn-ui/src/components/input-password/input-password.vue (1)
41-41: LGTM!Pure Tailwind CSS class reordering with no functional impact. All classes are preserved and reorganized into a logical order (layout/positioning, sizing, colors/effects). Consistent with the PR's broader goal of standardizing class ordering across components.
Also applies to: 50-50
packages/@core/ui-kit/shadcn-ui/src/components/avatar/avatar.vue (1)
72-72: Tailwind class reordering is purely cosmetic—no functional impact.The reordered class string has identical visual and behavioral output. Verify that this reordering aligns with your project's ESLint/formatting rules (e.g., Tailwind CSS class sorting plugin).
If this is driven by an automated tool, confirm the tool configuration is correct and consistently applied across the PR changes. If not, consider documenting the class ordering convention for consistency.
packages/@core/ui-kit/form-ui/src/form-render/form-field.vue (2)
342-344: Tailwind class reordering approved.The utility classes are correctly reordered on the component error state binding. The order has no functional impact—Tailwind applies all utilities identically regardless of declaration order.
368-373: Tailwind class reordering approved.The utility classes on the CircleAlert icon are correctly reordered for consistency. As with other Tailwind reorderings in the PR, the class sequence has no effect on rendered styling.
packages/@core/ui-kit/shadcn-ui/src/components/logo/logo.vue (1)
85-85: LGTM! Tailwind CSS class reordering improves consistency.The reordering follows Tailwind CSS conventions (layout → typography → colors), improving code consistency across the project. No functional impact.
packages/@core/ui-kit/popup-ui/src/drawer/drawer.vue (1)
226-226: LGTM! Non-functional class reordering for consistency.The Tailwind utility class reordering (moving
data-[state=open]:bg-secondaryto the end) is a cosmetic change that aligns with the PR's linting standardization effort. No functional impact.Also applies to: 267-267
packages/@core/ui-kit/shadcn-ui/src/components/tooltip/tooltip.vue (1)
38-38: LGTM! Class reordering for consistency.This change reorders Tailwind CSS utility classes without altering functionality, aligning with the repository-wide formatting standardization described in the PR.
packages/@core/ui-kit/shadcn-ui/src/ui/checkbox/Checkbox.vue (1)
30-30: LGTM! Class reordering improves consistency.The Tailwind CSS utility classes have been reorganized for consistency with other UI components in this PR. The "border border-border" pattern (border width + border color) is valid and intentional. No runtime or visual changes are expected.
packages/@core/ui-kit/shadcn-ui/src/ui/radio-group/RadioGroupItem.vue (1)
27-27: LGTM! The explicitborderclass ensures visibility.Adding the explicit
borderclass alongsideborder-primaryis correct—Tailwind's color utilities likeborder-primaryonly set the color, not the width. The reordering aligns with the broader consistency improvements across the UI kit.packages/@core/ui-kit/shadcn-ui/src/ui/number-field/NumberFieldInput.vue (1)
11-11: LGTM! Tailwind class reordering improves consistency.The reordering of Tailwind utility classes (placing
borderbeforeborder-input) follows a more logical sequence and aligns with the automated lint fixes applied across the codebase. No functional changes.packages/@core/ui-kit/shadcn-ui/src/ui/resizable/ResizableHandle.vue (2)
35-40: LGTM! Verify visual appearance.The addition of
bg-borderand explicitfocus-visible:ring-ringimproves consistency with the design system tokens. Please visually verify the resizable handle's appearance hasn't regressed, particularly the background color and focus states.
43-47: Verifybg-borderduplication is intentional.Both the outer container (line 37) and this inner handle now have
bg-border. If both elements use the same background color, this might be redundant. Please confirm this layering is intentional for the desired visual effect.packages/@core/ui-kit/shadcn-ui/src/components/breadcrumb/breadcrumb-background.vue (1)
40-40: LGTM! Tailwind class reordering for consistency.The CSS utility class reordering maintains identical styling while improving consistency with the project's formatting standards.
Also applies to: 58-58, 87-87, 95-95
packages/@core/ui-kit/shadcn-ui/src/ui/breadcrumb/BreadcrumbLink.vue (1)
17-17: LGTM! Consistent class ordering.The class reordering aligns with the formatting changes across other breadcrumb components.
packages/@core/ui-kit/shadcn-ui/src/ui/breadcrumb/BreadcrumbPage.vue (1)
11-11: LGTM! Class reordering for consistency.The utility class order change maintains identical styling.
packages/@core/ui-kit/shadcn-ui/src/ui/breadcrumb/BreadcrumbItem.vue (1)
12-12: LGTM! Tailwind class ordering improvement.Reordering places layout utilities before interactive states, consistent with Tailwind best practices.
packages/@core/ui-kit/shadcn-ui/src/ui/breadcrumb/BreadcrumbList.vue (1)
13-13: LGTM! Improved class organization.The reordering groups related utilities logically while maintaining identical styling behavior.
packages/@core/ui-kit/shadcn-ui/src/ui/pin-input/PinInputInput.vue (1)
25-25: LGTM! Styling update aligns with shadcn-ui conventions.The addition of the
border-inputsemantic color token and class reordering improves consistency with shadcn-ui's design system. This is a presentational change with no functional impact.packages/@core/ui-kit/shadcn-ui/src/ui/separator/Separator.vue (2)
24-24: LGTM: Class reordering for consistency.The Tailwind CSS class reordering improves consistency across the codebase without affecting functionality.
34-34: LGTM: Improved class organization.The class reordering enhances consistency. The
bg-backgroundclass ensures the label remains readable when positioned over the separator line.packages/@core/ui-kit/layout-ui/src/components/layout-sidebar.vue (1)
267-267: LGTM! Tailwind class reordering improves consistency.The Tailwind utility classes have been reordered (likely by an automated formatter like
prettier-plugin-tailwindcss), grouping related utilities together. This improves code consistency without affecting the rendered styling or behavior.Also applies to: 298-298
packages/@core/ui-kit/layout-ui/src/components/layout-content.vue (1)
58-58: LGTM! Class ordering normalized.Positioning utilities moved to the front, consistent with Tailwind's recommended class ordering.
packages/@core/ui-kit/layout-ui/src/components/layout-tabbar.vue (1)
26-26: LGTM! Consistent class organization.Tailwind classes reorganized to follow a logical ordering pattern (layout → borders → colors → transitions).
packages/@core/ui-kit/layout-ui/src/components/layout-footer.vue (1)
40-40: LGTM! Positioning utilities moved to the front.Class ordering follows the standard Tailwind convention.
packages/@core/ui-kit/layout-ui/src/components/layout-header.vue (1)
67-67: LGTM! Comprehensive class reordering for consistency.The extensive class list has been reorganized to follow Tailwind's conventional ordering, improving readability and maintainability.
packages/@core/ui-kit/layout-ui/src/components/widgets/sidebar-fixed-button.vue (1)
13-13: LGTM! Class reordering maintains all interactive states.All utility classes including hover states are preserved, just reorganized for consistency with the codebase formatting standards.
packages/@core/ui-kit/popup-ui/src/alert/alert.vue (1)
152-152: LGTM! CSS class reordering for consistency.The Tailwind utility class reorderings maintain identical styling while standardizing class order across the codebase.
Also applies to: 171-171
packages/@core/ui-kit/popup-ui/src/alert/AlertBuilder.ts (1)
147-149: LGTM! Cleaner array initialization.Consolidating the array initialization is more concise and equally clear.
packages/@core/ui-kit/popup-ui/src/modal/modal.vue (1)
238-238: LGTM! CSS class reordering for consistency.The Tailwind utility class reorderings maintain identical styling while standardizing class order across the codebase.
Also applies to: 314-314
packages/@core/ui-kit/shadcn-ui/src/ui/select/SelectSeparator.vue (1)
22-22: LGTM: Tailwind class reordering.The class order change is cosmetic and doesn't affect styling since Tailwind utilities have equal specificity.
packages/@core/ui-kit/shadcn-ui/src/ui/select/SelectTrigger.vue (1)
27-27: LGTM: Explicit border width added.The addition of
borderbeforeborder-inputexplicitly setsborder-width: 1px. This ensures the border is visible with theborder-inputcolor.packages/@core/ui-kit/shadcn-ui/src/ui/select/SelectItem.vue (1)
32-32: LGTM: Class order refinement.The reordering of focus utilities to follow layout classes is purely organizational and doesn't affect styling behavior.
packages/@core/ui-kit/shadcn-ui/src/ui/select/SelectContent.vue (1)
45-50: LGTM: Enhanced popover styling.The additions of
border-border,bg-popover, andtext-popover-foregroundprovide explicit theming for the select dropdown. The position-specific translations improve positioning when using popper mode.apps/web-tdesign/src/views/dashboard/analytics/analytics-visits-sales.vue (1)
27-29: Good refactor to non-mutating sort. Switching from.sort()to.toSorted()avoids mutating the original array, which is a better practice. Node.js v20.12.0 includes the V8 update that adds the "change-by-copy" Array/TypedArray methods (including Array.prototype.toSorted), so this is safely supported in your target environment.packages/@core/ui-kit/menu-ui/src/components/menu-badge.vue (1)
52-52: LGTM: Class reordering for consistency.The Tailwind utility classes are reordered without any functional change, aligning with the PR-wide class normalization pattern.
cspell.json (1)
45-45: LGTM!Adding "tdesign" to the spell-check dictionary is appropriate given the tdesign library usage throughout the project.
packages/@core/ui-kit/shadcn-ui/src/components/full-screen/full-screen.vue (1)
28-29: LGTM!Class reordering maintains identical styling with improved consistency.
packages/@core/ui-kit/shadcn-ui/src/ui/accordion/AccordionTrigger.vue (1)
34-34: LGTM!Class reordering maintains identical styling.
apps/web-tdesign/src/app.vue (1)
9-9: LGTM!Import reordering maintains identical functionality.
docs/src/demos/vben-modal/auto-height/modal.vue (1)
35-35: LGTM!Class reordering maintains identical styling.
apps/web-tdesign/package.json (1)
47-47: ✓ Catalog configuration verified and working correctly.The pnpm catalog contains a valid tdesign-vue-next entry (
^1.17.1) defined in pnpm-workspace.yaml, which resolves to version 1.17.3. The package.json correctly references this catalog entry withcatalog:, and the dependency is successfully installed with peer dependencies satisfied.apps/web-tdesign/src/bootstrap.ts (1)
8-20: No issues found; CSS import repositioning is intentional and safe.The TDesign CSS import at line 19 loads before the
app.mount('#app')call, eliminating FOUC risk. The commit history confirms this repositioning was deliberate (cfad886: "adjust style import method"), and the pattern differs from other apps by design—TDesign uses the externaltdesign-vue-nextlibrary instead of an@vben/stylesvariant. No cascade conflicts or styling artifacts were detected. The commented modal/drawer configuration remains as reference documentation.packages/@core/ui-kit/shadcn-ui/src/ui/dialog/DialogOverlay.vue (1)
10-10: LGTM - Class reordering for consistency.The Tailwind utility class reordering maintains the same styling while aligning with the project's formatting standards.
packages/@core/ui-kit/shadcn-ui/src/ui/scroll-area/ScrollBar.vue (1)
38-38: LGTM - Class reordering for consistency.The Tailwind utility class reordering maintains identical styling while improving code consistency.
packages/@core/ui-kit/shadcn-ui/src/components/dropdown-menu/dropdown-menu.vue (1)
38-38: LGTM - Class reordering for consistency.The Tailwind utility class reordering maintains the same styling output while aligning with the project's formatting conventions.
packages/@core/ui-kit/shadcn-ui/src/ui/alert-dialog/AlertDialogOverlay.vue (1)
7-7: LGTM - Class reordering for consistency.The Tailwind utility class reordering aligns with the same pattern applied to DialogOverlay.vue, maintaining consistent class ordering across overlay components.
packages/@core/ui-kit/shadcn-ui/src/ui/alert-dialog/AlertDialogContent.vue (1)
84-87: LGTM - Class reordering for consistency.The animation class reordering maintains identical behavior while improving consistency. The slide animation classes are applied under the same conditions; only their order in the string has changed.
packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuSubTrigger.vue (1)
32-32: LGTM - Class reordering for consistency.The Tailwind utility class reordering maintains the same styling behavior while aligning with consistent class ordering patterns across the codebase.
packages/@core/ui-kit/form-ui/src/form-render/form-label.vue (1)
24-24: LGTM - Class reordering for consistency.The Tailwind utility class reordering maintains identical styling while improving consistency across the codebase.
packages/@core/ui-kit/shadcn-ui/src/ui/alert-dialog/AlertDialogDescription.vue (1)
21-27: Non-functional Tailwind class reordering looks goodReordering to
text-sm text-muted-foregroundis stylistic only and keeps behavior unchanged; this aligns with consistent utility ordering across the shadcn-ui components.packages/@core/ui-kit/shadcn-ui/src/ui/accordion/AccordionContent.vue (1)
19-27: AccordionContent class-order change is safeThe reordered
classstring preserves the same Tailwind utilities and should not affect layout or animations; it just standardizes ordering.internal/tailwind-config/package.json (1)
48-63: Confirmjiticatalog wiring across the workspaceAdding
"jiti": "catalog:"here looks consistent with the other catalog-based deps in this package. Please just double-check that:
jitiis defined in the workspace catalog/root so this resolves correctly, and- its version is aligned with any root-level overrides you’ve added in this PR.
docs/.vitepress/components/preview-group.vue (1)
49-107: Preview group Tailwind class tweaks are purely stylisticThe updated
classattributes onTabsRoot, header wrapper,TabsTrigger,Codeicon, and inner container just normalize utility order and keep the same behavioral/visual intent. No issues from a logic or layout standpoint.packages/@core/ui-kit/shadcn-ui/src/ui/card/Card.vue (1)
13-15: Card class reordering is safe and purely stylisticThe Tailwind utilities are unchanged, only reordered. This has no behavioral impact and keeps the component consistent with the rest of the UI kit.
docs/.vitepress/config/plugins/demo-preview.ts (1)
87-91:toSortedusage keeps behavior while avoiding in‑place mutationReassigning
childFiles = childFiles.toSorted(...)preserves the previous sort behavior (including prioritizingindex.vue) while avoiding in-place mutation, which is cleaner and matches the Node ≥20.12.0 requirement declared in the PR.Please confirm your docs/VitePress build pipeline is already running on a Node version that supports
Array.prototype.toSorted(Node 20+), in line with the updatedenginesfield.packages/@core/ui-kit/shadcn-ui/src/ui/form/FormDescription.vue (1)
16-16: Form description class order change is non-functionalThe same Tailwind classes are present with only their order swapped, so rendering and semantics stay the same while aligning with the new preferred ordering.
packages/@core/ui-kit/shadcn-ui/src/ui/form/FormMessage.vue (1)
16-16: Error message styling change is order-onlyThe
text-[0.8rem]andtext-destructiveclasses are unchanged apart from order, so behavior and appearance remain intact while matching the normalized class ordering used elsewhere.packages/@core/ui-kit/shadcn-ui/src/components/dropdown-menu/dropdown-radio-menu.vue (1)
37-37: LGTM! Formatting-only change.The Tailwind utility classes have been reordered without any functional changes. This aligns with the broader class-order standardization pattern across the PR.
packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuSeparator.vue (1)
22-22: LGTM! Formatting-only change.Class order adjustment with no functional impact. This change is consistent with the class-reordering pattern applied across UI components in this PR.
packages/@core/ui-kit/shadcn-ui/src/components/segmented/tabs-indicator.vue (1)
32-32: LGTM! Formatting-only change.The Tailwind utility classes have been reordered without altering the set of applied styles. This is consistent with the PR's design-system class standardization effort.
docs/.vitepress/components/demo-preview.vue (1)
22-34: LGTM! Formatting changes with minor text improvement.The class reorderings are formatting-only changes with no functional impact. The addition of "parameter." to the error message at line 34 provides slightly better clarity.
packages/@core/ui-kit/shadcn-ui/src/ui/card/CardDescription.vue (1)
10-10: LGTM! Formatting-only change.Class order standardization with no functional changes. This pattern is consistently applied across multiple description components in the PR.
packages/@core/ui-kit/shadcn-ui/src/ui/popover/PopoverContent.vue (1)
38-38: LGTM! Formatting-only change.The class string has been reordered and border utilities made more explicit. This is a presentational change with no functional impact, consistent with the broader UI component class standardization in this PR.
packages/@core/ui-kit/shadcn-ui/src/ui/dialog/DialogDescription.vue (1)
24-24: LGTM! Formatting-only change.Class order adjustment with no functional impact. This matches the same reordering pattern applied to other description components (CardDescription, AlertDialogDescription, etc.) in the PR.
packages/@core/ui-kit/shadcn-ui/src/ui/sheet/SheetDescription.vue (1)
21-21: LGTM! Formatting-only change.Class order standardization matching the pattern applied across all description components in this PR. No functional changes.
packages/@core/ui-kit/shadcn-ui/src/components/spinner/spinner.vue (2)
66-66: LGTM! Class reordering is correct.The Tailwind utility classes have been reordered without changing the applied styles. The visual rendering remains identical.
78-78: LGTM! Pseudo-element class reordering is correct.The reordering of
before:andafter:pseudo-element classes maintains the same styling behavior while improving consistency.packages/@core/ui-kit/shadcn-ui/src/ui/input/Input.vue (1)
27-27: LGTM! Class expansion and reordering are correct.The explicit addition of
border,border-input, andfocus-visible:ring-1alongside the reordered utilities maintains the same visual behavior while making the styling more explicit.packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuContent.vue (1)
32-32: LGTM! Class expansion maintains correct styling.The addition of explicit
borderandborder-borderutilities alongside the reordered animation classes preserves the original visual behavior.packages/@core/ui-kit/shadcn-ui/src/ui/dialog/DialogScrollContent.vue (1)
36-36: LGTM! Class reordering across dialog components is correct.All three elements show consistent class reordering with explicit border token additions. The styling behavior remains unchanged while improving maintainability.
Also applies to: 41-41, 63-63
packages/@core/ui-kit/shadcn-ui/src/components/segmented/segmented.vue (1)
48-48: LGTM! Tab component class reordering is correct.Both
TabsListandTabsTriggershow consistent class reordering without any functional changes to the component behavior.Also applies to: 55-55
packages/@core/ui-kit/shadcn-ui/src/components/spinner/loading.vue (1)
72-72: LGTM! Loading component class reordering is correct.All three elements show consistent class reordering. The visual rendering and animation behavior remain identical.
Also applies to: 86-86, 91-91
packages/@core/ui-kit/shadcn-ui/src/ui/hover-card/HoverCardContent.vue (1)
32-32: LGTM! Class expansion and reordering are correct.The explicit addition of border and popover color tokens alongside reordered animation classes maintains the same visual behavior while improving code clarity.
packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuSubContent.vue (1)
30-30: LGTM! Class expansion maintains correct styling.The expanded class string with explicit layout, border, and popover tokens preserves the original visual behavior while aligning with the project-wide class organization pattern.
packages/@core/ui-kit/shadcn-ui/src/ui/dialog/DialogContent.vue (1)
103-111: Dialog animations and close button styling remain consistent with the existing designThe updated
DialogContentclass list still applies zoom/fade animations unconditionally viadata-[state=...]attributes, withanimationType === 'slide'layering slide-in/out variants on top. This matches the intended “zoom as base, slide as optional overlay” behavior. The close button’s class reordering preserves the same tokens and state handling without changing behavior.Also applies to: 119-123
packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuItem.vue (1)
29-32: Context menu item class reordering is safe and keeps current behaviorThe Tailwind utility tokens are unchanged—only their order in the string moved. Layout, focus, and disabled-state handling remain intact.
packages/@core/ui-kit/shadcn-ui/src/ui/dropdown-menu/DropdownMenuRadioItem.vue (1)
36-38: Dropdown radio item class ordering change is non-functionalAll Tailwind utilities (layout, transition, focus, and disabled-state variants) are preserved; only their ordering changed, so behavior and styling remain the same.
packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuLabel.vue (1)
26-29: Context menu label styling remains unchanged aside from class orderPadding, font weight, size, and foreground color utilities are all still present; only their order shifted, so the rendered label appearance is unaffected.
package.json (2)
100-103: No changeset required; published packages don't declare engines.nodeVerification shows no published workspace packages currently declare
engines.node, so there's no need for a changeset entry for engine requirements. The root package is private, and the engine bump won't affect downstream consumers.CI workflows don't have explicit Node version constraints in most job matrices (consider adding
.nvmrcor explicit node-version pins if you want to enforce Node ≥20.12.0 across all CI runs).
96-98: Catalog definitions confirmed and properly configuredThe pnpm catalog in
pnpm-workspace.yamlcorrectly defines:
vue: ^3.5.24(line 185)jiti: ^2.6.1(line 117)The changes to use
"catalog:"references in rootpackage.json(lines 96, 115, 117) are valid and align with the existing centralized version management approach. The catalog entries are correctly defined, so the assumption in the original comment is confirmed.packages/@core/ui-kit/shadcn-ui/src/ui/dropdown-menu/DropdownMenuItem.vue (1)
28-28: LGTM: Class reordering is non-functional.The Tailwind utility class reordering (moving focus-related classes after base layout classes) does not affect the rendered output, as Tailwind generates atomic CSS with consistent specificity. This appears to be part of a broader formatting standardization across dropdown menu components.
packages/@core/ui-kit/shadcn-ui/src/ui/dropdown-menu/DropdownMenuCheckboxItem.vue (1)
35-35: LGTM: Class reordering is non-functional.Consistent with the pattern across dropdown menu components—focus and state modifier classes moved after base classes without affecting behavior.
packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuCheckboxItem.vue (1)
35-35: LGTM: Class reordering is non-functional.Consistent formatting applied to context menu components, matching the pattern in dropdown menu components.
packages/@core/ui-kit/shadcn-ui/src/ui/dropdown-menu/DropdownMenuSeparator.vue (1)
26-26: LGTM: Class reordering is non-functional.Moving
bg-borderto the end of the class string does not affect the rendered output.packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuShortcut.vue (1)
12-12: LGTM: Class reordering is non-functional.Moving
text-muted-foregroundto the end of the class string maintains the same visual output.packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuRadioItem.vue (1)
35-35: LGTM: Class reordering is non-functional.Consistent class reordering pattern—base layout classes precede focus and state modifiers without affecting behavior.
packages/@core/ui-kit/shadcn-ui/src/ui/dropdown-menu/DropdownMenuSubTrigger.vue (1)
27-27: LGTM: Class reordering is non-functional.State modifiers moved to the end of the class string, consistent with the formatting pattern across dropdown menu components.
packages/@core/ui-kit/shadcn-ui/src/ui/dropdown-menu/DropdownMenuContent.vue (1)
40-40: Class binding aligns with established design tokens and component patterns.Verification confirms the explicit utility classes (
bg-popover,text-popover-foreground,border-border) are well-defined in the Tailwind configuration and consistently applied across similar components (SelectContent, PopoverContent, HoverCardContent, ContextMenuContent). The visual output remains unchanged as these are standard utilities mapped to the design token CSS variables already used throughout the UI kit.internal/lint-configs/eslint-config/tsconfig.json (1)
4-6: LGTM! Appropriate moduleResolution for a bundler-based project.The addition of
"moduleResolution": "bundler"aligns with modern TypeScript best practices for projects using bundlers like Vite.internal/lint-configs/eslint-config/src/configs/typescript.ts (1)
32-33: Verify that the optional chaining correctly accesses the updated @typescript-eslint 8.46.4 configs.The configs
eslint-recommendedandstrictexist in @typescript-eslint v8.46.4, but the internal structure accessed via.overrides?.[0]?.rulescannot be definitively confirmed from documentation alone. The optional chaining is defensive coding, but it may silently skip rule application if the config structure has changed.Please manually verify:
- That
pluginTs.configs['eslint-recommended'].overrides?.[0]?.rulescontains the expected rules- That
pluginTs.configs.strict.rulescontains the expected rules- That ESLint actually applies these rules when linting (test with a TypeScript file to confirm no warnings/errors are missed)
| { | ||
| ignores: [], | ||
| version: '>=18.0.0', | ||
| version: '>=20.12.0', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
Verify Node.js version consistency across project configuration files.
The Node.js version requirement has been updated to >=20.12.0, which aligns with the PR objective to support Tailwind CSS v4. Ensure that all project configuration files (package.json engines field, CI workflows, Docker files, deployment configs, etc.) have been updated to match this requirement.
Run the following script to check for version consistency:
🏁 Script executed:
#!/bin/bash
# Description: Verify Node.js version consistency across configuration files
echo "=== Checking package.json files for engines.node field ==="
fd -e json package.json -x sh -c 'echo "File: {}"; cat {} | jq -r ".engines.node // \"not specified\""'
echo -e "\n=== Checking for .nvmrc files ==="
fd -H -t f '^\.nvmrc$' -x cat {}
echo -e "\n=== Checking for .node-version files ==="
fd -H -t f '^\.node-version$' -x cat {}
echo -e "\n=== Checking GitHub Actions workflows for node versions ==="
fd -e yml -e yaml . .github/workflows -x sh -c 'echo "File: {}"; rg -n "node-version:" {}'
echo -e "\n=== Checking Dockerfile for NODE_VERSION ==="
fd -t f Dockerfile -x sh -c 'echo "File: {}"; rg -n "FROM node:|NODE_VERSION" {}'Length of output: 3422
---
🏁 Script executed:
```shell
#!/bin/bash
# Get full context of rerun.yml workflow to understand node version matrix
echo "=== Full content of .github/workflows/rerun.yml ==="
cat .github/workflows/rerun.yml
echo -e "\n=== Full content of .node-version ==="
cat .node-version
echo -e "\n=== Relevant section of Dockerfile ==="
head -20 ./scripts/deploy/Dockerfile
Length of output: 323
🏁 Script executed:
#!/bin/bash
# Get full context of rerun.yml workflow to understand node version matrix
echo "=== Full content of .github/workflows/rerun.yml ==="
cat .github/workflows/rerun.yml
echo -e "\n=== Full content of .node-version ==="
cat .node-version
echo -e "\n=== Check for Dockerfile files ==="
fd -t f -name "Dockerfile" -x sh -c 'echo "File: {}"; head -20 {}'Length of output: 828
🏁 Script executed:
#!/bin/bash
# Search for Dockerfile files with proper syntax
echo "=== Checking for Dockerfile files ==="
fd Dockerfile -t f -x sh -c 'echo "=== File: {} ==="; head -20 {}'
echo -e "\n=== Summary of version constraints found ==="
echo "Root package.json engines.node:"
cat ./package.json | jq -r ".engines.node"
echo -e "\n.node-version:"
cat ./.node-versionLength of output: 616
Resolve Node.js version inconsistency before merge.
The PR updates package.json to >=20.12.0, but configuration files are misaligned:
- .node-version: 22.1.0 (enforces Node 22 for local development)
- Dockerfile: node:22-slim (production uses Node 22)
- package.json: >=20.12.0 (allows Node 20+)
This creates a conflict: the stated minimum (20.12.0) differs from what developers and production actually enforce (22.1.0). Either update .node-version and remove the upper bound assumption, or update package.json to require Node 22+ if that's the true minimum.
🤖 Prompt for AI Agents
In internal/lint-configs/eslint-config/src/configs/node.ts around line 38, the
Node.js version string ('>=20.12.0') conflicts with .node-version (22.1.0) and
Dockerfile (node:22-slim); update the version here to match the actual enforced
minimum (e.g., '>=22.1.0') and then ensure package.json, .node-version, and
Dockerfile are all aligned to the same minimum Node 22.x value (or choose to
lower .node-version/Dockerfile if you intentionally support 20.x) so the repo
and CI/production use a single consistent Node version.
| const currentProps = { | ||
| ...componentProps, | ||
| [modelPropName]: modelValue.value, | ||
| [`onUpdate:${modelPropName}`]: (val: T) => { | ||
| modelValue.value = val; | ||
| }, | ||
| }; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion | 🟠 Major
Remove orphaned Chinese comments below.
The consolidation of currentProps initialization is good, but the comments on lines 164 and 166 ("设置当前值" / "Set current value" and "设置更新处理函数" / "Set update handler") are now orphaned since they previously described the separate assignment statements that were consolidated into the object literal.
Apply this diff to remove the orphaned comments:
const currentProps = {
...componentProps,
[modelPropName]: modelValue.value,
[`onUpdate:${modelPropName}`]: (val: T) => {
modelValue.value = val;
},
};
- // 设置当前值
-
- // 设置更新处理函数
-
// 创建输入组件
inputComponentRef.value = h(📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| const currentProps = { | |
| ...componentProps, | |
| [modelPropName]: modelValue.value, | |
| [`onUpdate:${modelPropName}`]: (val: T) => { | |
| modelValue.value = val; | |
| }, | |
| }; | |
| const currentProps = { | |
| ...componentProps, | |
| [modelPropName]: modelValue.value, | |
| [`onUpdate:${modelPropName}`]: (val: T) => { | |
| modelValue.value = val; | |
| }, | |
| }; | |
| // 创建输入组件 | |
| inputComponentRef.value = h( |
🤖 Prompt for AI Agents
In packages/@core/ui-kit/popup-ui/src/alert/AlertBuilder.ts around lines 156 to
162, there are orphaned Chinese comments ("设置当前值" and "设置更新处理函数") left over from
a previous split assignment; remove those two comment lines so the consolidated
currentProps object literal remains clean and only keep relevant comments (if
any) nearby.
|
#6929 经 验证没有问题 |
Description
升级 node 版本要求 >=20.12.0(tailwindcss4 要求大于20.12.0)
升级 eslint 及各版本依赖到最新,并进行 lint 修复
Type of change
Please delete options that are not relevant.
pnpm-lock.yamlunless you introduce a new test example.Checklist
pnpm run docs:devcommand.pnpm test.feat:,fix:,perf:,docs:, orchore:.Summary by CodeRabbit
Bug Fixes
Refactor
Documentation
Chores
✏️ Tip: You can customize this high-level summary in your review settings.