savor-ui 0.3.2 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/dist/es/components/index.d.ts +4 -0
  3. package/dist/es/components/index.mjs +6 -1
  4. package/dist/es/components/src/alert/alert.d.ts +22 -0
  5. package/dist/es/components/src/alert/alert.vue.mjs +5 -0
  6. package/dist/es/components/src/alert/alert.vue_vue_type_script_setup_true_vapor_true_lang.mjs +58 -0
  7. package/dist/es/components/src/alert/index.d.ts +26 -0
  8. package/dist/es/components/src/alert/index.mjs +7 -0
  9. package/dist/es/components/src/alert/types.d.ts +24 -0
  10. package/dist/es/components/src/cascader/cascader.vue_vue_type_script_setup_true_vapor_true_lang.mjs +93 -82
  11. package/dist/es/components/src/cascader/index.d.ts +1 -0
  12. package/dist/es/components/src/cascader/types.d.ts +2 -0
  13. package/dist/es/components/src/chat-list/chat-list.d.ts +35 -0
  14. package/dist/es/components/src/chat-list/chat-list.vue.mjs +5 -0
  15. package/dist/es/components/src/chat-list/chat-list.vue_vue_type_script_setup_true_vapor_true_lang.mjs +55 -0
  16. package/dist/es/components/src/chat-list/index.d.ts +47 -0
  17. package/dist/es/components/src/chat-list/index.mjs +7 -0
  18. package/dist/es/components/src/chat-list/types.d.ts +44 -0
  19. package/dist/es/components/src/chat-sender/chat-sender.d.ts +26 -0
  20. package/dist/es/components/src/chat-sender/chat-sender.vue.mjs +5 -0
  21. package/dist/es/components/src/chat-sender/chat-sender.vue_vue_type_script_setup_true_vapor_true_lang.mjs +92 -0
  22. package/dist/es/components/src/chat-sender/index.d.ts +27 -0
  23. package/dist/es/components/src/chat-sender/index.mjs +7 -0
  24. package/dist/es/components/src/chat-sender/types.d.ts +24 -0
  25. package/dist/es/components/src/collapse/collapse-item.vue_vue_type_script_setup_true_vapor_true_lang.mjs +2 -2
  26. package/dist/es/components/src/date-picker/date-picker.vue_vue_type_script_setup_true_vapor_true_lang.mjs +28 -28
  27. package/dist/es/components/src/datetime-picker/datetime-picker.vue_vue_type_script_setup_true_vapor_true_lang.mjs +28 -28
  28. package/dist/es/components/src/drawer/drawer.vue_vue_type_script_setup_true_vapor_true_lang.mjs +72 -72
  29. package/dist/es/components/src/form/form-item.vue_vue_type_script_setup_true_vapor_true_lang.mjs +13 -13
  30. package/dist/es/components/src/form/use-form-item.d.ts +1 -1
  31. package/dist/es/components/src/grid/grid-item.vue_vue_type_script_setup_true_vapor_true_lang.mjs +26 -17
  32. package/dist/es/components/src/grid/grid.vue_vue_type_script_setup_true_vapor_true_lang.mjs +10 -6
  33. package/dist/es/components/src/grid/types.d.ts +2 -0
  34. package/dist/es/components/src/input/input.vue_vue_type_script_setup_true_vapor_true_lang.mjs +9 -9
  35. package/dist/es/components/src/input-number/input-number.vue_vue_type_script_setup_true_vapor_true_lang.mjs +83 -83
  36. package/dist/es/components/src/input-tag/input-tag.vue_vue_type_script_setup_true_vapor_true_lang.mjs +10 -10
  37. package/dist/es/components/src/layer/layer.vue_vue_type_script_setup_true_vapor_true_lang.mjs +105 -105
  38. package/dist/es/components/src/list/index.d.ts +5 -5
  39. package/dist/es/components/src/list/list.d.ts +3 -3
  40. package/dist/es/components/src/list/list.vue_vue_type_script_setup_true_vapor_true_lang.mjs +7 -12
  41. package/dist/es/components/src/list/types.d.ts +7 -5
  42. package/dist/es/components/src/menu/menu-item.vue_vue_type_script_setup_true_vapor_true_lang.mjs +46 -37
  43. package/dist/es/components/src/menu/sub-menu.vue_vue_type_script_setup_true_vapor_true_lang.mjs +2 -2
  44. package/dist/es/components/src/modal/modal.vue_vue_type_script_setup_true_vapor_true_lang.mjs +121 -121
  45. package/dist/es/components/src/panel/panel.vue_vue_type_script_setup_true_vapor_true_lang.mjs +2 -2
  46. package/dist/es/components/src/popover/index.d.ts +1 -0
  47. package/dist/es/components/src/popover/popover.vue_vue_type_script_setup_true_vapor_true_lang.mjs +77 -76
  48. package/dist/es/components/src/popover/types.d.ts +4 -0
  49. package/dist/es/components/src/scrollbar/index.d.ts +7 -2
  50. package/dist/es/components/src/scrollbar/scrollbar.d.ts +5 -2
  51. package/dist/es/components/src/scrollbar/scrollbar.vue_vue_type_script_setup_true_vapor_true_lang.mjs +131 -96
  52. package/dist/es/components/src/scrollbar/types.d.ts +15 -1
  53. package/dist/es/components/src/segmented/segmented.vue_vue_type_script_setup_true_vapor_true_lang.mjs +41 -45
  54. package/dist/es/components/src/select/select.vue_vue_type_script_setup_true_vapor_true_lang.mjs +9 -9
  55. package/dist/es/components/src/table/col-group.d.ts +22 -0
  56. package/dist/es/components/src/table/col-group.vue.mjs +5 -0
  57. package/dist/es/components/src/table/col-group.vue_vue_type_script_setup_true_vapor_true_lang.mjs +25 -0
  58. package/dist/es/components/src/table/index.d.ts +18 -41
  59. package/dist/es/components/src/table/index.mjs +1 -0
  60. package/dist/es/components/src/table/table-body.d.ts +32 -0
  61. package/dist/es/components/src/table/table-body.vue.mjs +5 -0
  62. package/dist/es/components/src/table/table-body.vue_vue_type_script_setup_true_vapor_true_lang.mjs +153 -0
  63. package/dist/es/components/src/table/table-header.d.ts +23 -0
  64. package/dist/es/components/src/table/table-header.vue.mjs +5 -0
  65. package/dist/es/components/src/table/table-header.vue_vue_type_script_setup_true_vapor_true_lang.mjs +80 -0
  66. package/dist/es/components/src/table/table.d.ts +12 -25
  67. package/dist/es/components/src/table/table.vue_vue_type_script_setup_true_vapor_true_lang.mjs +167 -380
  68. package/dist/es/components/src/table/types.d.ts +61 -45
  69. package/dist/es/components/src/table/types.mjs +4 -0
  70. package/dist/es/components/src/textarea/textarea.vue_vue_type_script_setup_true_vapor_true_lang.mjs +6 -6
  71. package/dist/es/components/src/tooltip/index.d.ts +1 -0
  72. package/dist/es/components/src/tooltip/tooltip.vue_vue_type_script_setup_true_vapor_true_lang.mjs +2 -0
  73. package/dist/es/components/src/tooltip/types.d.ts +2 -0
  74. package/dist/es/components/src/transition/index.d.ts +29 -0
  75. package/dist/es/components/src/transition/index.mjs +7 -0
  76. package/dist/es/components/src/{_comp/HeightTransition.d.ts → transition/transition-height.d.ts} +0 -4
  77. package/dist/es/components/src/transition/transition-height.vue.mjs +5 -0
  78. package/dist/es/components/src/transition/transition-height.vue_vue_type_script_setup_true_vapor_true_lang.mjs +54 -0
  79. package/dist/es/components/src/transition/transition-opacity.vue.mjs +5 -0
  80. package/dist/es/components/src/{_comp/OpacityTransition.vue_vue_type_script_setup_true_vapor_true_lang.mjs → transition/transition-opacity.vue_vue_type_script_setup_true_vapor_true_lang.mjs} +2 -2
  81. package/dist/es/components/src/transition/transition-scale.vue.mjs +5 -0
  82. package/dist/es/components/src/{_comp/ScaleTransition.vue_vue_type_script_setup_true_vapor_true_lang.mjs → transition/transition-scale.vue_vue_type_script_setup_true_vapor_true_lang.mjs} +2 -2
  83. package/dist/es/components/src/transition/transition-side.vue.mjs +5 -0
  84. package/dist/es/components/src/{_comp/SideTransition.vue_vue_type_script_setup_true_vapor_true_lang.mjs → transition/transition-side.vue_vue_type_script_setup_true_vapor_true_lang.mjs} +2 -2
  85. package/dist/es/components/src/transition/transition-width.d.ts +31 -0
  86. package/dist/es/components/src/transition/transition-width.vue.mjs +5 -0
  87. package/dist/es/components/src/transition/transition-width.vue_vue_type_script_setup_true_vapor_true_lang.mjs +54 -0
  88. package/dist/es/components/src/transition/transition.d.ts +27 -0
  89. package/dist/es/components/src/transition/transition.vue.mjs +5 -0
  90. package/dist/es/components/src/transition/transition.vue_vue_type_script_setup_true_vapor_true_lang.mjs +47 -0
  91. package/dist/es/components/src/transition/types.d.ts +28 -0
  92. package/dist/es/components/src/tree/index.d.ts +15 -7
  93. package/dist/es/components/src/tree/node.d.ts +2 -1
  94. package/dist/es/components/src/tree/node.vue_vue_type_script_setup_true_vapor_true_lang.mjs +27 -29
  95. package/dist/es/components/src/tree/tree.d.ts +8 -2
  96. package/dist/es/components/src/tree/tree.vue_vue_type_script_setup_true_vapor_true_lang.mjs +69 -65
  97. package/dist/es/components/src/tree/types.d.ts +18 -12
  98. package/dist/es/core/components.mjs +94 -86
  99. package/dist/es/core/index.mjs +84 -79
  100. package/dist/es/hooks/src/use-element-size.mjs +7 -38
  101. package/dist/es/icons/index.d.ts +4 -1
  102. package/dist/es/icons/index.mjs +3 -0
  103. package/dist/es/icons/src/loading-stop.d.ts +19 -0
  104. package/dist/es/icons/src/loading-stop.vue.mjs +11 -0
  105. package/dist/es/icons/src/send.d.ts +19 -0
  106. package/dist/es/icons/src/send.vue.mjs +11 -0
  107. package/dist/es/icons/src/stop.d.ts +19 -0
  108. package/dist/es/icons/src/stop.vue.mjs +5 -0
  109. package/dist/es/theme/components/alert.scss +101 -0
  110. package/dist/es/theme/components/button.scss +21 -4
  111. package/dist/es/theme/components/cascader.scss +3 -0
  112. package/dist/es/theme/components/chat-list.scss +134 -0
  113. package/dist/es/theme/components/chat-sender.scss +123 -0
  114. package/dist/es/theme/components/index.scss +3 -0
  115. package/dist/es/theme/components/input.scss +2 -1
  116. package/dist/es/theme/components/list.scss +7 -0
  117. package/dist/es/theme/components/menu.scss +14 -1
  118. package/dist/es/theme/components/scrollbar.scss +61 -7
  119. package/dist/es/theme/components/table.scss +360 -328
  120. package/dist/es/theme/components/transition.scss +21 -21
  121. package/dist/es/theme/components/tree.scss +8 -0
  122. package/dist/es/utils/src/tool.d.ts +8 -3
  123. package/dist/es/utils/src/tool.mjs +6 -6
  124. package/dist/json/vetur-attributes.json +196 -46
  125. package/dist/json/vetur-tags.json +82 -15
  126. package/dist/json/web-types.json +432 -75
  127. package/package.json +1 -1
  128. package/dist/es/components/src/_comp/HeightTransition.vue.mjs +0 -5
  129. package/dist/es/components/src/_comp/HeightTransition.vue_vue_type_script_setup_true_vapor_true_lang.mjs +0 -77
  130. package/dist/es/components/src/_comp/OpacityTransition.vue.mjs +0 -5
  131. package/dist/es/components/src/_comp/ScaleTransition.vue.mjs +0 -5
  132. package/dist/es/components/src/_comp/SideTransition.vue.mjs +0 -5
  133. /package/dist/es/components/src/{_comp/OpacityTransition.d.ts → transition/transition-opacity.d.ts} +0 -0
  134. /package/dist/es/components/src/{_comp/ScaleTransition.d.ts → transition/transition-scale.d.ts} +0 -0
  135. /package/dist/es/components/src/{_comp/SideTransition.d.ts → transition/transition-side.d.ts} +0 -0
@@ -1,3 +1,4 @@
1
+ import { ComputedRef, InjectionKey, Ref } from 'vue';
1
2
  export interface TableProps {
2
3
  /** 表格数据 */
3
4
  data: any[];
@@ -5,48 +6,52 @@ export interface TableProps {
5
6
  columns: TableColumnProps[];
6
7
  /** 表格高度 */
7
8
  height?: string | number;
8
- /** 表格宽度
9
- * @default 100%
10
- */
9
+ /** 表格最大高度 */
10
+ maxHeight?: string | number;
11
+ /** 表格宽度 */
11
12
  width?: string | number;
12
- /** 是否显示边框
13
- * @default outer
14
- */
13
+ /** 是否显示边框 */
15
14
  border?: Array<"full" | "outer" | "right" | "bottom">;
16
- /** 是否显示斑马纹
17
- * @default false
18
- */
15
+ /** 是否显示斑马纹 */
19
16
  stripe?: boolean;
20
17
  /** 表格尺寸 */
21
18
  size?: "small" | "medium" | "large";
22
- /** 是否支持多选
23
- * @default true
24
- */
19
+ /** 列是否支持多选 */
25
20
  multiple?: boolean;
26
- /** 选中的行数据(v-model:selected) */
27
- selected?: any[];
28
- /** 行数据唯一标识字段 */
29
- rowKey?: string;
30
- /** 树状表格数据字段 */
31
- treeField?: string;
32
- /** 行选择 */
21
+ /** 表格是否支持行选择 */
33
22
  rowSelection?: boolean;
34
- /** 选中的行数据 */
35
- rowSelected?: any;
23
+ /** 行唯一标识字段 */
24
+ rowKey?: string;
25
+ /** 是否始终显示滚动条 */
26
+ scrollAlways?: boolean;
27
+ /** 是否使用原生滚动条 */
28
+ nativeScrollbar?: boolean;
36
29
  }
37
30
  export interface TableEmits {
38
- /** 单选/多选行发生变化 */
39
- select: [row: any, index: number, selected: any[]];
40
- /** 行点击事件 */
41
- rowClick: [row: any, index: number];
31
+ /** 行选择状态发生变化 */
32
+ checkRow: [row: any, index: number, checked: any[]];
33
+ /** 行选择事件 */
34
+ selectRow: [row: any, index: number];
35
+ /** 行全选事件 */
36
+ checkAll: [checked: any[]];
37
+ /** 行展开事件 */
38
+ expandedRow: [row: any, index: number, expandedRows: any[]];
42
39
  }
43
40
  export interface TableSlots {
44
41
  /** 空状态 */
45
42
  empty?: () => any;
46
43
  }
44
+ type DynamicSlots = (scope: {
45
+ column: TableColumnCtx;
46
+ index: number;
47
+ row: any;
48
+ }) => any;
49
+ export type TableAllSlots = TableSlots & {
50
+ [slotName: string]: DynamicSlots;
51
+ };
47
52
  export interface TableExpose {
48
53
  /** 清空所有选中的行 */
49
- clearSelection: () => void;
54
+ clearSelect: () => void;
50
55
  /** 全选 */
51
56
  selectAll: () => void;
52
57
  }
@@ -55,38 +60,49 @@ export interface TableColumnProps {
55
60
  label?: string;
56
61
  /** 列数据字段 */
57
62
  field?: string;
58
- /** 列宽度 */
63
+ /** 列宽度 (值为“auto”时,列宽度会根据内容自动调整,不设置约束,填满剩余空间,否则为固定宽度:px 或 %)*/
59
64
  width?: string | number;
60
65
  /** 列最大宽度 */
61
66
  maxWidth?: string | number;
62
67
  /** 列最小宽度 */
63
68
  minWidth?: string | number;
64
- /** 选择列 */
65
- type?: "select";
66
- /** 列对齐方式
67
- * @default left
68
- */
69
+ /** 列对齐方式 */
69
70
  align?: "left" | "center" | "right";
70
- /** 列标题对齐方式(默认使用 align 值) */
71
- headerAlign?: "left" | "center" | "right";
72
71
  /** 列是否固定在左侧或右侧 */
73
72
  fixed?: "left" | "right";
74
- /** 列是否显示省略号
75
- * @default false
76
- */
73
+ /** 列是否显示省略号 */
77
74
  ellipsis?: boolean;
78
- /** 列是否显示省略号提示
79
- * @default false
80
- */
75
+ /** 列是否显示省略号和气泡提示 */
81
76
  ellipsisTooltip?: boolean;
82
77
  /** 列自定义插槽 */
83
78
  slot?: string;
84
- /** 列自定义渲染函数 */
85
- render?: (row: any, index: number) => any;
86
79
  /** 子列配置 */
87
80
  children?: TableColumnProps[];
88
- /** 展开图标显示
89
- * @default false
90
- */
81
+ /** 列类型 */
82
+ type?: "select" | "check" | "seq";
83
+ /** 列是否为树节点 */
91
84
  treeNode?: boolean;
92
85
  }
86
+ export interface TableColumnCtx extends TableColumnProps {
87
+ id: string;
88
+ fixedOffset?: number;
89
+ colSpan: number;
90
+ rowSpan: number;
91
+ level: number;
92
+ isColumnGroup: boolean;
93
+ field: string;
94
+ children?: TableColumnCtx[];
95
+ }
96
+ export interface TableContext {
97
+ props: TableProps;
98
+ originColumns: ComputedRef<TableColumnCtx[]>;
99
+ flatColumns: ComputedRef<TableColumnCtx[]>;
100
+ columnRows: ComputedRef<TableColumnCtx[][]>;
101
+ isScrollAtLeft: Ref<boolean>;
102
+ isScrollAtRight: Ref<boolean>;
103
+ headerHeight: Ref<number>;
104
+ checked: Ref<any[]>;
105
+ selected: Ref<any>;
106
+ }
107
+ export declare const tableContextKey: InjectionKey<TableContext>;
108
+ export {};
@@ -0,0 +1,4 @@
1
+ //#region ../components/src/table/types.ts
2
+ var e = Symbol("tableContextKey");
3
+ //#endregion
4
+ export { e as tableContextKey };
@@ -1,9 +1,9 @@
1
1
  import { useNamespace as e } from "../../../hooks/src/use-namespace.mjs";
2
2
  import "../../../hooks/index.mjs";
3
- import { formItemContextKey as t } from "../form/types.mjs";
4
- import { useFormItem as n } from "../form/use-form-item.mjs";
5
- import r from "../../../icons/src/close.vue.mjs";
3
+ import t from "../../../icons/src/close.vue.mjs";
6
4
  import "../../../icons/index.mjs";
5
+ import { formItemContextKey as n } from "../form/types.mjs";
6
+ import { useFormItem as r } from "../form/use-form-item.mjs";
7
7
  import { configProviderContextKey as i } from "../config-provider/types.mjs";
8
8
  import "../config-provider/index.mjs";
9
9
  import "../form/index.mjs";
@@ -39,7 +39,7 @@ var A = /*@__PURE__*/ u({
39
39
  "blur"
40
40
  ], ["update:modelValue"]),
41
41
  setup(u, { expose: d, emit: p }) {
42
- let C = u, A = p, j = e("textarea"), M = te(u, "modelValue"), N = f(i, void 0), P = o(() => N?.inputFilled?.value || C.filled), { size: F, error: I } = T(C), { mergedSize: L, mergedError: R } = n({
42
+ let C = u, A = p, j = e("textarea"), M = te(u, "modelValue"), N = f(i, void 0), P = o(() => N?.inputFilled?.value || C.filled), { size: F, error: I } = T(C), { mergedSize: L, mergedError: R } = r({
43
43
  size: F,
44
44
  error: I
45
45
  }), z = g(!1), B = g(!1), V = ne("textareaRef"), H = () => {
@@ -78,7 +78,7 @@ var A = /*@__PURE__*/ u({
78
78
  }
79
79
  }
80
80
  e.style.height = `${t}px`;
81
- }, le = f(t, null), Y = (e) => {
81
+ }, le = f(n, null), Y = (e) => {
82
82
  le?.validate(e).catch(() => {});
83
83
  };
84
84
  d({
@@ -98,7 +98,7 @@ var A = /*@__PURE__*/ u({
98
98
  ]), S($, M.value), v($, [e.e("inner"), e.is("auto-size", !!u.autoSize)]), b($, "disabled", t), b($, "placeholder", u.placeholder), b($, "readonly", u.readonly ? !0 : void 0), b($, "maxlength", u.maxLength), b($, "autofocus", u.autofocus), b($, "name", u.name);
99
99
  }), y(Q, null, 1), c(() => z.value && !!M.value && u.clearable, () => {
100
100
  let e = ae();
101
- return _(() => v(e, [D(j).e("clear")])), y(e, null, 0), s(D(r)), h(e, "click", ie(W, ["stop"])), e;
101
+ return _(() => v(e, [D(j).e("clear")])), y(e, null, 0), s(D(t)), h(e, "click", ie(W, ["stop"])), e;
102
102
  }), y(Q, null, 2), c(() => u.showLimit && u.maxLength, () => {
103
103
  let e = O(), t = E(e);
104
104
  return _(() => {
@@ -10,6 +10,7 @@ export declare const STooltip: ((__VLS_props: NonNullable<Awaited<typeof __VLS_s
10
10
  content?: string | undefined;
11
11
  popoverProps?: PopoverProps | undefined;
12
12
  mini?: boolean | undefined;
13
+ disabled?: boolean | undefined;
13
14
  arrowStyle?: Record<string, string> | undefined;
14
15
  contentStyle?: Record<string, string> | undefined;
15
16
  onChange?: ((visible: boolean) => any) | undefined;
@@ -10,6 +10,7 @@ var _ = p(" "), v = p("<div><div>"), y = /*@__PURE__*/ o({
10
10
  content: {},
11
11
  popoverProps: {},
12
12
  mini: { type: Boolean },
13
+ disabled: { type: Boolean },
13
14
  arrowStyle: {},
14
15
  contentStyle: {}
15
16
  },
@@ -28,6 +29,7 @@ var _ = p(" "), v = p("<div><div>"), y = /*@__PURE__*/ o({
28
29
  backgroundColor: "#373739",
29
30
  borderColor: "#373739"
30
31
  },
32
+ disabled: b.disabled,
31
33
  ...b.popoverProps
32
34
  }));
33
35
  p({
@@ -6,6 +6,8 @@ export interface TooltipProps {
6
6
  popoverProps?: PopoverProps;
7
7
  /** 是否为迷你版 */
8
8
  mini?: boolean;
9
+ /** 是否禁用 */
10
+ disabled?: boolean;
9
11
  /** 箭头样式 */
10
12
  arrowStyle?: Record<string, string>;
11
13
  /** 内容样式 */
@@ -0,0 +1,29 @@
1
+ import { TransitionSlots } from './types';
2
+ import { PublicProps, VNode, Plugin } from 'vue';
3
+ export declare const STransition: ((__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: {
4
+ attrs: any;
5
+ slots: TransitionSlots;
6
+ emit: ((evt: "afterLeave", el: HTMLElement) => void) & ((evt: "beforeEnter", el: HTMLElement) => void) & ((evt: "enter", el: HTMLElement) => void) & ((evt: "afterEnter", el: HTMLElement) => void) & ((evt: "beforeLeave", el: HTMLElement) => void) & ((evt: "leave", el: HTMLElement) => void);
7
+ }, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
8
+ props: PublicProps & {
9
+ appear?: boolean | undefined;
10
+ mode?: "in-out" | "out-in" | "default" | undefined;
11
+ type?: "height" | "width" | "opacity" | "scale" | "side" | undefined;
12
+ placement?: "left" | "right" | "top" | "bottom" | undefined;
13
+ onAfterLeave?: ((el: HTMLElement) => any) | undefined;
14
+ onBeforeEnter?: ((el: HTMLElement) => any) | undefined;
15
+ onEnter?: ((el: HTMLElement) => any) | undefined;
16
+ onAfterEnter?: ((el: HTMLElement) => any) | undefined;
17
+ onBeforeLeave?: ((el: HTMLElement) => any) | undefined;
18
+ onLeave?: ((el: HTMLElement) => any) | undefined;
19
+ } & (typeof globalThis extends {
20
+ __VLS_PROPS_FALLBACK: infer P;
21
+ } ? P : {});
22
+ expose: (exposed: {}) => void;
23
+ attrs: any;
24
+ slots: TransitionSlots;
25
+ emit: ((evt: "afterLeave", el: HTMLElement) => void) & ((evt: "beforeEnter", el: HTMLElement) => void) & ((evt: "enter", el: HTMLElement) => void) & ((evt: "afterEnter", el: HTMLElement) => void) & ((evt: "beforeLeave", el: HTMLElement) => void) & ((evt: "leave", el: HTMLElement) => void);
26
+ }>) => VNode & {
27
+ __ctx?: Awaited<typeof __VLS_setup>;
28
+ }) & Plugin;
29
+ export * from './types';
@@ -0,0 +1,7 @@
1
+ import { withInstall as e } from "../../../utils/src/install.mjs";
2
+ import "../../../utils/index.mjs";
3
+ import t from "./transition.vue.mjs";
4
+ //#region ../components/src/transition/index.ts
5
+ var n = e(t);
6
+ //#endregion
7
+ export { n as STransition };
@@ -1,8 +1,6 @@
1
1
  import { PublicProps, VNode } from 'vue';
2
2
  declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
3
3
  props: PublicProps & __VLS_PrettifyLocal<{
4
- group?: boolean;
5
- width?: boolean;
6
4
  appear?: boolean;
7
5
  mode?: "in-out" | "out-in" | "default";
8
6
  } & {
@@ -19,8 +17,6 @@ declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup
19
17
  attrs: any;
20
18
  slots: {
21
19
  default?: (props: {}) => any;
22
- } & {
23
- default?: (props: {}) => any;
24
20
  };
25
21
  emit: ((evt: "afterLeave", el: HTMLElement) => void) & ((evt: "beforeEnter", el: HTMLElement) => void) & ((evt: "enter", el: HTMLElement) => void) & ((evt: "afterEnter", el: HTMLElement) => void) & ((evt: "beforeLeave", el: HTMLElement) => void) & ((evt: "leave", el: HTMLElement) => void);
26
22
  }>) => VNode & {
@@ -0,0 +1,5 @@
1
+ import e from "./transition-height.vue_vue_type_script_setup_true_vapor_true_lang.mjs";
2
+ //#region ../components/src/transition/transition-height.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
@@ -0,0 +1,54 @@
1
+ import { VaporTransition as e, createComponent as t, createSlot as n, defineVaporComponent as r, toHandlers as i } from "vue";
2
+ //#region ../components/src/transition/transition-height.vue?vue&type=script&setup=true&vapor=true&lang.ts
3
+ var a = /*@__PURE__*/ r({
4
+ __name: "transition-height",
5
+ props: {
6
+ appear: { type: Boolean },
7
+ mode: {}
8
+ },
9
+ emits: [
10
+ "beforeEnter",
11
+ "enter",
12
+ "afterEnter",
13
+ "beforeLeave",
14
+ "leave",
15
+ "afterLeave"
16
+ ],
17
+ setup(r, { emit: a }) {
18
+ let o = a, s = {
19
+ beforeEnter: (e) => {
20
+ e.style.height = "0", e.style.maxHeight = "0", o("beforeEnter", e);
21
+ },
22
+ enter: (e) => {
23
+ e.style.height = "", e.style.maxHeight = "";
24
+ let t = e.scrollHeight;
25
+ e.style.maxHeight = "0", requestAnimationFrame(() => {
26
+ e.style.maxHeight = `${t}px`;
27
+ }), o("enter", e);
28
+ },
29
+ afterEnter: (e) => {
30
+ e.style.maxHeight = "", o("afterEnter", e);
31
+ },
32
+ beforeLeave: (e) => {
33
+ o("beforeLeave", e);
34
+ },
35
+ leave: (e) => {
36
+ let t = e.scrollHeight;
37
+ e.style.maxHeight = `${t}px`, requestAnimationFrame(() => {
38
+ e.style.maxHeight = "0";
39
+ }), o("leave", e);
40
+ },
41
+ afterLeave: (e) => {
42
+ e.style.maxHeight = "", e.style.overflow = "", e.style.transition = "", o("afterLeave", e);
43
+ }
44
+ };
45
+ return t(e, {
46
+ mode: () => r.mode,
47
+ name: "height-transition",
48
+ appear: () => r.appear,
49
+ $: [() => i(s)]
50
+ }, () => n("default", null, null, 4), !0);
51
+ }
52
+ });
53
+ //#endregion
54
+ export { a as default };
@@ -0,0 +1,5 @@
1
+ import e from "./transition-opacity.vue_vue_type_script_setup_true_vapor_true_lang.mjs";
2
+ //#region ../components/src/transition/transition-opacity.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
@@ -1,7 +1,7 @@
1
1
  import { VaporTransition as e, createComponent as t, createSlot as n, defineVaporComponent as r, toHandlers as i } from "vue";
2
- //#region ../components/src/_comp/OpacityTransition.vue?vue&type=script&setup=true&vapor=true&lang.ts
2
+ //#region ../components/src/transition/transition-opacity.vue?vue&type=script&setup=true&vapor=true&lang.ts
3
3
  var a = /*@__PURE__*/ r({
4
- __name: "OpacityTransition",
4
+ __name: "transition-opacity",
5
5
  emits: [
6
6
  "beforeEnter",
7
7
  "enter",
@@ -0,0 +1,5 @@
1
+ import e from "./transition-scale.vue_vue_type_script_setup_true_vapor_true_lang.mjs";
2
+ //#region ../components/src/transition/transition-scale.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
@@ -1,7 +1,7 @@
1
1
  import { VaporTransition as e, createComponent as t, createSlot as n, defineVaporComponent as r, toHandlers as i } from "vue";
2
- //#region ../components/src/_comp/ScaleTransition.vue?vue&type=script&setup=true&vapor=true&lang.ts
2
+ //#region ../components/src/transition/transition-scale.vue?vue&type=script&setup=true&vapor=true&lang.ts
3
3
  var a = /*@__PURE__*/ r({
4
- __name: "ScaleTransition",
4
+ __name: "transition-scale",
5
5
  emits: [
6
6
  "beforeEnter",
7
7
  "enter",
@@ -0,0 +1,5 @@
1
+ import e from "./transition-side.vue_vue_type_script_setup_true_vapor_true_lang.mjs";
2
+ //#region ../components/src/transition/transition-side.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
@@ -1,7 +1,7 @@
1
1
  import { VaporTransition as e, createComponent as t, createIf as n, createSlot as r, defineVaporComponent as i, toHandlers as a } from "vue";
2
- //#region ../components/src/_comp/SideTransition.vue?vue&type=script&setup=true&vapor=true&lang.ts
2
+ //#region ../components/src/transition/transition-side.vue?vue&type=script&setup=true&vapor=true&lang.ts
3
3
  var o = /*@__PURE__*/ i({
4
- __name: "SideTransition",
4
+ __name: "transition-side",
5
5
  props: { placement: {} },
6
6
  emits: [
7
7
  "beforeEnter",
@@ -0,0 +1,31 @@
1
+ import { PublicProps, VNode } from 'vue';
2
+ declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
3
+ props: PublicProps & __VLS_PrettifyLocal<{
4
+ appear?: boolean;
5
+ mode?: "in-out" | "out-in" | "default";
6
+ } & {
7
+ onAfterLeave?: ((el: HTMLElement) => any) | undefined;
8
+ onBeforeEnter?: ((el: HTMLElement) => any) | undefined;
9
+ onEnter?: ((el: HTMLElement) => any) | undefined;
10
+ onAfterEnter?: ((el: HTMLElement) => any) | undefined;
11
+ onBeforeLeave?: ((el: HTMLElement) => any) | undefined;
12
+ onLeave?: ((el: HTMLElement) => any) | undefined;
13
+ }> & (typeof globalThis extends {
14
+ __VLS_PROPS_FALLBACK: infer P;
15
+ } ? P : {});
16
+ expose: (exposed: {}) => void;
17
+ attrs: any;
18
+ slots: {
19
+ default?: (props: {}) => any;
20
+ };
21
+ emit: ((evt: "afterLeave", el: HTMLElement) => void) & ((evt: "beforeEnter", el: HTMLElement) => void) & ((evt: "enter", el: HTMLElement) => void) & ((evt: "afterEnter", el: HTMLElement) => void) & ((evt: "beforeLeave", el: HTMLElement) => void) & ((evt: "leave", el: HTMLElement) => void);
22
+ }>) => VNode & {
23
+ __ctx?: Awaited<typeof __VLS_setup>;
24
+ };
25
+ declare const _default: typeof __VLS_export;
26
+ export default _default;
27
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
28
+ [K in keyof T]: T[K];
29
+ } : {
30
+ [K in keyof T as K]: T[K];
31
+ }) & {};
@@ -0,0 +1,5 @@
1
+ import e from "./transition-width.vue_vue_type_script_setup_true_vapor_true_lang.mjs";
2
+ //#region ../components/src/transition/transition-width.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
@@ -0,0 +1,54 @@
1
+ import { VaporTransition as e, createComponent as t, createSlot as n, defineVaporComponent as r, toHandlers as i } from "vue";
2
+ //#region ../components/src/transition/transition-width.vue?vue&type=script&setup=true&vapor=true&lang.ts
3
+ var a = /*@__PURE__*/ r({
4
+ __name: "transition-width",
5
+ props: {
6
+ appear: { type: Boolean },
7
+ mode: {}
8
+ },
9
+ emits: [
10
+ "beforeEnter",
11
+ "enter",
12
+ "afterEnter",
13
+ "beforeLeave",
14
+ "leave",
15
+ "afterLeave"
16
+ ],
17
+ setup(r, { emit: a }) {
18
+ let o = a, s = {
19
+ beforeEnter: (e) => {
20
+ e.style.width = "0", e.style.maxWidth = "0", o("beforeEnter", e);
21
+ },
22
+ enter: (e) => {
23
+ e.style.maxWidth = "", e.style.width = "auto";
24
+ let t = e.scrollWidth;
25
+ e.style.width = "", e.style.maxWidth = "0", requestAnimationFrame(() => {
26
+ e.style.maxWidth = `${t}px`;
27
+ }), o("enter", e);
28
+ },
29
+ afterEnter: (e) => {
30
+ e.style.maxWidth = "", o("afterEnter", e);
31
+ },
32
+ beforeLeave: (e) => {
33
+ o("beforeLeave", e);
34
+ },
35
+ leave: (e) => {
36
+ let t = e.scrollWidth;
37
+ e.style.maxWidth = `${t}px`, requestAnimationFrame(() => {
38
+ e.style.maxWidth = "0";
39
+ }), o("leave", e);
40
+ },
41
+ afterLeave: (e) => {
42
+ e.style.maxWidth = "", e.style.overflow = "", e.style.transition = "", o("afterLeave", e);
43
+ }
44
+ };
45
+ return t(e, {
46
+ mode: () => r.mode,
47
+ name: "width-transition",
48
+ appear: () => r.appear,
49
+ $: [() => i(s)]
50
+ }, () => n("default", null, null, 4), !0);
51
+ }
52
+ });
53
+ //#endregion
54
+ export { a as default };
@@ -0,0 +1,27 @@
1
+ import { TransitionProps, TransitionSlots } from './types';
2
+ import { PublicProps, VNode } from 'vue';
3
+ declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
4
+ props: PublicProps & __VLS_PrettifyLocal<TransitionProps & {
5
+ onAfterLeave?: ((el: HTMLElement) => any) | undefined;
6
+ onBeforeEnter?: ((el: HTMLElement) => any) | undefined;
7
+ onEnter?: ((el: HTMLElement) => any) | undefined;
8
+ onAfterEnter?: ((el: HTMLElement) => any) | undefined;
9
+ onBeforeLeave?: ((el: HTMLElement) => any) | undefined;
10
+ onLeave?: ((el: HTMLElement) => any) | undefined;
11
+ }> & (typeof globalThis extends {
12
+ __VLS_PROPS_FALLBACK: infer P;
13
+ } ? P : {});
14
+ expose: (exposed: {}) => void;
15
+ attrs: any;
16
+ slots: TransitionSlots;
17
+ emit: ((evt: "afterLeave", el: HTMLElement) => void) & ((evt: "beforeEnter", el: HTMLElement) => void) & ((evt: "enter", el: HTMLElement) => void) & ((evt: "afterEnter", el: HTMLElement) => void) & ((evt: "beforeLeave", el: HTMLElement) => void) & ((evt: "leave", el: HTMLElement) => void);
18
+ }>) => VNode & {
19
+ __ctx?: Awaited<typeof __VLS_setup>;
20
+ };
21
+ declare const _default: typeof __VLS_export;
22
+ export default _default;
23
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
24
+ [K in keyof T]: T[K];
25
+ } : {
26
+ [K in keyof T as K]: T[K];
27
+ }) & {};
@@ -0,0 +1,5 @@
1
+ import e from "./transition.vue_vue_type_script_setup_true_vapor_true_lang.mjs";
2
+ //#region ../components/src/transition/transition.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
@@ -0,0 +1,47 @@
1
+ import e from "./transition-height.vue.mjs";
2
+ import t from "./transition-opacity.vue.mjs";
3
+ import n from "./transition-scale.vue.mjs";
4
+ import r from "./transition-side.vue.mjs";
5
+ import i from "./transition-width.vue.mjs";
6
+ import { createComponent as a, createIf as o, createSlot as s, defineVaporComponent as c, toHandlers as l } from "vue";
7
+ //#region ../components/src/transition/transition.vue?vue&type=script&setup=true&vapor=true&lang.ts
8
+ var u = /*@__PURE__*/ c({
9
+ name: "STransition",
10
+ __name: "transition",
11
+ props: {
12
+ appear: { type: Boolean },
13
+ mode: {},
14
+ type: { default: "height" },
15
+ placement: { default: "left" }
16
+ },
17
+ emits: [
18
+ "beforeEnter",
19
+ "enter",
20
+ "afterEnter",
21
+ "beforeLeave",
22
+ "leave",
23
+ "afterLeave"
24
+ ],
25
+ setup(c, { emit: u }) {
26
+ let d = c, f = u, p = {
27
+ beforeEnter: (e) => {
28
+ f("beforeEnter", e);
29
+ },
30
+ enter: (e) => {
31
+ f("enter", e);
32
+ },
33
+ afterEnter: (e) => {
34
+ f("afterEnter", e);
35
+ },
36
+ leave: (e) => {
37
+ f("leave", e);
38
+ },
39
+ afterLeave: (e) => {
40
+ f("afterLeave", e);
41
+ }
42
+ };
43
+ return o(() => c.type === "height", () => a(e, { $: [() => d, () => l(p)] }, () => s("default", null, null, 4), !0), () => o(() => c.type === "width", () => a(i, { $: [() => d, () => l(p)] }, () => s("default", null, null, 4), !0), () => o(() => c.type === "opacity", () => a(t, { $: [() => d, () => l(p)] }, () => s("default", null, null, 4), !0), () => o(() => c.type === "scale", () => a(n, { $: [() => d, () => l(p)] }, () => s("default", null, null, 4), !0), () => o(() => c.type === "side", () => a(r, { $: [() => d, () => l(p)] }, () => s("default", null, null, 4), !0)), 1029), 773), 517), 261);
44
+ }
45
+ });
46
+ //#endregion
47
+ export { u as default };
@@ -0,0 +1,28 @@
1
+ export interface TransitionProps {
2
+ /** 是否在出现时添加过渡效果 */
3
+ appear?: boolean;
4
+ /** 过渡模式 */
5
+ mode?: "in-out" | "out-in" | "default";
6
+ /** 过渡类型 */
7
+ type?: "height" | "width" | "opacity" | "scale" | "side";
8
+ /** 类型为`side`时的过渡方向 */
9
+ placement?: "left" | "right" | "top" | "bottom";
10
+ }
11
+ export interface TransitionSlots {
12
+ /** 默认 */
13
+ default: () => any;
14
+ }
15
+ export interface TransitionEmits {
16
+ /** 过渡开始前触发 */
17
+ beforeEnter: [el: HTMLElement];
18
+ /** 过渡开始时触发 */
19
+ enter: [el: HTMLElement];
20
+ /** 过渡完成后触发 */
21
+ afterEnter: [el: HTMLElement];
22
+ /** 过渡开始前触发 */
23
+ beforeLeave: [el: HTMLElement];
24
+ /** 过渡开始时触发 */
25
+ leave: [el: HTMLElement];
26
+ /** 过渡完成后触发 */
27
+ afterLeave: [el: HTMLElement];
28
+ }