From a06de94c8f24ecd0327a6d85103ee507452ebe88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?cls=5F=E5=AE=81=E6=B3=A2=E6=9C=AC=E6=9C=BA?= <908705107@qq.com> Date: Fri, 12 Jun 2026 17:01:05 +0800 Subject: [PATCH] chore: trim button radix dependency --- .../shadcn-ui/src/components/button/button.ts | 9 +++++---- .../shadcn-ui/src/components/button/button.vue | 17 +++++++++-------- .../src/components/button/icon-button.vue | 5 +++-- 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/web/packages/@core/ui-kit/shadcn-ui/src/components/button/button.ts b/web/packages/@core/ui-kit/shadcn-ui/src/components/button/button.ts index 9da307c..c4c7da4 100644 --- a/web/packages/@core/ui-kit/shadcn-ui/src/components/button/button.ts +++ b/web/packages/@core/ui-kit/shadcn-ui/src/components/button/button.ts @@ -1,15 +1,16 @@ -import type { AsTag } from 'radix-vue'; - import type { Component } from 'vue'; -import type { ButtonVariants, ButtonVariantSize } from '../../ui'; +import type { + ButtonVariants, + ButtonVariantSize, +} from '../../ui/button/types'; export interface VbenButtonProps { /** * The element or component this component should render as. Can be overwrite by `asChild` * @defaultValue "div" */ - as?: AsTag | Component; + as?: Component | string; /** * Change the default rendered element for the one passed as a child, merging their props and behavior. * diff --git a/web/packages/@core/ui-kit/shadcn-ui/src/components/button/button.vue b/web/packages/@core/ui-kit/shadcn-ui/src/components/button/button.vue index cb9b3e5..adb0d46 100644 --- a/web/packages/@core/ui-kit/shadcn-ui/src/components/button/button.vue +++ b/web/packages/@core/ui-kit/shadcn-ui/src/components/button/button.vue @@ -1,14 +1,12 @@ diff --git a/web/packages/@core/ui-kit/shadcn-ui/src/components/button/icon-button.vue b/web/packages/@core/ui-kit/shadcn-ui/src/components/button/icon-button.vue index ac626c1..cf2efdb 100644 --- a/web/packages/@core/ui-kit/shadcn-ui/src/components/button/icon-button.vue +++ b/web/packages/@core/ui-kit/shadcn-ui/src/components/button/icon-button.vue @@ -2,13 +2,14 @@ import type { ButtonVariants } from '../../ui'; import type { VbenButtonProps } from './button'; -import { computed, useSlots } from 'vue'; +import { computed, defineAsyncComponent, useSlots } from 'vue'; import { cn } from '@vben-core/shared/utils'; -import { VbenTooltip } from '../tooltip'; import VbenButton from './button.vue'; +const VbenTooltip = defineAsyncComponent(() => import('../tooltip/tooltip.vue')); + interface Props extends VbenButtonProps { class?: any; disabled?: boolean;