@yh-ui/components 1.0.26 → 1.0.30

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 (417) hide show
  1. package/dist/affix/index.d.ts +3 -3
  2. package/dist/affix/src/affix.css +2 -448
  3. package/dist/affix/src/affix.vue +2 -448
  4. package/dist/affix/src/affix.vue.d.ts +1 -1
  5. package/dist/ai-action-group/src/ai-action-group.css +2 -448
  6. package/dist/ai-action-group/src/ai-action-group.vue +2 -448
  7. package/dist/ai-agent-card/src/ai-agent-card.css +2 -448
  8. package/dist/ai-agent-card/src/ai-agent-card.vue +2 -448
  9. package/dist/ai-artifacts/index.d.ts +3 -3
  10. package/dist/ai-artifacts/src/ai-artifacts.css +2 -448
  11. package/dist/ai-artifacts/src/ai-artifacts.vue +2 -448
  12. package/dist/ai-artifacts/src/ai-artifacts.vue.d.ts +1 -1
  13. package/dist/ai-attachments/src/ai-attachments.css +2 -448
  14. package/dist/ai-attachments/src/ai-attachments.vue +2 -448
  15. package/dist/ai-bubble/src/ai-bubble.css +2 -448
  16. package/dist/ai-bubble/src/ai-bubble.vue +33 -455
  17. package/dist/ai-bubble-list/src/ai-bubble-list.css +2 -448
  18. package/dist/ai-bubble-list/src/ai-bubble-list.vue +2 -448
  19. package/dist/ai-chat/src/ai-chat.css +2 -448
  20. package/dist/ai-chat/src/ai-chat.vue +2 -448
  21. package/dist/ai-code-block/src/ai-code-block.css +2 -448
  22. package/dist/ai-code-block/src/ai-code-block.vue +2 -448
  23. package/dist/ai-code-editor/src/ai-code-editor.css +2 -448
  24. package/dist/ai-code-editor/src/ai-code-editor.vue +36 -474
  25. package/dist/ai-code-runner/src/ai-code-runner.css +2 -448
  26. package/dist/ai-code-runner/src/ai-code-runner.vue +2 -449
  27. package/dist/ai-code-runner/src/webcontainer.cjs +3 -0
  28. package/dist/ai-code-runner/src/webcontainer.mjs +3 -0
  29. package/dist/ai-conversations/src/ai-conversations.css +2 -448
  30. package/dist/ai-conversations/src/ai-conversations.vue +2 -448
  31. package/dist/ai-editor-sender/src/ai-editor-sender.css +2 -448
  32. package/dist/ai-editor-sender/src/ai-editor-sender.vue +2 -448
  33. package/dist/ai-file-card/src/ai-file-card.css +2 -448
  34. package/dist/ai-file-card/src/ai-file-card.vue +2 -448
  35. package/dist/ai-mention/src/ai-mention.css +2 -448
  36. package/dist/ai-mention/src/ai-mention.vue +2 -448
  37. package/dist/ai-mermaid/src/ai-mermaid.css +84 -448
  38. package/dist/ai-mermaid/src/ai-mermaid.d.ts +6 -2
  39. package/dist/ai-mermaid/src/ai-mermaid.vue +277 -457
  40. package/dist/ai-prompts/src/ai-prompts.css +2 -448
  41. package/dist/ai-prompts/src/ai-prompts.vue +2 -448
  42. package/dist/ai-provider/index.d.ts +181 -55
  43. package/dist/ai-provider/src/ai-provider.vue.d.ts +55 -4
  44. package/dist/ai-sender/src/ai-sender.css +2 -448
  45. package/dist/ai-sender/src/ai-sender.vue +2 -448
  46. package/dist/ai-sources/src/ai-sources.css +2 -448
  47. package/dist/ai-sources/src/ai-sources.vue +2 -448
  48. package/dist/ai-thinking/src/ai-thinking.css +2 -448
  49. package/dist/ai-thinking/src/ai-thinking.vue +2 -448
  50. package/dist/ai-thought-chain/src/ai-thought-chain.css +2 -448
  51. package/dist/ai-thought-chain/src/ai-thought-chain.vue +34 -455
  52. package/dist/ai-voice-trigger/src/ai-voice-trigger.css +3 -449
  53. package/dist/ai-voice-trigger/src/ai-voice-trigger.vue +3 -449
  54. package/dist/ai-welcome/src/ai-welcome.css +2 -448
  55. package/dist/ai-welcome/src/ai-welcome.vue +2 -448
  56. package/dist/alert/src/alert.css +2 -448
  57. package/dist/alert/src/alert.vue +2 -448
  58. package/dist/autocomplete/index.d.ts +251 -20
  59. package/dist/autocomplete/src/autocomplete.css +2 -448
  60. package/dist/autocomplete/src/autocomplete.vue +2 -448
  61. package/dist/autocomplete/src/autocomplete.vue.d.ts +56 -11
  62. package/dist/avatar/index.d.ts +131 -8
  63. package/dist/avatar/src/avatar.css +2 -448
  64. package/dist/avatar/src/avatar.vue +2 -448
  65. package/dist/avatar/src/avatar.vue.d.ts +31 -4
  66. package/dist/back-top/index.d.ts +3 -3
  67. package/dist/back-top/src/back-top.css +2 -448
  68. package/dist/back-top/src/back-top.vue +2 -448
  69. package/dist/back-top/src/back-top.vue.d.ts +1 -1
  70. package/dist/badge/index.d.ts +115 -4
  71. package/dist/badge/src/badge.css +2 -448
  72. package/dist/badge/src/badge.vue +2 -448
  73. package/dist/badge/src/badge.vue.d.ts +33 -2
  74. package/dist/breadcrumb/src/breadcrumb-item.vue +2 -448
  75. package/dist/breadcrumb/src/breadcrumb.css +2 -448
  76. package/dist/breadcrumb/src/breadcrumb.vue +2 -448
  77. package/dist/button/index.d.ts +212 -8
  78. package/dist/button/src/button.css +2 -448
  79. package/dist/button/src/button.vue +2 -448
  80. package/dist/button/src/button.vue.d.ts +50 -5
  81. package/dist/calendar/src/calendar.css +89 -451
  82. package/dist/calendar/src/calendar.vue +90 -452
  83. package/dist/card/index.d.ts +115 -4
  84. package/dist/card/src/card.css +2 -448
  85. package/dist/card/src/card.vue +2 -448
  86. package/dist/card/src/card.vue.d.ts +33 -2
  87. package/dist/carousel/src/carousel.css +2 -448
  88. package/dist/carousel/src/carousel.vue +2 -448
  89. package/dist/cascader/index.d.ts +405 -54
  90. package/dist/cascader/src/cascader-panel.vue +3 -449
  91. package/dist/cascader/src/cascader-panel.vue.d.ts +34 -5
  92. package/dist/cascader/src/cascader.css +3 -449
  93. package/dist/cascader/src/cascader.vue +3 -449
  94. package/dist/cascader/src/cascader.vue.d.ts +66 -11
  95. package/dist/category-nav/src/category-nav.css +2 -448
  96. package/dist/category-nav/src/category-nav.vue +2 -448
  97. package/dist/checkbox/index.d.ts +293 -20
  98. package/dist/checkbox/src/checkbox-group.css +2 -448
  99. package/dist/checkbox/src/checkbox-group.vue +2 -448
  100. package/dist/checkbox/src/checkbox-group.vue.d.ts +32 -5
  101. package/dist/checkbox/src/checkbox.css +2 -448
  102. package/dist/checkbox/src/checkbox.vue +2 -448
  103. package/dist/checkbox/src/checkbox.vue.d.ts +39 -6
  104. package/dist/col/src/col.css +2 -448
  105. package/dist/col/src/col.vue +2 -448
  106. package/dist/color-picker/src/alpha-slider.vue.d.ts +13 -4
  107. package/dist/color-picker/src/color-picker.css +5 -451
  108. package/dist/color-picker/src/color-picker.vue +5 -451
  109. package/dist/color-picker/src/hue-slider.vue.d.ts +13 -4
  110. package/dist/color-picker/src/sv-panel.vue.d.ts +13 -4
  111. package/dist/container/index.d.ts +123 -18
  112. package/dist/container/src/aside.vue +2 -448
  113. package/dist/container/src/aside.vue.d.ts +23 -2
  114. package/dist/container/src/container.css +2 -448
  115. package/dist/container/src/container.vue +2 -448
  116. package/dist/container/src/container.vue.d.ts +10 -1
  117. package/dist/container/src/footer.vue +2 -448
  118. package/dist/container/src/footer.vue.d.ts +23 -2
  119. package/dist/container/src/header.vue +2 -448
  120. package/dist/container/src/header.vue.d.ts +23 -2
  121. package/dist/container/src/main.vue +2 -448
  122. package/dist/container/src/main.vue.d.ts +10 -1
  123. package/dist/countdown/src/countdown.css +2 -448
  124. package/dist/countdown/src/countdown.vue +2 -448
  125. package/dist/coupon-card/src/coupon-card.css +2 -448
  126. package/dist/coupon-card/src/coupon-card.vue +2 -448
  127. package/dist/date-picker/index.d.ts +19 -21
  128. package/dist/date-picker/src/date-picker.css +23 -451
  129. package/dist/date-picker/src/date-picker.vue +115 -467
  130. package/dist/date-picker/src/date-picker.vue.d.ts +10 -12
  131. package/dist/date-picker/src/date-table.vue.d.ts +14 -5
  132. package/dist/date-picker/src/month-table.vue.d.ts +14 -5
  133. package/dist/date-picker/src/quarter-table.vue.d.ts +14 -5
  134. package/dist/date-picker/src/year-table.vue.d.ts +14 -5
  135. package/dist/descriptions/src/description-item.vue +3 -449
  136. package/dist/descriptions/src/descriptions.css +3 -449
  137. package/dist/descriptions/src/descriptions.vue +3 -449
  138. package/dist/dialog/index.cjs +7 -1
  139. package/dist/dialog/index.d.ts +3 -3
  140. package/dist/dialog/index.mjs +5 -1
  141. package/dist/dialog/src/dialog.css +2 -448
  142. package/dist/dialog/src/dialog.vue +2 -448
  143. package/dist/dialog/src/dialog.vue.d.ts +1 -1
  144. package/dist/dialog/src/method.cjs +14 -4
  145. package/dist/dialog/src/method.d.ts +2 -0
  146. package/dist/dialog/src/method.mjs +12 -3
  147. package/dist/dialog/src/use-dialog.cjs +5 -1
  148. package/dist/dialog/src/use-dialog.mjs +5 -1
  149. package/dist/divider/src/divider.css +2 -448
  150. package/dist/divider/src/divider.vue +2 -448
  151. package/dist/drawer/index.d.ts +3 -3
  152. package/dist/drawer/src/drawer.cjs +1 -1
  153. package/dist/drawer/src/drawer.css +2 -448
  154. package/dist/drawer/src/drawer.d.ts +1 -1
  155. package/dist/drawer/src/drawer.mjs +1 -1
  156. package/dist/drawer/src/drawer.vue +15 -449
  157. package/dist/drawer/src/drawer.vue.d.ts +2 -2
  158. package/dist/dropdown/src/dropdown-item.vue +2 -448
  159. package/dist/dropdown/src/dropdown-menu.vue +2 -448
  160. package/dist/dropdown/src/dropdown.css +2 -448
  161. package/dist/dropdown/src/dropdown.vue +2 -448
  162. package/dist/empty/index.d.ts +55 -4
  163. package/dist/empty/src/empty.css +2 -448
  164. package/dist/empty/src/empty.vue +2 -448
  165. package/dist/empty/src/empty.vue.d.ts +23 -2
  166. package/dist/filter-bar/src/filter-bar.css +2 -448
  167. package/dist/filter-bar/src/filter-bar.vue +2 -448
  168. package/dist/form/index.d.ts +14 -14
  169. package/dist/form/src/form-item.vue +8 -449
  170. package/dist/form/src/form-schema.vue.d.ts +5 -5
  171. package/dist/form/src/form.css +8 -449
  172. package/dist/form/src/form.vue +8 -449
  173. package/dist/form/src/form.vue.d.ts +2 -2
  174. package/dist/gantt-chart/index.d.ts +218 -20
  175. package/dist/gantt-chart/src/gantt-chart.css +14 -460
  176. package/dist/gantt-chart/src/gantt-chart.vue +14 -460
  177. package/dist/gantt-chart/src/gantt-chart.vue.d.ts +55 -10
  178. package/dist/grid/index.d.ts +167 -8
  179. package/dist/grid/src/grid-item.vue.d.ts +27 -2
  180. package/dist/grid/src/grid.css +2 -448
  181. package/dist/grid/src/grid.vue +2 -448
  182. package/dist/grid/src/grid.vue.d.ts +33 -2
  183. package/dist/icon/src/icon.css +2 -448
  184. package/dist/icon/src/icon.vue +2 -448
  185. package/dist/icon/src/icons/index.cjs +12 -2
  186. package/dist/icon/src/icons/index.d.ts +2 -0
  187. package/dist/icon/src/icons/index.mjs +12 -0
  188. package/dist/image/index.d.ts +12 -12
  189. package/dist/image/src/image-viewer.vue +13 -453
  190. package/dist/image/src/image.css +2 -448
  191. package/dist/image/src/image.vue +14 -454
  192. package/dist/image/src/image.vue.d.ts +6 -6
  193. package/dist/image-magnifier/index.d.ts +3 -3
  194. package/dist/image-magnifier/src/image-magnifier.css +2 -448
  195. package/dist/image-magnifier/src/image-magnifier.vue +2 -448
  196. package/dist/image-magnifier/src/image-magnifier.vue.d.ts +1 -1
  197. package/dist/index.cjs +1 -1
  198. package/dist/index.d.ts +2 -2
  199. package/dist/index.mjs +2 -0
  200. package/dist/infinite-scroll/index.d.ts +3 -3
  201. package/dist/infinite-scroll/src/infinite-scroll.css +2 -448
  202. package/dist/infinite-scroll/src/infinite-scroll.vue +36 -457
  203. package/dist/infinite-scroll/src/infinite-scroll.vue.d.ts +1 -1
  204. package/dist/input/index.d.ts +469 -28
  205. package/dist/input/src/input.css +6 -448
  206. package/dist/input/src/input.vue +6 -448
  207. package/dist/input/src/input.vue.d.ts +74 -15
  208. package/dist/input-number/index.d.ts +273 -18
  209. package/dist/input-number/src/input-number.css +2 -448
  210. package/dist/input-number/src/input-number.vue +2 -448
  211. package/dist/input-number/src/input-number.vue.d.ts +53 -10
  212. package/dist/input-tag/index.d.ts +306 -24
  213. package/dist/input-tag/src/input-tag.css +46 -448
  214. package/dist/input-tag/src/input-tag.d.ts +1 -1
  215. package/dist/input-tag/src/input-tag.vue +47 -449
  216. package/dist/input-tag/src/input-tag.vue.d.ts +68 -13
  217. package/dist/loading/index.cjs +1 -0
  218. package/dist/loading/index.mjs +2 -1
  219. package/dist/loading/src/loading.css +2 -448
  220. package/dist/loading/src/service.cjs +56 -16
  221. package/dist/loading/src/service.d.ts +1 -0
  222. package/dist/loading/src/service.mjs +60 -16
  223. package/dist/lucky-draw/src/lucky-draw.css +2 -448
  224. package/dist/lucky-draw/src/lucky-draw.vue +2 -448
  225. package/dist/markdown-it.cjs +10 -6
  226. package/dist/markdown-it.d.ts +2 -2
  227. package/dist/markdown-it.mjs +12 -3
  228. package/dist/marquee/src/marquee.css +2 -448
  229. package/dist/marquee/src/marquee.vue +7 -451
  230. package/dist/mention/index.d.ts +370 -28
  231. package/dist/mention/src/mention.css +2 -448
  232. package/dist/mention/src/mention.vue +2 -448
  233. package/dist/mention/src/mention.vue.d.ts +80 -15
  234. package/dist/menu/src/menu-item-group.vue +2 -449
  235. package/dist/menu/src/menu-item.vue +2 -449
  236. package/dist/menu/src/menu-recursive-item.vue +2 -449
  237. package/dist/menu/src/menu-recursive-item.vue.d.ts +10 -1
  238. package/dist/menu/src/menu.css +2 -449
  239. package/dist/menu/src/menu.vue +2 -449
  240. package/dist/menu/src/sub-menu.vue +2 -449
  241. package/dist/message/index.cjs +9 -3
  242. package/dist/message/index.d.ts +1 -1
  243. package/dist/message/index.mjs +7 -2
  244. package/dist/message/src/message.css +2 -448
  245. package/dist/message/src/message.d.ts +16 -7
  246. package/dist/message/src/message.vue +2 -448
  247. package/dist/message/src/message.vue.d.ts +42 -5
  248. package/dist/message/src/method.cjs +40 -16
  249. package/dist/message/src/method.d.ts +2 -0
  250. package/dist/message/src/method.mjs +34 -15
  251. package/dist/message-box/index.cjs +4 -2
  252. package/dist/message-box/index.mjs +2 -1
  253. package/dist/message-box/src/message-box.css +2 -448
  254. package/dist/message-box/src/message-box.d.ts +6 -1
  255. package/dist/message-box/src/message-box.vue +17 -453
  256. package/dist/message-box/src/message-box.vue.d.ts +11 -2
  257. package/dist/message-box/src/method.cjs +9 -3
  258. package/dist/message-box/src/method.d.ts +2 -0
  259. package/dist/message-box/src/method.mjs +28 -5
  260. package/dist/notification/index.cjs +9 -3
  261. package/dist/notification/index.d.ts +1 -1
  262. package/dist/notification/index.mjs +7 -2
  263. package/dist/notification/src/method.cjs +40 -16
  264. package/dist/notification/src/method.d.ts +2 -0
  265. package/dist/notification/src/method.mjs +34 -15
  266. package/dist/notification/src/notification.css +2 -448
  267. package/dist/notification/src/notification.d.ts +16 -7
  268. package/dist/notification/src/notification.vue +2 -448
  269. package/dist/notification/src/notification.vue.d.ts +35 -6
  270. package/dist/pagination/index.d.ts +14 -14
  271. package/dist/pagination/src/pagination.css +19 -452
  272. package/dist/pagination/src/pagination.vue +98 -481
  273. package/dist/pagination/src/pagination.vue.d.ts +7 -7
  274. package/dist/popconfirm/index.d.ts +3 -3
  275. package/dist/popconfirm/src/popconfirm.css +2 -448
  276. package/dist/popconfirm/src/popconfirm.vue +2 -448
  277. package/dist/popconfirm/src/popconfirm.vue.d.ts +1 -1
  278. package/dist/popover/index.d.ts +3 -3
  279. package/dist/popover/src/popover.css +2 -448
  280. package/dist/popover/src/popover.vue +2 -448
  281. package/dist/popover/src/popover.vue.d.ts +1 -1
  282. package/dist/price/src/price.css +2 -448
  283. package/dist/price/src/price.vue +2 -448
  284. package/dist/product-card/src/product-card.css +2 -448
  285. package/dist/product-card/src/product-card.vue +2 -448
  286. package/dist/progress/index.d.ts +3 -3
  287. package/dist/progress/src/progress.css +3 -449
  288. package/dist/progress/src/progress.vue +3 -449
  289. package/dist/progress/src/progress.vue.d.ts +1 -1
  290. package/dist/radio/index.d.ts +318 -30
  291. package/dist/radio/src/radio-button.css +2 -448
  292. package/dist/radio/src/radio-button.vue +2 -448
  293. package/dist/radio/src/radio-button.vue.d.ts +27 -6
  294. package/dist/radio/src/radio-group.css +2 -448
  295. package/dist/radio/src/radio-group.vue +2 -448
  296. package/dist/radio/src/radio-group.vue.d.ts +30 -5
  297. package/dist/radio/src/radio.css +2 -448
  298. package/dist/radio/src/radio.vue +2 -448
  299. package/dist/radio/src/radio.vue.d.ts +29 -6
  300. package/dist/rate/src/rate.css +2 -448
  301. package/dist/rate/src/rate.vue +2 -448
  302. package/dist/result/index.d.ts +46 -4
  303. package/dist/result/src/result.css +2 -448
  304. package/dist/result/src/result.vue +2 -448
  305. package/dist/result/src/result.vue.d.ts +23 -2
  306. package/dist/row/src/row.css +2 -448
  307. package/dist/row/src/row.vue +2 -448
  308. package/dist/sanitize.cjs +15 -2
  309. package/dist/sanitize.mjs +15 -2
  310. package/dist/scrollbar/src/scrollbar.css +2 -448
  311. package/dist/scrollbar/src/scrollbar.vue +2 -448
  312. package/dist/scrollbar/src/thumb.vue.d.ts +30 -3
  313. package/dist/select/index.d.ts +414 -24
  314. package/dist/select/src/option.vue +2 -448
  315. package/dist/select/src/option.vue.d.ts +23 -2
  316. package/dist/select/src/select.css +2 -448
  317. package/dist/select/src/select.vue +2 -448
  318. package/dist/select/src/select.vue.d.ts +78 -11
  319. package/dist/skeleton/src/skeleton-item.vue +2 -448
  320. package/dist/skeleton/src/skeleton.css +2 -448
  321. package/dist/skeleton/src/skeleton.vue +2 -448
  322. package/dist/sku-selector/src/sku-selector.css +2 -448
  323. package/dist/sku-selector/src/sku-selector.vue +2 -448
  324. package/dist/slider/index.d.ts +2 -6
  325. package/dist/slider/src/slider-button.vue +2 -448
  326. package/dist/slider/src/slider-button.vue.d.ts +38 -7
  327. package/dist/slider/src/slider.css +2 -448
  328. package/dist/slider/src/slider.vue +2 -448
  329. package/dist/slider/src/slider.vue.d.ts +1 -5
  330. package/dist/smart-address/src/smart-address.css +26 -448
  331. package/dist/smart-address/src/smart-address.vue +26 -448
  332. package/dist/space/index.d.ts +106 -4
  333. package/dist/space/src/space.css +2 -448
  334. package/dist/space/src/space.vue +2 -448
  335. package/dist/space/src/space.vue.d.ts +33 -2
  336. package/dist/spin/src/spin.css +2 -448
  337. package/dist/spin/src/spin.vue +2 -448
  338. package/dist/steps/src/step.vue +2 -448
  339. package/dist/steps/src/steps.css +2 -448
  340. package/dist/steps/src/steps.vue +2 -448
  341. package/dist/style.css +6 -0
  342. package/dist/submit-bar/src/submit-bar.css +2 -448
  343. package/dist/submit-bar/src/submit-bar.vue +2 -448
  344. package/dist/switch/index.d.ts +3 -3
  345. package/dist/switch/src/switch.css +4 -449
  346. package/dist/switch/src/switch.vue +4 -449
  347. package/dist/switch/src/switch.vue.d.ts +1 -1
  348. package/dist/table/index.d.ts +342 -102
  349. package/dist/table/src/table-column.vue +2 -448
  350. package/dist/table/src/table-column.vue.d.ts +62 -3
  351. package/dist/table/src/table.css +2 -448
  352. package/dist/table/src/table.vue +2 -448
  353. package/dist/table/src/use-table-export.cjs +9 -5
  354. package/dist/table/src/use-table-export.d.ts +1 -1
  355. package/dist/table/src/use-table-export.mjs +12 -3
  356. package/dist/table/src/use-table-import.cjs +9 -5
  357. package/dist/table/src/use-table-import.d.ts +1 -1
  358. package/dist/table/src/use-table-import.mjs +12 -3
  359. package/dist/tabs/src/tab-pane.vue +0 -451
  360. package/dist/tabs/src/tabs.css +2 -448
  361. package/dist/tabs/src/tabs.vue +2 -448
  362. package/dist/tag/index.d.ts +175 -16
  363. package/dist/tag/src/tag.css +2 -448
  364. package/dist/tag/src/tag.vue +2 -448
  365. package/dist/tag/src/tag.vue.d.ts +47 -8
  366. package/dist/time-picker/index.d.ts +475 -22
  367. package/dist/time-picker/src/time-picker.css +2 -448
  368. package/dist/time-picker/src/time-picker.vue +2 -448
  369. package/dist/time-picker/src/time-picker.vue.d.ts +85 -12
  370. package/dist/time-picker/src/time-spinner.vue.d.ts +45 -6
  371. package/dist/time-select/index.d.ts +285 -18
  372. package/dist/time-select/src/time-select.css +3 -449
  373. package/dist/time-select/src/time-select.vue +3 -449
  374. package/dist/time-select/src/time-select.vue.d.ts +55 -10
  375. package/dist/tooltip/index.d.ts +3 -3
  376. package/dist/tooltip/src/tooltip.css +2 -448
  377. package/dist/tooltip/src/tooltip.vue +2 -448
  378. package/dist/tooltip/src/tooltip.vue.d.ts +1 -1
  379. package/dist/transfer/src/transfer-panel.vue +2 -448
  380. package/dist/transfer/src/transfer-panel.vue.d.ts +45 -6
  381. package/dist/transfer/src/transfer.css +2 -448
  382. package/dist/transfer/src/transfer.vue +2 -448
  383. package/dist/transfer/src/transfer.vue.d.ts +57 -10
  384. package/dist/tree/index.d.ts +34 -25
  385. package/dist/tree/src/tree-node.vue +12 -449
  386. package/dist/tree/src/tree-node.vue.d.ts +10 -1
  387. package/dist/tree/src/tree.css +12 -449
  388. package/dist/tree/src/tree.vue +12 -449
  389. package/dist/tree/src/tree.vue.d.ts +16 -16
  390. package/dist/tree-select/src/tree-select.css +2 -448
  391. package/dist/tree-select/src/tree-select.vue +2 -448
  392. package/dist/typography/index.d.ts +450 -18
  393. package/dist/typography/src/link.vue +2 -448
  394. package/dist/typography/src/link.vue.d.ts +29 -4
  395. package/dist/typography/src/paragraph.vue +2 -448
  396. package/dist/typography/src/paragraph.vue.d.ts +33 -2
  397. package/dist/typography/src/text.vue +2 -448
  398. package/dist/typography/src/text.vue.d.ts +39 -2
  399. package/dist/typography/src/title.vue +2 -448
  400. package/dist/typography/src/title.vue.d.ts +37 -2
  401. package/dist/typography/src/typography.css +2 -448
  402. package/dist/upload/index.d.ts +3 -3
  403. package/dist/upload/src/upload.css +2 -448
  404. package/dist/upload/src/upload.vue +11 -451
  405. package/dist/upload/src/upload.vue.d.ts +1 -1
  406. package/dist/viewerjs.cjs +10 -6
  407. package/dist/viewerjs.d.ts +2 -2
  408. package/dist/viewerjs.mjs +12 -3
  409. package/dist/waterfall/index.d.ts +1 -1
  410. package/dist/waterfall/src/waterfall.css +8 -449
  411. package/dist/waterfall/src/waterfall.vue +8 -449
  412. package/dist/waterfall/src/waterfall.vue.d.ts +1 -1
  413. package/dist/watermark/index.d.ts +3 -3
  414. package/dist/watermark/src/watermark.css +2 -448
  415. package/dist/watermark/src/watermark.vue +38 -450
  416. package/dist/watermark/src/watermark.vue.d.ts +1 -1
  417. package/package.json +28 -10
@@ -1,5 +1,5 @@
1
1
  <script setup>
2
- import { ref, computed, watch, onMounted, onBeforeUnmount } from "vue";
2
+ import { ref, computed, watch, onMounted, onBeforeUnmount, nextTick } from "vue";
3
3
  import { useNamespace, useFormItem, useLocale } from "@yh-ui/hooks";
4
4
  import { useComponentTheme } from "@yh-ui/theme";
5
5
  import { useConfig } from "@yh-ui/hooks";
@@ -38,6 +38,7 @@ const currentView = ref(getInitialView(props.type));
38
38
  const innerDate = ref(/* @__PURE__ */ new Date());
39
39
  const rangeHoverDate = ref(null);
40
40
  const wrapperRef = ref();
41
+ const panelRef = ref();
41
42
  const isRange = computed(() => props.type.includes("range"));
42
43
  const selectSize = computed(
43
44
  () => props.size || formItem?.size || form?.size || globalSize.value || "default"
@@ -202,20 +203,46 @@ const performFinalSelect = (date) => {
202
203
  }
203
204
  }
204
205
  };
206
+ const DROPDOWN_GAP = 8;
207
+ const PANEL_OFFSET = 4;
208
+ const DEFAULT_PANEL_WIDTH = 380;
205
209
  const dropdownStyle = ref({});
206
- const updatePosition = () => {
210
+ const updatePosition = async () => {
207
211
  if (!wrapperRef.value || !props.teleported || props.panelOnly) return;
212
+ await nextTick();
208
213
  const rect = wrapperRef.value.getBoundingClientRect();
214
+ const viewportWidth = window.innerWidth;
215
+ const viewportHeight = window.innerHeight;
209
216
  const styles = window.getComputedStyle(wrapperRef.value);
210
217
  const primary = styles.getPropertyValue("--yh-color-primary").trim();
211
218
  const primaryRgb = styles.getPropertyValue("--yh-color-primary-rgb").trim();
212
219
  const primaryLight9 = styles.getPropertyValue("--yh-color-primary-light-9").trim();
220
+ const panelWidthVar = Number.parseFloat(styles.getPropertyValue("--yh-date-picker-panel-width"));
221
+ const preferredPanelWidth = Number.isFinite(panelWidthVar) ? panelWidthVar : DEFAULT_PANEL_WIDTH;
222
+ const panelWidth = Math.min(
223
+ panelRef.value?.offsetWidth || preferredPanelWidth,
224
+ Math.max(viewportWidth - DROPDOWN_GAP * 2, 240)
225
+ );
226
+ const panelHeight = panelRef.value?.offsetHeight || 0;
227
+ const maxLeft = Math.max(DROPDOWN_GAP, viewportWidth - panelWidth - DROPDOWN_GAP);
228
+ const left = Math.min(Math.max(rect.left, DROPDOWN_GAP), maxLeft);
229
+ const preferredTop = rect.bottom + PANEL_OFFSET;
230
+ const canPlaceAbove = rect.top - panelHeight - PANEL_OFFSET >= DROPDOWN_GAP;
231
+ const shouldPlaceAbove = panelHeight > 0 && preferredTop + panelHeight + DROPDOWN_GAP > viewportHeight && canPlaceAbove;
232
+ const top = shouldPlaceAbove ? Math.max(DROPDOWN_GAP, rect.top - panelHeight - PANEL_OFFSET) : Math.max(
233
+ DROPDOWN_GAP,
234
+ Math.min(
235
+ preferredTop,
236
+ viewportHeight - Math.min(panelHeight, viewportHeight - DROPDOWN_GAP * 2) - DROPDOWN_GAP
237
+ )
238
+ );
213
239
  dropdownStyle.value = {
214
240
  ...themeStyle.value,
215
241
  position: "fixed",
216
- top: `${rect.bottom + 4}px`,
217
- left: `${rect.left}px`,
242
+ top: `${top}px`,
243
+ left: `${left}px`,
218
244
  zIndex: "2000",
245
+ "--yh-date-picker-panel-width": `${panelWidth}px`,
219
246
  "--yh-color-primary": primary,
220
247
  "--yh-color-primary-rgb": primaryRgb,
221
248
  "--yh-color-primary-light-9": primaryLight9
@@ -233,11 +260,48 @@ const syncInnerDate = () => {
233
260
  }
234
261
  };
235
262
  watch(visible, (val) => {
263
+ if (props.panelOnly && !val) {
264
+ visible.value = true;
265
+ return;
266
+ }
267
+ emit("visible-change", val);
236
268
  if (val) {
237
269
  currentView.value = getInitialView(props.type);
238
- updatePosition();
270
+ void updatePosition();
271
+ syncInnerDate();
272
+ if (!props.panelOnly) {
273
+ window.addEventListener("click", handleOutsideClick, true);
274
+ if (props.teleported) {
275
+ window.addEventListener("scroll", updatePosition, true);
276
+ window.addEventListener("resize", updatePosition);
277
+ }
278
+ }
279
+ } else {
280
+ if (!props.panelOnly) {
281
+ window.removeEventListener("click", handleOutsideClick, true);
282
+ window.removeEventListener("scroll", updatePosition, true);
283
+ window.removeEventListener("resize", updatePosition);
284
+ }
285
+ }
286
+ });
287
+ watch(
288
+ () => props.type,
289
+ (val) => {
290
+ currentView.value = getInitialView(val);
291
+ syncInnerDate();
292
+ if (props.panelOnly) {
293
+ visible.value = true;
294
+ }
295
+ }
296
+ );
297
+ watch(
298
+ () => props.modelValue,
299
+ () => {
239
300
  syncInnerDate();
240
301
  }
302
+ );
303
+ watch([currentView, innerDate], ([view, date]) => {
304
+ emit("panel-change", date, view);
241
305
  });
242
306
  const handleClear = (e) => {
243
307
  e.stopPropagation();
@@ -250,8 +314,8 @@ const togglePanel = (e) => {
250
314
  visible.value = !visible.value;
251
315
  };
252
316
  const handleOutsideClick = (e) => {
253
- if (!visible.value || props.panelOnly) return;
254
317
  const target = e.target;
318
+ if (!visible.value || props.panelOnly) return;
255
319
  if (wrapperRef.value?.contains(target)) return;
256
320
  const poppers = document.querySelectorAll(`.${ns.e("panel")}`);
257
321
  for (const p of poppers) {
@@ -265,11 +329,14 @@ const shouldShowFooter = computed(() => {
265
329
  });
266
330
  const handleConfirmClick = () => {
267
331
  emit("confirm", props.modelValue);
268
- visible.value = false;
332
+ if (!props.panelOnly) {
333
+ visible.value = false;
334
+ }
269
335
  };
270
336
  onMounted(() => {
271
337
  syncInnerDate();
272
- if (!props.panelOnly) {
338
+ if (visible.value && !props.panelOnly) {
339
+ void updatePosition();
273
340
  window.addEventListener("click", handleOutsideClick, true);
274
341
  if (props.teleported) {
275
342
  window.addEventListener("scroll", updatePosition, true);
@@ -278,9 +345,11 @@ onMounted(() => {
278
345
  }
279
346
  });
280
347
  onBeforeUnmount(() => {
281
- window.removeEventListener("click", handleOutsideClick, true);
282
- window.removeEventListener("scroll", updatePosition, true);
283
- window.removeEventListener("resize", updatePosition);
348
+ if (!props.panelOnly) {
349
+ window.removeEventListener("click", handleOutsideClick, true);
350
+ window.removeEventListener("scroll", updatePosition, true);
351
+ window.removeEventListener("resize", updatePosition);
352
+ }
284
353
  });
285
354
  </script>
286
355
 
@@ -288,7 +357,7 @@ onBeforeUnmount(() => {
288
357
  <div
289
358
  ref="wrapperRef"
290
359
  :class="wrapperClasses"
291
- :style="themeStyle"
360
+ :style="[themeStyle, $attrs.style]"
292
361
  @click="togglePanel"
293
362
  @mouseenter="hovering = true"
294
363
  @mouseleave="hovering = false"
@@ -313,6 +382,8 @@ onBeforeUnmount(() => {
313
382
  :placeholder="placeholder ?? t('datepicker.selectDate')"
314
383
  :value="displayValue"
315
384
  readonly
385
+ @focus="e => emit('focus', e)"
386
+ @blur="e => emit('blur', e)"
316
387
  />
317
388
  </template>
318
389
  <template v-else>
@@ -322,6 +393,8 @@ onBeforeUnmount(() => {
322
393
  :placeholder="startPlaceholder ?? t('datepicker.startDate')"
323
394
  :value="rangeDisplayValue[0]"
324
395
  readonly
396
+ @focus="e => emit('focus', e)"
397
+ @blur="e => emit('blur', e)"
325
398
  />
326
399
  <span :class="ns.e('range-separator')">{{ rangeSeparator }}</span>
327
400
  <input
@@ -329,6 +402,8 @@ onBeforeUnmount(() => {
329
402
  :placeholder="endPlaceholder ?? t('datepicker.endDate')"
330
403
  :value="rangeDisplayValue[1]"
331
404
  readonly
405
+ @focus="e => emit('focus', e)"
406
+ @blur="e => emit('blur', e)"
332
407
  />
333
408
  </div>
334
409
  </template>
@@ -353,12 +428,13 @@ onBeforeUnmount(() => {
353
428
  </div>
354
429
 
355
430
  <!-- 弹窗面板 -->
356
- <component :is="panelOnly ? 'div' : 'Teleport'" to="body" :disabled="!teleported || panelOnly">
431
+ <Teleport to="body" :disabled="!props.teleported || panelOnly">
357
432
  <Transition :name="panelOnly ? '' : ns.b('panel')">
358
433
  <div
434
+ ref="panelRef"
359
435
  v-if="visible"
360
436
  :class="[ns.e('panel'), popperClass, ns.is('plain', panelOnly)]"
361
- :style="!panelOnly && teleported ? dropdownStyle : {}"
437
+ :style="!panelOnly && props.teleported ? dropdownStyle : {}"
362
438
  @click.stop
363
439
  >
364
440
  <div :class="ns.e('header')">
@@ -471,7 +547,7 @@ onBeforeUnmount(() => {
471
547
  <button
472
548
  v-if="isRange || type.includes('datetime')"
473
549
  :class="ns.e('footer-btn')"
474
- @click="visible = false"
550
+ @click="!panelOnly && (visible = false)"
475
551
  >
476
552
  {{ t("datepicker.cancel") }}
477
553
  </button>
@@ -486,462 +562,16 @@ onBeforeUnmount(() => {
486
562
  </div>
487
563
  </div>
488
564
  </Transition>
489
- </component>
565
+ </Teleport>
490
566
  </div>
491
567
  </template>
492
568
 
493
569
  <style>
494
570
  @charset "UTF-8";
495
571
  /**
496
- * YH-UI CSS Variables
497
- * 全局 CSS 变量定义 - 业内最佳主题系统
572
+ * YH-UI Sass Variables
573
+ * 原具体的 CSS 变量输出规则 (:root, html.dark 等) 已移至 root.scss,以防止各组件样式编译时产生重复的全局变量 CSS 冗余。
498
574
  */
499
- :root {
500
- /* ==================== 密度/紧凑度系统 ==================== */
501
- --yh-density-factor: 1;
502
- --yh-component-size-default: 32px;
503
- --yh-component-size-small: 24px;
504
- --yh-component-size-large: 40px;
505
- --yh-padding-default: 12px 16px;
506
- --yh-padding-small: 8px 12px;
507
- --yh-padding-large: 16px 20px;
508
- --yh-spacing-unit: 8px;
509
- /* ==================== 基础颜色 ==================== */
510
- --yh-color-white: #ffffff;
511
- --yh-color-black: #000000;
512
- /* ==================== 颜色系统 ==================== */
513
- /* 主色 */
514
- --yh-color-primary: #409eff;
515
- --yh-color-primary-light-1: #53a8ff;
516
- --yh-color-primary-light-2: #66b1ff;
517
- --yh-color-primary-light-3: #79bbff;
518
- --yh-color-primary-light-4: #8cc5ff;
519
- --yh-color-primary-light-5: #a0cfff;
520
- --yh-color-primary-light-6: #b3d8ff;
521
- --yh-color-primary-light-7: #c6e2ff;
522
- --yh-color-primary-light-8: #d9ecff;
523
- --yh-color-primary-light-9: #ecf5ff;
524
- --yh-color-primary-dark-2: #337ecc;
525
- /* 成功色 */
526
- --yh-color-success: #67c23a;
527
- --yh-color-success-light-3: #95d475;
528
- --yh-color-success-light-5: #b3e19d;
529
- --yh-color-success-light-7: #d1edc4;
530
- --yh-color-success-light-9: #f0f9eb;
531
- --yh-color-success-dark-2: #529b2e;
532
- /* 警告色 */
533
- --yh-color-warning: #e6a23c;
534
- --yh-color-warning-light-3: #eebe77;
535
- --yh-color-warning-light-5: #f3d19e;
536
- --yh-color-warning-light-7: #f8e3c5;
537
- --yh-color-warning-light-9: #fdf6ec;
538
- --yh-color-warning-dark-2: #b88230;
539
- /* 危险色 */
540
- --yh-color-danger: #f56c6c;
541
- --yh-color-danger-light-3: #f89898;
542
- --yh-color-danger-light-5: #fab6b6;
543
- --yh-color-danger-light-7: #fcd3d3;
544
- --yh-color-danger-light-9: #fef0f0;
545
- --yh-color-danger-dark-2: #c45656;
546
- /* 信息色 */
547
- --yh-color-info: #909399;
548
- --yh-color-info-light-3: #b1b3b8;
549
- --yh-color-info-light-5: #c8c9cc;
550
- --yh-color-info-light-7: #dedfe0;
551
- --yh-color-info-light-9: #f4f4f5;
552
- --yh-color-info-dark-2: #73767a;
553
- /* 文字颜色 */
554
- --yh-text-color-primary: #303133;
555
- --yh-text-color-regular: #606266;
556
- --yh-text-color-secondary: #909399;
557
- --yh-text-color-placeholder: #a8abb2;
558
- --yh-text-color-disabled: #c0c4cc;
559
- /* 边框颜色 */
560
- --yh-border-color: #dcdfe6;
561
- --yh-border-color-hover: var(--yh-color-primary);
562
- --yh-border-color-light: #e4e7ed;
563
- --yh-border-color-lighter: #ebeef5;
564
- --yh-border-color-extra-light: #f2f6fc;
565
- --yh-border-color-dark: #d4d7de;
566
- --yh-border-color-darker: #cdd0d6;
567
- /* 填充颜色 */
568
- --yh-fill-color: #f0f2f5;
569
- --yh-fill-color-light: #f5f7fa;
570
- --yh-fill-color-lighter: #fafafa;
571
- --yh-fill-color-extra-light: #fafcff;
572
- --yh-fill-color-dark: #ebedf0;
573
- --yh-fill-color-darker: #e6e8eb;
574
- --yh-fill-color-blank: #ffffff;
575
- /* 背景颜色 */
576
- --yh-bg-color: #ffffff;
577
- --yh-bg-color-page: #f2f3f5;
578
- --yh-bg-color-overlay: #ffffff;
579
- /* ==================== 间距系统 ==================== */
580
- --yh-spacing-none: 0;
581
- --yh-spacing-xs: 4px;
582
- --yh-spacing-sm: 8px;
583
- --yh-spacing-md: 16px;
584
- --yh-spacing-lg: 24px;
585
- --yh-spacing-xl: 32px;
586
- --yh-spacing-xxl: 48px;
587
- /* ==================== 圆角系统 ==================== */
588
- --yh-radius-none: 0;
589
- --yh-radius-sm: 2px;
590
- --yh-radius-base: 4px;
591
- --yh-radius-md: 8px;
592
- --yh-radius-lg: 12px;
593
- --yh-radius-xl: 16px;
594
- --yh-radius-round: 20px;
595
- --yh-radius-circle: 50%;
596
- /* ==================== 字体系统 ==================== */
597
- --yh-font-family:
598
- -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans',
599
- sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
600
- /* 字号 */
601
- --yh-font-size-xs: 12px;
602
- --yh-font-size-sm: 13px;
603
- --yh-font-size-base: 14px;
604
- --yh-font-size-md: 16px;
605
- --yh-font-size-lg: 18px;
606
- --yh-font-size-xl: 20px;
607
- --yh-font-size-xxl: 24px;
608
- /* 行高 */
609
- --yh-line-height-none: 1;
610
- --yh-line-height-tight: 1.25;
611
- --yh-line-height-snug: 1.375;
612
- --yh-line-height-normal: 1.5;
613
- --yh-line-height-relaxed: 1.625;
614
- --yh-line-height-loose: 2;
615
- /* 字重 */
616
- --yh-font-weight-light: 300;
617
- --yh-font-weight-normal: 400;
618
- --yh-font-weight-medium: 500;
619
- --yh-font-weight-semibold: 600;
620
- --yh-font-weight-bold: 700;
621
- /* ==================== 阴影系统 ==================== */
622
- --yh-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
623
- --yh-shadow-base: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
624
- --yh-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
625
- --yh-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
626
- --yh-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
627
- /* ==================== 过渡动效 ==================== */
628
- --yh-duration-fast: 150ms;
629
- --yh-duration-base: 200ms;
630
- --yh-duration-slow: 300ms;
631
- --yh-timing-ease: ease;
632
- --yh-timing-ease-in: cubic-bezier(0.4, 0, 1, 1);
633
- --yh-timing-ease-out: cubic-bezier(0, 0, 0.2, 1);
634
- --yh-timing-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
635
- --yh-timing-linear: linear;
636
- --yh-transition-base: all var(--yh-duration-base) var(--yh-timing-ease-in-out);
637
- --yh-transition-fast: all var(--yh-duration-fast) var(--yh-timing-ease-in-out);
638
- --yh-transition-slow: all var(--yh-duration-slow) var(--yh-timing-ease-in-out);
639
- /* ==================== 层级系统 ==================== */
640
- --yh-z-index-normal: 1;
641
- --yh-z-index-top: 1000;
642
- --yh-z-index-popper: 2000;
643
- --yh-z-index-overlay: 2001;
644
- --yh-z-index-modal: 2002;
645
- --yh-z-index-popover: 2003;
646
- --yh-z-index-tooltip: 2004;
647
- --yh-z-index-loading: 2005;
648
- /* ==================== 组件尺寸 ==================== */
649
- /* Large */
650
- --yh-component-size-large: 40px;
651
- --yh-component-size-large-font: 14px;
652
- --yh-component-size-large-padding: 20px;
653
- /* Default */
654
- --yh-component-size-default: 32px;
655
- --yh-component-size-default-font: 14px;
656
- --yh-component-size-default-padding: 16px;
657
- /* Small */
658
- --yh-component-size-small: 24px;
659
- --yh-component-size-small-font: 12px;
660
- --yh-component-size-small-padding: 12px;
661
- /* ==================== 组件语义化变量 ==================== */
662
- --yh-border-radius-base: var(--yh-radius-base);
663
- --yh-border-radius-small: var(--yh-radius-sm);
664
- --yh-border-radius-round: var(--yh-radius-round);
665
- /* Message 消息提示 */
666
- --yh-message-bg-color: var(--yh-bg-color-overlay);
667
- --yh-message-border-color: var(--yh-border-color-lighter);
668
- --yh-message-shadow: var(--yh-shadow-lg);
669
- --yh-message-text-color: var(--yh-text-color-primary);
670
- --yh-message-close-color: var(--yh-text-color-secondary);
671
- --yh-message-close-hover-color: var(--yh-text-color-primary);
672
- /* Notification 通知 */
673
- --yh-notification-bg-color: var(--yh-bg-color-overlay);
674
- --yh-notification-border-color: var(--yh-border-color-lighter);
675
- --yh-notification-shadow: var(--yh-shadow-lg);
676
- --yh-notification-title-color: var(--yh-text-color-primary);
677
- --yh-notification-content-color: var(--yh-text-color-regular);
678
- /* Badge 徽标 */
679
- --yh-badge-bg-color: var(--yh-color-danger);
680
- --yh-badge-text-color: #ffffff;
681
- --yh-badge-border-color: var(--yh-bg-color);
682
- /* Card 卡片 */
683
- --yh-card-bg-color: var(--yh-bg-color-overlay);
684
- --yh-card-border-color: var(--yh-border-color-lighter);
685
- --yh-card-shadow: var(--yh-shadow-base);
686
- --yh-card-header-padding: 18px 20px;
687
- --yh-card-body-padding: 20px;
688
- /* Input 输入框 */
689
- --yh-input-bg-color: var(--yh-fill-color-blank);
690
- --yh-input-text-color: var(--yh-text-color-regular);
691
- --yh-input-border-color: var(--yh-border-color);
692
- --yh-input-hover-border-color: var(--yh-color-primary);
693
- --yh-input-focus-border-color: var(--yh-color-primary);
694
- --yh-input-placeholder-color: var(--yh-text-color-placeholder);
695
- --yh-input-icon-color: var(--yh-text-color-placeholder);
696
- --yh-input-disabled-bg-color: var(--yh-fill-color-light);
697
- --yh-input-disabled-text-color: var(--yh-text-color-disabled);
698
- --yh-input-disabled-border-color: var(--yh-border-color-light);
699
- /* Image 图片 */
700
- --yh-image-placeholder-bg-color: var(--yh-fill-color-light);
701
- --yh-image-placeholder-text-color: var(--yh-text-color-placeholder);
702
- --yh-image-error-bg-color: var(--yh-fill-color-extra-light);
703
- --yh-image-error-text-color: var(--yh-text-color-placeholder);
704
- /* Image Viewer 预览器 */
705
- --yh-image-viewer-mask-bg-color: rgba(0, 0, 0, 0.5);
706
- --yh-image-viewer-btn-bg-color: var(--yh-text-color-regular);
707
- --yh-image-viewer-btn-color: #ffffff;
708
- --yh-image-viewer-btn-hover-bg-color: var(--yh-color-primary);
709
- /* Calendar 日历 */
710
- --yh-calendar-bg: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
711
- --yh-calendar-border-color: rgba(0, 0, 0, 0.06);
712
- --yh-calendar-border-radius: var(--yh-radius-xl);
713
- --yh-calendar-header-bg: rgba(255, 255, 255, 0.95);
714
- --yh-calendar-header-border: rgba(0, 0, 0, 0.04);
715
- --yh-calendar-header-padding: 18px 22px;
716
- --yh-calendar-body-padding: 14px 18px 18px;
717
- /* Calendar 尺寸 */
718
- --yh-calendar-cell-height: 85px;
719
- --yh-calendar-cell-height-small: 52px;
720
- --yh-calendar-cell-height-large: 110px;
721
- --yh-calendar-cell-radius: 10px;
722
- --yh-calendar-cell-radius-small: 6px;
723
- --yh-calendar-cell-radius-large: 12px;
724
- /* Calendar 颜色 */
725
- --yh-calendar-primary: var(--yh-color-primary);
726
- --yh-calendar-primary-light: rgba(59, 130, 246, 0.1);
727
- --yh-calendar-selected-bg: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
728
- --yh-calendar-selected-border: rgba(59, 130, 246, 0.4);
729
- --yh-calendar-today-dot: var(--yh-color-primary);
730
- --yh-calendar-weekend-color: #f97316;
731
- --yh-calendar-disabled-color: var(--yh-text-color-disabled);
732
- --yh-calendar-other-month-opacity: 0.35;
733
- /* Calendar 假日 */
734
- --yh-calendar-holiday-color: var(--yh-color-success);
735
- --yh-calendar-holiday-bg: rgba(16, 185, 129, 0.12);
736
- --yh-calendar-holiday-border: rgba(16, 185, 129, 0.25);
737
- --yh-calendar-workday-color: var(--yh-color-warning);
738
- --yh-calendar-workday-bg: rgba(245, 158, 11, 0.12);
739
- --yh-calendar-workday-border: rgba(245, 158, 11, 0.25);
740
- /* Calendar 范围选择 */
741
- --yh-calendar-range-bg: rgba(59, 130, 246, 0.08);
742
- --yh-calendar-range-border: rgba(59, 130, 246, 0.2);
743
- /* Calendar 字体 */
744
- --yh-calendar-weekday-font-size: var(--yh-font-size-sm);
745
- --yh-calendar-weekday-color: var(--yh-text-color-secondary);
746
- --yh-calendar-day-font-size: 15px;
747
- --yh-calendar-day-color: var(--yh-text-color-primary);
748
- --yh-calendar-badge-font-size: 9px;
749
- /* Table 表格 */
750
- --yh-table-border-color: var(--yh-border-color-lighter);
751
- --yh-table-header-bg: var(--yh-fill-color-light);
752
- --yh-table-header-text-color: var(--yh-text-color-primary);
753
- --yh-table-header-font-weight: var(--yh-font-weight-semibold);
754
- --yh-table-row-bg: var(--yh-bg-color);
755
- --yh-table-row-hover-bg: var(--yh-fill-color-light);
756
- --yh-table-row-stripe-bg: var(--yh-fill-color-lighter);
757
- --yh-table-row-current-bg: var(--yh-color-primary-light-9);
758
- --yh-table-row-selected-bg: var(--yh-color-primary-light-8);
759
- --yh-table-row-success-bg: var(--yh-color-success-light-9);
760
- --yh-table-row-warning-bg: var(--yh-color-warning-light-9);
761
- --yh-table-text-color: var(--yh-text-color-regular);
762
- --yh-table-empty-text-color: var(--yh-text-color-secondary);
763
- --yh-table-font-size: var(--yh-font-size-base);
764
- --yh-table-cell-padding: 12px 0;
765
- --yh-table-cell-spacing: 12px;
766
- --yh-table-fixed-left-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, 0.15);
767
- --yh-table-fixed-right-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, 0.15);
768
- /* ==================== 边框基础 ==================== */
769
- --yh-border-width: 1px;
770
- --yh-border-style: solid;
771
- --yh-border: var(--yh-border-width) var(--yh-border-style) var(--yh-border-color);
772
- /* ==================== 断点系统 ==================== */
773
- --yh-breakpoint-xs: 0;
774
- --yh-breakpoint-sm: 576px;
775
- --yh-breakpoint-md: 768px;
776
- --yh-breakpoint-lg: 992px;
777
- --yh-breakpoint-xl: 1200px;
778
- --yh-breakpoint-xxl: 1400px;
779
- /* ==================== 字体系统扩展 ==================== */
780
- --yh-font-family-monospace:
781
- 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;
782
- --yh-font-family-serif: Georgia, Cambria, 'Times New Roman', Times, serif;
783
- /* ==================== 无障碍/聚焦系统 ==================== */
784
- --yh-focus-ring-color: var(--yh-color-primary);
785
- --yh-focus-ring-width: 2px;
786
- --yh-focus-ring-offset: 2px;
787
- --yh-focus-ring-opacity: 0.2;
788
- --yh-focus-ring:
789
- 0 0 0 var(--yh-focus-ring-offset) var(--yh-bg-color),
790
- 0 0 0 calc(var(--yh-focus-ring-offset) + var(--yh-focus-ring-width)) var(--yh-focus-ring-color);
791
- /* 高对比度模式支持 */
792
- --yh-high-contrast-outline: 2px solid transparent;
793
- --yh-high-contrast-outline-offset: 2px;
794
- /* ==================== 滚动条样式 ==================== */
795
- --yh-scrollbar-width: 6px;
796
- --yh-scrollbar-thumb-color: var(--yh-text-color-disabled);
797
- --yh-scrollbar-thumb-hover-color: var(--yh-text-color-secondary);
798
- --yh-scrollbar-track-color: transparent;
799
- --yh-scrollbar-thumb-radius: 3px;
800
- /* ==================== 遮罩层 ==================== */
801
- --yh-mask-color: rgba(0, 0, 0, 0.5);
802
- --yh-mask-color-light: rgba(0, 0, 0, 0.3);
803
- --yh-mask-color-extra-light: rgba(0, 0, 0, 0.1);
804
- }
805
-
806
- /* ==================== 暗黑模式 ==================== */
807
- html.dark {
808
- --yh-color-primary: #409eff;
809
- --yh-color-primary-light-3: #3375b9;
810
- --yh-color-primary-light-5: #2a598a;
811
- --yh-color-primary-light-7: #213d5b;
812
- --yh-color-primary-light-9: #18222c;
813
- --yh-color-primary-dark-2: #66b1ff;
814
- --yh-color-success: #67c23a;
815
- --yh-color-success-light-3: #4e8e2f;
816
- --yh-color-success-light-5: #3e6b27;
817
- --yh-color-success-light-7: #2d481f;
818
- --yh-color-success-light-9: #1d2518;
819
- --yh-color-warning: #e6a23c;
820
- --yh-color-warning-light-3: #a77730;
821
- --yh-color-warning-light-5: #7d5b28;
822
- --yh-color-warning-light-7: #533f20;
823
- --yh-color-warning-light-9: #292218;
824
- --yh-color-danger: #f56c6c;
825
- --yh-color-danger-light-3: #b25252;
826
- --yh-color-danger-light-5: #854040;
827
- --yh-color-danger-light-7: #582e2e;
828
- --yh-color-danger-light-9: #2b1d1d;
829
- --yh-color-info: #909399;
830
- --yh-color-info-light-3: #6b6d71;
831
- --yh-color-info-light-5: #525457;
832
- --yh-color-info-light-7: #393b3e;
833
- --yh-color-info-light-9: #202124;
834
- --yh-text-color-primary: #e5eaf3;
835
- --yh-text-color-regular: #cfd3dc;
836
- --yh-text-color-secondary: #a3a6ad;
837
- --yh-text-color-placeholder: #8d9095;
838
- --yh-text-color-disabled: #6c6e72;
839
- --yh-border-color: #4c4d4f;
840
- --yh-border-color-light: #414243;
841
- --yh-border-color-lighter: #363637;
842
- --yh-border-color-extra-light: #2b2b2c;
843
- --yh-border-color-dark: #58585b;
844
- --yh-border-color-darker: #636466;
845
- --yh-fill-color: #303030;
846
- --yh-fill-color-light: #262727;
847
- --yh-fill-color-lighter: #1d1d1d;
848
- --yh-fill-color-extra-light: #191919;
849
- --yh-fill-color-dark: #39393a;
850
- --yh-fill-color-darker: #424243;
851
- --yh-fill-color-blank: transparent;
852
- --yh-bg-color: #141414;
853
- --yh-bg-color-page: #0a0a0a;
854
- --yh-bg-color-overlay: #1d1e1f;
855
- /* 组件暗色模式覆盖 */
856
- --yh-message-bg-color: var(--yh-bg-color-overlay);
857
- --yh-message-border-color: var(--yh-border-color-lighter);
858
- --yh-notification-bg-color: var(--yh-bg-color-overlay);
859
- --yh-notification-border-color: var(--yh-border-color-lighter);
860
- --yh-badge-border-color: var(--yh-bg-color);
861
- --yh-card-bg-color: var(--yh-bg-color-overlay);
862
- --yh-card-border-color: var(--yh-border-color-lighter);
863
- /* Calendar 暗黑模式 */
864
- --yh-calendar-bg: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
865
- --yh-calendar-border-color: rgba(255, 255, 255, 0.08);
866
- --yh-calendar-header-bg: rgba(30, 30, 30, 0.95);
867
- --yh-calendar-header-border: rgba(255, 255, 255, 0.06);
868
- --yh-calendar-day-color: var(--yh-text-color-primary);
869
- --yh-calendar-weekday-color: var(--yh-text-color-secondary);
870
- --yh-calendar-selected-bg: linear-gradient(
871
- 135deg,
872
- rgba(59, 130, 246, 0.2) 0%,
873
- rgba(59, 130, 246, 0.1) 100%
874
- );
875
- /* Table 暗黑模式 */
876
- --yh-table-border-color: var(--yh-border-color-lighter);
877
- --yh-table-header-bg: var(--yh-fill-color-dark);
878
- --yh-table-header-text-color: var(--yh-text-color-primary);
879
- --yh-table-row-bg: var(--yh-bg-color);
880
- --yh-table-row-hover-bg: var(--yh-fill-color);
881
- --yh-table-row-stripe-bg: var(--yh-fill-color-light);
882
- --yh-table-row-current-bg: var(--yh-color-primary-light-9);
883
- --yh-table-row-selected-bg: var(--yh-color-primary-light-9);
884
- --yh-table-row-success-bg: var(--yh-color-success-light-9);
885
- --yh-table-row-warning-bg: var(--yh-color-warning-light-9);
886
- --yh-table-fixed-left-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, 0.3);
887
- --yh-table-fixed-right-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, 0.3);
888
- /* 遮罩层暗黑模式 */
889
- --yh-mask-color: rgba(0, 0, 0, 0.7);
890
- --yh-mask-color-light: rgba(0, 0, 0, 0.5);
891
- --yh-mask-color-extra-light: rgba(0, 0, 0, 0.3);
892
- /* 滚动条暗黑模式 */
893
- --yh-scrollbar-thumb-color: var(--yh-fill-color-darker);
894
- --yh-scrollbar-thumb-hover-color: var(--yh-text-color-placeholder);
895
- }
896
-
897
- /* ==================== 减少动画偏好支持 ==================== */
898
- @media (prefers-reduced-motion: reduce) {
899
- :root,
900
- html.dark {
901
- --yh-duration-fast: 0ms;
902
- --yh-duration-base: 0ms;
903
- --yh-duration-slow: 0ms;
904
- --yh-transition-base: none;
905
- --yh-transition-fast: none;
906
- --yh-transition-slow: none;
907
- }
908
- *,
909
- *::before,
910
- *::after {
911
- animation-duration: 0.01ms !important;
912
- animation-iteration-count: 1 !important;
913
- transition-duration: 0.01ms !important;
914
- scroll-behavior: auto !important;
915
- }
916
- }
917
- /* ==================== 高对比度模式支持 ==================== */
918
- @media (prefers-contrast: high) {
919
- :root {
920
- --yh-border-color: #000000;
921
- --yh-border-color-light: #333333;
922
- --yh-text-color-primary: #000000;
923
- --yh-text-color-regular: #1a1a1a;
924
- --yh-focus-ring-width: 3px;
925
- --yh-focus-ring-color: #000000;
926
- }
927
- html.dark {
928
- --yh-border-color: #ffffff;
929
- --yh-border-color-light: #cccccc;
930
- --yh-text-color-primary: #ffffff;
931
- --yh-text-color-regular: #e5e5e5;
932
- --yh-focus-ring-color: #ffffff;
933
- }
934
- }
935
- /* ==================== 强制颜色模式支持 (Windows 高对比度) ==================== */
936
- @media (forced-colors: active) {
937
- :root {
938
- --yh-color-primary: LinkText;
939
- --yh-border-color: ButtonBorder;
940
- --yh-bg-color: Canvas;
941
- --yh-text-color-primary: CanvasText;
942
- --yh-focus-ring-color: Highlight;
943
- }
944
- }
945
575
  /* 尺寸变量映射 - 统一对接 YH-UI 全局主题变量 */
946
576
  .yh-date-picker {
947
577
  /* 局部变量定义 - 允许通过作用域或内联样式覆盖 */
@@ -963,19 +593,28 @@ html.dark {
963
593
  width: var(--yh-date-picker-width, 220px);
964
594
  font-family: var(--yh-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);
965
595
  box-sizing: border-box;
596
+ max-width: 100%;
966
597
  }
967
598
  .yh-date-picker.is-range {
968
- width: var(--yh-date-picker-range-width, 400px);
599
+ width: var(--yh-date-picker-range-width, 100%);
600
+ max-width: 100%;
969
601
  }
970
602
  .yh-date-picker.is-disabled {
971
603
  opacity: var(--yh-disabled-opacity, 0.5);
972
604
  cursor: not-allowed;
973
605
  }
606
+ .yh-date-picker.is-panel-only {
607
+ width: auto;
608
+ display: block;
609
+ max-width: 100%;
610
+ box-sizing: border-box;
611
+ }
974
612
  .yh-date-picker__wrapper {
975
613
  position: relative;
976
614
  display: inline-flex;
977
615
  align-items: center;
978
616
  width: 100%;
617
+ max-width: 100%;
979
618
  padding: 0 12px;
980
619
  background: var(--yh-bg-color);
981
620
  border: 1px solid var(--yh-date-picker-border);
@@ -1042,7 +681,8 @@ html.dark {
1042
681
  align-items: center;
1043
682
  flex: 1;
1044
683
  height: 100%;
1045
- padding-right: 30px; /* 范围模式同样留出后缀空间 */
684
+ padding-right: 24px; /* 范围模式同样留出后缀空间,精简以减少偏心感 */
685
+ min-width: 0;
1046
686
  }
1047
687
 
1048
688
  .yh-date-picker__range-input {
@@ -1056,6 +696,14 @@ html.dark {
1056
696
  padding: 0 !important;
1057
697
  box-shadow: none !important;
1058
698
  height: 100%;
699
+ min-width: 0;
700
+ }
701
+
702
+ .yh-date-picker__range-separator {
703
+ padding: 0 8px;
704
+ font-size: 13px;
705
+ color: var(--yh-date-picker-text-secondary);
706
+ flex-shrink: 0;
1059
707
  }
1060
708
 
1061
709
  .yh-date-picker__suffix {
@@ -1108,7 +756,7 @@ html.dark {
1108
756
  border: 1px solid var(--yh-border-color-extra-light);
1109
757
  margin-top: 12px;
1110
758
  z-index: var(--yh-z-index-popper);
1111
- width: var(--yh-date-picker-panel-width) !important;
759
+ width: min(var(--yh-date-picker-panel-width), 100vw - 16px) !important;
1112
760
  box-sizing: border-box !important;
1113
761
  display: inline-block;
1114
762
  overflow: hidden;