@nutui/nutui-react-taro 3.0.1 → 3.0.3-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/cjs/hooks/use-client-rect.js +1 -0
  3. package/dist/cjs/packages/datepicker/style/style.css +70 -0
  4. package/dist/cjs/packages/datepickerview/style/index.js +1 -0
  5. package/dist/cjs/packages/datepickerview/style/style.css +70 -0
  6. package/dist/cjs/packages/fixednav/fixednav.js +20 -14
  7. package/dist/cjs/packages/fixednav/style/fixednav.scss +0 -15
  8. package/dist/cjs/packages/fixednav/style/index.js +1 -0
  9. package/dist/cjs/packages/fixednav/style/style.css +97 -14
  10. package/dist/cjs/packages/fixednav/style/style.harmony.css +0 -14
  11. package/dist/cjs/packages/form/form.d.ts +2 -0
  12. package/dist/cjs/packages/form/form.js +11 -2
  13. package/dist/cjs/packages/form/index.d.ts +2 -1
  14. package/dist/cjs/packages/form/index.js +1 -0
  15. package/dist/cjs/packages/form/style/form.scss +0 -66
  16. package/dist/cjs/packages/form/style/style.css +31 -21
  17. package/dist/cjs/packages/form/style/style.harmony.css +1 -67
  18. package/dist/cjs/packages/form/types.d.ts +2 -1
  19. package/dist/cjs/packages/form/useform.d.ts +2 -1
  20. package/dist/cjs/packages/form/useform.js +338 -247
  21. package/dist/cjs/packages/formitem/formitem.d.ts +1 -0
  22. package/dist/cjs/packages/formitem/formitem.js +57 -45
  23. package/dist/cjs/packages/formitem/style/formitem.scss +101 -21
  24. package/dist/cjs/packages/formitem/style/style.css +89 -12
  25. package/dist/cjs/packages/formitem/style/style.harmony.css +89 -12
  26. package/dist/cjs/packages/input/input.js +3 -1
  27. package/dist/cjs/packages/picker/style/index.js +1 -0
  28. package/dist/cjs/packages/picker/style/style.css +70 -0
  29. package/dist/cjs/packages/signature/signature.js +1 -1
  30. package/dist/cjs/packages/swipe/style/style.css +3 -3
  31. package/dist/cjs/packages/swipe/style/style.harmony.css +3 -3
  32. package/dist/cjs/packages/swipe/style/swipe.scss +7 -3
  33. package/dist/cjs/packages/swipe/swipe.js +14 -15
  34. package/dist/cjs/utils/get-rect-by-taro.d.ts +1 -1
  35. package/dist/cjs/utils/get-rect-by-taro.js +4 -1
  36. package/dist/cjs/utils/get-system-info.js +4 -5
  37. package/dist/cjs/utils/merge.d.ts +14 -0
  38. package/dist/cjs/utils/merge.js +98 -0
  39. package/dist/cjs/utils/platform-taro.js +4 -5
  40. package/dist/cjs/utils/to-array.d.ts +1 -0
  41. package/dist/cjs/utils/to-array.js +18 -0
  42. package/dist/es/hooks/use-client-rect.js +1 -0
  43. package/dist/es/packages/datepicker/style/style.css +70 -0
  44. package/dist/es/packages/datepickerview/style/index.js +1 -0
  45. package/dist/es/packages/datepickerview/style/style.css +70 -0
  46. package/dist/es/packages/fixednav/fixednav.js +20 -14
  47. package/dist/es/packages/fixednav/style/fixednav.scss +0 -15
  48. package/dist/es/packages/fixednav/style/index.js +1 -0
  49. package/dist/es/packages/fixednav/style/style.css +97 -14
  50. package/dist/es/packages/fixednav/style/style.harmony.css +0 -14
  51. package/dist/es/packages/form/form.d.ts +10 -0
  52. package/dist/es/packages/form/form.js +11 -2
  53. package/dist/es/packages/form/index.d.ts +2 -1
  54. package/dist/es/packages/form/index.js +2 -1
  55. package/dist/es/packages/form/style/form.scss +0 -66
  56. package/dist/es/packages/form/style/style.css +31 -21
  57. package/dist/es/packages/form/style/style.harmony.css +1 -67
  58. package/dist/es/packages/form/types.d.ts +2 -1
  59. package/dist/es/packages/form/useform.d.ts +2 -1
  60. package/dist/es/packages/form/useform.js +336 -248
  61. package/dist/es/packages/formitem/formitem.d.ts +1 -0
  62. package/dist/es/packages/formitem/formitem.js +58 -46
  63. package/dist/es/packages/formitem/style/formitem.scss +101 -21
  64. package/dist/es/packages/formitem/style/style.css +89 -12
  65. package/dist/es/packages/formitem/style/style.harmony.css +89 -12
  66. package/dist/es/packages/input/input.js +3 -1
  67. package/dist/es/packages/picker/style/index.js +1 -0
  68. package/dist/es/packages/picker/style/style.css +70 -0
  69. package/dist/es/packages/signature/signature.js +2 -2
  70. package/dist/es/packages/swipe/style/style.css +3 -3
  71. package/dist/es/packages/swipe/style/style.harmony.css +3 -3
  72. package/dist/es/packages/swipe/style/swipe.scss +7 -3
  73. package/dist/es/packages/swipe/swipe.js +14 -15
  74. package/dist/es/utils/get-rect-by-taro.d.ts +1 -1
  75. package/dist/es/utils/get-rect-by-taro.js +4 -1
  76. package/dist/es/utils/get-system-info.js +4 -4
  77. package/dist/es/utils/merge.d.ts +14 -0
  78. package/dist/es/utils/merge.js +68 -0
  79. package/dist/es/utils/platform-taro.js +4 -4
  80. package/dist/es/utils/to-array.d.ts +1 -0
  81. package/dist/es/utils/to-array.js +8 -0
  82. package/dist/nutui.react.umd.js +4301 -4084
  83. package/dist/style.css +1 -1
  84. package/dist/style.scss +30 -30
  85. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,22 @@
1
+ # v3.0.2
2
+
3
+ `2025-03-07`
4
+
5
+ - feat(form): 同步 2.x 的功能 (#2976)
6
+ - feat(swipe): harmony (#3039)
7
+ - fix: sync v15 sign (#3067)
8
+ - fix: 解决按需引入picker和datepicker没有样式问题 (#3064)
9
+ - fix(signature): 解决taro h5不能绘制问题 (#3060)
10
+ - fix(input): style 属性设置为 CSSProperties 类型的值 (#3059)
11
+ - fix: taro default import error (#3057)
12
+ - fix(docs): 快速上手文件 (#3058)
13
+ - docs(site): 删除无用的代码,更新视觉版本号 (#3063)
14
+ - docs: update common docs
15
+ - docs: fix some mistakes in the documentation (#3056)
16
+ - chore: add jdtaro. True means that will repeat (#3065)
17
+ - chore: update site style (#3055)
18
+ - refactor: migrate site to nutui-react (#2955)
19
+
1
20
  # v3.0.1
2
21
 
3
22
  `2025-03-05`
@@ -38,6 +38,7 @@ var getRect = function getRect(elementRef) {
38
38
  };
39
39
  }
40
40
  if (element && element.getBoundingClientRect) {
41
+ console.log(element, element.getBoundingClientRect());
41
42
  return element.getBoundingClientRect();
42
43
  }
43
44
  return {
@@ -383,6 +383,76 @@
383
383
  right: 0;
384
384
  }
385
385
 
386
+ .nut-pickerview {
387
+ --nutui-picker-item-height: 36px;
388
+ position: relative;
389
+ display: flex;
390
+ width: 100%;
391
+ height: calc(var(--nutui-picker-item-height, 36px) * 7);
392
+ overflow: hidden;
393
+ }
394
+ .nut-pickerview-mask, .nut-pickerview-indicator {
395
+ position: absolute;
396
+ left: 0;
397
+ right: 0;
398
+ z-index: 3;
399
+ pointer-events: none;
400
+ }
401
+ .nut-pickerview-mask {
402
+ top: 0;
403
+ bottom: 0;
404
+ background-image: var(--picker-mask-background, linear-gradient(180deg, var(--nutui-white-12), var(--nutui-white-7)), linear-gradient(0deg, var(--nutui-white-12), var(--nutui-white-7)));
405
+ background-position: top, bottom;
406
+ background-size: 100% calc((var(--nutui-picker-item-height, 36px) * 7 - var(--nutui-picker-item-height, 36px)) / 2);
407
+ background-repeat: no-repeat;
408
+ transform: translateZ(0);
409
+ }
410
+ .nut-pickerview-indicator {
411
+ top: calc((var(--nutui-picker-item-height, 36px) * 7 - var(--nutui-picker-item-height, 36px)) / 2);
412
+ height: var(--nutui-picker-item-height, 36px);
413
+ border: var(--nutui-picker-item-active-line-border, 1px solid var(--nutui-color-border, rgba(0, 0, 0, 0.06)));
414
+ border-left: 0;
415
+ border-right: 0;
416
+ box-sizing: border-box;
417
+ }
418
+ .nut-pickerview-list {
419
+ position: relative;
420
+ flex: 1;
421
+ height: calc(var(--nutui-picker-item-height, 36px) * 7);
422
+ overflow: hidden;
423
+ touch-action: none;
424
+ }
425
+ .nut-pickerview-roller {
426
+ position: absolute;
427
+ top: calc((var(--nutui-picker-item-height, 36px) * 7 - var(--nutui-picker-item-height, 36px)) / 2);
428
+ width: 100%;
429
+ height: var(--nutui-picker-item-height, 36px);
430
+ z-index: 1;
431
+ transform-style: preserve-3d;
432
+ }
433
+ .nut-pickerview-roller-item {
434
+ position: absolute;
435
+ top: 0;
436
+ backface-visibility: hidden;
437
+ -moz-backface-visibility: hidden;
438
+ -webkit-backface-visibility: hidden;
439
+ }
440
+ .nut-pickerview-roller-item-hidden {
441
+ visibility: hidden;
442
+ opacity: 0;
443
+ }
444
+ .nut-pickerview-roller-item, .nut-pickerview-roller-item-tiled {
445
+ width: 100%;
446
+ height: var(--nutui-picker-item-height, 36px);
447
+ line-height: var(--nutui-picker-item-height, 36px);
448
+ color: var(--nutui-picker-item-text-color, var(--nutui-color-title, #1a1a1a));
449
+ font-size: var(--nutui-picker-item-text-font-size, var(--nutui-font-size-base, 14px));
450
+ text-align: center;
451
+ overflow: hidden;
452
+ text-overflow: ellipsis;
453
+ white-space: nowrap;
454
+ }
455
+
386
456
  .nut-picker {
387
457
  background-color: var(--nutui-color-background-overlay, #ffffff);
388
458
  width: 100%;
@@ -1 +1,2 @@
1
+ import '../../pickerview/style';
1
2
  import './datepickerview.scss';
@@ -2,6 +2,76 @@
2
2
  /* #endif */
3
3
  /* #ifndef harmony */
4
4
  /* #endif */
5
+ .nut-pickerview {
6
+ --nutui-picker-item-height: 36px;
7
+ position: relative;
8
+ display: flex;
9
+ width: 100%;
10
+ height: calc(var(--nutui-picker-item-height, 36px) * 7);
11
+ overflow: hidden;
12
+ }
13
+ .nut-pickerview-mask, .nut-pickerview-indicator {
14
+ position: absolute;
15
+ left: 0;
16
+ right: 0;
17
+ z-index: 3;
18
+ pointer-events: none;
19
+ }
20
+ .nut-pickerview-mask {
21
+ top: 0;
22
+ bottom: 0;
23
+ background-image: var(--picker-mask-background, linear-gradient(180deg, var(--nutui-white-12), var(--nutui-white-7)), linear-gradient(0deg, var(--nutui-white-12), var(--nutui-white-7)));
24
+ background-position: top, bottom;
25
+ background-size: 100% calc((var(--nutui-picker-item-height, 36px) * 7 - var(--nutui-picker-item-height, 36px)) / 2);
26
+ background-repeat: no-repeat;
27
+ transform: translateZ(0);
28
+ }
29
+ .nut-pickerview-indicator {
30
+ top: calc((var(--nutui-picker-item-height, 36px) * 7 - var(--nutui-picker-item-height, 36px)) / 2);
31
+ height: var(--nutui-picker-item-height, 36px);
32
+ border: var(--nutui-picker-item-active-line-border, 1px solid var(--nutui-color-border, rgba(0, 0, 0, 0.06)));
33
+ border-left: 0;
34
+ border-right: 0;
35
+ box-sizing: border-box;
36
+ }
37
+ .nut-pickerview-list {
38
+ position: relative;
39
+ flex: 1;
40
+ height: calc(var(--nutui-picker-item-height, 36px) * 7);
41
+ overflow: hidden;
42
+ touch-action: none;
43
+ }
44
+ .nut-pickerview-roller {
45
+ position: absolute;
46
+ top: calc((var(--nutui-picker-item-height, 36px) * 7 - var(--nutui-picker-item-height, 36px)) / 2);
47
+ width: 100%;
48
+ height: var(--nutui-picker-item-height, 36px);
49
+ z-index: 1;
50
+ transform-style: preserve-3d;
51
+ }
52
+ .nut-pickerview-roller-item {
53
+ position: absolute;
54
+ top: 0;
55
+ backface-visibility: hidden;
56
+ -moz-backface-visibility: hidden;
57
+ -webkit-backface-visibility: hidden;
58
+ }
59
+ .nut-pickerview-roller-item-hidden {
60
+ visibility: hidden;
61
+ opacity: 0;
62
+ }
63
+ .nut-pickerview-roller-item, .nut-pickerview-roller-item-tiled {
64
+ width: 100%;
65
+ height: var(--nutui-picker-item-height, 36px);
66
+ line-height: var(--nutui-picker-item-height, 36px);
67
+ color: var(--nutui-picker-item-text-color, var(--nutui-color-title, #1a1a1a));
68
+ font-size: var(--nutui-picker-item-text-font-size, var(--nutui-font-size-base, 14px));
69
+ text-align: center;
70
+ overflow: hidden;
71
+ text-overflow: ellipsis;
72
+ white-space: nowrap;
73
+ }
74
+
5
75
  .nut-datepickerview {
6
76
  display: flex;
7
77
  width: 100%;
@@ -18,6 +18,7 @@ var _components = require("@tarojs/components");
18
18
  var _index = /*#__PURE__*/ _interop_require_default._(require("../overlay/index"));
19
19
  var _index1 = require("../configprovider/index");
20
20
  var _overlay = require("../overlay/overlay");
21
+ var _index2 = /*#__PURE__*/ _interop_require_default._(require("../badge/index"));
21
22
  var defaultProps = (0, _object_spread_props._)((0, _object_spread._)({}, _overlay.defaultOverlayProps), {
22
23
  activeText: '',
23
24
  inactiveText: '',
@@ -39,6 +40,20 @@ var FixedNav = function FixedNav(props) {
39
40
  var classes = (0, _classnames.default)(classPrefix, {
40
41
  active: visible
41
42
  }, type, className);
43
+ var renderListItem = function renderListItem(item, index) {
44
+ return /*#__PURE__*/ _react.default.createElement(_components.View, {
45
+ className: "".concat(classPrefix, "-list-item"),
46
+ onClick: function onClick(event) {
47
+ return onSelect(item, event);
48
+ },
49
+ key: item.id || index
50
+ }, /*#__PURE__*/ _react.default.isValidElement(item.icon) ? item.icon : /*#__PURE__*/ _react.default.createElement("img", {
51
+ src: item.icon,
52
+ alt: ""
53
+ }), /*#__PURE__*/ _react.default.createElement(_components.View, {
54
+ className: "".concat(classPrefix, "-list-text")
55
+ }, item.text));
56
+ };
42
57
  return /*#__PURE__*/ _react.default.createElement(_components.View, {
43
58
  className: classes,
44
59
  style: (0, _object_spread._)({}, position, style)
@@ -53,20 +68,11 @@ var FixedNav = function FixedNav(props) {
53
68
  }, children || /*#__PURE__*/ _react.default.createElement(_components.View, {
54
69
  className: "".concat(classPrefix, "-list")
55
70
  }, list.map(function(item, index) {
56
- return /*#__PURE__*/ _react.default.createElement(_components.View, {
57
- className: "".concat(classPrefix, "-list-item"),
58
- onClick: function onClick(event) {
59
- return onSelect(item, event);
60
- },
61
- key: item.id || index
62
- }, /*#__PURE__*/ _react.default.isValidElement(item.icon) ? item.icon : /*#__PURE__*/ _react.default.createElement("img", {
63
- src: item.icon,
64
- alt: ""
65
- }), /*#__PURE__*/ _react.default.createElement(_components.View, {
66
- className: "".concat(classPrefix, "-list-text")
67
- }, item.text), item.num && /*#__PURE__*/ _react.default.createElement(_components.View, {
68
- className: "b"
69
- }, item.num));
71
+ return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, item.num ? /*#__PURE__*/ _react.default.createElement(_index2.default, {
72
+ value: item.num,
73
+ top: 8,
74
+ right: 6
75
+ }, renderListItem(item, index)) : /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, renderListItem(item, index)));
70
76
  }))), /*#__PURE__*/ _react.default.createElement(_components.View, {
71
77
  className: "".concat(classPrefix, "-btn"),
72
78
  onClick: function onClick() {
@@ -95,21 +95,6 @@
95
95
  .nut-fixednav-list-text {
96
96
  font-size: 10px;
97
97
  }
98
-
99
- .b {
100
- position: absolute;
101
- right: 0;
102
- top: 1px;
103
- height: 14px;
104
- line-height: 14px;
105
- font-size: 10px;
106
- padding: 0 3px;
107
- color: white;
108
- background: $color-primary;
109
- border-radius: 7px;
110
- text-align: center;
111
- min-width: 12px;
112
- }
113
98
  }
114
99
  }
115
100
 
@@ -1,2 +1,3 @@
1
1
  import '../../overlay/style';
2
+ import '../../badge/style';
2
3
  import './fixednav.scss';
@@ -57,6 +57,103 @@
57
57
  right: 0;
58
58
  }
59
59
 
60
+ .nut-badge {
61
+ position: relative;
62
+ display: inline-flex;
63
+ width: auto;
64
+ }
65
+ .nut-badge-icon {
66
+ display: flex;
67
+ justify-content: center;
68
+ align-items: center;
69
+ background: var(--nutui-badge-background-color, var(--nutui-color-primary, #ff0f23));
70
+ padding: var(--nutui-badge-icon-padding, 2px);
71
+ text-align: center;
72
+ z-index: var(--nutui-badge-z-index, 1);
73
+ }
74
+ .nut-badge-icon .nut-icon {
75
+ width: var(--nutui-badge-icon-size, 10px);
76
+ height: var(--nutui-badge-icon-size, 10px);
77
+ font-size: var(--nutui-badge-icon-size, 10px);
78
+ }
79
+ .nut-badge-sup, .nut-badge-icon {
80
+ border-radius: var(--nutui-badge-border-radius, var(--nutui-badge-height, 14px));
81
+ }
82
+ .nut-badge-sup::after, .nut-badge-icon::after {
83
+ content: "";
84
+ position: absolute;
85
+ top: -50%;
86
+ bottom: -50%;
87
+ left: -50%;
88
+ right: -50%;
89
+ transform: scale(0.5);
90
+ border: var(--nutui-badge-border, 1px solid #ffffff);
91
+ border-radius: var(--nutui-badge-border-radius, var(--nutui-badge-height, 14px));
92
+ }
93
+ .nut-badge-sup {
94
+ display: inline-flex;
95
+ justify-content: center;
96
+ height: var(--nutui-badge-height, 14px);
97
+ min-width: var(--nutui-badge-min-width, 6px);
98
+ padding: var(--nutui-badge-padding, 1px 4px);
99
+ box-sizing: border-box;
100
+ color: var(--nutui-badge-color, #ffffff);
101
+ font-size: var(--nutui-badge-font-size, var(--nutui-font-size-xxs, 10px));
102
+ line-height: 12px;
103
+ white-space: nowrap;
104
+ font-weight: normal;
105
+ vertical-align: middle;
106
+ background: var(--nutui-badge-background-color, var(--nutui-color-primary, #ff0f23));
107
+ z-index: 1;
108
+ }
109
+ .nut-badge-number {
110
+ font-family: "JD";
111
+ /* #ifdef harmony */
112
+ line-height: 12px;
113
+ /* #endif */
114
+ /* #ifndef harmony */
115
+ line-height: 13px;
116
+ /* #endif */
117
+ }
118
+ .nut-badge-one {
119
+ height: var(--nutui-badge-height, 14px);
120
+ width: var(--nutui-badge-height, 14px);
121
+ }
122
+ .nut-badge-content {
123
+ position: absolute;
124
+ transform: var(--nutui-badge-content-transform, translate(50%, -50%));
125
+ }
126
+ .nut-badge-dot {
127
+ padding: 0;
128
+ border-radius: 50%;
129
+ }
130
+ .nut-badge-dot::after {
131
+ border: var(--nutui-badge-dot-border, 1px solid #ffffff);
132
+ border-radius: 50%;
133
+ }
134
+ .nut-badge-dot-normal {
135
+ min-width: var(--nutui-badge-dot-width, 6px);
136
+ width: var(--nutui-badge-dot-width, 6px);
137
+ height: var(--nutui-badge-dot-width, 6px);
138
+ }
139
+ .nut-badge-dot-small {
140
+ min-width: var(--nutui-badge-dot-width, 4px);
141
+ width: var(--nutui-badge-dot-width, 4px);
142
+ height: var(--nutui-badge-dot-width, 4px);
143
+ }
144
+ .nut-badge-dot-large {
145
+ min-width: var(--nutui-badge-dot-width, 8px);
146
+ width: var(--nutui-badge-dot-width, 8px);
147
+ height: var(--nutui-badge-dot-width, 8px);
148
+ }
149
+ .nut-badge-outline {
150
+ background: #ffffff;
151
+ color: var(--nutui-badge-outline-color, var(--nutui-color-primary, #ff0f23));
152
+ }
153
+ .nut-badge-outline::after {
154
+ border: var(--nutui-badge-outline-border, 1px solid var(--nutui-color-primary, #ff0f23));
155
+ }
156
+
60
157
  .nut-fixednav {
61
158
  position: fixed;
62
159
  z-index: var(--nutui-fixednav-index, 900);
@@ -136,20 +233,6 @@
136
233
  .nut-fixednav-list-item .nut-fixednav-list-text {
137
234
  font-size: 10px;
138
235
  }
139
- .nut-fixednav-list-item .b {
140
- position: absolute;
141
- right: 0;
142
- top: 1px;
143
- height: 14px;
144
- line-height: 14px;
145
- font-size: 10px;
146
- padding: 0 3px;
147
- color: white;
148
- background: var(--nutui-color-primary, #ff0f23);
149
- border-radius: 7px;
150
- text-align: center;
151
- min-width: 12px;
152
- }
153
236
  .nut-fixednav.left {
154
237
  right: auto;
155
238
  left: 0;
@@ -81,20 +81,6 @@
81
81
  .nut-fixednav-list-item .nut-fixednav-list-text {
82
82
  font-size: 10px;
83
83
  }
84
- .nut-fixednav-list-item .b {
85
- position: absolute;
86
- right: 0;
87
- top: 1px;
88
- height: 14px;
89
- line-height: 14px;
90
- font-size: 10px;
91
- padding: 0 3px;
92
- color: white;
93
- background: #ff0f23;
94
- border-radius: 7px;
95
- text-align: center;
96
- min-width: 12px;
97
- }
98
84
  .nut-fixednav.left {
99
85
  right: auto;
100
86
  left: 0;
@@ -6,7 +6,9 @@ export interface FormProps extends TFormProps {
6
6
  initialValues: any;
7
7
  name: string;
8
8
  form: any;
9
+ disabled: boolean;
9
10
  divider: boolean;
11
+ validateTrigger: string | string[] | false;
10
12
  labelPosition: 'top' | 'left' | 'right';
11
13
  starPosition: 'left' | 'right';
12
14
  onFinish: (values: any) => void;
@@ -23,7 +23,9 @@ var _index = /*#__PURE__*/ _interop_require_default._(require("../cell/index"));
23
23
  var defaultProps = (0, _object_spread_props._)((0, _object_spread._)({}, _typings.ComponentDefaults), {
24
24
  labelPosition: 'right',
25
25
  starPosition: 'left',
26
+ disabled: false,
26
27
  divider: false,
28
+ validateTrigger: 'onChange',
27
29
  onFinish: function onFinish(values) {},
28
30
  onFinishFailed: function onFinishFailed(values, errorFields) {}
29
31
  });
@@ -34,15 +36,17 @@ var PositionInfo = {
34
36
  };
35
37
  var Form = /*#__PURE__*/ _react.default.forwardRef(function(props, ref) {
36
38
  var classPrefix = 'nut-form';
37
- var _ref = (0, _object_spread._)({}, defaultProps, props), className = _ref.className, style = _ref.style, footer = _ref.footer, children = _ref.children, initialValues = _ref.initialValues, divider = _ref.divider, onFinish = _ref.onFinish, onFinishFailed = _ref.onFinishFailed, labelPosition = _ref.labelPosition, starPosition = _ref.starPosition, form = _ref.form, rest = (0, _object_without_properties._)(_ref, [
39
+ var _ref = (0, _object_spread._)({}, defaultProps, props), className = _ref.className, style = _ref.style, footer = _ref.footer, children = _ref.children, initialValues = _ref.initialValues, divider = _ref.divider, disabled = _ref.disabled, onFinish = _ref.onFinish, onFinishFailed = _ref.onFinishFailed, validateTrigger = _ref.validateTrigger, labelPosition = _ref.labelPosition, starPosition = _ref.starPosition, form = _ref.form, rest = (0, _object_without_properties._)(_ref, [
38
40
  "className",
39
41
  "style",
40
42
  "footer",
41
43
  "children",
42
44
  "initialValues",
43
45
  "divider",
46
+ "disabled",
44
47
  "onFinish",
45
48
  "onFinishFailed",
49
+ "validateTrigger",
46
50
  "labelPosition",
47
51
  "starPosition",
48
52
  "form"
@@ -89,7 +93,12 @@ var Form = /*#__PURE__*/ _react.default.forwardRef(function(props, ref) {
89
93
  }), /*#__PURE__*/ _react.default.createElement(_index.default.Group, {
90
94
  divider: divider
91
95
  }, /*#__PURE__*/ _react.default.createElement(_context.Context.Provider, {
92
- value: formInstance
96
+ value: {
97
+ formInstance: formInstance,
98
+ labelPosition: labelPosition,
99
+ disabled: disabled,
100
+ validateTrigger: validateTrigger
101
+ }
93
102
  }, children), footer ? /*#__PURE__*/ _react.default.createElement(_index.default, {
94
103
  className: "".concat(classPrefix, "-footer")
95
104
  }, footer) : null));
@@ -2,11 +2,12 @@ import React from 'react';
2
2
  import { FormProps } from "./form";
3
3
  import { FormItem } from "../formitem/formitem";
4
4
  import { FormInstance } from './types';
5
- import { useForm } from "./useform";
5
+ import { useForm, useWatch } from "./useform";
6
6
  export type { FormItemRuleWithoutValidator, FormInstance, FormFieldEntity, } from './types';
7
7
  type CompoundedComponent = React.ForwardRefExoticComponent<Partial<FormProps> & Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> & React.RefAttributes<FormInstance>> & {
8
8
  Item: typeof FormItem;
9
9
  useForm: typeof useForm;
10
+ useWatch: typeof useWatch;
10
11
  };
11
12
  declare const InnerForm: CompoundedComponent;
12
13
  export default InnerForm;
@@ -16,4 +16,5 @@ var _useform = require("./useform");
16
16
  var InnerForm = _form.Form;
17
17
  InnerForm.Item = _formitem.FormItem;
18
18
  InnerForm.useForm = _useform.useForm;
19
+ InnerForm.useWatch = _useform.useWatch;
19
20
  var _default = InnerForm;
@@ -1,67 +1 @@
1
- .form-layout-right .nut-form-item-label {
2
- text-align: right;
3
- padding-right: 24px;
4
- white-space: nowrap;
5
- }
6
1
 
7
- .form-layout-left .nut-form-item-label {
8
- position: relative;
9
- text-align: left;
10
- padding-left: 12px;
11
- white-space: nowrap;
12
-
13
- .required {
14
- display: block;
15
- line-height: 1.5;
16
- position: absolute;
17
- left: 0.1em;
18
- }
19
- }
20
-
21
- .form-layout-top .nut-form-item {
22
- flex-direction: column;
23
- align-items: flex-start;
24
- white-space: nowrap;
25
- }
26
-
27
- .form-layout-top .nut-form-item-label {
28
- padding-bottom: 4px;
29
- display: block;
30
- padding-right: 24px;
31
- }
32
-
33
- .form-layout-top .nut-form-item-body {
34
- margin-left: 0;
35
- width: 100%;
36
- }
37
-
38
- [dir='rtl'] .form-layout-right .nut-form-item-label,
39
- .nut-rtl .form-layout-right .nut-form-item-label {
40
- text-align: left;
41
- padding-right: 0;
42
- padding-left: 24px;
43
- }
44
-
45
- [dir='rtl'] .form-layout-left .nut-form-item-label,
46
- .nut-rtl .form-layout-left .nut-form-item-label {
47
- text-align: right;
48
- padding-left: 0;
49
- padding-right: 12px;
50
-
51
- .required {
52
- left: auto;
53
- right: 0.1em;
54
- }
55
- }
56
-
57
- [dir='rtl'] .form-layout-top .nut-form-item-label,
58
- .nut-rtl .form-layout-top .nut-form-item-label {
59
- padding-right: 0;
60
- padding-left: 24px;
61
- }
62
-
63
- [dir='rtl'] .form-layout-top .nut-form-item-body,
64
- .nut-rtl .form-layout-top .nut-form-item-body {
65
- margin-left: 0;
66
- margin-right: 0;
67
- }
@@ -142,32 +142,38 @@
142
142
 
143
143
  .nut-form-item {
144
144
  display: flex;
145
- align-items: center;
146
- padding: 4px 12px;
145
+ line-height: unset;
147
146
  }
148
- .nut-form-item.error.line::before {
149
- border-bottom: 1px solid var(--nutui-form-item-error-line-color, var(--nutui-color-primary, #ff0f23));
150
- transform: scaleX(1);
151
- transition: transform 200ms cubic-bezier(0, 0, 0.2, 1) 0ms;
147
+ .nut-form-item-disabled {
148
+ opacity: 0.4;
149
+ pointer-events: none;
152
150
  }
153
151
  .nut-form-item-label {
152
+ display: flex;
153
+ flex-direction: row;
154
154
  font-size: var(--nutui-form-item-label-font-size, var(--nutui-font-size-base, 14px));
155
155
  font-weight: normal;
156
156
  width: var(--nutui-form-item-label-width, 90px);
157
157
  margin-right: var(--nutui-form-item-label-margin-right, 10px);
158
- flex: none !important;
159
- display: inline-block !important;
158
+ flex: 0 0 auto;
160
159
  word-wrap: break-word;
161
160
  text-align: var(--nutui-form-item-label-text-align, left);
161
+ line-height: unset;
162
162
  }
163
- .nut-form-item-label .required::before {
164
- content: "*";
163
+ .nut-form-item-label-required {
165
164
  color: var(--nutui-form-item-required-color, var(--nutui-color-primary, #ff0f23));
166
165
  margin-right: var(--nutui-form-item-required-margin-right, 4px);
166
+ display: block;
167
+ position: absolute;
168
+ left: -10px;
169
+ }
170
+ .nut-form-item .nut-form-item-labeltxt {
171
+ position: relative;
172
+ font-size: 12px;
167
173
  }
168
174
  .nut-form-item-body {
169
175
  flex: 1;
170
- display: flex !important;
176
+ display: flex;
171
177
  flex-direction: column;
172
178
  }
173
179
  .nut-form-item-body-slots {
@@ -177,6 +183,9 @@
177
183
  padding: 0;
178
184
  border: 0;
179
185
  }
186
+ .nut-form-item-body-slots .nut-input-container {
187
+ height: auto;
188
+ }
180
189
  .nut-form-item-body-slots .nut-input-text {
181
190
  font-size: var(--nutui-form-item-body-font-size, var(--nutui-font-size-base, 14px));
182
191
  text-align: var(--nutui-form-item-body-input-text-align, left);
@@ -191,7 +200,7 @@
191
200
  min-height: 24px;
192
201
  }
193
202
  .nut-form-item-body-slots .nut-textarea {
194
- padding: 0 !important;
203
+ padding: 0;
195
204
  }
196
205
  .nut-form-item-body-slots .nut-textarea .nut-textarea-textarea {
197
206
  font: inherit;
@@ -237,38 +246,39 @@
237
246
  text-align: right;
238
247
  }
239
248
 
240
- .form-layout-right .nut-form-item-label {
241
- text-align: right;
249
+ /* position */
250
+ .nut-form-item-label-right {
251
+ justify-content: flex-end;
242
252
  padding-right: 24px;
243
253
  white-space: nowrap;
244
254
  }
245
255
 
246
- .form-layout-left .nut-form-item-label {
256
+ .nut-form-item-label-left {
247
257
  position: relative;
248
- text-align: left;
249
258
  padding-left: 12px;
250
259
  white-space: nowrap;
251
260
  }
252
- .form-layout-left .nut-form-item-label .required {
261
+
262
+ .nut-form-item-label-left-required {
253
263
  display: block;
254
264
  line-height: 1.5;
255
265
  position: absolute;
256
266
  left: 0.1em;
257
267
  }
258
268
 
259
- .form-layout-top .nut-form-item {
269
+ .nut-form-item-top {
260
270
  flex-direction: column;
261
271
  align-items: flex-start;
262
272
  white-space: nowrap;
263
273
  }
264
274
 
265
- .form-layout-top .nut-form-item-label {
266
- padding-bottom: 4px;
275
+ .nut-form-item-label-top {
267
276
  display: block;
277
+ padding-bottom: 4px;
268
278
  padding-right: 24px;
269
279
  }
270
280
 
271
- .form-layout-top .nut-form-item-body {
281
+ .nut-form-item-body-top {
272
282
  margin-left: 0;
273
283
  width: 100%;
274
284
  }