@nutui/nutui-react 1.2.1 → 1.2.2-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 (65) hide show
  1. package/dist/esm/ConfigProvider.js +11 -0
  2. package/dist/esm/DatePicker.js +148 -106
  3. package/dist/esm/Icon.js +4 -72
  4. package/dist/esm/NumberKeyboard/style/index.js +2 -0
  5. package/dist/esm/NumberKeyboard.js +277 -0
  6. package/dist/esm/Picker.js +294 -195
  7. package/dist/esm/Progress/style/index.js +2 -0
  8. package/dist/esm/Progress.js +130 -0
  9. package/dist/esm/Range.js +186 -129
  10. package/dist/esm/SearchBar/style/index.js +2 -0
  11. package/dist/esm/SearchBar.js +247 -0
  12. package/dist/esm/Signature.js +3 -0
  13. package/dist/esm/Tabbar.js +6 -3
  14. package/dist/esm/TabbarItem.js +14 -5
  15. package/dist/esm/Tag.js +18 -9
  16. package/dist/esm/icon-62bd7379.js +72 -0
  17. package/dist/esm/nutui-react.es.js +3 -0
  18. package/dist/esm/useTouch-a2ea68c6.js +119 -0
  19. package/dist/locales/base.d.ts +11 -0
  20. package/dist/locales/base.js +1 -1
  21. package/dist/locales/en-US.js +12 -1
  22. package/dist/locales/id-ID.js +12 -1
  23. package/dist/locales/zh-CN.js +12 -1
  24. package/dist/locales/zh-TW.js +12 -1
  25. package/dist/nutui.react.es.js +1308 -590
  26. package/dist/nutui.react.umd.js +15 -15
  27. package/dist/packages/numberkeyboard/numberkeyboard.scss +106 -0
  28. package/dist/packages/picker/picker.scss +35 -16
  29. package/dist/packages/progress/progress.scss +81 -0
  30. package/dist/packages/range/range.scss +141 -13
  31. package/dist/packages/searchbar/searchbar.scss +106 -0
  32. package/dist/packages/signature/signature.scss +4 -4
  33. package/dist/packages/tabbar/tabbar.scss +10 -3
  34. package/dist/packages/tabbaritem/tabbaritem.scss +26 -8
  35. package/dist/style.css +1 -1
  36. package/dist/style.es.js +1 -1
  37. package/dist/styles/themes/default.scss +3 -0
  38. package/dist/styles/variables.scss +73 -6
  39. package/dist/types/datepicker/__test__/datepicker.spec.d.ts +1 -0
  40. package/dist/types/datepicker/datepicker.d.ts +16 -5
  41. package/dist/types/divider/__test__/divider.spec.d.ts +1 -0
  42. package/dist/types/navbar/__test__/navbar.spec.d.ts +1 -0
  43. package/dist/types/numberkeyboard/_test_/index.spec.d.ts +1 -0
  44. package/dist/types/numberkeyboard/demo.d.ts +3 -0
  45. package/dist/types/numberkeyboard/index.d.ts +2 -0
  46. package/dist/types/numberkeyboard/numberkeyboard.d.ts +20 -0
  47. package/dist/types/nutui.react.d.ts +4 -1
  48. package/dist/types/picker/picker.d.ts +17 -13
  49. package/dist/types/picker/pickerSlot.d.ts +4 -3
  50. package/dist/types/progress/__tests__/progress.spec.d.ts +1 -0
  51. package/dist/types/progress/demo.d.ts +3 -0
  52. package/dist/types/progress/index.d.ts +2 -0
  53. package/dist/types/progress/progress.d.ts +26 -0
  54. package/dist/types/range/demo.d.ts +1 -0
  55. package/dist/types/range/range.d.ts +3 -1
  56. package/dist/types/searchbar/demo.d.ts +3 -0
  57. package/dist/types/searchbar/index.d.ts +2 -0
  58. package/dist/types/searchbar/searchbar.d.ts +60 -0
  59. package/dist/types/signature/__test__/signature.spec.d.ts +2 -0
  60. package/dist/types/tabbar/__tests__/tabbar.spec.d.ts +1 -0
  61. package/dist/types/tabbar/tabbar.d.ts +2 -2
  62. package/dist/types/tabbaritem/tabbaritem.d.ts +4 -1
  63. package/dist/types/tag/tag.d.ts +1 -1
  64. package/package.json +2 -1
  65. package/dist/packages/range/custom.scss +0 -9
@@ -0,0 +1,106 @@
1
+ .nut-numberkeyboard {
2
+ width: $numberkeyboard-width;
3
+ padding: $numberkeyboard-padding;
4
+ background-color: $numberkeyboard-background-color;
5
+ user-select: none;
6
+
7
+ .nut-numberkeyboard__header {
8
+ position: relative;
9
+ display: flex;
10
+ align-items: center;
11
+ justify-content: center;
12
+ box-sizing: content-box;
13
+ height: $numberkeyboard-header-height;
14
+ padding: $numberkeyboard-header-padding;
15
+ color: $numberkeyboard-header-color;
16
+ font-size: $numberkeyboard-header-font-size;
17
+
18
+ .nut-numberkeyboard__header__tit {
19
+ display: inline-block;
20
+ }
21
+
22
+ .nut-numberkeyboard__header__close {
23
+ position: absolute;
24
+ display: block;
25
+ right: 0;
26
+ padding: $numberkeyboard-header-close-padding;
27
+ color: $numberkeyboard-header-close-color;
28
+ font-size: $numberkeyboard-header-close-font-size;
29
+ background-color: $numberkeyboard-header-close-background-color;
30
+ border: none;
31
+ cursor: pointer;
32
+ }
33
+ }
34
+
35
+ .nut-numberkeyboard__body {
36
+ display: flex;
37
+ padding: 6px 0 0 6px;
38
+
39
+ .nut-numberkeyboard__body__keys {
40
+ display: flex;
41
+ flex: 3;
42
+ flex-wrap: wrap;
43
+ }
44
+
45
+ .key-board-wrapper {
46
+ position: relative;
47
+ flex: 1;
48
+ flex-basis: 33%;
49
+ box-sizing: border-box;
50
+ padding: 0 6px 6px 0;
51
+
52
+ .key {
53
+ display: flex;
54
+ align-items: center;
55
+ justify-content: center;
56
+ height: $numberkeyboard-key-height;
57
+ font-size: $numberkeyboard-key-font-size;
58
+ line-height: $numberkeyboard-key-line-height;
59
+ background-color: $numberkeyboard-key-background-color;
60
+ color: $numberkeyboard-key-font-size-color;
61
+ border-radius: $numberkeyboard-key-border-radius;
62
+ cursor: pointer;
63
+ }
64
+
65
+ .active {
66
+ background-color: $numberkeyboard-key-active-background-color;
67
+ }
68
+
69
+ img {
70
+ width: 30px;
71
+ height: 24px;
72
+ }
73
+ }
74
+
75
+ .key-board-wrapper-large {
76
+ flex-basis: 66%;
77
+ }
78
+
79
+ .nut-numberkeyboard__sidebar {
80
+ display: flex;
81
+ flex: 1;
82
+ flex-direction: column;
83
+
84
+ .key-board-wrapper {
85
+ .key {
86
+ position: absolute;
87
+ top: 0;
88
+ right: 6px;
89
+ bottom: 6px;
90
+ left: 0;
91
+ height: auto;
92
+ }
93
+
94
+ .finish {
95
+ font-size: $numberkeyboard-key-finish-font-size;
96
+ color: $numberkeyboard-key-finish-font-size-color;
97
+ background-color: $numberkeyboard-key-finish-background-color;
98
+ }
99
+
100
+ .activeFinsh {
101
+ background-color: $numberkeyboard-key-activeFinsh-background-color;
102
+ }
103
+ }
104
+ }
105
+ }
106
+ }
@@ -18,16 +18,28 @@
18
18
  overflow: hidden;
19
19
  text-overflow: ellipsis;
20
20
  white-space: nowrap;
21
+ text-align: center;
21
22
  }
22
23
  }
23
24
  .nut-picker__panel {
24
- height: 178px;
25
25
  display: flex;
26
+ position: relative;
27
+
28
+ .nut-picker-indicator {
29
+ position: absolute;
30
+ top: 108px;
31
+ height: 36px;
32
+ width: 100%;
33
+ border-top: 1px solid #ececec;
34
+ border-bottom: 1px solid #ececec;
35
+ z-index: 3;
36
+ }
26
37
  }
38
+
27
39
  .nut-picker-list {
28
40
  flex: 1;
29
41
  position: relative;
30
- height: 178px;
42
+ height: 252px;
31
43
  overflow: hidden;
32
44
  text-align: center;
33
45
  .nut-picker-list-panel {
@@ -39,26 +51,22 @@
39
51
  left: 0;
40
52
  right: 0;
41
53
  bottom: 0;
42
- //background-image: linear-gradient(180deg,hsla(0,0%,100%,.9),hsla(0,0%,100%,.6)),linear-gradient(0deg,hsla(0,0%,100%,.9),hsla(0,0%,100%,.6));
54
+ background-image: linear-gradient(
55
+ 180deg,
56
+ rgba(255, 255, 255, 0.9),
57
+ rgba(255, 255, 255, 0.4)
58
+ ),
59
+ linear-gradient(0deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.4));
43
60
  background-position: top, bottom;
44
- background-size: 100% 78px;
61
+ background-size: 100% 108px;
45
62
  background-repeat: no-repeat;
46
63
  z-index: 3;
47
64
  }
48
- .nut-picker-indicator {
49
- position: absolute;
50
- top: 78px;
51
- width: 100%;
52
- height: 34px;
53
- border-top: 1px solid #ececec;
54
- border-bottom: 1px solid #ececec;
55
- z-index: 3;
56
- }
57
65
 
58
66
  .nut-picker-content,
59
67
  .nut-picker-roller {
60
68
  position: absolute;
61
- top: 78px;
69
+ top: 108px;
62
70
  width: 100%;
63
71
  height: 36px;
64
72
  }
@@ -75,11 +83,11 @@
75
83
  height: 36px;
76
84
  line-height: 36px;
77
85
  color: #262626;
78
- font-size: 12px;
86
+ font-size: 14px;
79
87
  text-align: center;
80
88
  }
81
89
  .nut-picker-item {
82
- font-size: 15px;
90
+ font-size: 16px;
83
91
  background: #fff;
84
92
  }
85
93
  .nut-picker-roller {
@@ -87,11 +95,22 @@
87
95
  transform-style: preserve-3d;
88
96
  .nut-picker-roller-item {
89
97
  backface-visibility: hidden;
98
+ -moz-backface-visibility: hidden;
99
+ -webkit-backface-visibility: hidden;
90
100
  position: absolute;
91
101
  top: 0;
92
102
  width: 100%;
93
103
  color: #262626;
94
104
  }
105
+
106
+ .nut-picker-roller-item-tile {
107
+ display: block;
108
+ width: 100%;
109
+ height: 36px;
110
+ line-height: 36px;
111
+ color: #262626;
112
+ font-size: 14px;
113
+ }
95
114
  .nut-picker-roller-item-hidden {
96
115
  visibility: hidden;
97
116
  opacity: 0;
@@ -0,0 +1,81 @@
1
+ .nut-progress {
2
+ display: flex;
3
+ align-items: center;
4
+ position: relative;
5
+ width: 100%;
6
+ &-outer {
7
+ flex: auto;
8
+ .nut-progress-text {
9
+ }
10
+ .nut-progress-active:before {
11
+ content: '';
12
+ position: absolute;
13
+ top: 0;
14
+ left: 0;
15
+ right: 0;
16
+ bottom: 0;
17
+ border-radius: $progress-border-radius;
18
+ animation: progressActive 2s ease-in-out infinite;
19
+ }
20
+ }
21
+ &-small {
22
+ height: $progress-small-height;
23
+ .nut-progress-text {
24
+ font-size: $progress-small-font-size;
25
+ padding: $progress-small-padding;
26
+ }
27
+ }
28
+ &-base {
29
+ height: $progress-base-height;
30
+ .nut-progress-text {
31
+ font-size: $progress-base-font-size;
32
+ padding: $progress-base-padding;
33
+ }
34
+ }
35
+ &-large {
36
+ height: $progress-large-height;
37
+ .nut-progress-text {
38
+ font-size: $progress-large-font-size;
39
+ padding: $progress-large-padding;
40
+ }
41
+ }
42
+ &-inner {
43
+ height: 100%;
44
+ display: flex;
45
+ flex-direction: column;
46
+ justify-content: center;
47
+ transition: all 0.4s;
48
+ }
49
+ &-text {
50
+ display: flex;
51
+ padding: $progress-text-padding;
52
+ font-size: $progress-text-font-size;
53
+ line-height: 1;
54
+ min-width: 35px;
55
+ }
56
+ &-insidetext {
57
+ position: absolute;
58
+ top: -4px;
59
+ bottom: -4px;
60
+ display: flex;
61
+ align-items: center;
62
+ min-width: 0px;
63
+ transition: all 0.4s;
64
+ transform: translate(-50%);
65
+ border-radius: $progress-insidetext-border-radius;
66
+ }
67
+ @keyframes progressActive {
68
+ 0% {
69
+ background: rgba(255, 255, 255, 0.1);
70
+ width: 0;
71
+ }
72
+ 20% {
73
+ background: rgba(255, 255, 255, 0.5);
74
+ width: 0;
75
+ }
76
+ to {
77
+ background: rgba(255, 255, 255, 0);
78
+ width: 100%;
79
+ }
80
+ }
81
+ }
@@ -1,23 +1,114 @@
1
+
2
+ .nut-theme-dark {
3
+ .nut-range-container {
4
+ background: $dark-background;
5
+ .min,
6
+ .max {
7
+ color: $dark-color-gray;
8
+ }
9
+ .nut-range {
10
+ &-mark-text {
11
+ color: $dark-color-gray;
12
+ }
13
+ &-button {
14
+ .number {
15
+ color: $dark-color;
16
+ }
17
+ }
18
+ }
19
+ }
20
+ }
21
+
1
22
  .nut-range-container {
2
23
  display: flex;
3
24
  position: relative;
4
25
  width: 100%;
5
- height: 3px;
26
+ height: 4px;
6
27
  align-items: center;
7
- touch-action: pan-y;
8
28
  .min,
9
29
  .max {
10
30
  font-size: $font-size-1;
11
- color: $range-max;
31
+ color: $range-tip-font-color;
12
32
  user-select: none;
13
33
  }
34
+ &-vertical {
35
+ height: 100%;
36
+ flex-direction: column;
37
+ padding: 0px 15px;
38
+ .nut-range {
39
+ width: 4px;
40
+ height: 100%;
41
+ &-button {
42
+ &-wrapper,
43
+ &-wrapper-right {
44
+ position: absolute;
45
+ top: initial;
46
+ bottom: 0px;
47
+ left: 50%;
48
+ right: initial;
49
+ transform: translate3d(-50%, 50%, 0);
50
+ }
51
+
52
+ &-wrapper-left {
53
+ top: 0px;
54
+ left: 50%;
55
+ right: initial;
56
+ transform: translate3d(-50%, -50%, 0);
57
+ }
58
+ }
59
+ .number {
60
+ transform: translate3d(100%, 0, 0);
61
+ }
62
+ &-vertical {
63
+ margin: 10px 0px;
64
+ }
65
+ &-mark {
66
+ position: absolute;
67
+ width: 100%;
68
+ right: 50%;
69
+ overflow: visible;
70
+ font-size: 12px;
71
+ height: 100%;
72
+ top: initial;
73
+ width: 36px;
74
+ padding: 0px;
75
+ }
76
+
77
+ &-mark-text {
78
+ width: 20px;
79
+ position: absolute;
80
+ display: inline-block;
81
+ line-height: 16px;
82
+ color: #999;
83
+ text-align: center;
84
+ word-break: keep-all;
85
+ user-select: none;
86
+ transform: translateY(-50%);
87
+ &-active {
88
+ .nut-range-tick {
89
+ background: $range-bar-bg-color;
90
+ }
91
+ }
92
+ }
93
+ &-tick {
94
+ position: absolute;
95
+ top: 0px;
96
+ left: 30px;
97
+ width: 11px;
98
+ height: 11px;
99
+ margin-left: -0px;
100
+ border-radius: 50%;
101
+ background-color: $range-bg-color-tick;
102
+ }
103
+ }
104
+ }
14
105
  }
15
106
  .nut-range {
16
107
  display: block;
17
108
  position: relative;
18
109
  width: 100%;
19
- height: 3px;
20
- background-color: $rang-bg-color;
110
+ height: 4px;
111
+ background-color: $range-bg-color;
21
112
  border-radius: 2px;
22
113
  cursor: pointer;
23
114
  &::before {
@@ -34,23 +125,24 @@
34
125
  position: relative;
35
126
  width: 100%;
36
127
  height: 100%;
37
- background: $rang-bar-bg-color;
128
+ background: $range-bar-bg-color;
38
129
  border-radius: inherit;
39
130
  transition: all 0.2s;
40
131
  }
41
132
 
42
133
  &-button {
43
134
  display: block;
44
- width: 24px;
45
- height: 24px;
46
- background-color: $white;
135
+ width: $range-bar-btn-width;
136
+ height: $range-bar-btn-height;
137
+ background-color: $range-bar-btn-bg-color;
47
138
  border-radius: 50%;
48
139
  box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.15);
49
- border: 1px solid $primary-color;
140
+ border: $range-bar-btn-border;
50
141
  outline: none;
51
142
 
52
143
  &-wrapper,
53
144
  &-wrapper-right {
145
+ touch-action: none;
54
146
  position: absolute;
55
147
  top: 50%;
56
148
  right: 0;
@@ -66,6 +158,7 @@
66
158
  transform: translate3d(-50%, -50%, 0);
67
159
  cursor: grab;
68
160
  outline: none;
161
+ touch-action: none;
69
162
  }
70
163
 
71
164
  .number {
@@ -76,11 +169,11 @@
76
169
  justify-content: center;
77
170
  user-select: none;
78
171
  font-size: $font-size-1;
79
- color: $range-max;
172
+ color: $range-tip-font-color;
80
173
  transform: translate3d(0, -100%, 0);
81
174
  }
82
175
  }
83
- &__disabled {
176
+ &-disabled {
84
177
  cursor: not-allowed;
85
178
  opacity: 0.54;
86
179
 
@@ -90,7 +183,42 @@
90
183
  cursor: not-allowed;
91
184
  }
92
185
  }
93
- &__show-number {
186
+ &-show-number {
94
187
  margin: 0 15px;
95
188
  }
189
+
190
+ &-mark {
191
+ position: absolute;
192
+ width: 100%;
193
+ overflow: visible;
194
+ top: 50%;
195
+ font-size: 12px;
196
+ padding-top: 14px;
197
+ }
198
+
199
+ &-mark-text {
200
+ position: absolute;
201
+ display: inline-block;
202
+ line-height: 16px;
203
+ color: #999;
204
+ text-align: center;
205
+ word-break: keep-all;
206
+ user-select: none;
207
+ transform: translateX(-50%);
208
+ &-active {
209
+ .nut-range-tick {
210
+ background: $range-bar-bg-color;
211
+ }
212
+ }
213
+ }
214
+ &-tick {
215
+ position: absolute;
216
+ top: -20px;
217
+ width: 11px;
218
+ height: 11px;
219
+ // margin-left: -11px;
220
+ left: 0px;
221
+ border-radius: 50%;
222
+ background-color: $range-bg-color-tick;
223
+ }
96
224
  }
@@ -0,0 +1,106 @@
1
+ .nut-theme-dark {
2
+ .nut-searchbar {
3
+ background: $black;
4
+ &__search-label {
5
+ color: $white;
6
+ }
7
+ .nut-searchbar__input-clear {
8
+ & .nut-searchbar__nut-icon-mask-close {
9
+ color: $white;
10
+ &:hover {
11
+ cursor: pointer;
12
+ color: $white;
13
+ }
14
+ }
15
+ }
16
+ &__right-search-icon,
17
+ &__left-search-icon {
18
+ color: $white;
19
+ }
20
+ }
21
+ }
22
+ .val-text {
23
+ font-size: 12px;
24
+ color: $title-color2;
25
+ padding: 0 20px;
26
+ }
27
+ .nut-searchbar {
28
+ position: relative;
29
+ display: flex;
30
+ align-items: center;
31
+ width: $searchbar-width;
32
+ padding: $searchbar-padding;
33
+ background: $searchbar-background;
34
+ box-sizing: border-box;
35
+ &__content {
36
+ position: relative;
37
+ flex: 1;
38
+ }
39
+ &__icon {
40
+ position: absolute !important;
41
+ z-index: 888;
42
+ transform: translate(-50%, -50%);
43
+ width: 15px;
44
+ overflow: hidden;
45
+ }
46
+ &__leftin-icon {
47
+ left: 15px;
48
+ top: 53%;
49
+ }
50
+ &__rightin-icon {
51
+ right: 5px;
52
+ top: 53%;
53
+ }
54
+ &__input {
55
+ display: flex;
56
+ align-items: center;
57
+ width: $searchbar-input-width;
58
+ height: $searchbar-input-height;
59
+ flex: 1;
60
+ padding: $searchbar-input-padding;
61
+ border-radius: 0;
62
+ font-size: $font-size-small;
63
+ // box-shadow: $searchbar-input-box-shadow;
64
+ background: $searchbar-input-background;
65
+ }
66
+ &__round {
67
+ border-radius: $searchbar-input-border-radius;
68
+ }
69
+ &__disabled {
70
+ cursor: not-allowed;
71
+ }
72
+ &__clear {
73
+ position: absolute !important;
74
+ z-index: 888;
75
+ right: 3px;
76
+ top: 47%;
77
+ transform: translate(-50%, -40%);
78
+ }
79
+ .pos-right {
80
+ right: 40px;
81
+ }
82
+ &__left {
83
+ text-align: left;
84
+ }
85
+ &__right {
86
+ text-align: right;
87
+ }
88
+ &__center {
89
+ text-align: center;
90
+ }
91
+ &__label,
92
+ &__action-text {
93
+ padding: 0 8px 0 0;
94
+ font-size: 12px;
95
+ color: $searchbar-action-text-color;
96
+ }
97
+ &__action-text {
98
+ padding: 0 0 0 8px;
99
+ }
100
+ &__leftout-icon {
101
+ margin-right: 10px;
102
+ }
103
+ &__rightout-icon {
104
+ margin-left: 10px;
105
+ }
106
+ }
@@ -1,8 +1,8 @@
1
1
  .nut-signature {
2
2
  &__inner {
3
- height: 10rem;
4
- margin-bottom: 1rem;
5
- border: 1px solid $signature-border-color;
3
+ height: $signature-height;
4
+ margin-bottom: $signature-margin-bottom;
5
+ border: $signature-border-width solid $signature-border-color;
6
6
  display: flex;
7
7
  justify-content: center;
8
8
  align-items: center;
@@ -11,6 +11,6 @@
11
11
  font-size: $font-size-base;
12
12
  }
13
13
  &__btn {
14
- margin-right: 15px !important;
14
+ margin-right: $signature-btn-margin-right !important;
15
15
  }
16
16
  }
@@ -1,20 +1,27 @@
1
1
  .nut-tabbar {
2
2
  border: 0px;
3
- border-bottom: 1px solid $tabbar-border-color;
4
- border-top: 1px solid $tabbar-border-color;
3
+ box-shadow: $tabbar-box-shadow;
4
+ border-bottom: $tabbar-border-bottom;
5
+ border-top: $tabbar-border-top;
5
6
  width: 100%;
6
7
  display: flex;
7
- height: 50px;
8
+ padding: 7px 0;
8
9
  box-sizing: border-box;
9
10
  background: $white;
10
11
 
11
12
  &:last-child {
12
13
  border-right: 0;
13
14
  }
15
+
14
16
  &__bottom {
15
17
  position: fixed;
16
18
  bottom: 0px;
17
19
  left: 0px;
18
20
  z-index: 888;
19
21
  }
22
+
23
+ &__safebottom {
24
+ padding-bottom: constant(safe-area-inset-bottom);
25
+ padding-bottom: env(safe-area-inset-bottom);
26
+ }
20
27
  }