@nutui/nutui-react 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 (75) 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/form/__tests__/merge.spec.d.ts +1 -0
  11. package/dist/cjs/packages/form/__tests__/merge.spec.js +545 -0
  12. package/dist/cjs/packages/form/form.d.ts +2 -0
  13. package/dist/cjs/packages/form/form.js +9 -2
  14. package/dist/cjs/packages/form/index.d.ts +2 -1
  15. package/dist/cjs/packages/form/index.js +1 -0
  16. package/dist/cjs/packages/form/style/form.scss +0 -66
  17. package/dist/cjs/packages/form/style/style.css +31 -21
  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 +342 -278
  21. package/dist/cjs/packages/formitem/formitem.d.ts +1 -0
  22. package/dist/cjs/packages/formitem/formitem.js +55 -44
  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/picker/style/index.js +1 -0
  26. package/dist/cjs/packages/picker/style/style.css +70 -0
  27. package/dist/cjs/packages/swipe/style/style.css +3 -3
  28. package/dist/cjs/packages/swipe/style/swipe.scss +7 -3
  29. package/dist/cjs/utils/get-rect-by-taro.d.ts +1 -1
  30. package/dist/cjs/utils/get-rect-by-taro.js +4 -1
  31. package/dist/cjs/utils/get-system-info.js +4 -5
  32. package/dist/cjs/utils/merge.d.ts +14 -0
  33. package/dist/cjs/utils/merge.js +98 -0
  34. package/dist/cjs/utils/platform-taro.js +4 -5
  35. package/dist/cjs/utils/to-array.d.ts +1 -0
  36. package/dist/cjs/utils/to-array.js +18 -0
  37. package/dist/es/hooks/use-client-rect.js +1 -0
  38. package/dist/es/packages/datepicker/style/style.css +70 -0
  39. package/dist/es/packages/datepickerview/style/index.js +1 -0
  40. package/dist/es/packages/datepickerview/style/style.css +70 -0
  41. package/dist/es/packages/fixednav/fixednav.js +20 -14
  42. package/dist/es/packages/fixednav/style/fixednav.scss +0 -15
  43. package/dist/es/packages/fixednav/style/index.js +1 -0
  44. package/dist/es/packages/fixednav/style/style.css +97 -14
  45. package/dist/es/packages/form/__tests__/merge.spec.d.ts +1 -0
  46. package/dist/es/packages/form/__tests__/merge.spec.js +541 -0
  47. package/dist/es/packages/form/form.d.ts +10 -0
  48. package/dist/es/packages/form/form.js +9 -2
  49. package/dist/es/packages/form/index.d.ts +2 -1
  50. package/dist/es/packages/form/index.js +2 -1
  51. package/dist/es/packages/form/style/form.scss +0 -66
  52. package/dist/es/packages/form/style/style.css +31 -21
  53. package/dist/es/packages/form/types.d.ts +2 -1
  54. package/dist/es/packages/form/useform.d.ts +2 -1
  55. package/dist/es/packages/form/useform.js +340 -279
  56. package/dist/es/packages/formitem/formitem.d.ts +1 -0
  57. package/dist/es/packages/formitem/formitem.js +55 -44
  58. package/dist/es/packages/formitem/style/formitem.scss +101 -21
  59. package/dist/es/packages/formitem/style/style.css +89 -12
  60. package/dist/es/packages/picker/style/index.js +1 -0
  61. package/dist/es/packages/picker/style/style.css +70 -0
  62. package/dist/es/packages/swipe/style/style.css +3 -3
  63. package/dist/es/packages/swipe/style/swipe.scss +7 -3
  64. package/dist/es/utils/get-rect-by-taro.d.ts +1 -1
  65. package/dist/es/utils/get-rect-by-taro.js +4 -1
  66. package/dist/es/utils/get-system-info.js +4 -4
  67. package/dist/es/utils/merge.d.ts +14 -0
  68. package/dist/es/utils/merge.js +68 -0
  69. package/dist/es/utils/platform-taro.js +4 -4
  70. package/dist/es/utils/to-array.d.ts +1 -0
  71. package/dist/es/utils/to-array.js +8 -0
  72. package/dist/nutui.react.umd.js +555 -422
  73. package/dist/style.css +1 -1
  74. package/dist/style.scss +41 -41
  75. 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 _iconsreact = require("@nutui/icons-react");
18
18
  var _index = /*#__PURE__*/ _interop_require_default._(require("../overlay/index"));
19
19
  var _configprovider = require("../configprovider");
20
20
  var _overlay = require("../overlay/overlay");
21
+ var _index1 = /*#__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: '',
@@ -54,6 +55,20 @@ var FixedNav = function FixedNav(props) {
54
55
  var classes = (0, _classnames.default)(classPrefix, {
55
56
  active: visible
56
57
  }, type, className);
58
+ var renderListItem = function renderListItem(item, index) {
59
+ return /*#__PURE__*/ _react.default.createElement("div", {
60
+ className: "".concat(classPrefix, "-list-item"),
61
+ onClick: function onClick(event) {
62
+ return onSelect(item, event);
63
+ },
64
+ key: item.id || index
65
+ }, /*#__PURE__*/ _react.default.isValidElement(item.icon) ? item.icon : /*#__PURE__*/ _react.default.createElement("img", {
66
+ src: item.icon,
67
+ alt: ""
68
+ }), /*#__PURE__*/ _react.default.createElement("div", {
69
+ className: "".concat(classPrefix, "-list-text")
70
+ }, item.text));
71
+ };
57
72
  return /*#__PURE__*/ _react.default.createElement("div", (0, _object_spread._)({
58
73
  className: classes,
59
74
  style: (0, _object_spread._)({}, position, style)
@@ -68,20 +83,11 @@ var FixedNav = function FixedNav(props) {
68
83
  }, children || /*#__PURE__*/ _react.default.createElement("div", {
69
84
  className: "".concat(classPrefix, "-list")
70
85
  }, list.map(function(item, index) {
71
- return /*#__PURE__*/ _react.default.createElement("div", {
72
- className: "".concat(classPrefix, "-list-item"),
73
- onClick: function onClick(event) {
74
- return onSelect(item, event);
75
- },
76
- key: item.id || index
77
- }, /*#__PURE__*/ _react.default.isValidElement(item.icon) ? item.icon : /*#__PURE__*/ _react.default.createElement("img", {
78
- src: item.icon,
79
- alt: ""
80
- }), /*#__PURE__*/ _react.default.createElement("div", {
81
- className: "".concat(classPrefix, "-list-text")
82
- }, item.text), item.num && /*#__PURE__*/ _react.default.createElement("div", {
83
- className: "b"
84
- }, item.num));
86
+ return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, item.num ? /*#__PURE__*/ _react.default.createElement(_index1.default, {
87
+ value: item.num,
88
+ top: 8,
89
+ right: 6
90
+ }, renderListItem(item, index)) : /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, renderListItem(item, index)));
85
91
  }))), /*#__PURE__*/ _react.default.createElement("div", {
86
92
  className: "".concat(classPrefix, "-btn"),
87
93
  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;
@@ -0,0 +1 @@
1
+ export {};