@yh-ui/components 0.1.56 → 1.0.4

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 (252) hide show
  1. package/dist/affix/index.d.ts +11 -6
  2. package/dist/affix/src/affix.d.ts +10 -0
  3. package/dist/affix/src/affix.vue.d.ts +2 -2
  4. package/dist/ai-action-group/index.d.ts +5 -0
  5. package/dist/ai-action-group/src/ai-action-group.d.ts +3 -0
  6. package/dist/ai-agent-card/index.d.ts +7 -0
  7. package/dist/ai-agent-card/src/ai-agent-card.d.ts +10 -0
  8. package/dist/ai-artifacts/index.d.ts +8 -0
  9. package/dist/ai-artifacts/src/ai-artifacts.d.ts +11 -1
  10. package/dist/ai-attachments/index.d.ts +5 -0
  11. package/dist/ai-attachments/src/ai-attachments.d.ts +12 -1
  12. package/dist/ai-bubble/index.d.ts +12 -0
  13. package/dist/ai-bubble/src/ai-bubble.d.ts +8 -1
  14. package/dist/ai-bubble/src/ai-bubble.vue +24 -20
  15. package/dist/ai-bubble-list/index.d.ts +3 -0
  16. package/dist/ai-bubble-list/src/ai-bubble-list.d.ts +14 -1
  17. package/dist/ai-chat/index.d.ts +5 -0
  18. package/dist/ai-chat/src/ai-chat.d.ts +9 -0
  19. package/dist/ai-code-block/index.d.ts +4 -0
  20. package/dist/ai-code-block/src/ai-code-block.d.ts +4 -0
  21. package/dist/ai-code-editor/index.d.ts +5 -0
  22. package/dist/ai-code-editor/src/ai-code-editor.d.ts +2 -0
  23. package/dist/ai-code-runner/index.d.ts +5 -0
  24. package/dist/ai-code-runner/src/ai-code-runner.d.ts +2 -0
  25. package/dist/ai-conversations/index.d.ts +5 -0
  26. package/dist/ai-conversations/src/ai-conversations.d.ts +16 -1
  27. package/dist/ai-editor-sender/index.d.ts +9 -0
  28. package/dist/ai-editor-sender/src/ai-editor-sender.d.ts +15 -0
  29. package/dist/ai-file-card/index.d.ts +8 -0
  30. package/dist/ai-file-card/src/ai-file-card.d.ts +5 -1
  31. package/dist/ai-mention/index.d.ts +9 -0
  32. package/dist/ai-mention/src/ai-mention.d.ts +3 -0
  33. package/dist/ai-mermaid/index.d.ts +5 -0
  34. package/dist/ai-mermaid/src/ai-mermaid.d.ts +6 -1
  35. package/dist/ai-mermaid/src/ai-mermaid.vue +6 -1
  36. package/dist/ai-prompts/index.d.ts +5 -0
  37. package/dist/ai-prompts/src/ai-prompts.d.ts +10 -0
  38. package/dist/ai-provider/index.d.ts +10 -0
  39. package/dist/ai-provider/src/ai-provider.d.ts +28 -0
  40. package/dist/ai-sender/index.d.ts +6 -0
  41. package/dist/ai-sender/src/ai-sender.d.ts +11 -1
  42. package/dist/ai-sources/index.d.ts +6 -0
  43. package/dist/ai-sources/src/ai-sources.d.ts +5 -1
  44. package/dist/ai-thinking/index.d.ts +5 -0
  45. package/dist/ai-thinking/src/ai-thinking.d.ts +3 -0
  46. package/dist/ai-thought-chain/index.d.ts +6 -0
  47. package/dist/ai-thought-chain/src/ai-thought-chain.d.ts +3 -0
  48. package/dist/ai-voice-trigger/index.d.ts +5 -0
  49. package/dist/ai-voice-trigger/src/ai-voice-trigger.d.ts +4 -0
  50. package/dist/ai-welcome/index.d.ts +5 -0
  51. package/dist/ai-welcome/src/ai-welcome.d.ts +6 -0
  52. package/dist/alert/index.d.ts +6 -0
  53. package/dist/alert/src/alert.d.ts +7 -0
  54. package/dist/alert/src/alert.vue +1 -1
  55. package/dist/autocomplete/index.d.ts +8 -0
  56. package/dist/avatar/index.cjs +15 -0
  57. package/dist/avatar/index.d.ts +19 -9
  58. package/dist/avatar/index.mjs +1 -0
  59. package/dist/back-top/index.d.ts +4 -0
  60. package/dist/back-top/src/back-top.d.ts +3 -0
  61. package/dist/badge/index.d.ts +4 -0
  62. package/dist/breadcrumb/index.d.ts +6 -0
  63. package/dist/breadcrumb/src/breadcrumb.d.ts +6 -0
  64. package/dist/button/index.d.ts +9 -0
  65. package/dist/calendar/index.d.ts +16 -1230
  66. package/dist/calendar/src/calendar.d.ts +16 -0
  67. package/dist/calendar/src/calendar.vue.d.ts +2 -415
  68. package/dist/card/index.d.ts +4 -0
  69. package/dist/carousel/index.d.ts +9 -0
  70. package/dist/carousel/src/carousel-item.d.ts +3 -0
  71. package/dist/carousel/src/carousel.d.ts +25 -0
  72. package/dist/cascader/index.d.ts +9 -7
  73. package/dist/cascader/src/cascader.d.ts +2 -2
  74. package/dist/cascader/src/cascader.vue +82 -30
  75. package/dist/cascader/src/cascader.vue.d.ts +1 -1
  76. package/dist/category-nav/index.d.ts +4 -0
  77. package/dist/category-nav/src/category-nav.d.ts +15 -0
  78. package/dist/checkbox/index.d.ts +10 -0
  79. package/dist/col/index.d.ts +34 -180
  80. package/dist/col/src/col.d.ts +14 -30
  81. package/dist/col/src/col.vue.d.ts +15 -90
  82. package/dist/color-picker/index.d.ts +11 -1
  83. package/dist/color-picker/src/color-picker.d.ts +8 -0
  84. package/dist/color-picker/src/color-picker.vue +6 -0
  85. package/dist/color-picker/src/color-picker.vue.d.ts +6 -1
  86. package/dist/config-provider/index.d.ts +3 -0
  87. package/dist/config-provider/src/config-provider.cjs +9 -0
  88. package/dist/config-provider/src/config-provider.d.ts +3 -0
  89. package/dist/config-provider/src/config-provider.mjs +9 -0
  90. package/dist/container/index.d.ts +15 -0
  91. package/dist/container/src/container.d.ts +12 -0
  92. package/dist/countdown/index.d.ts +9 -0
  93. package/dist/coupon-card/index.d.ts +3 -0
  94. package/dist/coupon-card/src/coupon-card.d.ts +10 -0
  95. package/dist/date-picker/index.d.ts +8 -0
  96. package/dist/date-picker/src/date-picker.d.ts +9 -0
  97. package/dist/descriptions/index.d.ts +6 -0
  98. package/dist/descriptions/src/descriptions.d.ts +9 -0
  99. package/dist/dialog/index.d.ts +12 -6
  100. package/dist/dialog/src/dialog.d.ts +13 -0
  101. package/dist/dialog/src/dialog.vue.d.ts +2 -2
  102. package/dist/divider/index.d.ts +2 -0
  103. package/dist/drawer/index.d.ts +8 -3
  104. package/dist/drawer/src/drawer.d.ts +11 -0
  105. package/dist/drawer/src/drawer.vue.d.ts +1 -1
  106. package/dist/dropdown/index.d.ts +11 -0
  107. package/dist/dropdown/src/dropdown.d.ts +10 -0
  108. package/dist/empty/index.cjs +15 -0
  109. package/dist/empty/index.d.ts +6 -0
  110. package/dist/empty/index.mjs +1 -0
  111. package/dist/filter-bar/index.d.ts +9 -0
  112. package/dist/filter-bar/src/filter-bar.d.ts +12 -0
  113. package/dist/form/index.d.ts +11 -0
  114. package/dist/gantt-chart/index.d.ts +8 -6
  115. package/dist/gantt-chart/src/gantt-chart.d.ts +1 -4
  116. package/dist/gantt-chart/src/gantt-chart.vue +43 -33
  117. package/dist/grid/index.d.ts +6 -0
  118. package/dist/grid/src/grid.d.ts +3 -0
  119. package/dist/icon/index.d.ts +5 -0
  120. package/dist/image/index.d.ts +18 -1
  121. package/dist/image/src/image-viewer.d.ts +11 -0
  122. package/dist/image/src/image-viewer.vue +56 -9
  123. package/dist/image/src/image-viewer.vue.d.ts +9 -1
  124. package/dist/image/src/image.d.ts +4 -0
  125. package/dist/image/src/image.vue +1 -1
  126. package/dist/image-magnifier/index.d.ts +6 -0
  127. package/dist/image-magnifier/src/image-magnifier.d.ts +15 -0
  128. package/dist/image-magnifier/src/image-magnifier.vue +9 -5
  129. package/dist/infinite-scroll/index.d.ts +5 -0
  130. package/dist/infinite-scroll/src/infinite-scroll.d.ts +10 -0
  131. package/dist/infinite-scroll/src/infinite-scroll.vue +37 -25
  132. package/dist/infinite-scroll/src/infinite-scroll.vue.d.ts +0 -2
  133. package/dist/input/index.d.ts +10 -0
  134. package/dist/input-number/index.d.ts +7 -0
  135. package/dist/input-tag/index.d.ts +7 -0
  136. package/dist/loading/index.d.ts +2 -0
  137. package/dist/loading/src/service.cjs +5 -1
  138. package/dist/loading/src/service.mjs +3 -1
  139. package/dist/lucky-draw/index.d.ts +4 -0
  140. package/dist/lucky-draw/src/lucky-draw.d.ts +6 -0
  141. package/dist/markdown-it.d.ts +2 -1
  142. package/dist/marquee/index.d.ts +12 -6
  143. package/dist/marquee/src/marquee.d.ts +8 -0
  144. package/dist/marquee/src/marquee.vue +16 -6
  145. package/dist/marquee/src/marquee.vue.d.ts +2 -5
  146. package/dist/mention/index.d.ts +9 -0
  147. package/dist/menu/index.d.ts +14 -0
  148. package/dist/menu/src/menu.d.ts +9 -0
  149. package/dist/message/index.d.ts +11 -0
  150. package/dist/message/src/message.d.ts +40 -32
  151. package/dist/message/src/message.vue.d.ts +1 -1
  152. package/dist/message-box/index.d.ts +7 -0
  153. package/dist/notification/index.d.ts +11 -0
  154. package/dist/notification/src/notification.d.ts +37 -33
  155. package/dist/notification/src/notification.vue.d.ts +1 -1
  156. package/dist/pagination/index.d.ts +6 -0
  157. package/dist/pagination/src/pagination.d.ts +3 -0
  158. package/dist/popconfirm/index.d.ts +5 -0
  159. package/dist/popconfirm/src/popconfirm.d.ts +11 -1
  160. package/dist/popover/index.d.ts +6 -0
  161. package/dist/popover/src/popover.d.ts +12 -1
  162. package/dist/price/index.d.ts +1 -0
  163. package/dist/price/src/price.d.ts +7 -0
  164. package/dist/product-card/index.d.ts +7 -3
  165. package/dist/product-card/src/product-card.cjs +1 -36
  166. package/dist/product-card/src/product-card.d.ts +5 -35
  167. package/dist/product-card/src/product-card.mjs +1 -36
  168. package/dist/product-card/src/product-card.vue +8 -14
  169. package/dist/product-card/src/product-card.vue.d.ts +1 -1
  170. package/dist/progress/index.d.ts +5 -0
  171. package/dist/progress/src/progress.d.ts +5 -0
  172. package/dist/radio/index.d.ts +14 -0
  173. package/dist/rate/index.d.ts +11 -6
  174. package/dist/rate/src/rate.d.ts +10 -1
  175. package/dist/rate/src/rate.vue.d.ts +3 -3
  176. package/dist/result/index.d.ts +4 -0
  177. package/dist/row/index.d.ts +18 -12
  178. package/dist/row/src/row.d.ts +13 -8
  179. package/dist/row/src/row.vue.d.ts +6 -6
  180. package/dist/scrollbar/index.d.ts +10 -20
  181. package/dist/scrollbar/src/scrollbar.d.ts +16 -4
  182. package/dist/scrollbar/src/scrollbar.vue.d.ts +2 -8
  183. package/dist/select/index.d.ts +15 -3
  184. package/dist/select/src/select.d.ts +4 -1
  185. package/dist/select/src/select.vue +1 -1
  186. package/dist/select/src/select.vue.d.ts +1 -1
  187. package/dist/skeleton/index.d.ts +6 -0
  188. package/dist/skeleton/src/skeleton.d.ts +4 -0
  189. package/dist/sku-selector/index.d.ts +5 -0
  190. package/dist/sku-selector/src/sku-selector.cjs +1 -14
  191. package/dist/sku-selector/src/sku-selector.d.ts +15 -17
  192. package/dist/sku-selector/src/sku-selector.mjs +1 -14
  193. package/dist/sku-selector/src/sku-selector.vue +6 -11
  194. package/dist/slider/index.d.ts +20 -3
  195. package/dist/slider/src/slider.d.ts +15 -0
  196. package/dist/slider/src/slider.vue +5 -0
  197. package/dist/slider/src/slider.vue.d.ts +5 -1
  198. package/dist/smart-address/index.d.ts +11 -6
  199. package/dist/smart-address/src/smart-address.cjs +0 -19
  200. package/dist/smart-address/src/smart-address.d.ts +13 -20
  201. package/dist/smart-address/src/smart-address.mjs +0 -19
  202. package/dist/smart-address/src/smart-address.vue.d.ts +3 -3
  203. package/dist/space/index.cjs +15 -0
  204. package/dist/space/index.d.ts +22 -12
  205. package/dist/space/index.mjs +1 -0
  206. package/dist/spin/index.d.ts +16 -10
  207. package/dist/spin/src/spin.cjs +5 -1
  208. package/dist/spin/src/spin.d.ts +13 -1
  209. package/dist/spin/src/spin.mjs +4 -0
  210. package/dist/spin/src/spin.vue +2 -2
  211. package/dist/spin/src/spin.vue.d.ts +4 -5
  212. package/dist/steps/index.d.ts +13 -0
  213. package/dist/steps/src/step.d.ts +6 -0
  214. package/dist/steps/src/steps.d.ts +3 -0
  215. package/dist/submit-bar/index.d.ts +3 -0
  216. package/dist/submit-bar/src/submit-bar.d.ts +7 -0
  217. package/dist/switch/index.d.ts +5 -0
  218. package/dist/switch/src/switch.d.ts +11 -1
  219. package/dist/table/index.d.ts +14 -4
  220. package/dist/tabs/index.d.ts +11 -0
  221. package/dist/tabs/src/tab-pane.d.ts +3 -0
  222. package/dist/tabs/src/tabs.d.ts +12 -0
  223. package/dist/tag/index.d.ts +7 -0
  224. package/dist/time-picker/index.d.ts +13 -3
  225. package/dist/time-picker/src/time-picker.d.ts +2 -2
  226. package/dist/time-picker/src/time-picker.vue +1 -1
  227. package/dist/time-picker/src/time-picker.vue.d.ts +1 -1
  228. package/dist/time-select/index.d.ts +10 -3
  229. package/dist/time-select/src/time-select.d.ts +2 -2
  230. package/dist/time-select/src/time-select.vue +79 -35
  231. package/dist/time-select/src/time-select.vue.d.ts +1 -1
  232. package/dist/tooltip/index.d.ts +7 -0
  233. package/dist/tooltip/src/tooltip.d.ts +11 -1
  234. package/dist/transfer/index.d.ts +6 -4
  235. package/dist/transfer/src/transfer-panel.vue +78 -27
  236. package/dist/transfer/src/transfer-panel.vue.d.ts +1 -1
  237. package/dist/transfer/src/transfer.d.ts +4 -4
  238. package/dist/transfer/src/transfer.vue +82 -26
  239. package/dist/transfer/src/transfer.vue.d.ts +2 -2
  240. package/dist/tree/index.d.ts +7 -0
  241. package/dist/tree-select/index.d.ts +8 -0
  242. package/dist/typography/index.d.ts +11 -0
  243. package/dist/upload/index.d.ts +10 -0
  244. package/dist/upload/src/upload.d.ts +19 -0
  245. package/dist/viewerjs.d.ts +2 -1
  246. package/dist/waterfall/index.d.ts +6 -0
  247. package/dist/waterfall/src/waterfall.d.ts +25 -7
  248. package/dist/watermark/index.d.ts +11 -54
  249. package/dist/watermark/src/watermark.d.ts +16 -9
  250. package/dist/watermark/src/watermark.vue +27 -5
  251. package/dist/watermark/src/watermark.vue.d.ts +3 -27
  252. package/package.json +6 -5
@@ -7,172 +7,138 @@ export interface ProductBadge {
7
7
  color?: string;
8
8
  }
9
9
  export declare const productCardProps: {
10
- /** 商品图片 */
11
10
  image: {
12
11
  type: StringConstructor;
13
12
  default: string;
14
13
  };
15
- /** 鼠标悬浮切换图 */
16
14
  hoverImage: {
17
15
  type: StringConstructor;
18
16
  default: string;
19
17
  };
20
- /** 视频预览地址 */
21
18
  videoSrc: {
22
19
  type: StringConstructor;
23
20
  default: string;
24
21
  };
25
- /** 商品标题 */
26
22
  title: {
27
23
  type: StringConstructor;
28
24
  default: string;
29
25
  };
30
- /** 副标题/属性简述 */
31
26
  description: {
32
27
  type: StringConstructor;
33
28
  default: string;
34
29
  };
35
- /** 当前售价 */
36
30
  price: {
37
31
  type: (StringConstructor | NumberConstructor)[];
38
32
  default: number;
39
33
  };
40
- /** 会员价/到手价 */
41
34
  vipPrice: {
42
35
  type: (StringConstructor | NumberConstructor)[];
43
36
  default: string;
44
37
  };
45
- /** 会员价标签文本 (默认 "会员价") */
46
38
  vipLabel: {
47
39
  type: StringConstructor;
48
40
  default: string;
49
41
  };
50
- /** 划线价/参考价 */
51
42
  marketPrice: {
52
43
  type: (StringConstructor | NumberConstructor)[];
53
44
  default: string;
54
45
  };
55
- /** 货币符号 */
56
46
  currency: {
57
47
  type: StringConstructor;
58
48
  default: string;
59
49
  };
60
- /** 价格后置单位 (如: /件, /kg) */
61
50
  unit: {
62
51
  type: StringConstructor;
63
52
  default: string;
64
53
  };
65
- /** 营销丝带文本 (推荐) */
66
54
  ribbon: {
67
55
  type: StringConstructor;
68
56
  default: string;
69
57
  };
70
- /** 丝带背景颜色 */
71
58
  ribbonColor: {
72
59
  type: StringConstructor;
73
60
  default: string;
74
61
  };
75
- /** 兼容性:标题标签文本 (不推荐,建议使用 ribbons 或 badges) */
76
62
  tag: {
77
63
  type: StringConstructor;
78
64
  default: string;
79
65
  };
80
- /** 兼容性:标签颜色类型 */
81
66
  tagType: {
82
67
  type: PropType<"primary" | "success" | "warning" | "danger" | "info">;
83
68
  default: string;
84
69
  };
85
- /** 标签组 (支持图片 or 文本标签) */
86
70
  badges: {
87
71
  type: PropType<ProductBadge[]>;
88
72
  default: () => never[];
89
73
  };
90
- /** 布局模式 */
91
74
  layout: {
92
75
  type: PropType<ProductCardLayout>;
93
76
  default: string;
94
77
  };
95
- /** 是否开启图片懒加载 */
96
78
  lazy: {
97
79
  type: BooleanConstructor;
98
80
  default: boolean;
99
81
  };
100
- /** 库存进度(0-100) */
101
82
  stockProgress: {
102
83
  type: NumberConstructor;
103
84
  default: number;
104
85
  };
105
- /** 库存进度条颜色 (支持渐变色) */
106
86
  stockColor: {
107
87
  type: StringConstructor;
108
88
  default: string;
109
89
  };
110
- /** 库存文字提示 */
111
90
  stockText: {
112
91
  type: StringConstructor;
113
92
  default: string;
114
93
  };
115
- /** 是否显示边框 */
116
94
  border: {
117
95
  type: BooleanConstructor;
118
96
  default: boolean;
119
97
  };
120
- /** 是否开启悬浮阴影 */
121
98
  shadow: {
122
99
  type: BooleanConstructor;
123
100
  default: boolean;
124
101
  };
125
- /** 是否只读 (隐藏所有操作按钮) */
126
102
  readonly: {
127
103
  type: BooleanConstructor;
128
104
  default: boolean;
129
105
  };
130
- /** 操作按钮文本 */
131
106
  actionText: {
132
107
  type: StringConstructor;
133
108
  default: string;
134
109
  };
135
- /** 按钮加载态 */
136
110
  actionLoading: {
137
111
  type: BooleanConstructor;
138
112
  default: boolean;
139
113
  };
140
- /** 是否已售罄/禁用 */
141
114
  soldOut: {
142
115
  type: BooleanConstructor;
143
116
  default: boolean;
144
117
  };
145
- /** 是否开启曝光监听 */
146
118
  exposure: {
147
119
  type: BooleanConstructor;
148
120
  default: boolean;
149
121
  };
150
- /** 曝光上报阈值 (0-1) */
151
122
  exposureThreshold: {
152
123
  type: NumberConstructor;
153
124
  default: number;
154
125
  };
155
- /** 曝光成功后是否只上报一次 */
156
126
  exposureOnce: {
157
127
  type: BooleanConstructor;
158
128
  default: boolean;
159
129
  };
160
- /** 标题显示行数限制 (多行截断) */
161
130
  titleLines: {
162
131
  type: NumberConstructor;
163
132
  default: number;
164
133
  };
165
- /** 描述显示行数限制 (多行截断) */
166
134
  descriptionLines: {
167
135
  type: NumberConstructor;
168
136
  default: number;
169
137
  };
170
- /** 标签显示位置 */
171
138
  badgePosition: {
172
139
  type: PropType<"top" | "inline">;
173
140
  default: string;
174
141
  };
175
- /** 主题覆盖 */
176
142
  themeOverrides: {
177
143
  type: PropType<Record<string, string>>;
178
144
  default: () => {};
@@ -182,7 +148,11 @@ export type ProductCardProps = ExtractPropTypes<typeof productCardProps>;
182
148
  export declare const productCardEmits: {
183
149
  click: (e: MouseEvent) => boolean;
184
150
  action: (e: MouseEvent) => boolean;
185
- /** 曝光上报事件 */
186
151
  expose: () => boolean;
187
152
  };
188
153
  export type ProductCardEmits = typeof productCardEmits;
154
+ export interface ProductCardSlots {
155
+ title?: () => unknown;
156
+ description?: () => unknown;
157
+ footer?: () => unknown;
158
+ }
@@ -1,170 +1,136 @@
1
1
  export const productCardProps = {
2
- /** 商品图片 */
3
2
  image: {
4
3
  type: String,
5
4
  default: ""
6
5
  },
7
- /** 鼠标悬浮切换图 */
8
6
  hoverImage: {
9
7
  type: String,
10
8
  default: ""
11
9
  },
12
- /** 视频预览地址 */
13
10
  videoSrc: {
14
11
  type: String,
15
12
  default: ""
16
13
  },
17
- /** 商品标题 */
18
14
  title: {
19
15
  type: String,
20
16
  default: ""
21
17
  },
22
- /** 副标题/属性简述 */
23
18
  description: {
24
19
  type: String,
25
20
  default: ""
26
21
  },
27
- /** 当前售价 */
28
22
  price: {
29
23
  type: [Number, String],
30
24
  default: 0
31
25
  },
32
- /** 会员价/到手价 */
33
26
  vipPrice: {
34
27
  type: [Number, String],
35
28
  default: ""
36
29
  },
37
- /** 会员价标签文本 (默认 "会员价") */
38
30
  vipLabel: {
39
31
  type: String,
40
- default: "\u4F1A\u5458"
32
+ default: ""
41
33
  },
42
- /** 划线价/参考价 */
43
34
  marketPrice: {
44
35
  type: [Number, String],
45
36
  default: ""
46
37
  },
47
- /** 货币符号 */
48
38
  currency: {
49
39
  type: String,
50
40
  default: "\xA5"
51
41
  },
52
- /** 价格后置单位 (如: /件, /kg) */
53
42
  unit: {
54
43
  type: String,
55
44
  default: ""
56
45
  },
57
- /** 营销丝带文本 (推荐) */
58
46
  ribbon: {
59
47
  type: String,
60
48
  default: ""
61
49
  },
62
- /** 丝带背景颜色 */
63
50
  ribbonColor: {
64
51
  type: String,
65
52
  default: ""
66
53
  },
67
- /** 兼容性:标题标签文本 (不推荐,建议使用 ribbons 或 badges) */
68
54
  tag: {
69
55
  type: String,
70
56
  default: ""
71
57
  },
72
- /** 兼容性:标签颜色类型 */
73
58
  tagType: {
74
59
  type: String,
75
60
  default: "danger"
76
61
  },
77
- /** 标签组 (支持图片 or 文本标签) */
78
62
  badges: {
79
63
  type: Array,
80
64
  default: () => []
81
65
  },
82
- /** 布局模式 */
83
66
  layout: {
84
67
  type: String,
85
68
  default: "vertical"
86
69
  },
87
- /** 是否开启图片懒加载 */
88
70
  lazy: {
89
71
  type: Boolean,
90
72
  default: true
91
73
  },
92
- /** 库存进度(0-100) */
93
74
  stockProgress: {
94
75
  type: Number,
95
76
  default: 0
96
77
  },
97
- /** 库存进度条颜色 (支持渐变色) */
98
78
  stockColor: {
99
79
  type: String,
100
80
  default: ""
101
81
  },
102
- /** 库存文字提示 */
103
82
  stockText: {
104
83
  type: String,
105
84
  default: ""
106
85
  },
107
- /** 是否显示边框 */
108
86
  border: {
109
87
  type: Boolean,
110
88
  default: true
111
89
  },
112
- /** 是否开启悬浮阴影 */
113
90
  shadow: {
114
91
  type: Boolean,
115
92
  default: true
116
93
  },
117
- /** 是否只读 (隐藏所有操作按钮) */
118
94
  readonly: {
119
95
  type: Boolean,
120
96
  default: false
121
97
  },
122
- /** 操作按钮文本 */
123
98
  actionText: {
124
99
  type: String,
125
100
  default: ""
126
101
  },
127
- /** 按钮加载态 */
128
102
  actionLoading: {
129
103
  type: Boolean,
130
104
  default: false
131
105
  },
132
- /** 是否已售罄/禁用 */
133
106
  soldOut: {
134
107
  type: Boolean,
135
108
  default: false
136
109
  },
137
- /** 是否开启曝光监听 */
138
110
  exposure: {
139
111
  type: Boolean,
140
112
  default: false
141
113
  },
142
- /** 曝光上报阈值 (0-1) */
143
114
  exposureThreshold: {
144
115
  type: Number,
145
116
  default: 0.5
146
117
  },
147
- /** 曝光成功后是否只上报一次 */
148
118
  exposureOnce: {
149
119
  type: Boolean,
150
120
  default: true
151
121
  },
152
- /** 标题显示行数限制 (多行截断) */
153
122
  titleLines: {
154
123
  type: Number,
155
124
  default: 2
156
125
  },
157
- /** 描述显示行数限制 (多行截断) */
158
126
  descriptionLines: {
159
127
  type: Number,
160
128
  default: 1
161
129
  },
162
- /** 标签显示位置 */
163
130
  badgePosition: {
164
131
  type: String,
165
132
  default: "top"
166
133
  },
167
- /** 主题覆盖 */
168
134
  themeOverrides: {
169
135
  type: Object,
170
136
  default: () => ({})
@@ -173,6 +139,5 @@ export const productCardProps = {
173
139
  export const productCardEmits = {
174
140
  click: (e) => e instanceof MouseEvent,
175
141
  action: (e) => e instanceof MouseEvent,
176
- /** 曝光上报事件 */
177
142
  expose: () => true
178
143
  };
@@ -1,12 +1,13 @@
1
1
  <script setup>
2
2
  import { ref, computed, onMounted, onUnmounted, watch } from "vue";
3
- import { useNamespace } from "@yh-ui/hooks";
3
+ import { useNamespace, useLocale } from "@yh-ui/hooks";
4
4
  import { useComponentTheme } from "@yh-ui/theme";
5
5
  import { productCardProps, productCardEmits } from "./product-card";
6
6
  defineOptions({ name: "YhProductCard" });
7
7
  const props = defineProps(productCardProps);
8
8
  const emit = defineEmits(productCardEmits);
9
9
  const ns = useNamespace("product-card");
10
+ const { t } = useLocale();
10
11
  const { themeStyle } = useComponentTheme(
11
12
  "product-card",
12
13
  computed(() => props.themeOverrides)
@@ -63,6 +64,9 @@ const displayVipPrice = computed(() => {
63
64
  const p = Number(props.vipPrice);
64
65
  return isNaN(p) ? props.vipPrice : p.toFixed(2);
65
66
  });
67
+ const vipLabelText = computed(() => props.vipLabel || t("productcard.vip"));
68
+ const soldOutText = computed(() => t("productcard.soldOut"));
69
+ const actionText = computed(() => props.actionText || t("productcard.buyNow"));
66
70
  const stockStyle = computed(() => ({
67
71
  width: `${Math.min(100, Math.max(0, props.stockProgress))}%`,
68
72
  background: props.stockColor || "var(--yh-color-primary)"
@@ -92,7 +96,6 @@ const handleBadgeImageError = (idx) => {
92
96
  @mouseenter="handleMouseEnter"
93
97
  @mouseleave="handleMouseLeave"
94
98
  >
95
- <!-- 1. Ribbon System (Feature 1) -->
96
99
  <div
97
100
  v-if="props.ribbon"
98
101
  :class="ns.e('ribbon')"
@@ -103,7 +106,6 @@ const handleBadgeImageError = (idx) => {
103
106
  {{ props.ribbon }}
104
107
  </div>
105
108
 
106
- <!-- Media Area (Feature 3) -->
107
109
  <div :class="ns.e('image-wrapper')">
108
110
  <img
109
111
  :src="currentImage"
@@ -112,22 +114,18 @@ const handleBadgeImageError = (idx) => {
112
114
  :loading="props.lazy ? 'lazy' : 'eager'"
113
115
  />
114
116
 
115
- <!-- Video Preview Overlay -->
116
117
  <Transition name="yh-fade">
117
118
  <div v-if="videoActive && props.videoSrc" :class="ns.e('video-overlay')">
118
119
  <video :src="props.videoSrc" autoplay muted loop playsinline :class="ns.e('video')" />
119
120
  </div>
120
121
  </Transition>
121
122
 
122
- <!-- Sold Out Mask (Feature 4) -->
123
123
  <div v-if="props.soldOut" :class="ns.e('sold-out-mask')">
124
- <span :class="ns.e('sold-out-text')">售罄</span>
124
+ <span :class="ns.e('sold-out-text')">{{ soldOutText }}</span>
125
125
  </div>
126
126
  </div>
127
127
 
128
- <!-- Content Area -->
129
128
  <div :class="ns.e('content')">
130
- <!-- 1. Badges System (Row Style: Above Title) -->
131
129
  <div
132
130
  v-if="(props.tag || props.badges.length) && props.badgePosition === 'top'"
133
131
  :class="ns.e('badges')"
@@ -156,7 +154,6 @@ const handleBadgeImageError = (idx) => {
156
154
  </div>
157
155
 
158
156
  <h3 :class="ns.e('title')" :title="props.title">
159
- <!-- 2. Badges System (Inline Style: Prefix) -->
160
157
  <span
161
158
  v-if="(props.tag || props.badges.length) && props.badgePosition === 'inline'"
162
159
  :class="[ns.e('badges'), ns.is('inline')]"
@@ -194,7 +191,6 @@ const handleBadgeImageError = (idx) => {
194
191
  <slot name="description">{{ props.description }}</slot>
195
192
  </div>
196
193
 
197
- <!-- Price Area (Feature 2) -->
198
194
  <div :class="ns.e('price-row')">
199
195
  <div :class="ns.e('main-price')">
200
196
  <span :class="ns.e('currency')">{{ props.currency }}</span>
@@ -203,7 +199,7 @@ const handleBadgeImageError = (idx) => {
203
199
  </div>
204
200
 
205
201
  <div v-if="props.vipPrice" :class="ns.e('vip-row')">
206
- <span :class="ns.e('vip-label')">{{ props.vipLabel }}</span>
202
+ <span :class="ns.e('vip-label')">{{ vipLabelText }}</span>
207
203
  <span :class="ns.e('currency')">{{ props.currency }}</span>
208
204
  <span :class="ns.e('vip-price')">{{ displayVipPrice }}</span>
209
205
  </div>
@@ -213,7 +209,6 @@ const handleBadgeImageError = (idx) => {
213
209
  </div>
214
210
  </div>
215
211
 
216
- <!-- Stock Progress (Feature 2 & 侧边栏需求) -->
217
212
  <div v-if="props.stockProgress" :class="ns.e('stock-area')">
218
213
  <div :class="ns.e('stock-bar-bg')">
219
214
  <div :class="ns.e('stock-bar-inner')" :style="stockStyle" />
@@ -221,7 +216,6 @@ const handleBadgeImageError = (idx) => {
221
216
  <span v-if="props.stockText" :class="ns.e('stock-text')">{{ props.stockText }}</span>
222
217
  </div>
223
218
 
224
- <!-- Footer Actions (Feature 4) -->
225
219
  <div v-if="!props.readonly" :class="ns.e('footer')">
226
220
  <slot name="footer">
227
221
  <button
@@ -229,7 +223,7 @@ const handleBadgeImageError = (idx) => {
229
223
  @click.stop="handleAction"
230
224
  >
231
225
  <span v-if="props.actionLoading" :class="ns.e('loading-spinner')" />
232
- {{ props.actionText || "\u7ACB\u5373\u8D2D\u4E70" }}
226
+ {{ actionText }}
233
227
  </button>
234
228
  </slot>
235
229
  </div>
@@ -294,6 +294,7 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
294
294
  image: string;
295
295
  tag: string;
296
296
  description: string;
297
+ soldOut: boolean;
297
298
  readonly: boolean;
298
299
  themeOverrides: Record<string, string>;
299
300
  border: boolean;
@@ -316,7 +317,6 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
316
317
  stockText: string;
317
318
  actionText: string;
318
319
  actionLoading: boolean;
319
- soldOut: boolean;
320
320
  exposure: boolean;
321
321
  exposureThreshold: number;
322
322
  exposureOnce: boolean;
@@ -323,3 +323,8 @@ export declare const YhProgress: import("@yh-ui/utils").SFCWithInstall<{
323
323
  export default YhProgress;
324
324
  export * from './src/progress';
325
325
  export type ProgressInstance = InstanceType<typeof Progress>;
326
+ export type YhProgressInstance = ProgressInstance;
327
+ export type YhProgressProps = import('./src/progress').ProgressProps;
328
+ export type YhProgressSlots = import('./src/progress').ProgressSlots;
329
+ export type YhProgressType = import('./src/progress').ProgressType;
330
+ export type YhProgressStatus = import('./src/progress').ProgressStatus;
@@ -104,3 +104,8 @@ export declare const progressProps: {
104
104
  };
105
105
  };
106
106
  export type ProgressProps = ExtractPropTypes<typeof progressProps>;
107
+ export interface ProgressSlots {
108
+ default?: (props: {
109
+ percentage: number;
110
+ }) => unknown;
111
+ }
@@ -157,3 +157,17 @@ export * from './src/radio';
157
157
  export type RadioInstance = InstanceType<typeof Radio>;
158
158
  export type RadioGroupInstance = InstanceType<typeof RadioGroup>;
159
159
  export type RadioButtonInstance = InstanceType<typeof RadioButton>;
160
+ export type YhRadioInstance = RadioInstance;
161
+ export type YhRadioGroupInstance = RadioGroupInstance;
162
+ export type YhRadioButtonInstance = RadioButtonInstance;
163
+ export type YhRadioProps = import('./src/radio').RadioProps;
164
+ export type YhRadioEmits = import('./src/radio').RadioEmits;
165
+ export type YhRadioSlots = import('./src/radio').RadioSlots;
166
+ export type YhRadioExpose = import('./src/radio').RadioExpose;
167
+ export type YhRadioGroupProps = import('./src/radio').RadioGroupProps;
168
+ export type YhRadioGroupEmits = import('./src/radio').RadioGroupEmits;
169
+ export type YhRadioGroupOption = import('./src/radio').RadioGroupOption;
170
+ export type YhRadioButtonProps = import('./src/radio').RadioButtonProps;
171
+ export type YhRadioButtonEmits = import('./src/radio').RadioButtonEmits;
172
+ export type YhRadioButtonExpose = import('./src/radio').RadioButtonExpose;
173
+ export type YhRadioValueType = import('./src/radio').RadioValueType;
@@ -62,7 +62,7 @@ export declare const YhRate: import("@yh-ui/utils").SFCWithInstall<{
62
62
  readonly default: "{value}";
63
63
  };
64
64
  readonly size: {
65
- readonly type: import("vue").PropType<"large" | "default" | "small">;
65
+ readonly type: import("vue").PropType<import("./index.js").RateSize>;
66
66
  readonly default: "default";
67
67
  };
68
68
  readonly clearable: {
@@ -80,7 +80,7 @@ export declare const YhRate: import("@yh-ui/utils").SFCWithInstall<{
80
80
  change: (value: number) => void;
81
81
  "update:modelValue": (value: number) => void;
82
82
  }, import("vue").PublicProps, {
83
- readonly size: "large" | "default" | "small";
83
+ readonly size: import("./index.js").RateSize;
84
84
  readonly disabled: boolean;
85
85
  readonly colors: string | string[] | Record<number, string>;
86
86
  readonly textColor: string;
@@ -167,7 +167,7 @@ export declare const YhRate: import("@yh-ui/utils").SFCWithInstall<{
167
167
  readonly default: "{value}";
168
168
  };
169
169
  readonly size: {
170
- readonly type: import("vue").PropType<"large" | "default" | "small">;
170
+ readonly type: import("vue").PropType<import("./index.js").RateSize>;
171
171
  readonly default: "default";
172
172
  };
173
173
  readonly clearable: {
@@ -182,7 +182,7 @@ export declare const YhRate: import("@yh-ui/utils").SFCWithInstall<{
182
182
  onChange?: ((value: number) => any) | undefined;
183
183
  "onUpdate:modelValue"?: ((value: number) => any) | undefined;
184
184
  }>, {}, {}, {}, {}, {
185
- readonly size: "large" | "default" | "small";
185
+ readonly size: import("./index.js").RateSize;
186
186
  readonly disabled: boolean;
187
187
  readonly colors: string | string[] | Record<number, string>;
188
188
  readonly textColor: string;
@@ -266,7 +266,7 @@ export declare const YhRate: import("@yh-ui/utils").SFCWithInstall<{
266
266
  readonly default: "{value}";
267
267
  };
268
268
  readonly size: {
269
- readonly type: import("vue").PropType<"large" | "default" | "small">;
269
+ readonly type: import("vue").PropType<import("./index.js").RateSize>;
270
270
  readonly default: "default";
271
271
  };
272
272
  readonly clearable: {
@@ -284,7 +284,7 @@ export declare const YhRate: import("@yh-ui/utils").SFCWithInstall<{
284
284
  change: (value: number) => void;
285
285
  "update:modelValue": (value: number) => void;
286
286
  }, string, {
287
- readonly size: "large" | "default" | "small";
287
+ readonly size: import("./index.js").RateSize;
288
288
  readonly disabled: boolean;
289
289
  readonly colors: string | string[] | Record<number, string>;
290
290
  readonly textColor: string;
@@ -315,3 +315,8 @@ export declare const YhRate: import("@yh-ui/utils").SFCWithInstall<{
315
315
  export default YhRate;
316
316
  export * from './src/rate';
317
317
  export type RateInstance = InstanceType<typeof Rate>;
318
+ export type YhRateSize = import('./src/rate').RateSize;
319
+ export type YhRateProps = import('./src/rate').RateProps;
320
+ export type YhRateEmits = import('./src/rate').RateEmits;
321
+ export type YhRateSlots = import('./src/rate').RateSlots;
322
+ export type YhRateInstance = RateInstance;
@@ -1,4 +1,5 @@
1
1
  import type { ExtractPropTypes, PropType, Component } from 'vue';
2
+ export type RateSize = 'large' | 'default' | 'small';
2
3
  export declare const rateProps: {
3
4
  readonly modelValue: {
4
5
  readonly type: NumberConstructor;
@@ -61,7 +62,7 @@ export declare const rateProps: {
61
62
  readonly default: "{value}";
62
63
  };
63
64
  readonly size: {
64
- readonly type: PropType<"large" | "default" | "small">;
65
+ readonly type: PropType<RateSize>;
65
66
  readonly default: "default";
66
67
  };
67
68
  readonly clearable: {
@@ -80,3 +81,11 @@ export declare const rateEmits: {
80
81
  change: (value: number) => boolean;
81
82
  };
82
83
  export type RateEmits = typeof rateEmits;
84
+ export interface RateSlots {
85
+ icon?: (props: {
86
+ index: number;
87
+ width: string;
88
+ activeColor: string;
89
+ voidColor: string;
90
+ }) => unknown;
91
+ }
@@ -69,7 +69,7 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
69
69
  readonly default: "{value}";
70
70
  };
71
71
  readonly size: {
72
- readonly type: import("vue").PropType<"large" | "default" | "small">;
72
+ readonly type: import("vue").PropType<import("./rate").RateSize>;
73
73
  readonly default: "default";
74
74
  };
75
75
  readonly clearable: {
@@ -145,7 +145,7 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
145
145
  readonly default: "{value}";
146
146
  };
147
147
  readonly size: {
148
- readonly type: import("vue").PropType<"large" | "default" | "small">;
148
+ readonly type: import("vue").PropType<import("./rate").RateSize>;
149
149
  readonly default: "default";
150
150
  };
151
151
  readonly clearable: {
@@ -160,7 +160,7 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
160
160
  onChange?: ((value: number) => any) | undefined;
161
161
  "onUpdate:modelValue"?: ((value: number) => any) | undefined;
162
162
  }>, {
163
- readonly size: "large" | "default" | "small";
163
+ readonly size: import("./rate").RateSize;
164
164
  readonly disabled: boolean;
165
165
  readonly colors: string | string[] | Record<number, string>;
166
166
  readonly textColor: string;
@@ -33,3 +33,7 @@ export declare const YhResult: import("@yh-ui/utils").SFCWithInstall<{
33
33
  export default YhResult;
34
34
  export * from './src/result';
35
35
  export type ResultInstance = InstanceType<typeof Result>;
36
+ export type YhResultInstance = ResultInstance;
37
+ export type YhResultProps = import('./src/result').ResultProps;
38
+ export type YhResultSlots = import('./src/result').ResultSlots;
39
+ export type YhResultIconType = import('./src/result').ResultIconType;