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;