@sdata/web-vue 3.13.0 → 3.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. package/dist/sd.css +167 -114
  2. package/dist/sd.min.css +2 -2
  3. package/es/_components/input-label/input-label.d.ts +2 -0
  4. package/es/_components/input-label/input-label.js +4 -2
  5. package/es/_components/input-label/style/index.css +2 -2
  6. package/es/_components/picker/style/index.scss +8 -2
  7. package/es/_components/resize-observer.js +1 -1
  8. package/es/_components/resize-trigger.vue_vue_type_script_setup_true_lang.js +13 -3
  9. package/es/_components/select-view/select-view.d.ts +2 -0
  10. package/es/_components/select-view/select-view.js +7 -1
  11. package/es/_components/select-view/style/index.css +5 -5
  12. package/es/_hooks/use-focus-trap.d.ts +10 -0
  13. package/es/_hooks/use-focus-trap.js +115 -0
  14. package/es/_utils/dom.js +1 -10
  15. package/es/_utils/keyboard.d.ts +4 -0
  16. package/es/_utils/keyboard.js +21 -2
  17. package/es/alert/alert.vue.d.ts +2 -2
  18. package/es/alert/alert.vue_vue_type_script_setup_true_lang.js +16 -4
  19. package/es/alert/index.d.ts +5 -5
  20. package/es/alert/style/index.css +1 -1
  21. package/es/alert/style/index.scss +1 -1
  22. package/es/anchor/anchor-link.vue_vue_type_script_setup_true_lang.js +3 -1
  23. package/es/anchor/anchor.vue_vue_type_script_setup_true_lang.js +6 -1
  24. package/es/anchor/style/index.css +1 -1
  25. package/es/anchor/style/index.scss +3 -1
  26. package/es/auto-complete/auto-complete.js +8 -0
  27. package/es/avatar/avatar.vue_vue_type_script_setup_true_lang.js +8 -2
  28. package/es/avatar/style/index.css +2 -2
  29. package/es/avatar/style/index.scss +2 -2
  30. package/es/back-top/back-top.vue_vue_type_script_setup_true_lang.js +8 -1
  31. package/es/back-top/style/index.css +1 -1
  32. package/es/back-top/style/index.scss +2 -1
  33. package/es/badge/badge.js +4 -1
  34. package/es/badge/style/index.css +3 -3
  35. package/es/badge/style/index.scss +3 -3
  36. package/es/basic-crud-table/basic-crud-modal.js +5 -0
  37. package/es/basic-crud-table/basic-crud-modal.vue.d.ts +264 -0
  38. package/es/basic-crud-table/basic-crud-modal.vue_vue_type_script_setup_true_lang.js +139 -0
  39. package/es/basic-crud-table/basic-crud-table.js +5 -0
  40. package/es/basic-crud-table/basic-crud-table.vue.d.ts +935 -0
  41. package/es/basic-crud-table/basic-crud-table.vue_vue_type_script_setup_true_lang.js +510 -0
  42. package/es/basic-crud-table/index.d.ts +2722 -0
  43. package/es/basic-crud-table/index.js +9 -0
  44. package/es/basic-crud-table/style/css.js +2 -0
  45. package/es/basic-crud-table/style/index.css +42 -0
  46. package/es/basic-crud-table/style/index.d.ts +2 -0
  47. package/es/basic-crud-table/style/index.js +2 -0
  48. package/es/basic-crud-table/style/index.scss +33 -0
  49. package/es/basic-crud-table/style/token.scss +8 -0
  50. package/es/basic-crud-table/types.d.ts +69 -0
  51. package/es/breadcrumb/breadcrumb-item.js +4 -2
  52. package/es/breadcrumb/breadcrumb.js +3 -0
  53. package/es/button/button.vue_vue_type_script_setup_true_lang.js +10 -5
  54. package/es/button/style/index.css +15 -6
  55. package/es/button/style/index.scss +25 -7
  56. package/es/calendar/components/event.vue_vue_type_script_setup_true_lang.js +1 -1
  57. package/es/calendar/components/headings-bar.vue_vue_type_script_setup_true_lang.js +1 -1
  58. package/es/calendar/style/event.scss +2 -2
  59. package/es/calendar/style/index.css +2 -2
  60. package/es/card/style/index.css +3 -3
  61. package/es/card/style/index.scss +3 -3
  62. package/es/carousel/carousel-arrow.vue.d.ts +4 -4
  63. package/es/carousel/carousel-arrow.vue_vue_type_script_setup_true_lang.js +25 -5
  64. package/es/carousel/carousel-indicator.vue_vue_type_script_setup_true_lang.js +25 -4
  65. package/es/carousel/carousel-item.vue_vue_type_script_setup_true_lang.js +11 -2
  66. package/es/carousel/carousel.js +20 -1
  67. package/es/carousel/style/index.css +1 -1
  68. package/es/carousel/style/index.scss +1 -1
  69. package/es/cascader/cascader-option.js +1 -1
  70. package/es/cascader/cascader.vue_vue_type_script_setup_true_lang.js +13 -4
  71. package/es/cascader/style/index.css +2 -2
  72. package/es/cascader/style/index.scss +3 -1
  73. package/es/checkbox/checkbox-group.js +4 -1
  74. package/es/checkbox/checkbox.d.ts +9 -0
  75. package/es/checkbox/checkbox.js +14 -0
  76. package/es/checkbox/index.d.ts +15 -0
  77. package/es/checkbox/style/index.css +1 -1
  78. package/es/checkbox/style/index.scss +1 -1
  79. package/es/collapse/collapse-item.js +21 -3
  80. package/es/collapse/context.d.ts +1 -1
  81. package/es/color-picker/color-picker.js +6 -0
  82. package/es/color-picker/panel.js +5 -3
  83. package/es/components.d.ts +1 -0
  84. package/es/copy/copy.vue_vue_type_script_setup_true_lang.js +11 -3
  85. package/es/date-picker/hooks/use-provide-datepicker-transform.js +1 -1
  86. package/es/date-picker/panels/body.vue_vue_type_script_setup_true_lang.js +14 -1
  87. package/es/date-picker/panels/header.vue_vue_type_script_setup_true_lang.js +1 -1
  88. package/es/date-picker/picker.vue_vue_type_script_setup_true_lang.js +4 -3
  89. package/es/date-picker/range-picker.vue_vue_type_script_setup_true_lang.js +2 -2
  90. package/es/date-picker/style/index.css +5 -5
  91. package/es/date-picker/style/index.scss +4 -3
  92. package/es/drawer/drawer.vue.d.ts +1 -1
  93. package/es/drawer/drawer.vue_vue_type_script_setup_true_lang.js +31 -9
  94. package/es/drawer/index.d.ts +3 -3
  95. package/es/dropdown/dropdown-button.vue_vue_type_script_setup_true_lang.js +1 -1
  96. package/es/dropdown/dropdown-option.vue_vue_type_script_setup_true_lang.js +5 -1
  97. package/es/dropdown/dropdown-panel.vue.d.ts +9 -0
  98. package/es/dropdown/dropdown-panel.vue_vue_type_script_setup_true_lang.js +76 -3
  99. package/es/dropdown/dropdown-submenu.vue_vue_type_script_setup_true_lang.js +6 -3
  100. package/es/dropdown/dropdown.vue_vue_type_script_setup_true_lang.js +4 -2
  101. package/es/dropdown/style/index.css +1 -1
  102. package/es/dropdown/style/index.scss +3 -1
  103. package/es/file-previewer/file-previewer.vue.d.ts +1 -1
  104. package/es/file-previewer/file-previewer.vue_vue_type_script_setup_true_lang.js +18 -10
  105. package/es/file-previewer/index.d.ts +3 -3
  106. package/es/form/context.d.ts +1 -0
  107. package/es/form/form-item.vue_vue_type_script_setup_true_lang.js +7 -3
  108. package/es/form/index.js +1 -1
  109. package/es/form/style/index.css +2 -2
  110. package/es/form/style/index.scss +2 -2
  111. package/es/grid/grid-col.vue_vue_type_script_setup_true_lang.js +1 -1
  112. package/es/grid/grid-item.vue_vue_type_script_setup_true_lang.js +1 -1
  113. package/es/grid/grid-row.vue_vue_type_script_setup_true_lang.js +1 -1
  114. package/es/grid/grid.vue_vue_type_script_setup_true_lang.js +1 -1
  115. package/es/image/image.vue_vue_type_script_setup_true_lang.js +1 -1
  116. package/es/image/preview-arrow.vue_vue_type_script_setup_true_lang.js +1 -1
  117. package/es/image/preview.vue.d.ts +1 -1
  118. package/es/image/preview.vue_vue_type_script_setup_true_lang.js +2 -2
  119. package/es/index.css +167 -114
  120. package/es/index.d.ts +2 -0
  121. package/es/index.js +55 -54
  122. package/es/index.scss +1 -0
  123. package/es/input/input.js +18 -2
  124. package/es/input/style/index.css +2 -2
  125. package/es/input/style/input.scss +4 -4
  126. package/es/input-number/input-number.js +9 -3
  127. package/es/input-number/style/index.css +3 -3
  128. package/es/input-number/style/index.scss +5 -1
  129. package/es/input-tag/index.d.ts +3 -0
  130. package/es/input-tag/input-tag.d.ts +2 -0
  131. package/es/input-tag/input-tag.js +34 -30
  132. package/es/input-tag/style/index.css +8 -8
  133. package/es/input-tag/style/index.scss +11 -5
  134. package/es/json-form/style/index.css +0 -3
  135. package/es/json-form/style/index.scss +4 -3
  136. package/es/json-form/utils.js +4 -4
  137. package/es/layout/sider.vue_vue_type_script_setup_true_lang.js +34 -7
  138. package/es/layout/style/index.css +2 -2
  139. package/es/layout/style/index.scss +4 -2
  140. package/es/link/link.vue_vue_type_script_setup_true_lang.js +1 -1
  141. package/es/link/style/index.css +1 -1
  142. package/es/link/style/index.scss +3 -1
  143. package/es/list/list.js +1 -1
  144. package/es/locale/interface.d.ts +39 -0
  145. package/es/locale/lang/ar-eg.js +38 -0
  146. package/es/locale/lang/de-de.js +38 -0
  147. package/es/locale/lang/en-us.js +38 -0
  148. package/es/locale/lang/es-es.js +38 -0
  149. package/es/locale/lang/fr-fr.js +38 -0
  150. package/es/locale/lang/id-id.js +38 -0
  151. package/es/locale/lang/it-it.js +38 -0
  152. package/es/locale/lang/ja-jp.js +38 -0
  153. package/es/locale/lang/km-kh.js +38 -0
  154. package/es/locale/lang/ko-kr.js +38 -0
  155. package/es/locale/lang/ms-my.js +38 -0
  156. package/es/locale/lang/nl-nl.js +38 -0
  157. package/es/locale/lang/pt-pt.js +38 -0
  158. package/es/locale/lang/ru-ru.js +38 -0
  159. package/es/locale/lang/th-th.js +38 -0
  160. package/es/locale/lang/vi-vn.js +38 -0
  161. package/es/locale/lang/zh-cn.js +38 -0
  162. package/es/locale/lang/zh-tw.js +38 -0
  163. package/es/mention/mention.js +8 -0
  164. package/es/menu/base-menu.vue_vue_type_script_setup_true_lang.js +29 -3
  165. package/es/menu/item.d.ts +1 -1
  166. package/es/menu/item.js +14 -1
  167. package/es/menu/style/index.css +6 -6
  168. package/es/menu/style/index.scss +5 -3
  169. package/es/message/style/index.css +3 -3
  170. package/es/message/style/index.scss +5 -3
  171. package/es/modal/index.d.ts +3 -3
  172. package/es/modal/modal.vue.d.ts +1 -1
  173. package/es/modal/modal.vue_vue_type_script_setup_true_lang.js +31 -15
  174. package/es/modal/style/index.css +2 -2
  175. package/es/modal/style/index.scss +3 -2
  176. package/es/notification/style/index.css +3 -3
  177. package/es/notification/style/index.scss +11 -3
  178. package/es/overflow-list/overflow-list.js +1 -1
  179. package/es/page-header/page-header.vue.d.ts +6 -6
  180. package/es/page-header/page-header.vue_vue_type_script_setup_true_lang.js +19 -2
  181. package/es/pagination/page-item-ellipsis.vue_vue_type_script_setup_true_lang.js +15 -2
  182. package/es/pagination/page-item-step.vue.d.ts +2 -2
  183. package/es/pagination/page-item-step.vue_vue_type_script_setup_true_lang.js +23 -4
  184. package/es/pagination/page-item.vue.d.ts +2 -2
  185. package/es/pagination/page-item.vue_vue_type_script_setup_true_lang.js +21 -3
  186. package/es/pagination/pagination.js +5 -1
  187. package/es/pagination/style/index.css +6 -1
  188. package/es/pagination/style/index.scss +9 -3
  189. package/es/popconfirm/popconfirm.vue_vue_type_script_setup_true_lang.js +3 -1
  190. package/es/popover/popover.vue_vue_type_script_setup_true_lang.js +2 -0
  191. package/es/progress/style/index.css +2 -2
  192. package/es/progress/style/index.scss +5 -3
  193. package/es/qr-code/qr-code-status.vue_vue_type_script_setup_true_lang.js +5 -1
  194. package/es/qr-code/qr-code.vue_vue_type_script_setup_true_lang.js +13 -6
  195. package/es/radio/context.d.ts +1 -0
  196. package/es/radio/radio-group.js +6 -2
  197. package/es/radio/radio.js +1 -0
  198. package/es/radio/style/index.css +2 -2
  199. package/es/radio/style/index.scss +4 -2
  200. package/es/rate/rate.js +27 -1
  201. package/es/resize-box/resize-box.vue.d.ts +4 -4
  202. package/es/resize-box/resize-box.vue_vue_type_script_setup_true_lang.js +30 -1
  203. package/es/result/result.vue_vue_type_script_setup_true_lang.js +7 -4
  204. package/es/sd-vue.js +54 -52
  205. package/es/secret/secret.vue_vue_type_script_setup_true_lang.js +3 -1
  206. package/es/select/index.d.ts +124 -0
  207. package/es/select/select-dropdown.vue_vue_type_script_setup_true_lang.js +4 -1
  208. package/es/select/select.d.ts +62 -0
  209. package/es/select/select.js +20 -4
  210. package/es/select/style/index.css +1 -1
  211. package/es/select/style/index.scss +3 -1
  212. package/es/selectable-card/style/index.css +2 -2
  213. package/es/selectable-card/style/index.scss +5 -5
  214. package/es/skeleton/skeleton.vue_vue_type_script_setup_true_lang.js +5 -1
  215. package/es/slider/slider-button.vue.d.ts +2 -0
  216. package/es/slider/slider-button.vue_vue_type_script_setup_true_lang.js +7 -2
  217. package/es/slider/slider.vue_vue_type_script_setup_true_lang.js +23 -2
  218. package/es/slider/style/index.css +1 -1
  219. package/es/slider/style/index.scss +3 -1
  220. package/es/spin/spin.js +7 -2
  221. package/es/spin/style/index.css +1 -1
  222. package/es/spin/style/index.scss +1 -1
  223. package/es/split/split.vue.d.ts +4 -4
  224. package/es/split/split.vue_vue_type_script_setup_true_lang.js +27 -3
  225. package/es/statistic/statistic.vue_vue_type_script_setup_true_lang.js +1 -1
  226. package/es/steps/context.d.ts +1 -0
  227. package/es/steps/step.vue_vue_type_script_setup_true_lang.js +15 -2
  228. package/es/steps/steps.vue_vue_type_script_setup_true_lang.js +10 -2
  229. package/es/steps/style/index.css +1 -1
  230. package/es/steps/style/index.scss +1 -1
  231. package/es/style/animation/index.scss +1 -0
  232. package/es/style/animation/reduced-motion.scss +22 -0
  233. package/es/style/animation/zoom.scss +7 -6
  234. package/es/style/icon.scss +9 -1
  235. package/es/switch/style/index.css +1 -1
  236. package/es/switch/style/index.scss +4 -1
  237. package/es/switch/switch.vue_vue_type_script_setup_true_lang.js +6 -1
  238. package/es/table/index.d.ts +4 -4
  239. package/es/table/style/index.css +8 -8
  240. package/es/table/style/index.scss +11 -8
  241. package/es/table/table-operation-td.d.ts +15 -0
  242. package/es/table/table-operation-td.js +3 -3
  243. package/es/table/table-operation-th.js +1 -1
  244. package/es/table/table-tbody.js +4 -1
  245. package/es/table/table-td.js +2 -1
  246. package/es/table/table-th.d.ts +1 -1
  247. package/es/table/table-th.js +7 -5
  248. package/es/table/table-thead.js +4 -1
  249. package/es/table/table-tr.js +4 -1
  250. package/es/table/table.d.ts +1 -1
  251. package/es/table/table.js +8 -4
  252. package/es/tabs/context.d.ts +1 -0
  253. package/es/tabs/style/index.css +5 -5
  254. package/es/tabs/style/index.scss +7 -7
  255. package/es/tabs/tab-pane.vue_vue_type_script_setup_true_lang.js +21 -2
  256. package/es/tabs/tabs-button.js +1 -1
  257. package/es/tabs/tabs-nav.js +34 -1
  258. package/es/tabs/tabs-tab.vue_vue_type_script_setup_true_lang.js +27 -4
  259. package/es/tabs/tabs.js +4 -2
  260. package/es/tag/index.d.ts +5 -5
  261. package/es/tag/style/index.css +1 -1
  262. package/es/tag/style/index.scss +3 -1
  263. package/es/tag/tag.vue.d.ts +2 -2
  264. package/es/tag/tag.vue_vue_type_script_setup_true_lang.js +27 -4
  265. package/es/tag-group/tag-group.vue_vue_type_script_setup_true_lang.js +2 -2
  266. package/es/textarea/style/index.css +2 -2
  267. package/es/textarea/textarea.vue_vue_type_script_setup_true_lang.js +18 -3
  268. package/es/time-picker/time-column.vue_vue_type_script_setup_true_lang.js +11 -3
  269. package/es/time-picker/time-picker.vue_vue_type_script_setup_true_lang.js +6 -3
  270. package/es/toolbar/index.d.ts +3 -3
  271. package/es/toolbar/toolbar.vue.d.ts +2 -2
  272. package/es/toolbar/toolbar.vue_vue_type_script_setup_true_lang.js +5 -5
  273. package/es/tooltip/tooltip.vue_vue_type_script_setup_true_lang.js +1 -0
  274. package/es/transfer/style/index.css +1 -1
  275. package/es/transfer/style/index.scss +1 -1
  276. package/es/transfer/transfer-list-item.js +18 -2
  277. package/es/transfer/transfer.vue_vue_type_script_setup_true_lang.js +7 -5
  278. package/es/tree/base-node.vue_vue_type_script_setup_true_lang.js +28 -8
  279. package/es/tree/context.d.ts +2 -0
  280. package/es/tree/node-switcher.vue_vue_type_script_lang.js +1 -1
  281. package/es/tree/style/index.css +1 -1
  282. package/es/tree/style/index.scss +1 -1
  283. package/es/tree/tree.vue_vue_type_script_setup_true_lang.js +81 -2
  284. package/es/tree-select/tree-select.vue_vue_type_script_setup_true_lang.js +10 -1
  285. package/es/trigger/index.d.ts +45 -0
  286. package/es/trigger/trigger.d.ts +27 -0
  287. package/es/trigger/trigger.js +47 -5
  288. package/es/typography/edit-content.vue_vue_type_script_setup_true_lang.js +17 -8
  289. package/es/typography/operations.vue_vue_type_script_setup_true_lang.js +38 -6
  290. package/es/typography/style/index.css +2 -2
  291. package/es/typography/style/index.scss +2 -2
  292. package/es/upload/style/index.css +9 -9
  293. package/es/upload/style/index.scss +15 -9
  294. package/es/upload/upload-list-item.js +18 -5
  295. package/es/upload/upload-picture-item.js +27 -3
  296. package/es/verification-code/verification-code.js +8 -1
  297. package/json/vetur-attributes.json +15 -0
  298. package/json/vetur-tags.json +9 -2
  299. package/json/web-types.json +39 -1
  300. package/package.json +1 -1
package/es/tag/index.d.ts CHANGED
@@ -74,12 +74,12 @@ declare const Tag: {
74
74
  default: undefined;
75
75
  };
76
76
  }>> & Readonly<{
77
- onClose?: ((_ev: MouseEvent | KeyboardEvent) => any) | undefined;
77
+ onClose?: ((_ev: KeyboardEvent | MouseEvent) => any) | undefined;
78
78
  "onUpdate:visible"?: ((_visible: boolean) => any) | undefined;
79
79
  "onUpdate:checked"?: ((_checked: boolean) => any) | undefined;
80
80
  onCheck?: ((_checked: boolean, _ev: MouseEvent) => any) | undefined;
81
81
  }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
82
- close: (_ev: MouseEvent | KeyboardEvent) => any;
82
+ close: (_ev: KeyboardEvent | MouseEvent) => any;
83
83
  "update:visible": (_visible: boolean) => any;
84
84
  "update:checked": (_checked: boolean) => any;
85
85
  check: (_checked: boolean, _ev: MouseEvent) => any;
@@ -179,7 +179,7 @@ declare const Tag: {
179
179
  default: undefined;
180
180
  };
181
181
  }>> & Readonly<{
182
- onClose?: ((_ev: MouseEvent | KeyboardEvent) => any) | undefined;
182
+ onClose?: ((_ev: KeyboardEvent | MouseEvent) => any) | undefined;
183
183
  "onUpdate:visible"?: ((_visible: boolean) => any) | undefined;
184
184
  "onUpdate:checked"?: ((_checked: boolean) => any) | undefined;
185
185
  onCheck?: ((_checked: boolean, _ev: MouseEvent) => any) | undefined;
@@ -276,12 +276,12 @@ declare const Tag: {
276
276
  default: undefined;
277
277
  };
278
278
  }>> & Readonly<{
279
- onClose?: ((_ev: MouseEvent | KeyboardEvent) => any) | undefined;
279
+ onClose?: ((_ev: KeyboardEvent | MouseEvent) => any) | undefined;
280
280
  "onUpdate:visible"?: ((_visible: boolean) => any) | undefined;
281
281
  "onUpdate:checked"?: ((_checked: boolean) => any) | undefined;
282
282
  onCheck?: ((_checked: boolean, _ev: MouseEvent) => any) | undefined;
283
283
  }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
284
- close: (_ev: MouseEvent | KeyboardEvent) => any;
284
+ close: (_ev: KeyboardEvent | MouseEvent) => any;
285
285
  "update:visible": (_visible: boolean) => any;
286
286
  "update:checked": (_checked: boolean) => any;
287
287
  check: (_checked: boolean, _ev: MouseEvent) => any;
@@ -39,7 +39,7 @@
39
39
  }
40
40
  .sd-tag-checkable {
41
41
  cursor: pointer;
42
- transition: all 0.1s cubic-bezier(0, 0, 1, 1);
42
+ transition: background-color 0.1s cubic-bezier(0.34, 0.69, 0.1, 1), border-color 0.1s cubic-bezier(0.34, 0.69, 0.1, 1);
43
43
  }
44
44
  .sd-tag-checkable:hover {
45
45
  background-color: var(--sd-color-fill-2);
@@ -68,7 +68,9 @@ $colors:
68
68
 
69
69
  &-checkable {
70
70
  cursor: pointer;
71
- transition: all theme.$transition-duration-1 theme.$transition-timing-function-linear;
71
+ transition:
72
+ background-color theme.$transition-duration-1 theme.$transition-timing-function-standard,
73
+ border-color theme.$transition-duration-1 theme.$transition-timing-function-standard;
72
74
  }
73
75
 
74
76
  &-checkable:hover {
@@ -84,7 +84,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
84
84
  default: undefined;
85
85
  };
86
86
  }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
87
- close: (_ev: MouseEvent | KeyboardEvent) => any;
87
+ close: (_ev: KeyboardEvent | MouseEvent) => any;
88
88
  "update:visible": (_visible: boolean) => any;
89
89
  "update:checked": (_checked: boolean) => any;
90
90
  check: (_checked: boolean, _ev: MouseEvent) => any;
@@ -160,7 +160,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
160
160
  default: undefined;
161
161
  };
162
162
  }>> & Readonly<{
163
- onClose?: ((_ev: MouseEvent | KeyboardEvent) => any) | undefined;
163
+ onClose?: ((_ev: KeyboardEvent | MouseEvent) => any) | undefined;
164
164
  "onUpdate:visible"?: ((_visible: boolean) => any) | undefined;
165
165
  "onUpdate:checked"?: ((_checked: boolean) => any) | undefined;
166
166
  onCheck?: ((_checked: boolean, _ev: MouseEvent) => any) | undefined;
@@ -2,7 +2,9 @@ import { configProviderInjectionKey } from "../config-provider/context.js";
2
2
  import { _objectSpread2 } from "../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/objectSpread2.js";
3
3
  import { getPrefixCls } from "../_utils/global-config.js";
4
4
  import icon_hover_default from "../_components/icon-hover.js";
5
+ import { isActivationKey } from "../_utils/keyboard.js";
5
6
  import IconClose from "../icon/icon-close/index.js";
7
+ import { useI18n } from "../locale/index.js";
6
8
  import IconLoading from "../icon/icon-loading/index.js";
7
9
  import { useSize } from "../_hooks/use-size.js";
8
10
  import Ellipsis, { PerformantEllipsis } from "../ellipsis/index.js";
@@ -12,6 +14,11 @@ import { computed, createBlock, createCommentVNode, createElementBlock, createSl
12
14
  import chroma from "chroma-js";
13
15
  import { isNil } from "es-toolkit/compat";
14
16
  //#region components/tag/tag.vue?vue&type=script&setup=true&lang.ts
17
+ var _hoisted_1 = [
18
+ "role",
19
+ "tabindex",
20
+ "aria-pressed"
21
+ ];
15
22
  var tag_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent(_objectSpread2(_objectSpread2({}, { name: "Tag" }), {}, {
16
23
  __name: "tag",
17
24
  props: {
@@ -174,6 +181,7 @@ var tag_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompon
174
181
  const props = __props;
175
182
  const emit = __emit;
176
183
  const slots = useSlots();
184
+ const { t } = useI18n();
177
185
  const prefixCls = getPrefixCls("tag");
178
186
  const { mergedSize: _mergedSize } = useSize(computed(() => props.size));
179
187
  const configCtx = inject(configProviderInjectionKey, void 0);
@@ -321,12 +329,23 @@ var tag_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompon
321
329
  emit("check", newChecked, ev);
322
330
  }
323
331
  };
332
+ const handleTagKeydown = (ev) => {
333
+ if (!props.checkable) return;
334
+ if (isActivationKey(ev)) {
335
+ ev.preventDefault();
336
+ handleClick(ev);
337
+ }
338
+ };
324
339
  return (_ctx, _cache) => {
325
340
  return computedVisible.value ? (openBlock(), createElementBlock("span", {
326
341
  key: 0,
327
342
  class: normalizeClass(cls.value),
328
343
  style: normalizeStyle(style.value),
329
- onClick: handleClick
344
+ role: __props.checkable ? "button" : void 0,
345
+ tabindex: __props.checkable ? 0 : void 0,
346
+ "aria-pressed": __props.checkable ? computedChecked.value : void 0,
347
+ onClick: handleClick,
348
+ onKeydown: handleTagKeydown
330
349
  }, [
331
350
  _ctx.$slots.icon ? (openBlock(), createElementBlock("span", {
332
351
  key: 0,
@@ -358,7 +377,7 @@ var tag_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompon
358
377
  key: 3,
359
378
  tabindex: "0",
360
379
  role: "button",
361
- "aria-label": "Close",
380
+ "aria-label": unref(t)("a11y.close"),
362
381
  prefix: unref(prefixCls),
363
382
  class: normalizeClass(`${unref(prefixCls)}-close-btn`),
364
383
  onClick: withModifiers(handleClose, ["stop"]),
@@ -366,12 +385,16 @@ var tag_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompon
366
385
  }, {
367
386
  default: withCtx(() => [renderSlot(_ctx.$slots, "close-icon", {}, () => [createVNode(unref(IconClose))])]),
368
387
  _: 3
369
- }, 8, ["prefix", "class"])) : createCommentVNode("", true),
388
+ }, 8, [
389
+ "aria-label",
390
+ "prefix",
391
+ "class"
392
+ ])) : createCommentVNode("", true),
370
393
  __props.loading ? (openBlock(), createElementBlock("span", {
371
394
  key: 4,
372
395
  class: normalizeClass(`${unref(prefixCls)}-loading-icon`)
373
396
  }, [createVNode(unref(IconLoading))], 2)) : createCommentVNode("", true)
374
- ], 6)) : createCommentVNode("", true);
397
+ ], 46, _hoisted_1)) : createCommentVNode("", true);
375
398
  };
376
399
  }
377
400
  }));
@@ -6,8 +6,8 @@ import Ellipsis from "../ellipsis/index.js";
6
6
  import Tag from "../tag/index.js";
7
7
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, mergeProps, nextTick, normalizeClass, normalizeStyle, onMounted, openBlock, ref, renderList, renderSlot, resolveDynamicComponent, toDisplayString, unref, useSlots, watch, withCtx } from "vue";
8
8
  import { createReusableTemplate } from "@vueuse/core";
9
- import { isNumber } from "es-toolkit/compat";
10
9
  import { isFunction, isString } from "es-toolkit";
10
+ import { isNumber as isNumber$1 } from "es-toolkit/compat";
11
11
  //#region components/tag-group/tag-group.vue?vue&type=script&setup=true&lang.ts
12
12
  var OVERFLOW_COUNTER_VALUE = "__sd_tag_group_more__";
13
13
  var tag_group_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent(_objectSpread2(_objectSpread2({}, { name: "TagGroup" }), {}, {
@@ -42,7 +42,7 @@ var tag_group_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ define
42
42
  }
43
43
  function normalizeOption(option, index) {
44
44
  const { label = "label", value = "value" } = props.fieldNames;
45
- if (isString(option) || isNumber(option)) return {
45
+ if (isString(option) || isNumber$1(option)) return {
46
46
  key: `${String(option)}-${index}`,
47
47
  label: option,
48
48
  value: option,
@@ -32,7 +32,7 @@
32
32
  border: 1px solid transparent;
33
33
  border-radius: var(--sd-border-radius-small);
34
34
  cursor: text;
35
- transition: color 0.1s cubic-bezier(0, 0, 1, 1), border-color 0.1s cubic-bezier(0, 0, 1, 1), background-color 0.1s cubic-bezier(0, 0, 1, 1);
35
+ transition: color 0.1s cubic-bezier(0.34, 0.69, 0.1, 1), border-color 0.1s cubic-bezier(0.34, 0.69, 0.1, 1), background-color 0.1s cubic-bezier(0.34, 0.69, 0.1, 1);
36
36
  }
37
37
  .sd-textarea-wrapper:hover {
38
38
  background-color: var(--sd-color-fill-3);
@@ -117,7 +117,7 @@
117
117
  }
118
118
  .sd-textarea-wrapper .sd-textarea-clear-btn > svg {
119
119
  position: relative;
120
- transition: color 0.1s cubic-bezier(0, 0, 1, 1);
120
+ transition: color 0.1s cubic-bezier(0.34, 0.69, 0.1, 1);
121
121
  }
122
122
  .sd-textarea-wrapper:hover .sd-textarea-clear-btn {
123
123
  visibility: visible;
@@ -4,7 +4,9 @@ import { getPrefixCls } from "../_utils/global-config.js";
4
4
  import { isFunction, isNull, isObject, isUndefined } from "../_utils/is.js";
5
5
  import resize_observer_default from "../_components/resize-observer.js";
6
6
  import icon_hover_default from "../_components/icon-hover.js";
7
+ import { isActivationKey } from "../_utils/keyboard.js";
7
8
  import IconClose from "../icon/icon-close/index.js";
9
+ import { useI18n } from "../locale/index.js";
8
10
  import { useAllowClear } from "../_hooks/use-allow-clear.js";
9
11
  import { useCursor } from "../_hooks/use-cursor.js";
10
12
  import { isReadonlyModificationKey, useReadonlyTip, useReadonlyTipText } from "../_hooks/use-readonly-tip.js";
@@ -21,6 +23,7 @@ var _hoisted_1 = [
21
23
  "value",
22
24
  "placeholder"
23
25
  ];
26
+ var _hoisted_2 = ["aria-label"];
24
27
  var textarea_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent(_objectSpread2(_objectSpread2({}, {
25
28
  name: "Textarea",
26
29
  inheritAttrs: false
@@ -132,8 +135,9 @@ var textarea_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
132
135
  const emit = __emit;
133
136
  const attrs = useAttrs();
134
137
  const { disabled, error, modelValue, allowClear } = toRefs(props);
138
+ const { t } = useI18n();
135
139
  const prefixCls = getPrefixCls("textarea");
136
- const { mergedDisabled, mergedError: _mergedError, eventHandlers } = useFormItem({
140
+ const { mergedDisabled, mergedError: _mergedError, eventHandlers, formItemCtx } = useFormItem({
137
141
  disabled,
138
142
  error
139
143
  });
@@ -246,6 +250,12 @@ var textarea_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
246
250
  emitChange("", ev);
247
251
  emit("clear", ev);
248
252
  };
253
+ const handleClearKeydown = (ev) => {
254
+ if (isActivationKey(ev)) {
255
+ ev.preventDefault();
256
+ handleClear(ev);
257
+ }
258
+ };
249
259
  const handleKeyDown = (e) => {
250
260
  if (props.readonly && !mergedDisabled.value && isReadonlyModificationKey(e)) showReadonlyTip();
251
261
  };
@@ -257,6 +267,7 @@ var textarea_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
257
267
  const rawTextareaAttrs = getTextareaAttrs(attrs);
258
268
  const mergeTextareaAttrs = computed(() => {
259
269
  const attrs = _objectSpread2(_objectSpread2({}, rawTextareaAttrs), props.textareaAttrs);
270
+ if (formItemCtx.fieldId && attrs.id === void 0) attrs.id = formItemCtx.fieldId;
260
271
  if (mergedError.value) attrs["aria-invalid"] = true;
261
272
  return attrs;
262
273
  });
@@ -397,11 +408,15 @@ var textarea_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
397
408
  showClearBtn.value ? (openBlock(), createElementBlock("div", {
398
409
  key: 2,
399
410
  class: normalizeClass(`${unref(prefixCls)}-clear-btn`),
400
- onClick: handleClear
411
+ role: "button",
412
+ tabindex: "0",
413
+ "aria-label": unref(t)("a11y.clear"),
414
+ onClick: handleClear,
415
+ onKeydown: handleClearKeydown
401
416
  }, [createVNode(icon_hover_default, null, {
402
417
  default: withCtx(() => [createVNode(unref(IconClose))]),
403
418
  _: 1
404
- })], 2)) : createCommentVNode("", true)
419
+ })], 42, _hoisted_2)) : createCommentVNode("", true)
405
420
  ], 16)]),
406
421
  _: 3
407
422
  }, 8, ["popup-visible", "content"]);
@@ -3,7 +3,12 @@ import { isUndefined } from "../_utils/is.js";
3
3
  import { scrollTo } from "./utils/index.js";
4
4
  import { Fragment, createElementBlock, createElementVNode, defineComponent, nextTick, normalizeClass, onMounted, openBlock, ref, renderList, toDisplayString, watch } from "vue";
5
5
  //#region components/time-picker/time-column.vue?vue&type=script&setup=true&lang.ts
6
- var _hoisted_1 = ["onClick"];
6
+ var _hoisted_1 = { role: "listbox" };
7
+ var _hoisted_2 = [
8
+ "aria-selected",
9
+ "aria-disabled",
10
+ "onClick"
11
+ ];
7
12
  var time_column_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent(_objectSpread2(_objectSpread2({}, { name: "TimePickerColumn" }), {}, {
8
13
  __name: "time-column",
9
14
  props: {
@@ -50,13 +55,16 @@ var time_column_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
50
55
  ref_key: "refWrapper",
51
56
  ref: refWrapper,
52
57
  class: normalizeClass(`${__props.prefixCls}-column`)
53
- }, [createElementVNode("ul", null, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.list, (item) => {
58
+ }, [createElementVNode("ul", _hoisted_1, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.list, (item) => {
54
59
  return openBlock(), createElementBlock("li", {
55
60
  key: item.value,
56
61
  ref_for: true,
57
62
  ref: (el) => {
58
63
  onItemRef(el, item);
59
64
  },
65
+ role: "option",
66
+ "aria-selected": item.selected ? "true" : "false",
67
+ "aria-disabled": item.disabled || void 0,
60
68
  class: normalizeClass([`${__props.prefixCls}-cell`, {
61
69
  [`${__props.prefixCls}-cell-disabled`]: item.disabled,
62
70
  [`${__props.prefixCls}-cell-selected`]: item.selected
@@ -64,7 +72,7 @@ var time_column_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
64
72
  onClick: () => {
65
73
  onItemClick(item);
66
74
  }
67
- }, [createElementVNode("div", { class: normalizeClass(`${__props.prefixCls}-cell-inner`) }, toDisplayString(item.label), 3)], 10, _hoisted_1);
75
+ }, [createElementVNode("div", { class: normalizeClass(`${__props.prefixCls}-cell-inner`) }, toDisplayString(item.label), 3)], 10, _hoisted_2);
68
76
  }), 128))])], 2);
69
77
  };
70
78
  }
@@ -2,13 +2,13 @@ import { useFormItem } from "../_hooks/use-form-item.js";
2
2
  import { _objectSpread2 } from "../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/objectSpread2.js";
3
3
  import { getPrefixCls } from "../_utils/global-config.js";
4
4
  import { isArray, isUndefined } from "../_utils/is.js";
5
- import { useAllowClear } from "../_hooks/use-allow-clear.js";
6
5
  import { useI18n } from "../locale/index.js";
6
+ import { useAllowClear } from "../_hooks/use-allow-clear.js";
7
7
  import Trigger from "../trigger/index.js";
8
8
  import useState from "../_hooks/use-state.js";
9
9
  import useMergeState from "../_hooks/use-merge-state.js";
10
- import { dayjs, getDateValue, getSortedDayjsArray, isValueChange } from "../_utils/date.js";
11
10
  import input_default from "../_components/picker/input.js";
11
+ import { dayjs, getDateValue, getSortedDayjsArray, isValueChange } from "../_utils/date.js";
12
12
  import { getFormattedValue, isValidInputValue, isValidRangeValue } from "./utils/index.js";
13
13
  import useTimeFormat from "./hooks/use-time-format.js";
14
14
  import IconClockCircle from "../icon/icon-clock-circle/index.js";
@@ -376,7 +376,10 @@ var time_picker_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
376
376
  "prevent-focus": true,
377
377
  "unmount-on-close": __props.unmountOnClose,
378
378
  "popup-container": __props.popupContainer
379
- }, _objectSpread2({}, __props.triggerProps), { onPopupVisibleChange: onPanelVisibleChange }), {
379
+ }, _objectSpread2({}, __props.triggerProps), {
380
+ "aria-has-popup": "dialog",
381
+ onPopupVisibleChange: onPanelVisibleChange
382
+ }), {
380
383
  content: withCtx(() => [createElementVNode("div", {
381
384
  class: normalizeClass(`${unref(prefixCls)}-container`),
382
385
  onClick: onPanelClick
@@ -10,7 +10,7 @@ declare const Toolbar: {
10
10
  "onUpdate:modelValue"?: ((value: import("./types").ToolbarModelValue) => any) | undefined;
11
11
  }>, {
12
12
  search: () => void;
13
- reset: () => void;
13
+ reset: (emitReset?: unknown) => void;
14
14
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
15
15
  search: (params: import("./types").ToolbarModelValue) => any;
16
16
  reset: () => any;
@@ -30,7 +30,7 @@ declare const Toolbar: {
30
30
  "onUpdate:modelValue"?: ((value: import("./types").ToolbarModelValue) => any) | undefined;
31
31
  }>, {
32
32
  search: () => void;
33
- reset: () => void;
33
+ reset: (emitReset?: unknown) => void;
34
34
  }, {}, {}, {}, {}>;
35
35
  __isFragment?: never;
36
36
  __isTeleport?: never;
@@ -43,7 +43,7 @@ declare const Toolbar: {
43
43
  "onUpdate:modelValue"?: ((value: import("./types").ToolbarModelValue) => any) | undefined;
44
44
  }>, {
45
45
  search: () => void;
46
- reset: () => void;
46
+ reset: (emitReset?: unknown) => void;
47
47
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
48
48
  search: (params: import("./types").ToolbarModelValue) => any;
49
49
  reset: () => any;
@@ -1,7 +1,7 @@
1
1
  import type { ToolbarModelValue, ToolbarProps } from './types';
2
2
  type __VLS_Props = ToolbarProps;
3
3
  declare function handleSearch(): void;
4
- declare function handleReset(): void;
4
+ declare function reset(emitReset?: unknown): void;
5
5
  type __VLS_ModelProps = {
6
6
  modelValue?: ToolbarModelValue;
7
7
  };
@@ -24,7 +24,7 @@ type __VLS_Slots = {} & {
24
24
  };
25
25
  declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {
26
26
  search: typeof handleSearch;
27
- reset: typeof handleReset;
27
+ reset: typeof reset;
28
28
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
29
29
  search: (params: ToolbarModelValue) => any;
30
30
  reset: () => any;
@@ -3,8 +3,8 @@ import { getPrefixCls } from "../_utils/global-config.js";
3
3
  import { useResizeObserver } from "../_hooks/use-resize-observer.js";
4
4
  import Button from "../button/index.js";
5
5
  import Spin from "../spin/index.js";
6
- import IconDown from "../icon/icon-down/index.js";
7
6
  import Link from "../link/index.js";
7
+ import IconDown from "../icon/icon-down/index.js";
8
8
  import JsonForm from "../json-form/index.js";
9
9
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, guardReactiveProps, mergeModels, normalizeClass, normalizeProps, normalizeStyle, onBeforeUnmount, onMounted, openBlock, ref, renderList, renderSlot, toDisplayString, unref, useModel, withCtx, withKeys } from "vue";
10
10
  import { cloneDeep, omit } from "es-toolkit";
@@ -115,7 +115,7 @@ var toolbar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCo
115
115
  function handleSearch() {
116
116
  emit("search", modelValue.value);
117
117
  }
118
- function handleReset() {
118
+ function reset(emitReset = true) {
119
119
  var _formRef$value;
120
120
  const initMinusSkip = omit(initModel, __props.resetSkipKeys);
121
121
  const next = {};
@@ -123,14 +123,14 @@ var toolbar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCo
123
123
  for (const key of Object.keys(initMinusSkip)) next[key] = initMinusSkip[key];
124
124
  modelValue.value = next;
125
125
  (_formRef$value = formRef.value) === null || _formRef$value === void 0 || _formRef$value.clearValidate();
126
- emit("reset");
126
+ if (emitReset) emit("reset");
127
127
  }
128
128
  function toggleExpand() {
129
129
  isExpand.value = !isExpand.value;
130
130
  }
131
131
  __expose({
132
132
  search: handleSearch,
133
- reset: handleReset
133
+ reset
134
134
  });
135
135
  return (_ctx, _cache) => {
136
136
  return openBlock(), createElementBlock("div", {
@@ -181,7 +181,7 @@ var toolbar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCo
181
181
  })) : createCommentVNode("", true),
182
182
  __props.showReset ? (openBlock(), createBlock(unref(Button), {
183
183
  key: 1,
184
- onClick: handleReset
184
+ onClick: _cache[1] || (_cache[1] = ($event) => reset())
185
185
  }, {
186
186
  default: withCtx(() => [createTextVNode(toDisplayString(__props.resetText), 1)]),
187
187
  _: 1
@@ -80,6 +80,7 @@ var tooltip_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCo
80
80
  "animation-name": "zoom-in-fade-out",
81
81
  "auto-fit-transform-origin": "",
82
82
  role: "tooltip",
83
+ "aria-describedby-popup": "",
83
84
  onPopupVisibleChange: handlePopupVisibleChange
84
85
  }, {
85
86
  content: withCtx(() => [renderSlot(_ctx.$slots, "content", {}, () => [createTextVNode(toDisplayString(__props.content), 1)])]),
@@ -218,7 +218,7 @@
218
218
  }
219
219
  .sd-transfer-list-item-dragged {
220
220
  animation: sd-transfer-drag-item-blink 0.4s;
221
- animation-timing-function: cubic-bezier(0, 0, 1, 1);
221
+ animation-timing-function: cubic-bezier(0.34, 0.69, 0.1, 1);
222
222
  }
223
223
  .sd-transfer-operations {
224
224
  padding: 0 20px;
@@ -243,7 +243,7 @@ $transfer-prefix-cls: string.unquote('#{theme.$prefix}-transfer');
243
243
 
244
244
  &-dragged {
245
245
  animation: #{theme.$prefix}-transfer-drag-item-blink 0.4s;
246
- animation-timing-function: theme.$transition-timing-function-linear;
246
+ animation-timing-function: theme.$transition-timing-function-standard;
247
247
  }
248
248
  }
249
249
 
@@ -1,9 +1,11 @@
1
1
  import { getPrefixCls } from "../_utils/global-config.js";
2
2
  import icon_hover_default from "../_components/icon-hover.js";
3
+ import { isActivationKey } from "../_utils/keyboard.js";
3
4
  import IconClose from "../icon/icon-close/index.js";
5
+ import { useI18n } from "../locale/index.js";
4
6
  import Checkbox from "../checkbox/index.js";
5
7
  import { transferInjectionKey } from "./context.js";
6
- import { computed, createVNode, defineComponent, inject, mergeProps } from "vue";
8
+ import { computed, createVNode, defineComponent, inject } from "vue";
7
9
  //#region components/transfer/transfer-list-item.tsx
8
10
  var transfer_list_item_default = /* @__PURE__ */ defineComponent({
9
11
  name: "TransferListItem",
@@ -19,6 +21,7 @@ var transfer_list_item_default = /* @__PURE__ */ defineComponent({
19
21
  simple: Boolean
20
22
  },
21
23
  setup(props) {
24
+ const { t } = useI18n();
22
25
  const prefixCls = getPrefixCls("transfer-list-item");
23
26
  const transferCtx = inject(transferInjectionKey, void 0);
24
27
  const handleClick = () => {
@@ -31,6 +34,12 @@ var transfer_list_item_default = /* @__PURE__ */ defineComponent({
31
34
  const handleRemove = () => {
32
35
  transferCtx === null || transferCtx === void 0 || transferCtx.moveTo([props.data.value], "source");
33
36
  };
37
+ const handleRemoveKeydown = (ev) => {
38
+ if (isActivationKey(ev)) {
39
+ ev.preventDefault();
40
+ handleRemove();
41
+ }
42
+ };
34
43
  return () => {
35
44
  var _transferCtx$slots$it, _transferCtx$slots, _transferCtx$slots$it2;
36
45
  return createVNode("div", {
@@ -52,7 +61,14 @@ var transfer_list_item_default = /* @__PURE__ */ defineComponent({
52
61
  label: props.data.label,
53
62
  value: props.data.value
54
63
  })) !== null && _transferCtx$slots$it3 !== void 0 ? _transferCtx$slots$it3 : props.data.label];
55
- } }), props.allowClear && !props.disabled && createVNode(icon_hover_default, mergeProps({ "class": `${prefixCls}-remove-btn` }, { onClick: handleRemove }), { default: () => [createVNode(IconClose, null, null)] })]);
64
+ } }), props.allowClear && !props.disabled && createVNode("span", {
65
+ "class": `${prefixCls}-remove-btn`,
66
+ "role": "button",
67
+ "tabindex": "0",
68
+ "aria-label": t("a11y.remove"),
69
+ "onClick": handleRemove,
70
+ "onKeydown": handleRemoveKeydown
71
+ }, [createVNode(icon_hover_default, null, { default: () => [createVNode(IconClose, null, null)] })])]);
56
72
  };
57
73
  }
58
74
  });
@@ -1,9 +1,10 @@
1
1
  import { useFormItem } from "../_hooks/use-form-item.js";
2
2
  import { _objectSpread2 } from "../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/objectSpread2.js";
3
3
  import { getPrefixCls } from "../_utils/global-config.js";
4
+ import { useI18n } from "../locale/index.js";
4
5
  import Button from "../button/index.js";
5
- import IconRight from "../icon/icon-right/index.js";
6
6
  import IconLeft from "../icon/icon-left/index.js";
7
+ import IconRight from "../icon/icon-right/index.js";
7
8
  import { transferInjectionKey } from "./context.js";
8
9
  import transfer_view_default from "./transfer-view.js";
9
10
  import { computed, createBlock, createCommentVNode, createElementBlock, createSlots, createVNode, defineComponent, guardReactiveProps, normalizeClass, normalizeProps, openBlock, provide, reactive, ref, renderSlot, toRef, unref, useSlots, withCtx } from "vue";
@@ -190,6 +191,7 @@ var transfer_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
190
191
  */
191
192
  const slots = useSlots();
192
193
  const { mergedDisabled, eventHandlers } = useFormItem({ disabled: toRef(props, "disabled") });
194
+ const { t } = useI18n();
193
195
  const prefixCls = getPrefixCls("transfer");
194
196
  const _target = ref(props.defaultValue);
195
197
  const computedTarget = computed(() => {
@@ -312,7 +314,7 @@ var transfer_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
312
314
  class: normalizeClass([`${unref(prefixCls)}-operations`])
313
315
  }, [createVNode(unref(Button), {
314
316
  tabindex: "-1",
315
- "aria-label": "Move selected right",
317
+ "aria-label": unref(t)("a11y.moveSelectedRight"),
316
318
  size: "small",
317
319
  shape: "round",
318
320
  disabled: dataInfo.value.sourceInfo.validSelected.length === 0,
@@ -320,10 +322,10 @@ var transfer_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
320
322
  }, {
321
323
  icon: withCtx(() => [renderSlot(_ctx.$slots, "to-target-icon", {}, () => [createVNode(unref(IconRight))])]),
322
324
  _: 3
323
- }, 8, ["disabled"]), !__props.oneWay ? (openBlock(), createBlock(unref(Button), {
325
+ }, 8, ["aria-label", "disabled"]), !__props.oneWay ? (openBlock(), createBlock(unref(Button), {
324
326
  key: 0,
325
327
  tabindex: "-1",
326
- "aria-label": "Move selected left",
328
+ "aria-label": unref(t)("a11y.moveSelectedLeft"),
327
329
  size: "small",
328
330
  shape: "round",
329
331
  disabled: dataInfo.value.targetInfo.validSelected.length === 0,
@@ -331,7 +333,7 @@ var transfer_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
331
333
  }, {
332
334
  icon: withCtx(() => [renderSlot(_ctx.$slots, "to-source-icon", {}, () => [createVNode(unref(IconLeft))])]),
333
335
  _: 3
334
- }, 8, ["disabled"])) : createCommentVNode("", true)], 2)) : createCommentVNode("", true),
336
+ }, 8, ["aria-label", "disabled"])) : createCommentVNode("", true)], 2)) : createCommentVNode("", true),
335
337
  createVNode(transfer_view_default, {
336
338
  type: "target",
337
339
  class: normalizeClass(`${unref(prefixCls)}-view-target`),
@@ -3,8 +3,8 @@ import { getPrefixCls } from "../_utils/global-config.js";
3
3
  import { isFunction } from "../_utils/is.js";
4
4
  import Ellipsis, { PerformantEllipsis } from "../ellipsis/index.js";
5
5
  import Checkbox from "../checkbox/index.js";
6
- import { toArray } from "../_utils/to-array.js";
7
6
  import IconDragDotVertical from "../icon/icon-drag-dot-vertical/index.js";
7
+ import { toArray } from "../_utils/to-array.js";
8
8
  import useTreeContext from "./hooks/use-tree-context.js";
9
9
  import useDraggable$1 from "./hooks/use-draggable.js";
10
10
  import useNodeKey from "./hooks/use-node-key.js";
@@ -12,7 +12,15 @@ import node_switcher_default from "./node-switcher.js";
12
12
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, mergeProps, normalizeClass, normalizeProps, openBlock, reactive, ref, renderList, renderSlot, resolveDynamicComponent, toDisplayString, toRefs, unref, useSlots, withCtx } from "vue";
13
13
  import { onLongPress, useSwipe } from "@vueuse/core";
14
14
  //#region components/tree/base-node.vue?vue&type=script&setup=true&lang.ts
15
- var _hoisted_1 = ["data-level", "data-key"];
15
+ var _hoisted_1 = [
16
+ "data-level",
17
+ "data-key",
18
+ "tabindex",
19
+ "aria-level",
20
+ "aria-expanded",
21
+ "aria-selected",
22
+ "aria-disabled"
23
+ ];
16
24
  var _hoisted_2 = ["draggable"];
17
25
  var base_node_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent(_objectSpread2(_objectSpread2({}, { name: "BaseTreeNode" }), {}, {
18
26
  __name: "base-node",
@@ -192,6 +200,11 @@ var base_node_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ define
192
200
  var _treeContext$onNodeEv;
193
201
  (_treeContext$onNodeEv = treeContext.onNodeEvent) === null || _treeContext$onNodeEv === void 0 || _treeContext$onNodeEv.call(treeContext, eventName, key.value, e);
194
202
  }
203
+ function onTreeitemKeydown(e) {
204
+ var _treeContext$onNodeKe;
205
+ onNodeDomEvent("keydown", e);
206
+ (_treeContext$onNodeKe = treeContext.onNodeKeydown) === null || _treeContext$onNodeKe === void 0 || _treeContext$onNodeKe.call(treeContext, key.value, e);
207
+ }
195
208
  function onDragStart(e) {
196
209
  if (!draggable.value) return;
197
210
  e.stopPropagation();
@@ -229,7 +242,16 @@ var base_node_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ define
229
242
  return openBlock(), createElementBlock("div", {
230
243
  class: normalizeClass(classNames.value),
231
244
  "data-level": __props.level,
232
- "data-key": unref(nodekey)
245
+ "data-key": unref(nodekey),
246
+ role: "treeitem",
247
+ tabindex: unref(treeContext).activeKey === unref(nodekey) ? 0 : -1,
248
+ "aria-level": __props.level + 1,
249
+ "aria-expanded": unref(isLeaf) ? void 0 : expanded.value,
250
+ "aria-selected": unref(selectable) ? selected.value : void 0,
251
+ "aria-disabled": unref(disabled) || void 0,
252
+ onKeydown: onTreeitemKeydown,
253
+ onKeyup: _cache[21] || (_cache[21] = ($event) => onNodeDomEvent("keyup", $event)),
254
+ onKeypress: _cache[22] || (_cache[22] = ($event) => onNodeDomEvent("keypress", $event))
233
255
  }, [
234
256
  createElementVNode("span", { class: normalizeClass(`${unref(prefixCls)}-indent`) }, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.level, (i) => {
235
257
  return openBlock(), createElementBlock("span", {
@@ -272,6 +294,7 @@ var base_node_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ define
272
294
  disabled: unref(disableCheckbox) || unref(disabled),
273
295
  "model-value": checked.value,
274
296
  indeterminate: indeterminate.value,
297
+ tabindex: "-1",
275
298
  "uninject-group-context": "",
276
299
  onChange: onCheckboxChange
277
300
  }, null, 8, [
@@ -310,10 +333,7 @@ var base_node_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ define
310
333
  onTouchstart: _cache[17] || (_cache[17] = ($event) => onNodeDomEvent("touchstart", $event)),
311
334
  onTouchmove: _cache[18] || (_cache[18] = ($event) => onNodeDomEvent("touchmove", $event)),
312
335
  onTouchend: _cache[19] || (_cache[19] = ($event) => onNodeDomEvent("touchend", $event)),
313
- onTouchcancel: _cache[20] || (_cache[20] = ($event) => onNodeDomEvent("touchcancel", $event)),
314
- onKeydown: _cache[21] || (_cache[21] = ($event) => onNodeDomEvent("keydown", $event)),
315
- onKeyup: _cache[22] || (_cache[22] = ($event) => onNodeDomEvent("keyup", $event)),
316
- onKeypress: _cache[23] || (_cache[23] = ($event) => onNodeDomEvent("keypress", $event))
336
+ onTouchcancel: _cache[20] || (_cache[20] = ($event) => onNodeDomEvent("touchcancel", $event))
317
337
  }, [_ctx.$slots.icon || __props.icon || treeNodeIcon.value ? (openBlock(), createElementBlock("span", {
318
338
  key: 0,
319
339
  class: normalizeClass([`${unref(prefixCls)}-icon`, `${unref(prefixCls)}-custom-icon`])
@@ -337,7 +357,7 @@ var base_node_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ define
337
357
  node: treeNodeData.value
338
358
  }, nodeStatus), null, 16, ["node"])) : (openBlock(), createBlock(unref(IconDragDotVertical), { key: 3 }))], 2)) : createCommentVNode("", true)], 2)], 42, _hoisted_2),
339
359
  extra.value ? (openBlock(), createBlock(resolveDynamicComponent(extra.value), { key: 2 })) : createCommentVNode("", true)
340
- ], 10, _hoisted_1);
360
+ ], 42, _hoisted_1);
341
361
  };
342
362
  }
343
363
  }));