@rainbow-oh/yee-c 0.14.7 → 0.15.1

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 (60) hide show
  1. package/dist/cjs/Form/index.d.ts +1 -1
  2. package/dist/cjs/Input/style/index.less +1 -0
  3. package/dist/cjs/InputNumber/demo/basic.js +1 -1
  4. package/dist/cjs/InputNumber/input-number.js +17 -4
  5. package/dist/cjs/InputNumber/interface.d.ts +3 -3
  6. package/dist/cjs/InputNumber/style/index.less +1 -0
  7. package/dist/cjs/Select/hooks/useSelectKeyboard.js +5 -2
  8. package/dist/cjs/Selector/selector.js +6 -3
  9. package/dist/cjs/TableSelect/hooks/useTableSelectKeyboard.d.ts +27 -0
  10. package/dist/cjs/TableSelect/hooks/useTableSelectKeyboard.js +128 -0
  11. package/dist/cjs/TableSelect/interface.d.ts +9 -4
  12. package/dist/cjs/TableSelect/internal-table.js +27 -14
  13. package/dist/cjs/TableSelect/style/index.less +3 -11
  14. package/dist/cjs/TableSelect/table-select.js +40 -3
  15. package/dist/cjs/style/size.css +1 -1
  16. package/dist/cjs/style/themes.css +1 -1
  17. package/dist/cjs/style/variables.css +2 -2
  18. package/dist/cjs/version.d.ts +1 -1
  19. package/dist/cjs/version.js +1 -1
  20. package/dist/esm/Form/index.d.ts +1 -1
  21. package/dist/esm/Input/style/index.less +1 -0
  22. package/dist/esm/InputNumber/demo/basic.js +1 -1
  23. package/dist/esm/InputNumber/input-number.js +20 -4
  24. package/dist/esm/InputNumber/interface.d.ts +3 -3
  25. package/dist/esm/InputNumber/style/index.less +1 -0
  26. package/dist/esm/Select/hooks/useSelectKeyboard.js +7 -2
  27. package/dist/esm/Selector/selector.js +10 -5
  28. package/dist/esm/TableSelect/hooks/useTableSelectKeyboard.d.ts +27 -0
  29. package/dist/esm/TableSelect/hooks/useTableSelectKeyboard.js +132 -0
  30. package/dist/esm/TableSelect/interface.d.ts +9 -4
  31. package/dist/esm/TableSelect/internal-table.js +6 -2
  32. package/dist/esm/TableSelect/style/index.less +3 -11
  33. package/dist/esm/TableSelect/table-select.js +36 -3
  34. package/dist/esm/style/size.css +1 -1
  35. package/dist/esm/style/themes.css +1 -1
  36. package/dist/esm/style/variables.css +2 -2
  37. package/dist/esm/version.d.ts +1 -1
  38. package/dist/esm/version.js +1 -1
  39. package/dist/umd/yee-c.min.css +2 -2
  40. package/dist/umd/yee-c.min.js +1 -1
  41. package/package.json +1 -1
  42. package/src/Form/index.ts +4 -0
  43. package/src/Input/style/index.less +1 -0
  44. package/src/InputNumber/demo/basic.tsx +1 -1
  45. package/src/InputNumber/index.en-US.md +2 -2
  46. package/src/InputNumber/index.zh-CN.md +2 -2
  47. package/src/InputNumber/input-number.tsx +27 -6
  48. package/src/InputNumber/interface.ts +3 -3
  49. package/src/InputNumber/style/index.less +1 -0
  50. package/src/Select/hooks/useSelectKeyboard.ts +7 -2
  51. package/src/Selector/selector.tsx +10 -5
  52. package/src/TableSelect/hooks/useTableSelectKeyboard.ts +141 -0
  53. package/src/TableSelect/index.en-US.md +47 -44
  54. package/src/TableSelect/index.zh-CN.md +47 -44
  55. package/src/TableSelect/interface.ts +9 -4
  56. package/src/TableSelect/internal-table.tsx +14 -6
  57. package/src/TableSelect/style/index.less +3 -11
  58. package/src/TableSelect/table-select.tsx +45 -3
  59. package/src/style/size.css +1 -1
  60. package/src/version.ts +1 -1
@@ -13,6 +13,7 @@
13
13
  border-radius: var(--yee-input-border-radius, 4px);
14
14
  background-color: var(--yee-input-content-bg-color);
15
15
  transition: all 0.3s;
16
+ overflow: hidden;
16
17
 
17
18
  &:not(@{pls}-disabled):hover {
18
19
  border-color: var(--yee-input-hover-border-color);
@@ -225,8 +225,13 @@ export default function useSelectKeyboard(_ref) {
225
225
  handleEnter();
226
226
  break;
227
227
  case 'Escape':
228
- event.preventDefault();
229
- handleEscape();
228
+ // Only swallow Escape while open so outer layers (e.g. a Dialog's
229
+ // useEsc listening on document) still receive it when closed.
230
+ if (open) {
231
+ event.preventDefault();
232
+ event.stopPropagation();
233
+ handleEscape();
234
+ }
230
235
  break;
231
236
  default:
232
237
  }
@@ -220,12 +220,17 @@ var Selector = /*#__PURE__*/React.forwardRef(function (props, ref) {
220
220
  "aria-disabled": disabled || undefined,
221
221
  onKeyDown: function onKeyDown(event) {
222
222
  if (disabled) return;
223
- // For non-searchable single select, handle Enter to open dropdown
224
- if (!searchable && event.key === 'Enter' && !open) {
225
- onOpenChange === null || onOpenChange === void 0 || onOpenChange(true);
223
+ // Enter opens the dropdown while it is closed
224
+ if (event.key === 'Enter' && !open && onOpenChange) {
225
+ event.preventDefault();
226
+ onOpenChange(true);
227
+ }
228
+ // Input forwards this handler for its own keydowns; handling them
229
+ // here too would fire the handler twice per keypress. Only handle
230
+ // events that originate on the container (non-searchable focus).
231
+ if (event.target !== inputRef.current) {
232
+ externalOnKeyDown === null || externalOnKeyDown === void 0 || externalOnKeyDown(event);
226
233
  }
227
- // Also call external onKeyDown if provided
228
- externalOnKeyDown === null || externalOnKeyDown === void 0 || externalOnKeyDown(event);
229
234
  },
230
235
  ref: ref
231
236
  }), /*#__PURE__*/React.createElement("div", {
@@ -0,0 +1,27 @@
1
+ /// <reference types="react" />
2
+ import type { TableSelectDataType } from '../interface';
3
+ type KeyType = string | number;
4
+ interface UseTableSelectKeyboardParams {
5
+ open: boolean;
6
+ disabled?: boolean;
7
+ dataSource: Array<TableSelectDataType>;
8
+ rowKey: string | ((record: any) => string);
9
+ selectionType: 'radio' | 'checkbox';
10
+ selectedRowKeys: Array<KeyType>;
11
+ searchValue: string;
12
+ onSelect: (keys: Array<KeyType>, rows: Array<TableSelectDataType>) => void;
13
+ onClose: () => void;
14
+ }
15
+ /**
16
+ * Keyboard navigation for the popup table. The highlight is positional (like a
17
+ * hover cursor): `activeRow` is a rendered row index, and Space selects the
18
+ * record displayed there. The rendered order is the filter→sort→paginate
19
+ * result inside Table and is not derivable from `dataSource`, so the row count
20
+ * and the highlighted row's key are both read from the popup DOM.
21
+ */
22
+ export default function useTableSelectKeyboard({ open, disabled, dataSource, rowKey, selectionType, selectedRowKeys, searchValue, onSelect, onClose, }: UseTableSelectKeyboardParams): {
23
+ popupRef: import("react").RefObject<HTMLDivElement | null>;
24
+ activeRow: number;
25
+ handleKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void;
26
+ };
27
+ export {};
@@ -0,0 +1,132 @@
1
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
2
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
4
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
5
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
6
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
7
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
8
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
9
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
10
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
11
+ import { useEffect, useRef, useState } from 'react';
12
+ /**
13
+ * Keyboard navigation for the popup table. The highlight is positional (like a
14
+ * hover cursor): `activeRow` is a rendered row index, and Space selects the
15
+ * record displayed there. The rendered order is the filter→sort→paginate
16
+ * result inside Table and is not derivable from `dataSource`, so the row count
17
+ * and the highlighted row's key are both read from the popup DOM.
18
+ */
19
+ export default function useTableSelectKeyboard(_ref) {
20
+ var open = _ref.open,
21
+ disabled = _ref.disabled,
22
+ dataSource = _ref.dataSource,
23
+ rowKey = _ref.rowKey,
24
+ selectionType = _ref.selectionType,
25
+ selectedRowKeys = _ref.selectedRowKeys,
26
+ searchValue = _ref.searchValue,
27
+ onSelect = _ref.onSelect,
28
+ onClose = _ref.onClose;
29
+ var popupRef = useRef(null);
30
+ // 1-based index of the highlighted row (`tr[data-row-index]`), 0 = none.
31
+ var _useState = useState(0),
32
+ _useState2 = _slicedToArray(_useState, 2),
33
+ activeRow = _useState2[0],
34
+ setActiveRow = _useState2[1];
35
+ useEffect(function () {
36
+ setActiveRow(0);
37
+ }, [open, searchValue]);
38
+ var getRecordKey = function getRecordKey(item) {
39
+ return typeof rowKey === 'function' ? rowKey(item) : item[rowKey];
40
+ };
41
+ var getRowCount = function getRowCount() {
42
+ var _popupRef$current$que, _popupRef$current;
43
+ return (_popupRef$current$que = (_popupRef$current = popupRef.current) === null || _popupRef$current === void 0 ? void 0 : _popupRef$current.querySelectorAll('tr[data-row-index]').length) !== null && _popupRef$current$que !== void 0 ? _popupRef$current$que : 0;
44
+ };
45
+ useEffect(function () {
46
+ var _popupRef$current2;
47
+ if (!open || activeRow < 1) return;
48
+ var rowEl = (_popupRef$current2 = popupRef.current) === null || _popupRef$current2 === void 0 ? void 0 : _popupRef$current2.querySelector("tr[data-row-index=\"".concat(activeRow, "\"]"));
49
+ if (!rowEl) return;
50
+ // Manual scroll instead of scrollIntoView: the popup renders in a portal,
51
+ // and scrollIntoView would scroll the page as well as the popup.
52
+ var parent = rowEl.parentElement;
53
+ while (parent && parent !== popupRef.current) {
54
+ var _window$getComputedSt = window.getComputedStyle(parent),
55
+ overflowY = _window$getComputedSt.overflowY;
56
+ if (/(auto|scroll)/.test(overflowY) && parent.scrollHeight > parent.clientHeight) {
57
+ var parentRect = parent.getBoundingClientRect();
58
+ var rowRect = rowEl.getBoundingClientRect();
59
+ if (rowRect.bottom > parentRect.bottom) {
60
+ parent.scrollTop += rowRect.bottom - parentRect.bottom;
61
+ } else if (rowRect.top < parentRect.top) {
62
+ parent.scrollTop -= parentRect.top - rowRect.top;
63
+ }
64
+ return;
65
+ }
66
+ parent = parent.parentElement;
67
+ }
68
+ }, [activeRow, open]);
69
+ var selectActiveRow = function selectActiveRow() {
70
+ var _popupRef$current3;
71
+ var rowEl = (_popupRef$current3 = popupRef.current) === null || _popupRef$current3 === void 0 ? void 0 : _popupRef$current3.querySelector("tr[data-row-index=\"".concat(activeRow, "\"]"));
72
+ var inputEl = rowEl === null || rowEl === void 0 ? void 0 : rowEl.querySelector('input[type="radio"],input[type="checkbox"]');
73
+ if (!inputEl || inputEl.disabled) return;
74
+ var record = dataSource.find(function (item) {
75
+ return String(getRecordKey(item)) === inputEl.value;
76
+ });
77
+ if (!record) return;
78
+ var key = getRecordKey(record);
79
+ if (selectionType === 'radio') {
80
+ // Same shape as the click path: arrays, normalized by the consumer.
81
+ onSelect([key], [record]);
82
+ onClose();
83
+ return;
84
+ }
85
+ var checked = selectedRowKeys.some(function (k) {
86
+ return String(k) === String(key);
87
+ });
88
+ var nextKeys = checked ? selectedRowKeys.filter(function (k) {
89
+ return String(k) !== String(key);
90
+ }) : [].concat(_toConsumableArray(selectedRowKeys), [key]);
91
+ var rows = dataSource.filter(function (item) {
92
+ return nextKeys.some(function (k) {
93
+ return String(getRecordKey(item)) === String(k);
94
+ });
95
+ });
96
+ onSelect(nextKeys, rows);
97
+ };
98
+ var handleKeyDown = function handleKeyDown(event) {
99
+ if (!open || disabled) return;
100
+ switch (event.key) {
101
+ case 'ArrowDown':
102
+ event.preventDefault();
103
+ setActiveRow(Math.min(activeRow + 1, getRowCount()));
104
+ break;
105
+ case 'ArrowUp':
106
+ event.preventDefault();
107
+ setActiveRow(activeRow <= 1 ? getRowCount() : activeRow - 1);
108
+ break;
109
+ case ' ':
110
+ // With nothing highlighted, space keeps its native input behavior.
111
+ if (activeRow > 0) {
112
+ event.preventDefault();
113
+ selectActiveRow();
114
+ }
115
+ break;
116
+ case 'Escape':
117
+ event.preventDefault();
118
+ // Stop the event from reaching outer layers (e.g. a Dialog's useEsc
119
+ // listening on document) so only the dropdown closes.
120
+ event.stopPropagation();
121
+ onClose();
122
+ break;
123
+ default:
124
+ break;
125
+ }
126
+ };
127
+ return {
128
+ popupRef: popupRef,
129
+ activeRow: activeRow,
130
+ handleKeyDown: handleKeyDown
131
+ };
132
+ }
@@ -9,7 +9,7 @@ type SelectedKeyType = string | number;
9
9
  /**
10
10
  * Data item type
11
11
  */
12
- type InDataType = {
12
+ export type TableSelectDataType = {
13
13
  [propName: string]: any;
14
14
  };
15
15
  /**
@@ -40,7 +40,7 @@ export interface InternalTableProps {
40
40
  /**
41
41
  * Data source
42
42
  */
43
- dataSource: Array<InDataType>;
43
+ dataSource: Array<TableSelectDataType>;
44
44
  /**
45
45
  * Custom class name
46
46
  */
@@ -65,6 +65,11 @@ export interface InternalTableProps {
65
65
  * Whether popup is visible (for focus trap)
66
66
  */
67
67
  visible?: boolean;
68
+ /**
69
+ * Ref to the popup root element, used by TableSelect for keyboard navigation
70
+ * @internal
71
+ */
72
+ popupRef?: React.RefObject<HTMLDivElement | null>;
68
73
  }
69
74
  /**
70
75
  * TableSelect component Props interface
@@ -77,7 +82,7 @@ export interface TableSelectProps extends Omit<InternalTableProps, 'value' | 'on
77
82
  /**
78
83
  * Data source
79
84
  */
80
- dataSource: Array<InDataType>;
85
+ dataSource: Array<TableSelectDataType>;
81
86
  /**
82
87
  * Single or multiple selection
83
88
  * @default: 'radio'
@@ -161,7 +166,7 @@ export interface TableSelectProps extends Omit<InternalTableProps, 'value' | 'on
161
166
  * Option label property (text field for displaying labels)
162
167
  * @default 'name'
163
168
  */
164
- optionLabelProp?: string | ((option: InDataType) => string);
169
+ optionLabelProp?: string | ((option: TableSelectDataType) => string);
165
170
  /**
166
171
  * Selection change callback
167
172
  * @param keys Selected keys
@@ -1,5 +1,5 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- var _excluded = ["prefixCls", "type", "value", "columns", "dataSource", "rowKey", "isShowFilter", "rowSelection", "visible"];
2
+ var _excluded = ["prefixCls", "type", "value", "columns", "dataSource", "rowKey", "isShowFilter", "rowSelection", "visible", "popupRef"];
3
3
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
4
4
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
5
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -32,6 +32,7 @@ var InternalTable = function InternalTable(props) {
32
32
  _props$rowSelection = props.rowSelection,
33
33
  rowSelection = _props$rowSelection === void 0 ? {} : _props$rowSelection,
34
34
  visible = props.visible,
35
+ externalPopupRef = props.popupRef,
35
36
  rest = _objectWithoutProperties(props, _excluded);
36
37
  var _useState = useState([]),
37
38
  _useState2 = _slicedToArray(_useState, 2),
@@ -77,7 +78,10 @@ var InternalTable = function InternalTable(props) {
77
78
  return /*#__PURE__*/React.createElement("div", {
78
79
  className: "".concat(prefixCls, "-popup"),
79
80
  tabIndex: 0,
80
- ref: popupRef
81
+ ref: function ref(node) {
82
+ popupRef.current = node;
83
+ if (externalPopupRef) externalPopupRef.current = node;
84
+ }
81
85
  }, renderRadio(), /*#__PURE__*/React.createElement(Table, _extends({}, rest, {
82
86
  rowKey: rowKey,
83
87
  dataSource: internalDataSource,
@@ -6,16 +6,8 @@
6
6
  margin: 0;
7
7
  padding: 12px 0;
8
8
 
9
- .rb-table-select__radio {
10
- padding: 0 12px;
11
- margin-bottom: 16px;
12
- }
13
- }
14
-
15
- .rb-table-select {
16
- margin-bottom: 0;
17
-
18
- .rb-table-footer-operate {
19
- padding: 0 12px;
9
+ // Keyboard-navigated row (TableSelect arrow keys)
10
+ .yee-table-highlight-row {
11
+ background-color: var(--yee-table-tbody-tr-hover-bg-color);
20
12
  }
21
13
  }
@@ -27,10 +27,14 @@ import Trigger from "../Trigger";
27
27
  import mergeContextToProps from "../utils/mergeContextToProps";
28
28
  import omit from "../utils/omit";
29
29
  import pick from "../utils/pick";
30
+ import useTableSelectKeyboard from "./hooks/useTableSelectKeyboard";
30
31
  import InternalTable from "./internal-table";
31
32
  import "./style/index.less";
32
33
  var handleState = function handleState(value) {
33
- if (typeof value === 'string' || typeof value === 'number') {
34
+ // '' is the empty-value convention for radio; it must not become a key.
35
+ if (value === '') {
36
+ return [];
37
+ } else if (typeof value === 'string' || typeof value === 'number') {
34
38
  return [value];
35
39
  } else if (Array.isArray(value)) {
36
40
  return value;
@@ -140,8 +144,28 @@ var TableSelect = function TableSelect(baseprops) {
140
144
  var renderKeys = keys.length === 0 ? selectionType === 'checkbox' ? [] : '' : keys;
141
145
  onChange === null || onChange === void 0 || onChange(renderKeys, undefined);
142
146
  };
147
+ var _useTableSelectKeyboa = useTableSelectKeyboard({
148
+ open: open,
149
+ disabled: disabled,
150
+ dataSource: dataSource,
151
+ rowKey: rowKey,
152
+ selectionType: selectionType,
153
+ selectedRowKeys: mergedValue,
154
+ searchValue: searchValue,
155
+ onSelect: onSelectChange,
156
+ onClose: function onClose() {
157
+ return onVisibleChange(false);
158
+ }
159
+ }),
160
+ popupRef = _useTableSelectKeyboa.popupRef,
161
+ activeRow = _useTableSelectKeyboa.activeRow,
162
+ handleSelectorKeyDown = _useTableSelectKeyboa.handleKeyDown;
163
+ var userHighlight = rest.highlight;
143
164
  var tableProps = omit(_objectSpread(_objectSpread({}, rest), {}, {
144
165
  prefixCls: prefixCls,
166
+ // Keyboard navigation reuses the row highlight; it takes precedence over
167
+ // a user-supplied index list while active.
168
+ highlight: activeRow > 0 ? [activeRow].concat(_toConsumableArray(Array.isArray(userHighlight) ? userHighlight : [])) : userHighlight,
145
169
  rowSelection: _objectSpread(_objectSpread({}, props.rowSelection), {}, {
146
170
  onChange: onSelectChange,
147
171
  selectedRowKeys: mergedValue
@@ -158,8 +182,15 @@ var TableSelect = function TableSelect(baseprops) {
158
182
  selectedKeys: mergedValue,
159
183
  onSearch: handleSearch,
160
184
  onRemove: onTagRemove,
185
+ onClear: function onClear() {
186
+ setMergedValue([]);
187
+ onChange === null || onChange === void 0 || onChange(selectionType === 'radio' ? '' : [], undefined);
188
+ },
189
+ onKeyDown: handleSelectorKeyDown,
161
190
  onOpenChange: function onOpenChange(open) {
162
- if (!open) {
191
+ if (open) {
192
+ onVisibleChange(true);
193
+ } else {
163
194
  clearSearchValue();
164
195
  }
165
196
  },
@@ -171,11 +202,13 @@ var TableSelect = function TableSelect(baseprops) {
171
202
  var renderPopup = function renderPopup() {
172
203
  return /*#__PURE__*/React.createElement(InternalTable, _extends({}, tableProps, {
173
204
  value: value,
174
- rowKey: rowKey
205
+ rowKey: rowKey,
206
+ popupRef: popupRef
175
207
  }));
176
208
  };
177
209
  return /*#__PURE__*/React.createElement(Trigger, _extends({}, rest, {
178
210
  trigger: "click",
211
+ open: open,
179
212
  popupClassName: "".concat(prefixCls, "-popup"),
180
213
  popup: renderPopup(),
181
214
  placement: placement,
@@ -587,7 +587,7 @@
587
587
  --yee-select-popup-max-height: 200px;
588
588
 
589
589
  /* --Selector-- */
590
- --yee-selector-padding: 2px 6px;
590
+ --yee-selector-padding: 3px 6px;
591
591
  --yee-selector-border-width: 1px;
592
592
  --yee-selector-border-radius: 4px;
593
593
  --yee-selector-height: var(--yee-input-height);
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * @rainbow-oh/yee-c CSS Variables
3
3
  * Auto-generated, do not edit manually
4
- * Generated on 2026-10-14T03:47:11.377Z
4
+ * Generated on 2026-10-16T07:04:02.333Z
5
5
  */
6
6
 
7
7
  /* ========== color.blue.css ========== */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * @rainbow-oh/yee-c CSS Variables
3
3
  * Auto-generated, do not edit manually
4
- * Generated on 2026-10-14T03:47:11.377Z
4
+ * Generated on 2026-10-16T07:04:02.333Z
5
5
  */
6
6
 
7
7
  /* ========== color.css ========== */
@@ -1940,7 +1940,7 @@
1940
1940
  --yee-select-popup-max-height: 200px;
1941
1941
 
1942
1942
  /* --Selector-- */
1943
- --yee-selector-padding: 2px 6px;
1943
+ --yee-selector-padding: 3px 6px;
1944
1944
  --yee-selector-border-width: 1px;
1945
1945
  --yee-selector-border-radius: 4px;
1946
1946
  --yee-selector-height: var(--yee-input-height);
@@ -3,4 +3,4 @@ declare global {
3
3
  __yee_c_version__: string;
4
4
  }
5
5
  }
6
- export declare const version = "0.14.7";
6
+ export declare const version = "0.15.1";
@@ -1,4 +1,4 @@
1
- export var version = "0.14.7";
1
+ export var version = "0.15.1";
2
2
  if (typeof window !== 'undefined') {
3
3
  window.__yee_c_version__ = version;
4
4
  }