@nutui/nutui-react 2.3.8 → 2.3.9

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 (178) hide show
  1. package/CHANGELOG.md +24 -4
  2. package/dist/esm/ActionSheet/style/style.css +1 -1
  3. package/dist/esm/Address/style/style.css +1 -1
  4. package/dist/esm/Animate/style/style.css +1 -1
  5. package/dist/esm/Audio/style/style.css +1 -1
  6. package/dist/esm/Avatar/style/style.css +1 -1
  7. package/dist/esm/AvatarCropper/style/style.css +1 -1
  8. package/dist/esm/AvatarGroup/style/style.css +1 -1
  9. package/dist/esm/Badge/style/style.css +1 -1
  10. package/dist/esm/Barrage/style/style.css +1 -1
  11. package/dist/esm/Button/style/style.css +1 -1
  12. package/dist/esm/Calendar/style/style.css +1 -1
  13. package/dist/esm/CalendarCard/style/style.css +1 -1
  14. package/dist/esm/Card/style/style.css +1 -1
  15. package/dist/esm/Cascader/style/style.css +1 -1
  16. package/dist/esm/Cell/style/style.css +1 -1
  17. package/dist/esm/CellGroup/style/style.css +1 -1
  18. package/dist/esm/Checkbox/style/style.css +1 -1
  19. package/dist/esm/CheckboxGroup/style/style.css +1 -1
  20. package/dist/esm/CircleProgress/style/style.css +1 -1
  21. package/dist/esm/Col/style/style.css +1 -1
  22. package/dist/esm/Collapse/style/style.css +1 -1
  23. package/dist/esm/CollapseItem/style/style.css +1 -1
  24. package/dist/esm/DatePicker/style/style.css +1 -1
  25. package/dist/esm/Dialog/style/style.css +1 -1
  26. package/dist/esm/Divider/style/style.css +1 -1
  27. package/dist/esm/Elevator/style/style.css +1 -1
  28. package/dist/esm/Empty/style/style.css +1 -1
  29. package/dist/esm/FixedNav/style/style.css +1 -1
  30. package/dist/esm/Form/style/style.css +1 -1
  31. package/dist/esm/FormItem/style/style.css +1 -1
  32. package/dist/esm/Grid/style/style.css +1 -1
  33. package/dist/esm/GridItem/style/style.css +1 -1
  34. package/dist/esm/Image/style/style.css +1 -1
  35. package/dist/esm/ImagePreview/style/style.css +1 -1
  36. package/dist/esm/Indicator/style/style.css +1 -1
  37. package/dist/esm/InfiniteLoading/style/style.css +1 -1
  38. package/dist/esm/InfiniteLoading.js +7 -6
  39. package/dist/esm/Menu/style/style.css +1 -1
  40. package/dist/esm/MenuItem/style/style.css +1 -1
  41. package/dist/esm/NavBar/style/style.css +1 -1
  42. package/dist/esm/NoticeBar/style/style.css +1 -1
  43. package/dist/esm/Notify/style/style.css +1 -1
  44. package/dist/esm/NumberKeyboard/style/style.css +1 -1
  45. package/dist/esm/Overlay/style/style.css +1 -1
  46. package/dist/esm/Pagination/style/style.css +1 -1
  47. package/dist/esm/Picker/style/style.css +1 -1
  48. package/dist/esm/Popover/style/style.css +1 -1
  49. package/dist/esm/Popup/style/style.css +1 -1
  50. package/dist/esm/Price/style/style.css +1 -1
  51. package/dist/esm/Progress/style/style.css +1 -1
  52. package/dist/esm/PullToRefresh/style/style.css +1 -1
  53. package/dist/esm/Radio/style/style.css +1 -1
  54. package/dist/esm/Range/style/style.css +1 -1
  55. package/dist/esm/Rate/style/style.css +1 -1
  56. package/dist/esm/SearchBar/style/style.css +1 -1
  57. package/dist/esm/ShortPassword/style/style.css +1 -1
  58. package/dist/esm/SideNavBar/style/style.css +1 -1
  59. package/dist/esm/Skeleton/style/style.css +1 -1
  60. package/dist/esm/Space/style/style.css +1 -1
  61. package/dist/esm/Step/style/style.css +1 -1
  62. package/dist/esm/Steps/style/style.css +1 -1
  63. package/dist/esm/Swipe/style/style.css +1 -1
  64. package/dist/esm/Swiper/style/style.css +1 -1
  65. package/dist/esm/Switch/style/style.css +1 -1
  66. package/dist/esm/Tabbar/style/style.css +1 -1
  67. package/dist/esm/TabbarItem/style/style.css +1 -1
  68. package/dist/esm/Table/style/style.css +1 -1
  69. package/dist/esm/Tabs/style/style.css +1 -1
  70. package/dist/esm/Tag/style/style.css +1 -1
  71. package/dist/esm/TextArea/style/style.css +1 -1
  72. package/dist/esm/TextArea.js +1 -1
  73. package/dist/esm/TimeDetail/style/style.css +1 -1
  74. package/dist/esm/TimeSelect/style/style.css +1 -1
  75. package/dist/esm/Toast/style/style.css +1 -1
  76. package/dist/esm/Tour/style/style.css +1 -1
  77. package/dist/esm/TrendArrow/style/style.css +1 -1
  78. package/dist/esm/Uploader/style/style.css +1 -1
  79. package/dist/esm/VirtualList/style/style.css +1 -1
  80. package/dist/esm/configprovider2.js +8 -4
  81. package/dist/esm/popup2.js +2 -1
  82. package/dist/esm/types/src/packages/configprovider/configprovider.d.ts +2 -0
  83. package/dist/esm/types/src/packages/configprovider/configprovider.taro.d.ts +2 -0
  84. package/dist/esm/types/src/packages/configprovider/index.d.ts +1 -1
  85. package/dist/esm/types/src/packages/configprovider/index.taro.d.ts +1 -1
  86. package/dist/esm/types/src/packages/popover/popover.taro.d.ts +7 -0
  87. package/dist/locales/base.js +1 -1
  88. package/dist/locales/en-US.js +1 -1
  89. package/dist/locales/id-ID.js +1 -1
  90. package/dist/locales/tr-TR.js +1 -1
  91. package/dist/locales/zh-CN.js +1 -1
  92. package/dist/locales/zh-TW.js +1 -1
  93. package/dist/locales/zh-UG.js +1 -1
  94. package/dist/nutui.react.es.js +12 -7
  95. package/dist/nutui.react.umd.js +12 -7
  96. package/dist/packages/address/address.scss +12 -0
  97. package/dist/packages/animate/animate.scss +49 -0
  98. package/dist/packages/audio/audio.scss +14 -0
  99. package/dist/packages/avatar/avatar.scss +25 -0
  100. package/dist/packages/avatarcropper/avatarcropper.scss +52 -0
  101. package/dist/packages/avatargroup/avatargroup.scss +11 -0
  102. package/dist/packages/badge/badge.scss +8 -0
  103. package/dist/packages/barrage/barrage.scss +17 -0
  104. package/dist/packages/button/button.scss +18 -0
  105. package/dist/packages/calendar/calendar.scss +24 -0
  106. package/dist/packages/calendarcard/calendarcard.scss +41 -0
  107. package/dist/packages/card/card.scss +21 -0
  108. package/dist/packages/cascader/cascader.scss +8 -0
  109. package/dist/packages/cellgroup/cellgroup.scss +14 -0
  110. package/dist/packages/checkbox/checkbox.scss +38 -0
  111. package/dist/packages/checkboxgroup/checkboxgroup.scss +24 -8
  112. package/dist/packages/circleprogress/circleprogress.scss +8 -0
  113. package/dist/packages/col/col.scss +25 -0
  114. package/dist/packages/collapseitem/collapseitem.scss +15 -0
  115. package/dist/packages/dialog/dialog.scss +29 -0
  116. package/dist/packages/divider/divider.scss +22 -0
  117. package/dist/packages/elevator/elevator.scss +20 -0
  118. package/dist/packages/ellipsis/ellipsis.scss +1 -0
  119. package/dist/packages/empty/empty.scss +11 -0
  120. package/dist/packages/fixednav/fixednav.scss +75 -0
  121. package/dist/packages/form/form.scss +31 -0
  122. package/dist/packages/formitem/formitem.scss +15 -0
  123. package/dist/packages/grid/grid.scss +8 -0
  124. package/dist/packages/griditem/griditem.scss +37 -0
  125. package/dist/packages/image/image.scss +13 -0
  126. package/dist/packages/imagepreview/imagepreview.scss +26 -0
  127. package/dist/packages/indicator/indicator.scss +15 -0
  128. package/dist/packages/infiniteloading/infiniteloading.scss +13 -0
  129. package/dist/packages/loading/loading.scss +6 -0
  130. package/dist/packages/menu/menu.scss +9 -0
  131. package/dist/packages/menuitem/menuitem.scss +12 -0
  132. package/dist/packages/navbar/navbar.scss +61 -0
  133. package/dist/packages/noticebar/noticebar.scss +22 -0
  134. package/dist/packages/notify/notify.scss +10 -0
  135. package/dist/packages/numberkeyboard/numberkeyboard.scss +27 -0
  136. package/dist/packages/overlay/overlay.scss +6 -0
  137. package/dist/packages/pagination/pagination.scss +24 -0
  138. package/dist/packages/popover/popover.scss +105 -0
  139. package/dist/packages/popup/popup.scss +76 -0
  140. package/dist/packages/price/price.scss +19 -0
  141. package/dist/packages/progress/progress.scss +7 -0
  142. package/dist/packages/pulltorefresh/pulltorefresh.scss +10 -0
  143. package/dist/packages/radio/radio.scss +21 -0
  144. package/dist/packages/range/range.scss +65 -0
  145. package/dist/packages/rate/rate.scss +30 -0
  146. package/dist/packages/safearea/safearea.scss +2 -0
  147. package/dist/packages/searchbar/searchbar.scss +65 -0
  148. package/dist/packages/shortpassword/shortpassword.scss +25 -0
  149. package/dist/packages/sidenavbar/sidenavbar.scss +15 -0
  150. package/dist/packages/skeleton/skeleton.scss +22 -1
  151. package/dist/packages/space/space.scss +30 -0
  152. package/dist/packages/step/step.scss +45 -0
  153. package/dist/packages/swipe/swipe.scss +15 -0
  154. package/dist/packages/swiper/swiper.scss +14 -0
  155. package/dist/packages/switch/switch.scss +13 -0
  156. package/dist/packages/tabbar/tabbar.scss +13 -0
  157. package/dist/packages/tabbaritem/tabbaritem.scss +2 -0
  158. package/dist/packages/table/table.scss +57 -0
  159. package/dist/packages/tabs/tabs.scss +71 -0
  160. package/dist/packages/tag/tag.scss +8 -0
  161. package/dist/packages/textarea/textarea.scss +17 -0
  162. package/dist/packages/timedetail/timedetail.scss +5 -0
  163. package/dist/packages/timeselect/timeselect.scss +5 -0
  164. package/dist/packages/toast/toast.scss +15 -0
  165. package/dist/packages/tour/tour.scss +23 -0
  166. package/dist/packages/trendarrow/trendarrow.scss +13 -0
  167. package/dist/packages/uploader/uploader.scss +36 -0
  168. package/dist/packages/video/video.scss +3 -0
  169. package/dist/packages/virtuallist/virtuallist.scss +11 -0
  170. package/dist/style.css +1 -1
  171. package/dist/style.mjs +1 -1
  172. package/dist/types/packages/backtop/backtop.d.ts +1 -1
  173. package/dist/types/packages/configprovider/configprovider.d.ts +2 -0
  174. package/dist/types/packages/configprovider/configprovider.taro.d.ts +2 -0
  175. package/dist/types/packages/configprovider/index.d.ts +1 -1
  176. package/dist/types/packages/configprovider/index.taro.d.ts +1 -1
  177. package/dist/types/packages/popover/popover.taro.d.ts +7 -0
  178. package/package.json +1 -1
@@ -5,7 +5,7 @@ var __publicField = (obj, key, value) => {
5
5
  return value;
6
6
  };
7
7
  /*!
8
- * @nutui/nutui-react v2.3.8 Fri Jan 26 2024 15:13:59 GMT+0800 (China Standard Time)
8
+ * @nutui/nutui-react v2.3.9 Fri Feb 02 2024 16:13:40 GMT+0800 (China Standard Time)
9
9
  * (c) 2023 @jdf2e.
10
10
  * Released under the MIT License.
11
11
  */
@@ -2379,7 +2379,8 @@ const zhCN = {
2379
2379
  const classPrefix$p = "nut-configprovider";
2380
2380
  const defaultConfigRef = {
2381
2381
  current: {
2382
- locale: zhCN
2382
+ locale: zhCN,
2383
+ direction: "ltr"
2383
2384
  }
2384
2385
  };
2385
2386
  const getDefaultConfig = () => {
@@ -2397,7 +2398,7 @@ function convertThemeVarsToCSSVars(themeVars) {
2397
2398
  return cssVars;
2398
2399
  }
2399
2400
  const ConfigProvider = (props) => {
2400
- const { style, className, children, ...config2 } = props;
2401
+ const { style, className, children, direction, ...config2 } = props;
2401
2402
  const mergedConfig = useMemo(
2402
2403
  () => {
2403
2404
  return {
@@ -2420,8 +2421,10 @@ const ConfigProvider = (props) => {
2420
2421
  className: classNames(classPrefix$p, className),
2421
2422
  style: {
2422
2423
  ...cssVarStyle,
2423
- ...style
2424
- }
2424
+ ...style,
2425
+ direction
2426
+ },
2427
+ dir: direction
2425
2428
  },
2426
2429
  children
2427
2430
  ));
@@ -10881,7 +10884,8 @@ const Popup = (props) => {
10881
10884
  {
10882
10885
  nodeRef,
10883
10886
  classNames: transitionName,
10884
- unmountOnExit: true,
10887
+ mountOnEnter: true,
10888
+ unmountOnExit: destroyOnClose,
10885
10889
  timeout: duration,
10886
10890
  in: innerVisible,
10887
10891
  onEntered: onHandleOpened,
@@ -18387,7 +18391,7 @@ const TextArea = (props) => {
18387
18391
  const textareaRef = useRef(null);
18388
18392
  const compositionRef = useRef(false);
18389
18393
  const format2 = (value2) => {
18390
- if (maxLength !== void 0 && value2.length > maxLength) {
18394
+ if (maxLength !== -1 && value2.length > maxLength) {
18391
18395
  return value2.substring(0, maxLength);
18392
18396
  }
18393
18397
  return value2;
@@ -19826,6 +19830,7 @@ const InfiniteLoading = (props) => {
19826
19830
  if (distance.current < refreshMaxH.current) {
19827
19831
  distance.current = 0;
19828
19832
  getRefreshTop().style.height = `${distance.current}px`;
19833
+ isTouching.current = false;
19829
19834
  } else {
19830
19835
  await (onRefresh == null ? void 0 : onRefresh());
19831
19836
  refreshDone();
@@ -8,7 +8,7 @@ var __publicField = (obj, key, value) => {
8
8
  return value;
9
9
  };
10
10
  /*!
11
- * @nutui/nutui-react v2.3.8 Fri Jan 26 2024 15:13:59 GMT+0800 (China Standard Time)
11
+ * @nutui/nutui-react v2.3.9 Fri Feb 02 2024 16:13:40 GMT+0800 (China Standard Time)
12
12
  * (c) 2023 @jdf2e.
13
13
  * Released under the MIT License.
14
14
  */
@@ -2397,7 +2397,8 @@ Check the top-level render call using <` + t2 + ">.");
2397
2397
  const classPrefix$p = "nut-configprovider";
2398
2398
  const defaultConfigRef = {
2399
2399
  current: {
2400
- locale: zhCN
2400
+ locale: zhCN,
2401
+ direction: "ltr"
2401
2402
  }
2402
2403
  };
2403
2404
  const getDefaultConfig = () => {
@@ -2415,7 +2416,7 @@ Check the top-level render call using <` + t2 + ">.");
2415
2416
  return cssVars;
2416
2417
  }
2417
2418
  const ConfigProvider = (props) => {
2418
- const { style, className, children, ...config2 } = props;
2419
+ const { style, className, children, direction, ...config2 } = props;
2419
2420
  const mergedConfig = useMemo(
2420
2421
  () => {
2421
2422
  return {
@@ -2438,8 +2439,10 @@ Check the top-level render call using <` + t2 + ">.");
2438
2439
  className: classNames(classPrefix$p, className),
2439
2440
  style: {
2440
2441
  ...cssVarStyle,
2441
- ...style
2442
- }
2442
+ ...style,
2443
+ direction
2444
+ },
2445
+ dir: direction
2443
2446
  },
2444
2447
  children
2445
2448
  ));
@@ -10899,7 +10902,8 @@ Please add \`${key}Action\` when creating your handler.`);
10899
10902
  {
10900
10903
  nodeRef,
10901
10904
  classNames: transitionName,
10902
- unmountOnExit: true,
10905
+ mountOnEnter: true,
10906
+ unmountOnExit: destroyOnClose,
10903
10907
  timeout: duration,
10904
10908
  in: innerVisible,
10905
10909
  onEntered: onHandleOpened,
@@ -18405,7 +18409,7 @@ Please add \`${key}Action\` when creating your handler.`);
18405
18409
  const textareaRef = React.useRef(null);
18406
18410
  const compositionRef = React.useRef(false);
18407
18411
  const format2 = (value2) => {
18408
- if (maxLength !== void 0 && value2.length > maxLength) {
18412
+ if (maxLength !== -1 && value2.length > maxLength) {
18409
18413
  return value2.substring(0, maxLength);
18410
18414
  }
18411
18415
  return value2;
@@ -19844,6 +19848,7 @@ Please add \`${key}Action\` when creating your handler.`);
19844
19848
  if (distance.current < refreshMaxH.current) {
19845
19849
  distance.current = 0;
19846
19850
  getRefreshTop().style.height = `${distance.current}px`;
19851
+ isTouching.current = false;
19847
19852
  } else {
19848
19853
  await (onRefresh == null ? void 0 : onRefresh());
19849
19854
  refreshDone();
@@ -49,3 +49,15 @@
49
49
  }
50
50
  }
51
51
  }
52
+
53
+ [dir='rtl'] .nut-address,
54
+ .nut-rtl .nut-address {
55
+ &-exist {
56
+ &-item {
57
+ &-info {
58
+ margin-left: 0;
59
+ margin-right: 9px;
60
+ }
61
+ }
62
+ }
63
+ }
@@ -13,6 +13,7 @@
13
13
  .nut-animate-slide-right {
14
14
  animation-name: slide-right;
15
15
  }
16
+
16
17
  @keyframes slide-right {
17
18
  0% {
18
19
  opacity: 0;
@@ -29,6 +30,7 @@
29
30
  .nut-animate-slide-left {
30
31
  animation-name: slide-left;
31
32
  }
33
+
32
34
  @keyframes slide-left {
33
35
  0% {
34
36
  opacity: 0;
@@ -45,6 +47,7 @@
45
47
  .nut-animate-slide-top {
46
48
  animation-name: slide-top;
47
49
  }
50
+
48
51
  @keyframes slide-top {
49
52
  0% {
50
53
  opacity: 0;
@@ -61,6 +64,7 @@
61
64
  .nut-animate-slide-bottom {
62
65
  animation-name: slide-bottom;
63
66
  }
67
+
64
68
  @keyframes slide-bottom {
65
69
  0% {
66
70
  opacity: 0;
@@ -77,6 +81,7 @@
77
81
  .nut-animate-shake {
78
82
  animation-name: shake;
79
83
  }
84
+
80
85
  @keyframes shake {
81
86
  0%,
82
87
  100% {
@@ -124,10 +129,12 @@
124
129
  .nut-animate-ripple {
125
130
  animation-name: ripple;
126
131
  }
132
+
127
133
  @keyframes ripple {
128
134
  0% {
129
135
  transform: scale(1);
130
136
  }
137
+
131
138
  50% {
132
139
  transform: scale(1.1);
133
140
  }
@@ -140,13 +147,16 @@
140
147
  animation-timing-function: ease-in-out;
141
148
  animation-direction: alternate;
142
149
  }
150
+
143
151
  @keyframes breath {
144
152
  0% {
145
153
  transform: scale(1);
146
154
  }
155
+
147
156
  50% {
148
157
  transform: scale(1.1);
149
158
  }
159
+
150
160
  100% {
151
161
  transform: scale(1);
152
162
  }
@@ -155,6 +165,7 @@
155
165
  // 水波
156
166
  .nut-animate-twinkle {
157
167
  position: relative;
168
+
158
169
  &::after,
159
170
  &::before {
160
171
  width: 60 * 1px;
@@ -176,13 +187,16 @@
176
187
  animation-delay: 0.4s;
177
188
  }
178
189
  }
190
+
179
191
  @keyframes twinkle {
180
192
  0% {
181
193
  transform: scale(0);
182
194
  }
195
+
183
196
  20% {
184
197
  opacity: 1;
185
198
  }
199
+
186
200
  50%,
187
201
  100% {
188
202
  transform: scale(1.4);
@@ -212,10 +226,12 @@
212
226
  filter: blur(3 * 1px);
213
227
  }
214
228
  }
229
+
215
230
  @keyframes flicker {
216
231
  0% {
217
232
  transform: translateX(-100 * 1px) skewX(-20deg);
218
233
  }
234
+
219
235
  40%,
220
236
  100% {
221
237
  transform: translateX(150 * 1px) skewX(-20deg);
@@ -227,23 +243,28 @@
227
243
  transform-origin: center center;
228
244
  animation: jump 0.7s linear;
229
245
  }
246
+
230
247
  @keyframes jump {
231
248
  0% {
232
249
  animation-timing-function: ease-in;
233
250
  transform: rotate(0deg) translateY(0);
234
251
  }
252
+
235
253
  25% {
236
254
  animation-timing-function: ease-out;
237
255
  transform: rotate(10deg) translateY(20 * 1px);
238
256
  }
257
+
239
258
  50% {
240
259
  animation-timing-function: ease-in;
241
260
  transform: rotate(0deg) translateY(-10 * 1px);
242
261
  }
262
+
243
263
  75% {
244
264
  animation-timing-function: ease-out;
245
265
  transform: rotate(-10deg) translateY(20 * 1px);
246
266
  }
267
+
247
268
  100% {
248
269
  animation-timing-function: ease-in;
249
270
  transform: rotate(0deg) translateY(0);
@@ -255,6 +276,7 @@
255
276
  position: relative;
256
277
  animation-name: float-pop;
257
278
  }
279
+
258
280
  @keyframes float-pop {
259
281
  0% {
260
282
  top: 0px;
@@ -282,3 +304,30 @@
282
304
  animation-iteration-count: infinite;
283
305
  }
284
306
  }
307
+
308
+ [dir='rtl'] .nut-animate,
309
+ .nut-rtl .nut-animate {
310
+ .nut-animate-twinkle {
311
+ &::after,
312
+ &::before {
313
+ border-radius: calc(60 / 2) * 1px;
314
+ right: auto;
315
+ left: 50%;
316
+ margin-right: 0;
317
+ margin-left: calc(-60 / 2) * 1px;
318
+ }
319
+ }
320
+
321
+ .nut-animate-flicker {
322
+ &::after {
323
+ left: auto;
324
+ right: 0;
325
+ background-image: linear-gradient(
326
+ -106deg,
327
+ rgba(232, 224, 255, 0) 24%,
328
+ #e8e0ff 91%
329
+ );
330
+ transform: skewX(20deg);
331
+ }
332
+ }
333
+ }
@@ -86,3 +86,17 @@
86
86
  }
87
87
  }
88
88
  }
89
+
90
+ [dir='rtl'] .nut-audio,
91
+ .nut-rtl .nut-audio {
92
+ &-icon {
93
+ .nut-audio-icon-stop {
94
+ &::after {
95
+ left: auto;
96
+ right: 50%;
97
+ transform: rotate(-45deg);
98
+ transform-origin: 20px -18px;
99
+ }
100
+ }
101
+ }
102
+ }
@@ -1,3 +1,4 @@
1
+
1
2
  .nut-avatar {
2
3
  background-size: 100% 100%;
3
4
  background-repeat: no-repeat;
@@ -6,6 +7,7 @@
6
7
  position: relative;
7
8
  flex: 0 0 auto; // 防止被压缩
8
9
  text-align: center;
10
+
9
11
  .avatar-img {
10
12
  position: absolute;
11
13
  width: 100%;
@@ -15,6 +17,7 @@
15
17
  transform: translate(-50%, -50%);
16
18
  flex-shrink: 0;
17
19
  }
20
+
18
21
  .icon {
19
22
  background-size: 100% 100%;
20
23
  position: absolute;
@@ -22,10 +25,12 @@
22
25
  left: 50%;
23
26
  transform: translate(-50%, -50%);
24
27
  }
28
+
25
29
  .nut-icon-img {
26
30
  width: 100%;
27
31
  height: 100%;
28
32
  }
33
+
29
34
  .text {
30
35
  display: inline-block;
31
36
  width: 100%;
@@ -34,25 +39,45 @@
34
39
  overflow: hidden;
35
40
  }
36
41
  }
42
+
43
+ [dir='rtl'] .nut-avatar,
44
+ .nut-rtl .nut-avatar {
45
+ .avatar-img {
46
+ left: auto;
47
+ right: 50%;
48
+ transform: translate(50%, -50%);
49
+ }
50
+
51
+ .icon {
52
+ left: auto;
53
+ right: 50%;
54
+ transform: translate(50%, -50%);
55
+ }
56
+ }
57
+
37
58
  .nut-avatar-large {
38
59
  width: $avatar-large-width;
39
60
  height: $avatar-large-height;
40
61
  line-height: $avatar-large-height;
41
62
  }
63
+
42
64
  .nut-avatar-small {
43
65
  width: $avatar-small-width;
44
66
  height: $avatar-small-height;
45
67
  line-height: $avatar-small-height;
46
68
  }
69
+
47
70
  .nut-avatar-normal {
48
71
  width: $avatar-normal-width;
49
72
  height: $avatar-normal-height;
50
73
  line-height: $avatar-normal-height;
51
74
  }
75
+
52
76
  .nut-avatar-round {
53
77
  border-radius: 50%;
54
78
  overflow: hidden;
55
79
  }
80
+
56
81
  .nut-avatar-square {
57
82
  border-radius: $avatar-square;
58
83
  }
@@ -1,6 +1,7 @@
1
1
  .nut-avatar-cropper {
2
2
  position: relative;
3
3
  display: flex;
4
+
4
5
  &-edit-text {
5
6
  position: absolute;
6
7
  top: 0;
@@ -14,6 +15,7 @@
14
15
  justify-content: center;
15
16
  align-items: center;
16
17
  }
18
+
17
19
  &-input {
18
20
  position: absolute;
19
21
  top: 0;
@@ -24,6 +26,7 @@
24
26
  cursor: pointer;
25
27
  z-index: 2;
26
28
  }
29
+
27
30
  &-popup {
28
31
  position: fixed;
29
32
  top: 0;
@@ -32,6 +35,7 @@
32
35
  height: 100%;
33
36
  background: var(--nut-overlay-bg-color, rgba(0, 0, 0, 0.7));
34
37
  z-index: 1000;
38
+
35
39
  &-canvas,
36
40
  &-cut-canvas {
37
41
  position: absolute;
@@ -41,24 +45,29 @@
41
45
  height: 100%;
42
46
  z-index: 1;
43
47
  }
48
+
44
49
  &-cut-canvas {
45
50
  z-index: 0;
46
51
  }
52
+
47
53
  &-toolbar {
48
54
  position: absolute;
49
55
  bottom: 0;
50
56
  left: 0;
51
57
  width: 100%;
52
58
  z-index: 2;
59
+
53
60
  &.top {
54
61
  top: 0;
55
62
  bottom: inherit;
56
63
  }
64
+
57
65
  &-flex {
58
66
  width: 100%;
59
67
  display: flex;
60
68
  justify-content: space-between;
61
69
  }
70
+
62
71
  &-item {
63
72
  color: #fff;
64
73
  padding: 15px;
@@ -71,6 +80,7 @@
71
80
  }
72
81
  }
73
82
  }
83
+
74
84
  &-highlight {
75
85
  position: absolute;
76
86
  left: 0;
@@ -79,6 +89,7 @@
79
89
  height: 100%;
80
90
  z-index: 1;
81
91
  background-color: transparent;
92
+
82
93
  .highlight {
83
94
  position: absolute;
84
95
  left: 50%;
@@ -89,9 +100,50 @@
89
100
  }
90
101
  }
91
102
  }
103
+
92
104
  &.round {
93
105
  .nut-avatar-cropper-edit-text {
94
106
  border-radius: 50%;
95
107
  }
96
108
  }
97
109
  }
110
+
111
+ [dir='rtl'] .nut-avatar-cropper,
112
+ .nut-rtl .nut-avatar-cropper {
113
+ &-edit-text {
114
+ left: auto;
115
+ right: 0;
116
+ }
117
+
118
+ &-input {
119
+ left: auto;
120
+ right: 0;
121
+ }
122
+
123
+ &-popup {
124
+ left: auto;
125
+ right: 0;
126
+
127
+ &-canvas,
128
+ &-cut-canvas {
129
+ left: auto;
130
+ right: 0;
131
+ }
132
+
133
+ &-toolbar {
134
+ left: auto;
135
+ right: 0;
136
+ }
137
+
138
+ &-highlight {
139
+ left: auto;
140
+ right: 0;
141
+
142
+ .highlight {
143
+ left: auto;
144
+ right: 50%;
145
+ transform: translate(50%, -50%);
146
+ }
147
+ }
148
+ }
149
+ }
@@ -7,8 +7,19 @@
7
7
  flex: 0 0 auto; // 防止被压缩
8
8
  .nut-avatar {
9
9
  border: 1px solid #fff;
10
+
10
11
  &:not(:first-of-type) {
11
12
  margin-left: -8px;
12
13
  }
13
14
  }
14
15
  }
16
+
17
+ [dir='rtl'] .nut-avatar-group,
18
+ .nut-rtl .nut-avatar-group {
19
+ .nut-avatar {
20
+ &:not(:first-of-type) {
21
+ margin-left: 0;
22
+ margin-right: -8px;
23
+ }
24
+ }
25
+ }
@@ -58,3 +58,11 @@
58
58
  padding: 0;
59
59
  }
60
60
  }
61
+
62
+ [dir='rtl'] .nut-badge,
63
+ .nut-rtl .nut-badge {
64
+ &-icon {
65
+ right: auto;
66
+ left: -15%;
67
+ }
68
+ }
@@ -54,3 +54,20 @@
54
54
  }
55
55
  }
56
56
  }
57
+
58
+ [dir='rtl'] .nut-barrage,
59
+ .nut-rtl .nut-barrage {
60
+ left: auto;
61
+ right: 0;
62
+
63
+ .barrage-item {
64
+ right: auto;
65
+ left: 0;
66
+ transform: translateX(-100%);
67
+ background: linear-gradient(
68
+ to left,
69
+ var(--nutui-black-3),
70
+ var(--nutui-black-1)
71
+ );
72
+ }
73
+ }
@@ -327,3 +327,21 @@
327
327
  border-radius: $button-square-border-radius;
328
328
  }
329
329
  }
330
+
331
+ [dir='rtl'] .nut-button,
332
+ .nut-rtl .nut-button {
333
+ &-text {
334
+ margin-left: 0;
335
+ margin-right: $button-text-icon-margin;
336
+
337
+ &.right {
338
+ margin-left: $button-text-icon-margin;
339
+ }
340
+ }
341
+
342
+ &::before {
343
+ left: auto;
344
+ right: 50%;
345
+ transform: translate(50%, -50%);
346
+ }
347
+ }
@@ -183,6 +183,7 @@
183
183
 
184
184
  &-disabled {
185
185
  color: $calendar-disable-color !important;
186
+
186
187
  .nut-calendar-day-info-curr {
187
188
  display: none;
188
189
  }
@@ -222,6 +223,29 @@
222
223
  }
223
224
  }
224
225
 
226
+ [dir='rtl'] .nut-calendar,
227
+ .nut-rtl .nut-calendar {
228
+ &-day {
229
+ float: right;
230
+
231
+ &-active {
232
+ &.active-start {
233
+ border-top-left-radius: 0;
234
+ border-top-right-radius: $calendar-day-active-border-radius;
235
+ border-bottom-left-radius: 0;
236
+ border-bottom-right-radius: $calendar-day-active-border-radius;
237
+ }
238
+
239
+ &.active-end {
240
+ border-top-right-radius: 0;
241
+ border-top-left-radius: $calendar-day-active-border-radius;
242
+ border-bottom-right-radius: 0;
243
+ border-bottom-left-radius: $calendar-day-active-border-radius;
244
+ }
245
+ }
246
+ }
247
+ }
248
+
225
249
  .nut-calendar-popup .nut-popup-title-right {
226
250
  top: 7px !important;
227
251
  }
@@ -23,6 +23,7 @@
23
23
  .left {
24
24
  margin-left: 8px;
25
25
  }
26
+
26
27
  .right {
27
28
  margin-right: 8px;
28
29
  }
@@ -102,3 +103,43 @@
102
103
  }
103
104
  }
104
105
  }
106
+
107
+ [dir='rtl'] .nut-calendarcard,
108
+ .nut-rtl .nut-calendarcard {
109
+ &-header {
110
+ &-left,
111
+ &-right {
112
+ .left {
113
+ margin-left: 0;
114
+ margin-right: 8px;
115
+ }
116
+
117
+ .right {
118
+ margin-right: 0;
119
+ margin-left: 8px;
120
+ }
121
+
122
+ .nut-icon-ArrowLeft,
123
+ .nut-icon-ArrowRight,
124
+ svg {
125
+ transform: rotate(180deg);
126
+ }
127
+ }
128
+ }
129
+
130
+ &-day {
131
+ &.start {
132
+ border-top-left-radius: 0;
133
+ border-top-right-radius: $calendar-day-active-border-radius;
134
+ border-bottom-left-radius: 0;
135
+ border-bottom-right-radius: $calendar-day-active-border-radius;
136
+ }
137
+
138
+ &.end {
139
+ border-top-right-radius: 0;
140
+ border-top-left-radius: $calendar-day-active-border-radius;
141
+ border-bottom-right-radius: 0;
142
+ border-bottom-left-radius: $calendar-day-active-border-radius;
143
+ }
144
+ }
145
+ }