瀏覽代碼

refactor: change the shadcn-ui directory and remove rarely used components (#4626)

Vben 5 月之前
父節點
當前提交
0ea0f204cb
共有 100 個文件被更改,包括 25 次插入384 次删除
  1. 1 0
      packages/@core/ui-kit/menu-ui/src/components/index.ts
  2. 0 0
      packages/@core/ui-kit/menu-ui/src/components/menu-badge-dot.vue
  3. 0 0
      packages/@core/ui-kit/menu-ui/src/components/menu-badge.vue
  4. 3 2
      packages/@core/ui-kit/menu-ui/src/components/menu-item.vue
  5. 2 4
      packages/@core/ui-kit/menu-ui/src/sub-menu.vue
  6. 1 1
      packages/@core/ui-kit/shadcn-ui/src/components/avatar/avatar.vue
  7. 2 4
      packages/@core/ui-kit/shadcn-ui/src/components/breadcrumb/breadcrumb.vue
  8. 1 1
      packages/@core/ui-kit/shadcn-ui/src/components/button/button.ts
  9. 1 1
      packages/@core/ui-kit/shadcn-ui/src/components/button/button.vue
  10. 1 1
      packages/@core/ui-kit/shadcn-ui/src/components/button/icon-button.vue
  11. 1 1
      packages/@core/ui-kit/shadcn-ui/src/components/checkbox/checkbox.vue
  12. 1 1
      packages/@core/ui-kit/shadcn-ui/src/components/context-menu/context-menu.vue
  13. 1 1
      packages/@core/ui-kit/shadcn-ui/src/components/dropdown-menu/dropdown-menu.vue
  14. 1 1
      packages/@core/ui-kit/shadcn-ui/src/components/dropdown-menu/dropdown-radio-menu.vue
  15. 1 5
      packages/@core/ui-kit/shadcn-ui/src/components/hover-card/hover-card.vue
  16. 0 33
      packages/@core/ui-kit/shadcn-ui/src/components/index.ts
  17. 1 1
      packages/@core/ui-kit/shadcn-ui/src/components/input-password/input-password.vue
  18. 0 1
      packages/@core/ui-kit/shadcn-ui/src/components/link/index.ts
  19. 0 28
      packages/@core/ui-kit/shadcn-ui/src/components/link/link.vue
  20. 0 1
      packages/@core/ui-kit/shadcn-ui/src/components/menu-badge/index.ts
  21. 0 2
      packages/@core/ui-kit/shadcn-ui/src/components/pagination/index.ts
  22. 0 41
      packages/@core/ui-kit/shadcn-ui/src/components/pagination/pagination.ts
  23. 0 121
      packages/@core/ui-kit/shadcn-ui/src/components/pagination/pagination.vue
  24. 1 1
      packages/@core/ui-kit/shadcn-ui/src/components/pin-input/input.vue
  25. 1 1
      packages/@core/ui-kit/shadcn-ui/src/components/popover/popover.vue
  26. 1 1
      packages/@core/ui-kit/shadcn-ui/src/components/scrollbar/scrollbar.vue
  27. 1 1
      packages/@core/ui-kit/shadcn-ui/src/components/segmented/segmented.vue
  28. 1 1
      packages/@core/ui-kit/shadcn-ui/src/components/select/select.vue
  29. 0 1
      packages/@core/ui-kit/shadcn-ui/src/components/swap/index.ts
  30. 0 126
      packages/@core/ui-kit/shadcn-ui/src/components/swap/swap.vue
  31. 1 1
      packages/@core/ui-kit/shadcn-ui/src/components/tooltip/tooltip.vue
  32. 1 0
      packages/@core/ui-kit/shadcn-ui/src/index.ts
  33. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/accordion/Accordion.vue
  34. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/accordion/AccordionContent.vue
  35. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/accordion/AccordionItem.vue
  36. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/accordion/AccordionTrigger.vue
  37. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/accordion/index.ts
  38. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/avatar/Avatar.vue
  39. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/avatar/AvatarFallback.vue
  40. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/avatar/AvatarImage.vue
  41. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/avatar/avatar.ts
  42. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/avatar/index.ts
  43. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/badge/Badge.vue
  44. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/badge/badge.ts
  45. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/badge/index.ts
  46. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/breadcrumb/Breadcrumb.vue
  47. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/breadcrumb/BreadcrumbEllipsis.vue
  48. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/breadcrumb/BreadcrumbItem.vue
  49. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/breadcrumb/BreadcrumbLink.vue
  50. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/breadcrumb/BreadcrumbList.vue
  51. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/breadcrumb/BreadcrumbPage.vue
  52. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/breadcrumb/BreadcrumbSeparator.vue
  53. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/breadcrumb/index.ts
  54. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/button/Button.vue
  55. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/button/button.ts
  56. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/button/index.ts
  57. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/button/types.ts
  58. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/card/Card.vue
  59. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/card/CardContent.vue
  60. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/card/CardDescription.vue
  61. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/card/CardFooter.vue
  62. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/card/CardHeader.vue
  63. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/card/CardTitle.vue
  64. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/card/index.ts
  65. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/checkbox/Checkbox.vue
  66. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/checkbox/index.ts
  67. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenu.vue
  68. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuCheckboxItem.vue
  69. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuContent.vue
  70. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuGroup.vue
  71. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuItem.vue
  72. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuLabel.vue
  73. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuPortal.vue
  74. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuRadioGroup.vue
  75. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuRadioItem.vue
  76. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuSeparator.vue
  77. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuShortcut.vue
  78. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuSub.vue
  79. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuSubContent.vue
  80. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuSubTrigger.vue
  81. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuTrigger.vue
  82. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/index.ts
  83. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/dialog/Dialog.vue
  84. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/dialog/DialogClose.vue
  85. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/dialog/DialogContent.vue
  86. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/dialog/DialogDescription.vue
  87. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/dialog/DialogFooter.vue
  88. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/dialog/DialogHeader.vue
  89. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/dialog/DialogOverlay.vue
  90. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/dialog/DialogScrollContent.vue
  91. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/dialog/DialogTitle.vue
  92. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/dialog/DialogTrigger.vue
  93. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/dialog/index.ts
  94. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/dropdown-menu/DropdownMenu.vue
  95. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/dropdown-menu/DropdownMenuCheckboxItem.vue
  96. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/dropdown-menu/DropdownMenuContent.vue
  97. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/dropdown-menu/DropdownMenuGroup.vue
  98. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/dropdown-menu/DropdownMenuItem.vue
  99. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/dropdown-menu/DropdownMenuLabel.vue
  100. 0 0
      packages/@core/ui-kit/shadcn-ui/src/ui/dropdown-menu/DropdownMenuRadioGroup.vue

+ 1 - 0
packages/@core/ui-kit/menu-ui/src/components/index.ts

@@ -1,3 +1,4 @@
 export { default as Menu } from './menu.vue';
+export { default as MenuBadge } from './menu-badge.vue';
 export { default as MenuItem } from './menu-item.vue';
 export { default as SubMenu } from './sub-menu.vue';

+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/menu-badge/menu-badge-dot.vue → packages/@core/ui-kit/menu-ui/src/components/menu-badge-dot.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/menu-badge/menu-badge.vue → packages/@core/ui-kit/menu-ui/src/components/menu-badge.vue


+ 3 - 2
packages/@core/ui-kit/menu-ui/src/components/menu-item.vue

@@ -4,8 +4,9 @@ import type { MenuItemProps, MenuItemRegistered } from '../types';
 import { computed, onBeforeUnmount, onMounted, reactive, useSlots } from 'vue';
 
 import { useNamespace } from '@vben-core/composables';
-import { VbenIcon, VbenMenuBadge, VbenTooltip } from '@vben-core/shadcn-ui';
+import { VbenIcon, VbenTooltip } from '@vben-core/shadcn-ui';
 
+import { MenuBadge } from '../components';
 import { useMenu, useMenuContext, useSubMenuContext } from '../hooks';
 
 interface Props extends MenuItemProps {}
@@ -108,7 +109,7 @@ onBeforeUnmount(() => {
       <slot name="title"></slot>
     </VbenTooltip>
     <div v-show="!showTooltip" :class="[e('content')]">
-      <VbenMenuBadge
+      <MenuBadge
         v-if="rootMenu.props.mode !== 'horizontal'"
         class="right-2"
         v-bind="props"

+ 2 - 4
packages/@core/ui-kit/menu-ui/src/sub-menu.vue

@@ -3,9 +3,7 @@ import type { MenuRecordRaw } from '@vben-core/typings';
 
 import { computed } from 'vue';
 
-import { VbenMenuBadge } from '@vben-core/shadcn-ui';
-
-import { MenuItem, SubMenu as SubMenuComp } from './components';
+import { MenuBadge, MenuItem, SubMenu as SubMenuComp } from './components';
 // eslint-disable-next-line import/no-self-import
 import SubMenu from './sub-menu.vue';
 
@@ -54,7 +52,7 @@ const hasChildren = computed(() => {
     :path="menu.path"
   >
     <template #content>
-      <VbenMenuBadge
+      <MenuBadge
         :badge="menu.badge"
         :badge-type="menu.badgeType"
         :badge-variants="menu.badgeVariants"

+ 1 - 1
packages/@core/ui-kit/shadcn-ui/src/components/avatar/avatar.vue

@@ -7,7 +7,7 @@ import type {
 
 import { computed } from 'vue';
 
-import { Avatar, AvatarFallback, AvatarImage } from '../ui/avatar';
+import { Avatar, AvatarFallback, AvatarImage } from '../../ui';
 
 interface Props extends AvatarRootProps, AvatarFallbackProps, AvatarImageProps {
   alt?: string;

+ 2 - 4
packages/@core/ui-kit/shadcn-ui/src/components/breadcrumb/breadcrumb.vue

@@ -3,7 +3,6 @@ import type { BreadcrumbProps } from './types';
 
 import { ChevronDown } from '@vben-core/icons';
 
-import { VbenIcon } from '../icon';
 import {
   Breadcrumb,
   BreadcrumbItem,
@@ -11,13 +10,12 @@ import {
   BreadcrumbList,
   BreadcrumbPage,
   BreadcrumbSeparator,
-} from '../ui/breadcrumb';
-import {
   DropdownMenu,
   DropdownMenuContent,
   DropdownMenuItem,
   DropdownMenuTrigger,
-} from '../ui/dropdown-menu';
+} from '../../ui';
+import { VbenIcon } from '../icon';
 
 interface Props extends BreadcrumbProps {}
 

+ 1 - 1
packages/@core/ui-kit/shadcn-ui/src/components/button/button.ts

@@ -1,6 +1,6 @@
 import type { AsTag } from 'radix-vue';
 
-import type { ButtonVariants, ButtonVariantSize } from '../ui/button';
+import type { ButtonVariants, ButtonVariantSize } from '../../ui';
 
 import type { Component } from 'vue';
 

+ 1 - 1
packages/@core/ui-kit/shadcn-ui/src/components/button/button.vue

@@ -8,7 +8,7 @@ import { cn } from '@vben-core/shared/utils';
 
 import { Primitive } from 'radix-vue';
 
-import { buttonVariants } from '../ui/button';
+import { buttonVariants } from '../../ui';
 
 interface Props extends VbenButtonProps {}
 

+ 1 - 1
packages/@core/ui-kit/shadcn-ui/src/components/button/icon-button.vue

@@ -1,5 +1,5 @@
 <script setup lang="ts">
-import type { ButtonVariants } from '../ui/button';
+import type { ButtonVariants } from '../../ui';
 import type { VbenButtonProps } from './button';
 
 import { computed, useSlots } from 'vue';

+ 1 - 1
packages/@core/ui-kit/shadcn-ui/src/components/checkbox/checkbox.vue

@@ -5,7 +5,7 @@ import { useId } from 'vue';
 
 import { useForwardPropsEmits } from 'radix-vue';
 
-import { Checkbox } from '../ui/checkbox';
+import { Checkbox } from '../../ui/checkbox';
 
 const props = defineProps<CheckboxRootProps>();
 

+ 1 - 1
packages/@core/ui-kit/shadcn-ui/src/components/context-menu/context-menu.vue

@@ -18,7 +18,7 @@ import {
   ContextMenuSeparator,
   ContextMenuShortcut,
   ContextMenuTrigger,
-} from '../ui/context-menu';
+} from '../../ui/context-menu';
 
 const props = defineProps<
   {

+ 1 - 1
packages/@core/ui-kit/shadcn-ui/src/components/dropdown-menu/dropdown-menu.vue

@@ -11,7 +11,7 @@ import {
   DropdownMenuItem,
   DropdownMenuSeparator,
   DropdownMenuTrigger,
-} from '../ui/dropdown-menu';
+} from '../../ui';
 
 interface Props extends DropdownMenuProps {}
 

+ 1 - 1
packages/@core/ui-kit/shadcn-ui/src/components/dropdown-menu/dropdown-radio-menu.vue

@@ -7,7 +7,7 @@ import {
   DropdownMenuGroup,
   DropdownMenuItem,
   DropdownMenuTrigger,
-} from '../ui/dropdown-menu';
+} from '../../ui';
 
 interface Props extends DropdownMenuProps {}
 

+ 1 - 5
packages/@core/ui-kit/shadcn-ui/src/components/hover-card/hover-card.vue

@@ -9,11 +9,7 @@ import { computed } from 'vue';
 
 import { useForwardPropsEmits } from 'radix-vue';
 
-import {
-  HoverCard,
-  HoverCardContent,
-  HoverCardTrigger,
-} from '../ui/hover-card';
+import { HoverCard, HoverCardContent, HoverCardTrigger } from '../../ui';
 
 interface Props extends HoverCardRootProps {
   class?: any;

+ 0 - 33
packages/@core/ui-kit/shadcn-ui/src/components/index.ts

@@ -11,10 +11,7 @@ export * from './full-screen';
 export * from './hover-card';
 export * from './icon';
 export * from './input-password';
-export * from './link';
 export * from './logo';
-export * from './menu-badge';
-export * from './pagination';
 export * from './pin-input';
 export * from './popover';
 export * from './render-content';
@@ -23,34 +20,4 @@ export * from './segmented';
 export * from './select';
 export * from './spine-text';
 export * from './spinner';
-export * from './swap';
 export * from './tooltip';
-export * from './ui/accordion';
-export * from './ui/avatar';
-export * from './ui/badge';
-export * from './ui/breadcrumb';
-export * from './ui/button';
-export * from './ui/card';
-export * from './ui/checkbox';
-export * from './ui/dialog';
-export * from './ui/dropdown-menu';
-export * from './ui/form';
-export * from './ui/hover-card';
-export * from './ui/input';
-export * from './ui/label';
-export * from './ui/number-field';
-export * from './ui/pagination';
-export * from './ui/pin-input';
-export * from './ui/popover';
-export * from './ui/radio-group';
-export * from './ui/scroll-area';
-export * from './ui/select';
-export * from './ui/separator';
-export * from './ui/sheet';
-export * from './ui/switch';
-export * from './ui/tabs';
-export * from './ui/textarea';
-export * from './ui/toast';
-export * from './ui/toggle';
-export * from './ui/toggle-group';
-export * from './ui/tooltip';

+ 1 - 1
packages/@core/ui-kit/shadcn-ui/src/components/input-password/input-password.vue

@@ -4,7 +4,7 @@ import { ref, useSlots } from 'vue';
 import { Eye, EyeOff } from '@vben-core/icons';
 import { cn } from '@vben-core/shared/utils';
 
-import { Input } from '../ui/input';
+import { Input } from '../../ui';
 import PasswordStrength from './password-strength.vue';
 
 interface Props {

+ 0 - 1
packages/@core/ui-kit/shadcn-ui/src/components/link/index.ts

@@ -1 +0,0 @@
-export { default as VbenLink } from './link.vue';

+ 0 - 28
packages/@core/ui-kit/shadcn-ui/src/components/link/link.vue

@@ -1,28 +0,0 @@
-<script setup lang="ts">
-import { cn } from '@vben-core/shared/utils';
-
-import { Primitive, type PrimitiveProps } from 'radix-vue';
-
-interface Props extends PrimitiveProps {
-  class?: any;
-  href: string;
-}
-
-const props = withDefaults(defineProps<Props>(), {
-  as: 'a',
-  class: '',
-  href: '',
-});
-</script>
-
-<template>
-  <Primitive
-    :as="as"
-    :as-child="asChild"
-    :class="cn('text-primary hover:text-primary-hover', props.class)"
-    :href="href"
-    target="_blank"
-  >
-    <slot></slot>
-  </Primitive>
-</template>

+ 0 - 1
packages/@core/ui-kit/shadcn-ui/src/components/menu-badge/index.ts

@@ -1 +0,0 @@
-export { default as VbenMenuBadge } from './menu-badge.vue';

+ 0 - 2
packages/@core/ui-kit/shadcn-ui/src/components/pagination/index.ts

@@ -1,2 +0,0 @@
-export type { PaginationProps as VbenPaginationProps } from './pagination';
-export { default as VbenPagination } from './pagination.vue';

+ 0 - 41
packages/@core/ui-kit/shadcn-ui/src/components/pagination/pagination.ts

@@ -1,41 +0,0 @@
-export interface PaginationProps {
-  /**
-   * 是否禁用
-   */
-  disabled?: boolean;
-  /**
-   * 每页记录数选项
-   */
-  pageSizeOptions?: number[];
-  /**
-   * 当 时true,始终显示第一页、最后一页和省略号
-   */
-  showEdges?: boolean;
-  /**
-   * 显示当前页选择下拉框
-   */
-  showRowsPerPage?: boolean;
-  /**
-   * 显示总条数文本
-   */
-  showTotalText?: boolean;
-  /**
-   * 当前页面周围应显示的兄弟页面数量
-   */
-  siblingCount?: number;
-  /**
-   * 组件尺寸
-   */
-  size?: 'default' | 'large' | 'small';
-
-  /**
-   * 总条数
-   */
-  total?: number;
-}
-
-export const SIZE_CLASS_MAP = {
-  default: 'size-8',
-  large: 'size-9',
-  small: 'size-7',
-};

+ 0 - 121
packages/@core/ui-kit/shadcn-ui/src/components/pagination/pagination.vue

@@ -1,121 +0,0 @@
-<script setup lang="ts">
-import { computed, watch } from 'vue';
-
-import { cn } from '@vben-core/shared/utils';
-
-import { Button } from '../ui/button';
-import {
-  Pagination,
-  PaginationEllipsis,
-  PaginationFirst,
-  PaginationLast,
-  PaginationList,
-  PaginationListItem,
-  PaginationNext,
-  PaginationPrev,
-} from '../ui/pagination';
-import {
-  Select,
-  SelectContent,
-  SelectItem,
-  SelectTrigger,
-  SelectValue,
-} from '../ui/select';
-import { type PaginationProps, SIZE_CLASS_MAP } from './pagination';
-
-interface Props extends PaginationProps {}
-
-const {
-  disabled = false,
-  pageSizeOptions = [10, 20, 30, 50, 100, 200],
-  showEdges = true,
-  showRowsPerPage = true,
-  showTotalText = true,
-  siblingCount = 1,
-  size = 'small',
-  total = 500,
-} = defineProps<Props>();
-
-const emit = defineEmits<{
-  pageChange: [currentPage: number, pageSize: number];
-}>();
-const currentPage = defineModel<number>('currentPage', { default: 1 });
-const itemPerPage = defineModel<number>('itemPerPage', { default: 20 });
-
-const itemSize = computed(() => {
-  return SIZE_CLASS_MAP[size];
-});
-
-const options = computed(() => {
-  return pageSizeOptions.map((item) => ({
-    label: `${item} 条/页`,
-    value: `${item}`,
-  }));
-});
-
-function handleUpdateModelValue(value: string) {
-  itemPerPage.value = Number(value);
-}
-
-watch(
-  [() => itemPerPage.value, () => currentPage.value],
-  ([itemPerPage, currentPage]) => {
-    emit('pageChange', currentPage, itemPerPage);
-  },
-);
-</script>
-
-<template>
-  <Pagination
-    v-model:page="currentPage"
-    :disabled="disabled"
-    :items-per-page="itemPerPage"
-    :show-edges="showEdges"
-    :sibling-count="siblingCount"
-    :total="total"
-  >
-    <PaginationList
-      v-slot="{ items }"
-      class="flex w-full items-center justify-end gap-1"
-    >
-      <span v-if="showTotalText" class="mr-2">共 {{ total }} 条</span>
-
-      <Select
-        v-if="showRowsPerPage"
-        :model-value="`${itemPerPage}`"
-        @update:model-value="handleUpdateModelValue"
-      >
-        <SelectTrigger class="w-30 mr-auto h-8">
-          <SelectValue />
-        </SelectTrigger>
-        <SelectContent>
-          <template v-for="item in options" :key="item.value">
-            <SelectItem :value="item.value"> {{ item.label }} </SelectItem>
-          </template>
-        </SelectContent>
-      </Select>
-
-      <PaginationFirst :class="cn('size-8', itemSize)" />
-      <PaginationPrev :class="cn('size-8', itemSize)" />
-      <template v-for="(item, index) in items">
-        <PaginationListItem
-          v-if="item.type === 'page'"
-          :key="index"
-          :value="item.value"
-          as-child
-        >
-          <Button
-            :class="cn('size-8 p-0 shadow-none', itemSize)"
-            :variant="item.value === currentPage ? 'default' : 'outline'"
-          >
-            {{ item.value }}
-          </Button>
-        </PaginationListItem>
-        <PaginationEllipsis v-else :key="item.type" :index="index" />
-      </template>
-
-      <PaginationNext :class="cn('size-8', itemSize)" />
-      <PaginationLast :class="cn('size-8', itemSize)" />
-    </PaginationList>
-  </Pagination>
-</template>

+ 1 - 1
packages/@core/ui-kit/shadcn-ui/src/components/pin-input/input.vue

@@ -3,8 +3,8 @@ import type { PinInputProps } from './types';
 
 import { computed, onBeforeUnmount, ref, useId, watch } from 'vue';
 
+import { PinInput, PinInputGroup, PinInputInput } from '../../ui';
 import { VbenButton } from '../button';
-import { PinInput, PinInputGroup, PinInputInput } from '../ui/pin-input';
 
 defineOptions({
   inheritAttrs: false,

+ 1 - 1
packages/@core/ui-kit/shadcn-ui/src/components/popover/popover.vue

@@ -13,7 +13,7 @@ import {
   PopoverContent,
   Popover as PopoverRoot,
   PopoverTrigger,
-} from '../ui/popover';
+} from '../../ui';
 
 interface Props extends PopoverRootProps {
   class?: any;

+ 1 - 1
packages/@core/ui-kit/shadcn-ui/src/components/scrollbar/scrollbar.vue

@@ -3,7 +3,7 @@ import { computed, ref } from 'vue';
 
 import { cn } from '@vben-core/shared/utils';
 
-import { ScrollArea, ScrollBar } from '../ui/scroll-area';
+import { ScrollArea, ScrollBar } from '../../ui';
 
 interface Props {
   class?: any;

+ 1 - 1
packages/@core/ui-kit/shadcn-ui/src/components/segmented/segmented.vue

@@ -5,7 +5,7 @@ import { computed } from 'vue';
 
 import { TabsTrigger } from 'radix-vue';
 
-import { Tabs, TabsContent, TabsList } from '../ui/tabs';
+import { Tabs, TabsContent, TabsList } from '../../ui';
 import TabsIndicator from './tabs-indicator.vue';
 
 interface Props {

+ 1 - 1
packages/@core/ui-kit/shadcn-ui/src/components/select/select.vue

@@ -5,7 +5,7 @@ import {
   SelectItem,
   SelectTrigger,
   SelectValue,
-} from '../ui/select';
+} from '../../ui';
 
 interface Props {
   class?: any;

+ 0 - 1
packages/@core/ui-kit/shadcn-ui/src/components/swap/index.ts

@@ -1 +0,0 @@
-export { default as VbenSwap } from './swap.vue';

+ 0 - 126
packages/@core/ui-kit/shadcn-ui/src/components/swap/swap.vue

@@ -1,126 +0,0 @@
-<script lang="ts" setup>
-interface Props {
-  /**
-   * @zh_CN 交换模式
-   */
-  mode?: 'flip' | 'rotate';
-  /**
-   * @zh_CN 开启时的样式
-   */
-  offClass?: string;
-  /**
-   * @zh_CN 关闭时的样式
-   */
-  onClass?: string;
-}
-
-defineOptions({
-  name: 'Swap',
-});
-
-withDefaults(defineProps<Props>(), {
-  mode: 'rotate',
-  onClass: '',
-});
-</script>
-
-<template>
-  <label
-    :class="{
-      'swap-flip': mode === 'flip',
-      'swap-rotate': mode === 'rotate',
-    }"
-    class="swap"
-  >
-    <input class="hidden" type="checkbox" />
-
-    <div :class="onClass" class="swap-on">
-      <slot name="swap-on"></slot>
-    </div>
-
-    <div :class="offClass" class="swap-off">
-      <slot name="swap-off"></slot>
-    </div>
-  </label>
-</template>
-
-<style scoped>
-.swap {
-  @apply relative inline-grid cursor-pointer select-none place-content-center;
-}
-
-.swap > * {
-  @apply col-start-1 row-start-1 duration-300 ease-out;
-
-  transition-property: transform, opacity;
-}
-
-.swap-rotate .swap-on,
-.swap-rotate .swap-indeterminate,
-.swap-rotate input:indeterminate ~ .swap-on {
-  @apply rotate-45;
-}
-
-.swap-rotate input:checked ~ .swap-off,
-.swap-active:where(.swap-rotate) .swap-off,
-.swap-rotate input:indeterminate ~ .swap-off {
-  @apply -rotate-45;
-}
-
-.swap-rotate input:checked ~ .swap-on,
-.swap-active:where(.swap-rotate) .swap-on,
-.swap-rotate input:indeterminate ~ .swap-indeterminate {
-  @apply rotate-0;
-}
-
-.swap-flip {
-  transform-style: preserve-3d;
-  perspective: 16em;
-}
-
-.swap-flip .swap-on,
-.swap-flip .swap-indeterminate,
-.swap-flip input:indeterminate ~ .swap-on {
-  @apply opacity-100;
-
-  transform: rotateY(180deg);
-  backface-visibility: hidden;
-}
-
-.swap-flip input:checked ~ .swap-off,
-.swap-active:where(.swap-flip) .swap-off,
-.swap-flip input:indeterminate ~ .swap-off {
-  @apply opacity-100;
-
-  transform: rotateY(-180deg);
-  backface-visibility: hidden;
-}
-
-.swap-flip input:checked ~ .swap-on,
-.swap-active:where(.swap-flip) .swap-on,
-.swap-flip input:indeterminate ~ .swap-indeterminate {
-  transform: rotateY(0deg);
-}
-
-.swap input {
-  @apply appearance-none;
-}
-
-.swap .swap-on,
-.swap .swap-indeterminate,
-.swap input:indeterminate ~ .swap-on {
-  @apply opacity-0;
-}
-
-.swap input:checked ~ .swap-off,
-.swap-active .swap-off,
-.swap input:indeterminate ~ .swap-off {
-  @apply opacity-0;
-}
-
-.swap input:checked ~ .swap-on,
-.swap-active .swap-on,
-.swap input:indeterminate ~ .swap-indeterminate {
-  @apply opacity-100;
-}
-</style>

+ 1 - 1
packages/@core/ui-kit/shadcn-ui/src/components/tooltip/tooltip.vue

@@ -8,7 +8,7 @@ import {
   TooltipContent,
   TooltipProvider,
   TooltipTrigger,
-} from '../ui/tooltip';
+} from '../../ui';
 
 interface Props {
   contentClass?: any;

+ 1 - 0
packages/@core/ui-kit/shadcn-ui/src/index.ts

@@ -1,2 +1,3 @@
 export * from './components';
+export * from './ui';
 export { createContext, Slot, VisuallyHidden } from 'radix-vue';

+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/accordion/Accordion.vue → packages/@core/ui-kit/shadcn-ui/src/ui/accordion/Accordion.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/accordion/AccordionContent.vue → packages/@core/ui-kit/shadcn-ui/src/ui/accordion/AccordionContent.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/accordion/AccordionItem.vue → packages/@core/ui-kit/shadcn-ui/src/ui/accordion/AccordionItem.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/accordion/AccordionTrigger.vue → packages/@core/ui-kit/shadcn-ui/src/ui/accordion/AccordionTrigger.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/accordion/index.ts → packages/@core/ui-kit/shadcn-ui/src/ui/accordion/index.ts


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/avatar/Avatar.vue → packages/@core/ui-kit/shadcn-ui/src/ui/avatar/Avatar.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/avatar/AvatarFallback.vue → packages/@core/ui-kit/shadcn-ui/src/ui/avatar/AvatarFallback.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/avatar/AvatarImage.vue → packages/@core/ui-kit/shadcn-ui/src/ui/avatar/AvatarImage.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/avatar/avatar.ts → packages/@core/ui-kit/shadcn-ui/src/ui/avatar/avatar.ts


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/avatar/index.ts → packages/@core/ui-kit/shadcn-ui/src/ui/avatar/index.ts


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/badge/Badge.vue → packages/@core/ui-kit/shadcn-ui/src/ui/badge/Badge.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/badge/badge.ts → packages/@core/ui-kit/shadcn-ui/src/ui/badge/badge.ts


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/badge/index.ts → packages/@core/ui-kit/shadcn-ui/src/ui/badge/index.ts


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/breadcrumb/Breadcrumb.vue → packages/@core/ui-kit/shadcn-ui/src/ui/breadcrumb/Breadcrumb.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/breadcrumb/BreadcrumbEllipsis.vue → packages/@core/ui-kit/shadcn-ui/src/ui/breadcrumb/BreadcrumbEllipsis.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/breadcrumb/BreadcrumbItem.vue → packages/@core/ui-kit/shadcn-ui/src/ui/breadcrumb/BreadcrumbItem.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/breadcrumb/BreadcrumbLink.vue → packages/@core/ui-kit/shadcn-ui/src/ui/breadcrumb/BreadcrumbLink.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/breadcrumb/BreadcrumbList.vue → packages/@core/ui-kit/shadcn-ui/src/ui/breadcrumb/BreadcrumbList.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/breadcrumb/BreadcrumbPage.vue → packages/@core/ui-kit/shadcn-ui/src/ui/breadcrumb/BreadcrumbPage.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/breadcrumb/BreadcrumbSeparator.vue → packages/@core/ui-kit/shadcn-ui/src/ui/breadcrumb/BreadcrumbSeparator.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/breadcrumb/index.ts → packages/@core/ui-kit/shadcn-ui/src/ui/breadcrumb/index.ts


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/button/Button.vue → packages/@core/ui-kit/shadcn-ui/src/ui/button/Button.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/button/button.ts → packages/@core/ui-kit/shadcn-ui/src/ui/button/button.ts


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/button/index.ts → packages/@core/ui-kit/shadcn-ui/src/ui/button/index.ts


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/button/types.ts → packages/@core/ui-kit/shadcn-ui/src/ui/button/types.ts


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/card/Card.vue → packages/@core/ui-kit/shadcn-ui/src/ui/card/Card.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/card/CardContent.vue → packages/@core/ui-kit/shadcn-ui/src/ui/card/CardContent.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/card/CardDescription.vue → packages/@core/ui-kit/shadcn-ui/src/ui/card/CardDescription.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/card/CardFooter.vue → packages/@core/ui-kit/shadcn-ui/src/ui/card/CardFooter.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/card/CardHeader.vue → packages/@core/ui-kit/shadcn-ui/src/ui/card/CardHeader.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/card/CardTitle.vue → packages/@core/ui-kit/shadcn-ui/src/ui/card/CardTitle.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/card/index.ts → packages/@core/ui-kit/shadcn-ui/src/ui/card/index.ts


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/checkbox/Checkbox.vue → packages/@core/ui-kit/shadcn-ui/src/ui/checkbox/Checkbox.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/checkbox/index.ts → packages/@core/ui-kit/shadcn-ui/src/ui/checkbox/index.ts


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/context-menu/ContextMenu.vue → packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenu.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/context-menu/ContextMenuCheckboxItem.vue → packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuCheckboxItem.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/context-menu/ContextMenuContent.vue → packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuContent.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/context-menu/ContextMenuGroup.vue → packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuGroup.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/context-menu/ContextMenuItem.vue → packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuItem.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/context-menu/ContextMenuLabel.vue → packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuLabel.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/context-menu/ContextMenuPortal.vue → packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuPortal.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/context-menu/ContextMenuRadioGroup.vue → packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuRadioGroup.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/context-menu/ContextMenuRadioItem.vue → packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuRadioItem.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/context-menu/ContextMenuSeparator.vue → packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuSeparator.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/context-menu/ContextMenuShortcut.vue → packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuShortcut.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/context-menu/ContextMenuSub.vue → packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuSub.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/context-menu/ContextMenuSubContent.vue → packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuSubContent.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/context-menu/ContextMenuSubTrigger.vue → packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuSubTrigger.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/context-menu/ContextMenuTrigger.vue → packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/ContextMenuTrigger.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/context-menu/index.ts → packages/@core/ui-kit/shadcn-ui/src/ui/context-menu/index.ts


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/dialog/Dialog.vue → packages/@core/ui-kit/shadcn-ui/src/ui/dialog/Dialog.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/dialog/DialogClose.vue → packages/@core/ui-kit/shadcn-ui/src/ui/dialog/DialogClose.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/dialog/DialogContent.vue → packages/@core/ui-kit/shadcn-ui/src/ui/dialog/DialogContent.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/dialog/DialogDescription.vue → packages/@core/ui-kit/shadcn-ui/src/ui/dialog/DialogDescription.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/dialog/DialogFooter.vue → packages/@core/ui-kit/shadcn-ui/src/ui/dialog/DialogFooter.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/dialog/DialogHeader.vue → packages/@core/ui-kit/shadcn-ui/src/ui/dialog/DialogHeader.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/dialog/DialogOverlay.vue → packages/@core/ui-kit/shadcn-ui/src/ui/dialog/DialogOverlay.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/dialog/DialogScrollContent.vue → packages/@core/ui-kit/shadcn-ui/src/ui/dialog/DialogScrollContent.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/dialog/DialogTitle.vue → packages/@core/ui-kit/shadcn-ui/src/ui/dialog/DialogTitle.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/dialog/DialogTrigger.vue → packages/@core/ui-kit/shadcn-ui/src/ui/dialog/DialogTrigger.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/dialog/index.ts → packages/@core/ui-kit/shadcn-ui/src/ui/dialog/index.ts


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/dropdown-menu/DropdownMenu.vue → packages/@core/ui-kit/shadcn-ui/src/ui/dropdown-menu/DropdownMenu.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue → packages/@core/ui-kit/shadcn-ui/src/ui/dropdown-menu/DropdownMenuCheckboxItem.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/dropdown-menu/DropdownMenuContent.vue → packages/@core/ui-kit/shadcn-ui/src/ui/dropdown-menu/DropdownMenuContent.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/dropdown-menu/DropdownMenuGroup.vue → packages/@core/ui-kit/shadcn-ui/src/ui/dropdown-menu/DropdownMenuGroup.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/dropdown-menu/DropdownMenuItem.vue → packages/@core/ui-kit/shadcn-ui/src/ui/dropdown-menu/DropdownMenuItem.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/dropdown-menu/DropdownMenuLabel.vue → packages/@core/ui-kit/shadcn-ui/src/ui/dropdown-menu/DropdownMenuLabel.vue


+ 0 - 0
packages/@core/ui-kit/shadcn-ui/src/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue → packages/@core/ui-kit/shadcn-ui/src/ui/dropdown-menu/DropdownMenuRadioGroup.vue


部分文件因文件數量過多而無法顯示