@nutui/nutui-react 3.0.0-beta.2 → 3.0.0-beta.3

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 (82) hide show
  1. package/dist/cjs/packages/avatar/style/avatar.scss +7 -60
  2. package/dist/cjs/packages/avatar/style/style.css +5 -43
  3. package/dist/cjs/packages/badge/badge.js +5 -3
  4. package/dist/cjs/packages/badge/style/badge.scss +18 -24
  5. package/dist/cjs/packages/badge/style/style.css +17 -15
  6. package/dist/cjs/packages/calendarcard/calendarcard.js +8 -3
  7. package/dist/cjs/packages/calendarcard/style/calendarcard.scss +25 -4
  8. package/dist/cjs/packages/calendarcard/style/style.css +27 -2
  9. package/dist/cjs/packages/navbar/navbar.js +10 -5
  10. package/dist/cjs/packages/navbar/style/navbar.scss +46 -101
  11. package/dist/cjs/packages/navbar/style/style.css +44 -89
  12. package/dist/cjs/packages/pagination/pagination.js +2 -0
  13. package/dist/cjs/packages/pagination/style/pagination.scss +6 -12
  14. package/dist/cjs/packages/pagination/style/style.css +8 -14
  15. package/dist/cjs/packages/radio/index.d.ts +8 -2
  16. package/dist/cjs/packages/radio/index.js +6 -1
  17. package/dist/cjs/packages/radio/radio.d.ts +1 -4
  18. package/dist/cjs/packages/radio/radio.js +0 -2
  19. package/dist/cjs/packages/radio/style/radio.scss +1 -0
  20. package/dist/cjs/packages/radiogroup/radiogroup.js +1 -1
  21. package/dist/cjs/packages/safearea/style/safearea.scss +1 -1
  22. package/dist/cjs/packages/safearea/style/style.css +1 -1
  23. package/dist/cjs/packages/searchbar/style/searchbar.scss +10 -7
  24. package/dist/cjs/packages/searchbar/style/style.css +11 -8
  25. package/dist/cjs/packages/skeleton/style/style.css +5 -43
  26. package/dist/cjs/packages/tabbar/style/style.css +17 -15
  27. package/dist/cjs/packages/tabbaritem/style/style.css +17 -15
  28. package/dist/es/packages/avatar/style/avatar.scss +7 -60
  29. package/dist/es/packages/avatar/style/style.css +5 -43
  30. package/dist/es/packages/badge/badge.d.ts +7 -35
  31. package/dist/es/packages/badge/badge.js +5 -3
  32. package/dist/es/packages/badge/style/badge.scss +18 -24
  33. package/dist/es/packages/badge/style/style.css +17 -15
  34. package/dist/es/packages/calendarcard/calendarcard.d.ts +13 -65
  35. package/dist/es/packages/calendarcard/calendarcard.js +9 -4
  36. package/dist/es/packages/calendarcard/style/calendarcard.scss +25 -4
  37. package/dist/es/packages/calendarcard/style/style.css +27 -2
  38. package/dist/es/packages/loading/loading.d.ts +3 -15
  39. package/dist/es/packages/navbar/navbar.js +10 -5
  40. package/dist/es/packages/navbar/style/navbar.scss +46 -101
  41. package/dist/es/packages/navbar/style/style.css +44 -89
  42. package/dist/es/packages/pagination/pagination.js +2 -0
  43. package/dist/es/packages/pagination/style/pagination.scss +6 -12
  44. package/dist/es/packages/pagination/style/style.css +8 -14
  45. package/dist/es/packages/radio/index.d.ts +8 -2
  46. package/dist/es/packages/radio/index.js +5 -1
  47. package/dist/es/packages/radio/radio.d.ts +10 -49
  48. package/dist/es/packages/radio/radio.js +0 -2
  49. package/dist/es/packages/radio/style/radio.scss +1 -0
  50. package/dist/es/packages/radiogroup/radiogroup.d.ts +7 -35
  51. package/dist/es/packages/radiogroup/radiogroup.js +1 -1
  52. package/dist/es/packages/safearea/safearea.d.ts +1 -5
  53. package/dist/es/packages/safearea/style/safearea.scss +1 -1
  54. package/dist/es/packages/safearea/style/style.css +1 -1
  55. package/dist/es/packages/searchbar/searchbar.d.ts +19 -95
  56. package/dist/es/packages/searchbar/style/searchbar.scss +10 -7
  57. package/dist/es/packages/searchbar/style/style.css +11 -8
  58. package/dist/es/packages/skeleton/style/style.css +5 -43
  59. package/dist/es/packages/tabbar/style/style.css +17 -15
  60. package/dist/es/packages/tabbaritem/style/style.css +17 -15
  61. package/dist/es/packages/video/video.d.ts +5 -25
  62. package/dist/nutui.react.umd.js +101 -89
  63. package/dist/style.css +1 -1
  64. package/dist/styles/themes/default.scss +23 -23
  65. package/dist/styles/variables.scss +7 -4
  66. package/package.json +1 -1
  67. package/dist/cjs/packages/nutui.react.build.rn.d.ts +0 -203
  68. package/dist/cjs/packages/nutui.react.build.rn.js +0 -418
  69. package/dist/cjs/packages/nutui.react.rn.d.ts +0 -304
  70. package/dist/cjs/packages/nutui.react.rn.js +0 -519
  71. package/dist/cjs/packages/popup/index.rn.d.ts +0 -3
  72. package/dist/cjs/packages/popup/index.rn.js +0 -12
  73. package/dist/cjs/packages/popup/popup.rn.d.ts +0 -26
  74. package/dist/cjs/packages/popup/popup.rn.js +0 -186
  75. package/dist/es/packages/nutui.react.build.rn.d.ts +0 -203
  76. package/dist/es/packages/nutui.react.build.rn.js +0 -203
  77. package/dist/es/packages/nutui.react.rn.d.ts +0 -304
  78. package/dist/es/packages/nutui.react.rn.js +0 -304
  79. package/dist/es/packages/popup/index.rn.d.ts +0 -3
  80. package/dist/es/packages/popup/index.rn.js +0 -2
  81. package/dist/es/packages/popup/popup.rn.d.ts +0 -26
  82. package/dist/es/packages/popup/popup.rn.js +0 -174
@@ -2,11 +2,13 @@
2
2
  width: var(--nutui-navbar-width, 100%);
3
3
  position: relative;
4
4
  display: flex;
5
+ flex-direction: row;
6
+ justify-content: center;
5
7
  align-items: center;
6
8
  height: var(--nutui-navbar-height, 44px);
7
9
  box-sizing: border-box;
8
10
  background: var(--nutui-navbar-background, var(--nutui-color-background, #f5f6fa));
9
- box-shadow: var(--nutui-navbar-box-shadow, 0px);
11
+ box-shadow: var(--nutui-navbar-box-shadow, 0 0 transparent);
10
12
  font-size: var(--nutui-navbar-font-size, var(--nutui-font-size-base, 14px));
11
13
  color: var(--nutui-navbar-color, var(--nutui-color-title, #1a1a1a));
12
14
  margin-bottom: var(--nutui-navbar-margin-bottom, 20px);
@@ -16,31 +18,38 @@
16
18
  position: fixed;
17
19
  top: 0;
18
20
  left: 0;
21
+ right: 0;
19
22
  width: 100%;
20
23
  }
21
24
  .nut-navbar-placeholder {
22
25
  display: inline-block;
23
26
  width: 100%;
24
27
  }
28
+ .nut-navbar-safe-area-inset-top {
29
+ padding-top: constant(safe-area-inset-top);
30
+ padding-top: env(safe-area-inset-top);
31
+ }
32
+ .nut-navbar-align-left {
33
+ padding-left: 14px;
34
+ }
25
35
  .nut-navbar-title {
26
- min-width: 53%;
27
- margin: 0 auto;
36
+ width: 50%;
37
+ height: 100%;
28
38
  text-align: center;
29
39
  display: flex;
40
+ flex-direction: row;
30
41
  align-items: center;
31
42
  justify-content: center;
32
43
  font-size: var(--nutui-navbar-title-font-size, var(--nutui-font-size-xl, 18px));
33
44
  font-weight: var(--nutui-navbar-title-font-weight, var(--nutui-font-weight-bold, 600));
34
45
  color: var(--nutui-navbar-title-font-color, var(--nutui-color-title, #1a1a1a));
35
46
  }
36
- .nut-navbar-title .nut-tabs-titles {
37
- background: transparent;
38
- }
39
- .nut-navbar-title .nut-tabs-titles-item-text {
40
- color: var(--nutui-color-title, #1a1a1a);
41
- }
42
- .nut-navbar-title .nut-tabpane {
43
- display: none;
47
+ .nut-navbar-title-align-left {
48
+ min-width: 0;
49
+ flex: 1;
50
+ justify-content: flex-start;
51
+ padding: 0 8px;
52
+ text-align: left;
44
53
  }
45
54
  .nut-navbar-title ::-webkit-scrollbar {
46
55
  display: none;
@@ -51,8 +60,12 @@
51
60
  bottom: 0;
52
61
  display: flex;
53
62
  align-items: center;
63
+ flex-direction: row;
64
+ height: 100%;
54
65
  cursor: pointer;
55
66
  padding: 0 14px;
67
+ /* #ifndef rn harmony jd h5 weapp*/
68
+ /* #endif */
56
69
  }
57
70
  .nut-navbar-left .nut-icon,
58
71
  .nut-navbar-left .nutui-iconfont, .nut-navbar-right .nut-icon,
@@ -64,98 +77,40 @@
64
77
  .nut-navbar-left {
65
78
  left: 0;
66
79
  }
80
+ .nut-navbar-left-rtl {
81
+ left: auto;
82
+ right: 0;
83
+ }
84
+ .nut-navbar-left-align-left {
85
+ position: static;
86
+ padding: 0;
87
+ }
67
88
  .nut-navbar-left-back {
68
89
  display: flex;
90
+ flex-direction: row;
69
91
  align-items: center;
70
92
  justify-content: center;
93
+ }
94
+ .nut-navbar-left-back-children {
71
95
  margin-right: 10px;
72
96
  }
97
+ .nut-navbar-left-back-children-rtl {
98
+ margin-right: 0;
99
+ margin-left: 10px;
100
+ }
73
101
  .nut-navbar-right {
74
102
  right: 0;
75
103
  }
76
- .nut-navbar-right .nut-icon {
77
- margin-left: 12px;
78
- }
79
- .nut-navbar-right .nut-icon:first-child {
80
- margin-left: 0;
81
- }
82
- .nut-navbar-title-align-left {
83
- padding-left: 14px;
84
- }
85
- .nut-navbar-title-align-left .nut-navbar-left {
86
- position: static;
87
- padding: 0;
88
- }
89
- .nut-navbar-title-align-left .nut-navbar-left .nut-icon {
90
- margin-left: 12px;
91
- }
92
- .nut-navbar-title-align-left .nut-navbar-left .nut-icon:first-child {
93
- margin-left: 0;
104
+ .nut-navbar-right-rtl {
105
+ right: auto;
106
+ left: 0;
94
107
  }
95
- .nut-navbar-title-align-left .nut-navbar-right {
108
+ .nut-navbar-right-align-left {
96
109
  position: static;
97
110
  display: inline-flex;
98
111
  white-space: nowrap;
99
112
  padding-left: 0;
100
113
  }
101
- .nut-navbar-title-align-left .nut-navbar-left-back {
102
- margin-right: 0;
103
- }
104
- .nut-navbar-title-align-left .nut-navbar-title {
105
- min-width: 0;
106
- margin: 0;
107
- flex: 1;
108
- justify-content: flex-start;
109
- padding: 0 8px;
110
- text-align: left;
111
- }
112
-
113
- [dir=rtl] .nut-navbar-fixed,
114
- .nut-rtl .nut-navbar-fixed {
115
- left: auto;
116
- right: 0;
117
- }
118
- [dir=rtl] .nut-navbar-left,
119
- .nut-rtl .nut-navbar-left {
120
- left: auto;
121
- right: 0;
122
- }
123
- [dir=rtl] .nut-navbar-left .nut-icon-ArrowLeft,
124
- .nut-rtl .nut-navbar-left .nut-icon-ArrowLeft {
114
+ .nut-navbar-rtl .nut-icon-ArrowLeft {
125
115
  transform: rotateY(180deg);
126
- }
127
- [dir=rtl] .nut-navbar-left-back,
128
- .nut-rtl .nut-navbar-left-back {
129
- margin-right: 0;
130
- margin-left: 10px;
131
- }
132
- [dir=rtl] .nut-navbar-right,
133
- .nut-rtl .nut-navbar-right {
134
- right: auto;
135
- left: 0;
136
- }
137
- [dir=rtl] .nut-navbar-right .nut-icon,
138
- .nut-rtl .nut-navbar-right .nut-icon {
139
- margin-left: 0;
140
- margin-right: 12px;
141
- }
142
- [dir=rtl] .nut-navbar-right .nut-icon:first-child,
143
- .nut-rtl .nut-navbar-right .nut-icon:first-child {
144
- margin-left: 0;
145
- margin-right: 0;
146
- }
147
- [dir=rtl] .nut-navbar-title-align-left .nut-navbar-left .nut-icon-ArrowLeft,
148
- .nut-rtl .nut-navbar-title-align-left .nut-navbar-left .nut-icon-ArrowLeft {
149
- margin-left: 0;
150
- margin-right: 12px;
151
- }
152
- [dir=rtl] .nut-navbar-title-align-left .nut-navbar-left .nut-icon-ArrowLeft:first-child,
153
- .nut-rtl .nut-navbar-title-align-left .nut-navbar-left .nut-icon-ArrowLeft:first-child {
154
- margin-left: 0;
155
- margin-right: 0;
156
- }
157
- [dir=rtl] .nut-navbar-title-align-left .nut-navbar-left-back,
158
- .nut-rtl .nut-navbar-title-align-left .nut-navbar-left-back {
159
- margin-right: 0;
160
- margin-left: 0;
161
116
  }
@@ -128,6 +128,8 @@ export var Pagination = function(props) {
128
128
  }, /*#__PURE__*/ React.createElement("div", {
129
129
  className: "".concat(classPrefix, "-lite-active")
130
130
  }, currentPage), /*#__PURE__*/ React.createElement("div", {
131
+ className: "".concat(classPrefix, "-lite-spliterator")
132
+ }, "/"), /*#__PURE__*/ React.createElement("div", {
131
133
  className: "".concat(classPrefix, "-lite-default")
132
134
  }, pageCount)));
133
135
  };
@@ -67,10 +67,11 @@
67
67
  }
68
68
 
69
69
  .nut-pagination-lite {
70
- width: $pagination-lite-width;
71
70
  height: $pagination-lite-height;
71
+ padding: 0 $spacing-xs;
72
72
  display: flex;
73
73
  flex-direction: row;
74
+ align-items: center;
74
75
  color: $color-primary-text;
75
76
  background-color: $pagination-lite-background-color;
76
77
  border-radius: $pagination-lite-radius;
@@ -78,18 +79,11 @@
78
79
 
79
80
  .nut-pagination-lite-active,
80
81
  .nut-pagination-lite-default {
81
- display: flex;
82
- align-items: center;
83
- justify-content: center;
84
- width: $pagination-lite-height;
85
- height: $pagination-lite-height;
86
- font-size: $font-size-s;
82
+ font-size: $font-size-xs;
87
83
  color: $pagination-lite-color;
88
- font-weight: 400;
89
84
  }
90
85
 
91
- .nut-pagination-lite-active {
92
- border-radius: $pagination-lite-radius;
93
- font-size: $font-size-s;
94
- background-color: $pagination-lite-active-background-color;
86
+ .nut-pagination-lite-spliterator {
87
+ font-size: $font-size-xs;
88
+ color: $pagination-lite-color;
95
89
  }
@@ -66,29 +66,23 @@
66
66
  }
67
67
 
68
68
  .nut-pagination-lite {
69
- width: var(--nutui-pagination-lite-width, 40px);
70
69
  height: var(--nutui-pagination-lite-height, 20px);
70
+ padding: 0 var(--nutui-spacing-xs, 6px);
71
71
  display: flex;
72
72
  flex-direction: row;
73
+ align-items: center;
73
74
  color: var(--nutui-color-primary-text, #ffffff);
74
- background-color: var(--nutui-pagination-lite-background-color, var(--nutui-black-7));
75
- border-radius: var(--nutui-pagination-lite-radius, 6px);
75
+ background-color: var(--nutui-pagination-lite-background-color, rgba(0, 0, 0, 0.45));
76
+ border-radius: var(--nutui-pagination-lite-radius, var(--nutui-radius-xs, 4px));
76
77
  }
77
78
 
78
79
  .nut-pagination-lite-active,
79
80
  .nut-pagination-lite-default {
80
- display: flex;
81
- align-items: center;
82
- justify-content: center;
83
- width: var(--nutui-pagination-lite-height, 20px);
84
- height: var(--nutui-pagination-lite-height, 20px);
85
- font-size: var(--nutui-font-size-s, 12px);
81
+ font-size: var(--nutui-font-size-xs, 11px);
86
82
  color: var(--nutui-pagination-lite-color, #ffffff);
87
- font-weight: 400;
88
83
  }
89
84
 
90
- .nut-pagination-lite-active {
91
- border-radius: var(--nutui-pagination-lite-radius, 6px);
92
- font-size: var(--nutui-font-size-s, 12px);
93
- background-color: var(--nutui-pagination-lite-active-background-color, var(--nutui-black-5));
85
+ .nut-pagination-lite-spliterator {
86
+ font-size: var(--nutui-font-size-xs, 11px);
87
+ color: var(--nutui-pagination-lite-color, #ffffff);
94
88
  }
@@ -1,4 +1,10 @@
1
- import { Radio } from './radio';
1
+ import React from 'react';
2
+ import { RadioProps } from './radio';
3
+ import { RadioGroup } from '../radiogroup/radiogroup';
2
4
  export type { RadioProps } from './radio';
3
5
  export type { RadioShape, RadioPosition } from './types';
4
- export default Radio;
6
+ type CompoundedComponent = React.FC<Partial<RadioProps> & Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'>> & {
7
+ Group: typeof RadioGroup;
8
+ };
9
+ declare const InnerRadio: CompoundedComponent;
10
+ export default InnerRadio;
@@ -1,2 +1,6 @@
1
+ import React from "react";
1
2
  import { Radio } from "./radio";
2
- export default Radio;
3
+ import { RadioGroup } from "../radiogroup/radiogroup";
4
+ var InnerRadio = Radio;
5
+ InnerRadio.Group = RadioGroup;
6
+ export default InnerRadio;
@@ -1,54 +1,15 @@
1
1
  import React, { FunctionComponent } from 'react';
2
- import RadioGroup from "../radiogroup";
3
2
  import { BasicComponent } from "../../utils/typings";
4
3
  import { RadioPosition, RadioShape } from "./types";
5
4
  export interface RadioProps extends BasicComponent {
6
- /**
7
- * 是否禁用选择
8
- * @default false
9
- */
10
- disabled: boolean
11
- /**
12
- * 指定当前是否选中
13
- * @default -
14
- */
15
- checked: boolean
16
- /**
17
- * 初始是否选中
18
- * @default -
19
- */
20
- defaultChecked: boolean
21
- /**
22
- * 形状
23
- * @default round
24
- */
25
- shape: RadioShape
26
- /**
27
- * 文本所在的位置
28
- * @default right
29
- */
30
- labelPosition: RadioPosition
31
- /**
32
- * <a href="#/icon">图标名称</a>,选中前(建议和activeIcon一起修改)
33
- * @default 'CheckNormal'
34
- */
35
- icon: React.ReactNode
36
- /**
37
- * <a href="#/icon">图标名称</a>,选中后(建议和icon一起修改)
38
- * @default 'CheckChecked'
39
- */
40
- activeIcon: React.ReactNode
41
- /**
42
- * 携带的标识值,用于 Group 模式
43
- * @default -
44
- */
45
- value: string | number
46
- /**
47
- * 选中态变化时触发
48
- * @default -
49
- */
50
- onChange: (checked: boolean) => void
5
+ disabled: boolean;
6
+ checked: boolean;
7
+ defaultChecked: boolean;
8
+ shape: RadioShape;
9
+ labelPosition: RadioPosition;
10
+ icon: React.ReactNode;
11
+ activeIcon: React.ReactNode;
12
+ value: string | number;
13
+ onChange: (checked: boolean) => void;
51
14
  }
52
- export declare const Radio: FunctionComponent<Partial<RadioProps> & Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'>> & {
53
- Group: typeof RadioGroup;
54
- };
15
+ export declare const Radio: FunctionComponent<Partial<RadioProps> & Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'>>;
@@ -7,7 +7,6 @@ import React, { useContext } from "react";
7
7
  import { CheckChecked, CheckNormal, CheckDisabled } from "@nutui/icons-react";
8
8
  import classNames from "classnames";
9
9
  import RadioContext from "../radiogroup/context";
10
- import RadioGroup from "../radiogroup";
11
10
  import { ComponentDefaults } from "../../utils/typings";
12
11
  import { usePropsValue } from "../../utils/use-props-value";
13
12
  var defaultProps = _object_spread_props(_object_spread({}, ComponentDefaults), {
@@ -117,4 +116,3 @@ export var Radio = function(props) {
117
116
  }, rest), renderRadioItem());
118
117
  };
119
118
  Radio.displayName = 'NutRadio';
120
- Radio.Group = RadioGroup;
@@ -77,6 +77,7 @@
77
77
  border: 1px solid $color-text-disabled;
78
78
  }
79
79
  }
80
+
80
81
  [dir='rtl'] .nut-radio,
81
82
  .nut-rtl .nut-radio {
82
83
  &:last-child {
@@ -1,41 +1,13 @@
1
1
  import React from 'react';
2
2
  import { RadioGroupDirection, RadioGroupOption, RadioGroupPosition, RadioGroupShape } from './types';
3
3
  export interface RadioGroupProps {
4
- /**
5
- * 当前选中项的标识符
6
- * @default -
7
- */
8
- value?: string | number
4
+ value?: string | number;
9
5
  defaultValue?: string | number;
10
- /**
11
- * 文本所在的位置
12
- * @default right
13
- */
14
- labelPosition: RadioGroupPosition
15
- /**
16
- * 使用横纵方向
17
- * @default vertical
18
- */
19
- direction: RadioGroupDirection
20
- /**
21
- * 形状
22
- * @default -
23
- */
24
- shape?: RadioGroupShape
25
- /**
26
- * 是否禁用
27
- * @default false
28
- */
29
- disabled?: boolean
30
- /**
31
- * 配置 options 渲染单选按钮
32
- * @default -
33
- */
34
- options: RadioGroupOption[]
35
- /**
36
- * 值变化时触发
37
- * @default -
38
- */
39
- onChange: (value: string | number) => void
6
+ labelPosition: RadioGroupPosition;
7
+ direction: RadioGroupDirection;
8
+ shape?: RadioGroupShape;
9
+ disabled?: boolean;
10
+ options: RadioGroupOption[];
11
+ onChange: (value: string | number) => void;
40
12
  }
41
13
  export declare const RadioGroup: React.ForwardRefExoticComponent<Partial<RadioGroupProps> & Omit<React.HTMLAttributes<HTMLDivElement>, "onChange"> & React.RefAttributes<unknown>>;
@@ -28,7 +28,7 @@ export var RadioGroup = /*#__PURE__*/ React.forwardRef(function(props, ref) {
28
28
  "options",
29
29
  "disabled"
30
30
  ]);
31
- var cls = classNames(classPrefix, _define_property({}, "".concat(classPrefix, "-").concat(props.direction), props.direction), className);
31
+ var cls = classNames(classPrefix, _define_property({}, "".concat(classPrefix, "-").concat(direction), direction), className);
32
32
  var _usePropsValue = _sliced_to_array(usePropsValue({
33
33
  defaultValue: props.defaultValue,
34
34
  value: props.value,
@@ -1,10 +1,6 @@
1
1
  import { FC } from 'react';
2
2
  import { BasicComponent } from "../../utils/typings";
3
3
  export interface SafeAreaProps extends BasicComponent {
4
- /**
5
- * 安全区的位置
6
- * @default -
7
- */
8
- position: 'top' | 'bottom'
4
+ position: 'top' | 'bottom';
9
5
  }
10
6
  export declare const SafeArea: FC<SafeAreaProps>;
@@ -1,5 +1,5 @@
1
1
  .nut-safe-area {
2
- display: block;
2
+ display: flex;
3
3
  width: 100%;
4
4
 
5
5
  &-position-top {
@@ -1,5 +1,5 @@
1
1
  .nut-safe-area {
2
- display: block;
2
+ display: flex;
3
3
  width: 100%;
4
4
  }
5
5
  .nut-safe-area-position-top {
@@ -2,100 +2,24 @@ import React, { FunctionComponent } from 'react';
2
2
  import type { ChangeEvent, FocusEvent, MouseEvent } from 'react';
3
3
  import { BasicComponent } from "../../utils/typings";
4
4
  export interface SearchBarProps extends BasicComponent {
5
- /**
6
- * 当前输入的值
7
- * @default -
8
- */
9
- value?: number | string
10
- /**
11
- * 输入框默认暗纹
12
- * @default 请输入
13
- */
14
- placeholder?: string
15
- /**
16
- * 搜索框形状,可选值为 round
17
- * @default square
18
- */
19
- shape?: 'square' | 'round'
20
- /**
21
- * 是否禁用输入框
22
- * @default false
23
- */
24
- disabled?: boolean
25
- /**
26
- * 最大输入长度
27
- * @default 9999
28
- */
29
- maxLength?: number
30
- /**
31
- * 是否展示清除按钮
32
- * @default true
33
- */
34
- clearable?: boolean
35
- /**
36
- * 输入框只读
37
- * @default false
38
- */
39
- readOnly?: boolean
40
- /**
41
- * 是否自动聚焦
42
- * @default false
43
- */
44
- autoFocus?: boolean
45
- /**
46
- * 是否展示返回按钮
47
- * @default false
48
- */
49
- backable: boolean
50
- /**
51
- * 搜索框左侧区域
52
- * @default -
53
- */
54
- left: React.ReactNode
55
- /**
56
- * 搜搜框右侧区域
57
- * @default -
58
- */
59
- right: React.ReactNode
60
- /**
61
- * 输入框内左侧区域
62
- * @default <Search width="12" height="12" />
63
- */
64
- leftIn: React.ReactNode
65
- /**
66
- * 输入框内右侧区域
67
- * @default -
68
- */
69
- rightIn: React.ReactNode
70
- /**
71
- * 确定搜索时触发
72
- * @default -
73
- */
74
- onSearch?: (val: string) => void
75
- /**
76
- * 输入内容时触发
77
- * @default -
78
- */
79
- onChange?: (value: string, event?: ChangeEvent<HTMLInputElement>) => void
80
- /**
81
- * 聚焦时触发
82
- * @default -
83
- */
84
- onFocus?: (value: string, event: FocusEvent<HTMLInputElement>) => void
85
- /**
86
- * 失焦时触发
87
- * @default -
88
- */
89
- onBlur?: (value: string, event: FocusEvent<HTMLInputElement>) => void
90
- /**
91
- * 点击清空时触发
92
- * @default -
93
- */
94
- onClear?: (event: MouseEvent<HTMLDivElement>) => void
95
- /**
96
- * 点击输入区域时触发
97
- * @default -
98
- */
99
- onInputClick?: (event: MouseEvent<HTMLInputElement>) => void
5
+ value?: number | string;
6
+ placeholder?: string;
7
+ shape?: 'square' | 'round';
8
+ disabled?: boolean;
9
+ maxLength?: number;
10
+ clearable?: boolean;
11
+ readOnly?: boolean;
12
+ autoFocus?: boolean;
13
+ backable: boolean;
14
+ left: React.ReactNode;
15
+ right: React.ReactNode;
16
+ leftIn: React.ReactNode;
17
+ rightIn: React.ReactNode;
18
+ onSearch?: (val: string) => void;
19
+ onChange?: (value: string, event?: ChangeEvent<HTMLInputElement>) => void;
20
+ onFocus?: (value: string, event: FocusEvent<HTMLInputElement>) => void;
21
+ onBlur?: (value: string, event: FocusEvent<HTMLInputElement>) => void;
22
+ onClear?: (event: MouseEvent<HTMLDivElement>) => void;
23
+ onInputClick?: (event: MouseEvent<HTMLInputElement>) => void;
100
24
  }
101
25
  export declare const SearchBar: FunctionComponent<Partial<SearchBarProps> & Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'onFocus' | 'onBlur'>>;
@@ -35,7 +35,8 @@
35
35
 
36
36
  &-left,
37
37
  &-right {
38
- display: flex;
38
+ display: inline-flex;
39
+ align-items: center;
39
40
 
40
41
  &.nut-icon {
41
42
  width: 20px;
@@ -48,7 +49,9 @@
48
49
 
49
50
  & > div,
50
51
  & > span,
51
- & > svg {
52
+ & > i,
53
+ & > svg,
54
+ .nut-icon {
52
55
  margin-right: $searchbar-gap;
53
56
 
54
57
  &:last-child {
@@ -59,10 +62,11 @@
59
62
 
60
63
  &-right {
61
64
  margin-left: $searchbar-gap;
62
-
63
65
  & > div,
64
66
  & > span,
65
- & > svg {
67
+ & > i,
68
+ & > svg,
69
+ .nut-icon {
66
70
  margin-left: $searchbar-gap;
67
71
 
68
72
  &:first-child {
@@ -89,7 +93,8 @@
89
93
  }
90
94
  }
91
95
 
92
- &-input-box {
96
+ &-input-box,
97
+ &-input {
93
98
  display: flex;
94
99
  align-items: center;
95
100
  flex: 1;
@@ -100,8 +105,6 @@
100
105
  outline: 0;
101
106
  box-sizing: border-box;
102
107
  width: 100%;
103
- height: $searchbar-input-height;
104
- line-height: $searchbar-input-height;
105
108
  padding: $searchbar-input-padding;
106
109
  font-size: $searchbar-font-size;
107
110
  color: $searchbar-input-text-color;