@rainbow-oh/yee-c 0.8.0 → 0.8.2

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 (188) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +40 -25
  3. package/dist/cjs/Card/card.js +7 -3
  4. package/dist/cjs/Carousel/carousel-item.js +7 -2
  5. package/dist/cjs/Carousel/carousel.js +31 -4
  6. package/dist/cjs/Cascader/cascader.js +38 -30
  7. package/dist/cjs/Cascader/column.js +17 -9
  8. package/dist/cjs/Cascader/node.js +16 -4
  9. package/dist/cjs/Cascader/search-list.js +31 -14
  10. package/dist/cjs/Cascader/utils/index.js +1 -5
  11. package/dist/cjs/Checkbox/checkbox-group.js +23 -14
  12. package/dist/cjs/Checkbox/checkbox.js +6 -3
  13. package/dist/cjs/Collapse/panel.js +10 -1
  14. package/dist/cjs/Dialog/dialog.js +22 -7
  15. package/dist/cjs/Dialog/interface.d.ts +1 -1
  16. package/dist/cjs/Dialog/style/index.less +2 -1
  17. package/dist/cjs/Drawer/drawer.js +22 -5
  18. package/dist/cjs/Form/Group.js +1 -1
  19. package/dist/cjs/Form/demo/tooltip.js +1 -3
  20. package/dist/cjs/List/hooks/useListKeyboard.js +3 -1
  21. package/dist/cjs/Menu/menu-item.js +14 -5
  22. package/dist/cjs/Menu/menu.js +26 -2
  23. package/dist/cjs/Pagination/items.js +60 -27
  24. package/dist/cjs/Pagination/pagination.js +33 -11
  25. package/dist/cjs/PickerPanel/panels/DateTimePanel/index.d.ts +1 -1
  26. package/dist/cjs/PickerPanel/panels/MonthPanel/MonthHeader.js +7 -1
  27. package/dist/cjs/Radio/radio-group.js +6 -5
  28. package/dist/cjs/Radio/radio.js +39 -29
  29. package/dist/cjs/Rate/rate.js +6 -1
  30. package/dist/cjs/Rate/star.js +31 -3
  31. package/dist/cjs/Segmented/demo/variant.js +15 -1
  32. package/dist/cjs/Segmented/index.d.ts +1 -1
  33. package/dist/cjs/Segmented/segmented.js +12 -15
  34. package/dist/cjs/Select/option.js +8 -1
  35. package/dist/cjs/Select/options.js +9 -1
  36. package/dist/cjs/Select/select.js +3 -1
  37. package/dist/cjs/Steps/step.js +19 -5
  38. package/dist/cjs/Steps/steps.js +11 -1
  39. package/dist/cjs/Table/demo/components-override.js +31 -2
  40. package/dist/cjs/Table/demo/grouping.js +7 -1
  41. package/dist/cjs/Table/hooks/useColumns.d.ts +3 -3
  42. package/dist/cjs/Table/hooks/useColumns.js +11 -14
  43. package/dist/cjs/Table/index.d.ts +1 -1
  44. package/dist/cjs/Table/style/index.less +2 -4
  45. package/dist/cjs/Table/tbody/row.js +1 -4
  46. package/dist/cjs/Table/theader/index.js +12 -4
  47. package/dist/cjs/Tabs/tab-content.js +3 -1
  48. package/dist/cjs/Tabs/tab-header/index.js +3 -1
  49. package/dist/cjs/Tabs/tab-header/tab-header-title.js +3 -1
  50. package/dist/cjs/Tour/index.d.ts +1 -1
  51. package/dist/cjs/Tree/style/index.less +1 -5
  52. package/dist/cjs/Tree/tree.js +38 -35
  53. package/dist/cjs/hooks/useDelayState.js +3 -2
  54. package/dist/cjs/hooks/useEvent.js +1 -4
  55. package/dist/cjs/hooks/useFocusManage.d.ts +1 -1
  56. package/dist/cjs/hooks/useFocusManage.js +27 -22
  57. package/dist/cjs/style/size.css +2 -0
  58. package/dist/cjs/style/themes.css +1 -1
  59. package/dist/cjs/style/variables.css +3 -1
  60. package/dist/cjs/utils/focusStack.d.ts +6 -2
  61. package/dist/cjs/utils/focusStack.js +40 -11
  62. package/dist/cjs/version.d.ts +1 -1
  63. package/dist/cjs/version.js +1 -1
  64. package/dist/esm/Card/card.js +7 -3
  65. package/dist/esm/Carousel/carousel-item.js +7 -2
  66. package/dist/esm/Carousel/carousel.js +31 -4
  67. package/dist/esm/Cascader/cascader.js +3 -1
  68. package/dist/esm/Cascader/column.js +2 -1
  69. package/dist/esm/Cascader/node.js +18 -4
  70. package/dist/esm/Cascader/search-list.js +18 -4
  71. package/dist/esm/Checkbox/checkbox-group.js +3 -1
  72. package/dist/esm/Checkbox/checkbox.js +6 -3
  73. package/dist/esm/Collapse/panel.js +11 -2
  74. package/dist/esm/Dialog/dialog.js +28 -11
  75. package/dist/esm/Dialog/interface.d.ts +1 -1
  76. package/dist/esm/Dialog/style/index.less +2 -1
  77. package/dist/esm/Drawer/drawer.js +16 -7
  78. package/dist/esm/Form/Group.js +1 -1
  79. package/dist/esm/Menu/menu-item.js +16 -5
  80. package/dist/esm/Menu/menu.js +11 -5
  81. package/dist/esm/Pagination/items.js +14 -5
  82. package/dist/esm/Pagination/pagination.js +16 -4
  83. package/dist/esm/PickerPanel/panels/DateTimePanel/index.d.ts +1 -1
  84. package/dist/esm/Radio/radio-group.js +5 -4
  85. package/dist/esm/Radio/radio.js +5 -4
  86. package/dist/esm/Rate/rate.js +6 -1
  87. package/dist/esm/Rate/star.js +12 -4
  88. package/dist/esm/Segmented/index.d.ts +1 -1
  89. package/dist/esm/Segmented/segmented.js +1 -1
  90. package/dist/esm/Steps/step.js +12 -6
  91. package/dist/esm/Steps/steps.js +3 -1
  92. package/dist/esm/Table/demo/components-override.js +1 -0
  93. package/dist/esm/Table/hooks/useColumns.d.ts +3 -3
  94. package/dist/esm/Table/hooks/useColumns.js +13 -16
  95. package/dist/esm/Table/index.d.ts +1 -1
  96. package/dist/esm/Table/style/index.less +2 -4
  97. package/dist/esm/Tabs/tab-content.js +3 -1
  98. package/dist/esm/Tabs/tab-header/index.js +3 -1
  99. package/dist/esm/Tabs/tab-header/tab-header-title.js +3 -1
  100. package/dist/esm/Tour/index.d.ts +1 -1
  101. package/dist/esm/Tree/style/index.less +1 -5
  102. package/dist/esm/Tree/tree.js +1 -1
  103. package/dist/esm/hooks/useDelayState.js +5 -2
  104. package/dist/esm/hooks/useFocusManage.d.ts +1 -1
  105. package/dist/esm/hooks/useFocusManage.js +31 -13
  106. package/dist/esm/style/size.css +2 -0
  107. package/dist/esm/style/themes.css +1 -1
  108. package/dist/esm/style/variables.css +3 -1
  109. package/dist/esm/utils/focusStack.d.ts +6 -2
  110. package/dist/esm/utils/focusStack.js +37 -14
  111. package/dist/esm/version.d.ts +1 -1
  112. package/dist/esm/version.js +1 -1
  113. package/dist/umd/yee-c.min.css +2 -2
  114. package/dist/umd/yee-c.min.js +1 -1
  115. package/package.json +10 -6
  116. package/src/Anchor/anchor.tsx +2 -2
  117. package/src/Card/card.tsx +5 -1
  118. package/src/Carousel/carousel-item.tsx +7 -1
  119. package/src/Carousel/carousel.tsx +29 -3
  120. package/src/Cascader/cascader.tsx +5 -1
  121. package/src/Cascader/column.tsx +5 -1
  122. package/src/Cascader/node.tsx +14 -2
  123. package/src/Cascader/search-list.tsx +19 -3
  124. package/src/Cascader/utils/index.ts +3 -6
  125. package/src/Checkbox/checkbox-group.tsx +6 -1
  126. package/src/Checkbox/checkbox.tsx +3 -0
  127. package/src/Collapse/panel.tsx +11 -1
  128. package/src/Dialog/dialog.tsx +35 -6
  129. package/src/Dialog/interface.ts +1 -1
  130. package/src/Dialog/style/index.less +2 -1
  131. package/src/Drawer/drawer.tsx +18 -3
  132. package/src/Form/Group.tsx +2 -4
  133. package/src/Form/demo/tooltip.tsx +2 -11
  134. package/src/Form/utils/validate.ts +1 -4
  135. package/src/List/hooks/useListKeyboard.ts +3 -3
  136. package/src/List/list.tsx +2 -1
  137. package/src/Menu/menu-item.tsx +12 -3
  138. package/src/Menu/menu.tsx +22 -5
  139. package/src/Pagination/items.tsx +21 -4
  140. package/src/Pagination/pagination.tsx +24 -4
  141. package/src/PickerPanel/panels/DatePanel/DateBody.tsx +1 -1
  142. package/src/PickerPanel/panels/DateTimePanel/index.tsx +1 -1
  143. package/src/PickerPanel/panels/MonthPanel/MonthHeader.tsx +7 -2
  144. package/src/PickerPanel/panels/PanelBody.tsx +1 -1
  145. package/src/PickerPanel/panels/QuarterPanel/QuarterHeader.tsx +1 -1
  146. package/src/PickerPanel/panels/RangePanel/index.tsx +1 -1
  147. package/src/PickerPanel/panels/TimePanel/TimeBody.tsx +1 -1
  148. package/src/PickerPanel/panels/YearPanel/YearHeader.tsx +1 -1
  149. package/src/PickerPanel/utils/pickerUtils.ts +2 -1
  150. package/src/Radio/radio-group.tsx +2 -1
  151. package/src/Radio/radio.tsx +7 -2
  152. package/src/RangePicker/range-picker-mobile.tsx +1 -3
  153. package/src/Rate/rate.tsx +5 -0
  154. package/src/Rate/star.tsx +20 -4
  155. package/src/Segmented/demo/variant.tsx +10 -2
  156. package/src/Segmented/index.ts +2 -2
  157. package/src/Segmented/segmented.tsx +4 -11
  158. package/src/Select/interface.ts +0 -1
  159. package/src/Select/option.tsx +8 -2
  160. package/src/Select/options.tsx +11 -4
  161. package/src/Select/select.tsx +4 -4
  162. package/src/Steps/step.tsx +23 -5
  163. package/src/Steps/steps.tsx +8 -1
  164. package/src/Table/demo/components-override.tsx +34 -7
  165. package/src/Table/demo/grouping.tsx +8 -4
  166. package/src/Table/hooks/useColumns.ts +14 -18
  167. package/src/Table/index.ts +3 -3
  168. package/src/Table/style/index.less +2 -4
  169. package/src/Table/table.tsx +2 -4
  170. package/src/Table/tbody/row.tsx +1 -3
  171. package/src/Table/theader/index.tsx +9 -10
  172. package/src/Tabs/tab-content.tsx +2 -0
  173. package/src/Tabs/tab-header/index.tsx +2 -0
  174. package/src/Tabs/tab-header/tab-header-title.tsx +3 -1
  175. package/src/Tour/demo/placement.tsx +2 -1
  176. package/src/Tour/index.ts +1 -1
  177. package/src/Tree/style/index.less +1 -5
  178. package/src/Tree/tree.tsx +16 -11
  179. package/src/Tree/utils/tree-tools.ts +4 -1
  180. package/src/hooks/useDelayState.ts +4 -2
  181. package/src/hooks/useEvent.ts +1 -3
  182. package/src/hooks/useFocusManage.ts +33 -17
  183. package/src/locale/context.tsx +5 -1
  184. package/src/locale/interface.ts +3 -1
  185. package/src/style/size.css +2 -0
  186. package/src/utils/debounce.ts +1 -3
  187. package/src/utils/focusStack.ts +55 -12
  188. package/src/version.ts +1 -1
@@ -71,6 +71,7 @@ var Star = (props) => {
71
71
  "aria-checked": active,
72
72
  "aria-posinset": index + 1,
73
73
  "aria-setsize": count,
74
+ "aria-label": `${index + 1} ${index + 1 === 1 ? "star" : "stars"}`,
74
75
  key: "star-" + index
75
76
  },
76
77
  /* @__PURE__ */ import_react.default.createElement(
@@ -85,9 +86,16 @@ var Star = (props) => {
85
86
  }
86
87
  },
87
88
  tabIndex: 0,
89
+ "aria-label": `${index + 0.5} stars`,
88
90
  key: "star-" + index + "left"
89
91
  },
90
- character ? /* @__PURE__ */ import_react.default.createElement("span", { className: `${prefixCls}-character` }, renderCharacter()) : /* @__PURE__ */ import_react.default.createElement(import_lucide_react.StarHalf, { className: `${prefixCls}-star-half` })
92
+ character ? /* @__PURE__ */ import_react.default.createElement("span", { className: `${prefixCls}-character` }, renderCharacter()) : /* @__PURE__ */ import_react.default.createElement(
93
+ import_lucide_react.StarHalf,
94
+ {
95
+ className: `${prefixCls}-star-half`,
96
+ "aria-hidden": "true"
97
+ }
98
+ )
91
99
  ),
92
100
  /* @__PURE__ */ import_react.default.createElement(
93
101
  "div",
@@ -101,9 +109,16 @@ var Star = (props) => {
101
109
  }
102
110
  },
103
111
  tabIndex: 0,
112
+ "aria-label": `${index + 1} ${index + 1 === 1 ? "star" : "stars"}`,
104
113
  key: "star-" + index + "right"
105
114
  },
106
- character ? /* @__PURE__ */ import_react.default.createElement("span", { className: `${prefixCls}-character` }, renderCharacter()) : /* @__PURE__ */ import_react.default.createElement(import_lucide_react.Star, { className: `${prefixCls}-star-full` })
115
+ character ? /* @__PURE__ */ import_react.default.createElement("span", { className: `${prefixCls}-character` }, renderCharacter()) : /* @__PURE__ */ import_react.default.createElement(
116
+ import_lucide_react.Star,
117
+ {
118
+ className: `${prefixCls}-star-full`,
119
+ "aria-hidden": "true"
120
+ }
121
+ )
107
122
  )
108
123
  ) : /* @__PURE__ */ import_react.default.createElement(
109
124
  "li",
@@ -121,9 +136,22 @@ var Star = (props) => {
121
136
  "aria-checked": active,
122
137
  "aria-posinset": index + 1,
123
138
  "aria-setsize": count,
139
+ "aria-label": `${index + 1} ${index + 1 === 1 ? "star" : "stars"}`,
124
140
  key: "star-" + index
125
141
  },
126
- character ? /* @__PURE__ */ import_react.default.createElement("span", { className: `${prefixCls}-character` }, renderCharacter()) : active ? /* @__PURE__ */ import_react.default.createElement(import_lucide_react.Star, { className: `${prefixCls}-star-active` }) : /* @__PURE__ */ import_react.default.createElement(import_lucide_react.Star, { className: `${prefixCls}-star-inactive` })
142
+ character ? /* @__PURE__ */ import_react.default.createElement("span", { className: `${prefixCls}-character` }, renderCharacter()) : active ? /* @__PURE__ */ import_react.default.createElement(
143
+ import_lucide_react.Star,
144
+ {
145
+ className: `${prefixCls}-star-active`,
146
+ "aria-hidden": "true"
147
+ }
148
+ ) : /* @__PURE__ */ import_react.default.createElement(
149
+ import_lucide_react.Star,
150
+ {
151
+ className: `${prefixCls}-star-inactive`,
152
+ "aria-hidden": "true"
153
+ }
154
+ )
127
155
  ), children ? /* @__PURE__ */ import_react.default.createElement(import_Tooltip.default, { title: value, placement: "top" }, children) : null);
128
156
  };
129
157
  Star.displayName = "Star";
@@ -35,7 +35,21 @@ module.exports = __toCommonJS(variant_exports);
35
35
  var import_yee_c = require("../..");
36
36
  var import_lucide_react = require("lucide-react");
37
37
  var import_react = __toESM(require("react"));
38
- var variant_default = () => /* @__PURE__ */ import_react.default.createElement(import_yee_c.Space, { direction: "vertical" }, /* @__PURE__ */ import_react.default.createElement(import_yee_c.Space, { block: true }, /* @__PURE__ */ import_react.default.createElement(import_yee_c.Segmented, { options: ["Daily", "Weekly", "Monthly"] }), /* @__PURE__ */ import_react.default.createElement(import_yee_c.Segmented, { variant: "pill", options: ["Daily", "Weekly", "Monthly"] })), /* @__PURE__ */ import_react.default.createElement(import_yee_c.Space, { block: true }, /* @__PURE__ */ import_react.default.createElement(import_yee_c.Segmented, { variant: "pill", size: "small", options: ["Small", "Default", "Large"] }), /* @__PURE__ */ import_react.default.createElement(import_yee_c.Segmented, { variant: "pill", size: "large", options: ["Small", "Default", "Large"] })), /* @__PURE__ */ import_react.default.createElement("div", { style: { width: 480 } }, /* @__PURE__ */ import_react.default.createElement(
38
+ var variant_default = () => /* @__PURE__ */ import_react.default.createElement(import_yee_c.Space, { direction: "vertical" }, /* @__PURE__ */ import_react.default.createElement(import_yee_c.Space, { block: true }, /* @__PURE__ */ import_react.default.createElement(import_yee_c.Segmented, { options: ["Daily", "Weekly", "Monthly"] }), /* @__PURE__ */ import_react.default.createElement(import_yee_c.Segmented, { variant: "pill", options: ["Daily", "Weekly", "Monthly"] })), /* @__PURE__ */ import_react.default.createElement(import_yee_c.Space, { block: true }, /* @__PURE__ */ import_react.default.createElement(
39
+ import_yee_c.Segmented,
40
+ {
41
+ variant: "pill",
42
+ size: "small",
43
+ options: ["Small", "Default", "Large"]
44
+ }
45
+ ), /* @__PURE__ */ import_react.default.createElement(
46
+ import_yee_c.Segmented,
47
+ {
48
+ variant: "pill",
49
+ size: "large",
50
+ options: ["Small", "Default", "Large"]
51
+ }
52
+ )), /* @__PURE__ */ import_react.default.createElement("div", { style: { width: 480 } }, /* @__PURE__ */ import_react.default.createElement(
39
53
  import_yee_c.Segmented,
40
54
  {
41
55
  variant: "pill",
@@ -1,3 +1,3 @@
1
1
  import InternalSegmented from './segmented';
2
- export type { SegmentedOption, SegmentedLabeledOption, SegmentedRawOption, SegmentedSemanticDOM, SegmentedValue, SegmentedProps, } from './interface';
2
+ export type { SegmentedLabeledOption, SegmentedOption, SegmentedProps, SegmentedRawOption, SegmentedSemanticDOM, SegmentedValue, } from './interface';
3
3
  export default InternalSegmented;
@@ -62,8 +62,8 @@ __export(segmented_exports, {
62
62
  });
63
63
  module.exports = __toCommonJS(segmented_exports);
64
64
  var import_clsx = __toESM(require("clsx"));
65
- var import_react = __toESM(require("react"));
66
- var import_react2 = require("motion/react");
65
+ var import_react = require("motion/react");
66
+ var import_react2 = __toESM(require("react"));
67
67
  var import_Config_Provider = require("../Config-Provider");
68
68
  var import_useMergedState = __toESM(require("../hooks/useMergedState"));
69
69
  var import_mergeContextToProps = __toESM(require("../utils/mergeContextToProps"));
@@ -74,12 +74,12 @@ var normalizeOption = (option) => {
74
74
  }
75
75
  return option;
76
76
  };
77
- var Segmented = import_react.default.forwardRef(
77
+ var Segmented = import_react2.default.forwardRef(
78
78
  (baseprops, ref) => {
79
79
  var _b;
80
- const { segmented } = (0, import_react.useContext)(import_Config_Provider.GlobalContext);
80
+ const { segmented } = (0, import_react2.useContext)(import_Config_Provider.GlobalContext);
81
81
  const props = (0, import_mergeContextToProps.default)(baseprops, segmented);
82
- const uid = (0, import_react.useId)();
82
+ const uid = (0, import_react2.useId)();
83
83
  const _a = props, {
84
84
  prefixCls = "yee-segmented",
85
85
  className,
@@ -111,10 +111,7 @@ var Segmented = import_react.default.forwardRef(
111
111
  "name",
112
112
  "onChange"
113
113
  ]);
114
- const items = (0, import_react.useMemo)(
115
- () => options.map(normalizeOption),
116
- [options]
117
- );
114
+ const items = (0, import_react2.useMemo)(() => options.map(normalizeOption), [options]);
118
115
  const firstValue = (_b = items[0]) == null ? void 0 : _b.value;
119
116
  const [mergedValue, setMergedValue] = (0, import_useMergedState.default)(firstValue, {
120
117
  value,
@@ -134,10 +131,10 @@ var Segmented = import_react.default.forwardRef(
134
131
  setMergedValue(itemValue);
135
132
  onChange == null ? void 0 : onChange(itemValue);
136
133
  };
137
- return /* @__PURE__ */ import_react.default.createElement("div", __spreadProps(__spreadValues({}, rest), { ref, className: cls, style, role: "radiogroup" }), items.map((item) => {
134
+ return /* @__PURE__ */ import_react2.default.createElement("div", __spreadProps(__spreadValues({}, rest), { ref, className: cls, style, role: "radiogroup" }), items.map((item) => {
138
135
  const selected = item.value === mergedValue;
139
136
  const itemDisabled = disabled || item.disabled;
140
- return /* @__PURE__ */ import_react.default.createElement(
137
+ return /* @__PURE__ */ import_react2.default.createElement(
141
138
  "label",
142
139
  {
143
140
  key: item.value,
@@ -146,8 +143,8 @@ var Segmented = import_react.default.forwardRef(
146
143
  [`${prefixCls}-item-disabled`]: itemDisabled
147
144
  })
148
145
  },
149
- selected ? /* @__PURE__ */ import_react.default.createElement(
150
- import_react2.motion.span,
146
+ selected ? /* @__PURE__ */ import_react2.default.createElement(
147
+ import_react.motion.span,
151
148
  {
152
149
  layoutId: `${prefixCls}-thumb-${uid}`,
153
150
  className: (0, import_clsx.default)(`${prefixCls}-thumb`, classNames == null ? void 0 : classNames.thumb),
@@ -159,8 +156,8 @@ var Segmented = import_react.default.forwardRef(
159
156
  }
160
157
  }
161
158
  ) : null,
162
- /* @__PURE__ */ import_react.default.createElement("span", { className: `${prefixCls}-item-inner` }, item.icon ? /* @__PURE__ */ import_react.default.createElement("span", { className: `${prefixCls}-item-icon` }, item.icon) : null, item.label !== void 0 && item.label !== null ? /* @__PURE__ */ import_react.default.createElement("span", { className: `${prefixCls}-item-label` }, item.label) : null),
163
- /* @__PURE__ */ import_react.default.createElement(
159
+ /* @__PURE__ */ import_react2.default.createElement("span", { className: `${prefixCls}-item-inner` }, item.icon ? /* @__PURE__ */ import_react2.default.createElement("span", { className: `${prefixCls}-item-icon` }, item.icon) : null, item.label !== void 0 && item.label !== null ? /* @__PURE__ */ import_react2.default.createElement("span", { className: `${prefixCls}-item-label` }, item.label) : null),
160
+ /* @__PURE__ */ import_react2.default.createElement(
164
161
  "input",
165
162
  {
166
163
  type: "radio",
@@ -38,7 +38,14 @@ var import_react = __toESM(require("react"));
38
38
  var import_options = require("./options");
39
39
  var Option = (props) => {
40
40
  const { label, value, disabled, title, dataTestId, style } = props;
41
- const { prefixCls, selectedKeys, focusedKey, multiple, looseMatch, onSelect } = (0, import_react.useContext)(import_options.OptionsCtx);
41
+ const {
42
+ prefixCls,
43
+ selectedKeys,
44
+ focusedKey,
45
+ multiple,
46
+ looseMatch,
47
+ onSelect
48
+ } = (0, import_react.useContext)(import_options.OptionsCtx);
42
49
  const handleClick = (e) => {
43
50
  if (!disabled) {
44
51
  onSelect(value, e);
@@ -170,7 +170,15 @@ var Options = (0, import_react.forwardRef)(
170
170
  container.scrollTop -= containerRect.top - targetRect.top;
171
171
  }
172
172
  }
173
- }, [focusedKey, virtual, options, scrollToIndex, rootRef, multiColumn, columns]);
173
+ }, [
174
+ focusedKey,
175
+ virtual,
176
+ options,
177
+ scrollToIndex,
178
+ rootRef,
179
+ multiColumn,
180
+ columns
181
+ ]);
174
182
  const isEmpty = options.length === 0;
175
183
  const ctxValue = {
176
184
  prefixCls,
@@ -173,7 +173,9 @@ var Select = (baseprops) => {
173
173
  setOpen(false);
174
174
  } else {
175
175
  if (keysIncludes(mergedValue, key, looseMatch)) {
176
- keys = mergedValue.filter((k) => !matchValue(k, key, looseMatch));
176
+ keys = mergedValue.filter(
177
+ (k) => !matchValue(k, key, looseMatch)
178
+ );
177
179
  } else {
178
180
  keys = [...mergedValue, key];
179
181
  }
@@ -69,6 +69,7 @@ var Step = (props) => {
69
69
  }
70
70
  };
71
71
  const mergedStatus = (_a = itemStatus != null ? itemStatus : status) != null ? _a : index < current ? "finish" : index === current ? "process" : "wait";
72
+ const statusLabel = mergedStatus === "finish" ? "completed" : mergedStatus === "process" ? "in progress" : mergedStatus === "error" ? "error" : "pending";
72
73
  const renderIcon = (0, import_react.useMemo)(() => {
73
74
  if (dot)
74
75
  return /* @__PURE__ */ import_react.default.createElement("span", { className: `${prefixCls}-item-dot` });
@@ -100,7 +101,13 @@ var Step = (props) => {
100
101
  className
101
102
  );
102
103
  const ribbonStatus = index < current ? "done" : index === current ? "doing" : "undo";
103
- return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, type === "ribbon" && /* @__PURE__ */ import_react.default.createElement("div", { className: `${prefixCls}-item-ribbon-end ${ribbonStatus}` }), /* @__PURE__ */ import_react.default.createElement(
104
+ return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, type === "ribbon" && /* @__PURE__ */ import_react.default.createElement(
105
+ "div",
106
+ {
107
+ className: `${prefixCls}-item-ribbon-end ${ribbonStatus}`,
108
+ "aria-hidden": "true"
109
+ }
110
+ ), /* @__PURE__ */ import_react.default.createElement(
104
111
  "div",
105
112
  {
106
113
  className: cls,
@@ -108,12 +115,19 @@ var Step = (props) => {
108
115
  onClick: handleClick,
109
116
  onKeyDown: handleKeyDown,
110
117
  tabIndex: disabled ? -1 : onChange ? 0 : void 0,
111
- role: onChange ? "button" : void 0,
118
+ role: onChange ? "button" : "listitem",
112
119
  "aria-disabled": disabled,
113
- "aria-current": index === current ? "step" : void 0
120
+ "aria-current": index === current ? "step" : void 0,
121
+ "aria-label": `Step ${index + 1}${typeof title === "string" ? `: ${title}` : ""}, ${statusLabel}`
114
122
  },
115
- /* @__PURE__ */ import_react.default.createElement("div", { className: `${prefixCls}-item-icon` }, renderIcon),
123
+ /* @__PURE__ */ import_react.default.createElement("div", { className: `${prefixCls}-item-icon`, "aria-hidden": "true" }, renderIcon),
116
124
  /* @__PURE__ */ import_react.default.createElement("div", { className: `${prefixCls}-item-content` }, /* @__PURE__ */ import_react.default.createElement("div", { className: `${prefixCls}-item-title` }, /* @__PURE__ */ import_react.default.createElement("span", { title: typeof title === "string" ? title : void 0 }, title), subTitle && /* @__PURE__ */ import_react.default.createElement("div", { className: `${prefixCls}-item-sub-title` }, subTitle)), type !== "ribbon" && description && /* @__PURE__ */ import_react.default.createElement("div", { className: `${prefixCls}-item-description` }, description))
117
- ), type === "navigation" && /* @__PURE__ */ import_react.default.createElement("div", { className: `${prefixCls}-item-navi-arrow` }, /* @__PURE__ */ import_react.default.createElement(import_lucide_react.ChevronRight, null)), type === "ribbon" && /* @__PURE__ */ import_react.default.createElement("div", { className: `${prefixCls}-item-ribbon-head ${ribbonStatus}` }));
125
+ ), type === "navigation" && /* @__PURE__ */ import_react.default.createElement("div", { className: `${prefixCls}-item-navi-arrow`, "aria-hidden": "true" }, /* @__PURE__ */ import_react.default.createElement(import_lucide_react.ChevronRight, null)), type === "ribbon" && /* @__PURE__ */ import_react.default.createElement(
126
+ "div",
127
+ {
128
+ className: `${prefixCls}-item-ribbon-head ${ribbonStatus}`,
129
+ "aria-hidden": "true"
130
+ }
131
+ ));
118
132
  };
119
133
  var step_default = Step;
@@ -135,7 +135,17 @@ var Steps = (0, import_react.forwardRef)((baseprops, ref) => {
135
135
  }
136
136
  return items.map((item, index) => /* @__PURE__ */ import_react.default.createElement(import_step.default, __spreadProps(__spreadValues({}, item), { index, key: index })));
137
137
  };
138
- return /* @__PURE__ */ import_react.default.createElement("div", __spreadProps(__spreadValues({}, rest), { className: cls, style, ref }), /* @__PURE__ */ import_react.default.createElement(StepsContext.Provider, { value: contextValue }, renderSteps()));
138
+ return /* @__PURE__ */ import_react.default.createElement(
139
+ "div",
140
+ __spreadProps(__spreadValues({}, rest), {
141
+ className: cls,
142
+ style,
143
+ ref,
144
+ role: "list",
145
+ "aria-label": "Steps"
146
+ }),
147
+ /* @__PURE__ */ import_react.default.createElement(StepsContext.Provider, { value: contextValue }, renderSteps())
148
+ );
139
149
  });
140
150
  Steps.displayName = "Steps";
141
151
  var steps_default = Steps;
@@ -35,7 +35,31 @@ module.exports = __toCommonJS(components_override_exports);
35
35
  var import_yee_c = require("../..");
36
36
  var import_react = __toESM(require("react"));
37
37
  var CustomTbody = (props) => /* @__PURE__ */ import_react.default.createElement("tbody", { className: props.className, "data-custom-tbody": true }, props.children);
38
- var CustomRow = ({ record, index, columns, rowKey }) => /* @__PURE__ */ import_react.default.createElement("tr", { "data-row-key": rowKey, style: { background: index % 2 === 0 ? "#f8fafc" : void 0 } }, /* @__PURE__ */ import_react.default.createElement("td", { style: { width: 40, textAlign: "center", color: "#2563eb", fontWeight: 700 } }, index + 1), columns.map((col) => /* @__PURE__ */ import_react.default.createElement("td", { key: String(col.key) }, record[col.dataIndex || ""])));
38
+ var CustomRow = ({
39
+ record,
40
+ index,
41
+ columns,
42
+ rowKey
43
+ }) => /* @__PURE__ */ import_react.default.createElement(
44
+ "tr",
45
+ {
46
+ "data-row-key": rowKey,
47
+ style: { background: index % 2 === 0 ? "#f8fafc" : void 0 }
48
+ },
49
+ /* @__PURE__ */ import_react.default.createElement(
50
+ "td",
51
+ {
52
+ style: {
53
+ width: 40,
54
+ textAlign: "center",
55
+ color: "#2563eb",
56
+ fontWeight: 700
57
+ }
58
+ },
59
+ index + 1
60
+ ),
61
+ columns.map((col) => /* @__PURE__ */ import_react.default.createElement("td", { key: String(col.key) }, record[col.dataIndex || ""]))
62
+ );
39
63
  var components_override_default = () => {
40
64
  const columns = [
41
65
  { title: "Name", dataIndex: "name", key: "name" },
@@ -43,7 +67,12 @@ var components_override_default = () => {
43
67
  { title: "Address", dataIndex: "address", key: "address" }
44
68
  ];
45
69
  const dataSource = [
46
- { key: "1", name: "John Brown", age: 32, address: "New York No. 1 Lake Park" },
70
+ {
71
+ key: "1",
72
+ name: "John Brown",
73
+ age: 32,
74
+ address: "New York No. 1 Lake Park"
75
+ },
47
76
  { key: "2", name: "Jim Green", age: 42, address: "London No. 1 Lake Park" },
48
77
  { key: "3", name: "Joe Black", age: 32, address: "Sidney No. 1 Lake Park" }
49
78
  ];
@@ -49,7 +49,13 @@ var grouping_default = () => {
49
49
  title: "Info",
50
50
  key: "info",
51
51
  children: [
52
- { title: "Age", dataIndex: "age", key: "age", width: 100, sorter: true },
52
+ {
53
+ title: "Age",
54
+ dataIndex: "age",
55
+ key: "age",
56
+ width: 100,
57
+ sorter: true
58
+ },
53
59
  {
54
60
  title: "Address",
55
61
  dataIndex: "address",
@@ -1,11 +1,11 @@
1
1
  import React from 'react';
2
- import type { ColumnProps, ExpandableType, RowSelectionType } from '../interface';
2
+ import type { ColumnProps, ExpandableType, RowSelectionType, WrapedColumnProps } from '../interface';
3
3
  export default function useColumns({ children, columns, rowSelection, expandable, }: {
4
4
  children?: React.ReactElement<ColumnProps> | React.ReactElement<ColumnProps>[];
5
5
  columns: ColumnProps[];
6
6
  rowSelection?: RowSelectionType;
7
7
  expandable?: ExpandableType;
8
8
  }): {
9
- wrapedColumns: any;
10
- headerRows: any;
9
+ wrapedColumns: WrapedColumnProps[];
10
+ headerRows: import("../interface").HeaderCell[][];
11
11
  };
@@ -47,38 +47,35 @@ __export(useColumns_exports, {
47
47
  });
48
48
  module.exports = __toCommonJS(useColumns_exports);
49
49
  var import_react = __toESM(require("react"));
50
- var import_useDeepCompareMemo = __toESM(require("../../hooks/useDeepCompareMemo"));
51
50
  var import_deepClone = __toESM(require("../../utils/deepClone"));
52
51
  var import_util = require("../util");
53
52
  var import_header = require("../util/header");
53
+ var getColumnsFromChild = (childs) => {
54
+ const cols = [];
55
+ import_react.default.Children.forEach(childs, (child) => {
56
+ if (child) {
57
+ cols.push(__spreadValues({}, child.props));
58
+ }
59
+ });
60
+ return cols.length ? cols : null;
61
+ };
54
62
  function useColumns({
55
63
  children,
56
64
  columns,
57
65
  rowSelection,
58
66
  expandable
59
67
  }) {
60
- const shouldRenderSelection = !!rowSelection;
61
- const shouldRenderExpand = !!expandable;
62
- const getColumnsFromChild = (childs) => {
63
- const cols = [];
64
- import_react.default.Children.forEach(childs, (child) => {
65
- if (child) {
66
- cols.push(__spreadValues({}, child.props));
67
- }
68
- });
69
- return cols.length ? cols : null;
70
- };
71
68
  const childColumns = (0, import_react.useMemo)(() => {
72
69
  return children ? getColumnsFromChild(children) : null;
73
70
  }, [children]);
74
- const { wrapedColumns, headerRows } = (0, import_useDeepCompareMemo.default)(() => {
71
+ const { wrapedColumns, headerRows } = (0, import_react.useMemo)(() => {
75
72
  const base = (0, import_deepClone.default)(childColumns || columns || []) || [];
76
73
  const tree = (0, import_header.injectSelectionExpand)(base, rowSelection, expandable);
77
74
  const leaves = (0, import_header.flattenLeafColumns)(tree);
78
75
  const wraped = (0, import_util.handleColumns)(leaves);
79
76
  const rows = (0, import_header.parseHeaderRows)(tree, wraped);
80
77
  return { wrapedColumns: wraped, headerRows: rows };
81
- }, [childColumns, columns, shouldRenderSelection, shouldRenderExpand]);
78
+ }, [childColumns, columns, rowSelection, expandable]);
82
79
  return {
83
80
  wrapedColumns,
84
81
  headerRows
@@ -2,7 +2,7 @@ import Column from './column';
2
2
  import Summary from './summary';
3
3
  import InternalTable from './table';
4
4
  import Head from './theader';
5
- export type { ColumnProps, PaginationType, RowSelectionType, TableProps, TableComponents, TableBodyComponents, TableRowRendererProps, HeaderCell, onChangeParams, } from './interface';
5
+ export type { ColumnProps, HeaderCell, PaginationType, RowSelectionType, TableBodyComponents, TableComponents, TableProps, TableRowRendererProps, onChangeParams, } from './interface';
6
6
  type TableType = typeof InternalTable & {
7
7
  Column: typeof Column;
8
8
  Summary: typeof Summary;
@@ -92,13 +92,11 @@
92
92
  width: 100%;
93
93
 
94
94
  &-scroll-left @{pls}-cell-fixed-left-last {
95
- box-shadow: 6px 0 6px -4px
96
- var(--yee-table-fixed-left-after-bs-color);
95
+ box-shadow: 6px 0 6px -4px var(--yee-table-fixed-left-after-bs-color);
97
96
  }
98
97
 
99
98
  &-scroll-right @{pls}-cell-fixed-right-first {
100
- box-shadow: -6px 0 6px -4px
101
- var(--yee-table-fixed-right-after-bs-color);
99
+ box-shadow: -6px 0 6px -4px var(--yee-table-fixed-right-after-bs-color);
102
100
  }
103
101
  }
104
102
 
@@ -139,10 +139,7 @@ var TableRow = (props) => {
139
139
  disabled
140
140
  }, props2);
141
141
  if (type === "checkbox") {
142
- return /* @__PURE__ */ import_react.default.createElement(
143
- import_Checkbox.default,
144
- __spreadValues({}, commonProps)
145
- );
142
+ return /* @__PURE__ */ import_react.default.createElement(import_Checkbox.default, __spreadValues({}, commonProps));
146
143
  }
147
144
  return /* @__PURE__ */ import_react.default.createElement(import_Radio.default, __spreadValues({}, commonProps));
148
145
  };
@@ -67,7 +67,17 @@ var import_Checkbox = __toESM(require("../../Checkbox"));
67
67
  var import_table = require("../table");
68
68
  var import_cell = __toESM(require("./cell"));
69
69
  var TableHead = (props) => {
70
- const _a = props, { headerRows = [], onCheckAll, checkedAll, onHeaderRow } = _a, rest = __objRest(_a, ["headerRows", "onCheckAll", "checkedAll", "onHeaderRow"]);
70
+ const _a = props, {
71
+ headerRows = [],
72
+ onCheckAll,
73
+ checkedAll,
74
+ onHeaderRow
75
+ } = _a, rest = __objRest(_a, [
76
+ "headerRows",
77
+ "onCheckAll",
78
+ "checkedAll",
79
+ "onHeaderRow"
80
+ ]);
71
81
  const { prefixCls } = (0, import_react.useContext)(import_table.TableCtx);
72
82
  const renderCell = (cell, rowIndex, colIndex) => {
73
83
  const { column, colSpan, rowSpan } = cell;
@@ -110,9 +120,7 @@ var TableHead = (props) => {
110
120
  return /* @__PURE__ */ import_react.default.createElement("thead", { className: (0, import_clsx.default)(`${prefixCls}-thead`) }, headerRows.map((row, rowIndex) => {
111
121
  const rowColumns = row.map((cell) => cell.column);
112
122
  const rowProps = onHeaderRow ? onHeaderRow(rowColumns) : {};
113
- return /* @__PURE__ */ import_react.default.createElement("tr", __spreadProps(__spreadValues({}, rowProps), { key: `thead-row-${rowIndex}` }), row.map(
114
- (cell, colIndex) => renderCell(cell, rowIndex, colIndex)
115
- ));
123
+ return /* @__PURE__ */ import_react.default.createElement("tr", __spreadProps(__spreadValues({}, rowProps), { key: `thead-row-${rowIndex}` }), row.map((cell, colIndex) => renderCell(cell, rowIndex, colIndex)));
116
124
  }));
117
125
  };
118
126
  var Row = (props) => {
@@ -70,9 +70,11 @@ var TabContent = ({
70
70
  className: `${prefixCls}-tab-content`,
71
71
  style: { display: activeKey === key ? "block" : "none" },
72
72
  key,
73
+ id: `tabpanel-${key}`,
73
74
  role: "tabpanel",
74
75
  "aria-labelledby": `tab-${key}`,
75
- "aria-hidden": activeKey !== key
76
+ "aria-hidden": activeKey !== key,
77
+ tabIndex: activeKey === key ? 0 : -1
76
78
  },
77
79
  children
78
80
  );
@@ -157,7 +157,9 @@ var TabHeader = (props) => {
157
157
  {
158
158
  className: (0, import_clsx.default)(`${prefixCls}-nav-list`, classNames == null ? void 0 : classNames.list),
159
159
  style: styles == null ? void 0 : styles.list,
160
- ref: navList
160
+ ref: navList,
161
+ role: "tablist",
162
+ "aria-orientation": direction
161
163
  },
162
164
  items == null ? void 0 : items.map((item, index) => /* @__PURE__ */ import_react.default.createElement(
163
165
  import_tab_header_title.default,
@@ -223,10 +223,12 @@ var TabHeaderTitle = (props) => {
223
223
  __spreadProps(__spreadValues({}, rest), {
224
224
  ref: tabRef,
225
225
  role: "tab",
226
+ id: `tab-${$key}`,
226
227
  "aria-selected": activeKey === $key,
227
228
  "aria-disabled": disabled,
229
+ "aria-controls": `tabpanel-${$key}`,
228
230
  className: cls,
229
- tabIndex: disabled ? -1 : 0,
231
+ tabIndex: disabled ? -1 : activeKey === $key ? 0 : -1,
230
232
  onClick: handleTabClick,
231
233
  onKeyDown: handleKeyDown
232
234
  }),
@@ -1,3 +1,3 @@
1
1
  import InternalTour from './tour';
2
- export type { TourProps, TourStep, TourTarget, TourSemanticDOM, } from './interface';
2
+ export type { TourProps, TourSemanticDOM, TourStep, TourTarget, } from './interface';
3
3
  export default InternalTour;
@@ -25,11 +25,7 @@
25
25
  }
26
26
 
27
27
  &-drag-over-inside {
28
- background: color-mix(
29
- in srgb,
30
- var(--yee-primary-color) 12%,
31
- transparent
32
- );
28
+ background: color-mix(in srgb, var(--yee-primary-color) 12%, transparent);
33
29
  }
34
30
 
35
31
  &-switcher {