@veltra/desktop 1.3.10 → 1.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 (36) hide show
  1. package/dist/components/action/action-group.vue.d.ts +1 -1
  2. package/dist/components/action/action.vue.d.ts +1 -1
  3. package/dist/components/batch-edit/batch-edit.vue.d.ts +8 -8
  4. package/dist/components/cascade/cascade.vue.d.ts +2 -2
  5. package/dist/components/checkbox/checkbox-button.vue.d.ts +1 -1
  6. package/dist/components/checkbox-group/checkbox-group.vue.d.ts +2 -2
  7. package/dist/components/collapse/collapse-item.js +34 -11
  8. package/dist/components/collapse/collapse-item.js.map +1 -1
  9. package/dist/components/collapse/collapse-item.vue.d.ts +9 -1
  10. package/dist/components/collapse/style2.css +29 -51
  11. package/dist/components/date-panel/date-panel.vue.d.ts +1 -1
  12. package/dist/components/date-picker/date-picker.vue.d.ts +1 -1
  13. package/dist/components/date-range-picker/date-range-picker.vue.d.ts +1 -1
  14. package/dist/components/grid-input/grid-input.vue.d.ts +1 -1
  15. package/dist/components/input/input.vue.d.ts +2 -2
  16. package/dist/components/multi-select/multi-select.vue.d.ts +2 -2
  17. package/dist/components/multi-tree-select/multi-tree-select.vue.d.ts +2 -2
  18. package/dist/components/number-range-input/number-range-input.vue.d.ts +1 -1
  19. package/dist/components/radio-group/radio-group.vue.d.ts +2 -2
  20. package/dist/components/select/select.vue.d.ts +2 -2
  21. package/dist/components/steps/style2.css +14 -14
  22. package/dist/components/tabs/tabs-horizontal.vue.d.ts +2 -2
  23. package/dist/components/tabs/tabs-vertical.vue.d.ts +2 -2
  24. package/dist/components/tabs/tabs.vue.d.ts +2 -2
  25. package/dist/components/textarea/textarea.vue.d.ts +2 -2
  26. package/dist/components/tree-select/tree-select.vue.d.ts +2 -2
  27. package/dist/components/watermark/watermark.vue.d.ts +1 -1
  28. package/dist/index.d.ts +3 -3
  29. package/dist/types/collapse.d.ts +23 -4
  30. package/dist/types/index.d.ts +3 -3
  31. package/package.json +6 -6
  32. package/src/components/collapse/__test__/collapse.test.ts +178 -1
  33. package/src/components/collapse/collapse-item.vue +40 -12
  34. package/src/components/collapse/style.scss +26 -62
  35. package/src/components/steps/style.scss +2 -2
  36. package/src/types/collapse.ts +25 -3
@@ -3,16 +3,9 @@
3
3
 
4
4
  $root-name: collapse;
5
5
 
6
- // 与 tabs/menu 一致的 Material standard 缓动
7
6
  $ease: cubic-bezier(0.4, 0, 0.2, 1);
8
7
  $transition-fast: 0.18s $ease;
9
8
  $transition-normal: 0.24s $ease;
10
- $item-bg: fn.component-var(collapse, item-bg);
11
- $item-hover-bg: fn.component-var(collapse, item-hover-bg);
12
- $item-active-bg: fn.component-var(collapse, item-active-bg);
13
- $header-active-bg: fn.component-var(collapse, header-active-bg);
14
- $content-bg: fn.component-var(collapse, content-bg);
15
- $active-title-color: fn.component-var(collapse, active-title-color, fn.use-var(color, primary));
16
9
 
17
10
  @include m.b($root-name) {
18
11
  width: 100%;
@@ -22,44 +15,15 @@ $active-title-color: fn.component-var(collapse, active-title-color, fn.use-var(c
22
15
 
23
16
  // ===== Item =====
24
17
  @include m.e(item) {
25
- position: relative;
26
- border-radius: calc(fn.use-var(radius, default) + 2px);
18
+ border: fn.use-var(border-muted);
19
+ border-radius: fn.use-var(radius, default);
20
+ background-color: fn.use-var(bg-color, middle);
27
21
  overflow: hidden;
28
- background-color: $item-bg;
29
- transition: background-color $transition-fast;
30
-
31
- &::before {
32
- content: '';
33
- position: absolute;
34
- top: 0;
35
- bottom: 0;
36
- left: 0;
37
- width: 3px;
38
- background-color: fn.use-var(color, primary);
39
- opacity: 0;
40
- pointer-events: none;
41
- transition: opacity $transition-fast;
42
- z-index: 1;
43
- }
44
22
 
45
23
  & + #{fn.bem($root-name, item)} {
46
24
  margin-top: fn.use-var(gap, default);
47
25
  }
48
26
 
49
- @include m.is-not(disabled) {
50
- &:hover {
51
- background-color: $item-hover-bg;
52
- }
53
- }
54
-
55
- @include m.is(active) {
56
- background-color: $item-active-bg;
57
-
58
- &::before {
59
- opacity: 1;
60
- }
61
- }
62
-
63
27
  @include m.is(disabled) {
64
28
  opacity: 0.55;
65
29
  }
@@ -70,43 +34,46 @@ $active-title-color: fn.component-var(collapse, active-title-color, fn.use-var(c
70
34
  position: relative;
71
35
  display: flex;
72
36
  align-items: center;
73
- gap: 10px;
37
+ gap: fn.use-var(gap, small);
38
+ padding: fn.use-var(gap, small) fn.use-var(gap, default);
74
39
  cursor: pointer;
75
40
  font-weight: 500;
76
41
  letter-spacing: 0.01em;
77
- color: fn.component-var(collapse, title-color, fn.use-var(text-color, main));
42
+ color: fn.use-var(text-color, main);
78
43
  user-select: none;
79
44
  outline: none;
80
- transition:
81
- color $transition-fast,
82
- background-color $transition-fast;
83
- border-radius: inherit;
45
+ transition: background-color $transition-fast;
46
+ border-radius: 0;
84
47
 
85
48
  &:focus-visible {
86
49
  box-shadow: inset 0 0 0 2px fn.use-var(color, primary);
87
50
  }
88
51
 
52
+ @include m.is-not(disabled) {
53
+ &:hover {
54
+ background-color: fn.use-var(bg-color, hover);
55
+ }
56
+ }
57
+
89
58
  @include m.is(disabled) {
90
59
  cursor: not-allowed;
91
60
  color: fn.use-var(text-color, placeholder);
92
61
  }
93
62
 
94
63
  @include m.is(active) {
95
- font-weight: 600;
96
- color: $active-title-color;
97
- background-color: $header-active-bg;
98
- border-bottom-right-radius: 0;
99
- border-bottom-left-radius: 0;
64
+ background-color: fn.use-var(bg-color, hover);
100
65
 
101
66
  #{fn.bem($root-name, icon)} {
102
- transform: rotate(90deg);
103
- color: $active-title-color;
67
+ transform: rotate(180deg);
104
68
  }
105
69
  }
106
70
  }
107
71
 
108
72
  // ===== Title =====
109
73
  @include m.e(title) {
74
+ display: flex;
75
+ align-items: center;
76
+ gap: fn.use-var(gap, small);
110
77
  flex: 1 1 auto;
111
78
  min-width: 0;
112
79
  line-height: 1.5;
@@ -118,10 +85,8 @@ $active-title-color: fn.component-var(collapse, active-title-color, fn.use-var(c
118
85
  align-items: center;
119
86
  justify-content: center;
120
87
  flex: 0 0 auto;
121
- color: fn.use-var(text-color, placeholder);
122
- transition:
123
- transform $transition-normal,
124
- color $transition-fast;
88
+ color: fn.use-var(text-color, assist);
89
+ transition: transform 0.2s $ease;
125
90
  will-change: transform;
126
91
  }
127
92
 
@@ -129,15 +94,14 @@ $active-title-color: fn.component-var(collapse, active-title-color, fn.use-var(c
129
94
  @include m.e(content-wrapper) {
130
95
  overflow: hidden;
131
96
  height: 0;
132
- border-bottom-right-radius: inherit;
133
- border-bottom-left-radius: inherit;
134
- background-color: $content-bg;
97
+ background-color: transparent;
135
98
  transition: height $transition-normal;
136
99
  }
137
100
 
138
101
  @include m.e(content) {
139
102
  color: fn.use-var(text-color, main);
140
103
  line-height: 1.7;
104
+ padding: fn.use-var(gap, small) fn.use-var(gap, default);
141
105
  }
142
106
 
143
107
  // ===== Sizes =====
@@ -145,17 +109,17 @@ $active-title-color: fn.component-var(collapse, active-title-color, fn.use-var(c
145
109
  font-size: fn.use-var(font-size-main, $size);
146
110
 
147
111
  @include m.bem($root-name, header) {
148
- padding: calc(fn.use-var(gap, $size) - 2px) fn.use-var(gap, $size);
112
+ padding: fn.use-var(gap, $size) fn.use-var(gap, $size);
149
113
  font-size: fn.use-var(font-size-main, $size);
150
114
  }
151
115
 
152
116
  @include m.bem($root-name, content) {
153
117
  font-size: fn.use-var(font-size-main, $size);
154
- padding: calc(fn.use-var(gap, $size) - 2px) fn.use-var(gap, $size) fn.use-var(gap, $size);
118
+ padding: fn.use-var(gap, $size);
155
119
  }
156
120
 
157
121
  #{fn.bem($root-name, item)} {
158
- border-radius: calc(fn.use-var(radius, $size) + 2px);
122
+ border-radius: fn.use-var(radius, $size);
159
123
 
160
124
  & + #{fn.bem($root-name, item)} {
161
125
  margin-top: fn.use-var(gap, $size);
@@ -12,14 +12,14 @@ $root-name: steps;
12
12
 
13
13
  @each $type in vars.$color-types {
14
14
  @include m.em(finished, $type) {
15
- @include m.e(item) {
15
+ @include m.bem($root-name, item) {
16
16
  @include m.is(finished) {
17
17
  color: fn.use-var(color, $type);
18
18
  }
19
19
  }
20
20
  }
21
21
  @include m.em(current, $type) {
22
- @include m.e(item) {
22
+ @include m.bem($root-name, item) {
23
23
  @include m.is(current) {
24
24
  color: fn.use-var(color, $type);
25
25
  }
@@ -25,7 +25,7 @@ export interface CollapseProps extends ComponentProps {
25
25
  defaultCollapseAll?: boolean
26
26
 
27
27
  /**
28
- * 自定义展开图标组件,活动态会自动旋转 90°。
28
+ * 自定义展开图标组件,活动态会自动旋转 180°。
29
29
  * 接受任意 Vue 组件(SFC、Functional Component 等)。
30
30
  */
31
31
  expandIcon?: Component
@@ -39,12 +39,34 @@ export interface CollapseEmits {
39
39
 
40
40
  /** CollapseItem 组件属性 */
41
41
  export interface CollapseItemProps {
42
- /** 唯一标识 */
43
- value: CollapseValue
42
+ /**
43
+ * 唯一标识;在 `UCollapse` 内使用时必填。
44
+ * 独立使用时可选。
45
+ */
46
+ value?: CollapseValue
47
+
48
+ /**
49
+ * 独立使用时的展开状态(`v-model`)。
50
+ * 在 `UCollapse` 内由父组件 `modelValue` 管理,此属性无效。
51
+ * @default false
52
+ */
53
+ modelValue?: boolean
44
54
 
45
55
  /** 标题文本(也可使用 #title 插槽) */
46
56
  title?: string
47
57
 
48
58
  /** 是否禁用 */
49
59
  disabled?: boolean
60
+
61
+ /**
62
+ * 独立使用时的自定义展开图标,活动态会自动旋转 180°。
63
+ * 在 `UCollapse` 内由父组件 `expandIcon` 统一管理。
64
+ */
65
+ expandIcon?: Component
66
+ }
67
+
68
+ export interface CollapseItemEmits {
69
+ (e: 'update:modelValue', value: boolean): void
70
+ /** 展开状态变更时触发(仅独立使用) */
71
+ (e: 'change', value: boolean): void
50
72
  }