@rainbow-oh/yee-c 0.13.0 → 0.14.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.
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const _default: () => React.JSX.Element;
3
+ export default _default;
@@ -0,0 +1,56 @@
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/Field/demo/standalone.tsx
30
+ var standalone_exports = {};
31
+ __export(standalone_exports, {
32
+ default: () => standalone_default
33
+ });
34
+ module.exports = __toCommonJS(standalone_exports);
35
+ var import_yee_c = require("../..");
36
+ var import_react = __toESM(require("react"));
37
+ var standalone_default = () => {
38
+ const [name, setName] = (0, import_react.useState)("");
39
+ const [remark, setRemark] = (0, import_react.useState)("");
40
+ return /* @__PURE__ */ import_react.default.createElement("div", { style: { maxWidth: 400 } }, /* @__PURE__ */ import_react.default.createElement(import_yee_c.Field, { label: "Name", required: true }, /* @__PURE__ */ import_react.default.createElement(
41
+ import_yee_c.Input,
42
+ {
43
+ value: name,
44
+ onChange: (v) => setName(v),
45
+ placeholder: "Standalone controlled Input"
46
+ }
47
+ )), /* @__PURE__ */ import_react.default.createElement(import_yee_c.Field, { label: "Remark" }, /* @__PURE__ */ import_react.default.createElement(
48
+ import_yee_c.TextArea,
49
+ {
50
+ value: remark,
51
+ onChange: (v) => setRemark(v),
52
+ placeholder: "Standalone controlled TextArea",
53
+ rows: 3
54
+ }
55
+ )), /* @__PURE__ */ import_react.default.createElement(import_yee_c.Field, null, /* @__PURE__ */ import_react.default.createElement(import_yee_c.Input, { placeholder: "Field without label" })));
56
+ };
@@ -55,7 +55,7 @@ var Field = (props) => {
55
55
  disabled
56
56
  } = props;
57
57
  const [, forceUpdate] = (0, import_react2.useReducer)((x) => x + 1, 0);
58
- const { form } = (0, import_useVirtualField.default)(formName, name, {
58
+ const { form } = (0, import_useVirtualField.default)(formName != null ? formName : "", name != null ? name : "", {
59
59
  props,
60
60
  onStoreChange: forceUpdate
61
61
  });
@@ -71,11 +71,20 @@ var Field = (props) => {
71
71
  return Array.isArray(rules) && rules.some((rule) => rule.required) || required;
72
72
  };
73
73
  const getControlled = (children2) => {
74
- const mergedDisabled = disabled || children2.props.disabled;
74
+ const childProps = children2.props;
75
+ if (!form || name === void 0) {
76
+ if (disabled === void 0)
77
+ return children2;
78
+ return import_react2.default.cloneElement(children2, {
79
+ disabled: disabled || childProps.disabled
80
+ });
81
+ }
82
+ const mergedDisabled = disabled || childProps.disabled;
83
+ const fieldName = name;
75
84
  const attr = {
76
- value: getFieldValue == null ? void 0 : getFieldValue(name),
85
+ value: getFieldValue == null ? void 0 : getFieldValue(fieldName),
77
86
  name: formName,
78
- id: name,
87
+ id: fieldName,
79
88
  disabled: mergedDisabled,
80
89
  onChange: (value, ...rest) => {
81
90
  var _a, _b, _c;
@@ -84,21 +93,21 @@ var Field = (props) => {
84
93
  const fieldsValue = getFieldsValue == null ? void 0 : getFieldsValue();
85
94
  const feedback = (_a = callbacks == null ? void 0 : callbacks.onValuesBeforeChange) == null ? void 0 : _a.call(
86
95
  callbacks,
87
- { [name]: _value },
96
+ { [fieldName]: _value },
88
97
  fieldsValue
89
98
  );
90
99
  if (feedback !== void 0) {
91
100
  _value = feedback;
92
101
  }
93
- setFieldsValue == null ? void 0 : setFieldsValue({ [name]: _value }, "onChange");
102
+ setFieldsValue == null ? void 0 : setFieldsValue({ [fieldName]: _value }, "onChange");
94
103
  if ((_b = children2.props) == null ? void 0 : _b.onChange) {
95
104
  children2.props.onChange(_value, ...rest);
96
105
  }
97
- (_c = callbacks == null ? void 0 : callbacks["onValuesChange"]) == null ? void 0 : _c.call(callbacks, { [name]: _value }, fieldsValue);
106
+ (_c = callbacks == null ? void 0 : callbacks["onValuesChange"]) == null ? void 0 : _c.call(callbacks, { [fieldName]: _value }, fieldsValue);
98
107
  forceUpdate();
99
108
  },
100
109
  onBlur: (event) => {
101
- void (validateField == null ? void 0 : validateField(name, "onBlur"));
110
+ void (validateField == null ? void 0 : validateField(fieldName, "onBlur"));
102
111
  if (children2.props.onBlur) {
103
112
  children2.props.onBlur(event);
104
113
  }
@@ -106,7 +115,7 @@ var Field = (props) => {
106
115
  };
107
116
  return import_react2.default.cloneElement(children2, attr);
108
117
  };
109
- const validate = getFieldValidate == null ? void 0 : getFieldValidate(name);
118
+ const validate = name !== void 0 ? getFieldValidate == null ? void 0 : getFieldValidate(name) : void 0;
110
119
  return /* @__PURE__ */ import_react2.default.createElement(
111
120
  "div",
112
121
  {
@@ -120,7 +129,7 @@ var Field = (props) => {
120
129
  ),
121
130
  style
122
131
  },
123
- /* @__PURE__ */ import_react2.default.createElement(
132
+ label ? /* @__PURE__ */ import_react2.default.createElement(
124
133
  "label",
125
134
  {
126
135
  className: (0, import_clsx.default)(
@@ -133,7 +142,7 @@ var Field = (props) => {
133
142
  style: styles == null ? void 0 : styles.label
134
143
  },
135
144
  label
136
- ),
145
+ ) : null,
137
146
  /* @__PURE__ */ import_react2.default.createElement(
138
147
  "div",
139
148
  {
@@ -27,13 +27,16 @@ export interface FieldProps {
27
27
  */
28
28
  label?: React.ReactNode;
29
29
  /**
30
- * Field name
30
+ * Field name (required only when used with a registered virtual form)
31
31
  */
32
- name: string;
32
+ name?: string;
33
33
  /**
34
- * Name of the parent form
34
+ * Name of the parent form.
35
+ * When omitted (or no form is registered under this name), Field renders
36
+ * as a pure layout wrapper: the child keeps its own value/onChange and
37
+ * no validation runs.
35
38
  */
36
- formName: string;
39
+ formName?: string;
37
40
  /**
38
41
  * Whether disabled
39
42
  */
@@ -25,6 +25,7 @@
25
25
  &-content {
26
26
  position: relative;
27
27
  padding-bottom: var(--yee-field-content-padding-bottom);
28
+ width: stretch;
28
29
  }
29
30
 
30
31
  &-error {
@@ -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-09-14T07:04:58.616Z
4
+ * Generated on 2026-09-17T09:06:26.119Z
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-09-14T07:04:58.616Z
4
+ * Generated on 2026-09-17T09:06:26.119Z
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.13.0";
6
+ export declare const version = "0.14.0";
@@ -22,7 +22,7 @@ __export(version_exports, {
22
22
  version: () => version
23
23
  });
24
24
  module.exports = __toCommonJS(version_exports);
25
- var version = "0.13.0";
25
+ var version = "0.14.0";
26
26
  if (typeof window !== "undefined") {
27
27
  window.__yee_c_version__ = version;
28
28
  }
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const _default: () => React.JSX.Element;
3
+ export default _default;
@@ -0,0 +1,43 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+ 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."); }
3
+ 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); }
4
+ 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; }
5
+ 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; } }
6
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
+ import { Field, Input, TextArea } from "../..";
8
+ import React, { useState } from 'react';
9
+ export default (function () {
10
+ var _useState = useState(''),
11
+ _useState2 = _slicedToArray(_useState, 2),
12
+ name = _useState2[0],
13
+ setName = _useState2[1];
14
+ var _useState3 = useState(''),
15
+ _useState4 = _slicedToArray(_useState3, 2),
16
+ remark = _useState4[0],
17
+ setRemark = _useState4[1];
18
+ return /*#__PURE__*/React.createElement("div", {
19
+ style: {
20
+ maxWidth: 400
21
+ }
22
+ }, /*#__PURE__*/React.createElement(Field, {
23
+ label: "Name",
24
+ required: true
25
+ }, /*#__PURE__*/React.createElement(Input, {
26
+ value: name,
27
+ onChange: function onChange(v) {
28
+ return setName(v);
29
+ },
30
+ placeholder: "Standalone controlled Input"
31
+ })), /*#__PURE__*/React.createElement(Field, {
32
+ label: "Remark"
33
+ }, /*#__PURE__*/React.createElement(TextArea, {
34
+ value: remark,
35
+ onChange: function onChange(v) {
36
+ return setRemark(v);
37
+ },
38
+ placeholder: "Standalone controlled TextArea",
39
+ rows: 3
40
+ })), /*#__PURE__*/React.createElement(Field, null, /*#__PURE__*/React.createElement(Input, {
41
+ placeholder: "Field without label"
42
+ })));
43
+ });
@@ -37,7 +37,7 @@ var Field = function Field(props) {
37
37
  }, 0),
38
38
  _useReducer2 = _slicedToArray(_useReducer, 2),
39
39
  forceUpdate = _useReducer2[1];
40
- var _useVirtualField = useVirtualField(formName, name, {
40
+ var _useVirtualField = useVirtualField(formName !== null && formName !== void 0 ? formName : '', name !== null && name !== void 0 ? name : '', {
41
41
  props: props,
42
42
  onStoreChange: forceUpdate
43
43
  }),
@@ -55,22 +55,35 @@ var Field = function Field(props) {
55
55
  }) || required;
56
56
  };
57
57
  var getControlled = function getControlled(children) {
58
- var mergedDisabled = disabled || children.props.disabled;
58
+ var childProps = children.props;
59
+
60
+ // Pure layout mode (no form): children keep their own value/onChange.
61
+ // Only a Field-level disabled is merged down.
62
+ // Pure layout mode (no form or no field name): children keep their own
63
+ // value/onChange. Only a Field-level disabled is merged down.
64
+ if (!form || name === undefined) {
65
+ if (disabled === undefined) return children;
66
+ return /*#__PURE__*/React.cloneElement(children, {
67
+ disabled: disabled || childProps.disabled
68
+ });
69
+ }
70
+ var mergedDisabled = disabled || childProps.disabled;
71
+ var fieldName = name;
59
72
  var attr = {
60
- value: getFieldValue === null || getFieldValue === void 0 ? void 0 : getFieldValue(name),
73
+ value: getFieldValue === null || getFieldValue === void 0 ? void 0 : getFieldValue(fieldName),
61
74
  name: formName,
62
- id: name,
75
+ id: fieldName,
63
76
  disabled: mergedDisabled,
64
77
  onChange: function onChange(value) {
65
78
  var _callbacks$onValuesBe, _children$props, _callbacks$onValuesCh;
66
79
  var callbacks = getCallbacks === null || getCallbacks === void 0 ? void 0 : getCallbacks();
67
80
  var _value = value;
68
81
  var fieldsValue = getFieldsValue === null || getFieldsValue === void 0 ? void 0 : getFieldsValue();
69
- var feedback = callbacks === null || callbacks === void 0 || (_callbacks$onValuesBe = callbacks.onValuesBeforeChange) === null || _callbacks$onValuesBe === void 0 ? void 0 : _callbacks$onValuesBe.call(callbacks, _defineProperty({}, name, _value), fieldsValue);
82
+ var feedback = callbacks === null || callbacks === void 0 || (_callbacks$onValuesBe = callbacks.onValuesBeforeChange) === null || _callbacks$onValuesBe === void 0 ? void 0 : _callbacks$onValuesBe.call(callbacks, _defineProperty({}, fieldName, _value), fieldsValue);
70
83
  if (feedback !== undefined) {
71
84
  _value = feedback;
72
85
  }
73
- setFieldsValue === null || setFieldsValue === void 0 || setFieldsValue(_defineProperty({}, name, _value), 'onChange');
86
+ setFieldsValue === null || setFieldsValue === void 0 || setFieldsValue(_defineProperty({}, fieldName, _value), 'onChange');
74
87
 
75
88
  // Call child component's onChange
76
89
  if ((_children$props = children.props) !== null && _children$props !== void 0 && _children$props.onChange) {
@@ -80,12 +93,12 @@ var Field = function Field(props) {
80
93
  }
81
94
  (_ref2 = children.props).onChange.apply(_ref2, [_value].concat(rest));
82
95
  }
83
- callbacks === null || callbacks === void 0 || (_callbacks$onValuesCh = callbacks['onValuesChange']) === null || _callbacks$onValuesCh === void 0 || _callbacks$onValuesCh.call(callbacks, _defineProperty({}, name, _value), fieldsValue);
96
+ callbacks === null || callbacks === void 0 || (_callbacks$onValuesCh = callbacks['onValuesChange']) === null || _callbacks$onValuesCh === void 0 || _callbacks$onValuesCh.call(callbacks, _defineProperty({}, fieldName, _value), fieldsValue);
84
97
  forceUpdate();
85
98
  },
86
99
  onBlur: function onBlur(event) {
87
100
  // Fire-and-forget async validation; store notifies onStoreChange on completion.
88
- void (validateField === null || validateField === void 0 ? void 0 : validateField(name, 'onBlur'));
101
+ void (validateField === null || validateField === void 0 ? void 0 : validateField(fieldName, 'onBlur'));
89
102
 
90
103
  // Call child component's onBlur
91
104
  if (children.props.onBlur) {
@@ -95,14 +108,14 @@ var Field = function Field(props) {
95
108
  };
96
109
  return /*#__PURE__*/React.cloneElement(children, attr);
97
110
  };
98
- var validate = getFieldValidate === null || getFieldValidate === void 0 ? void 0 : getFieldValidate(name);
111
+ var validate = name !== undefined ? getFieldValidate === null || getFieldValidate === void 0 ? void 0 : getFieldValidate(name) : undefined;
99
112
  return /*#__PURE__*/React.createElement("div", {
100
113
  className: clsx("".concat(prefixCls), "".concat(prefixCls, "-").concat(layout), _defineProperty({}, "".concat(prefixCls, "-").concat(validate === null || validate === void 0 ? void 0 : validate.status), validate === null || validate === void 0 ? void 0 : validate.status), className),
101
114
  style: style
102
- }, /*#__PURE__*/React.createElement("label", {
115
+ }, label ? /*#__PURE__*/React.createElement("label", {
103
116
  className: clsx("".concat(prefixCls, "-label"), _defineProperty({}, "".concat(prefixCls, "-required"), isRequired()), classNames === null || classNames === void 0 ? void 0 : classNames.label),
104
117
  style: styles === null || styles === void 0 ? void 0 : styles.label
105
- }, label), /*#__PURE__*/React.createElement("div", {
118
+ }, label) : null, /*#__PURE__*/React.createElement("div", {
106
119
  className: clsx("".concat(prefixCls, "-content"), classNames === null || classNames === void 0 ? void 0 : classNames.content),
107
120
  style: styles === null || styles === void 0 ? void 0 : styles.content
108
121
  }, /*#__PURE__*/React.createElement("div", {
@@ -27,13 +27,16 @@ export interface FieldProps {
27
27
  */
28
28
  label?: React.ReactNode;
29
29
  /**
30
- * Field name
30
+ * Field name (required only when used with a registered virtual form)
31
31
  */
32
- name: string;
32
+ name?: string;
33
33
  /**
34
- * Name of the parent form
34
+ * Name of the parent form.
35
+ * When omitted (or no form is registered under this name), Field renders
36
+ * as a pure layout wrapper: the child keeps its own value/onChange and
37
+ * no validation runs.
35
38
  */
36
- formName: string;
39
+ formName?: string;
37
40
  /**
38
41
  * Whether disabled
39
42
  */
@@ -25,6 +25,7 @@
25
25
  &-content {
26
26
  position: relative;
27
27
  padding-bottom: var(--yee-field-content-padding-bottom);
28
+ width: stretch;
28
29
  }
29
30
 
30
31
  &-error {
@@ -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-09-14T07:04:58.616Z
4
+ * Generated on 2026-09-17T09:06:26.119Z
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-09-14T07:04:58.616Z
4
+ * Generated on 2026-09-17T09:06:26.119Z
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.13.0";
6
+ export declare const version = "0.14.0";
@@ -1,4 +1,4 @@
1
- export var version = "0.13.0";
1
+ export var version = "0.14.0";
2
2
  if (typeof window !== 'undefined') {
3
3
  window.__yee_c_version__ = version;
4
4
  }