persagy-vant 0.0.34 → 0.0.36

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 (100) hide show
  1. package/es/index.d.ts +1 -1
  2. package/es/index.mjs +1 -1
  3. package/es/label/Label.d.ts +11 -1
  4. package/es/label/Label.mjs +34 -3
  5. package/es/label/index.css +1 -1
  6. package/es/label/index.d.ts +6 -2
  7. package/es/label/index.less +22 -0
  8. package/es/label/var.less +1 -0
  9. package/es/material-action-bar/MaterialActionBar.d.ts +15 -0
  10. package/es/material-action-bar/MaterialActionBar.mjs +107 -58
  11. package/es/material-action-bar/index.css +1 -1
  12. package/es/material-action-bar/index.d.ts +76 -2
  13. package/es/material-action-bar/index.less +9 -5
  14. package/es/material-action-bar/index.mjs +4 -2
  15. package/es/material-action-bar/style/index.mjs +1 -0
  16. package/es/material-action-bar/style/less.mjs +1 -0
  17. package/es/material-add/MaterialAdd.mjs +0 -1
  18. package/es/material-add/index.css +1 -1
  19. package/es/material-add/style/index.mjs +1 -0
  20. package/es/material-add/style/less.mjs +1 -0
  21. package/es/material-detail/MaterialDetail.mjs +7 -2
  22. package/es/material-display-bar/MaterialDisplayBar.d.ts +2 -1
  23. package/es/material-display-bar/MaterialDisplayBar.mjs +5 -3
  24. package/es/material-display-bar/index.css +1 -1
  25. package/es/material-display-bar/index.d.ts +205 -3
  26. package/es/material-display-bar/index.less +34 -1
  27. package/es/material-display-bar/index.mjs +6 -2
  28. package/es/material-display-bar/var.less +2 -1
  29. package/es/tag/Tag.d.ts +15 -2
  30. package/es/tag/Tag.mjs +20 -3
  31. package/es/tag/index.css +1 -1
  32. package/es/tag/index.d.ts +9 -0
  33. package/es/tag/index.less +45 -1
  34. package/es/tag/var.less +13 -0
  35. package/es/title-bar/TitleBar.d.ts +29 -11
  36. package/es/title-bar/TitleBar.mjs +38 -8
  37. package/es/title-bar/index.css +1 -1
  38. package/es/title-bar/index.d.ts +14 -1
  39. package/es/title-bar/index.less +10 -2
  40. package/es/title-bar/style/index.mjs +2 -0
  41. package/es/title-bar/style/less.mjs +2 -0
  42. package/es/title-bar/var.less +4 -0
  43. package/lib/index.css +1 -1
  44. package/lib/index.d.ts +1 -1
  45. package/lib/index.js +1 -1
  46. package/lib/index.less +1 -1
  47. package/lib/label/Label.d.ts +11 -1
  48. package/lib/label/Label.js +34 -3
  49. package/lib/label/index.css +1 -1
  50. package/lib/label/index.d.ts +6 -2
  51. package/lib/label/index.less +22 -0
  52. package/lib/label/var.less +1 -0
  53. package/lib/material-action-bar/MaterialActionBar.d.ts +15 -0
  54. package/lib/material-action-bar/MaterialActionBar.js +106 -57
  55. package/lib/material-action-bar/index.css +1 -1
  56. package/lib/material-action-bar/index.d.ts +76 -2
  57. package/lib/material-action-bar/index.js +4 -2
  58. package/lib/material-action-bar/index.less +9 -5
  59. package/lib/material-action-bar/style/index.js +1 -0
  60. package/lib/material-action-bar/style/less.js +1 -0
  61. package/lib/material-add/MaterialAdd.js +0 -1
  62. package/lib/material-add/index.css +1 -1
  63. package/lib/material-add/style/index.js +1 -0
  64. package/lib/material-add/style/less.js +1 -0
  65. package/lib/material-detail/MaterialDetail.js +7 -2
  66. package/lib/material-display-bar/MaterialDisplayBar.d.ts +2 -1
  67. package/lib/material-display-bar/MaterialDisplayBar.js +5 -3
  68. package/lib/material-display-bar/index.css +1 -1
  69. package/lib/material-display-bar/index.d.ts +205 -3
  70. package/lib/material-display-bar/index.js +6 -2
  71. package/lib/material-display-bar/index.less +34 -1
  72. package/lib/material-display-bar/var.less +2 -1
  73. package/lib/tag/Tag.d.ts +15 -2
  74. package/lib/tag/Tag.js +20 -3
  75. package/lib/tag/index.css +1 -1
  76. package/lib/tag/index.d.ts +9 -0
  77. package/lib/tag/index.less +45 -1
  78. package/lib/tag/var.less +13 -0
  79. package/lib/title-bar/TitleBar.d.ts +29 -11
  80. package/lib/title-bar/TitleBar.js +38 -8
  81. package/lib/title-bar/index.css +1 -1
  82. package/lib/title-bar/index.d.ts +14 -1
  83. package/lib/title-bar/index.less +10 -2
  84. package/lib/title-bar/style/index.js +2 -0
  85. package/lib/title-bar/style/less.js +2 -0
  86. package/lib/title-bar/var.less +4 -0
  87. package/lib/vant.cjs.js +218 -80
  88. package/lib/vant.es.js +218 -80
  89. package/lib/vant.js +218 -80
  90. package/lib/vant.min.js +1 -1
  91. package/lib/web-types.json +1 -1
  92. package/package.json +1 -1
  93. package/skills/use-persagy-vant/SKILL.md +2 -2
  94. package/skills/use-persagy-vant/references/component-catalog.md +3 -2
  95. package/skills/use-persagy-vant/references/component-documentation.md +1 -1
  96. package/skills/use-persagy-vant/references/component-gap-template.md +3 -0
  97. package/skills/use-persagy-vant/references/design-interaction-baseline.md +1 -0
  98. package/skills/use-persagy-vant/references/page-recipes.md +1 -1
  99. package/skills/use-persagy-vant/references/reuse-policy.md +27 -1
  100. package/skills/use-persagy-vant/references/usage-patterns.md +1 -1
package/lib/tag/index.css CHANGED
@@ -1 +1 @@
1
- :root{--van-tag-padding: 0 var(--van-padding-base);--van-tag-text-color: var(--van-white);--van-tag-font-size: var(--van-font-size-sm);--van-tag-border-radius: 2px;--van-tag-line-height: 16px;--van-tag-medium-padding: 2px 6px;--van-tag-large-padding: var(--van-padding-base) var(--van-padding-xs);--van-tag-large-border-radius: var(--van-border-radius-md);--van-tag-large-font-size: var(--van-font-size-md);--van-tag-round-border-radius: var(--van-border-radius-max);--van-tag-danger-color: var(--van-red-700);--van-tag-danger-background-color: var(--van-red-100);--van-tag-primary-color: var(--van-blue-700);--van-tag-primary-background-color: var(--van-blue-100);--van-tag-success-color: var(--van-green-700);--van-tag-success-background-color: var(--van-green-100);--van-tag-warning-color: var(--van-orange-700);--van-tag-warning-background-color: var(--van-orange-100);--van-tag-gray-color: var(--van-gray-8);--van-tag-gray-background-color: var(--van-gray-3);--van-tag-default-color: var(--van-gray-6);--van-tag-plain-background-color: transparent}.van-tag{position:relative;display:inline-flex;align-items:center;padding:var(--van-tag-padding);color:var(--van-tag-text-color);font-size:var(--van-tag-font-size);line-height:var(--van-tag-line-height);border-radius:var(--van-tag-border-radius)}.van-tag--default{background:var(--van-tag-default-color)}.van-tag--default.van-tag--plain{color:var(--van-tag-default-color)}.van-tag--danger{background:var(--van-tag-danger-background-color);color:var(--van-tag-danger-color)}.van-tag--primary{background:var(--van-tag-primary-background-color);color:var(--van-tag-primary-color)}.van-tag--success{background:var(--van-tag-success-background-color);color:var(--van-tag-success-color)}.van-tag--warning{background:var(--van-tag-warning-background-color);color:var(--van-tag-warning-color)}.van-tag--gray{background:var(--van-tag-gray-background-color);color:var(--van-tag-gray-color)}.van-tag--plain{background:var(--van-tag-plain-background-color);border-color:currentColor}.van-tag--plain:before{position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid;border-color:inherit;border-radius:inherit;content:"";pointer-events:none}.van-tag--medium{padding:var(--van-tag-medium-padding)}.van-tag--large{padding:var(--van-tag-large-padding);font-size:var(--van-tag-large-font-size);border-radius:var(--van-tag-large-border-radius)}.van-tag--mark{border-radius:0 var(--van-tag-round-border-radius) var(--van-tag-round-border-radius) 0}.van-tag--mark:after{display:block;width:2px;content:""}.van-tag--round{border-radius:var(--van-tag-round-border-radius)}.van-tag__close{margin-left:2px}
1
+ :root{--van-tag-padding: 0 var(--van-padding-base);--van-tag-text-color: var(--van-white);--van-tag-font-size: var(--van-font-size-sm);--van-tag-border-radius: 2px;--van-tag-line-height: 16px;--van-tag-medium-padding: 2px 6px;--van-tag-small-padding: 1px 4px;--van-tag-small-font-size: var(--van-font-size-xs);--van-tag-large-padding: var(--van-padding-base) var(--van-padding-xs);--van-tag-large-border-radius: var(--van-border-radius-md);--van-tag-large-font-size: var(--van-font-size-md);--van-tag-round-border-radius: var(--van-border-radius-max);--van-tag-icon-gap: 2px;--van-tag-right-icon-size: 12px;--van-tag-small-right-icon-size: 10px;--van-tag-large-right-icon-size: 14px;--van-tag-danger-color: var(--van-red-700);--van-tag-danger-background-color: var(--van-red-100);--van-tag-primary-color: var(--van-blue-700);--van-tag-primary-background-color: var(--van-blue-100);--van-tag-success-color: var(--van-green-700);--van-tag-success-background-color: var(--van-green-100);--van-tag-warning-color: var(--van-orange-700);--van-tag-warning-background-color: var(--van-orange-100);--van-tag-gray-color: var(--van-gray-8);--van-tag-gray-background-color: var(--van-gray-3);--van-tag-turquoise-color: #0f766e;--van-tag-turquoise-background-color: #ccfbf1;--van-tag-purple-color: #7e22ce;--van-tag-purple-background-color: #f3e8ff;--van-tag-violet-color: #6d28d9;--van-tag-violet-background-color: #ede9fe;--van-tag-default-color: var(--van-gray-6);--van-tag-plain-background-color: transparent}.van-tag{position:relative;display:inline-flex;align-items:center;padding:var(--van-tag-padding);color:var(--van-tag-text-color);font-size:var(--van-tag-font-size);line-height:var(--van-tag-line-height);border-radius:var(--van-tag-border-radius)}.van-tag--default{background:var(--van-tag-default-color)}.van-tag--default.van-tag--plain{color:var(--van-tag-default-color)}.van-tag--danger{background:var(--van-tag-danger-background-color);color:var(--van-tag-danger-color)}.van-tag--primary{background:var(--van-tag-primary-background-color);color:var(--van-tag-primary-color)}.van-tag--success{background:var(--van-tag-success-background-color);color:var(--van-tag-success-color)}.van-tag--warning{background:var(--van-tag-warning-background-color);color:var(--van-tag-warning-color)}.van-tag--gray{background:var(--van-tag-gray-background-color);color:var(--van-tag-gray-color)}.van-tag--turquoise{background:var(--van-tag-turquoise-background-color);color:var(--van-tag-turquoise-color)}.van-tag--purple{background:var(--van-tag-purple-background-color);color:var(--van-tag-purple-color)}.van-tag--violet{background:var(--van-tag-violet-background-color);color:var(--van-tag-violet-color)}.van-tag--plain{background:var(--van-tag-plain-background-color);border-color:currentColor}.van-tag--plain:before{position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid;border-color:inherit;border-radius:inherit;content:"";pointer-events:none}.van-tag--medium{padding:var(--van-tag-medium-padding)}.van-tag--small{padding:var(--van-tag-small-padding);font-size:var(--van-tag-small-font-size);--van-tag-right-icon-size: var(--van-tag-small-right-icon-size)}.van-tag--large{padding:var(--van-tag-large-padding);font-size:var(--van-tag-large-font-size);border-radius:var(--van-tag-large-border-radius);--van-tag-right-icon-size: var(--van-tag-large-right-icon-size)}.van-tag--mark{border-radius:0 var(--van-tag-round-border-radius) var(--van-tag-round-border-radius) 0}.van-tag--mark:after{display:block;width:2px;content:""}.van-tag--round{border-radius:var(--van-tag-round-border-radius)}.van-tag__close{margin-left:var(--van-tag-icon-gap)}.van-tag__right-icon{margin-left:var(--van-tag-icon-gap);font-size:var(--van-tag-right-icon-size)}.van-tag__number{margin-right:2px;font-weight:600}
@@ -17,6 +17,10 @@ export declare const Tag: import("../utils").WithInstall<import("vue").DefineCom
17
17
  round: BooleanConstructor;
18
18
  textColor: StringConstructor;
19
19
  closeable: BooleanConstructor;
20
+ rightIcon: StringConstructor;
21
+ number: (NumberConstructor | StringConstructor)[];
22
+ showNumber: BooleanConstructor;
23
+ numberColor: StringConstructor;
20
24
  }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "close"[], "close", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
21
25
  size: {
22
26
  type: import("vue").PropType<import("./Tag").TagSize>;
@@ -36,6 +40,10 @@ export declare const Tag: import("../utils").WithInstall<import("vue").DefineCom
36
40
  round: BooleanConstructor;
37
41
  textColor: StringConstructor;
38
42
  closeable: BooleanConstructor;
43
+ rightIcon: StringConstructor;
44
+ number: (NumberConstructor | StringConstructor)[];
45
+ showNumber: BooleanConstructor;
46
+ numberColor: StringConstructor;
39
47
  }>> & {
40
48
  onClose?: ((...args: any[]) => any) | undefined;
41
49
  }, {
@@ -46,6 +54,7 @@ export declare const Tag: import("../utils").WithInstall<import("vue").DefineCom
46
54
  show: boolean;
47
55
  plain: boolean;
48
56
  closeable: boolean;
57
+ showNumber: boolean;
49
58
  }>>;
50
59
  export default Tag;
51
60
  export type { TagSize, TagType, TagProps } from './Tag';
@@ -7,10 +7,16 @@
7
7
  --van-tag-border-radius: @tag-border-radius;
8
8
  --van-tag-line-height: @tag-line-height;
9
9
  --van-tag-medium-padding: @tag-medium-padding;
10
+ --van-tag-small-padding: @tag-small-padding;
11
+ --van-tag-small-font-size: @tag-small-font-size;
10
12
  --van-tag-large-padding: @tag-large-padding;
11
13
  --van-tag-large-border-radius: @tag-large-border-radius;
12
14
  --van-tag-large-font-size: @tag-large-font-size;
13
15
  --van-tag-round-border-radius: @tag-round-border-radius;
16
+ --van-tag-icon-gap: @tag-icon-gap;
17
+ --van-tag-right-icon-size: @tag-right-icon-size;
18
+ --van-tag-small-right-icon-size: @tag-small-right-icon-size;
19
+ --van-tag-large-right-icon-size: @tag-large-right-icon-size;
14
20
  --van-tag-danger-color: @tag-danger-color;
15
21
  --van-tag-danger-background-color: @tag-danger-background-color;
16
22
  --van-tag-primary-color: @tag-primary-color;
@@ -21,6 +27,12 @@
21
27
  --van-tag-warning-background-color: @tag-warning-background-color;
22
28
  --van-tag-gray-color: @tag-gray-color;
23
29
  --van-tag-gray-background-color: @tag-gray-background-color;
30
+ --van-tag-turquoise-color: @tag-turquoise-color;
31
+ --van-tag-turquoise-background-color: @tag-turquoise-background-color;
32
+ --van-tag-purple-color: @tag-purple-color;
33
+ --van-tag-purple-background-color: @tag-purple-background-color;
34
+ --van-tag-violet-color: @tag-violet-color;
35
+ --van-tag-violet-background-color: @tag-violet-background-color;
24
36
  --van-tag-default-color: @tag-default-color;
25
37
  --van-tag-plain-background-color: @tag-plain-background-color;
26
38
  }
@@ -68,6 +80,21 @@
68
80
  color: var(--van-tag-gray-color);
69
81
  }
70
82
 
83
+ &--turquoise {
84
+ background: var(--van-tag-turquoise-background-color);
85
+ color: var(--van-tag-turquoise-color);
86
+ }
87
+
88
+ &--purple {
89
+ background: var(--van-tag-purple-background-color);
90
+ color: var(--van-tag-purple-color);
91
+ }
92
+
93
+ &--violet {
94
+ background: var(--van-tag-violet-background-color);
95
+ color: var(--van-tag-violet-color);
96
+ }
97
+
71
98
  &--plain {
72
99
  background: var(--van-tag-plain-background-color);
73
100
  border-color: currentColor;
@@ -90,10 +117,17 @@
90
117
  padding: var(--van-tag-medium-padding);
91
118
  }
92
119
 
120
+ &--small {
121
+ padding: var(--van-tag-small-padding);
122
+ font-size: var(--van-tag-small-font-size);
123
+ --van-tag-right-icon-size: var(--van-tag-small-right-icon-size);
124
+ }
125
+
93
126
  &--large {
94
127
  padding: var(--van-tag-large-padding);
95
128
  font-size: var(--van-tag-large-font-size);
96
129
  border-radius: var(--van-tag-large-border-radius);
130
+ --van-tag-right-icon-size: var(--van-tag-large-right-icon-size);
97
131
  }
98
132
 
99
133
  &--mark {
@@ -112,6 +146,16 @@
112
146
  }
113
147
 
114
148
  &__close {
115
- margin-left: 2px;
149
+ margin-left: var(--van-tag-icon-gap);
150
+ }
151
+
152
+ &__right-icon {
153
+ margin-left: var(--van-tag-icon-gap);
154
+ font-size: var(--van-tag-right-icon-size);
155
+ }
156
+
157
+ &__number {
158
+ margin-right: 2px;
159
+ font-weight: 600;
116
160
  }
117
161
  }
package/lib/tag/var.less CHANGED
@@ -6,10 +6,16 @@
6
6
  @tag-border-radius: 2px;
7
7
  @tag-line-height: 16px;
8
8
  @tag-medium-padding: 2px 6px;
9
+ @tag-small-padding: 1px 4px;
10
+ @tag-small-font-size: var(--van-font-size-xs);
9
11
  @tag-large-padding: var(--van-padding-base) var(--van-padding-xs);
10
12
  @tag-large-border-radius: var(--van-border-radius-md);
11
13
  @tag-large-font-size: var(--van-font-size-md);
12
14
  @tag-round-border-radius: var(--van-border-radius-max);
15
+ @tag-icon-gap: 2px;
16
+ @tag-right-icon-size: 12px;
17
+ @tag-small-right-icon-size: 10px;
18
+ @tag-large-right-icon-size: 14px;
13
19
 
14
20
  @tag-danger-color: var(--van-red-700);
15
21
  @tag-danger-background-color: var(--van-red-100);
@@ -26,6 +32,13 @@
26
32
  @tag-gray-color: var(--van-gray-8);
27
33
  @tag-gray-background-color: var(--van-gray-3);
28
34
 
35
+ @tag-turquoise-color: #0f766e;
36
+ @tag-turquoise-background-color: #ccfbf1;
37
+ @tag-purple-color: #7e22ce;
38
+ @tag-purple-background-color: #f3e8ff;
39
+ @tag-violet-color: #6d28d9;
40
+ @tag-violet-background-color: #ede9fe;
41
+
29
42
  @tag-default-color: var(--van-gray-6);
30
43
 
31
44
  @tag-plain-background-color: transparent;
@@ -1,20 +1,25 @@
1
- import { type ExtractPropTypes, type PropType } from 'vue';
1
+ import { type ExtractPropTypes } from 'vue';
2
2
  export declare type TitleBarSize = 'default' | 'mini';
3
3
  declare const titleBarProps: {
4
4
  title: {
5
- type: PropType<string>;
5
+ type: import("vue").PropType<string>;
6
6
  default: string;
7
7
  };
8
8
  description: {
9
- type: PropType<string>;
9
+ type: import("vue").PropType<string>;
10
10
  default: string;
11
11
  };
12
12
  icon: StringConstructor;
13
13
  showIcon: BooleanConstructor;
14
14
  showDescription: BooleanConstructor;
15
15
  showArrow: BooleanConstructor;
16
+ actionText: {
17
+ type: import("vue").PropType<string>;
18
+ default: string;
19
+ };
20
+ showAction: BooleanConstructor;
16
21
  size: {
17
- type: PropType<TitleBarSize>;
22
+ type: import("vue").PropType<TitleBarSize>;
18
23
  default: TitleBarSize;
19
24
  };
20
25
  expandable: BooleanConstructor;
@@ -26,19 +31,24 @@ declare const titleBarProps: {
26
31
  export declare type TitleBarProps = ExtractPropTypes<typeof titleBarProps>;
27
32
  declare const _default: import("vue").DefineComponent<{
28
33
  title: {
29
- type: PropType<string>;
34
+ type: import("vue").PropType<string>;
30
35
  default: string;
31
36
  };
32
37
  description: {
33
- type: PropType<string>;
38
+ type: import("vue").PropType<string>;
34
39
  default: string;
35
40
  };
36
41
  icon: StringConstructor;
37
42
  showIcon: BooleanConstructor;
38
43
  showDescription: BooleanConstructor;
39
44
  showArrow: BooleanConstructor;
45
+ actionText: {
46
+ type: import("vue").PropType<string>;
47
+ default: string;
48
+ };
49
+ showAction: BooleanConstructor;
40
50
  size: {
41
- type: PropType<TitleBarSize>;
51
+ type: import("vue").PropType<TitleBarSize>;
42
52
  default: TitleBarSize;
43
53
  };
44
54
  expandable: BooleanConstructor;
@@ -46,21 +56,26 @@ declare const _default: import("vue").DefineComponent<{
46
56
  type: BooleanConstructor;
47
57
  default: true;
48
58
  };
49
- }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("click" | "change" | "update:modelValue")[], "click" | "change" | "update:modelValue", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
59
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("click" | "change" | "update:modelValue" | "click-action")[], "click" | "change" | "update:modelValue" | "click-action", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
50
60
  title: {
51
- type: PropType<string>;
61
+ type: import("vue").PropType<string>;
52
62
  default: string;
53
63
  };
54
64
  description: {
55
- type: PropType<string>;
65
+ type: import("vue").PropType<string>;
56
66
  default: string;
57
67
  };
58
68
  icon: StringConstructor;
59
69
  showIcon: BooleanConstructor;
60
70
  showDescription: BooleanConstructor;
61
71
  showArrow: BooleanConstructor;
72
+ actionText: {
73
+ type: import("vue").PropType<string>;
74
+ default: string;
75
+ };
76
+ showAction: BooleanConstructor;
62
77
  size: {
63
- type: PropType<TitleBarSize>;
78
+ type: import("vue").PropType<TitleBarSize>;
64
79
  default: TitleBarSize;
65
80
  };
66
81
  expandable: BooleanConstructor;
@@ -72,13 +87,16 @@ declare const _default: import("vue").DefineComponent<{
72
87
  onChange?: ((...args: any[]) => any) | undefined;
73
88
  onClick?: ((...args: any[]) => any) | undefined;
74
89
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
90
+ "onClick-action"?: ((...args: any[]) => any) | undefined;
75
91
  }, {
76
92
  title: string;
77
93
  size: TitleBarSize;
78
94
  modelValue: boolean;
79
95
  description: string;
96
+ actionText: string;
80
97
  expandable: boolean;
81
98
  showArrow: boolean;
99
+ showAction: boolean;
82
100
  showDescription: boolean;
83
101
  showIcon: boolean;
84
102
  }>;
@@ -21,6 +21,7 @@ __export(stdin_exports, {
21
21
  });
22
22
  module.exports = __toCommonJS(stdin_exports);
23
23
  var import_vue = require("vue");
24
+ var import_button = require("../button");
24
25
  var import_icon = require("../icon");
25
26
  var import_utils = require("../utils");
26
27
  const [name, bem] = (0, import_utils.createNamespace)("title-bar");
@@ -31,6 +32,8 @@ const titleBarProps = {
31
32
  showIcon: Boolean,
32
33
  showDescription: Boolean,
33
34
  showArrow: Boolean,
35
+ actionText: (0, import_utils.makeStringProp)("\u64CD\u4F5C"),
36
+ showAction: Boolean,
34
37
  size: (0, import_utils.makeStringProp)("default"),
35
38
  expandable: Boolean,
36
39
  modelValue: import_utils.truthProp
@@ -38,7 +41,7 @@ const titleBarProps = {
38
41
  var stdin_default = (0, import_vue.defineComponent)({
39
42
  name,
40
43
  props: titleBarProps,
41
- emits: ["update:modelValue", "change", "click"],
44
+ emits: ["update:modelValue", "change", "click", "click-action"],
42
45
  setup(props, {
43
46
  slots,
44
47
  emit
@@ -50,6 +53,21 @@ var stdin_default = (0, import_vue.defineComponent)({
50
53
  emit("update:modelValue", value);
51
54
  emit("change", value);
52
55
  };
56
+ const onHeaderClick = (event) => {
57
+ emit("click", event);
58
+ toggle();
59
+ };
60
+ const onActionClick = (event) => {
61
+ event.stopPropagation();
62
+ emit("click-action", event);
63
+ };
64
+ const onHeaderKeydown = (event) => {
65
+ if (event.key === "Enter" || event.key === " ") {
66
+ event.preventDefault();
67
+ emit("click", event);
68
+ toggle();
69
+ }
70
+ };
53
71
  return () => {
54
72
  var _a, _b, _c;
55
73
  return (0, import_vue.createVNode)("section", {
@@ -57,20 +75,32 @@ var stdin_default = (0, import_vue.defineComponent)({
57
75
  mini: props.size === "mini",
58
76
  expandable: props.expandable
59
77
  })
60
- }, [(0, import_vue.createVNode)("button", {
61
- "type": "button",
78
+ }, [(0, import_vue.createVNode)("div", {
62
79
  "class": bem("header"),
80
+ "role": "button",
81
+ "tabindex": "0",
63
82
  "aria-expanded": props.expandable ? props.modelValue : void 0,
64
- "onClick": (event) => {
65
- emit("click", event);
66
- toggle();
67
- }
83
+ "onClick": onHeaderClick,
84
+ "onKeydown": onHeaderKeydown
68
85
  }, [props.showIcon && props.icon && (0, import_vue.createVNode)(import_icon.Icon, {
69
86
  "name": props.icon,
70
87
  "class": bem("icon")
71
88
  }, null), (0, import_vue.createVNode)("span", {
72
89
  "class": bem("text")
73
- }, [(0, import_vue.createVNode)("strong", null, [((_a = slots.title) == null ? void 0 : _a.call(slots)) || props.title]), props.size !== "mini" && props.showDescription && props.description && (0, import_vue.createVNode)("span", null, [((_b = slots.description) == null ? void 0 : _b.call(slots)) || props.description])]), (props.showArrow || props.expandable) && (0, import_vue.createVNode)(import_icon.Icon, {
90
+ }, [(0, import_vue.createVNode)("span", {
91
+ "class": bem("title-row")
92
+ }, [(0, import_vue.createVNode)("strong", null, [((_a = slots.title) == null ? void 0 : _a.call(slots)) || props.title]), props.showAction && props.actionText && (0, import_vue.createVNode)("span", {
93
+ "class": bem("action")
94
+ }, [(0, import_vue.createVNode)("i", {
95
+ "class": bem("action-divider")
96
+ }, null), (0, import_vue.createVNode)(import_button.Button, {
97
+ "type": "text",
98
+ "size": "small",
99
+ "text": props.actionText,
100
+ "onClick": onActionClick
101
+ }, null)])]), props.size !== "mini" && props.showDescription && props.description && (0, import_vue.createVNode)("span", {
102
+ "class": bem("description")
103
+ }, [((_b = slots.description) == null ? void 0 : _b.call(slots)) || props.description])]), (props.showArrow || props.expandable) && (0, import_vue.createVNode)(import_icon.Icon, {
74
104
  "name": "arrow-up",
75
105
  "class": bem("arrow", {
76
106
  expanded: props.expandable && props.modelValue
@@ -1 +1 @@
1
- :root{--van-title-bar-padding: 12px var(--van-padding-md) 4px;--van-title-bar-gap: 4px;--van-title-bar-title-color: var(--van-gray-8);--van-title-bar-description-color: var(--van-gray-6)}.van-title-bar{color:var(--van-title-bar-title-color)}.van-title-bar__header{display:flex;align-items:flex-start;width:100%;padding:var(--van-title-bar-padding);color:inherit;font:inherit;text-align:left;background:transparent;border:0}.van-title-bar--expandable .van-title-bar__header{cursor:pointer}.van-title-bar--expandable .van-title-bar__header:active{background:var(--van-active-color)}.van-title-bar__icon{flex:none;margin:3px 4px 0 0;font-size:16px}.van-title-bar__text{display:flex;flex:1;flex-direction:column;min-width:0}.van-title-bar__text strong{overflow:hidden;font-size:var(--van-font-size-md);font-weight:var(--van-font-weight-bold);line-height:var(--van-line-height-lg);text-overflow:ellipsis;white-space:nowrap}.van-title-bar__text>span{overflow:hidden;color:var(--van-title-bar-description-color);font-size:var(--van-font-size-sm);font-weight:400;line-height:var(--van-line-height-md);text-overflow:ellipsis;white-space:nowrap}.van-title-bar__arrow{flex:none;margin:4px 0 0 8px;color:var(--van-gray-6);font-size:14px;transition:transform var(--van-animation-duration-fast);transform:rotate(180deg)}.van-title-bar__arrow--expanded{transform:rotate(0)}.van-title-bar--mini .van-title-bar__header{padding-top:12px;padding-bottom:4px}.van-title-bar--mini .van-title-bar__text strong{font-size:var(--van-font-size-sm);line-height:var(--van-line-height-md)}.van-title-bar--mini .van-title-bar__icon{margin-top:3px;font-size:14px}.van-title-bar--mini .van-title-bar__arrow{margin-top:3px}
1
+ :root{--van-title-bar-padding: 12px var(--van-padding-md) 4px;--van-title-bar-gap: 4px;--van-title-bar-title-color: var(--van-gray-8);--van-title-bar-description-color: var(--van-gray-6);--van-title-bar-action-divider-before-gap: 8px;--van-title-bar-action-divider-after-gap: 2px;--van-title-bar-action-divider-color: var(--van-gray-4);--van-title-bar-action-divider-height: 12px}.van-title-bar{color:var(--van-title-bar-title-color)}.van-title-bar__header{display:flex;align-items:flex-start;width:100%;padding:var(--van-title-bar-padding);color:inherit;font:inherit;text-align:left;background:transparent;border:0}.van-title-bar--expandable .van-title-bar__header{cursor:pointer}.van-title-bar--expandable .van-title-bar__header:active{background:var(--van-active-color)}.van-title-bar__icon{flex:none;margin:3px 4px 0 0;font-size:16px}.van-title-bar__text{display:flex;flex:1;flex-direction:column;min-width:0}.van-title-bar__title-row{display:flex;align-items:center;min-width:0}.van-title-bar__text strong{flex:0 1 auto;min-width:0;overflow:hidden;font-size:var(--van-font-size-md);font-weight:var(--van-font-weight-bold);line-height:var(--van-line-height-lg);text-overflow:ellipsis;white-space:nowrap}.van-title-bar__description{overflow:hidden;color:var(--van-title-bar-description-color);font-size:var(--van-font-size-sm);font-weight:400;line-height:var(--van-line-height-md);text-overflow:ellipsis;white-space:nowrap}.van-title-bar__action{display:flex;flex:none;align-items:center;margin-left:var(--van-title-bar-action-divider-before-gap)}.van-title-bar__action-divider{width:1px;height:var(--van-title-bar-action-divider-height);margin-right:var(--van-title-bar-action-divider-after-gap);background:var(--van-title-bar-action-divider-color)}.van-title-bar__action .van-button{flex:none}.van-title-bar__arrow{flex:none;margin:4px 0 0 8px;color:var(--van-gray-6);font-size:14px;transition:transform var(--van-animation-duration-fast);transform:rotate(180deg)}.van-title-bar__arrow--expanded{transform:rotate(0)}.van-title-bar--mini .van-title-bar__header{padding-top:12px;padding-bottom:4px}.van-title-bar--mini .van-title-bar__text strong{font-size:var(--van-font-size-sm);line-height:var(--van-line-height-md)}.van-title-bar--mini .van-title-bar__icon{margin-top:3px;font-size:14px}.van-title-bar--mini .van-title-bar__arrow{margin-top:3px}
@@ -11,6 +11,11 @@ export declare const TitleBar: import("../utils").WithInstall<import("vue").Defi
11
11
  showIcon: BooleanConstructor;
12
12
  showDescription: BooleanConstructor;
13
13
  showArrow: BooleanConstructor;
14
+ actionText: {
15
+ type: import("vue").PropType<string>;
16
+ default: string;
17
+ };
18
+ showAction: BooleanConstructor;
14
19
  size: {
15
20
  type: import("vue").PropType<import("./TitleBar").TitleBarSize>;
16
21
  default: import("./TitleBar").TitleBarSize;
@@ -20,7 +25,7 @@ export declare const TitleBar: import("../utils").WithInstall<import("vue").Defi
20
25
  type: BooleanConstructor;
21
26
  default: true;
22
27
  };
23
- }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("click" | "change" | "update:modelValue")[], "click" | "change" | "update:modelValue", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
28
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("click" | "change" | "update:modelValue" | "click-action")[], "click" | "change" | "update:modelValue" | "click-action", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
24
29
  title: {
25
30
  type: import("vue").PropType<string>;
26
31
  default: string;
@@ -33,6 +38,11 @@ export declare const TitleBar: import("../utils").WithInstall<import("vue").Defi
33
38
  showIcon: BooleanConstructor;
34
39
  showDescription: BooleanConstructor;
35
40
  showArrow: BooleanConstructor;
41
+ actionText: {
42
+ type: import("vue").PropType<string>;
43
+ default: string;
44
+ };
45
+ showAction: BooleanConstructor;
36
46
  size: {
37
47
  type: import("vue").PropType<import("./TitleBar").TitleBarSize>;
38
48
  default: import("./TitleBar").TitleBarSize;
@@ -46,13 +56,16 @@ export declare const TitleBar: import("../utils").WithInstall<import("vue").Defi
46
56
  onChange?: ((...args: any[]) => any) | undefined;
47
57
  onClick?: ((...args: any[]) => any) | undefined;
48
58
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
59
+ "onClick-action"?: ((...args: any[]) => any) | undefined;
49
60
  }, {
50
61
  title: string;
51
62
  size: import("./TitleBar").TitleBarSize;
52
63
  modelValue: boolean;
53
64
  description: string;
65
+ actionText: string;
54
66
  expandable: boolean;
55
67
  showArrow: boolean;
68
+ showAction: boolean;
56
69
  showDescription: boolean;
57
70
  showIcon: boolean;
58
71
  }>>;
@@ -5,6 +5,10 @@
5
5
  --van-title-bar-gap: @title-bar-gap;
6
6
  --van-title-bar-title-color: @title-bar-title-color;
7
7
  --van-title-bar-description-color: @title-bar-description-color;
8
+ --van-title-bar-action-divider-before-gap: @title-bar-action-divider-before-gap;
9
+ --van-title-bar-action-divider-after-gap: @title-bar-action-divider-after-gap;
10
+ --van-title-bar-action-divider-color: @title-bar-action-divider-color;
11
+ --van-title-bar-action-divider-height: @title-bar-action-divider-height;
8
12
  }
9
13
 
10
14
  .van-title-bar {
@@ -14,8 +18,12 @@
14
18
  &--expandable &__header { cursor: pointer; &:active { background: var(--van-active-color); } }
15
19
  &__icon { flex: none; margin: 3px 4px 0 0; font-size: 16px; }
16
20
  &__text { display: flex; flex: 1; flex-direction: column; min-width: 0; }
17
- &__text strong { overflow: hidden; font-size: var(--van-font-size-md); font-weight: var(--van-font-weight-bold); line-height: var(--van-line-height-lg); text-overflow: ellipsis; white-space: nowrap; }
18
- &__text > span { overflow: hidden; color: var(--van-title-bar-description-color); font-size: var(--van-font-size-sm); font-weight: 400; line-height: var(--van-line-height-md); text-overflow: ellipsis; white-space: nowrap; }
21
+ &__title-row { display: flex; align-items: center; min-width: 0; }
22
+ &__text strong { flex: 0 1 auto; min-width: 0; overflow: hidden; font-size: var(--van-font-size-md); font-weight: var(--van-font-weight-bold); line-height: var(--van-line-height-lg); text-overflow: ellipsis; white-space: nowrap; }
23
+ &__description { overflow: hidden; color: var(--van-title-bar-description-color); font-size: var(--van-font-size-sm); font-weight: 400; line-height: var(--van-line-height-md); text-overflow: ellipsis; white-space: nowrap; }
24
+ &__action { display: flex; flex: none; align-items: center; margin-left: var(--van-title-bar-action-divider-before-gap); }
25
+ &__action-divider { width: 1px; height: var(--van-title-bar-action-divider-height); margin-right: var(--van-title-bar-action-divider-after-gap); background: var(--van-title-bar-action-divider-color); }
26
+ &__action .van-button { flex: none; }
19
27
  &__arrow { flex: none; margin: 4px 0 0 8px; color: var(--van-gray-6); font-size: 14px; transition: transform var(--van-animation-duration-fast); transform: rotate(180deg); }
20
28
  &__arrow--expanded { transform: rotate(0); }
21
29
  &--mini &__header { padding-top: 12px; padding-bottom: 4px; }
@@ -1,4 +1,6 @@
1
1
  require("../../style/base.css");
2
2
  require("../../badge/index.css");
3
3
  require("../../icon/index.css");
4
+ require("../../loading/index.css");
5
+ require("../../button/index.css");
4
6
  require("../index.css");
@@ -1,4 +1,6 @@
1
1
  require("../../style/base.less");
2
2
  require("../../badge/index.less");
3
3
  require("../../icon/index.less");
4
+ require("../../loading/index.less");
5
+ require("../../button/index.less");
4
6
  require("../index.less");
@@ -4,3 +4,7 @@
4
4
  @title-bar-gap: 4px;
5
5
  @title-bar-title-color: var(--van-gray-8);
6
6
  @title-bar-description-color: var(--van-gray-6);
7
+ @title-bar-action-divider-before-gap: 8px;
8
+ @title-bar-action-divider-after-gap: 2px;
9
+ @title-bar-action-divider-color: var(--van-gray-4);
10
+ @title-bar-action-divider-height: 12px;