@nutui/nutui 3.1.11 → 3.1.13-beta.1

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 (127) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +148 -37
  3. package/dist/nutui.d.ts +8 -2
  4. package/dist/nutui.es.js +5088 -3730
  5. package/dist/nutui.umd.js +5100 -3736
  6. package/dist/packages/_es/ActionSheet.js +1 -1
  7. package/dist/packages/_es/Address.js +3 -1
  8. package/dist/packages/_es/Avatar.js +1 -1
  9. package/dist/packages/_es/BackTop.js +1 -1
  10. package/dist/packages/_es/Badge.js +1 -1
  11. package/dist/packages/_es/Barrage.js +1 -1
  12. package/dist/packages/_es/Button.js +1 -1
  13. package/dist/packages/_es/Calendar.js +1 -1
  14. package/dist/packages/_es/Card.js +105 -0
  15. package/dist/packages/_es/Cascader.js +547 -0
  16. package/dist/packages/_es/Cell.js +1 -1
  17. package/dist/packages/_es/CellGroup.js +10 -4
  18. package/dist/packages/_es/Checkbox.js +1 -1
  19. package/dist/packages/_es/CheckboxGroup.js +2 -2
  20. package/dist/packages/_es/CircleProgress.js +1 -1
  21. package/dist/packages/_es/Col.js +1 -1
  22. package/dist/packages/_es/Collapse.js +1 -1
  23. package/dist/packages/_es/CollapseItem.js +1 -1
  24. package/dist/packages/_es/CountDown.js +2 -2
  25. package/dist/packages/_es/CountUp.js +3 -1
  26. package/dist/packages/_es/DatePicker.js +2 -2
  27. package/dist/packages/_es/Dialog.js +10 -23
  28. package/dist/packages/_es/Divider.js +1 -1
  29. package/dist/packages/_es/Drag.js +1 -1
  30. package/dist/packages/_es/Elevator.js +3 -2
  31. package/dist/packages/_es/FixedNav.js +1 -1
  32. package/dist/packages/_es/Form.js +138 -0
  33. package/dist/packages/_es/FormItem.js +110 -0
  34. package/dist/packages/_es/Grid.js +12 -0
  35. package/dist/packages/_es/GridItem.js +149 -0
  36. package/dist/packages/_es/Icon.js +1 -1
  37. package/dist/packages/_es/ImagePreview.js +148 -32
  38. package/dist/packages/_es/InfiniteLoading.js +1 -1
  39. package/dist/packages/_es/Input.js +1 -1
  40. package/dist/packages/_es/InputNumber.js +1 -1
  41. package/dist/packages/_es/Layout.js +1 -1
  42. package/dist/packages/_es/Menu.js +83 -167
  43. package/dist/packages/_es/MenuItem.js +154 -15
  44. package/dist/packages/_es/Navbar.js +1 -1
  45. package/dist/packages/_es/NoticeBar.js +6 -8
  46. package/dist/packages/_es/Notify.js +1 -1
  47. package/dist/packages/_es/NumberKeyboard.js +9 -7
  48. package/dist/packages/_es/OverLay.js +1 -1
  49. package/dist/packages/_es/Pagination.js +1 -1
  50. package/dist/packages/_es/Picker.js +2 -2
  51. package/dist/packages/_es/Popover.js +11 -17
  52. package/dist/packages/_es/Popup.js +52 -13
  53. package/dist/packages/_es/Price.js +1 -1
  54. package/dist/packages/_es/Progress.js +1 -1
  55. package/dist/packages/_es/Radio.js +1 -1
  56. package/dist/packages/_es/RadioGroup.js +1 -1
  57. package/dist/packages/_es/Range.js +4 -32
  58. package/dist/packages/_es/Rate.js +19 -5
  59. package/dist/packages/_es/Row.js +1 -1
  60. package/dist/packages/_es/SearchBar.js +1 -1
  61. package/dist/packages/_es/ShortPassword.js +1 -1
  62. package/dist/packages/_es/Signature.js +1 -1
  63. package/dist/packages/_es/Sku.js +2 -37
  64. package/dist/packages/_es/Step.js +1 -1
  65. package/dist/packages/_es/Steps.js +1 -1
  66. package/dist/packages/_es/Swipe.js +2 -2
  67. package/dist/packages/_es/Swiper.js +11 -11
  68. package/dist/packages/_es/SwiperItem.js +3 -3
  69. package/dist/packages/_es/Switch.js +28 -8
  70. package/dist/packages/_es/TabPane.js +1 -1
  71. package/dist/packages/_es/Tabbar.js +1 -1
  72. package/dist/packages/_es/TabbarItem.js +1 -1
  73. package/dist/packages/_es/Tabs.js +6 -2
  74. package/dist/packages/_es/Tag.js +1 -1
  75. package/dist/packages/_es/TextArea.js +1 -1
  76. package/dist/packages/_es/TimeDetail.js +1 -1
  77. package/dist/packages/_es/TimePannel.js +1 -1
  78. package/dist/packages/_es/TimeSelect.js +1 -1
  79. package/dist/packages/_es/Toast.js +18 -8
  80. package/dist/packages/_es/Uploader.js +30 -22
  81. package/dist/packages/_es/Video.js +3 -3
  82. package/dist/packages/_es/common.js +136 -0
  83. package/dist/packages/_es/component.js +1 -1
  84. package/dist/packages/_es/index.js +7 -58
  85. package/dist/packages/_es/index2.js +58 -7
  86. package/dist/packages/_es/index3.js +36 -0
  87. package/dist/packages/_es/plugin-vue_export-helper.js +4 -3
  88. package/dist/packages/_es/pxCheck.js +1 -1
  89. package/dist/packages/_es/raf.js +1 -1
  90. package/dist/packages/_es/util.js +47 -0
  91. package/dist/packages/button/index.scss +6 -0
  92. package/dist/packages/card/index.scss +97 -0
  93. package/dist/packages/cascader/index.scss +81 -0
  94. package/dist/packages/cellgroup/index.scss +9 -0
  95. package/dist/packages/checkbox/index.scss +1 -1
  96. package/dist/packages/dialog/index.scss +17 -0
  97. package/dist/packages/drag/index.scss +4 -0
  98. package/dist/packages/fixednav/index.scss +6 -1
  99. package/dist/packages/form/index.scss +2 -0
  100. package/dist/packages/formitem/index.scss +63 -0
  101. package/dist/packages/grid/index.scss +10 -0
  102. package/dist/packages/griditem/index.scss +92 -0
  103. package/dist/packages/icon/index.scss +2 -1
  104. package/dist/packages/menu/index.scss +32 -60
  105. package/dist/packages/menuitem/index.scss +36 -99
  106. package/dist/packages/numberkeyboard/index.scss +1 -1
  107. package/dist/packages/popover/index.scss +2 -2
  108. package/dist/packages/rate/index.scss +1 -0
  109. package/dist/packages/switch/index.scss +1 -1
  110. package/dist/packages/tabs/index.scss +16 -0
  111. package/dist/packages/textarea/index.scss +1 -0
  112. package/dist/packages/timedetail/index.scss +1 -2
  113. package/dist/packages/timeselect/index.scss +3 -0
  114. package/dist/packages/toast/index.scss +6 -0
  115. package/dist/style.css +1 -1
  116. package/dist/styles/font/config.json +2 -1
  117. package/dist/styles/font/demo_index.html +26 -3
  118. package/dist/styles/font/iconfont.css +7 -3
  119. package/dist/styles/font/iconfont.js +31 -32
  120. package/dist/styles/font/iconfont.json +7 -0
  121. package/dist/styles/font/iconfont.ttf +0 -0
  122. package/dist/styles/font/iconfont.woff +0 -0
  123. package/dist/styles/font/iconfont.woff2 +0 -0
  124. package/dist/styles/themes/default.scss +39 -33
  125. package/dist/styles/variables.scss +54 -1
  126. package/package.json +3 -4
  127. package/dist/packages/_es/style.css +0 -160
@@ -0,0 +1,63 @@
1
+ .nut-form-item {
2
+ display: flex;
3
+ &::before {
4
+ position: absolute;
5
+ box-sizing: border-box;
6
+ content: ' ';
7
+ pointer-events: none;
8
+ right: 16px;
9
+ bottom: 0;
10
+ left: 16px;
11
+ transform: scaleX(0);
12
+ }
13
+ &.error {
14
+ &.line {
15
+ &::before {
16
+ border-bottom: 1px solid $form-item-error-line-color;
17
+ transform: scaleX(1);
18
+ transition: transform 200ms cubic-bezier(0, 0, 0.2, 1) 0ms;
19
+ }
20
+ }
21
+ }
22
+
23
+ &__label {
24
+ font-size: 14px;
25
+ font-weight: normal;
26
+ width: 90px;
27
+ margin-right: 10px;
28
+ flex: none;
29
+ display: inline-block;
30
+ word-wrap: break-word;
31
+ &.required {
32
+ &::before {
33
+ content: '*';
34
+ color: $form-item-required-color;
35
+ margin-right: 4px;
36
+ }
37
+ }
38
+ }
39
+ &__body {
40
+ flex: 1;
41
+ display: flex;
42
+ flex-direction: column;
43
+ &__slots {
44
+ .nut-input-text {
45
+ font-size: 14px;
46
+ width: 100%;
47
+ outline: 0 none;
48
+ border: 0;
49
+ text-decoration: none;
50
+ }
51
+ .nut-range-container {
52
+ min-height: 24px;
53
+ }
54
+ .nut-textarea {
55
+ padding: 0 !important;
56
+ }
57
+ }
58
+ &__tips {
59
+ font-size: 10px;
60
+ color: $form-item-error-message-color;
61
+ }
62
+ }
63
+ }
@@ -0,0 +1,10 @@
1
+ .nut-grid {
2
+ display: flex;
3
+ flex-wrap: wrap;
4
+ border: 0 solid $grid-border-color;
5
+
6
+ &--border {
7
+ border-top-width: 1px;
8
+ border-left-width: 1px;
9
+ }
10
+ }
@@ -0,0 +1,92 @@
1
+ .nut-grid-item {
2
+ position: relative;
3
+ box-sizing: border-box;
4
+
5
+ $block: &;
6
+
7
+ &__text {
8
+ color: $grid-item-text-color;
9
+ font-size: $grid-item-text-font-size;
10
+ line-height: 1.5;
11
+ word-break: break-all;
12
+ margin: $grid-item-text-margin 0 0 0;
13
+ }
14
+
15
+ &__content {
16
+ display: flex;
17
+ flex-direction: column;
18
+ box-sizing: border-box;
19
+ height: 100%;
20
+ padding: $grid-item-content-padding;
21
+ background: $grid-item-content-bg-color;
22
+ border: 0 solid $grid-border-color;
23
+
24
+ &--border {
25
+ border-right-width: 1px;
26
+ border-bottom-width: 1px;
27
+ }
28
+
29
+ &--surround {
30
+ border-top-width: 1px;
31
+ border-left-width: 1px;
32
+ }
33
+
34
+ &--center {
35
+ align-items: center;
36
+ justify-content: center;
37
+ }
38
+
39
+ &--square {
40
+ position: absolute;
41
+ top: 0;
42
+ right: 0;
43
+ left: 0;
44
+ }
45
+
46
+ &--reverse {
47
+ flex-direction: column-reverse;
48
+
49
+ #{$block}__text {
50
+ margin: 0 0 $grid-item-text-margin;
51
+ }
52
+ }
53
+
54
+ &--horizontal {
55
+ flex-direction: row;
56
+
57
+ #{$block}__text {
58
+ margin: 0 0 0 $grid-item-text-margin;
59
+ }
60
+ }
61
+
62
+ &--horizontal#{&}--reverse {
63
+ flex-direction: row-reverse;
64
+ #{$block}__text {
65
+ margin: 0 $grid-item-text-margin 0 0;
66
+ }
67
+ }
68
+
69
+ &--clickable {
70
+ cursor: pointer;
71
+
72
+ &::before {
73
+ position: absolute;
74
+ top: 50%;
75
+ left: 50%;
76
+ width: 100%;
77
+ height: 100%;
78
+ background-color: $black;
79
+ border: inherit;
80
+ border-color: $black;
81
+ border-radius: inherit;
82
+ transform: translate(-50%, -50%);
83
+ opacity: 0;
84
+ content: ' ';
85
+ }
86
+
87
+ &:active::before {
88
+ opacity: 0.1;
89
+ }
90
+ }
91
+ }
92
+ }
@@ -19,7 +19,8 @@
19
19
  height: $icon-height;
20
20
  object-fit: contain;
21
21
  }
22
- &-loading {
22
+ &-loading,
23
+ &-loading1 {
23
24
  display: inline-block;
24
25
  animation: loadingCircle 1s infinite linear;
25
26
  }
@@ -1,73 +1,45 @@
1
- .nut-menu {
1
+ .nut-menu__bar {
2
2
  position: relative;
3
- font-size: 14px;
4
- color: #1a1a1a;
3
+ display: flex;
4
+ line-height: $nut-menu-bar-line-height;
5
+ background-color: $white;
6
+ border-bottom: 1px solid $nut-menu-bar-border-bottom-color;
5
7
 
6
- .title-list {
7
- display: flex;
8
- line-height: 46px;
9
- align-items: center;
10
- background-color: #fff;
11
- border-bottom: 1px solid #eaf0fb;
12
-
13
- .title {
14
- flex: 1;
15
- text-align: center;
16
-
17
- &.is-active {
18
- font-weight: 600;
19
- }
20
-
21
- &.disabled {
22
- color: #999;
23
- }
24
-
25
- [class*='nut-icon-arrow'] {
26
- vertical-align: middle;
27
- margin-right: 2px;
28
- }
29
- }
8
+ &.opened {
9
+ z-index: $nut-menu-bar-opened-z-index;
30
10
  }
31
11
 
32
- %itemCommon {
33
- position: absolute;
34
- left: 0;
35
- width: 100%;
36
- padding-top: 12px;
37
- padding-bottom: 12px;
38
- border-radius: 0 0 12px 12px;
39
- background-color: #fff;
40
- }
12
+ .nut-menu__item {
13
+ flex: 1;
14
+ text-align: center;
15
+ font-size: $font-size-2;
16
+ color: $title-color;
17
+ min-width: 0;
41
18
 
42
- .option-list {
43
- @extend %itemCommon;
44
- max-height: 214px;
45
- overflow-y: auto;
19
+ &.disabled {
20
+ color: $nut-menu-item-disabled-color;
21
+ }
46
22
 
47
- ul {
48
- display: flex;
49
- flex-wrap: wrap;
50
- list-style: none;
51
- margin: 0;
52
- padding: 0;
23
+ .nut-menu__title-icon {
24
+ transition: all 0.2s linear;
53
25
  }
54
26
 
55
- li {
56
- line-height: 38px;
57
- padding-left: 24px;
58
- box-sizing: border-box;
27
+ .nut-menu__title {
28
+ display: flex;
29
+ align-items: center;
30
+ justify-content: center;
31
+ max-width: 100%;
32
+
33
+ .nut-menu__title-text {
34
+ @include text-ellipsis;
35
+ display: block;
36
+ padding-left: $nut-menu-title-text-padding-left;
37
+ padding-right: $nut-menu-title-text-padding-right;
38
+ }
59
39
 
60
- .nut-icon-Check {
61
- vertical-align: middle;
62
- margin-right: 6px;
40
+ &.active .nut-menu__title-icon {
41
+ transform: rotate(180deg);
63
42
  }
64
43
  }
65
44
  }
66
-
67
- .customer-item {
68
- @extend %itemCommon;
69
- padding-left: 24px;
70
- padding-right: 24px;
71
- box-sizing: border-box;
72
- }
73
45
  }
@@ -1,109 +1,46 @@
1
1
  .nut-menu-item {
2
- flex: 1;
3
- display: flex;
4
- align-items: center;
5
- justify-content: center;
6
- cursor: pointer;
7
- padding: 0 5px;
8
- &.disabled {
9
- color: #999;
10
- }
11
- &.nut-menu-item-active {
12
- .nut-menu-title {
13
- font-weight: bold;
14
- .icon {
15
- color: #1a1a1a;
16
- transition: all ease 0.3s;
17
- transform: rotate(-180deg);
18
- background: url('https://img14.360buyimg.com/imagetools/jfs/t1/144044/16/20214/521/5fe5bb14Ebf213fe3/40f271b982f31898.png')
19
- no-repeat;
20
- background-size: contain;
21
- }
22
- }
23
- .nut-menu-panel {
24
- display: block;
25
- }
2
+ .active {
3
+ font-weight: 500;
26
4
  }
27
5
  }
28
- .nut-menu-title {
29
- font-size: 14px;
6
+
7
+ .nut-menu-item__content {
8
+ padding: $nut-menu-item-content-padding;
9
+ max-height: $nut-menu-item-content-max-height;
10
+ overflow-y: auto;
30
11
  display: flex;
31
- align-items: center;
32
- .title-name {
33
- white-space: nowrap;
34
- max-width: 100px;
35
- overflow: hidden;
36
- text-overflow: ellipsis;
37
- }
38
- .icon {
39
- display: inline-block;
40
- width: 6px;
41
- height: 6px;
42
- background: url('https://img13.360buyimg.com/imagetools/jfs/t1/152898/12/10149/452/5fd990b5Ec7c12d70/3bf06076b758bed1.png')
43
- no-repeat;
44
- background-size: contain;
45
- color: #909ca4;
46
- transform: rotate(0deg);
47
- transition: all ease 0.3s;
48
- margin: 0 2px;
12
+ flex-wrap: wrap;
13
+
14
+ .nut-menu-item__option {
15
+ color: $title-color;
16
+ font-size: $font-size-2;
17
+ padding-top: $nut-menu-item-option-padding-top;
18
+ padding-bottom: $nut-menu-item-option-padding-bottom;
19
+ display: flex;
20
+ align-items: center;
21
+
22
+ i {
23
+ margin-right: $nut-menu-item-option-i-margin-right;
24
+ }
49
25
  }
50
26
  }
51
- .nut-menu-panel {
52
- display: none;
53
- width: 100%;
27
+
28
+ .nut-menu__overlay {
54
29
  position: absolute;
55
- left: 0;
56
- top: 46px;
57
- color: #2d2d2d;
58
- overflow: hidden;
59
- background-color: #fff;
60
- -webkit-box-sizing: border-box;
61
- box-sizing: border-box;
62
- -webkit-overflow-scrolling: touch;
63
- z-index: 9998;
64
- border-top: 1px solid #f7f8fa;
65
- border-radius: 0 0 15px 15px;
66
- box-shadow: 0 4px 5px 0px rgba(236, 236, 236, 0.25);
67
- overflow: auto;
68
- // &.active{
69
- // display: block;
70
- // }
30
+ top: auto !important;
71
31
  }
72
32
 
73
- .menu-list {
74
- display: flex;
75
- padding: 10px 15px;
76
- flex-direction: column;
77
- &.bubble-line {
78
- flex-flow: wrap;
79
- .menu-option {
80
- width: 50%;
81
- }
82
- }
83
- &.three-line {
84
- flex-flow: wrap;
85
- .menu-option {
86
- width: 33%;
87
- }
88
- }
89
- .menu-option {
90
- min-height: 24px;
91
- line-height: 42px;
92
- font-size: 14px;
93
- color: #1a1a1a;
94
- width: 100%;
95
- white-space: nowrap;
96
- overflow: hidden;
97
- text-overflow: ellipsis;
98
- padding: 0 5px;
99
- &.checked {
100
- font-weight: bold;
101
- }
102
- }
103
- .check-icon {
104
- width: 14px;
105
- height: 14px;
106
- margin-right: 5px;
107
- color: #fa2c19;
108
- }
33
+ .nut-menu__pop {
34
+ transition: all 0 ease 0;
35
+ transform: none;
36
+ top: auto !important;
37
+ }
38
+
39
+ .placeholder-element {
40
+ position: fixed;
41
+ top: -$nut-menu-bar-line-height;
42
+ left: 0;
43
+ right: 0;
44
+ z-index: $nut-menu-bar-opened-z-index;
45
+ background-color: transparent;
109
46
  }
@@ -104,5 +104,5 @@
104
104
  }
105
105
  }
106
106
  .nut-numberkeyboard-overlay {
107
- background-color: rgba(0, 0, 0, 0);
107
+ background-color: rgba(0, 0, 0, 0) !important;
108
108
  }
@@ -4,13 +4,13 @@
4
4
  display: inline-block;
5
5
  margin-right: 20px;
6
6
  .more-background {
7
- background: $popover-white-background-color;
8
7
  opacity: 0;
9
8
  position: fixed;
10
9
  width: 100%;
11
- height: 1000px;
10
+ height: 100%;
12
11
  z-index: 10;
13
12
  left: 0;
13
+ top: 0;
14
14
  }
15
15
  .popoverContent--left,
16
16
  .popoverContent--right,
@@ -28,6 +28,7 @@
28
28
  left: 0;
29
29
  top: 0;
30
30
  overflow: hidden;
31
+ height: auto !important;
31
32
  }
32
33
  }
33
34
  }
@@ -1,6 +1,6 @@
1
1
  .nut-switch {
2
2
  cursor: pointer;
3
- display: flex;
3
+ display: inline-flex;
4
4
  align-items: center;
5
5
  background-color: $primary-color;
6
6
  border-radius: 21px;
@@ -66,6 +66,22 @@
66
66
  user-select: none;
67
67
  background: $tabs-titles-background-color;
68
68
  border-radius: $tabs-titles-border-radius;
69
+ flex-shrink: 0;
70
+ &.large {
71
+ .nut-tabs__titles-item {
72
+ font-size: $tabs-titles-item-large-font-size;
73
+ }
74
+ }
75
+ &.normal {
76
+ .nut-tabs__titles-item {
77
+ font-size: $tabs-titles-item-font-size;
78
+ }
79
+ }
80
+ &.small {
81
+ .nut-tabs__titles-item {
82
+ font-size: $tabs-titles-item-small-font-size;
83
+ }
84
+ }
69
85
  &::-webkit-scrollbar {
70
86
  display: none;
71
87
  width: 0;
@@ -30,6 +30,7 @@
30
30
  min-width: 0;
31
31
  margin: 0;
32
32
  padding: 0;
33
+ font-size: $textarea-font;
33
34
  color: $textarea-text-color;
34
35
  text-align: left;
35
36
  background-color: transparent;
@@ -1,7 +1,6 @@
1
1
  .nut-timedetail {
2
+ display: flex;
2
3
  width: 100%;
3
- height: 100%;
4
- overflow: auto;
5
4
  padding: 0 5px 50px 13px;
6
5
  &__detail {
7
6
  width: 100%;
@@ -4,6 +4,7 @@
4
4
  position: relative;
5
5
  overflow: hidden;
6
6
  &__title {
7
+ display: flex;
7
8
  width: 100%;
8
9
  height: 50px;
9
10
  line-height: 50px;
@@ -29,6 +30,8 @@
29
30
  &__detail {
30
31
  width: calc(100% - 140px);
31
32
  height: 308px;
33
+ overflow-y: auto;
34
+ overflow-x: hidden;
32
35
  }
33
36
  }
34
37
  }
@@ -51,6 +51,12 @@
51
51
  margin-bottom: -8px;
52
52
  }
53
53
  }
54
+ &-title {
55
+ font-size: 16px;
56
+ &:empty {
57
+ margin-bottom: -8px;
58
+ }
59
+ }
54
60
  &-has-icon {
55
61
  .nut-toast-icon-wrapper {
56
62
  width: 100%;