@rainbow-oh/yee-c 0.8.17 → 0.8.19

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 (58) hide show
  1. package/dist/cjs/Checkbox/checkbox-group.js +1 -1
  2. package/dist/cjs/Form/Group.js +1 -3
  3. package/dist/cjs/Form/style/index.less +2 -0
  4. package/dist/cjs/Form/utils/validate.d.ts +1 -0
  5. package/dist/cjs/Form/utils/validate.js +3 -2
  6. package/dist/cjs/Select/demo/loading.d.ts +3 -0
  7. package/dist/cjs/Select/demo/loading.js +61 -0
  8. package/dist/cjs/Select/interface.d.ts +6 -1
  9. package/dist/cjs/Select/select.js +3 -0
  10. package/dist/cjs/Selector/selector.js +10 -1
  11. package/dist/cjs/TableSelect/interface.d.ts +5 -0
  12. package/dist/cjs/TableSelect/table-select.js +3 -0
  13. package/dist/cjs/TreeSelect/interface.d.ts +5 -0
  14. package/dist/cjs/TreeSelect/tree-select.js +4 -1
  15. package/dist/cjs/style/themes.css +1 -1
  16. package/dist/cjs/style/variables.css +1 -1
  17. package/dist/cjs/version.d.ts +1 -1
  18. package/dist/cjs/version.js +1 -1
  19. package/dist/esm/Checkbox/checkbox-group.js +1 -1
  20. package/dist/esm/Form/Group.js +2 -2
  21. package/dist/esm/Form/style/index.less +2 -0
  22. package/dist/esm/Form/utils/validate.d.ts +1 -0
  23. package/dist/esm/Form/utils/validate.js +2 -2
  24. package/dist/esm/Select/demo/loading.d.ts +3 -0
  25. package/dist/esm/Select/demo/loading.js +32 -0
  26. package/dist/esm/Select/interface.d.ts +6 -1
  27. package/dist/esm/Select/select.js +3 -1
  28. package/dist/esm/Selector/selector.js +5 -1
  29. package/dist/esm/TableSelect/interface.d.ts +5 -0
  30. package/dist/esm/TableSelect/table-select.js +3 -1
  31. package/dist/esm/TreeSelect/interface.d.ts +5 -0
  32. package/dist/esm/TreeSelect/tree-select.js +3 -1
  33. package/dist/esm/style/themes.css +1 -1
  34. package/dist/esm/style/variables.css +1 -1
  35. package/dist/esm/version.d.ts +1 -1
  36. package/dist/esm/version.js +1 -1
  37. package/dist/umd/yee-c.min.css +1 -1
  38. package/dist/umd/yee-c.min.js +1 -1
  39. package/package.json +1 -1
  40. package/src/Checkbox/checkbox-group.tsx +1 -1
  41. package/src/Form/Group.tsx +2 -4
  42. package/src/Form/style/index.less +2 -0
  43. package/src/Form/utils/validate.ts +7 -2
  44. package/src/Select/demo/loading.tsx +28 -0
  45. package/src/Select/index.en-US.md +2 -0
  46. package/src/Select/index.zh-CN.md +2 -0
  47. package/src/Select/interface.ts +10 -3
  48. package/src/Select/select.tsx +2 -0
  49. package/src/Selector/selector.tsx +10 -1
  50. package/src/TableSelect/index.en-US.md +1 -0
  51. package/src/TableSelect/index.zh-CN.md +1 -0
  52. package/src/TableSelect/interface.ts +5 -0
  53. package/src/TableSelect/table-select.tsx +2 -0
  54. package/src/TreeSelect/index.en-US.md +1 -0
  55. package/src/TreeSelect/index.zh-CN.md +1 -0
  56. package/src/TreeSelect/interface.ts +5 -0
  57. package/src/TreeSelect/tree-select.tsx +2 -0
  58. package/src/version.ts +1 -1
@@ -118,7 +118,7 @@ var CheckboxGroup = (baseprops) => {
118
118
  __spreadProps(__spreadValues({
119
119
  disabled
120
120
  }, option), {
121
- checked: mergedValue.includes(option.value),
121
+ checked: mergedValue == null ? void 0 : mergedValue.includes(option.value),
122
122
  key: option.value || index
123
123
  }),
124
124
  option.label
@@ -86,9 +86,7 @@ var Group = (props) => {
86
86
  });
87
87
  const errors2 = [];
88
88
  if (required) {
89
- const hasEmpty = childNames.some(
90
- (name) => !values[name] && values[name] !== 0
91
- );
89
+ const hasEmpty = childNames.some((name) => (0, import_validate.isEmpty)(values[name]));
92
90
  if (hasEmpty) {
93
91
  errors2.push({
94
92
  name: childNames,
@@ -88,12 +88,14 @@
88
88
  --yee-input-border-color: var(--yee-error-color);
89
89
  --yee-input-hover-border-color: var(--yee-error-color-hover);
90
90
  --yee-input-focus-bs-color: var(--yee-error-color-border);
91
+ --yee-checkbox-border-color: var(--yee-error-color);
91
92
  }
92
93
 
93
94
  &&-warning {
94
95
  --yee-input-border-color: var(--yee-warning-color);
95
96
  --yee-input-hover-border-color: var(--yee-warning-color-hover);
96
97
  --yee-input-focus-bs-color: var(--yee-warning-color-border);
98
+ --yee-checkbox-border-color: var(--yee-warning-color);
97
99
  }
98
100
  }
99
101
  }
@@ -1,4 +1,5 @@
1
1
  import type { Rule } from '../interface';
2
+ export declare function isEmpty(value: unknown): boolean;
2
3
  export interface ValidateResult {
3
4
  passed: boolean;
4
5
  message?: string;
@@ -40,11 +40,12 @@ var __async = (__this, __arguments, generator) => {
40
40
  var validate_exports = {};
41
41
  __export(validate_exports, {
42
42
  default: () => validate_default,
43
+ isEmpty: () => isEmpty,
43
44
  runValidator: () => runValidator
44
45
  });
45
46
  module.exports = __toCommonJS(validate_exports);
46
- function isEmpty(v) {
47
- return v === void 0 || v === null || v === "" ? true : false;
47
+ function isEmpty(value) {
48
+ return value === void 0 || value === null || value === "" || Array.isArray(value) && value.length === 0;
48
49
  }
49
50
  function verifyRuleOfMin(min, value) {
50
51
  if (isEmpty(value))
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const _default: () => React.JSX.Element;
3
+ export default _default;
@@ -0,0 +1,61 @@
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/loading.tsx
30
+ var loading_exports = {};
31
+ __export(loading_exports, {
32
+ default: () => loading_default
33
+ });
34
+ module.exports = __toCommonJS(loading_exports);
35
+ var import_yee_c = require("../..");
36
+ var import_react = __toESM(require("react"));
37
+ var options = [
38
+ { label: "Apple", value: "apple" },
39
+ { label: "Banana", value: "banana" },
40
+ { label: "Orange", value: "orange" }
41
+ ];
42
+ var loading_default = () => {
43
+ return /* @__PURE__ */ import_react.default.createElement(import_yee_c.Space, { direction: "vertical" }, /* @__PURE__ */ import_react.default.createElement(
44
+ import_yee_c.Select,
45
+ {
46
+ loading: true,
47
+ options,
48
+ style: { width: 200 },
49
+ placeholder: "Loading"
50
+ }
51
+ ), /* @__PURE__ */ import_react.default.createElement(
52
+ import_yee_c.Select,
53
+ {
54
+ loading: true,
55
+ disabled: true,
56
+ defaultValue: "apple",
57
+ options,
58
+ style: { width: 200 }
59
+ }
60
+ ));
61
+ };
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
- import type { TriggerProps } from '../Trigger';
3
2
  import type { SelectorProps } from '../Selector';
3
+ import type { TriggerProps } from '../Trigger';
4
4
  import type { DataAttributeProps } from '../utils/types';
5
5
  export type Option = {
6
6
  /**
@@ -58,6 +58,11 @@ export interface SelectProps extends DataAttributeProps, Pick<SelectorProps, 'si
58
58
  * Whether disabled
59
59
  */
60
60
  disabled?: boolean;
61
+ /**
62
+ * Whether data is loading
63
+ * @default false
64
+ */
65
+ loading?: boolean;
61
66
  /**
62
67
  * Placeholder text for the select box
63
68
  */
@@ -92,6 +92,7 @@ var Select = (baseprops) => {
92
92
  defaultValue,
93
93
  optionFilterProp = "label",
94
94
  disabled,
95
+ loading,
95
96
  onChange,
96
97
  onFilter,
97
98
  virtual,
@@ -111,6 +112,7 @@ var Select = (baseprops) => {
111
112
  "defaultValue",
112
113
  "optionFilterProp",
113
114
  "disabled",
115
+ "loading",
114
116
  "onChange",
115
117
  "onFilter",
116
118
  "virtual",
@@ -267,6 +269,7 @@ var Select = (baseprops) => {
267
269
  value: searchValue,
268
270
  options,
269
271
  disabled,
272
+ loading,
270
273
  selectedKeys: mergedValue,
271
274
  onOpenChange: handleOpenChange,
272
275
  onClear: handleClear,
@@ -265,7 +265,16 @@ var Selector = import_react.default.forwardRef(
265
265
  ));
266
266
  };
267
267
  const renderSuffix = () => {
268
- return /* @__PURE__ */ import_react.default.createElement("span", { className: `${prefixCls}-arrow` }, loading ? /* @__PURE__ */ import_react.default.createElement(import_Spin.default, { size: "small" }) : suffix ? typeof suffix === "function" ? suffix() : suffix : /* @__PURE__ */ import_react.default.createElement(import_lucide_react.ChevronDown, { size: 16, strokeWidth: 1.5 }));
268
+ return /* @__PURE__ */ import_react.default.createElement("span", { className: `${prefixCls}-arrow` }, loading ? /* @__PURE__ */ import_react.default.createElement(
269
+ import_Spin.default,
270
+ {
271
+ variant: "ring",
272
+ size: "small",
273
+ style: {
274
+ "--m-indicator-dot-bg-color": "var(--yee-text-color-secondary)"
275
+ }
276
+ }
277
+ ) : suffix ? typeof suffix === "function" ? suffix() : suffix : /* @__PURE__ */ import_react.default.createElement(import_lucide_react.ChevronDown, { size: 16, strokeWidth: 1.5 }));
269
278
  };
270
279
  const renderClear = () => {
271
280
  if (!allowClear || disabled) {
@@ -112,6 +112,11 @@ export interface TableSelectProps extends Omit<InternalTableProps, 'value' | 'on
112
112
  * Whether disabled
113
113
  */
114
114
  disabled?: boolean;
115
+ /**
116
+ * Whether data is loading
117
+ * @default false
118
+ */
119
+ loading?: boolean;
115
120
  /**
116
121
  * Input direction (for special scenarios)
117
122
  */
@@ -90,6 +90,7 @@ var TableSelect = (baseprops) => {
90
90
  defaultValue,
91
91
  placement = "bottomLeft",
92
92
  disabled,
93
+ loading,
93
94
  rowSelection,
94
95
  dataSource,
95
96
  rowKey = "id",
@@ -108,6 +109,7 @@ var TableSelect = (baseprops) => {
108
109
  "defaultValue",
109
110
  "placement",
110
111
  "disabled",
112
+ "loading",
111
113
  "rowSelection",
112
114
  "dataSource",
113
115
  "rowKey",
@@ -205,6 +207,7 @@ var TableSelect = (baseprops) => {
205
207
  options: selectorOptions,
206
208
  open,
207
209
  disabled,
210
+ loading,
208
211
  value: searchValue,
209
212
  selectedKeys: mergedValue,
210
213
  onSearch: handleSearch,
@@ -34,6 +34,11 @@ export interface TreeSelectProps<T = any> extends Omit<TreeProps<T>, 'onSelect'
34
34
  * Whether disabled
35
35
  */
36
36
  disabled?: boolean;
37
+ /**
38
+ * Whether data is loading
39
+ * @default false
40
+ */
41
+ loading?: boolean;
37
42
  /**
38
43
  * Placeholder text for the select box
39
44
  */
@@ -89,7 +89,8 @@ var TreeSelect = (baseprops) => {
89
89
  defaultValue,
90
90
  checkable = false,
91
91
  multiple = false,
92
- optionLabelProp: optionLabelProp = "label",
92
+ loading: loading,
93
+ optionLabelProp = "label",
93
94
  onChange,
94
95
  onFilter
95
96
  } = _a, rest = __objRest(_a, [
@@ -103,6 +104,7 @@ var TreeSelect = (baseprops) => {
103
104
  "checkable",
104
105
  "multiple",
105
106
  // eslint-disable-line @typescript-eslint/no-unused-vars
107
+ "loading",
106
108
  "optionLabelProp",
107
109
  "onChange",
108
110
  "onFilter"
@@ -267,6 +269,7 @@ var TreeSelect = (baseprops) => {
267
269
  mode,
268
270
  value: searchValue,
269
271
  options: selectedOptions,
272
+ loading,
270
273
  selectedKeys: mergedValue,
271
274
  onOpenChange: handleOpenChange,
272
275
  onClear: handleClear,
@@ -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-08-05T09:43:58.935Z
4
+ * Generated on 2026-08-12T01:47:55.498Z
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-08-05T09:43:58.935Z
4
+ * Generated on 2026-08-12T01:47:55.498Z
5
5
  */
6
6
 
7
7
  /* ========== color.css ========== */
@@ -3,4 +3,4 @@ declare global {
3
3
  __yee_c_version__: string;
4
4
  }
5
5
  }
6
- export declare const version = "0.8.17";
6
+ export declare const version = "0.8.19";
@@ -22,7 +22,7 @@ __export(version_exports, {
22
22
  version: () => version
23
23
  });
24
24
  module.exports = __toCommonJS(version_exports);
25
- var version = "0.8.17";
25
+ var version = "0.8.19";
26
26
  if (typeof window !== "undefined") {
27
27
  window.__yee_c_version__ = version;
28
28
  }
@@ -73,7 +73,7 @@ var CheckboxGroup = function CheckboxGroup(baseprops) {
73
73
  return /*#__PURE__*/React.createElement(Checkbox, _extends({
74
74
  disabled: disabled
75
75
  }, option, {
76
- checked: mergedValue.includes(option.value),
76
+ checked: mergedValue === null || mergedValue === void 0 ? void 0 : mergedValue.includes(option.value),
77
77
  key: option.value || index
78
78
  }), option.label);
79
79
  })));
@@ -18,7 +18,7 @@ import React, { useContext, useEffect, useId, useMemo, useReducer, useRef } from
18
18
  import Grid from "../Grid";
19
19
  import FieldContext from "./FieldContext";
20
20
  import FormContext from "./FormContext";
21
- import { runValidator } from "./utils/validate";
21
+ import { isEmpty, runValidator } from "./utils/validate";
22
22
  var Group = function Group(props) {
23
23
  var _errors$;
24
24
  var label = props.label,
@@ -82,7 +82,7 @@ var Group = function Group(props) {
82
82
  errors = []; // Required validation: error if any child field is empty
83
83
  if (required) {
84
84
  hasEmpty = childNames.some(function (name) {
85
- return !values[name] && values[name] !== 0;
85
+ return isEmpty(values[name]);
86
86
  });
87
87
  if (hasEmpty) {
88
88
  errors.push({
@@ -88,12 +88,14 @@
88
88
  --yee-input-border-color: var(--yee-error-color);
89
89
  --yee-input-hover-border-color: var(--yee-error-color-hover);
90
90
  --yee-input-focus-bs-color: var(--yee-error-color-border);
91
+ --yee-checkbox-border-color: var(--yee-error-color);
91
92
  }
92
93
 
93
94
  &&-warning {
94
95
  --yee-input-border-color: var(--yee-warning-color);
95
96
  --yee-input-hover-border-color: var(--yee-warning-color-hover);
96
97
  --yee-input-focus-bs-color: var(--yee-warning-color-border);
98
+ --yee-checkbox-border-color: var(--yee-warning-color);
97
99
  }
98
100
  }
99
101
  }
@@ -1,4 +1,5 @@
1
1
  import type { Rule } from '../interface';
2
+ export declare function isEmpty(value: unknown): boolean;
2
3
  export interface ValidateResult {
3
4
  passed: boolean;
4
5
  message?: string;
@@ -2,8 +2,8 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
2
2
  function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
3
3
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
4
4
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
5
- function isEmpty(v) {
6
- return v === undefined || v === null || v === '' ? true : false;
5
+ export function isEmpty(value) {
6
+ return value === undefined || value === null || value === '' || Array.isArray(value) && value.length === 0;
7
7
  }
8
8
  function verifyRuleOfMin(min, value) {
9
9
  if (isEmpty(value)) return true;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const _default: () => React.JSX.Element;
3
+ export default _default;
@@ -0,0 +1,32 @@
1
+ import { Select, Space } from "../..";
2
+ import React from 'react';
3
+ var options = [{
4
+ label: 'Apple',
5
+ value: 'apple'
6
+ }, {
7
+ label: 'Banana',
8
+ value: 'banana'
9
+ }, {
10
+ label: 'Orange',
11
+ value: 'orange'
12
+ }];
13
+ export default (function () {
14
+ return /*#__PURE__*/React.createElement(Space, {
15
+ direction: "vertical"
16
+ }, /*#__PURE__*/React.createElement(Select, {
17
+ loading: true,
18
+ options: options,
19
+ style: {
20
+ width: 200
21
+ },
22
+ placeholder: "Loading"
23
+ }), /*#__PURE__*/React.createElement(Select, {
24
+ loading: true,
25
+ disabled: true,
26
+ defaultValue: "apple",
27
+ options: options,
28
+ style: {
29
+ width: 200
30
+ }
31
+ }));
32
+ });
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
- import type { TriggerProps } from '../Trigger';
3
2
  import type { SelectorProps } from '../Selector';
3
+ import type { TriggerProps } from '../Trigger';
4
4
  import type { DataAttributeProps } from '../utils/types';
5
5
  export type Option = {
6
6
  /**
@@ -58,6 +58,11 @@ export interface SelectProps extends DataAttributeProps, Pick<SelectorProps, 'si
58
58
  * Whether disabled
59
59
  */
60
60
  disabled?: boolean;
61
+ /**
62
+ * Whether data is loading
63
+ * @default false
64
+ */
65
+ loading?: boolean;
61
66
  /**
62
67
  * Placeholder text for the select box
63
68
  */
@@ -1,4 +1,4 @@
1
- var _excluded = ["prefixCls", "options", "placement", "mode", "value", "defaultValue", "optionFilterProp", "disabled", "onChange", "onFilter", "virtual", "itemHeight", "listHeight", "columns", "popupWidth", "looseMatch", "orphanClassName", "orphanStyle"];
1
+ var _excluded = ["prefixCls", "options", "placement", "mode", "value", "defaultValue", "optionFilterProp", "disabled", "loading", "onChange", "onFilter", "virtual", "itemHeight", "listHeight", "columns", "popupWidth", "looseMatch", "orphanClassName", "orphanStyle"];
2
2
  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); }
3
3
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
4
4
  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."); }
@@ -56,6 +56,7 @@ var Select = function Select(baseprops) {
56
56
  _props$optionFilterPr = props.optionFilterProp,
57
57
  optionFilterProp = _props$optionFilterPr === void 0 ? 'label' : _props$optionFilterPr,
58
58
  disabled = props.disabled,
59
+ loading = props.loading,
59
60
  onChange = props.onChange,
60
61
  onFilter = props.onFilter,
61
62
  virtual = props.virtual,
@@ -232,6 +233,7 @@ var Select = function Select(baseprops) {
232
233
  value: searchValue,
233
234
  options: options,
234
235
  disabled: disabled,
236
+ loading: loading,
235
237
  selectedKeys: mergedValue,
236
238
  onOpenChange: handleOpenChange,
237
239
  onClear: handleClear,
@@ -177,7 +177,11 @@ var Selector = /*#__PURE__*/React.forwardRef(function (props, ref) {
177
177
  return /*#__PURE__*/React.createElement("span", {
178
178
  className: "".concat(prefixCls, "-arrow")
179
179
  }, loading ? /*#__PURE__*/React.createElement(Spin, {
180
- size: "small"
180
+ variant: "ring",
181
+ size: "small",
182
+ style: {
183
+ '--m-indicator-dot-bg-color': 'var(--yee-text-color-secondary)'
184
+ }
181
185
  }) : suffix ? typeof suffix === 'function' ? suffix() : suffix : /*#__PURE__*/React.createElement(ChevronDown, {
182
186
  size: 16,
183
187
  strokeWidth: 1.5
@@ -112,6 +112,11 @@ export interface TableSelectProps extends Omit<InternalTableProps, 'value' | 'on
112
112
  * Whether disabled
113
113
  */
114
114
  disabled?: boolean;
115
+ /**
116
+ * Whether data is loading
117
+ * @default false
118
+ */
119
+ loading?: boolean;
115
120
  /**
116
121
  * Input direction (for special scenarios)
117
122
  */
@@ -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", "value", "defaultValue", "placement", "disabled", "rowSelection", "dataSource", "rowKey", "optionLabelProp", "allowClear", "closable", "searchable", "searchOnInput", "placeholder", "onChange", "onSearch", "onOpenChange"];
2
+ var _excluded = ["prefixCls", "value", "defaultValue", "placement", "disabled", "loading", "rowSelection", "dataSource", "rowKey", "optionLabelProp", "allowClear", "closable", "searchable", "searchOnInput", "placeholder", "onChange", "onSearch", "onOpenChange"];
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; }
@@ -51,6 +51,7 @@ var TableSelect = function TableSelect(baseprops) {
51
51
  _props$placement = props.placement,
52
52
  placement = _props$placement === void 0 ? 'bottomLeft' : _props$placement,
53
53
  disabled = props.disabled,
54
+ loading = props.loading,
54
55
  rowSelection = props.rowSelection,
55
56
  dataSource = props.dataSource,
56
57
  _props$rowKey = props.rowKey,
@@ -152,6 +153,7 @@ var TableSelect = function TableSelect(baseprops) {
152
153
  options: selectorOptions,
153
154
  open: open,
154
155
  disabled: disabled,
156
+ loading: loading,
155
157
  value: searchValue,
156
158
  selectedKeys: mergedValue,
157
159
  onSearch: handleSearch,
@@ -34,6 +34,11 @@ export interface TreeSelectProps<T = any> extends Omit<TreeProps<T>, 'onSelect'
34
34
  * Whether disabled
35
35
  */
36
36
  disabled?: boolean;
37
+ /**
38
+ * Whether data is loading
39
+ * @default false
40
+ */
41
+ loading?: boolean;
37
42
  /**
38
43
  * Placeholder text for the select box
39
44
  */
@@ -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", "dataSource", "fieldNames", "placement", "mode", "value", "defaultValue", "checkable", "multiple", "optionLabelProp", "onChange", "onFilter"];
2
+ var _excluded = ["prefixCls", "dataSource", "fieldNames", "placement", "mode", "value", "defaultValue", "checkable", "multiple", "loading", "optionLabelProp", "onChange", "onFilter"];
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; }
@@ -48,6 +48,7 @@ var TreeSelect = function TreeSelect(baseprops) {
48
48
  checkable = _props$checkable === void 0 ? false : _props$checkable,
49
49
  _props$multiple = props.multiple,
50
50
  multiple = _props$multiple === void 0 ? false : _props$multiple,
51
+ loading = props.loading,
51
52
  _props$optionLabelPro = props.optionLabelProp,
52
53
  optionLabelProp = _props$optionLabelPro === void 0 ? 'label' : _props$optionLabelPro,
53
54
  onChange = props.onChange,
@@ -221,6 +222,7 @@ var TreeSelect = function TreeSelect(baseprops) {
221
222
  mode: mode,
222
223
  value: searchValue,
223
224
  options: selectedOptions,
225
+ loading: loading,
224
226
  selectedKeys: mergedValue,
225
227
  onOpenChange: handleOpenChange,
226
228
  onClear: handleClear,
@@ -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-08-05T09:43:58.935Z
4
+ * Generated on 2026-08-12T01:47:55.498Z
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-08-05T09:43:58.935Z
4
+ * Generated on 2026-08-12T01:47:55.498Z
5
5
  */
6
6
 
7
7
  /* ========== color.css ========== */
@@ -3,4 +3,4 @@ declare global {
3
3
  __yee_c_version__: string;
4
4
  }
5
5
  }
6
- export declare const version = "0.8.17";
6
+ export declare const version = "0.8.19";
@@ -1,4 +1,4 @@
1
- export var version = "0.8.17";
1
+ export var version = "0.8.19";
2
2
  if (typeof window !== 'undefined') {
3
3
  window.__yee_c_version__ = version;
4
4
  }