@rainbow-oh/yee-c 0.4.4 → 0.5.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 (272) hide show
  1. package/dist/cjs/Button/button.d.ts +1 -1
  2. package/dist/cjs/CSV/download.d.ts +1 -1
  3. package/dist/cjs/Carousel/carousel.d.ts +2 -2
  4. package/dist/cjs/Carousel/carousel.js +9 -2
  5. package/dist/cjs/Carousel/interface.d.ts +5 -0
  6. package/dist/cjs/Dialog/demo/basic.js +1 -1
  7. package/dist/cjs/Dialog/dialog.js +1 -1
  8. package/dist/cjs/Drawer/style/index.less +4 -0
  9. package/dist/cjs/Field/demo/validation.js +23 -3
  10. package/dist/cjs/Field/field.js +1 -1
  11. package/dist/cjs/FloatButton/float-button.d.ts +1 -1
  12. package/dist/cjs/Form/Field.js +1 -4
  13. package/dist/cjs/Form/Form.js +1 -1
  14. package/dist/cjs/Form/Group.js +36 -14
  15. package/dist/cjs/Form/List.js +23 -3
  16. package/dist/cjs/Form/demo/async-validate.d.ts +3 -0
  17. package/dist/cjs/Form/demo/async-validate.js +108 -0
  18. package/dist/cjs/Form/demo/basic.js +2 -2
  19. package/dist/cjs/Form/demo/virtual.js +1 -1
  20. package/dist/cjs/Form/form-store.d.ts +4 -4
  21. package/dist/cjs/Form/form-store.js +55 -25
  22. package/dist/cjs/Form/interface.d.ts +10 -7
  23. package/dist/cjs/Form/style/index.less +15 -0
  24. package/dist/cjs/Form/utils/validate.d.ts +23 -2
  25. package/dist/cjs/Form/utils/validate.js +59 -10
  26. package/dist/cjs/Input/style/index.less +0 -17
  27. package/dist/cjs/InputNumber/style/index.less +0 -29
  28. package/dist/cjs/PickerPanel/interface.d.ts +44 -2
  29. package/dist/cjs/PickerPanel/panels/DatePanel/DateBody.d.ts +2 -1
  30. package/dist/cjs/PickerPanel/panels/DatePanel/DateHeader.d.ts +2 -1
  31. package/dist/cjs/PickerPanel/panels/DatePanel/DateHeader.js +1 -1
  32. package/dist/cjs/PickerPanel/panels/DatePanel/index.d.ts +2 -1
  33. package/dist/cjs/PickerPanel/panels/DateTimePanel/index.d.ts +7 -1
  34. package/dist/cjs/PickerPanel/panels/DateTimePanel/index.js +18 -4
  35. package/dist/cjs/PickerPanel/panels/DecadePanel/DecadeBody.d.ts +2 -1
  36. package/dist/cjs/PickerPanel/panels/DecadePanel/DecadeBody.js +1 -1
  37. package/dist/cjs/PickerPanel/panels/DecadePanel/DecadeHeader.d.ts +2 -1
  38. package/dist/cjs/PickerPanel/panels/DecadePanel/DecadeHeader.js +1 -1
  39. package/dist/cjs/PickerPanel/panels/DecadePanel/index.d.ts +2 -1
  40. package/dist/cjs/PickerPanel/panels/DecadePanel/index.js +1 -1
  41. package/dist/cjs/PickerPanel/panels/Header.d.ts +13 -1
  42. package/dist/cjs/PickerPanel/panels/MonthPanel/MonthBody.d.ts +2 -1
  43. package/dist/cjs/PickerPanel/panels/MonthPanel/MonthHeader.d.ts +2 -1
  44. package/dist/cjs/PickerPanel/panels/MonthPanel/MonthHeader.js +1 -1
  45. package/dist/cjs/PickerPanel/panels/MonthPanel/index.d.ts +2 -1
  46. package/dist/cjs/PickerPanel/panels/MonthPanel/index.js +1 -1
  47. package/dist/cjs/PickerPanel/panels/PanelBody.d.ts +21 -1
  48. package/dist/cjs/PickerPanel/panels/PanelBody.js +3 -3
  49. package/dist/cjs/PickerPanel/panels/QuarterPanel/QuarterBody.d.ts +2 -1
  50. package/dist/cjs/PickerPanel/panels/QuarterPanel/QuarterHeader.d.ts +2 -1
  51. package/dist/cjs/PickerPanel/panels/QuarterPanel/index.d.ts +2 -1
  52. package/dist/cjs/PickerPanel/panels/RangePanel/index.d.ts +2 -1
  53. package/dist/cjs/PickerPanel/panels/RangePanel/index.js +2 -2
  54. package/dist/cjs/PickerPanel/panels/RangePanel/interface.d.ts +5 -5
  55. package/dist/cjs/PickerPanel/panels/TimePanel/TimeBody.d.ts +17 -1
  56. package/dist/cjs/PickerPanel/panels/TimePanel/TimeCell.d.ts +7 -1
  57. package/dist/cjs/PickerPanel/panels/TimePanel/TimeCell.js +1 -1
  58. package/dist/cjs/PickerPanel/panels/TimePanel/TimeColumn.d.ts +14 -1
  59. package/dist/cjs/PickerPanel/panels/TimePanel/TimeColumn.js +1 -1
  60. package/dist/cjs/PickerPanel/panels/TimePanel/TimeHeader.d.ts +4 -1
  61. package/dist/cjs/PickerPanel/panels/TimePanel/index.d.ts +9 -1
  62. package/dist/cjs/PickerPanel/panels/WeekPanel/WeekBody.d.ts +2 -1
  63. package/dist/cjs/PickerPanel/panels/WeekPanel/WeekHeader.d.ts +2 -1
  64. package/dist/cjs/PickerPanel/panels/WeekPanel/index.d.ts +2 -1
  65. package/dist/cjs/PickerPanel/panels/YearPanel/YearBody.d.ts +2 -1
  66. package/dist/cjs/PickerPanel/panels/YearPanel/YearBody.js +2 -2
  67. package/dist/cjs/PickerPanel/panels/YearPanel/YearHeader.d.ts +2 -1
  68. package/dist/cjs/PickerPanel/panels/YearPanel/YearHeader.js +7 -1
  69. package/dist/cjs/PickerPanel/panels/YearPanel/index.d.ts +2 -1
  70. package/dist/cjs/PickerPanel/panels/YearPanel/index.js +1 -1
  71. package/dist/cjs/PickerPanel/utils/pickerUtils.d.ts +7 -7
  72. package/dist/cjs/PickerPanel/utils/pickerUtils.js +2 -2
  73. package/dist/cjs/Select/demo/basic.js +1 -1
  74. package/dist/cjs/Select/demo/virtual.d.ts +3 -0
  75. package/dist/cjs/Select/demo/virtual.js +55 -0
  76. package/dist/cjs/Select/hooks/useSelectKeyboard.d.ts +7 -1
  77. package/dist/cjs/Select/hooks/useSelectKeyboard.js +16 -6
  78. package/dist/cjs/Select/interface.d.ts +44 -0
  79. package/dist/cjs/Select/option.js +3 -2
  80. package/dist/cjs/Select/options.js +115 -15
  81. package/dist/cjs/Select/select.js +20 -4
  82. package/dist/cjs/Select/style/index.less +17 -13
  83. package/dist/cjs/Selector/style/index.less +2 -137
  84. package/dist/cjs/Table/style/index.less +19 -0
  85. package/dist/cjs/TextArea/style/index.less +0 -17
  86. package/dist/cjs/hooks/index.d.ts +2 -1
  87. package/dist/cjs/hooks/index.js +3 -1
  88. package/dist/cjs/hooks/useEvent.js +4 -1
  89. package/dist/cjs/hooks/useVirtualList.d.ts +71 -0
  90. package/dist/cjs/hooks/useVirtualList.js +117 -0
  91. package/dist/cjs/style/size.css +1 -0
  92. package/dist/cjs/style/themes.css +1 -1
  93. package/dist/cjs/style/variables.css +2 -1
  94. package/dist/cjs/version.d.ts +1 -1
  95. package/dist/cjs/version.js +1 -1
  96. package/dist/esm/Button/button.d.ts +1 -1
  97. package/dist/esm/CSV/download.d.ts +1 -1
  98. package/dist/esm/Carousel/carousel.d.ts +2 -2
  99. package/dist/esm/Carousel/carousel.js +5 -1
  100. package/dist/esm/Carousel/interface.d.ts +5 -0
  101. package/dist/esm/Dialog/demo/basic.js +1 -1
  102. package/dist/esm/Dialog/dialog.js +1 -1
  103. package/dist/esm/Drawer/style/index.less +4 -0
  104. package/dist/esm/Field/demo/validation.js +30 -9
  105. package/dist/esm/Field/field.js +2 -1
  106. package/dist/esm/FloatButton/float-button.d.ts +1 -1
  107. package/dist/esm/Form/Field.js +3 -4
  108. package/dist/esm/Form/Form.js +1 -1
  109. package/dist/esm/Form/Group.js +142 -53
  110. package/dist/esm/Form/List.js +61 -42
  111. package/dist/esm/Form/demo/async-validate.d.ts +3 -0
  112. package/dist/esm/Form/demo/async-validate.js +95 -0
  113. package/dist/esm/Form/demo/basic.js +4 -2
  114. package/dist/esm/Form/demo/virtual.js +1 -1
  115. package/dist/esm/Form/form-store.d.ts +4 -4
  116. package/dist/esm/Form/form-store.js +187 -93
  117. package/dist/esm/Form/interface.d.ts +10 -7
  118. package/dist/esm/Form/style/index.less +15 -0
  119. package/dist/esm/Form/utils/validate.d.ts +23 -2
  120. package/dist/esm/Form/utils/validate.js +122 -17
  121. package/dist/esm/Input/style/index.less +0 -17
  122. package/dist/esm/InputNumber/style/index.less +0 -29
  123. package/dist/esm/PickerPanel/interface.d.ts +44 -2
  124. package/dist/esm/PickerPanel/panels/DatePanel/DateBody.d.ts +2 -1
  125. package/dist/esm/PickerPanel/panels/DatePanel/DateHeader.d.ts +2 -1
  126. package/dist/esm/PickerPanel/panels/DatePanel/DateHeader.js +1 -1
  127. package/dist/esm/PickerPanel/panels/DatePanel/index.d.ts +2 -1
  128. package/dist/esm/PickerPanel/panels/DateTimePanel/index.d.ts +7 -1
  129. package/dist/esm/PickerPanel/panels/DateTimePanel/index.js +11 -7
  130. package/dist/esm/PickerPanel/panels/DecadePanel/DecadeBody.d.ts +2 -1
  131. package/dist/esm/PickerPanel/panels/DecadePanel/DecadeBody.js +2 -1
  132. package/dist/esm/PickerPanel/panels/DecadePanel/DecadeHeader.d.ts +2 -1
  133. package/dist/esm/PickerPanel/panels/DecadePanel/DecadeHeader.js +2 -1
  134. package/dist/esm/PickerPanel/panels/DecadePanel/index.d.ts +2 -1
  135. package/dist/esm/PickerPanel/panels/DecadePanel/index.js +1 -1
  136. package/dist/esm/PickerPanel/panels/Header.d.ts +13 -1
  137. package/dist/esm/PickerPanel/panels/MonthPanel/MonthBody.d.ts +2 -1
  138. package/dist/esm/PickerPanel/panels/MonthPanel/MonthHeader.d.ts +2 -1
  139. package/dist/esm/PickerPanel/panels/MonthPanel/MonthHeader.js +2 -1
  140. package/dist/esm/PickerPanel/panels/MonthPanel/index.d.ts +2 -1
  141. package/dist/esm/PickerPanel/panels/MonthPanel/index.js +1 -1
  142. package/dist/esm/PickerPanel/panels/PanelBody.d.ts +21 -1
  143. package/dist/esm/PickerPanel/panels/PanelBody.js +2 -4
  144. package/dist/esm/PickerPanel/panels/QuarterPanel/QuarterBody.d.ts +2 -1
  145. package/dist/esm/PickerPanel/panels/QuarterPanel/QuarterHeader.d.ts +2 -1
  146. package/dist/esm/PickerPanel/panels/QuarterPanel/index.d.ts +2 -1
  147. package/dist/esm/PickerPanel/panels/RangePanel/index.d.ts +2 -1
  148. package/dist/esm/PickerPanel/panels/RangePanel/index.js +2 -2
  149. package/dist/esm/PickerPanel/panels/RangePanel/interface.d.ts +5 -5
  150. package/dist/esm/PickerPanel/panels/TimePanel/TimeBody.d.ts +17 -1
  151. package/dist/esm/PickerPanel/panels/TimePanel/TimeCell.d.ts +7 -1
  152. package/dist/esm/PickerPanel/panels/TimePanel/TimeCell.js +1 -1
  153. package/dist/esm/PickerPanel/panels/TimePanel/TimeColumn.d.ts +14 -1
  154. package/dist/esm/PickerPanel/panels/TimePanel/TimeColumn.js +1 -1
  155. package/dist/esm/PickerPanel/panels/TimePanel/TimeHeader.d.ts +4 -1
  156. package/dist/esm/PickerPanel/panels/TimePanel/index.d.ts +9 -1
  157. package/dist/esm/PickerPanel/panels/WeekPanel/WeekBody.d.ts +2 -1
  158. package/dist/esm/PickerPanel/panels/WeekPanel/WeekHeader.d.ts +2 -1
  159. package/dist/esm/PickerPanel/panels/WeekPanel/index.d.ts +2 -1
  160. package/dist/esm/PickerPanel/panels/YearPanel/YearBody.d.ts +2 -1
  161. package/dist/esm/PickerPanel/panels/YearPanel/YearBody.js +3 -2
  162. package/dist/esm/PickerPanel/panels/YearPanel/YearHeader.d.ts +2 -1
  163. package/dist/esm/PickerPanel/panels/YearPanel/YearHeader.js +2 -1
  164. package/dist/esm/PickerPanel/panels/YearPanel/index.d.ts +2 -1
  165. package/dist/esm/PickerPanel/panels/YearPanel/index.js +1 -1
  166. package/dist/esm/PickerPanel/picker-panel.js +3 -0
  167. package/dist/esm/PickerPanel/utils/pickerUtils.d.ts +7 -7
  168. package/dist/esm/PickerPanel/utils/pickerUtils.js +4 -10
  169. package/dist/esm/Select/demo/basic.js +1 -1
  170. package/dist/esm/Select/demo/virtual.d.ts +3 -0
  171. package/dist/esm/Select/demo/virtual.js +38 -0
  172. package/dist/esm/Select/hooks/useSelectKeyboard.d.ts +7 -1
  173. package/dist/esm/Select/hooks/useSelectKeyboard.js +25 -9
  174. package/dist/esm/Select/interface.d.ts +44 -0
  175. package/dist/esm/Select/option.js +4 -2
  176. package/dist/esm/Select/options.js +132 -13
  177. package/dist/esm/Select/select.js +19 -4
  178. package/dist/esm/Select/style/index.less +17 -13
  179. package/dist/esm/Selector/style/index.less +2 -137
  180. package/dist/esm/Table/style/index.less +19 -0
  181. package/dist/esm/TextArea/style/index.less +0 -17
  182. package/dist/esm/hooks/index.d.ts +2 -1
  183. package/dist/esm/hooks/index.js +2 -1
  184. package/dist/esm/hooks/useVirtualList.d.ts +71 -0
  185. package/dist/esm/hooks/useVirtualList.js +129 -0
  186. package/dist/esm/style/size.css +1 -0
  187. package/dist/esm/style/themes.css +1 -1
  188. package/dist/esm/style/variables.css +2 -1
  189. package/dist/esm/version.d.ts +1 -1
  190. package/dist/esm/version.js +1 -1
  191. package/dist/umd/yee-c.min.css +2 -2
  192. package/dist/umd/yee-c.min.js +1 -1
  193. package/package.json +1 -1
  194. package/src/Carousel/carousel.tsx +14 -3
  195. package/src/Carousel/interface.ts +6 -0
  196. package/src/Cascader/cascader.tsx +3 -1
  197. package/src/Cascader/column.tsx +1 -1
  198. package/src/Dialog/demo/basic.tsx +1 -1
  199. package/src/Dialog/dialog.tsx +1 -1
  200. package/src/Drawer/style/index.less +4 -0
  201. package/src/Dropdown/dropdown.tsx +1 -1
  202. package/src/Field/demo/validation.tsx +2 -2
  203. package/src/Field/field.tsx +2 -1
  204. package/src/Field/index.en-US.md +1 -1
  205. package/src/Field/index.zh-CN.md +1 -1
  206. package/src/FloatButton/float-button.tsx +5 -3
  207. package/src/Form/Field.tsx +3 -4
  208. package/src/Form/Form.tsx +1 -1
  209. package/src/Form/Group.tsx +15 -12
  210. package/src/Form/List.tsx +3 -3
  211. package/src/Form/demo/async-validate.tsx +71 -0
  212. package/src/Form/demo/basic.tsx +2 -2
  213. package/src/Form/demo/virtual.tsx +1 -1
  214. package/src/Form/form-store.ts +37 -21
  215. package/src/Form/index.en-US.md +6 -5
  216. package/src/Form/index.zh-CN.md +6 -5
  217. package/src/Form/interface.ts +13 -7
  218. package/src/Form/style/index.less +15 -0
  219. package/src/Form/utils/validate.ts +65 -13
  220. package/src/Input/style/index.less +0 -17
  221. package/src/InputNumber/style/index.less +0 -29
  222. package/src/PickerPanel/interface.ts +43 -2
  223. package/src/PickerPanel/panels/DatePanel/DateBody.tsx +2 -1
  224. package/src/PickerPanel/panels/DatePanel/DateHeader.tsx +3 -2
  225. package/src/PickerPanel/panels/DatePanel/index.tsx +2 -1
  226. package/src/PickerPanel/panels/DateTimePanel/index.tsx +12 -5
  227. package/src/PickerPanel/panels/DecadePanel/DecadeBody.tsx +3 -2
  228. package/src/PickerPanel/panels/DecadePanel/DecadeHeader.tsx +3 -2
  229. package/src/PickerPanel/panels/DecadePanel/index.tsx +3 -2
  230. package/src/PickerPanel/panels/Header.tsx +14 -1
  231. package/src/PickerPanel/panels/MonthPanel/MonthBody.tsx +2 -1
  232. package/src/PickerPanel/panels/MonthPanel/MonthHeader.tsx +3 -2
  233. package/src/PickerPanel/panels/MonthPanel/index.tsx +3 -2
  234. package/src/PickerPanel/panels/PanelBody.tsx +27 -5
  235. package/src/PickerPanel/panels/QuarterPanel/QuarterBody.tsx +2 -1
  236. package/src/PickerPanel/panels/QuarterPanel/QuarterHeader.tsx +2 -1
  237. package/src/PickerPanel/panels/QuarterPanel/index.tsx +2 -1
  238. package/src/PickerPanel/panels/RangePanel/index.tsx +11 -9
  239. package/src/PickerPanel/panels/RangePanel/interface.ts +5 -5
  240. package/src/PickerPanel/panels/TimePanel/TimeBody.tsx +21 -5
  241. package/src/PickerPanel/panels/TimePanel/TimeCell.tsx +9 -2
  242. package/src/PickerPanel/panels/TimePanel/TimeColumn.tsx +15 -2
  243. package/src/PickerPanel/panels/TimePanel/TimeHeader.tsx +5 -1
  244. package/src/PickerPanel/panels/TimePanel/index.tsx +10 -1
  245. package/src/PickerPanel/panels/WeekPanel/WeekBody.tsx +2 -1
  246. package/src/PickerPanel/panels/WeekPanel/WeekHeader.tsx +2 -1
  247. package/src/PickerPanel/panels/WeekPanel/index.tsx +2 -1
  248. package/src/PickerPanel/panels/YearPanel/YearBody.tsx +4 -3
  249. package/src/PickerPanel/panels/YearPanel/YearHeader.tsx +9 -3
  250. package/src/PickerPanel/panels/YearPanel/index.tsx +3 -2
  251. package/src/PickerPanel/picker-panel.tsx +5 -3
  252. package/src/PickerPanel/utils/pickerUtils.ts +17 -8
  253. package/src/Select/demo/basic.tsx +1 -1
  254. package/src/Select/demo/virtual.tsx +25 -0
  255. package/src/Select/hooks/useSelectKeyboard.ts +30 -6
  256. package/src/Select/index.en-US.md +4 -0
  257. package/src/Select/index.zh-CN.md +4 -0
  258. package/src/Select/interface.ts +48 -2
  259. package/src/Select/option.tsx +2 -1
  260. package/src/Select/options.tsx +139 -8
  261. package/src/Select/select.tsx +23 -1
  262. package/src/Select/style/index.less +17 -13
  263. package/src/Selector/style/index.less +2 -137
  264. package/src/Splitter/hooks/useMove.ts +2 -2
  265. package/src/Table/style/index.less +19 -0
  266. package/src/TextArea/style/index.less +0 -17
  267. package/src/hooks/index.ts +2 -0
  268. package/src/hooks/useEvent.ts +7 -4
  269. package/src/hooks/useMergedState.ts +6 -4
  270. package/src/hooks/useVirtualList.ts +169 -0
  271. package/src/style/size.css +1 -0
  272. package/src/version.ts +1 -1
@@ -1,3 +1,19 @@
1
+ import { Dayjs } from 'dayjs';
1
2
  import * as React from 'react';
2
- declare function TimeBody(props: any): React.JSX.Element;
3
+ import type { PanelSharedProps } from '../../interface';
4
+ interface TimeBodyProps extends PanelSharedProps {
5
+ value?: Dayjs;
6
+ showTitle?: boolean;
7
+ showHour?: boolean;
8
+ showMinute?: boolean;
9
+ showSecond?: boolean;
10
+ disabledHours?: boolean;
11
+ disabledMinutes?: boolean;
12
+ disabledSeconds?: boolean;
13
+ is12hour?: boolean;
14
+ hourStep?: number;
15
+ minuteStep?: number;
16
+ secondStep?: number;
17
+ }
18
+ declare function TimeBody(props: TimeBodyProps): React.JSX.Element;
3
19
  export default TimeBody;
@@ -1,3 +1,9 @@
1
1
  import React from 'react';
2
- declare function TimeCell(props: any): React.JSX.Element;
2
+ interface TimeCellProps {
3
+ prefixCls?: string;
4
+ value: number;
5
+ onSelect?: (value: number) => void;
6
+ active?: boolean;
7
+ }
8
+ declare function TimeCell(props: TimeCellProps): React.JSX.Element;
3
9
  export default TimeCell;
@@ -40,6 +40,6 @@ function TimeCell(props) {
40
40
  [`${prefixCls}-time-panel-cell-selected`]: active
41
41
  });
42
42
  const renderValue = value < 10 ? "0" + value : value;
43
- return /* @__PURE__ */ import_react.default.createElement("li", { className: cls, onClick: () => onSelect(value) }, /* @__PURE__ */ import_react.default.createElement("div", { className: `${prefixCls}-time-panel-cell-inner` }, renderValue));
43
+ return /* @__PURE__ */ import_react.default.createElement("li", { className: cls, onClick: () => onSelect == null ? void 0 : onSelect(value) }, /* @__PURE__ */ import_react.default.createElement("div", { className: `${prefixCls}-time-panel-cell-inner` }, renderValue));
44
44
  }
45
45
  var TimeCell_default = TimeCell;
@@ -1,3 +1,16 @@
1
+ import { Dayjs } from 'dayjs';
1
2
  import React from 'react';
2
- declare function TimeColumn(props: any): React.JSX.Element;
3
+ import type { TimeUnit } from '../../interface';
4
+ interface TimeColumnProps {
5
+ prefixCls?: string;
6
+ type: TimeUnit;
7
+ value?: Dayjs;
8
+ cells: Dayjs[];
9
+ disabled?: boolean;
10
+ onSelect?: (date: Dayjs) => void;
11
+ viewDate?: Dayjs;
12
+ maxDate?: Dayjs;
13
+ minDate?: Dayjs;
14
+ }
15
+ declare function TimeColumn(props: TimeColumnProps): React.JSX.Element;
3
16
  export default TimeColumn;
@@ -52,7 +52,7 @@ function TimeColumn(props) {
52
52
  const [selectedCell, setSelectedCell] = import_react.default.useState();
53
53
  import_react.default.useLayoutEffect(() => {
54
54
  var _a, _b;
55
- if (value !== -1 && selectedRef.current) {
55
+ if (value !== void 0 && selectedRef.current) {
56
56
  (_b = ref.current) == null ? void 0 : _b.scrollTo({
57
57
  top: (_a = selectedRef.current) == null ? void 0 : _a.offsetTop,
58
58
  behavior: "smooth"
@@ -1,3 +1,6 @@
1
1
  import React from 'react';
2
- declare function TimeHeader(props: any): React.JSX.Element;
2
+ interface TimeHeaderProps {
3
+ prefixCls?: string;
4
+ }
5
+ declare function TimeHeader(props: TimeHeaderProps): React.JSX.Element;
3
6
  export default TimeHeader;
@@ -1,3 +1,11 @@
1
1
  import * as React from 'react';
2
- declare function TimePanel(props: any): React.JSX.Element;
2
+ import type { PanelSharedProps } from '../../interface';
3
+ interface TimePanelProps extends PanelSharedProps {
4
+ format?: string;
5
+ hourStep?: number;
6
+ minuteStep?: number;
7
+ secondStep?: number;
8
+ showTitle?: boolean;
9
+ }
10
+ declare function TimePanel(props: TimePanelProps): React.JSX.Element;
3
11
  export default TimePanel;
@@ -1,3 +1,4 @@
1
1
  import * as React from 'react';
2
- declare function WeekBody(props: any): React.JSX.Element;
2
+ import type { PanelSharedProps } from '../../interface';
3
+ declare function WeekBody(props: PanelSharedProps): React.JSX.Element;
3
4
  export default WeekBody;
@@ -1,2 +1,3 @@
1
1
  import * as React from 'react';
2
- export default function WeekHeader(props: any): React.JSX.Element;
2
+ import type { PanelSharedProps } from '../../interface';
3
+ export default function WeekHeader(props: PanelSharedProps): React.JSX.Element;
@@ -1,2 +1,3 @@
1
1
  import React from 'react';
2
- export default function WeekPanel(props: any): React.JSX.Element;
2
+ import type { PanelSharedProps } from '../../interface';
3
+ export default function WeekPanel(props: PanelSharedProps): React.JSX.Element;
@@ -1,3 +1,4 @@
1
1
  import * as React from 'react';
2
- declare function YearBody(props: any): React.JSX.Element;
2
+ import type { PanelSharedProps } from '../../interface';
3
+ declare function YearBody(props: PanelSharedProps): React.JSX.Element;
3
4
  export default YearBody;
@@ -62,7 +62,7 @@ function YearBody(props) {
62
62
  maxDate,
63
63
  minDate,
64
64
  nowDate,
65
- offsetYear,
65
+ offsetYear = 0,
66
66
  hoverRange = [],
67
67
  selectedRange = []
68
68
  } = props;
@@ -77,7 +77,7 @@ function YearBody(props) {
77
77
  });
78
78
  const getCellTitle = (0, import_useEvent.default)((currentDate) => {
79
79
  const _year = import_pickerUtils.default.getYear(currentDate) + offsetYear;
80
- return _year < 1e3 ? "0" + _year : _year;
80
+ return _year < 1e3 ? "0" + _year : String(_year);
81
81
  });
82
82
  const getCellClassName = (0, import_useEvent.default)((currentDate) => {
83
83
  const currentYear = import_pickerUtils.default.getYear(currentDate);
@@ -1,2 +1,3 @@
1
1
  import * as React from 'react';
2
- export default function YearHeader(props: any): React.JSX.Element;
2
+ import type { PanelSharedProps } from '../../interface';
3
+ export default function YearHeader(props: PanelSharedProps): React.JSX.Element;
@@ -38,7 +38,13 @@ var import_useEvent = __toESM(require("../../../hooks/useEvent"));
38
38
  var import_Header = __toESM(require("../Header"));
39
39
  var import_pickerUtils = __toESM(require("../../utils/pickerUtils"));
40
40
  function YearHeader(props) {
41
- const { prefixCls, viewDate, onViewDateChange, onPanelChange, offsetYear } = props;
41
+ const {
42
+ prefixCls,
43
+ viewDate,
44
+ onViewDateChange,
45
+ onPanelChange,
46
+ offsetYear = 0
47
+ } = props;
42
48
  const viewYear = import_pickerUtils.default.getYear(viewDate);
43
49
  const startYear = viewYear - viewYear % 10 + offsetYear;
44
50
  const endYear = startYear + 9;
@@ -1,2 +1,3 @@
1
1
  import React from 'react';
2
- export default function DecadePanel(props: any): React.JSX.Element;
2
+ import type { PanelSharedProps } from '../../interface';
3
+ export default function DecadePanel(props: PanelSharedProps): React.JSX.Element;
@@ -56,7 +56,7 @@ function DecadePanel(props) {
56
56
  const { prefixCls, offset } = props;
57
57
  let offsetYear = 0;
58
58
  if (offset == null ? void 0 : offset.year) {
59
- offsetYear = parseInt(offset.year);
59
+ offsetYear = offset.year;
60
60
  }
61
61
  return /* @__PURE__ */ import_react.default.createElement("div", { className: `${prefixCls}-year-panel` }, /* @__PURE__ */ import_react.default.createElement(import_YearHeader.default, __spreadProps(__spreadValues({}, props), { offsetYear })), /* @__PURE__ */ import_react.default.createElement(import_YearBody.default, __spreadProps(__spreadValues({}, props), { offsetYear })));
62
62
  }
@@ -1,8 +1,8 @@
1
- import dayjs, { Dayjs } from 'dayjs';
1
+ import dayjs, { Dayjs, OpUnitType } from 'dayjs';
2
2
  type PickerType = 'year' | 'quarter' | 'month' | 'week' | 'day' | 'second' | 'minute' | 'hour';
3
3
  declare const d: {
4
4
  dayjs: typeof dayjs;
5
- init: (date?: string, ...rest: any[]) => dayjs.Dayjs;
5
+ init: (date?: dayjs.ConfigType, option?: dayjs.OptionType) => dayjs.Dayjs;
6
6
  getNow: () => dayjs.Dayjs;
7
7
  getYear: (date: Dayjs) => number;
8
8
  getQuarter: (date: Dayjs) => number;
@@ -13,7 +13,7 @@ declare const d: {
13
13
  getMinute: (date: Dayjs) => number;
14
14
  getSecond: (date: Dayjs) => number;
15
15
  format: (date: Dayjs, format: string) => string;
16
- isSame: (date1: Dayjs, date2: Dayjs, type?: PickerType) => boolean;
16
+ isSame: (date1: Dayjs | undefined, date2: Dayjs | undefined, type?: PickerType) => boolean;
17
17
  setYear: (date: Dayjs, year: number) => dayjs.Dayjs;
18
18
  setMonth: (date: Dayjs, month: number) => dayjs.Dayjs;
19
19
  setDate: (date: Dayjs, day: number) => dayjs.Dayjs;
@@ -23,10 +23,10 @@ declare const d: {
23
23
  addYear: (date: Dayjs, offset: number) => dayjs.Dayjs;
24
24
  addMonth: (date: Dayjs, offset: number) => dayjs.Dayjs;
25
25
  addDate: (date: Dayjs, offset: number) => dayjs.Dayjs;
26
- isAfter: (date1: Dayjs, date2: Dayjs, type?: 'day' | 'hour' | 'minute' | 'second' | 'year' | 'month') => boolean;
27
- isBefore: (date1: Dayjs, date2: Dayjs, type?: 'day' | 'hour' | 'minute' | 'second' | 'year' | 'month') => boolean;
28
- isValid: (date: Dayjs, format?: string, strict?: boolean) => boolean;
29
- isBetween: (date: Dayjs, start: Dayjs, end: Dayjs, ...args: any[]) => boolean;
26
+ isAfter: (date1: Dayjs, date2: Dayjs | undefined, type?: 'day' | 'hour' | 'minute' | 'second' | 'year' | 'month') => boolean;
27
+ isBefore: (date1: Dayjs, date2: Dayjs | undefined, type?: 'day' | 'hour' | 'minute' | 'second' | 'year' | 'month') => boolean;
28
+ isValid: (date: Dayjs | undefined, format?: string, strict?: boolean) => boolean;
29
+ isBetween: (date: Dayjs, start: Dayjs, end: Dayjs, unit?: OpUnitType, nulls?: '()' | '[]' | '[)' | '(]') => boolean;
30
30
  getCellClassName: ({ date, startHoverDate, endHoverDate, startSelectedDate, endSelectedDate, unit, prefixCls, }: {
31
31
  date: Dayjs;
32
32
  startHoverDate: Dayjs | null | undefined;
@@ -48,7 +48,7 @@ import_dayjs.default.extend(import_localeData.default);
48
48
  import_dayjs.default.extend(import_buddhistEra.default);
49
49
  var d = {
50
50
  dayjs: import_dayjs.default,
51
- init: (date, ...rest) => (0, import_dayjs.default)(date, ...rest),
51
+ init: (date, option) => (0, import_dayjs.default)(date, option),
52
52
  getNow: () => {
53
53
  return d.init(void 0);
54
54
  },
@@ -78,7 +78,7 @@ var d = {
78
78
  isAfter: (date1, date2, type) => date2 ? date1.isAfter(date2, type) : false,
79
79
  isBefore: (date1, date2, type) => date2 ? date1.isBefore(date2, type) : false,
80
80
  isValid: (date, format, strict) => (0, import_dayjs.default)(date, format, strict).isValid(),
81
- isBetween: (date, start, end, ...args) => date && start && end ? date.isBetween(start, end, ...args) : false,
81
+ isBetween: (date, start, end, unit, nulls) => date && start && end ? date.isBetween(start, end, unit, nulls) : false,
82
82
  getCellClassName: ({
83
83
  date,
84
84
  startHoverDate,
@@ -47,7 +47,7 @@ var options = [
47
47
  { label: "Peach", value: "peach" }
48
48
  ];
49
49
  var basic_default = () => {
50
- const [value, setValue] = (0, import_react.useState)("apple");
50
+ const [value, setValue] = (0, import_react.useState)("mango");
51
51
  return /* @__PURE__ */ import_react.default.createElement(
52
52
  import_yee_c.Select,
53
53
  {
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const _default: () => React.JSX.Element;
3
+ export default _default;
@@ -0,0 +1,55 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/Select/demo/virtual.tsx
30
+ var virtual_exports = {};
31
+ __export(virtual_exports, {
32
+ default: () => virtual_default
33
+ });
34
+ module.exports = __toCommonJS(virtual_exports);
35
+ var import_yee_c = require("../..");
36
+ var import_react = __toESM(require("react"));
37
+ var options = Array.from({ length: 5e3 }, (_, i) => ({
38
+ label: `Option ${i + 1}`,
39
+ value: i
40
+ }));
41
+ var virtual_default = () => {
42
+ const [value, setValue] = (0, import_react.useState)(100);
43
+ return /* @__PURE__ */ import_react.default.createElement(
44
+ import_yee_c.Select,
45
+ {
46
+ virtual: true,
47
+ searchable: true,
48
+ value,
49
+ onChange: (val) => setValue(val),
50
+ options,
51
+ style: { width: 200 },
52
+ placeholder: "Please select"
53
+ }
54
+ );
55
+ };
@@ -11,8 +11,14 @@ interface UseSelectKeyboardParams {
11
11
  onClose?: () => void;
12
12
  onOpenChange?: (open: boolean) => void;
13
13
  containerRef?: React.RefObject<HTMLElement>;
14
+ /**
15
+ * Virtual-mode scroll hook. When provided, keyboard navigation drives the
16
+ * virtual viewport through this callback instead of calling scrollIntoView
17
+ * (the focused option may not be in the DOM while virtualized).
18
+ */
19
+ scrollToIndex?: (index: number) => void;
14
20
  }
15
- export default function useSelectKeyboard({ options, open, selectedKeys, onSelect, onClose, onOpenChange, containerRef, }: UseSelectKeyboardParams): {
21
+ export default function useSelectKeyboard({ options, open, selectedKeys, onSelect, onClose, onOpenChange, containerRef, scrollToIndex, }: UseSelectKeyboardParams): {
16
22
  focusedKey: string | number;
17
23
  onKeyDown: (event: React.KeyboardEvent) => void;
18
24
  };
@@ -41,7 +41,8 @@ function useSelectKeyboard({
41
41
  onSelect,
42
42
  onClose,
43
43
  onOpenChange,
44
- containerRef
44
+ containerRef,
45
+ scrollToIndex
45
46
  }) {
46
47
  const [focusedKey, setFocusedKey] = (0, import_react.useState)("");
47
48
  const latestFocusedKey = (0, import_useLatest.default)(focusedKey);
@@ -69,6 +70,10 @@ function useSelectKeyboard({
69
70
  }
70
71
  };
71
72
  const scrollOptionIntoView = (index) => {
73
+ if (scrollToIndex) {
74
+ scrollToIndex(index);
75
+ return;
76
+ }
72
77
  const container = containerRef == null ? void 0 : containerRef.current;
73
78
  if (!container)
74
79
  return;
@@ -150,18 +155,23 @@ function useSelectKeyboard({
150
155
  };
151
156
  (0, import_react.useEffect)(() => {
152
157
  if (open) {
158
+ let focusedValue = "";
153
159
  if ((selectedKeys == null ? void 0 : selectedKeys.length) > 0) {
154
160
  const firstSelected = options == null ? void 0 : options.find(
155
161
  (opt) => opt.value === selectedKeys[0]
156
162
  );
157
163
  if (firstSelected && !firstSelected.disabled) {
158
- setFocusedKey(firstSelected.value);
159
- return;
164
+ focusedValue = firstSelected.value;
165
+ }
166
+ }
167
+ if (!focusedValue) {
168
+ const firstEnabled = options == null ? void 0 : options.find((opt) => !opt.disabled);
169
+ if (firstEnabled) {
170
+ focusedValue = firstEnabled.value;
160
171
  }
161
172
  }
162
- const firstEnabled = options == null ? void 0 : options.find((opt) => !opt.disabled);
163
- if (firstEnabled) {
164
- setFocusedKey(firstEnabled.value);
173
+ if (focusedValue) {
174
+ setFocusedKey(focusedValue);
165
175
  }
166
176
  } else {
167
177
  setFocusedKey("");
@@ -94,6 +94,26 @@ export interface SelectProps extends DataAttributeProps {
94
94
  * Callback when searching
95
95
  */
96
96
  onFilter?: (value: string, options: Array<Option>) => Array<Option>;
97
+ /**
98
+ * Enable virtual scrolling for the dropdown.
99
+ *
100
+ * When enabled, only the options inside the visible window are rendered
101
+ * (the DOM node count stays constant regardless of how many options there
102
+ * are). Recommended for large option sets (hundreds or thousands).
103
+ * @default false
104
+ */
105
+ virtual?: boolean;
106
+ /**
107
+ * Height of each option in pixels. Required to be a fixed value when
108
+ * `virtual` is enabled (the list assumes every option has exactly this height).
109
+ * @default 32
110
+ */
111
+ itemHeight?: number;
112
+ /**
113
+ * Max height of the dropdown popup in pixels.
114
+ * @default 200
115
+ */
116
+ listHeight?: number;
97
117
  }
98
118
  /**
99
119
  * Props for the internal Option component (renders a single dropdown option).
@@ -119,6 +139,11 @@ export interface OptionProps {
119
139
  * Test id forwarded to the option element
120
140
  */
121
141
  dataTestId?: string;
142
+ /**
143
+ * Inline style forwarded to the option element.
144
+ * Used by virtual scrolling to position each option absolutely.
145
+ */
146
+ style?: React.CSSProperties;
122
147
  }
123
148
  /**
124
149
  * Context value shared between Options and each Option.
@@ -167,6 +192,25 @@ export interface OptionsProps extends Omit<React.HTMLAttributes<HTMLDivElement>,
167
192
  * Whether multiple selection mode is active
168
193
  */
169
194
  multiple: boolean;
195
+ /**
196
+ * Whether virtual scrolling is enabled
197
+ */
198
+ virtual?: boolean;
199
+ /**
200
+ * Fixed option height in pixels (only meaningful when `virtual` is enabled)
201
+ */
202
+ itemHeight?: number;
203
+ /**
204
+ * Max popup height in pixels (only meaningful when `virtual` is enabled)
205
+ */
206
+ listHeight?: number;
207
+ /**
208
+ * Ref that receives the virtual list API (currently `scrollToIndex`),
209
+ * so the parent can wire keyboard navigation to the virtual viewport.
210
+ */
211
+ virtualApiRef?: React.MutableRefObject<{
212
+ scrollToIndex: (index: number) => void;
213
+ } | null>;
170
214
  /**
171
215
  * Callback when an option is selected
172
216
  */
@@ -37,7 +37,7 @@ var import_lucide_react = require("lucide-react");
37
37
  var import_react = __toESM(require("react"));
38
38
  var import_options = require("./options");
39
39
  var Option = (props) => {
40
- const { label, value, disabled, title, dataTestId } = props;
40
+ const { label, value, disabled, title, dataTestId, style } = props;
41
41
  const { prefixCls, selectedKeys, focusedKey, multiple, onSelect } = (0, import_react.useContext)(import_options.OptionsCtx);
42
42
  const handleClick = (e) => {
43
43
  if (!disabled) {
@@ -64,7 +64,8 @@ var Option = (props) => {
64
64
  role: "option",
65
65
  tabIndex: disabled ? void 0 : 0,
66
66
  title: htmlTitle,
67
- "data-testid": dataTestId
67
+ "data-testid": dataTestId,
68
+ style
68
69
  },
69
70
  /* @__PURE__ */ import_react.default.createElement("div", { className: `${prefixCls}-option-content` }, label),
70
71
  multiple && selected && /* @__PURE__ */ import_react.default.createElement("span", { className: `${prefixCls}-option-state` }, /* @__PURE__ */ import_react.default.createElement(import_lucide_react.Check, { size: 16 }))
@@ -64,6 +64,7 @@ __export(options_exports, {
64
64
  module.exports = __toCommonJS(options_exports);
65
65
  var import_clsx = __toESM(require("clsx"));
66
66
  var import_react = __toESM(require("react"));
67
+ var import_useVirtualList = __toESM(require("../hooks/useVirtualList"));
67
68
  var import_locale = require("../locale");
68
69
  var import_option = __toESM(require("./option"));
69
70
  var OptionsCtx = (0, import_react.createContext)(
@@ -82,6 +83,10 @@ var Options = (0, import_react.forwardRef)(
82
83
  focusedKey,
83
84
  dataTestId,
84
85
  multiple,
86
+ virtual,
87
+ itemHeight = 32,
88
+ listHeight = 200,
89
+ virtualApiRef,
85
90
  onSelect
86
91
  } = _a, rest = __objRest(_a, [
87
92
  "prefixCls",
@@ -92,30 +97,125 @@ var Options = (0, import_react.forwardRef)(
92
97
  "focusedKey",
93
98
  "dataTestId",
94
99
  "multiple",
100
+ "virtual",
101
+ "itemHeight",
102
+ "listHeight",
103
+ "virtualApiRef",
95
104
  "onSelect"
96
105
  ]);
97
- const componentRef = ref || (0, import_react.useRef)(null);
106
+ const rootRef = (0, import_react.useRef)(null);
107
+ (0, import_react.useImperativeHandle)(ref, () => rootRef.current, []);
108
+ const {
109
+ start,
110
+ end,
111
+ offsetY,
112
+ totalHeight,
113
+ viewportRef,
114
+ onScroll,
115
+ scrollToIndex
116
+ } = (0, import_useVirtualList.default)({
117
+ itemCount: options.length,
118
+ itemHeight
119
+ });
120
+ (0, import_react.useEffect)(() => {
121
+ if (!virtual || !virtualApiRef)
122
+ return;
123
+ virtualApiRef.current = { scrollToIndex };
124
+ return () => {
125
+ if (virtualApiRef.current) {
126
+ virtualApiRef.current = null;
127
+ }
128
+ };
129
+ }, [virtual, virtualApiRef, scrollToIndex]);
130
+ (0, import_react.useEffect)(() => {
131
+ if (virtual) {
132
+ scrollToIndex(0);
133
+ }
134
+ }, [options, virtual, scrollToIndex]);
135
+ (0, import_react.useEffect)(() => {
136
+ if (options.length === 0)
137
+ return;
138
+ if (focusedKey === "")
139
+ return;
140
+ const focusedIndex = options.findIndex((o) => o.value === focusedKey);
141
+ if (focusedIndex < 0)
142
+ return;
143
+ if (virtual) {
144
+ scrollToIndex(focusedIndex);
145
+ return;
146
+ }
147
+ const container = rootRef.current;
148
+ if (!container)
149
+ return;
150
+ const optionElements = container.querySelectorAll('[role="option"]');
151
+ const targetElement = optionElements[focusedIndex];
152
+ if (targetElement) {
153
+ targetElement.scrollIntoView({ block: "nearest" });
154
+ }
155
+ }, [focusedKey, virtual, options, scrollToIndex, rootRef]);
156
+ const isEmpty = options.length === 0;
157
+ const ctxValue = {
158
+ prefixCls,
159
+ selectedKeys,
160
+ focusedKey,
161
+ multiple,
162
+ onSelect
163
+ };
164
+ if (virtual && !isEmpty) {
165
+ const visibleOptions = options.slice(start, end);
166
+ return /* @__PURE__ */ import_react.default.createElement(
167
+ "div",
168
+ __spreadProps(__spreadValues({}, rest), {
169
+ className: (0, import_clsx.default)(
170
+ `${prefixCls}-popup`,
171
+ `${prefixCls}-popup-virtual`,
172
+ popupClassName
173
+ ),
174
+ style: popupStyle,
175
+ ref: rootRef,
176
+ tabIndex: -1
177
+ }),
178
+ /* @__PURE__ */ import_react.default.createElement(OptionsCtx.Provider, { value: ctxValue }, /* @__PURE__ */ import_react.default.createElement(
179
+ "div",
180
+ {
181
+ className: `${prefixCls}-popup-viewport`,
182
+ ref: viewportRef,
183
+ onScroll,
184
+ style: { maxHeight: listHeight, overflowY: "auto" }
185
+ },
186
+ /* @__PURE__ */ import_react.default.createElement("div", { style: { height: totalHeight, position: "relative" } }, visibleOptions.map((option, i) => /* @__PURE__ */ import_react.default.createElement(
187
+ import_option.default,
188
+ __spreadProps(__spreadValues({}, option), {
189
+ key: option.value,
190
+ dataTestId: `${dataTestId}-${start + i}`,
191
+ style: {
192
+ position: "absolute",
193
+ top: 0,
194
+ left: 0,
195
+ right: 0,
196
+ height: itemHeight,
197
+ transform: `translateY(${offsetY + i * itemHeight}px)`
198
+ }
199
+ })
200
+ )))
201
+ ))
202
+ );
203
+ }
98
204
  return /* @__PURE__ */ import_react.default.createElement(
99
205
  "div",
100
206
  __spreadProps(__spreadValues({}, rest), {
101
207
  className: (0, import_clsx.default)(`${prefixCls}-popup`, popupClassName),
102
208
  style: popupStyle,
103
- ref: componentRef,
209
+ ref: rootRef,
104
210
  tabIndex: -1
105
211
  }),
106
- options.length === 0 ? /* @__PURE__ */ import_react.default.createElement("div", { className: `${prefixCls}-empty` }, select.noData) : /* @__PURE__ */ import_react.default.createElement(
107
- OptionsCtx.Provider,
108
- {
109
- value: { prefixCls, selectedKeys, focusedKey, multiple, onSelect }
110
- },
111
- options.map((option, index) => /* @__PURE__ */ import_react.default.createElement(
112
- import_option.default,
113
- __spreadProps(__spreadValues({}, option), {
114
- key: option.value,
115
- dataTestId: `${dataTestId}-${index}`
116
- })
117
- ))
118
- )
212
+ isEmpty ? /* @__PURE__ */ import_react.default.createElement("div", { className: `${prefixCls}-empty` }, select.noData) : /* @__PURE__ */ import_react.default.createElement(OptionsCtx.Provider, { value: ctxValue }, options.map((option, index) => /* @__PURE__ */ import_react.default.createElement(
213
+ import_option.default,
214
+ __spreadProps(__spreadValues({}, option), {
215
+ key: option.value,
216
+ dataTestId: `${dataTestId}-${index}`
217
+ })
218
+ )))
119
219
  );
120
220
  }
121
221
  );