@rainbow-oh/yee-c 0.14.5 → 0.14.7

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.
@@ -99,6 +99,7 @@ var Field = (props) => {
99
99
  const {
100
100
  getCallbacks,
101
101
  getFieldStatus,
102
+ getFieldValidate,
102
103
  getFieldValue,
103
104
  getFieldsValue,
104
105
  setFieldsValue,
@@ -119,13 +120,31 @@ var Field = (props) => {
119
120
  const normalizedName = (0, import_react2.useMemo)(() => {
120
121
  return stringifyPath(fullFieldNamePath);
121
122
  }, [fullFieldNamePath]);
123
+ const propsRef = (0, import_react2.useRef)(props);
124
+ propsRef.current = props;
122
125
  (0, import_react2.useLayoutEffect)(() => {
123
126
  const unregister = registerFieldEntities == null ? void 0 : registerFieldEntities({
124
- props: __spreadProps(__spreadValues({}, props), { name: normalizedName }),
127
+ get props() {
128
+ return __spreadProps(__spreadValues({}, propsRef.current), { name: normalizedName });
129
+ },
125
130
  onStoreChange: forceUpdate
126
131
  });
127
132
  return unregister;
128
133
  }, [normalizedName, registerFieldEntities]);
134
+ const validateSignature = (0, import_react2.useMemo)(
135
+ () => JSON.stringify({ required, rules }),
136
+ [required, rules]
137
+ );
138
+ const prevValidateSignatureRef = (0, import_react2.useRef)(validateSignature);
139
+ (0, import_react2.useLayoutEffect)(() => {
140
+ const prev = prevValidateSignatureRef.current;
141
+ prevValidateSignatureRef.current = validateSignature;
142
+ if (prev === validateSignature)
143
+ return;
144
+ if (getFieldValidate == null ? void 0 : getFieldValidate(normalizedName)) {
145
+ void (validateField == null ? void 0 : validateField(normalizedName));
146
+ }
147
+ }, [validateSignature, normalizedName]);
129
148
  const isRequired = () => {
130
149
  return Array.isArray(rules) && rules.find((rule) => rule.required) || required;
131
150
  };
@@ -130,10 +130,12 @@ var Group = (props) => {
130
130
  );
131
131
  return () => unsubscribes.forEach((fn) => fn());
132
132
  }, [childNames, formInstance]);
133
+ const validateRef = (0, import_react2.useRef)(validate);
134
+ validateRef.current = validate;
133
135
  (0, import_react2.useEffect)(() => {
134
136
  const unregister = formInstance.registerGroupEntity(groupId, {
135
137
  validate: (force) => __async(void 0, null, function* () {
136
- const result = yield validate(force);
138
+ const result = yield validateRef.current(force);
137
139
  setErrors(result);
138
140
  forceUpdate();
139
141
  return result;
@@ -72,7 +72,7 @@ var List = ({
72
72
  children,
73
73
  initialValue = []
74
74
  }) => {
75
- const { getFieldValue, setFieldsValue, validateFields } = (0, import_react.useContext)(import_FieldContext.default);
75
+ const { getFieldValue, setFieldsValue, validateFields, subscribe } = (0, import_react.useContext)(import_FieldContext.default);
76
76
  const listNamePath = (0, import_react.useMemo)(() => (0, import_path.getNamePath)(name), [name]);
77
77
  const parentPrefixName = (0, import_react.useContext)(ListNameContext) || [];
78
78
  const prefixName = (0, import_react.useMemo)(
@@ -81,6 +81,7 @@ var List = ({
81
81
  );
82
82
  const keyManager = (0, import_react.useRef)({ keys: [], id: 0 }).current;
83
83
  const [, forceUpdate] = (0, import_react.useState)(0);
84
+ const listLengthRef = (0, import_react.useRef)(0);
84
85
  (0, import_react.useLayoutEffect)(() => {
85
86
  const pathStr = prefixName.join(".");
86
87
  const currentValue = getFieldValue == null ? void 0 : getFieldValue(pathStr);
@@ -89,6 +90,16 @@ var List = ({
89
90
  forceUpdate((prev) => prev + 1);
90
91
  }
91
92
  }, [prefixName, initialValue, getFieldValue, setFieldsValue]);
93
+ (0, import_react.useLayoutEffect)(
94
+ () => subscribe == null ? void 0 : subscribe(prefixName.join("."), () => {
95
+ const next = getFieldValue == null ? void 0 : getFieldValue(prefixName.join("."));
96
+ const nextLen = Array.isArray(next) ? next.length : 0;
97
+ if (nextLen === listLengthRef.current)
98
+ return;
99
+ forceUpdate((prev) => prev + 1);
100
+ }),
101
+ [prefixName, subscribe, getFieldValue]
102
+ );
92
103
  const getListValue = () => {
93
104
  const pathStr = prefixName.join(".");
94
105
  const value = getFieldValue == null ? void 0 : getFieldValue(pathStr);
@@ -133,7 +144,6 @@ var List = ({
133
144
  setFieldsValue == null ? void 0 : setFieldsValue({ [pathStr]: newList }, "update");
134
145
  }
135
146
  keyManager.id += 1;
136
- forceUpdate((prev) => prev + 1);
137
147
  });
138
148
  const remove = (index) => {
139
149
  const indices = Array.isArray(index) ? index : [index];
@@ -145,7 +155,6 @@ var List = ({
145
155
  keyManager.keys = keyManager.keys.filter((_, i) => !indexSet.has(i));
146
156
  const newList = currentValue.filter((_, i) => !indexSet.has(i));
147
157
  setFieldsValue == null ? void 0 : setFieldsValue({ [pathStr]: newList }, "update");
148
- forceUpdate((prev) => prev + 1);
149
158
  };
150
159
  const moveFunc = (from, to) => {
151
160
  if (from === to)
@@ -163,6 +172,7 @@ var List = ({
163
172
  return { add, remove, move: moveFunc };
164
173
  }, [prefixName, getFieldValue, setFieldsValue]);
165
174
  const listValue = getListValue();
175
+ listLengthRef.current = listValue.length;
166
176
  while (keyManager.keys.length < listValue.length) {
167
177
  keyManager.keys.push(keyManager.id++);
168
178
  }
@@ -54,8 +54,8 @@
54
54
  height: var(--yee-selector-large-height);
55
55
  }
56
56
 
57
- &:focus-within,
58
- &:focus {
57
+ &:not(@{pls}-disabled):focus-within,
58
+ &:not(@{pls}-disabled):focus {
59
59
  @{pls}-input-wrapper {
60
60
  z-index: 1;
61
61
  opacity: var(--yee-selector-input-focus-opacity);
@@ -29,7 +29,7 @@
29
29
  --yee-color-text: #39364e;
30
30
  --yee-color-text-secondary: #696969;
31
31
  --yee-color-text-description: #7c7c7c;
32
- --yee-color-text-disabled: #bfbfbf;
32
+ --yee-color-text-disabled: #b8b8b8;
33
33
  --yee-color-text-highlight: #f58220;
34
34
  --yee-color-text-auxiliary: #d1d1d1;
35
35
  --yee-color-split: #e7e7e7;
@@ -37,7 +37,7 @@
37
37
  --yee-color-border-hover: #75b9f0;
38
38
  --yee-color-border-focus: #75b9f0;
39
39
  --yee-color-bg-highlight: rgba(245, 130, 32, 16%);
40
- --yee-color-bg-disabled: #f5f8fa;
40
+ --yee-color-bg-disabled: #f5f5f5;
41
41
  --yee-color-bg-head: #f8f8f8;
42
42
  --yee-color-bg-rail: #f5f5f5;
43
43
  --yee-color-bg-fill: #ededed;
@@ -493,7 +493,7 @@
493
493
  --yee-checkbox-checked-after-border-color: #fff;
494
494
  --yee-checkbox-disabled-unchecked-bg-color: var(--yee-color-bg-disabled);
495
495
  --yee-checkbox-disabled-checked-bg-color: var(--yee-color-bg-disabled);
496
- --yee-checkbox-disabled-checked-border-color: var(--yee-color-border);
496
+ --yee-checkbox-disabled-checked-border-color: var(--yee-color-text-disabled);
497
497
  --yee-checkbox-disabled-checked-after-border-color: var(
498
498
  --yee-color-text-disabled
499
499
  );
@@ -1223,7 +1223,7 @@
1223
1223
  --yee-border-color-hover-focus: var(--yee-color-border-focus);
1224
1224
  --yee-placeholder-color: var(--yee-color-placeholder);
1225
1225
 
1226
- /* deprecated:2026-09-11 hover/focus 拆分为 --yee-color-border-hover / --yee-color-border-focus */
1226
+ /* deprecated:2026-09-11 hover/focus 拆分为 --yee-color-border-hover / --yee-color-border-focus */
1227
1227
  --yee-color-border-hover-focus: var(--yee-color-border-focus);
1228
1228
  /* deprecated:2026-09-11 更名 --yee-input-focus-border-color */
1229
1229
  --yee-input-content-focus-border-color: var(--yee-input-focus-border-color);
@@ -1339,5 +1339,5 @@
1339
1339
  --yee-timepicker-bg-color: var(--yee-time-picker-bg-color);
1340
1340
  --yee-treeselect-dropdown-bg-color: var(--yee-tree-select-dropdown-bg-color);
1341
1341
 
1342
- /* deprecated-aliases:end */
1342
+ /* deprecated-aliases:end */
1343
1343
  }
@@ -79,7 +79,7 @@
79
79
  /* ================= 背景 ================= */
80
80
  --yee-color-bg-layout: #f1f2f4;
81
81
  --yee-color-bg-head: #fff;
82
- --yee-color-bg-disabled: #f2f3f5;
82
+ --yee-color-bg-disabled: #f5f5f5;
83
83
  /* 衍生:规范 --hover(极浅悬浮底) */
84
84
  --yee-color-bg-hover: rgba(109, 93, 252, 3.5%);
85
85
 
@@ -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-08T06:15:24.118Z
4
+ * Generated on 2026-10-14T03:47:11.377Z
5
5
  */
6
6
 
7
7
  /* ========== color.blue.css ========== */
@@ -3846,7 +3846,7 @@
3846
3846
  /* ================= 背景 ================= */
3847
3847
  --yee-color-bg-layout: #f1f2f4;
3848
3848
  --yee-color-bg-head: #fff;
3849
- --yee-color-bg-disabled: #f2f3f5;
3849
+ --yee-color-bg-disabled: #f5f5f5;
3850
3850
  /* 衍生:规范 --hover(极浅悬浮底) */
3851
3851
  --yee-color-bg-hover: rgba(109, 93, 252, 3.5%);
3852
3852
 
@@ -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-08T06:15:24.118Z
4
+ * Generated on 2026-10-14T03:47:11.377Z
5
5
  */
6
6
 
7
7
  /* ========== color.css ========== */
@@ -36,7 +36,7 @@
36
36
  --yee-color-text: #39364e;
37
37
  --yee-color-text-secondary: #696969;
38
38
  --yee-color-text-description: #7c7c7c;
39
- --yee-color-text-disabled: #bfbfbf;
39
+ --yee-color-text-disabled: #b8b8b8;
40
40
  --yee-color-text-highlight: #f58220;
41
41
  --yee-color-text-auxiliary: #d1d1d1;
42
42
  --yee-color-split: #e7e7e7;
@@ -44,7 +44,7 @@
44
44
  --yee-color-border-hover: #75b9f0;
45
45
  --yee-color-border-focus: #75b9f0;
46
46
  --yee-color-bg-highlight: rgba(245, 130, 32, 16%);
47
- --yee-color-bg-disabled: #f5f8fa;
47
+ --yee-color-bg-disabled: #f5f5f5;
48
48
  --yee-color-bg-head: #f8f8f8;
49
49
  --yee-color-bg-rail: #f5f5f5;
50
50
  --yee-color-bg-fill: #ededed;
@@ -500,7 +500,7 @@
500
500
  --yee-checkbox-checked-after-border-color: #fff;
501
501
  --yee-checkbox-disabled-unchecked-bg-color: var(--yee-color-bg-disabled);
502
502
  --yee-checkbox-disabled-checked-bg-color: var(--yee-color-bg-disabled);
503
- --yee-checkbox-disabled-checked-border-color: var(--yee-color-border);
503
+ --yee-checkbox-disabled-checked-border-color: var(--yee-color-text-disabled);
504
504
  --yee-checkbox-disabled-checked-after-border-color: var(
505
505
  --yee-color-text-disabled
506
506
  );
@@ -1230,7 +1230,7 @@
1230
1230
  --yee-border-color-hover-focus: var(--yee-color-border-focus);
1231
1231
  --yee-placeholder-color: var(--yee-color-placeholder);
1232
1232
 
1233
- /* deprecated:2026-09-11 hover/focus 拆分为 --yee-color-border-hover / --yee-color-border-focus */
1233
+ /* deprecated:2026-09-11 hover/focus 拆分为 --yee-color-border-hover / --yee-color-border-focus */
1234
1234
  --yee-color-border-hover-focus: var(--yee-color-border-focus);
1235
1235
  /* deprecated:2026-09-11 更名 --yee-input-focus-border-color */
1236
1236
  --yee-input-content-focus-border-color: var(--yee-input-focus-border-color);
@@ -1346,7 +1346,7 @@
1346
1346
  --yee-timepicker-bg-color: var(--yee-time-picker-bg-color);
1347
1347
  --yee-treeselect-dropdown-bg-color: var(--yee-tree-select-dropdown-bg-color);
1348
1348
 
1349
- /* deprecated-aliases:end */
1349
+ /* deprecated-aliases:end */
1350
1350
  }
1351
1351
 
1352
1352
 
@@ -3,4 +3,4 @@ declare global {
3
3
  __yee_c_version__: string;
4
4
  }
5
5
  }
6
- export declare const version = "0.14.5";
6
+ export declare const version = "0.14.7";
@@ -22,7 +22,7 @@ __export(version_exports, {
22
22
  version: () => version
23
23
  });
24
24
  module.exports = __toCommonJS(version_exports);
25
- var version = "0.14.5";
25
+ var version = "0.14.7";
26
26
  if (typeof window !== "undefined") {
27
27
  window.__yee_c_version__ = version;
28
28
  }
@@ -20,7 +20,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
20
20
  import clsx from 'clsx';
21
21
  import { HelpCircle } from 'lucide-react';
22
22
  import { AnimatePresence, motion } from 'motion/react';
23
- import React, { useContext, useLayoutEffect, useMemo, useReducer } from 'react';
23
+ import React, { useContext, useLayoutEffect, useMemo, useReducer, useRef } from 'react';
24
24
  import Tooltip from "../Tooltip";
25
25
  import FieldContext from "./FieldContext";
26
26
  import FormContext from "./FormContext";
@@ -56,6 +56,7 @@ var Field = function Field(props) {
56
56
  var _useContext = useContext(FieldContext),
57
57
  getCallbacks = _useContext.getCallbacks,
58
58
  getFieldStatus = _useContext.getFieldStatus,
59
+ getFieldValidate = _useContext.getFieldValidate,
59
60
  getFieldValue = _useContext.getFieldValue,
60
61
  getFieldsValue = _useContext.getFieldsValue,
61
62
  setFieldsValue = _useContext.setFieldsValue,
@@ -84,15 +85,45 @@ var Field = function Field(props) {
84
85
  var normalizedName = useMemo(function () {
85
86
  return stringifyPath(fullFieldNamePath);
86
87
  }, [fullFieldNamePath]);
88
+
89
+ // Registration happens once per field name, but the store (validateField)
90
+ // reads validation config off entity.props on every validation pass — the
91
+ // getter keeps those reads on the latest render's props so runtime changes
92
+ // to required/rules take effect.
93
+ var propsRef = useRef(props);
94
+ propsRef.current = props;
87
95
  useLayoutEffect(function () {
88
96
  var unregister = registerFieldEntities === null || registerFieldEntities === void 0 ? void 0 : registerFieldEntities({
89
- props: _objectSpread(_objectSpread({}, props), {}, {
90
- name: normalizedName
91
- }),
97
+ get props() {
98
+ return _objectSpread(_objectSpread({}, propsRef.current), {}, {
99
+ name: normalizedName
100
+ });
101
+ },
92
102
  onStoreChange: forceUpdate
93
103
  });
94
104
  return unregister;
95
105
  }, [normalizedName, registerFieldEntities]);
106
+
107
+ // JSON signature (not reference) because rules is typically an inline array
108
+ // literal; validator functions are dropped, but the getter above already
109
+ // makes the next natural validation use them.
110
+ var validateSignature = useMemo(function () {
111
+ return JSON.stringify({
112
+ required: required,
113
+ rules: rules
114
+ });
115
+ }, [required, rules]);
116
+ var prevValidateSignatureRef = useRef(validateSignature);
117
+ useLayoutEffect(function () {
118
+ var prev = prevValidateSignatureRef.current;
119
+ prevValidateSignatureRef.current = validateSignature;
120
+ if (prev === validateSignature) return;
121
+ // Only re-check fields already showing a validation message — pristine
122
+ // fields must not start erroring just because rules changed.
123
+ if (getFieldValidate !== null && getFieldValidate !== void 0 && getFieldValidate(normalizedName)) {
124
+ void (validateField === null || validateField === void 0 ? void 0 : validateField(normalizedName));
125
+ }
126
+ }, [validateSignature, normalizedName]);
96
127
  var isRequired = function isRequired() {
97
128
  return Array.isArray(rules) && rules.find(function (rule) {
98
129
  return rule.required;
@@ -57,7 +57,7 @@ var Group = function Group(props) {
57
57
  forceValidate = _useReducer4[1]; // eslint-disable-line @typescript-eslint/no-unused-vars
58
58
 
59
59
  // Group validation
60
- var _validate = /*#__PURE__*/function () {
60
+ var validate = /*#__PURE__*/function () {
61
61
  var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(force) {
62
62
  var values, errors, hasEmpty, _iterator, _step, rule, result, _ref2, _result$message;
63
63
  return _regeneratorRuntime().wrap(function _callee$(_context) {
@@ -165,7 +165,7 @@ var Group = function Group(props) {
165
165
  while (1) switch (_context2.prev = _context2.next) {
166
166
  case 0:
167
167
  _context2.next = 2;
168
- return _validate(false);
168
+ return validate(false);
169
169
  case 2:
170
170
  result = _context2.sent;
171
171
  setErrors(result);
@@ -195,17 +195,21 @@ var Group = function Group(props) {
195
195
  };
196
196
  }, [childNames, formInstance]);
197
197
 
198
- // Register group validator to FormStore
198
+ // Register group validator to FormStore. The closure is registered once, so
199
+ // it reads the latest validate (and its required/rules/childNames captures)
200
+ // through a ref — otherwise runtime prop changes never take effect.
201
+ var validateRef = useRef(validate);
202
+ validateRef.current = validate;
199
203
  useEffect(function () {
200
204
  var unregister = formInstance.registerGroupEntity(groupId, {
201
205
  validate: function () {
202
- var _validate2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(force) {
206
+ var _validate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(force) {
203
207
  var result;
204
208
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
205
209
  while (1) switch (_context3.prev = _context3.next) {
206
210
  case 0:
207
211
  _context3.next = 2;
208
- return _validate(force);
212
+ return validateRef.current(force);
209
213
  case 2:
210
214
  result = _context3.sent;
211
215
  setErrors(result);
@@ -218,7 +222,7 @@ var Group = function Group(props) {
218
222
  }, _callee3);
219
223
  }));
220
224
  function validate(_x2) {
221
- return _validate2.apply(this, arguments);
225
+ return _validate.apply(this, arguments);
222
226
  }
223
227
  return validate;
224
228
  }(),
@@ -40,7 +40,8 @@ var List = function List(_ref) {
40
40
  var _useContext = useContext(FieldContext),
41
41
  getFieldValue = _useContext.getFieldValue,
42
42
  setFieldsValue = _useContext.setFieldsValue,
43
- validateFields = _useContext.validateFields;
43
+ validateFields = _useContext.validateFields,
44
+ subscribe = _useContext.subscribe;
44
45
 
45
46
  // Normalize list name path
46
47
  var listNamePath = useMemo(function () {
@@ -66,6 +67,9 @@ var List = function List(_ref) {
66
67
  _useState2 = _slicedToArray(_useState, 2),
67
68
  forceUpdate = _useState2[1];
68
69
 
70
+ // 上一次渲染的行数:订阅回调里跳过行内编辑(长度未变)触发的无效重渲染
71
+ var listLengthRef = useRef(0);
72
+
69
73
  // Initialize list value - Fix: use prefixName instead of listNamePath
70
74
  useLayoutEffect(function () {
71
75
  var pathStr = prefixName.join('.');
@@ -78,6 +82,24 @@ var List = function List(_ref) {
78
82
  }
79
83
  }, [prefixName, initialValue, getFieldValue, setFieldsValue]);
80
84
 
85
+ // Subscribe to the list's own path: List re-reads the store only on its own render,
86
+ // so a whole-value replacement via form.setFieldsValue (row count changed) never
87
+ // re-rendered it and new rows never mounted. Field instances already refresh through
88
+ // registerFieldEntities, but the row count lives here. Aligned with rc-field-form.
89
+ useLayoutEffect(function () {
90
+ return subscribe === null || subscribe === void 0 ? void 0 : subscribe(prefixName.join('.'), function () {
91
+ // isRelatedNamePath 双向前缀匹配,行内编辑(options.i.label)也命中本 watcher;
92
+ // 但 List 渲染输出只取决于行数,行内 Field 会经 registerFieldEntities 自行刷新,
93
+ // 长度未变则跳过,避免大列表逐键全列表重渲染
94
+ var next = getFieldValue === null || getFieldValue === void 0 ? void 0 : getFieldValue(prefixName.join('.'));
95
+ var nextLen = Array.isArray(next) ? next.length : 0;
96
+ if (nextLen === listLengthRef.current) return;
97
+ forceUpdate(function (prev) {
98
+ return prev + 1;
99
+ });
100
+ });
101
+ }, [prefixName, subscribe, getFieldValue]);
102
+
81
103
  // Get current list value
82
104
  var getListValue = function getListValue() {
83
105
  var pathStr = prefixName.join('.');
@@ -132,10 +154,7 @@ var List = function List(_ref) {
132
154
  setFieldsValue === null || setFieldsValue === void 0 || setFieldsValue(_defineProperty({}, pathStr, _newList), 'update');
133
155
  }
134
156
  keyManager.id += 1;
135
- forceUpdate(function (prev) {
136
- return prev + 1;
137
- });
138
- case 13:
157
+ case 12:
139
158
  case "end":
140
159
  return _context.stop();
141
160
  }
@@ -162,9 +181,6 @@ var List = function List(_ref) {
162
181
  return !indexSet.has(i);
163
182
  });
164
183
  setFieldsValue === null || setFieldsValue === void 0 || setFieldsValue(_defineProperty({}, pathStr, newList), 'update');
165
- forceUpdate(function (prev) {
166
- return prev + 1;
167
- });
168
184
  };
169
185
  var moveFunc = function moveFunc(from, to) {
170
186
  if (from === to) return;
@@ -180,6 +196,7 @@ var List = function List(_ref) {
180
196
  // Move list values
181
197
  var newList = move(currentValue, from, to);
182
198
  setFieldsValue === null || setFieldsValue === void 0 || setFieldsValue(_defineProperty({}, pathStr, newList), 'update');
199
+ // 同长度重排不会触发上方订阅回调(长度未变被跳过),须显式重渲染
183
200
  forceUpdate(function (prev) {
184
201
  return prev + 1;
185
202
  });
@@ -193,6 +210,7 @@ var List = function List(_ref) {
193
210
 
194
211
  // Build field list - removed useMemo, compute directly
195
212
  var listValue = getListValue();
213
+ listLengthRef.current = listValue.length;
196
214
 
197
215
  // Ensure enough keys
198
216
  while (keyManager.keys.length < listValue.length) {
@@ -54,8 +54,8 @@
54
54
  height: var(--yee-selector-large-height);
55
55
  }
56
56
 
57
- &:focus-within,
58
- &:focus {
57
+ &:not(@{pls}-disabled):focus-within,
58
+ &:not(@{pls}-disabled):focus {
59
59
  @{pls}-input-wrapper {
60
60
  z-index: 1;
61
61
  opacity: var(--yee-selector-input-focus-opacity);
@@ -29,7 +29,7 @@
29
29
  --yee-color-text: #39364e;
30
30
  --yee-color-text-secondary: #696969;
31
31
  --yee-color-text-description: #7c7c7c;
32
- --yee-color-text-disabled: #bfbfbf;
32
+ --yee-color-text-disabled: #b8b8b8;
33
33
  --yee-color-text-highlight: #f58220;
34
34
  --yee-color-text-auxiliary: #d1d1d1;
35
35
  --yee-color-split: #e7e7e7;
@@ -37,7 +37,7 @@
37
37
  --yee-color-border-hover: #75b9f0;
38
38
  --yee-color-border-focus: #75b9f0;
39
39
  --yee-color-bg-highlight: rgba(245, 130, 32, 16%);
40
- --yee-color-bg-disabled: #f5f8fa;
40
+ --yee-color-bg-disabled: #f5f5f5;
41
41
  --yee-color-bg-head: #f8f8f8;
42
42
  --yee-color-bg-rail: #f5f5f5;
43
43
  --yee-color-bg-fill: #ededed;
@@ -493,7 +493,7 @@
493
493
  --yee-checkbox-checked-after-border-color: #fff;
494
494
  --yee-checkbox-disabled-unchecked-bg-color: var(--yee-color-bg-disabled);
495
495
  --yee-checkbox-disabled-checked-bg-color: var(--yee-color-bg-disabled);
496
- --yee-checkbox-disabled-checked-border-color: var(--yee-color-border);
496
+ --yee-checkbox-disabled-checked-border-color: var(--yee-color-text-disabled);
497
497
  --yee-checkbox-disabled-checked-after-border-color: var(
498
498
  --yee-color-text-disabled
499
499
  );
@@ -1223,7 +1223,7 @@
1223
1223
  --yee-border-color-hover-focus: var(--yee-color-border-focus);
1224
1224
  --yee-placeholder-color: var(--yee-color-placeholder);
1225
1225
 
1226
- /* deprecated:2026-09-11 hover/focus 拆分为 --yee-color-border-hover / --yee-color-border-focus */
1226
+ /* deprecated:2026-09-11 hover/focus 拆分为 --yee-color-border-hover / --yee-color-border-focus */
1227
1227
  --yee-color-border-hover-focus: var(--yee-color-border-focus);
1228
1228
  /* deprecated:2026-09-11 更名 --yee-input-focus-border-color */
1229
1229
  --yee-input-content-focus-border-color: var(--yee-input-focus-border-color);
@@ -1339,5 +1339,5 @@
1339
1339
  --yee-timepicker-bg-color: var(--yee-time-picker-bg-color);
1340
1340
  --yee-treeselect-dropdown-bg-color: var(--yee-tree-select-dropdown-bg-color);
1341
1341
 
1342
- /* deprecated-aliases:end */
1342
+ /* deprecated-aliases:end */
1343
1343
  }
@@ -79,7 +79,7 @@
79
79
  /* ================= 背景 ================= */
80
80
  --yee-color-bg-layout: #f1f2f4;
81
81
  --yee-color-bg-head: #fff;
82
- --yee-color-bg-disabled: #f2f3f5;
82
+ --yee-color-bg-disabled: #f5f5f5;
83
83
  /* 衍生:规范 --hover(极浅悬浮底) */
84
84
  --yee-color-bg-hover: rgba(109, 93, 252, 3.5%);
85
85
 
@@ -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-08T06:15:24.118Z
4
+ * Generated on 2026-10-14T03:47:11.377Z
5
5
  */
6
6
 
7
7
  /* ========== color.blue.css ========== */
@@ -3846,7 +3846,7 @@
3846
3846
  /* ================= 背景 ================= */
3847
3847
  --yee-color-bg-layout: #f1f2f4;
3848
3848
  --yee-color-bg-head: #fff;
3849
- --yee-color-bg-disabled: #f2f3f5;
3849
+ --yee-color-bg-disabled: #f5f5f5;
3850
3850
  /* 衍生:规范 --hover(极浅悬浮底) */
3851
3851
  --yee-color-bg-hover: rgba(109, 93, 252, 3.5%);
3852
3852
 
@@ -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-08T06:15:24.118Z
4
+ * Generated on 2026-10-14T03:47:11.377Z
5
5
  */
6
6
 
7
7
  /* ========== color.css ========== */
@@ -36,7 +36,7 @@
36
36
  --yee-color-text: #39364e;
37
37
  --yee-color-text-secondary: #696969;
38
38
  --yee-color-text-description: #7c7c7c;
39
- --yee-color-text-disabled: #bfbfbf;
39
+ --yee-color-text-disabled: #b8b8b8;
40
40
  --yee-color-text-highlight: #f58220;
41
41
  --yee-color-text-auxiliary: #d1d1d1;
42
42
  --yee-color-split: #e7e7e7;
@@ -44,7 +44,7 @@
44
44
  --yee-color-border-hover: #75b9f0;
45
45
  --yee-color-border-focus: #75b9f0;
46
46
  --yee-color-bg-highlight: rgba(245, 130, 32, 16%);
47
- --yee-color-bg-disabled: #f5f8fa;
47
+ --yee-color-bg-disabled: #f5f5f5;
48
48
  --yee-color-bg-head: #f8f8f8;
49
49
  --yee-color-bg-rail: #f5f5f5;
50
50
  --yee-color-bg-fill: #ededed;
@@ -500,7 +500,7 @@
500
500
  --yee-checkbox-checked-after-border-color: #fff;
501
501
  --yee-checkbox-disabled-unchecked-bg-color: var(--yee-color-bg-disabled);
502
502
  --yee-checkbox-disabled-checked-bg-color: var(--yee-color-bg-disabled);
503
- --yee-checkbox-disabled-checked-border-color: var(--yee-color-border);
503
+ --yee-checkbox-disabled-checked-border-color: var(--yee-color-text-disabled);
504
504
  --yee-checkbox-disabled-checked-after-border-color: var(
505
505
  --yee-color-text-disabled
506
506
  );
@@ -1230,7 +1230,7 @@
1230
1230
  --yee-border-color-hover-focus: var(--yee-color-border-focus);
1231
1231
  --yee-placeholder-color: var(--yee-color-placeholder);
1232
1232
 
1233
- /* deprecated:2026-09-11 hover/focus 拆分为 --yee-color-border-hover / --yee-color-border-focus */
1233
+ /* deprecated:2026-09-11 hover/focus 拆分为 --yee-color-border-hover / --yee-color-border-focus */
1234
1234
  --yee-color-border-hover-focus: var(--yee-color-border-focus);
1235
1235
  /* deprecated:2026-09-11 更名 --yee-input-focus-border-color */
1236
1236
  --yee-input-content-focus-border-color: var(--yee-input-focus-border-color);
@@ -1346,7 +1346,7 @@
1346
1346
  --yee-timepicker-bg-color: var(--yee-time-picker-bg-color);
1347
1347
  --yee-treeselect-dropdown-bg-color: var(--yee-tree-select-dropdown-bg-color);
1348
1348
 
1349
- /* deprecated-aliases:end */
1349
+ /* deprecated-aliases:end */
1350
1350
  }
1351
1351
 
1352
1352
 
@@ -3,4 +3,4 @@ declare global {
3
3
  __yee_c_version__: string;
4
4
  }
5
5
  }
6
- export declare const version = "0.14.5";
6
+ export declare const version = "0.14.7";
@@ -1,4 +1,4 @@
1
- export var version = "0.14.5";
1
+ export var version = "0.14.7";
2
2
  if (typeof window !== 'undefined') {
3
3
  window.__yee_c_version__ = version;
4
4
  }