@yh-ui/components 0.1.55 → 1.0.1

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 (250) 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 +5 -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 +23 -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.d.ts +3 -0
  88. package/dist/container/index.d.ts +15 -0
  89. package/dist/container/src/container.d.ts +12 -0
  90. package/dist/countdown/index.d.ts +9 -0
  91. package/dist/coupon-card/index.d.ts +3 -0
  92. package/dist/coupon-card/src/coupon-card.d.ts +10 -0
  93. package/dist/date-picker/index.d.ts +8 -0
  94. package/dist/date-picker/src/date-picker.d.ts +9 -0
  95. package/dist/descriptions/index.d.ts +6 -0
  96. package/dist/descriptions/src/descriptions.d.ts +9 -0
  97. package/dist/dialog/index.d.ts +12 -6
  98. package/dist/dialog/src/dialog.d.ts +13 -0
  99. package/dist/dialog/src/dialog.vue.d.ts +2 -2
  100. package/dist/divider/index.d.ts +2 -0
  101. package/dist/drawer/index.d.ts +8 -3
  102. package/dist/drawer/src/drawer.d.ts +11 -0
  103. package/dist/drawer/src/drawer.vue.d.ts +1 -1
  104. package/dist/dropdown/index.d.ts +11 -0
  105. package/dist/dropdown/src/dropdown.d.ts +10 -0
  106. package/dist/empty/index.cjs +15 -0
  107. package/dist/empty/index.d.ts +6 -0
  108. package/dist/empty/index.mjs +1 -0
  109. package/dist/filter-bar/index.d.ts +9 -0
  110. package/dist/filter-bar/src/filter-bar.d.ts +12 -0
  111. package/dist/form/index.d.ts +11 -0
  112. package/dist/gantt-chart/index.d.ts +8 -6
  113. package/dist/gantt-chart/src/gantt-chart.d.ts +1 -4
  114. package/dist/gantt-chart/src/gantt-chart.vue +43 -33
  115. package/dist/grid/index.d.ts +6 -0
  116. package/dist/grid/src/grid.d.ts +3 -0
  117. package/dist/icon/index.d.ts +5 -0
  118. package/dist/image/index.d.ts +18 -1
  119. package/dist/image/src/image-viewer.d.ts +11 -0
  120. package/dist/image/src/image-viewer.vue +56 -9
  121. package/dist/image/src/image-viewer.vue.d.ts +9 -1
  122. package/dist/image/src/image.d.ts +4 -0
  123. package/dist/image/src/image.vue +1 -1
  124. package/dist/image-magnifier/index.d.ts +6 -0
  125. package/dist/image-magnifier/src/image-magnifier.d.ts +15 -0
  126. package/dist/image-magnifier/src/image-magnifier.vue +9 -5
  127. package/dist/infinite-scroll/index.d.ts +5 -0
  128. package/dist/infinite-scroll/src/infinite-scroll.d.ts +10 -0
  129. package/dist/infinite-scroll/src/infinite-scroll.vue +37 -25
  130. package/dist/infinite-scroll/src/infinite-scroll.vue.d.ts +0 -2
  131. package/dist/input/index.d.ts +10 -0
  132. package/dist/input-number/index.d.ts +7 -0
  133. package/dist/input-tag/index.d.ts +7 -0
  134. package/dist/loading/index.d.ts +2 -0
  135. package/dist/loading/src/service.cjs +5 -1
  136. package/dist/loading/src/service.mjs +3 -1
  137. package/dist/lucky-draw/index.d.ts +4 -0
  138. package/dist/lucky-draw/src/lucky-draw.d.ts +6 -0
  139. package/dist/markdown-it.d.ts +2 -1
  140. package/dist/marquee/index.d.ts +12 -6
  141. package/dist/marquee/src/marquee.d.ts +8 -0
  142. package/dist/marquee/src/marquee.vue +16 -6
  143. package/dist/marquee/src/marquee.vue.d.ts +2 -5
  144. package/dist/mention/index.d.ts +9 -0
  145. package/dist/menu/index.d.ts +14 -0
  146. package/dist/menu/src/menu.d.ts +9 -0
  147. package/dist/message/index.d.ts +11 -0
  148. package/dist/message/src/message.d.ts +40 -32
  149. package/dist/message/src/message.vue.d.ts +1 -1
  150. package/dist/message-box/index.d.ts +7 -0
  151. package/dist/notification/index.d.ts +11 -0
  152. package/dist/notification/src/notification.d.ts +37 -33
  153. package/dist/notification/src/notification.vue.d.ts +1 -1
  154. package/dist/pagination/index.d.ts +6 -0
  155. package/dist/pagination/src/pagination.d.ts +3 -0
  156. package/dist/popconfirm/index.d.ts +5 -0
  157. package/dist/popconfirm/src/popconfirm.d.ts +11 -1
  158. package/dist/popover/index.d.ts +6 -0
  159. package/dist/popover/src/popover.d.ts +9 -1
  160. package/dist/price/index.d.ts +1 -0
  161. package/dist/price/src/price.d.ts +7 -0
  162. package/dist/product-card/index.d.ts +7 -3
  163. package/dist/product-card/src/product-card.cjs +1 -36
  164. package/dist/product-card/src/product-card.d.ts +5 -35
  165. package/dist/product-card/src/product-card.mjs +1 -36
  166. package/dist/product-card/src/product-card.vue +8 -14
  167. package/dist/product-card/src/product-card.vue.d.ts +1 -1
  168. package/dist/progress/index.d.ts +5 -0
  169. package/dist/progress/src/progress.d.ts +5 -0
  170. package/dist/radio/index.d.ts +14 -0
  171. package/dist/rate/index.d.ts +11 -6
  172. package/dist/rate/src/rate.d.ts +10 -1
  173. package/dist/rate/src/rate.vue.d.ts +3 -3
  174. package/dist/result/index.d.ts +4 -0
  175. package/dist/row/index.d.ts +18 -12
  176. package/dist/row/src/row.d.ts +13 -8
  177. package/dist/row/src/row.vue.d.ts +6 -6
  178. package/dist/scrollbar/index.d.ts +10 -20
  179. package/dist/scrollbar/src/scrollbar.d.ts +16 -4
  180. package/dist/scrollbar/src/scrollbar.vue.d.ts +2 -8
  181. package/dist/select/index.d.ts +15 -3
  182. package/dist/select/src/select.d.ts +4 -1
  183. package/dist/select/src/select.vue +1 -1
  184. package/dist/select/src/select.vue.d.ts +1 -1
  185. package/dist/skeleton/index.d.ts +6 -0
  186. package/dist/skeleton/src/skeleton.d.ts +4 -0
  187. package/dist/sku-selector/index.d.ts +5 -0
  188. package/dist/sku-selector/src/sku-selector.cjs +1 -14
  189. package/dist/sku-selector/src/sku-selector.d.ts +15 -17
  190. package/dist/sku-selector/src/sku-selector.mjs +1 -14
  191. package/dist/sku-selector/src/sku-selector.vue +6 -11
  192. package/dist/slider/index.d.ts +20 -3
  193. package/dist/slider/src/slider.d.ts +15 -0
  194. package/dist/slider/src/slider.vue +5 -0
  195. package/dist/slider/src/slider.vue.d.ts +5 -1
  196. package/dist/smart-address/index.d.ts +11 -6
  197. package/dist/smart-address/src/smart-address.cjs +0 -19
  198. package/dist/smart-address/src/smart-address.d.ts +13 -20
  199. package/dist/smart-address/src/smart-address.mjs +0 -19
  200. package/dist/smart-address/src/smart-address.vue.d.ts +3 -3
  201. package/dist/space/index.cjs +15 -0
  202. package/dist/space/index.d.ts +22 -12
  203. package/dist/space/index.mjs +1 -0
  204. package/dist/spin/index.d.ts +16 -10
  205. package/dist/spin/src/spin.cjs +5 -1
  206. package/dist/spin/src/spin.d.ts +13 -1
  207. package/dist/spin/src/spin.mjs +4 -0
  208. package/dist/spin/src/spin.vue +2 -2
  209. package/dist/spin/src/spin.vue.d.ts +4 -5
  210. package/dist/steps/index.d.ts +13 -0
  211. package/dist/steps/src/step.d.ts +6 -0
  212. package/dist/steps/src/steps.d.ts +3 -0
  213. package/dist/submit-bar/index.d.ts +3 -0
  214. package/dist/submit-bar/src/submit-bar.d.ts +7 -0
  215. package/dist/switch/index.d.ts +5 -0
  216. package/dist/switch/src/switch.d.ts +11 -1
  217. package/dist/table/index.d.ts +14 -4
  218. package/dist/tabs/index.d.ts +11 -0
  219. package/dist/tabs/src/tab-pane.d.ts +3 -0
  220. package/dist/tabs/src/tabs.d.ts +12 -0
  221. package/dist/tag/index.d.ts +7 -0
  222. package/dist/time-picker/index.d.ts +13 -3
  223. package/dist/time-picker/src/time-picker.d.ts +2 -2
  224. package/dist/time-picker/src/time-picker.vue +1 -1
  225. package/dist/time-picker/src/time-picker.vue.d.ts +1 -1
  226. package/dist/time-select/index.d.ts +10 -3
  227. package/dist/time-select/src/time-select.d.ts +2 -2
  228. package/dist/time-select/src/time-select.vue +79 -35
  229. package/dist/time-select/src/time-select.vue.d.ts +1 -1
  230. package/dist/tooltip/index.d.ts +7 -0
  231. package/dist/tooltip/src/tooltip.d.ts +11 -1
  232. package/dist/transfer/index.d.ts +6 -4
  233. package/dist/transfer/src/transfer-panel.vue +78 -27
  234. package/dist/transfer/src/transfer-panel.vue.d.ts +1 -1
  235. package/dist/transfer/src/transfer.d.ts +4 -4
  236. package/dist/transfer/src/transfer.vue +82 -26
  237. package/dist/transfer/src/transfer.vue.d.ts +2 -2
  238. package/dist/tree/index.d.ts +7 -0
  239. package/dist/tree-select/index.d.ts +8 -0
  240. package/dist/typography/index.d.ts +11 -0
  241. package/dist/upload/index.d.ts +10 -0
  242. package/dist/upload/src/upload.d.ts +19 -0
  243. package/dist/viewerjs.d.ts +2 -1
  244. package/dist/waterfall/index.d.ts +6 -0
  245. package/dist/waterfall/src/waterfall.d.ts +25 -7
  246. package/dist/watermark/index.d.ts +11 -54
  247. package/dist/watermark/src/watermark.d.ts +16 -9
  248. package/dist/watermark/src/watermark.vue +27 -5
  249. package/dist/watermark/src/watermark.vue.d.ts +3 -27
  250. package/package.json +6 -5
@@ -38,10 +38,15 @@ const emit = defineEmits(["update:modelValue", "change", "focus", "blur", "clear
38
38
  const ns = useNamespace("time-select");
39
39
  const { t } = useLocale();
40
40
  const inputId = useId();
41
- const { themeStyle } = useComponentTheme("time-select", computed(() => props.themeOverrides));
41
+ const { themeStyle } = useComponentTheme(
42
+ "time-select",
43
+ computed(() => props.themeOverrides)
44
+ );
42
45
  const { form, formItem, validate: triggerValidate } = useFormItem();
43
46
  const { globalSize } = useConfig();
44
- const selectSize = computed(() => props.size || formItem?.size || form?.size || globalSize.value || "default");
47
+ const selectSize = computed(
48
+ () => props.size || formItem?.size || form?.size || globalSize.value || "default"
49
+ );
45
50
  const wrapperRef = ref();
46
51
  const inputRef = ref();
47
52
  const optionsRef = ref();
@@ -56,13 +61,7 @@ const timeOptions = computed(() => {
56
61
  if (props.options && props.options.length > 0) {
57
62
  return props.options;
58
63
  }
59
- return generateTimeOptions(
60
- props.start,
61
- props.end,
62
- props.step,
63
- props.format,
64
- props.includeEndTime
65
- );
64
+ return generateTimeOptions(props.start, props.end, props.step, props.format, props.includeEndTime);
66
65
  });
67
66
  const filteredOptions = computed(() => {
68
67
  let options = timeOptions.value;
@@ -107,9 +106,7 @@ const displayLabel = computed(() => {
107
106
  const showClear = computed(
108
107
  () => props.clearable && !props.disabled && props.modelValue !== void 0 && props.modelValue !== "" && (focused.value || hovering.value)
109
108
  );
110
- const hasValue = computed(
111
- () => props.modelValue !== void 0 && props.modelValue !== ""
112
- );
109
+ const hasValue = computed(() => props.modelValue !== void 0 && props.modelValue !== "");
113
110
  const wrapperClasses = computed(() => [
114
111
  ns.b(),
115
112
  ns.m(selectSize.value),
@@ -139,7 +136,9 @@ const updateDropdownPosition = () => {
139
136
  const scrollToSelected = () => {
140
137
  if (!optionsRef.value || !props.modelValue) return;
141
138
  nextTick(() => {
142
- const selectedEl = optionsRef.value?.querySelector(`.${ns.is("selected", true).slice(1)}`);
139
+ const selectedEl = optionsRef.value?.querySelector(
140
+ `.${ns.is("selected", true).slice(1)}`
141
+ );
143
142
  if (selectedEl && optionsRef.value) {
144
143
  const containerHeight = optionsRef.value.clientHeight;
145
144
  const scrollTop = selectedEl.offsetTop - containerHeight / 2 + selectedEl.offsetHeight / 2;
@@ -295,31 +294,52 @@ const blur = () => {
295
294
  defineExpose({
296
295
  focus,
297
296
  blur,
298
- inputRef: inputRef.value
297
+ inputRef
299
298
  });
300
299
  </script>
301
300
 
302
301
  <template>
303
- <div ref="wrapperRef" :class="wrapperClasses" :style="themeStyle" @mouseenter="handleMouseEnter"
304
- @mouseleave="handleMouseLeave" @click="toggleDropdown">
302
+ <div
303
+ ref="wrapperRef"
304
+ :class="wrapperClasses"
305
+ :style="themeStyle"
306
+ @mouseenter="handleMouseEnter"
307
+ @mouseleave="handleMouseLeave"
308
+ @click="toggleDropdown"
309
+ >
305
310
  <!-- 输入区域 -->
306
311
  <div :class="ns.e('wrapper')">
307
312
  <!-- 前缀图标 -->
308
313
  <span :class="ns.e('prefix')">
309
314
  <slot name="prefix">
310
315
  <svg viewBox="0 0 1024 1024" width="1em" height="1em" :class="ns.e('icon')">
311
- <path fill="currentColor"
312
- d="M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 64a384 384 0 1 0 0 768 384 384 0 0 0 0-768zm0 128a32 32 0 0 1 32 32v192l128 64a32 32 0 0 1-28.864 57.088l-144-72A32 32 0 0 1 480 512V288a32 32 0 0 1 32-32z" />
316
+ <path
317
+ fill="currentColor"
318
+ d="M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 64a384 384 0 1 0 0 768 384 384 0 0 0 0-768zm0 128a32 32 0 0 1 32 32v192l128 64a32 32 0 0 1-28.864 57.088l-144-72A32 32 0 0 1 480 512V288a32 32 0 0 1 32-32z"
319
+ />
313
320
  </svg>
314
321
  </slot>
315
322
  </span>
316
323
 
317
324
  <!-- 输入框 -->
318
- <input ref="inputRef" :id="inputId" :class="ns.e('inner')" :value="editable && visible ? query : ''"
319
- :placeholder="hasValue ? '' : placeholder || t('timeselect.placeholder')" :disabled="disabled"
320
- :readonly="!editable" :name="name" autocomplete="off" role="combobox" :aria-expanded="visible"
321
- :aria-controls="`${inputId}-listbox`" @input="handleInput" @focus="handleFocus" @blur="handleBlur"
322
- @keydown="handleKeydown" />
325
+ <input
326
+ ref="inputRef"
327
+ :id="inputId"
328
+ :class="ns.e('inner')"
329
+ :value="editable && visible ? query : ''"
330
+ :placeholder="hasValue ? '' : placeholder || t('timeselect.placeholder')"
331
+ :disabled="disabled"
332
+ :readonly="!editable"
333
+ :name="name"
334
+ autocomplete="off"
335
+ role="combobox"
336
+ :aria-expanded="visible"
337
+ :aria-controls="`${inputId}-listbox`"
338
+ @input="handleInput"
339
+ @focus="handleFocus"
340
+ @blur="handleBlur"
341
+ @keydown="handleKeydown"
342
+ />
323
343
 
324
344
  <!-- 显示值 -->
325
345
  <span v-if="hasValue && !(editable && visible && query)" :class="ns.e('display-value')">
@@ -331,8 +351,10 @@ defineExpose({
331
351
  <!-- 清空按钮 -->
332
352
  <span v-if="showClear" :class="[ns.e('icon'), ns.e('clear')]" @click.stop="handleClear">
333
353
  <svg viewBox="0 0 1024 1024" width="1em" height="1em">
334
- <path fill="currentColor"
335
- d="M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336L512 457.664z" />
354
+ <path
355
+ fill="currentColor"
356
+ d="M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336L512 457.664z"
357
+ />
336
358
  </svg>
337
359
  </span>
338
360
 
@@ -341,8 +363,10 @@ defineExpose({
341
363
  'is-reverse': visible
342
364
  }]">
343
365
  <svg viewBox="0 0 1024 1024" width="1em" height="1em">
344
- <path fill="currentColor"
345
- d="M831.872 340.864L512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z" />
366
+ <path
367
+ fill="currentColor"
368
+ d="M831.872 340.864L512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"
369
+ />
346
370
  </svg>
347
371
  </span>
348
372
  </span>
@@ -351,9 +375,13 @@ defineExpose({
351
375
  <!-- 下拉框 -->
352
376
  <Teleport to="body" :disabled="!teleported">
353
377
  <Transition :name="ns.b('dropdown')">
354
- <div v-show="visible" :class="[ns.e('dropdown'), popperClass, `is-${effect}`]"
355
- :style="teleported ? dropdownStyle : {}" @mousedown="handleDropdownMousedown"
356
- @mouseup="handleDropdownMouseup">
378
+ <div
379
+ v-show="visible"
380
+ :class="[ns.e('dropdown'), popperClass, `is-${effect}`]"
381
+ :style="teleported ? dropdownStyle : {}"
382
+ @mousedown="handleDropdownMousedown"
383
+ @mouseup="handleDropdownMouseup"
384
+ >
357
385
  <!-- 无数据 -->
358
386
  <div v-if="filteredOptions.length === 0" :class="ns.e('empty')">
359
387
  <slot name="empty">
@@ -362,16 +390,32 @@ defineExpose({
362
390
  </div>
363
391
 
364
392
  <!-- 选项列表 -->
365
- <div v-else ref="optionsRef" :id="`${inputId}-listbox`" :class="ns.e('options')" role="listbox">
366
- <div v-for="(option, index) in filteredOptions" :key="option.value" :class="[ns.e('option'), ns.is('selected', modelValue === option.value), ns.is('disabled', option.disabled), ns.is('hovering', hoveredIndex === index)]" role="option" :aria-selected="modelValue === option.value" @mousedown.prevent
367
- @click="handleOptionClick(option, $event)" @mouseenter="hoveredIndex = index">
393
+ <div
394
+ v-else
395
+ ref="optionsRef"
396
+ :id="`${inputId}-listbox`"
397
+ :class="ns.e('options')"
398
+ role="listbox"
399
+ >
400
+ <div
401
+ v-for="(option, index) in filteredOptions"
402
+ :key="option.value"
403
+ :class="[ns.e('option'), ns.is('selected', modelValue === option.value), ns.is('disabled', option.disabled), ns.is('hovering', hoveredIndex === index)]"
404
+ role="option"
405
+ :aria-selected="modelValue === option.value"
406
+ @mousedown.prevent
407
+ @click="handleOptionClick(option, $event)"
408
+ @mouseenter="hoveredIndex = index"
409
+ >
368
410
  <slot name="option" :option="option">
369
411
  {{ option.label }}
370
412
  </slot>
371
413
  <span v-if="modelValue === option.value" :class="ns.e('option-check')">
372
414
  <svg viewBox="0 0 1024 1024" width="1em" height="1em">
373
- <path fill="currentColor"
374
- d="M406.656 706.944L195.84 496.256a32 32 0 1 0-45.248 45.248l256 256 512-512a32 32 0 0 0-45.248-45.248L406.592 706.944z" />
415
+ <path
416
+ fill="currentColor"
417
+ d="M406.656 706.944L195.84 496.256a32 32 0 1 0-45.248 45.248l256 256 512-512a32 32 0 0 0-45.248-45.248L406.592 706.944z"
418
+ />
375
419
  </svg>
376
420
  </span>
377
421
  </div>
@@ -12,7 +12,7 @@ type __VLS_Slots = {} & {
12
12
  declare const __VLS_component: import("vue").DefineComponent<TimeSelectProps, {
13
13
  focus: () => void;
14
14
  blur: () => void;
15
- inputRef: HTMLInputElement | undefined;
15
+ inputRef: import("vue").Ref<HTMLInputElement | undefined>;
16
16
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
17
17
  clear: () => any;
18
18
  focus: (event: FocusEvent) => any;
@@ -497,3 +497,10 @@ export declare const YhTooltip: import("@yh-ui/utils").SFCWithInstall<{
497
497
  export default YhTooltip;
498
498
  export * from './src/tooltip';
499
499
  export type TooltipInstance = InstanceType<typeof Tooltip>;
500
+ export type YhTooltipInstance = TooltipInstance;
501
+ export type YhTooltipProps = import('./src/tooltip').TooltipProps;
502
+ export type YhTooltipEmits = import('./src/tooltip').TooltipEmits;
503
+ export type YhTooltipSlots = import('./src/tooltip').TooltipSlots;
504
+ export type YhTooltipExpose = import('./src/tooltip').TooltipExpose;
505
+ export type YhTooltipPlacement = import('./src/tooltip').TooltipPlacement;
506
+ export type YhTooltipTrigger = import('./src/tooltip').TooltipTrigger;
@@ -1,4 +1,4 @@
1
- import type { ExtractPropTypes, PropType, StyleValue } from 'vue';
1
+ import type { ExtractPropTypes, PropType, StyleValue, Ref } from 'vue';
2
2
  export declare const tooltipPlacements: readonly ["top", "top-start", "top-end", "bottom", "bottom-start", "bottom-end", "left", "left-start", "left-end", "right", "right-start", "right-end"];
3
3
  export type TooltipPlacement = (typeof tooltipPlacements)[number];
4
4
  export declare const tooltipTriggers: readonly ["hover", "click", "focus", "contextmenu", "manual"];
@@ -157,3 +157,13 @@ export declare const tooltipEmits: {
157
157
  };
158
158
  export type TooltipProps = ExtractPropTypes<typeof tooltipProps>;
159
159
  export type TooltipEmits = typeof tooltipEmits;
160
+ export interface TooltipSlots {
161
+ default?: () => unknown;
162
+ content?: () => unknown;
163
+ }
164
+ export interface TooltipExpose {
165
+ updatePosition: () => Promise<void> | void;
166
+ visible: Ref<boolean>;
167
+ triggerRef: Ref<HTMLElement | undefined>;
168
+ popperRef: Ref<HTMLElement | undefined>;
169
+ }
@@ -1,7 +1,3 @@
1
- /**
2
- * @yh-ui/transfer
3
- * @description Transfer 穿梭框组件
4
- */
5
1
  import type { Plugin } from 'vue';
6
2
  import Transfer from './src/transfer.vue';
7
3
  import TransferPanel from './src/transfer-panel.vue';
@@ -11,3 +7,9 @@ export * from './src/transfer';
11
7
  export default YhTransfer;
12
8
  export type TransferInstance = InstanceType<typeof Transfer>;
13
9
  export type TransferPanelInstance = InstanceType<typeof TransferPanel>;
10
+ export type YhTransferInstance = TransferInstance;
11
+ export type YhTransferPanelInstance = TransferPanelInstance;
12
+ export type YhTransferProps = import('./src/transfer').TransferProps;
13
+ export type YhTransferEmits = import('./src/transfer').TransferEmits;
14
+ export type YhTransferExpose = import('./src/transfer').TransferExpose;
15
+ export type YhTransferPanelExpose = import('./src/transfer').TransferPanelExpose;
@@ -147,7 +147,7 @@ provide(transferPanelContextKey, {
147
147
  });
148
148
  defineExpose({
149
149
  clearChecked,
150
- query: query.value
150
+ query
151
151
  });
152
152
  watch(query, () => {
153
153
  scrollTop.value = 0;
@@ -162,20 +162,31 @@ watch(query, () => {
162
162
  <!-- 头部 -->
163
163
  <div :class="ns.e('header')">
164
164
  <slot name="header">
165
- <div :class="[ns.e('check-all'), {
165
+ <div
166
+ :class="[ns.e('check-all'), {
166
167
  'is-disabled': disabled || checkableData.length === 0
167
168
  }]"
168
- @click="handleCheckAll">
169
- <span :class="[ns.e('item-checkbox'), {
169
+ @click="handleCheckAll"
170
+ >
171
+ <span
172
+ :class="[ns.e('item-checkbox'), {
170
173
  'is-checked': isAllChecked,
171
174
  'is-indeterminate': isIndeterminate
172
- }]">
175
+ }]"
176
+ >
173
177
  <!-- 选中图标 -->
174
178
  <svg v-if="isAllChecked" :class="ns.e('item-checkbox__icon')" viewBox="0 0 1024 1024">
175
- <path fill="currentColor" d="M406.4 726.4l-236.8-236.8 57.6-57.6 179.2 179.2 390.4-390.4 57.6 57.6z" />
179
+ <path
180
+ fill="currentColor"
181
+ d="M406.4 726.4l-236.8-236.8 57.6-57.6 179.2 179.2 390.4-390.4 57.6 57.6z"
182
+ />
176
183
  </svg>
177
184
  <!-- 半选图标 -->
178
- <svg v-if="isIndeterminate && !isAllChecked" :class="ns.e('item-checkbox__icon')" viewBox="0 0 1024 1024">
185
+ <svg
186
+ v-if="isIndeterminate && !isAllChecked"
187
+ :class="ns.e('item-checkbox__icon')"
188
+ viewBox="0 0 1024 1024"
189
+ >
179
190
  <path fill="currentColor" d="M192 480h640v64H192z" />
180
191
  </svg>
181
192
  </span>
@@ -198,8 +209,13 @@ watch(query, () => {
198
209
 
199
210
  <!-- 搜索框 -->
200
211
  <div v-if="filterable" :class="ns.e('filter')">
201
- <input v-model="query" type="text" :class="ns.e('filter-input')"
202
- :placeholder="filterPlaceholder || t('transfer.filterPlaceholder')" :disabled="disabled" />
212
+ <input
213
+ v-model="query"
214
+ type="text"
215
+ :class="ns.e('filter-input')"
216
+ :placeholder="filterPlaceholder || t('transfer.filterPlaceholder')"
217
+ :disabled="disabled"
218
+ />
203
219
  </div>
204
220
 
205
221
  <!-- 列表区域 -->
@@ -208,10 +224,14 @@ watch(query, () => {
208
224
  <div v-if="filteredData.length === 0" :class="ns.e('empty')">
209
225
  <slot name="empty">
210
226
  <svg :class="ns.e('empty-icon')" viewBox="0 0 1024 1024">
211
- <path fill="currentColor"
212
- d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" />
213
- <path fill="currentColor"
214
- d="M464 336a48 48 0 1096 0 48 48 0 10-96 0zM464 512v176c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V512c0-8.8-7.2-16-16-16h-64c-8.8 0-16 7.2-16 16z" />
227
+ <path
228
+ fill="currentColor"
229
+ d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"
230
+ />
231
+ <path
232
+ fill="currentColor"
233
+ d="M464 336a48 48 0 1096 0 48 48 0 10-96 0zM464 512v176c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V512c0-8.8-7.2-16-16-16h-64c-8.8 0-16 7.2-16 16z"
234
+ />
215
235
  </svg>
216
236
  <span :class="ns.e('empty-text')">{{ emptyText || t("transfer.noData") }}</span>
217
237
  </slot>
@@ -219,29 +239,48 @@ watch(query, () => {
219
239
 
220
240
  <!-- 虚拟滚动列表 -->
221
241
  <template v-else-if="virtual">
222
- <div ref="virtualWrapperRef" :class="ns.e('virtual-wrapper')" :style="{
242
+ <div
243
+ ref="virtualWrapperRef"
244
+ :class="ns.e('virtual-wrapper')"
245
+ :style="{
223
246
  height: height + 'px'
224
247
  }"
225
- @scroll="handleVirtualScroll">
248
+ @scroll="handleVirtualScroll"
249
+ >
226
250
  <div :style="{
227
251
  height: virtualConfig.totalHeight + 'px',
228
252
  position: 'relative'
229
253
  }">
230
- <ul :class="ns.e('list')" :style="{
254
+ <ul
255
+ :class="ns.e('list')"
256
+ :style="{
231
257
  transform: `translateY(${virtualConfig.offsetY}px)`
232
- }">
233
- <li v-for="item in displayItems" :key="getKey(item)" :class="[ns.e('item'), {
258
+ }"
259
+ >
260
+ <li
261
+ v-for="item in displayItems"
262
+ :key="getKey(item)"
263
+ :class="[ns.e('item'), {
234
264
  'is-checked': isChecked(getKey(item)),
235
265
  'is-disabled': isItemDisabled(item)
236
- }]" :style="{
266
+ }]"
267
+ :style="{
237
268
  height: itemHeight + 'px'
238
- }" @click="handleItemClick(item)">
269
+ }"
270
+ @click="handleItemClick(item)"
271
+ >
239
272
  <span :class="[ns.e('item-checkbox'), {
240
273
  'is-checked': isChecked(getKey(item))
241
274
  }]">
242
- <svg v-if="isChecked(getKey(item))" :class="ns.e('item-checkbox__icon')" viewBox="0 0 1024 1024">
243
- <path fill="currentColor"
244
- d="M406.4 726.4l-236.8-236.8 57.6-57.6 179.2 179.2 390.4-390.4 57.6 57.6z" />
275
+ <svg
276
+ v-if="isChecked(getKey(item))"
277
+ :class="ns.e('item-checkbox__icon')"
278
+ viewBox="0 0 1024 1024"
279
+ >
280
+ <path
281
+ fill="currentColor"
282
+ d="M406.4 726.4l-236.8-236.8 57.6-57.6 179.2 179.2 390.4-390.4 57.6 57.6z"
283
+ />
245
284
  </svg>
246
285
  </span>
247
286
  <span :class="ns.e('item-label')">
@@ -255,15 +294,27 @@ watch(query, () => {
255
294
 
256
295
  <!-- 普通列表 -->
257
296
  <ul v-else :class="ns.e('list')">
258
- <li v-for="item in displayItems" :key="getKey(item)" :class="[ns.e('item'), {
297
+ <li
298
+ v-for="item in displayItems"
299
+ :key="getKey(item)"
300
+ :class="[ns.e('item'), {
259
301
  'is-checked': isChecked(getKey(item)),
260
302
  'is-disabled': isItemDisabled(item)
261
- }]" @click="handleItemClick(item)">
303
+ }]"
304
+ @click="handleItemClick(item)"
305
+ >
262
306
  <span :class="[ns.e('item-checkbox'), {
263
307
  'is-checked': isChecked(getKey(item))
264
308
  }]">
265
- <svg v-if="isChecked(getKey(item))" :class="ns.e('item-checkbox__icon')" viewBox="0 0 1024 1024">
266
- <path fill="currentColor" d="M406.4 726.4l-236.8-236.8 57.6-57.6 179.2 179.2 390.4-390.4 57.6 57.6z" />
309
+ <svg
310
+ v-if="isChecked(getKey(item))"
311
+ :class="ns.e('item-checkbox__icon')"
312
+ viewBox="0 0 1024 1024"
313
+ >
314
+ <path
315
+ fill="currentColor"
316
+ d="M406.4 726.4l-236.8-236.8 57.6-57.6 179.2 179.2 390.4-390.4 57.6 57.6z"
317
+ />
267
318
  </svg>
268
319
  </span>
269
320
  <span :class="ns.e('item-label')">
@@ -17,7 +17,7 @@ type __VLS_Slots = {} & {
17
17
  };
18
18
  declare const __VLS_component: import("vue").DefineComponent<TransferPanelProps, {
19
19
  clearChecked: () => void;
20
- query: string;
20
+ query: import("vue").Ref<string>;
21
21
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
22
22
  "update:checked": (value: TransferKey[]) => any;
23
23
  "checked-change": (value: TransferKey[], movedKeys?: TransferKey[] | undefined) => any;
@@ -2,7 +2,7 @@
2
2
  * Transfer Types & Props
3
3
  * @description 穿梭框组件类型定义,严格类型化
4
4
  */
5
- import type { InjectionKey, VNode } from 'vue';
5
+ import type { InjectionKey, Ref, VNode } from 'vue';
6
6
  /**
7
7
  * 穿梭框尺寸
8
8
  */
@@ -114,7 +114,7 @@ export interface TransferEmits {
114
114
  */
115
115
  export interface TransferPanelExpose {
116
116
  clearChecked: () => void;
117
- query: string;
117
+ query: Ref<string>;
118
118
  }
119
119
  /**
120
120
  * Transfer Expose 定义
@@ -122,8 +122,8 @@ export interface TransferPanelExpose {
122
122
  export interface TransferExpose {
123
123
  clearLeftChecked: () => void;
124
124
  clearRightChecked: () => void;
125
- leftPanel: TransferPanelExpose | undefined;
126
- rightPanel: TransferPanelExpose | undefined;
125
+ leftPanel: Ref<TransferPanelExpose | undefined>;
126
+ rightPanel: Ref<TransferPanelExpose | undefined>;
127
127
  }
128
128
  /**
129
129
  * Transfer Panel Props 定义
@@ -38,7 +38,10 @@ const emit = defineEmits(["update:modelValue", "change", "left-check-change", "r
38
38
  const ns = useNamespace("transfer");
39
39
  const { t } = useLocale();
40
40
  const { globalSize } = useConfig();
41
- const { themeStyle } = useComponentTheme("transfer", computed(() => props.themeOverrides));
41
+ const { themeStyle } = useComponentTheme(
42
+ "transfer",
43
+ computed(() => props.themeOverrides)
44
+ );
42
45
  const leftPanelRef = ref();
43
46
  const rightPanelRef = ref();
44
47
  const leftChecked = ref([...props.leftDefaultChecked]);
@@ -61,7 +64,9 @@ const rightData = computed(() => {
61
64
  const leftTitle = computed(() => props.leftTitle || props.titles?.[0] || t("transfer.titles.0"));
62
65
  const rightTitle = computed(() => props.rightTitle || props.titles?.[1] || t("transfer.titles.1"));
63
66
  const leftEmptyText = computed(() => props.leftEmptyText || props.emptyText || t("transfer.noData"));
64
- const rightEmptyText = computed(() => props.rightEmptyText || props.emptyText || t("transfer.noData"));
67
+ const rightEmptyText = computed(
68
+ () => props.rightEmptyText || props.emptyText || t("transfer.noData")
69
+ );
65
70
  const filterPlaceholder = computed(() => props.filterPlaceholder || t("transfer.filterPlaceholder"));
66
71
  const canMoveToRight = computed(() => leftChecked.value.length > 0);
67
72
  const canMoveToLeft = computed(() => rightChecked.value.length > 0);
@@ -123,18 +128,33 @@ watch(
123
128
  defineExpose({
124
129
  clearLeftChecked,
125
130
  clearRightChecked,
126
- leftPanel: leftPanelRef.value,
127
- rightPanel: rightPanelRef.value
131
+ leftPanel: leftPanelRef,
132
+ rightPanel: rightPanelRef
128
133
  });
129
134
  </script>
130
135
 
131
136
  <template>
132
137
  <div :class="containerClasses" :style="themeStyle">
133
- <TransferPanel ref="leftPanelRef" :data="leftData" :checked="leftChecked" :title="leftTitle"
134
- :filterable="filterable" :filter-placeholder="filterPlaceholder" :filter-method="filterMethod"
135
- :disabled="disabled" :size="size" :props="props.props" :render-content="renderContent" :virtual="virtual"
136
- :item-height="itemHeight" :height="height" :show-all-checkbox="showAllCheckbox" :empty-text="leftEmptyText"
137
- @update:checked="handleLeftCheckedChange" @checked-change="handleLeftCheckedChange">
138
+ <TransferPanel
139
+ ref="leftPanelRef"
140
+ :data="leftData"
141
+ :checked="leftChecked"
142
+ :title="leftTitle"
143
+ :filterable="filterable"
144
+ :filter-placeholder="filterPlaceholder"
145
+ :filter-method="filterMethod"
146
+ :disabled="disabled"
147
+ :size="size"
148
+ :props="props.props"
149
+ :render-content="renderContent"
150
+ :virtual="virtual"
151
+ :item-height="itemHeight"
152
+ :height="height"
153
+ :show-all-checkbox="showAllCheckbox"
154
+ :empty-text="leftEmptyText"
155
+ @update:checked="handleLeftCheckedChange"
156
+ @checked-change="handleLeftCheckedChange"
157
+ >
138
158
  <template v-if="$slots['left-header']" #header>
139
159
  <slot name="left-header" />
140
160
  </template>
@@ -150,37 +170,73 @@ defineExpose({
150
170
  </TransferPanel>
151
171
 
152
172
  <div :class="ns.e('buttons')">
153
- <slot name="buttons" :move-to-left="moveToLeft" :move-to-right="moveToRight" :left-checked="leftChecked"
154
- :right-checked="rightChecked">
155
- <button type="button" :class="[ns.e('button'), {
173
+ <slot
174
+ name="buttons"
175
+ :move-to-left="moveToLeft"
176
+ :move-to-right="moveToRight"
177
+ :left-checked="leftChecked"
178
+ :right-checked="rightChecked"
179
+ >
180
+ <button
181
+ type="button"
182
+ :class="[ns.e('button'), {
156
183
  'is-disabled': !canMoveToRight || disabled
157
184
  }]"
158
- :disabled="!canMoveToRight || disabled" @click="moveToRight">
185
+ :disabled="!canMoveToRight || disabled"
186
+ @click="moveToRight"
187
+ >
159
188
  <svg :class="ns.e('button__icon')" viewBox="0 0 1024 1024">
160
- <path fill="currentColor"
161
- d="M340.864 149.312a30.592 30.592 0 000 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0042.752 43.458l355.136-362.88a30.592 30.592 0 000-43.52L383.616 106.56a30.592 30.592 0 00-42.752 42.752z" />
189
+ <path
190
+ fill="currentColor"
191
+ d="M340.864 149.312a30.592 30.592 0 000 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0042.752 43.458l355.136-362.88a30.592 30.592 0 000-43.52L383.616 106.56a30.592 30.592 0 00-42.752 42.752z"
192
+ />
162
193
  </svg>
163
- <span v-if="buttonTexts && buttonTexts[0]" :class="ns.e('button__text')">{{ buttonTexts[0] }}</span>
194
+ <span v-if="buttonTexts && buttonTexts[0]" :class="ns.e('button__text')">{{
195
+ buttonTexts[0]
196
+ }}</span>
164
197
  </button>
165
198
 
166
- <button type="button" :class="[ns.e('button'), {
199
+ <button
200
+ type="button"
201
+ :class="[ns.e('button'), {
167
202
  'is-disabled': !canMoveToLeft || disabled
168
203
  }]"
169
- :disabled="!canMoveToLeft || disabled" @click="moveToLeft">
204
+ :disabled="!canMoveToLeft || disabled"
205
+ @click="moveToLeft"
206
+ >
170
207
  <svg :class="ns.e('button__icon')" viewBox="0 0 1024 1024">
171
- <path fill="currentColor"
172
- d="M685.248 104.256a30.592 30.592 0 010 42.752L373.376 512l311.872 364.992a30.592 30.592 0 11-42.752 43.458L287.38 555.52a30.592 30.592 0 010-43.52l355.136-364.93a30.592 30.592 0 0142.752 0z" />
208
+ <path
209
+ fill="currentColor"
210
+ d="M685.248 104.256a30.592 30.592 0 010 42.752L373.376 512l311.872 364.992a30.592 30.592 0 11-42.752 43.458L287.38 555.52a30.592 30.592 0 010-43.52l355.136-364.93a30.592 30.592 0 0142.752 0z"
211
+ />
173
212
  </svg>
174
- <span v-if="buttonTexts && buttonTexts[1]" :class="ns.e('button__text')">{{ buttonTexts[1] }}</span>
213
+ <span v-if="buttonTexts && buttonTexts[1]" :class="ns.e('button__text')">{{
214
+ buttonTexts[1]
215
+ }}</span>
175
216
  </button>
176
217
  </slot>
177
218
  </div>
178
219
 
179
- <TransferPanel ref="rightPanelRef" :data="rightData" :checked="rightChecked" :title="rightTitle"
180
- :filterable="filterable" :filter-placeholder="filterPlaceholder" :filter-method="filterMethod"
181
- :disabled="disabled" :size="size" :props="props.props" :render-content="renderContent" :virtual="virtual"
182
- :item-height="itemHeight" :height="height" :show-all-checkbox="showAllCheckbox" :empty-text="rightEmptyText"
183
- @update:checked="handleRightCheckedChange" @checked-change="handleRightCheckedChange">
220
+ <TransferPanel
221
+ ref="rightPanelRef"
222
+ :data="rightData"
223
+ :checked="rightChecked"
224
+ :title="rightTitle"
225
+ :filterable="filterable"
226
+ :filter-placeholder="filterPlaceholder"
227
+ :filter-method="filterMethod"
228
+ :disabled="disabled"
229
+ :size="size"
230
+ :props="props.props"
231
+ :render-content="renderContent"
232
+ :virtual="virtual"
233
+ :item-height="itemHeight"
234
+ :height="height"
235
+ :show-all-checkbox="showAllCheckbox"
236
+ :empty-text="rightEmptyText"
237
+ @update:checked="handleRightCheckedChange"
238
+ @checked-change="handleRightCheckedChange"
239
+ >
184
240
  <template v-if="$slots['right-header']" #header>
185
241
  <slot name="right-header" />
186
242
  </template>
@@ -31,8 +31,8 @@ type __VLS_Slots = {} & {
31
31
  declare const __VLS_component: import("vue").DefineComponent<TransferProps, {
32
32
  clearLeftChecked: () => void;
33
33
  clearRightChecked: () => void;
34
- leftPanel: TransferPanelExpose | undefined;
35
- rightPanel: TransferPanelExpose | undefined;
34
+ leftPanel: import("vue").Ref<TransferPanelExpose | undefined>;
35
+ rightPanel: import("vue").Ref<TransferPanelExpose | undefined>;
36
36
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
37
37
  change: (value: TransferKey[], direction: import("./transfer").TransferDirection, movedKeys: TransferKey[]) => any;
38
38
  "update:modelValue": (value: TransferKey[]) => any;
@@ -627,3 +627,10 @@ export default YhTree;
627
627
  export * from './src/tree';
628
628
  export type TreeInstance = InstanceType<typeof Tree>;
629
629
  export type TreeNodeInstance = InstanceType<typeof TreeNode>;
630
+ export type YhTreeInstance = TreeInstance;
631
+ export type YhTreeNodeInstance = TreeNodeInstance;
632
+ export type YhTreeProps = import('./src/tree').TreeProps;
633
+ export type YhTreeEmits = import('./src/tree').TreeEmits;
634
+ export type YhTreeNodeData = import('./src/tree').TreeNodeData;
635
+ export type YhTreeNode = import('./src/tree').TreeNode;
636
+ export type YhTreeNodeSlotData = import('./src/tree').TreeNodeSlotData;