@sdata/web-vue 3.12.0 → 3.14.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 (287) hide show
  1. package/dist/sd.css +288 -126
  2. package/dist/sd.min.css +43 -1
  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/input-range.vue.d.ts +6 -7
  7. package/es/_components/picker/input-range.vue_vue_type_script_setup_true_lang.js +63 -46
  8. package/es/_components/picker/input.vue.d.ts +5 -6
  9. package/es/_components/picker/input.vue_vue_type_script_setup_true_lang.js +52 -35
  10. package/es/_components/picker/style/index.scss +8 -2
  11. package/es/_components/resize-observer.js +1 -1
  12. package/es/_components/resize-trigger.vue_vue_type_script_setup_true_lang.js +9 -2
  13. package/es/_components/select-view/select-view.d.ts +2 -0
  14. package/es/_components/select-view/select-view.js +5 -1
  15. package/es/_components/select-view/style/index.css +5 -5
  16. package/es/_hooks/use-focus-trap.d.ts +10 -0
  17. package/es/_hooks/use-focus-trap.js +115 -0
  18. package/es/_hooks/use-readonly-tip.d.ts +11 -0
  19. package/es/_hooks/use-readonly-tip.js +66 -0
  20. package/es/_utils/dom.js +1 -10
  21. package/es/_utils/keyboard.d.ts +4 -0
  22. package/es/_utils/keyboard.js +21 -2
  23. package/es/alert/alert.vue.d.ts +2 -2
  24. package/es/alert/alert.vue_vue_type_script_setup_true_lang.js +12 -3
  25. package/es/alert/index.d.ts +5 -5
  26. package/es/alert/style/index.css +1 -1
  27. package/es/alert/style/index.scss +1 -1
  28. package/es/anchor/anchor-link.vue_vue_type_script_setup_true_lang.js +3 -1
  29. package/es/anchor/anchor.vue_vue_type_script_setup_true_lang.js +2 -0
  30. package/es/anchor/style/index.css +1 -1
  31. package/es/anchor/style/index.scss +3 -1
  32. package/es/auto-complete/auto-complete.d.ts +9 -0
  33. package/es/auto-complete/auto-complete.js +19 -1
  34. package/es/auto-complete/index.d.ts +15 -0
  35. package/es/avatar/avatar.vue_vue_type_script_setup_true_lang.js +8 -2
  36. package/es/avatar/style/index.css +2 -2
  37. package/es/avatar/style/index.scss +2 -2
  38. package/es/back-top/back-top.vue_vue_type_script_setup_true_lang.js +5 -1
  39. package/es/back-top/style/index.css +1 -1
  40. package/es/back-top/style/index.scss +2 -1
  41. package/es/badge/badge.js +4 -1
  42. package/es/badge/style/index.css +3 -3
  43. package/es/badge/style/index.scss +3 -3
  44. package/es/breadcrumb/breadcrumb.js +1 -0
  45. package/es/button/button.vue.d.ts +16 -7
  46. package/es/button/button.vue_vue_type_script_setup_true_lang.js +62 -31
  47. package/es/button/index.d.ts +11 -0
  48. package/es/button/interface.d.ts +2 -0
  49. package/es/button/style/index.css +15 -6
  50. package/es/button/style/index.scss +25 -7
  51. package/es/calendar/style/event.scss +2 -2
  52. package/es/calendar/style/index.css +2 -2
  53. package/es/card/card.d.ts +312 -0
  54. package/es/card/card.js +39 -7
  55. package/es/card/index.d.ts +616 -0
  56. package/es/card/style/index.css +26 -3
  57. package/es/card/style/index.scss +34 -3
  58. package/es/carousel/carousel-arrow.vue.d.ts +4 -4
  59. package/es/carousel/carousel-arrow.vue_vue_type_script_setup_true_lang.js +20 -4
  60. package/es/carousel/carousel-indicator.vue_vue_type_script_setup_true_lang.js +23 -4
  61. package/es/carousel/carousel-item.vue_vue_type_script_setup_true_lang.js +8 -1
  62. package/es/carousel/carousel.js +18 -1
  63. package/es/carousel/style/index.css +1 -1
  64. package/es/carousel/style/index.scss +1 -1
  65. package/es/cascader/cascader.vue.d.ts +9 -8
  66. package/es/cascader/cascader.vue_vue_type_script_setup_true_lang.js +158 -128
  67. package/es/cascader/style/index.css +2 -2
  68. package/es/cascader/style/index.scss +3 -1
  69. package/es/cascader/types.d.ts +1 -0
  70. package/es/checkbox/checkbox-group.js +4 -1
  71. package/es/checkbox/checkbox.d.ts +9 -0
  72. package/es/checkbox/checkbox.js +14 -0
  73. package/es/checkbox/index.d.ts +15 -0
  74. package/es/checkbox/style/index.css +1 -1
  75. package/es/checkbox/style/index.scss +1 -1
  76. package/es/collapse/collapse-item.js +21 -3
  77. package/es/collapse/context.d.ts +1 -1
  78. package/es/color-picker/color-picker.d.ts +9 -0
  79. package/es/color-picker/color-picker.js +39 -11
  80. package/es/color-picker/index.d.ts +15 -0
  81. package/es/config-provider/context.d.ts +9 -9
  82. package/es/copy/copy.vue_vue_type_script_setup_true_lang.js +11 -3
  83. package/es/date-picker/index.d.ts +3 -6
  84. package/es/date-picker/panels/body.vue_vue_type_script_setup_true_lang.js +14 -1
  85. package/es/date-picker/picker.vue.d.ts +2 -3
  86. package/es/date-picker/picker.vue_vue_type_script_setup_true_lang.js +6 -5
  87. package/es/date-picker/range-picker.vue.d.ts +2 -3
  88. package/es/date-picker/range-picker.vue_vue_type_script_setup_true_lang.js +4 -4
  89. package/es/date-picker/style/index.css +5 -5
  90. package/es/date-picker/style/index.scss +4 -3
  91. package/es/drawer/drawer.vue.d.ts +1 -1
  92. package/es/drawer/drawer.vue_vue_type_script_setup_true_lang.js +30 -9
  93. package/es/drawer/index.d.ts +3 -3
  94. package/es/dropdown/dropdown-option.vue_vue_type_script_setup_true_lang.js +5 -1
  95. package/es/dropdown/dropdown-panel.vue.d.ts +9 -0
  96. package/es/dropdown/dropdown-panel.vue_vue_type_script_setup_true_lang.js +75 -2
  97. package/es/dropdown/dropdown-submenu.vue_vue_type_script_setup_true_lang.js +5 -2
  98. package/es/dropdown/dropdown.vue_vue_type_script_setup_true_lang.js +4 -2
  99. package/es/dropdown/style/index.css +1 -1
  100. package/es/dropdown/style/index.scss +3 -1
  101. package/es/empty/empty.js +1 -1
  102. package/es/file-previewer/file-previewer.vue.d.ts +1 -1
  103. package/es/file-previewer/file-previewer.vue_vue_type_script_setup_true_lang.js +7 -3
  104. package/es/file-previewer/index.d.ts +3 -3
  105. package/es/form/context.d.ts +1 -0
  106. package/es/form/form-item.vue_vue_type_script_setup_true_lang.js +6 -2
  107. package/es/form/style/index.css +2 -2
  108. package/es/form/style/index.scss +2 -2
  109. package/es/image/image.vue_vue_type_script_setup_true_lang.js +1 -1
  110. package/es/image/preview-action.d.ts +7 -127
  111. package/es/image/preview.vue.d.ts +1 -1
  112. package/es/image/preview.vue_vue_type_script_setup_true_lang.js +3 -3
  113. package/es/index.css +288 -126
  114. package/es/index.js +3 -3
  115. package/es/input/index.d.ts +6 -6
  116. package/es/input/input.d.ts +3 -3
  117. package/es/input/input.js +34 -8
  118. package/es/input/style/index.css +2 -2
  119. package/es/input/style/input.scss +4 -4
  120. package/es/input-number/index.d.ts +9 -9
  121. package/es/input-number/input-number.d.ts +5 -5
  122. package/es/input-number/input-number.js +13 -9
  123. package/es/input-number/style/index.css +3 -3
  124. package/es/input-number/style/index.scss +5 -1
  125. package/es/input-tag/index.d.ts +9 -6
  126. package/es/input-tag/input-tag.d.ts +5 -3
  127. package/es/input-tag/input-tag.js +49 -36
  128. package/es/input-tag/style/index.css +8 -8
  129. package/es/input-tag/style/index.scss +11 -5
  130. package/es/layout/sider.vue_vue_type_script_setup_true_lang.js +31 -6
  131. package/es/layout/style/index.css +2 -2
  132. package/es/layout/style/index.scss +4 -2
  133. package/es/link/style/index.css +1 -1
  134. package/es/link/style/index.scss +3 -1
  135. package/es/locale/interface.d.ts +1 -0
  136. package/es/locale/lang/en-us.js +1 -0
  137. package/es/locale/lang/zh-cn.js +1 -0
  138. package/es/locale/lang/zh-tw.js +1 -0
  139. package/es/mention/index.d.ts +15 -0
  140. package/es/mention/mention.d.ts +9 -0
  141. package/es/mention/mention.js +20 -1
  142. package/es/menu/base-menu.vue_vue_type_script_setup_true_lang.js +30 -4
  143. package/es/menu/item.js +14 -1
  144. package/es/menu/style/index.css +6 -6
  145. package/es/menu/style/index.scss +5 -3
  146. package/es/message/style/index.css +3 -3
  147. package/es/message/style/index.scss +5 -3
  148. package/es/modal/index.d.ts +3 -3
  149. package/es/modal/modal.vue.d.ts +1 -1
  150. package/es/modal/modal.vue_vue_type_script_setup_true_lang.js +30 -15
  151. package/es/modal/style/index.css +2 -2
  152. package/es/modal/style/index.scss +3 -2
  153. package/es/notification/style/index.css +3 -3
  154. package/es/notification/style/index.scss +11 -3
  155. package/es/page-header/page-header.vue.d.ts +6 -6
  156. package/es/page-header/page-header.vue_vue_type_script_setup_true_lang.js +12 -1
  157. package/es/pagination/page-item-ellipsis.vue_vue_type_script_setup_true_lang.js +12 -2
  158. package/es/pagination/page-item-step.vue.d.ts +2 -2
  159. package/es/pagination/page-item-step.vue_vue_type_script_setup_true_lang.js +19 -2
  160. package/es/pagination/page-item.vue.d.ts +2 -2
  161. package/es/pagination/page-item.vue_vue_type_script_setup_true_lang.js +21 -3
  162. package/es/pagination/pagination.js +6 -2
  163. package/es/pagination/style/index.css +6 -1
  164. package/es/pagination/style/index.scss +9 -3
  165. package/es/popconfirm/popconfirm.vue_vue_type_script_setup_true_lang.js +4 -2
  166. package/es/popover/popover.vue_vue_type_script_setup_true_lang.js +3 -1
  167. package/es/progress/style/index.css +2 -2
  168. package/es/progress/style/index.scss +5 -3
  169. package/es/qr-code/qr-code-status.vue_vue_type_script_setup_true_lang.js +5 -1
  170. package/es/qr-code/qr-code.vue_vue_type_script_setup_true_lang.js +11 -6
  171. package/es/radio/context.d.ts +1 -0
  172. package/es/radio/radio-group.js +6 -2
  173. package/es/radio/radio.js +1 -0
  174. package/es/radio/style/index.css +2 -2
  175. package/es/radio/style/index.scss +4 -2
  176. package/es/rate/index.d.ts +6 -6
  177. package/es/rate/rate.d.ts +3 -3
  178. package/es/rate/rate.js +42 -8
  179. package/es/resize-box/resize-box.vue.d.ts +4 -4
  180. package/es/resize-box/resize-box.vue_vue_type_script_setup_true_lang.js +30 -1
  181. package/es/result/result.vue_vue_type_script_setup_true_lang.js +7 -4
  182. package/es/scrollbar/style/index.css +57 -15
  183. package/es/scrollbar/style/index.scss +63 -15
  184. package/es/sd-vue.js +3 -3
  185. package/es/secret/secret.vue_vue_type_script_setup_true_lang.js +1 -1
  186. package/es/select/index.d.ts +139 -0
  187. package/es/select/select-dropdown.vue_vue_type_script_setup_true_lang.js +4 -1
  188. package/es/select/select.d.ts +71 -0
  189. package/es/select/select.js +45 -6
  190. package/es/select/style/index.css +1 -1
  191. package/es/select/style/index.scss +3 -1
  192. package/es/selectable-card/style/index.css +2 -2
  193. package/es/selectable-card/style/index.scss +5 -5
  194. package/es/skeleton/skeleton.vue_vue_type_script_setup_true_lang.js +5 -1
  195. package/es/slider/slider-button.vue.d.ts +2 -0
  196. package/es/slider/slider-button.vue_vue_type_script_setup_true_lang.js +7 -2
  197. package/es/slider/slider.vue_vue_type_script_setup_true_lang.js +23 -2
  198. package/es/slider/style/index.css +1 -1
  199. package/es/slider/style/index.scss +3 -1
  200. package/es/spin/spin.js +7 -2
  201. package/es/spin/style/index.css +1 -1
  202. package/es/spin/style/index.scss +1 -1
  203. package/es/split/split.vue.d.ts +4 -4
  204. package/es/split/split.vue_vue_type_script_setup_true_lang.js +27 -3
  205. package/es/steps/context.d.ts +1 -0
  206. package/es/steps/step.vue_vue_type_script_setup_true_lang.js +15 -2
  207. package/es/steps/steps.vue_vue_type_script_setup_true_lang.js +6 -1
  208. package/es/steps/style/index.css +1 -1
  209. package/es/steps/style/index.scss +1 -1
  210. package/es/style/animation/index.scss +1 -0
  211. package/es/style/animation/reduced-motion.scss +22 -0
  212. package/es/style/animation/zoom.scss +7 -6
  213. package/es/style/icon.scss +9 -1
  214. package/es/style/normalize.scss +68 -0
  215. package/es/switch/style/index.css +1 -1
  216. package/es/switch/style/index.scss +4 -1
  217. package/es/switch/switch.vue_vue_type_script_setup_true_lang.js +6 -1
  218. package/es/table/style/index.css +8 -8
  219. package/es/table/style/index.scss +11 -8
  220. package/es/table/table-operation-td.d.ts +15 -0
  221. package/es/table/table-tbody.js +4 -1
  222. package/es/table/table-td.js +2 -1
  223. package/es/table/table-th.js +6 -4
  224. package/es/table/table-thead.js +4 -1
  225. package/es/table/table-tr.js +4 -1
  226. package/es/table/table.js +6 -2
  227. package/es/tabs/context.d.ts +3 -0
  228. package/es/tabs/index.d.ts +32 -0
  229. package/es/tabs/style/index.css +34 -5
  230. package/es/tabs/style/index.scss +45 -7
  231. package/es/tabs/tab-pane.vue.d.ts +4 -2
  232. package/es/tabs/tab-pane.vue_vue_type_script_setup_true_lang.js +39 -4
  233. package/es/tabs/tabs-nav.js +34 -1
  234. package/es/tabs/tabs-tab.vue_vue_type_script_setup_true_lang.js +27 -4
  235. package/es/tabs/tabs.d.ts +19 -0
  236. package/es/tabs/tabs.js +25 -2
  237. package/es/tag/index.d.ts +5 -5
  238. package/es/tag/style/index.css +1 -1
  239. package/es/tag/style/index.scss +3 -1
  240. package/es/tag/tag.vue.d.ts +2 -2
  241. package/es/tag/tag.vue_vue_type_script_setup_true_lang.js +19 -2
  242. package/es/textarea/index.d.ts +15 -0
  243. package/es/textarea/style/index.css +2 -2
  244. package/es/textarea/textarea.vue.d.ts +11 -2
  245. package/es/textarea/textarea.vue_vue_type_script_setup_true_lang.js +84 -47
  246. package/es/time-picker/index.d.ts +3 -6
  247. package/es/time-picker/panel.vue_vue_type_script_setup_true_lang.js +1 -1
  248. package/es/time-picker/time-column.vue_vue_type_script_setup_true_lang.js +11 -3
  249. package/es/time-picker/time-picker.vue.d.ts +2 -3
  250. package/es/time-picker/time-picker.vue_vue_type_script_setup_true_lang.js +12 -6
  251. package/es/toolbar/toolbar.vue_vue_type_script_setup_true_lang.js +1 -1
  252. package/es/tooltip/index.d.ts +8 -127
  253. package/es/tooltip/interface.d.ts +17 -0
  254. package/es/tooltip/tooltip.vue.d.ts +5 -88
  255. package/es/tooltip/tooltip.vue_vue_type_script_setup_true_lang.js +9 -69
  256. package/es/tour/tour.vue_vue_type_script_setup_true_lang.js +1 -1
  257. package/es/transfer/style/index.css +1 -1
  258. package/es/transfer/style/index.scss +1 -1
  259. package/es/transfer/transfer-list-item.js +16 -2
  260. package/es/tree/base-node.vue_vue_type_script_setup_true_lang.js +27 -7
  261. package/es/tree/context.d.ts +2 -0
  262. package/es/tree/style/index.css +1 -1
  263. package/es/tree/style/index.scss +1 -1
  264. package/es/tree/tree.vue_vue_type_script_setup_true_lang.js +82 -3
  265. package/es/tree-select/tree-select.vue.d.ts +16 -10
  266. package/es/tree-select/tree-select.vue_vue_type_script_setup_true_lang.js +165 -133
  267. package/es/trigger/index.d.ts +45 -0
  268. package/es/trigger/trigger.d.ts +27 -0
  269. package/es/trigger/trigger.js +47 -5
  270. package/es/typography/base.js +1 -1
  271. package/es/typography/edit-content.vue_vue_type_script_setup_true_lang.js +11 -8
  272. package/es/typography/operations.vue_vue_type_script_setup_true_lang.js +38 -6
  273. package/es/typography/style/index.css +2 -2
  274. package/es/typography/style/index.scss +2 -2
  275. package/es/upload/style/index.css +9 -9
  276. package/es/upload/style/index.scss +15 -9
  277. package/es/upload/upload-button.js +1 -1
  278. package/es/upload/upload-list-item.js +18 -5
  279. package/es/upload/upload-picture-item.js +25 -3
  280. package/es/verification-code/index.d.ts +15 -6
  281. package/es/verification-code/verification-code.d.ts +9 -3
  282. package/es/verification-code/verification-code.js +10 -2
  283. package/json/vetur-attributes.json +63 -7
  284. package/json/vetur-tags.json +23 -7
  285. package/json/web-types.json +131 -10
  286. package/package.json +1 -1
  287. package/es/style/base.scss +0 -18
@@ -1,11 +1,13 @@
1
1
  import { _objectSpread2 } from "../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/objectSpread2.js";
2
2
  import { getPrefixCls } from "../_utils/global-config.js";
3
+ import { isActivationKey } from "../_utils/keyboard.js";
3
4
  import IconClose from "../icon/icon-close/index.js";
4
5
  import { useIndex } from "../_hooks/use-index.js";
5
6
  import IconCheck from "../icon/icon-check/index.js";
6
7
  import { stepsInjectionKey } from "./context.js";
7
8
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, defineComponent, getCurrentInstance, inject, normalizeClass, onBeforeUnmount, openBlock, reactive, ref, renderSlot, toDisplayString, unref } from "vue";
8
9
  //#region components/steps/step.vue?vue&type=script&setup=true&lang.ts
10
+ var _hoisted_1 = ["aria-current", "tabindex"];
9
11
  var step_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent(_objectSpread2(_objectSpread2({}, { name: "Step" }), {}, {
10
12
  __name: "step",
11
13
  props: {
@@ -89,6 +91,12 @@ var step_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
89
91
  const handleClick = (ev) => {
90
92
  if (!props.disabled) stepsCtx === null || stepsCtx === void 0 || stepsCtx.onClick(stepNumber.value, ev);
91
93
  };
94
+ const onKeydown = (ev) => {
95
+ if ((stepsCtx === null || stepsCtx === void 0 ? void 0 : stepsCtx.changeable) && !props.disabled && isActivationKey(ev)) {
96
+ ev.preventDefault();
97
+ stepsCtx === null || stepsCtx === void 0 || stepsCtx.onClick(stepNumber.value, ev);
98
+ }
99
+ };
92
100
  const cls = computed(() => [
93
101
  prefixCls,
94
102
  `${prefixCls}-${computedStatus.value}`,
@@ -99,11 +107,16 @@ var step_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
99
107
  }
100
108
  ]);
101
109
  return (_ctx, _cache) => {
110
+ var _unref2, _unref3;
102
111
  return openBlock(), createElementBlock("div", {
103
112
  ref_key: "itemRef",
104
113
  ref: itemRef,
105
114
  class: normalizeClass(cls.value),
106
- onClick: handleClick
115
+ role: "listitem",
116
+ "aria-current": stepNumber.value === ((_unref2 = unref(stepsCtx)) === null || _unref2 === void 0 ? void 0 : _unref2.current) ? "step" : void 0,
117
+ tabindex: ((_unref3 = unref(stepsCtx)) === null || _unref3 === void 0 ? void 0 : _unref3.changeable) && !props.disabled ? 0 : void 0,
118
+ onClick: handleClick,
119
+ onKeydown
107
120
  }, [
108
121
  showTail.value ? (openBlock(), createElementBlock("div", {
109
122
  key: 0,
@@ -126,7 +139,7 @@ var step_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
126
139
  key: 0,
127
140
  class: normalizeClass(`${unref(prefixCls)}-description`)
128
141
  }, [renderSlot(_ctx.$slots, "description", {}, () => [createTextVNode(toDisplayString(__props.description), 1)])], 2)) : createCommentVNode("", true)], 2)
129
- ], 2);
142
+ ], 42, _hoisted_1);
130
143
  };
131
144
  }
132
145
  }));
@@ -140,6 +140,7 @@ var steps_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
140
140
  lineLess,
141
141
  current: computedCurrent,
142
142
  errorSteps,
143
+ changeable: computed(() => props.changeable),
143
144
  getStatus,
144
145
  addItem,
145
146
  removeItem,
@@ -147,7 +148,11 @@ var steps_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
147
148
  parentCls: prefixCls
148
149
  }));
149
150
  return (_ctx, _cache) => {
150
- return openBlock(), createElementBlock("div", { class: normalizeClass(cls.value) }, [renderSlot(_ctx.$slots, "default")], 2);
151
+ return openBlock(), createElementBlock("div", {
152
+ role: "list",
153
+ "aria-label": "Steps",
154
+ class: normalizeClass(cls.value)
155
+ }, [renderSlot(_ctx.$slots, "default")], 2);
151
156
  };
152
157
  }
153
158
  }));
@@ -570,7 +570,7 @@
570
570
  }
571
571
  .sd-steps-changeable .sd-steps-item-title,
572
572
  .sd-steps-changeable .sd-steps-item-description {
573
- transition: all 0.1s cubic-bezier(0, 0, 1, 1);
573
+ transition: color 0.1s cubic-bezier(0.34, 0.69, 0.1, 1);
574
574
  }
575
575
  .sd-steps-changeable .sd-steps-item:not(.sd-steps-item-active, .sd-steps-item-disabled) {
576
576
  cursor: pointer;
@@ -15,7 +15,7 @@ $steps-prefix-cls: string.unquote('#{theme.$prefix}-steps');
15
15
  &-changeable {
16
16
  .#{$steps-prefix-cls}-item-title,
17
17
  .#{$steps-prefix-cls}-item-description {
18
- transition: all theme.$transition-duration-1 theme.$transition-timing-function-linear;
18
+ transition: color theme.$transition-duration-1 theme.$transition-timing-function-standard;
19
19
  }
20
20
  }
21
21
 
@@ -1,3 +1,4 @@
1
1
  @use '@style/animation/fade.scss' as *;
2
2
  @use '@style/animation/zoom.scss' as *;
3
3
  @use '@style/animation/slide.scss' as *;
4
+ @use '@style/animation/reduced-motion.scss' as *;
@@ -0,0 +1,22 @@
1
+ @use '@style/theme/index.scss' as *;
2
+
3
+ // 全局减少动态偏好安全网:覆盖所有 Vue 过渡入场/退场类(共享类与各组件自定义类)。
4
+ // 去掉 transform 位移(避免前庭不适),保留 opacity/颜色过渡并缩短至 dur-1。
5
+ // 使用 !important 以确保覆盖各组件自身的过渡声明(a11y 必须优先)。
6
+ // 仅匹配 Vue 过渡类名后缀(*-enter-active / *-leave-active / *-enter-from / *-leave-to 及 appear 变体),
7
+ // 不影响状态类(如 *-active、*-checked、*-selected)。
8
+ @media (prefers-reduced-motion: reduce) {
9
+ // 抹平初始/终末的 transform,使元素不再位移(opacity/颜色照常过渡)
10
+ [class*='-enter-from'],
11
+ [class*='-appear-from'],
12
+ [class*='-leave-to'] {
13
+ transform: none !important;
14
+ }
15
+
16
+ // 缩短过渡时长至 ≈即时(仍可见出现/消失,但不再有缓慢运动)
17
+ [class*='-enter-active'],
18
+ [class*='-appear-active'],
19
+ [class*='-leave-active'] {
20
+ transition-duration: $transition-duration-1 !important;
21
+ }
22
+ }
@@ -1,9 +1,9 @@
1
1
  @use '@style/theme/index.scss' as *;
2
2
 
3
- // modal use
3
+ // modal use(fullscreen 模态框)。从 scale(0.94) 起步而非 scale(0.5)。
4
4
  .zoom-in-enter-from,
5
5
  .zoom-in-appear-from {
6
- transform: scale(0.5, 0.5);
6
+ transform: scale(0.94, 0.94);
7
7
  opacity: 0;
8
8
  }
9
9
 
@@ -26,7 +26,7 @@
26
26
  }
27
27
 
28
28
  .zoom-in-leave-to {
29
- transform: scale(0.5, 0.5);
29
+ transform: scale(0.94, 0.94);
30
30
  opacity: 0;
31
31
  }
32
32
 
@@ -36,10 +36,11 @@
36
36
  transform $transition-duration-3 $transition-timing-function-standard;
37
37
  }
38
38
 
39
- // used by tooltip。缩放出现,渐隐退出
39
+ // used by tooltip / popover / popconfirm。缩放出现,渐隐退出。
40
+ // 从 scale(0.96) 起步而非 scale(0.5):小浮层只需轻微弹出,过大的缩放显得“凭空炸出”。
40
41
  .zoom-in-fade-out-enter-from,
41
42
  .zoom-in-fade-out-appear-from {
42
- transform: scale(0.5, 0.5);
43
+ transform: scale(0.96, 0.96);
43
44
  opacity: 0;
44
45
  }
45
46
 
@@ -61,8 +62,8 @@
61
62
  opacity: 1;
62
63
  }
63
64
 
65
+ // 退出改为纯渐隐:退出时不再缩放,避免吸引注意力(与类名 fade-out 一致)
64
66
  .zoom-in-fade-out-leave-to {
65
- transform: scale(0.5, 0.5);
66
67
  opacity: 0;
67
68
  }
68
69
 
@@ -30,6 +30,14 @@
30
30
  }
31
31
  }
32
32
 
33
+ // 减少动态偏好:放慢加载图标旋转(保留加载态指示,避免快速循环带来的不适)
34
+ @media (prefers-reduced-motion: reduce) {
35
+ .#{$prefix}-icon-loading,
36
+ .#{$prefix}-icon-spin {
37
+ animation-duration: 3s;
38
+ }
39
+ }
40
+
33
41
  .#{$prefix}-icon-hover {
34
42
  position: relative;
35
43
  display: block;
@@ -45,7 +53,7 @@
45
53
  box-sizing: border-box;
46
54
  background-color: global.$color-transparent;
47
55
  border-radius: component.$icon-hover-border-radius;
48
- transition: background-color $transition-duration-1 $transition-timing-function-linear;
56
+ transition: background-color $transition-duration-1 $transition-timing-function-standard;
49
57
  content: '';
50
58
  }
51
59
 
@@ -1,5 +1,6 @@
1
1
  /*! Tailwind CSS v4 preflight baseline scoped to SD Design layer */
2
2
  @use '@style/theme/index.scss' as *;
3
+ @use '@components/scrollbar/style/token.scss' as sb;
3
4
 
4
5
  /* stylelint-disable-next-line layer-name-pattern */
5
6
  @layer #{$prefix}-design {
@@ -224,4 +225,71 @@
224
225
  [hidden]:where(:not([hidden='until-found'])) {
225
226
  display: none !important;
226
227
  }
228
+
229
+ /* Native scrollbar baseline — mirrors the <Scrollbar> embed theme
230
+ (transparent track, neutral thumb; shares --sd-scrollbar-* with the <Scrollbar> component).
231
+ Opt-in: only applies within an element carrying the design-system
232
+ class (`.sd-design` by default; follows $prefix), e.g.
233
+ <html class="sd-design-system-scrollbar">. Standard scrollbar-* properties are
234
+ primary; ::-webkit-scrollbar*
235
+ is the fallback for browsers without standard support. Where the
236
+ standard properties apply they override the webkit rules, so the
237
+ rounded corners and hover/active states only render in webkit-only
238
+ browsers. */
239
+ @supports (scrollbar-color: auto) {
240
+ .#{$prefix}-design-system-scrollbar {
241
+ &,
242
+ & * {
243
+ scrollbar-width: thin;
244
+ scrollbar-color: var(
245
+ #{$sd-cssvars-prefix}-scrollbar-thumb-color,
246
+ #{sb.$scrollbar-thumb-bar-bg_color}
247
+ )
248
+ transparent;
249
+ }
250
+ }
251
+ }
252
+
253
+ @supports selector(::-webkit-scrollbar) {
254
+ .#{$prefix}-design-system-scrollbar {
255
+ &::-webkit-scrollbar,
256
+ & *::-webkit-scrollbar {
257
+ width: var(#{$sd-cssvars-prefix}-scrollbar-size, #{sb.$scrollbar-thumb-bar-size});
258
+ height: var(#{$sd-cssvars-prefix}-scrollbar-size, #{sb.$scrollbar-thumb-bar-size});
259
+ }
260
+
261
+ &::-webkit-scrollbar-track,
262
+ & *::-webkit-scrollbar-track {
263
+ background: transparent;
264
+ }
265
+
266
+ &::-webkit-scrollbar-thumb,
267
+ & *::-webkit-scrollbar-thumb {
268
+ background: var(
269
+ #{$sd-cssvars-prefix}-scrollbar-thumb-color,
270
+ #{sb.$scrollbar-thumb-bar-bg_color}
271
+ );
272
+ border-radius: var(
273
+ #{$sd-cssvars-prefix}-scrollbar-thumb-radius,
274
+ #{sb.$scrollbar-thumb-bar-border_radius}
275
+ );
276
+ }
277
+
278
+ &::-webkit-scrollbar-thumb:hover,
279
+ & *::-webkit-scrollbar-thumb:hover {
280
+ background: var(
281
+ #{$sd-cssvars-prefix}-scrollbar-thumb-color-hover,
282
+ #{sb.$scrollbar-thumb-bar-bg_color_hover}
283
+ );
284
+ }
285
+
286
+ &::-webkit-scrollbar-thumb:active,
287
+ & *::-webkit-scrollbar-thumb:active {
288
+ background: var(
289
+ #{$sd-cssvars-prefix}-scrollbar-thumb-color-active,
290
+ #{sb.$scrollbar-thumb-bar-bg_color_active}
291
+ );
292
+ }
293
+ }
294
+ }
227
295
  }
@@ -68,7 +68,7 @@
68
68
  font-size: 12px;
69
69
  background-color: var(--sd-color-bg-white);
70
70
  border-radius: 50%;
71
- transition: all 0.2s cubic-bezier(0.34, 0.69, 0.1, 1);
71
+ transition: left 0.2s cubic-bezier(0.34, 0.69, 0.1, 1), color 0.2s cubic-bezier(0.34, 0.69, 0.1, 1);
72
72
  }
73
73
  .sd-switch-checked {
74
74
  background-color: rgb(var(--sd-primary-6));
@@ -65,7 +65,10 @@ $switch-size-small-line-gap: (($switch-size-small - $switch-line-size-dot-small)
65
65
  font-size: 12px;
66
66
  background-color: $switch-color-dot-bg;
67
67
  border-radius: 50%;
68
- transition: all theme.$transition-duration-2 theme.$transition-timing-function-standard;
68
+ // 滑块位移依赖 left(相对父级定位),暂保留 left 过渡;颜色同步过渡
69
+ transition:
70
+ left theme.$transition-duration-2 theme.$transition-timing-function-standard,
71
+ color theme.$transition-duration-2 theme.$transition-timing-function-standard;
69
72
  }
70
73
 
71
74
  &-checked {
@@ -7,7 +7,11 @@ import IconLoading from "../icon/icon-loading/index.js";
7
7
  import { useSize } from "../_hooks/use-size.js";
8
8
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, defineComponent, getCurrentInstance, normalizeClass, normalizeStyle, openBlock, ref, renderSlot, toDisplayString, toRefs, unref, watch } from "vue";
9
9
  //#region components/switch/switch.vue?vue&type=script&setup=true&lang.ts
10
- var _hoisted_1 = ["aria-checked", "disabled"];
10
+ var _hoisted_1 = [
11
+ "aria-checked",
12
+ "aria-busy",
13
+ "disabled"
14
+ ];
11
15
  var switch_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent(_objectSpread2(_objectSpread2({}, { name: "Switch" }), {}, {
12
16
  __name: "switch",
13
17
  props: {
@@ -247,6 +251,7 @@ var switch_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
247
251
  type: "button",
248
252
  role: "switch",
249
253
  "aria-checked": computedCheck.value,
254
+ "aria-busy": computedLoading.value || void 0,
250
255
  class: normalizeClass(cls.value),
251
256
  style: normalizeStyle(buttonStyle.value),
252
257
  disabled: unref(mergedDisabled),
@@ -230,7 +230,7 @@
230
230
  width: 10px;
231
231
  box-shadow: none;
232
232
  transform: translateX(-100%);
233
- transition: box-shadow 0.1s cubic-bezier(0, 0, 1, 1);
233
+ transition: box-shadow 0.1s cubic-bezier(0.34, 0.69, 0.1, 1);
234
234
  content: "";
235
235
  pointer-events: none;
236
236
  }
@@ -248,7 +248,7 @@
248
248
  border: 1px solid var(--sd-color-white);
249
249
  border-radius: var(--sd-border-radius-medium);
250
250
  cursor: pointer;
251
- transition: all 0.1s cubic-bezier(0, 0, 1, 1);
251
+ transition: border-color 0.1s cubic-bezier(0.34, 0.69, 0.1, 1);
252
252
  }
253
253
  .sd-table-editable-row:hover .sd-table-cell-wrap-value {
254
254
  border: 1px solid var(--sd-color-neutral-3);
@@ -268,7 +268,7 @@
268
268
  border-radius: 2px;
269
269
  outline: none;
270
270
  cursor: pointer;
271
- transition: background-color 0.1s cubic-bezier(0, 0, 1, 1);
271
+ transition: background-color 0.1s cubic-bezier(0.34, 0.69, 0.1, 1);
272
272
  }
273
273
  .sd-table .sd-table-expand-btn:hover {
274
274
  color: var(--sd-color-text-1);
@@ -345,7 +345,7 @@
345
345
  max-width: 40px;
346
346
  }
347
347
  .sd-table-th {
348
- transition: background-color 0.1s cubic-bezier(0, 0, 1, 1);
348
+ transition: background-color 0.1s cubic-bezier(0.34, 0.69, 0.1, 1);
349
349
  }
350
350
  .sd-table-cell-with-sorter {
351
351
  display: flex;
@@ -392,7 +392,7 @@
392
392
  top: 50%;
393
393
  color: var(--sd-color-neutral-5);
394
394
  font-size: 12px;
395
- transition: all 0.1s cubic-bezier(0, 0, 1, 1);
395
+ transition: color 0.1s cubic-bezier(0.34, 0.69, 0.1, 1);
396
396
  }
397
397
  .sd-table-sorter-icon .sd-icon-caret-up {
398
398
  top: -2px;
@@ -418,7 +418,7 @@
418
418
  vertical-align: 0;
419
419
  background-color: transparent;
420
420
  cursor: pointer;
421
- transition: all 0.1s cubic-bezier(0, 0, 1, 1);
421
+ transition: background-color 0.1s cubic-bezier(0.34, 0.69, 0.1, 1);
422
422
  }
423
423
  .sd-table-filters:hover, .sd-table-filters-open {
424
424
  background-color: var(--sd-color-neutral-4);
@@ -426,7 +426,7 @@
426
426
  .sd-table-filters svg {
427
427
  color: var(--sd-color-text-2);
428
428
  font-size: 16px;
429
- transition: all 0.1s cubic-bezier(0, 0, 1, 1);
429
+ transition: color 0.1s cubic-bezier(0.34, 0.69, 0.1, 1);
430
430
  }
431
431
  .sd-table-filters-active svg {
432
432
  color: rgb(var(--sd-primary-6));
@@ -480,7 +480,7 @@
480
480
  width: 10px;
481
481
  height: 100%;
482
482
  box-shadow: none;
483
- transition: box-shadow 0.1s cubic-bezier(0, 0, 1, 1);
483
+ transition: box-shadow 0.1s cubic-bezier(0.34, 0.69, 0.1, 1);
484
484
  content: "";
485
485
  pointer-events: none;
486
486
  }
@@ -40,7 +40,8 @@ $table-cls-td: string.unquote('#{$table-prefix-cls}-td');
40
40
  border-radius: $table-border-radius-expand-button;
41
41
  outline: none;
42
42
  cursor: pointer;
43
- transition: background-color theme.$transition-duration-1 theme.$transition-timing-function-linear;
43
+ transition: background-color theme.$transition-duration-1
44
+ theme.$transition-timing-function-standard;
44
45
 
45
46
  &:hover {
46
47
  color: $table-color-expand-icon_hover;
@@ -318,7 +319,7 @@ $table-cls-td: string.unquote('#{$table-prefix-cls}-td');
318
319
  width: $table-size-shadow-wrapper-width;
319
320
  box-shadow: none;
320
321
  transform: translateX(-100%);
321
- transition: box-shadow theme.$transition-duration-1 theme.$transition-timing-function-linear;
322
+ transition: box-shadow theme.$transition-duration-1 theme.$transition-timing-function-standard;
322
323
  content: '';
323
324
  pointer-events: none;
324
325
  }
@@ -342,7 +343,8 @@ $table-cls-td: string.unquote('#{$table-prefix-cls}-td');
342
343
  border: $table-border-width solid $table-color-editable-body-cell-border;
343
344
  border-radius: $table-border-radius;
344
345
  cursor: pointer;
345
- transition: all theme.$transition-duration-1 theme.$transition-timing-function-linear;
346
+ transition: border-color theme.$transition-duration-1
347
+ theme.$transition-timing-function-standard;
346
348
  }
347
349
 
348
350
  &:hover {
@@ -457,7 +459,7 @@ $table-cls-td: string.unquote('#{$table-prefix-cls}-td');
457
459
 
458
460
  &-th {
459
461
  transition: background-color theme.$transition-duration-1
460
- theme.$transition-timing-function-linear;
462
+ theme.$transition-timing-function-standard;
461
463
  }
462
464
 
463
465
  &-cell-with-sorter {
@@ -516,7 +518,7 @@ $table-cls-td: string.unquote('#{$table-prefix-cls}-td');
516
518
  top: 50%;
517
519
  color: $table-color-header-sorter-icon;
518
520
  font-size: $table-font-size-header-sorter-icon;
519
- transition: all theme.$transition-duration-1 theme.$transition-timing-function-linear;
521
+ transition: color theme.$transition-duration-1 theme.$transition-timing-function-standard;
520
522
  }
521
523
 
522
524
  .#{theme.$prefix}-icon-caret-up {
@@ -549,7 +551,8 @@ $table-cls-td: string.unquote('#{$table-prefix-cls}-td');
549
551
  vertical-align: 0;
550
552
  background-color: transparent;
551
553
  cursor: pointer;
552
- transition: all theme.$transition-duration-1 theme.$transition-timing-function-linear;
554
+ transition: background-color theme.$transition-duration-1
555
+ theme.$transition-timing-function-standard;
553
556
 
554
557
  &:hover,
555
558
  &-open {
@@ -559,7 +562,7 @@ $table-cls-td: string.unquote('#{$table-prefix-cls}-td');
559
562
  svg {
560
563
  color: $table-color-header-filters-icon;
561
564
  font-size: $table-font-size-filters-icon;
562
- transition: all theme.$transition-duration-1 theme.$transition-timing-function-linear;
565
+ transition: color theme.$transition-duration-1 theme.$transition-timing-function-standard;
563
566
  }
564
567
 
565
568
  &-active {
@@ -633,7 +636,7 @@ $table-cls-td: string.unquote('#{$table-prefix-cls}-td');
633
636
  width: $table-size-shadow-wrapper-width;
634
637
  height: 100%;
635
638
  box-shadow: none;
636
- transition: box-shadow theme.$transition-duration-1 theme.$transition-timing-function-linear;
639
+ transition: box-shadow theme.$transition-duration-1 theme.$transition-timing-function-standard;
637
640
  content: '';
638
641
  pointer-events: none;
639
642
  }
@@ -100,6 +100,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
100
100
  type: BooleanConstructor;
101
101
  default: boolean;
102
102
  };
103
+ tabindex: {
104
+ type: (StringConstructor | NumberConstructor)[];
105
+ default: undefined;
106
+ };
103
107
  uninjectGroupContext: {
104
108
  type: BooleanConstructor;
105
109
  default: boolean;
@@ -115,6 +119,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
115
119
  modelValue: boolean | (string | number | boolean)[];
116
120
  defaultChecked: boolean;
117
121
  indeterminate: boolean;
122
+ tabindex: string | number;
118
123
  uninjectGroupContext: boolean;
119
124
  }, true, {}, {}, {
120
125
  IconCheck: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -217,6 +222,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
217
222
  type: BooleanConstructor;
218
223
  default: boolean;
219
224
  };
225
+ tabindex: {
226
+ type: (StringConstructor | NumberConstructor)[];
227
+ default: undefined;
228
+ };
220
229
  uninjectGroupContext: {
221
230
  type: BooleanConstructor;
222
231
  default: boolean;
@@ -229,6 +238,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
229
238
  modelValue: boolean | (string | number | boolean)[];
230
239
  defaultChecked: boolean;
231
240
  indeterminate: boolean;
241
+ tabindex: string | number;
232
242
  uninjectGroupContext: boolean;
233
243
  }>;
234
244
  __isFragment?: never;
@@ -254,6 +264,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
254
264
  type: BooleanConstructor;
255
265
  default: boolean;
256
266
  };
267
+ tabindex: {
268
+ type: (StringConstructor | NumberConstructor)[];
269
+ default: undefined;
270
+ };
257
271
  uninjectGroupContext: {
258
272
  type: BooleanConstructor;
259
273
  default: boolean;
@@ -269,6 +283,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
269
283
  modelValue: boolean | (string | number | boolean)[];
270
284
  defaultChecked: boolean;
271
285
  indeterminate: boolean;
286
+ tabindex: string | number;
272
287
  uninjectGroupContext: boolean;
273
288
  }, {}, string, {}, {
274
289
  IconCheck: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -7,7 +7,10 @@ var table_tbody_default = /* @__PURE__ */ defineComponent({
7
7
  const prefixCls = getPrefixCls("table");
8
8
  return () => {
9
9
  var _slots$tbody$, _slots$tbody;
10
- return createVNode((_slots$tbody$ = (_slots$tbody = slots.tbody) === null || _slots$tbody === void 0 ? void 0 : _slots$tbody.call(slots)[0]) !== null && _slots$tbody$ !== void 0 ? _slots$tbody$ : "div", { class: `${prefixCls}-tbody` }, { default: slots.default });
10
+ return createVNode((_slots$tbody$ = (_slots$tbody = slots.tbody) === null || _slots$tbody === void 0 ? void 0 : _slots$tbody.call(slots)[0]) !== null && _slots$tbody$ !== void 0 ? _slots$tbody$ : "div", {
11
+ class: `${prefixCls}-tbody`,
12
+ role: "rowgroup"
13
+ }, { default: slots.default });
11
14
  };
12
15
  }
13
16
  });
@@ -184,7 +184,8 @@ var table_td_default = /* @__PURE__ */ defineComponent({
184
184
  rowIndex: (_props$rowIndex2 = props.rowIndex) !== null && _props$rowIndex2 !== void 0 ? _props$rowIndex2 : -1
185
185
  })[0]) !== null && _slots$td$ !== void 0 ? _slots$td$ : "div", {
186
186
  class: cls.value,
187
- style: style.value
187
+ style: style.value,
188
+ role: "cell"
188
189
  }, { default: () => [renderCell()] });
189
190
  };
190
191
  }
@@ -2,9 +2,9 @@ import { _objectSpread2 } from "../_virtual/_@oxc-project_runtime@0.133.0/helper
2
2
  import { getPrefixCls } from "../_utils/global-config.js";
3
3
  import { isBoolean, isFunction, isObject } from "../_utils/is.js";
4
4
  import icon_hover_default from "../_components/icon-hover.js";
5
- import Button from "../button/index.js";
6
- import Trigger from "../trigger/index.js";
7
5
  import { useI18n } from "../locale/index.js";
6
+ import Trigger from "../trigger/index.js";
7
+ import Button from "../button/index.js";
8
8
  import Checkbox from "../checkbox/index.js";
9
9
  import Radio from "../radio/index.js";
10
10
  import IconCaretDown from "../icon/icon-caret-down/index.js";
@@ -207,8 +207,10 @@ var table_th_default = /* @__PURE__ */ defineComponent({
207
207
  return () => {
208
208
  var _slots$th$, _slots$th;
209
209
  return createVNode((_slots$th$ = (_slots$th = slots.th) === null || _slots$th === void 0 ? void 0 : _slots$th.call(slots, { column: props.column })[0]) !== null && _slots$th$ !== void 0 ? _slots$th$ : "div", {
210
- class: cls.value,
211
- style: style.value
210
+ "class": cls.value,
211
+ "style": style.value,
212
+ "role": "columnheader",
213
+ "aria-sort": hasSorter.value ? sortOrder.value === "ascend" ? "ascending" : sortOrder.value === "descend" ? "descending" : "none" : void 0
212
214
  }, { default: () => [
213
215
  renderCell(),
214
216
  !filterIconAlignLeft.value && renderFilter(),
@@ -7,7 +7,10 @@ var table_thead_default = /* @__PURE__ */ defineComponent({
7
7
  const prefixCls = getPrefixCls("table");
8
8
  return () => {
9
9
  var _slots$thead$, _slots$thead;
10
- return createVNode((_slots$thead$ = (_slots$thead = slots.thead) === null || _slots$thead === void 0 ? void 0 : _slots$thead.call(slots)[0]) !== null && _slots$thead$ !== void 0 ? _slots$thead$ : "div", { class: `${prefixCls}-thead` }, { default: slots.default });
10
+ return createVNode((_slots$thead$ = (_slots$thead = slots.thead) === null || _slots$thead === void 0 ? void 0 : _slots$thead.call(slots)[0]) !== null && _slots$thead$ !== void 0 ? _slots$thead$ : "div", {
11
+ class: `${prefixCls}-thead`,
12
+ role: "rowgroup"
13
+ }, { default: slots.default });
11
14
  };
12
15
  }
13
16
  });
@@ -25,7 +25,10 @@ var table_tr_default = /* @__PURE__ */ defineComponent({
25
25
  return createVNode((_slots$tr$ = (_slots$tr = slots.tr) === null || _slots$tr === void 0 ? void 0 : _slots$tr.call(slots, {
26
26
  rowIndex: props.rowIndex,
27
27
  record: (_props$record = props.record) === null || _props$record === void 0 ? void 0 : _props$record.raw
28
- })[0]) !== null && _slots$tr$ !== void 0 ? _slots$tr$ : "div", { class: cls.value }, { default: slots.default });
28
+ })[0]) !== null && _slots$tr$ !== void 0 ? _slots$tr$ : "div", {
29
+ class: cls.value,
30
+ role: "row"
31
+ }, { default: slots.default });
29
32
  };
30
33
  }
31
34
  });
package/es/table/table.js CHANGED
@@ -1502,11 +1502,15 @@ var table_default = /* @__PURE__ */ defineComponent({
1502
1502
  });
1503
1503
  const render = () => {
1504
1504
  var _slots$columns;
1505
- if (slots.default) return createVNode("div", { "class": cls.value }, [renderTable(slots.default)]);
1505
+ if (slots.default) return createVNode("div", {
1506
+ "class": cls.value,
1507
+ "role": "table"
1508
+ }, [renderTable(slots.default)]);
1506
1509
  children.value = (_slots$columns = slots.columns) === null || _slots$columns === void 0 ? void 0 : _slots$columns.call(slots);
1507
1510
  return createVNode("div", {
1508
1511
  "class": cls.value,
1509
- "style": style.value
1512
+ "style": style.value,
1513
+ "role": "table"
1510
1514
  }, [children.value, createVNode(Spin, spinProps.value, { default: () => [
1511
1515
  props.pagination !== false && (flattenData.value.length > 0 || sortedData.value.length > 0) && isPaginationTop.value && renderPagination(),
1512
1516
  renderTable(),
@@ -1,4 +1,5 @@
1
1
  import { InjectionKey } from 'vue';
2
+ import type { ScrollbarProps } from '../scrollbar';
2
3
  import { TabData, TabTriggerEvent } from './interface';
3
4
  export interface TabsContext {
4
5
  lazyLoad: boolean;
@@ -7,5 +8,7 @@ export interface TabsContext {
7
8
  addItem: (id: number, data: TabData) => void;
8
9
  removeItem: (id: number) => void;
9
10
  trigger: TabTriggerEvent;
11
+ scrollbar: ScrollbarProps | false;
12
+ tabsId: string;
10
13
  }
11
14
  export declare const tabsInjectionKey: InjectionKey<TabsContext>;