@arco-design/mobile-react 2.19.1 → 2.21.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 (424) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/README.en-US.md +6 -6
  3. package/README.md +6 -6
  4. package/cjs/_helpers/type.d.ts +1 -1
  5. package/cjs/avatar/group.js +1 -1
  6. package/cjs/avatar/index.d.ts +1 -1
  7. package/cjs/avatar/index.js +11 -14
  8. package/cjs/avatar/style/css/index.css +96 -126
  9. package/cjs/avatar/style/index.less +54 -72
  10. package/cjs/badge/index.d.ts +1 -1
  11. package/cjs/badge/index.js +7 -9
  12. package/cjs/badge/style/css/index.css +5 -5
  13. package/cjs/badge/style/index.less +5 -5
  14. package/cjs/button/hooks.d.ts +1 -2
  15. package/cjs/button/hooks.js +5 -3
  16. package/cjs/button/index.d.ts +6 -0
  17. package/cjs/button/index.js +38 -33
  18. package/cjs/button/style/css/index.css +75 -310
  19. package/cjs/button/style/index.less +32 -38
  20. package/cjs/carousel/index.d.ts +1 -1
  21. package/cjs/carousel/index.js +1 -1
  22. package/cjs/cell/index.d.ts +1 -1
  23. package/cjs/cell/index.js +1 -1
  24. package/cjs/checkbox/index.d.ts +1 -1
  25. package/cjs/checkbox/index.js +1 -1
  26. package/cjs/collapse/index.d.ts +1 -1
  27. package/cjs/collapse/index.js +1 -1
  28. package/cjs/count-down/demo/style/mobile.less +1 -1
  29. package/cjs/count-down/index.d.ts +1 -1
  30. package/cjs/count-down/index.js +1 -1
  31. package/cjs/date-picker/index.d.ts +1 -1
  32. package/cjs/date-picker/index.js +1 -1
  33. package/cjs/dropdown/dropdown.d.ts +3 -0
  34. package/cjs/dropdown/dropdown.js +322 -0
  35. package/cjs/dropdown/index.d.ts +3 -4
  36. package/cjs/dropdown/index.js +3 -303
  37. package/cjs/dropdown/options.js +2 -1
  38. package/cjs/dropdown/style/css/index.css +3 -0
  39. package/cjs/dropdown/style/index.less +2 -0
  40. package/cjs/dropdown/type.d.ts +20 -9
  41. package/cjs/dropdown-menu/dropdown-menu.d.ts +4 -0
  42. package/cjs/dropdown-menu/dropdown-menu.js +273 -0
  43. package/cjs/dropdown-menu/helper.d.ts +1 -1
  44. package/cjs/dropdown-menu/index.d.ts +2 -3
  45. package/cjs/dropdown-menu/index.js +2 -245
  46. package/cjs/dropdown-menu/type.d.ts +21 -20
  47. package/cjs/ellipsis/index.d.ts +1 -1
  48. package/cjs/ellipsis/index.js +1 -1
  49. package/cjs/grid/index.js +13 -12
  50. package/cjs/image/index.d.ts +1 -2
  51. package/cjs/image/index.js +14 -9
  52. package/cjs/image/style/css/index.css +2 -1
  53. package/cjs/image/style/index.less +2 -1
  54. package/cjs/image-picker/add-icon.d.ts +2 -0
  55. package/cjs/image-picker/add-icon.js +22 -0
  56. package/cjs/image-picker/demo/style/css/mobile.css +40 -0
  57. package/cjs/image-picker/demo/style/mobile.less +42 -0
  58. package/cjs/image-picker/index.d.ts +13 -0
  59. package/cjs/image-picker/index.js +331 -0
  60. package/cjs/image-picker/style/css/index.css +147 -0
  61. package/cjs/image-picker/style/css/index.d.ts +2 -0
  62. package/cjs/image-picker/style/css/index.js +5 -0
  63. package/cjs/image-picker/style/index.d.ts +2 -0
  64. package/cjs/image-picker/style/index.js +5 -0
  65. package/cjs/image-picker/style/index.less +116 -0
  66. package/cjs/image-picker/type.d.ts +174 -0
  67. package/cjs/image-picker/type.js +3 -0
  68. package/cjs/image-preview/index.d.ts +3 -3
  69. package/cjs/image-preview/index.js +1 -1
  70. package/cjs/index.d.ts +3 -0
  71. package/cjs/index.js +13 -1
  72. package/cjs/input/hooks.js +49 -8
  73. package/cjs/input/index.d.ts +1 -1
  74. package/cjs/input/index.js +1 -1
  75. package/cjs/input/props.d.ts +8 -2
  76. package/cjs/nav-bar/index.js +7 -2
  77. package/cjs/notice-bar/index.d.ts +1 -1
  78. package/cjs/notice-bar/index.js +1 -1
  79. package/cjs/picker/index.d.ts +1 -1
  80. package/cjs/picker/index.js +1 -1
  81. package/cjs/picker-view/index.d.ts +1 -1
  82. package/cjs/picker-view/index.js +1 -1
  83. package/cjs/popover/index.d.ts +1 -1
  84. package/cjs/popover/index.js +1 -1
  85. package/cjs/popup-swiper/index.js +3 -2
  86. package/cjs/radio/index.d.ts +1 -1
  87. package/cjs/radio/index.js +1 -1
  88. package/cjs/rate/index.d.ts +1 -1
  89. package/cjs/rate/index.js +1 -1
  90. package/cjs/search-bar/association.d.ts +3 -0
  91. package/cjs/search-bar/association.js +92 -0
  92. package/cjs/search-bar/cancel-button.d.ts +10 -0
  93. package/cjs/search-bar/cancel-button.js +41 -0
  94. package/cjs/search-bar/demo/style/css/mobile.css +5 -0
  95. package/cjs/search-bar/demo/style/mobile.less +9 -0
  96. package/cjs/search-bar/highlight.d.ts +12 -0
  97. package/cjs/search-bar/highlight.js +77 -0
  98. package/cjs/search-bar/index.d.ts +13 -0
  99. package/cjs/search-bar/index.js +239 -0
  100. package/cjs/search-bar/style/css/index.css +148 -0
  101. package/cjs/search-bar/style/css/index.d.ts +2 -0
  102. package/cjs/search-bar/style/css/index.js +5 -0
  103. package/cjs/search-bar/style/index.d.ts +2 -0
  104. package/cjs/search-bar/style/index.js +5 -0
  105. package/cjs/search-bar/style/index.less +111 -0
  106. package/cjs/search-bar/type.d.ts +163 -0
  107. package/cjs/search-bar/type.js +3 -0
  108. package/cjs/show-monitor/index.js +31 -3
  109. package/cjs/slider/index.d.ts +1 -1
  110. package/cjs/slider/index.js +1 -1
  111. package/cjs/steps/demo/style/css/mobile.css +1 -1
  112. package/cjs/steps/demo/style/mobile.less +1 -1
  113. package/cjs/steps/index.d.ts +1 -1
  114. package/cjs/steps/index.js +1 -1
  115. package/cjs/steps/style/css/index.css +5 -15
  116. package/cjs/steps/style/index.less +6 -10
  117. package/cjs/sticky/index.d.ts +1 -1
  118. package/cjs/style.d.ts +3 -0
  119. package/cjs/style.js +6 -0
  120. package/cjs/swipe-action/demo/style/css/mobile.css +5 -0
  121. package/cjs/swipe-action/demo/style/mobile.less +9 -0
  122. package/cjs/swipe-action/index.d.ts +12 -0
  123. package/cjs/swipe-action/index.js +339 -0
  124. package/cjs/swipe-action/item.d.ts +11 -0
  125. package/cjs/swipe-action/item.js +52 -0
  126. package/cjs/swipe-action/style/css/index.css +88 -0
  127. package/cjs/swipe-action/style/css/index.d.ts +2 -0
  128. package/cjs/swipe-action/style/css/index.js +5 -0
  129. package/cjs/swipe-action/style/index.d.ts +2 -0
  130. package/cjs/swipe-action/style/index.js +5 -0
  131. package/cjs/swipe-action/style/index.less +89 -0
  132. package/cjs/swipe-action/type.d.ts +123 -0
  133. package/cjs/swipe-action/type.js +3 -0
  134. package/cjs/switch/index.d.ts +1 -1
  135. package/cjs/switch/index.js +1 -1
  136. package/cjs/tabs/tab-pane.js +5 -1
  137. package/cjs/tag/index.d.ts +1 -1
  138. package/cjs/tag/index.js +1 -1
  139. package/cjs/textarea/index.d.ts +1 -1
  140. package/cjs/textarea/index.js +1 -1
  141. package/dist/index.js +8040 -6845
  142. package/dist/index.min.js +6 -7
  143. package/dist/style.css +497 -447
  144. package/dist/style.min.css +1 -1
  145. package/esm/_helpers/type.d.ts +1 -1
  146. package/esm/avatar/group.js +1 -1
  147. package/esm/avatar/index.d.ts +1 -1
  148. package/esm/avatar/index.js +11 -14
  149. package/esm/avatar/style/css/index.css +96 -126
  150. package/esm/avatar/style/index.less +54 -72
  151. package/esm/badge/index.d.ts +1 -1
  152. package/esm/badge/index.js +7 -9
  153. package/esm/badge/style/css/index.css +5 -5
  154. package/esm/badge/style/index.less +5 -5
  155. package/esm/button/hooks.d.ts +1 -2
  156. package/esm/button/hooks.js +5 -3
  157. package/esm/button/index.d.ts +6 -0
  158. package/esm/button/index.js +40 -35
  159. package/esm/button/style/css/index.css +75 -310
  160. package/esm/button/style/index.less +32 -38
  161. package/esm/carousel/index.d.ts +1 -1
  162. package/esm/carousel/index.js +1 -1
  163. package/esm/cell/index.d.ts +1 -1
  164. package/esm/cell/index.js +1 -1
  165. package/esm/checkbox/index.d.ts +1 -1
  166. package/esm/checkbox/index.js +1 -1
  167. package/esm/collapse/index.d.ts +1 -1
  168. package/esm/collapse/index.js +1 -1
  169. package/esm/count-down/demo/style/mobile.less +1 -1
  170. package/esm/count-down/index.d.ts +1 -1
  171. package/esm/count-down/index.js +1 -1
  172. package/esm/date-picker/index.d.ts +1 -1
  173. package/esm/date-picker/index.js +1 -1
  174. package/esm/dropdown/dropdown.d.ts +3 -0
  175. package/esm/dropdown/dropdown.js +304 -0
  176. package/esm/dropdown/index.d.ts +3 -4
  177. package/esm/dropdown/index.js +3 -293
  178. package/esm/dropdown/options.js +2 -1
  179. package/esm/dropdown/style/css/index.css +3 -0
  180. package/esm/dropdown/style/index.less +2 -0
  181. package/esm/dropdown/type.d.ts +20 -9
  182. package/esm/dropdown-menu/dropdown-menu.d.ts +4 -0
  183. package/esm/dropdown-menu/dropdown-menu.js +256 -0
  184. package/esm/dropdown-menu/helper.d.ts +1 -1
  185. package/esm/dropdown-menu/index.d.ts +2 -3
  186. package/esm/dropdown-menu/index.js +2 -237
  187. package/esm/dropdown-menu/type.d.ts +21 -20
  188. package/esm/ellipsis/index.d.ts +1 -1
  189. package/esm/ellipsis/index.js +1 -1
  190. package/esm/grid/index.js +13 -12
  191. package/esm/image/index.d.ts +1 -2
  192. package/esm/image/index.js +15 -10
  193. package/esm/image/style/css/index.css +2 -1
  194. package/esm/image/style/index.less +2 -1
  195. package/esm/image-picker/add-icon.d.ts +2 -0
  196. package/esm/image-picker/add-icon.js +14 -0
  197. package/esm/image-picker/demo/style/css/mobile.css +40 -0
  198. package/esm/image-picker/demo/style/mobile.less +42 -0
  199. package/esm/image-picker/index.d.ts +13 -0
  200. package/esm/image-picker/index.js +302 -0
  201. package/esm/image-picker/style/css/index.css +147 -0
  202. package/esm/image-picker/style/css/index.d.ts +2 -0
  203. package/esm/image-picker/style/css/index.js +2 -0
  204. package/esm/image-picker/style/index.d.ts +2 -0
  205. package/esm/image-picker/style/index.js +2 -0
  206. package/esm/image-picker/style/index.less +116 -0
  207. package/esm/image-picker/type.d.ts +174 -0
  208. package/esm/image-picker/type.js +1 -0
  209. package/esm/image-preview/index.d.ts +3 -3
  210. package/esm/image-preview/index.js +1 -1
  211. package/esm/index.d.ts +3 -0
  212. package/esm/index.js +3 -0
  213. package/esm/input/hooks.js +49 -8
  214. package/esm/input/index.d.ts +1 -1
  215. package/esm/input/index.js +1 -1
  216. package/esm/input/props.d.ts +8 -2
  217. package/esm/nav-bar/index.js +6 -2
  218. package/esm/notice-bar/index.d.ts +1 -1
  219. package/esm/notice-bar/index.js +1 -1
  220. package/esm/picker/index.d.ts +1 -1
  221. package/esm/picker/index.js +1 -1
  222. package/esm/picker-view/index.d.ts +1 -1
  223. package/esm/picker-view/index.js +1 -1
  224. package/esm/popover/index.d.ts +1 -1
  225. package/esm/popover/index.js +1 -1
  226. package/esm/popup-swiper/index.js +3 -2
  227. package/esm/radio/index.d.ts +1 -1
  228. package/esm/radio/index.js +1 -1
  229. package/esm/rate/index.d.ts +1 -1
  230. package/esm/rate/index.js +1 -1
  231. package/esm/search-bar/association.d.ts +3 -0
  232. package/esm/search-bar/association.js +82 -0
  233. package/esm/search-bar/cancel-button.d.ts +10 -0
  234. package/esm/search-bar/cancel-button.js +30 -0
  235. package/esm/search-bar/demo/style/css/mobile.css +5 -0
  236. package/esm/search-bar/demo/style/mobile.less +9 -0
  237. package/esm/search-bar/highlight.d.ts +12 -0
  238. package/esm/search-bar/highlight.js +66 -0
  239. package/esm/search-bar/index.d.ts +13 -0
  240. package/esm/search-bar/index.js +213 -0
  241. package/esm/search-bar/style/css/index.css +148 -0
  242. package/esm/search-bar/style/css/index.d.ts +2 -0
  243. package/esm/search-bar/style/css/index.js +2 -0
  244. package/esm/search-bar/style/index.d.ts +2 -0
  245. package/esm/search-bar/style/index.js +2 -0
  246. package/esm/search-bar/style/index.less +111 -0
  247. package/esm/search-bar/type.d.ts +163 -0
  248. package/esm/search-bar/type.js +1 -0
  249. package/esm/show-monitor/index.js +31 -3
  250. package/esm/slider/index.d.ts +1 -1
  251. package/esm/slider/index.js +1 -1
  252. package/esm/steps/demo/style/css/mobile.css +1 -1
  253. package/esm/steps/demo/style/mobile.less +1 -1
  254. package/esm/steps/index.d.ts +1 -1
  255. package/esm/steps/index.js +1 -1
  256. package/esm/steps/style/css/index.css +5 -15
  257. package/esm/steps/style/index.less +6 -10
  258. package/esm/sticky/index.d.ts +1 -1
  259. package/esm/style.d.ts +3 -0
  260. package/esm/style.js +3 -0
  261. package/esm/swipe-action/demo/style/css/mobile.css +5 -0
  262. package/esm/swipe-action/demo/style/mobile.less +9 -0
  263. package/esm/swipe-action/index.d.ts +12 -0
  264. package/esm/swipe-action/index.js +321 -0
  265. package/esm/swipe-action/item.d.ts +11 -0
  266. package/esm/swipe-action/item.js +42 -0
  267. package/esm/swipe-action/style/css/index.css +88 -0
  268. package/esm/swipe-action/style/css/index.d.ts +2 -0
  269. package/esm/swipe-action/style/css/index.js +2 -0
  270. package/esm/swipe-action/style/index.d.ts +2 -0
  271. package/esm/swipe-action/style/index.js +2 -0
  272. package/esm/swipe-action/style/index.less +89 -0
  273. package/esm/swipe-action/type.d.ts +123 -0
  274. package/esm/swipe-action/type.js +1 -0
  275. package/esm/switch/index.d.ts +1 -1
  276. package/esm/switch/index.js +1 -1
  277. package/esm/tabs/tab-pane.js +5 -1
  278. package/esm/tag/index.d.ts +1 -1
  279. package/esm/tag/index.js +1 -1
  280. package/esm/textarea/index.d.ts +1 -1
  281. package/esm/textarea/index.js +1 -1
  282. package/package.json +3 -3
  283. package/tokens/app/arcodesign/default/css-variables.less +53 -3
  284. package/tokens/app/arcodesign/default/index.d.ts +53 -3
  285. package/tokens/app/arcodesign/default/index.js +54 -4
  286. package/tokens/app/arcodesign/default/index.json +629 -39
  287. package/tokens/app/arcodesign/default/index.less +53 -3
  288. package/umd/_helpers/type.d.ts +1 -1
  289. package/umd/avatar/group.js +1 -1
  290. package/umd/avatar/index.d.ts +1 -1
  291. package/umd/avatar/index.js +11 -14
  292. package/umd/avatar/style/css/index.css +96 -126
  293. package/umd/avatar/style/index.less +54 -72
  294. package/umd/badge/index.d.ts +1 -1
  295. package/umd/badge/index.js +7 -9
  296. package/umd/badge/style/css/index.css +5 -5
  297. package/umd/badge/style/index.less +5 -5
  298. package/umd/button/hooks.d.ts +1 -2
  299. package/umd/button/hooks.js +5 -3
  300. package/umd/button/index.d.ts +6 -0
  301. package/umd/button/index.js +38 -33
  302. package/umd/button/style/css/index.css +75 -310
  303. package/umd/button/style/index.less +32 -38
  304. package/umd/carousel/index.d.ts +1 -1
  305. package/umd/carousel/index.js +1 -1
  306. package/umd/cell/index.d.ts +1 -1
  307. package/umd/cell/index.js +1 -1
  308. package/umd/checkbox/index.d.ts +1 -1
  309. package/umd/checkbox/index.js +1 -1
  310. package/umd/collapse/index.d.ts +1 -1
  311. package/umd/collapse/index.js +1 -1
  312. package/umd/count-down/demo/style/mobile.less +1 -1
  313. package/umd/count-down/index.d.ts +1 -1
  314. package/umd/count-down/index.js +1 -1
  315. package/umd/date-picker/index.d.ts +1 -1
  316. package/umd/date-picker/index.js +1 -1
  317. package/umd/dropdown/dropdown.d.ts +3 -0
  318. package/umd/dropdown/dropdown.js +325 -0
  319. package/umd/dropdown/index.d.ts +3 -4
  320. package/umd/dropdown/index.js +5 -298
  321. package/umd/dropdown/options.js +2 -1
  322. package/umd/dropdown/style/css/index.css +3 -0
  323. package/umd/dropdown/style/index.less +2 -0
  324. package/umd/dropdown/type.d.ts +20 -9
  325. package/umd/dropdown-menu/dropdown-menu.d.ts +4 -0
  326. package/umd/dropdown-menu/dropdown-menu.js +278 -0
  327. package/umd/dropdown-menu/helper.d.ts +1 -1
  328. package/umd/dropdown-menu/index.d.ts +2 -3
  329. package/umd/dropdown-menu/index.js +5 -241
  330. package/umd/dropdown-menu/type.d.ts +21 -20
  331. package/umd/ellipsis/index.d.ts +1 -1
  332. package/umd/ellipsis/index.js +1 -1
  333. package/umd/grid/index.js +13 -12
  334. package/umd/image/index.d.ts +1 -2
  335. package/umd/image/index.js +14 -9
  336. package/umd/image/style/css/index.css +2 -1
  337. package/umd/image/style/index.less +2 -1
  338. package/umd/image-picker/add-icon.d.ts +2 -0
  339. package/umd/image-picker/add-icon.js +35 -0
  340. package/umd/image-picker/demo/style/css/mobile.css +40 -0
  341. package/umd/image-picker/demo/style/mobile.less +42 -0
  342. package/umd/image-picker/index.d.ts +13 -0
  343. package/umd/image-picker/index.js +329 -0
  344. package/umd/image-picker/style/css/index.css +147 -0
  345. package/umd/image-picker/style/css/index.d.ts +2 -0
  346. package/umd/image-picker/style/css/index.js +15 -0
  347. package/umd/image-picker/style/index.d.ts +2 -0
  348. package/umd/image-picker/style/index.js +15 -0
  349. package/umd/image-picker/style/index.less +116 -0
  350. package/umd/image-picker/type.d.ts +174 -0
  351. package/umd/image-picker/type.js +17 -0
  352. package/umd/image-preview/index.d.ts +3 -3
  353. package/umd/image-preview/index.js +1 -1
  354. package/umd/index.d.ts +3 -0
  355. package/umd/index.js +11 -5
  356. package/umd/input/hooks.js +48 -7
  357. package/umd/input/index.d.ts +1 -1
  358. package/umd/input/index.js +1 -1
  359. package/umd/input/props.d.ts +8 -2
  360. package/umd/nav-bar/index.js +9 -6
  361. package/umd/notice-bar/index.d.ts +1 -1
  362. package/umd/notice-bar/index.js +1 -1
  363. package/umd/picker/index.d.ts +1 -1
  364. package/umd/picker/index.js +1 -1
  365. package/umd/picker-view/index.d.ts +1 -1
  366. package/umd/picker-view/index.js +1 -1
  367. package/umd/popover/index.d.ts +1 -1
  368. package/umd/popover/index.js +1 -1
  369. package/umd/popup-swiper/index.js +3 -2
  370. package/umd/radio/index.d.ts +1 -1
  371. package/umd/radio/index.js +1 -1
  372. package/umd/rate/index.d.ts +1 -1
  373. package/umd/rate/index.js +1 -1
  374. package/umd/search-bar/association.d.ts +3 -0
  375. package/umd/search-bar/association.js +101 -0
  376. package/umd/search-bar/cancel-button.d.ts +10 -0
  377. package/umd/search-bar/cancel-button.js +52 -0
  378. package/umd/search-bar/demo/style/css/mobile.css +5 -0
  379. package/umd/search-bar/demo/style/mobile.less +9 -0
  380. package/umd/search-bar/highlight.d.ts +12 -0
  381. package/umd/search-bar/highlight.js +87 -0
  382. package/umd/search-bar/index.d.ts +13 -0
  383. package/umd/search-bar/index.js +235 -0
  384. package/umd/search-bar/style/css/index.css +148 -0
  385. package/umd/search-bar/style/css/index.d.ts +2 -0
  386. package/umd/search-bar/style/css/index.js +15 -0
  387. package/umd/search-bar/style/index.d.ts +2 -0
  388. package/umd/search-bar/style/index.js +15 -0
  389. package/umd/search-bar/style/index.less +111 -0
  390. package/umd/search-bar/type.d.ts +163 -0
  391. package/umd/search-bar/type.js +17 -0
  392. package/umd/show-monitor/index.js +31 -3
  393. package/umd/slider/index.d.ts +1 -1
  394. package/umd/slider/index.js +1 -1
  395. package/umd/steps/demo/style/css/mobile.css +1 -1
  396. package/umd/steps/demo/style/mobile.less +1 -1
  397. package/umd/steps/index.d.ts +1 -1
  398. package/umd/steps/index.js +1 -1
  399. package/umd/steps/style/css/index.css +5 -15
  400. package/umd/steps/style/index.less +6 -10
  401. package/umd/sticky/index.d.ts +1 -1
  402. package/umd/style.d.ts +3 -0
  403. package/umd/style.js +4 -4
  404. package/umd/swipe-action/demo/style/css/mobile.css +5 -0
  405. package/umd/swipe-action/demo/style/mobile.less +9 -0
  406. package/umd/swipe-action/index.d.ts +12 -0
  407. package/umd/swipe-action/index.js +342 -0
  408. package/umd/swipe-action/item.d.ts +11 -0
  409. package/umd/swipe-action/item.js +62 -0
  410. package/umd/swipe-action/style/css/index.css +88 -0
  411. package/umd/swipe-action/style/css/index.d.ts +2 -0
  412. package/umd/swipe-action/style/css/index.js +15 -0
  413. package/umd/swipe-action/style/index.d.ts +2 -0
  414. package/umd/swipe-action/style/index.js +15 -0
  415. package/umd/swipe-action/style/index.less +89 -0
  416. package/umd/swipe-action/type.d.ts +123 -0
  417. package/umd/swipe-action/type.js +17 -0
  418. package/umd/switch/index.d.ts +1 -1
  419. package/umd/switch/index.js +1 -1
  420. package/umd/tabs/tab-pane.js +5 -1
  421. package/umd/tag/index.d.ts +1 -1
  422. package/umd/tag/index.js +1 -1
  423. package/umd/textarea/index.d.ts +1 -1
  424. package/umd/textarea/index.js +1 -1
@@ -22,7 +22,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
22
22
  /**
23
23
  * 输入框组件,支持添加前后缀。
24
24
  * @en The input box, supports adding prefixes and suffixes.
25
- * @type 数据输入
25
+ * @type 数据录入
26
26
  * @type_en Data Entry
27
27
  * @name 输入框
28
28
  * @name_en Input
@@ -80,12 +80,12 @@ export interface BasicInputProps<T = HTMLInputElement> {
80
80
  * 输入框头部内容,在输入框外部
81
81
  * @en The content of the header of the input box, outside the input box
82
82
  */
83
- prepend?: React.ReactNode;
83
+ prepend?: React.ReactNode | ((focusing: boolean, inputValue: string) => React.ReactNode);
84
84
  /**
85
85
  * 输入框尾部内容,在输入框外部
86
86
  * @en The content at the end of the input box, outside the input box
87
87
  */
88
- append?: React.ReactNode;
88
+ append?: React.ReactNode | ((focusing: boolean, inputValue: string) => React.ReactNode);
89
89
  /**
90
90
  * 在聚焦之前blur掉,即切换不同input时会重新弹起键盘,常用于input type切换时重新加载键盘,安卓上有效
91
91
  * @en Blur before focusing, that is, the keyboard will be re-bounced when switching between different inputs. It is often used to reload the keyboard when the input type is switched. It is valid on Android.
@@ -102,6 +102,12 @@ export interface BasicInputProps<T = HTMLInputElement> {
102
102
  * @default "focus"
103
103
  */
104
104
  clearShowType?: 'focus' | 'value' | 'always';
105
+ /**
106
+ * 在聚焦模式下点击清除按钮时,是否要屏蔽对应产生的onBlur和onFocus事件
107
+ * @en Whether to block the onBlur and onFocus events generated when the clear button is clicked in focus mode
108
+ * @default true
109
+ */
110
+ preventEventWhenClearing?: boolean;
105
111
  /**
106
112
  * 清除按钮类型,也可自定义
107
113
  * @en Clear button type, also customizable
@@ -15,6 +15,8 @@ var _contextProvider = require("../context-provider");
15
15
 
16
16
  var _backIcon = _interopRequireDefault(require("./back-icon"));
17
17
 
18
+ var _helpers = require("../_helpers");
19
+
18
20
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
21
 
20
22
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -66,8 +68,10 @@ var NavBar = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
66
68
  customStyle = _useState2[0],
67
69
  setCustomStyle = _useState2[1];
68
70
 
71
+ var system = (0, _helpers.useSystem)();
72
+
69
73
  var onElementScroll = function onElementScroll(curOffset) {
70
- setScrollToggleHide(curOffset <= showOffset);
74
+ setScrollToggleHide(curOffset < showOffset);
71
75
 
72
76
  if (getComputedStyleByScroll) {
73
77
  var cstyle = getComputedStyleByScroll(curOffset);
@@ -93,6 +97,7 @@ var NavBar = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
93
97
  (0, _react.useEffect)(function () {
94
98
  var needBind = showOffset || getComputedStyleByScroll;
95
99
  var container = (0, _mobileUtils.getValidScrollContainer)(getScrollContainer);
100
+ handleEleScroll();
96
101
 
97
102
  if (needBind && container) {
98
103
  container.addEventListener('scroll', handleEleScroll, false);
@@ -140,7 +145,7 @@ var NavBar = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
140
145
  background: relBackground
141
146
  } : {})
142
147
  }, /*#__PURE__*/_react.default.createElement("div", {
143
- className: (0, _mobileUtils.cls)(className, prefixCls + "-nav-bar-wrapper", (_cls2 = {}, _cls2[prefixCls + "-nav-bar-wrapper-fixed"] = fixed, _cls2[prefixCls + "-nav-bar-wrapper-border"] = hasBottomLine, _cls2)),
148
+ className: (0, _mobileUtils.cls)(className, system, prefixCls + "-nav-bar-wrapper", (_cls2 = {}, _cls2[prefixCls + "-nav-bar-wrapper-fixed"] = fixed, _cls2[prefixCls + "-nav-bar-wrapper-border"] = hasBottomLine, _cls2)),
144
149
  style: (0, _extends2.default)({
145
150
  paddingTop: statusBarHeight ? statusBarHeight + "px" : ''
146
151
  }, customStyle)
@@ -98,7 +98,7 @@ export interface NoticeBarRef {
98
98
  /**
99
99
  * 可自定义换行或滚动效果,支持循环滚动。
100
100
  * @en Line wrapping or scrolling effects can be customized, and circular scrolling is supported.
101
- * @type 数据展示
101
+ * @type 信息展示
102
102
  * @type_en Data Display
103
103
  * @name 通知栏
104
104
  * @name_en NoticeBar
@@ -20,7 +20,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
20
20
  /**
21
21
  * 可自定义换行或滚动效果,支持循环滚动。
22
22
  * @en Line wrapping or scrolling effects can be customized, and circular scrolling is supported.
23
- * @type 数据展示
23
+ * @type 信息展示
24
24
  * @type_en Data Display
25
25
  * @name 通知栏
26
26
  * @name_en NoticeBar
@@ -38,7 +38,7 @@ export interface PickerRef {
38
38
  /**
39
39
  * 选择器组件,形式是弹起的浮层。
40
40
  * @en The selector component, in the form of a popup layer.
41
- * @type 数据输入
41
+ * @type 数据录入
42
42
  * @type_en Data Entry
43
43
  * @name 选择器
44
44
  * @name_en Picker
@@ -82,7 +82,7 @@ var getInitialValue = function getInitialValue(value, data, cascade) {
82
82
  /**
83
83
  * 选择器组件,形式是弹起的浮层。
84
84
  * @en The selector component, in the form of a popup layer.
85
- * @type 数据输入
85
+ * @type 数据录入
86
86
  * @type_en Data Entry
87
87
  * @name 选择器
88
88
  * @name_en Picker
@@ -45,7 +45,7 @@ export interface PickerViewRef {
45
45
  /**
46
46
  * 选择器视图组件,不含弹窗,方便使用方灵活定制选择器。
47
47
  * @en The picker view component, not has contain popup, which is convenient for the user to flexibly customize the picker.
48
- * @type 数据输入
48
+ * @type 数据录入
49
49
  * @type_en Data Entry
50
50
  * @name 选择器视图
51
51
  * @name_en PickerView
@@ -46,7 +46,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
46
46
  /**
47
47
  * 选择器视图组件,不含弹窗,方便使用方灵活定制选择器。
48
48
  * @en The picker view component, not has contain popup, which is convenient for the user to flexibly customize the picker.
49
- * @type 数据输入
49
+ * @type 数据录入
50
50
  * @type_en Data Entry
51
51
  * @name 选择器视图
52
52
  * @name_en PickerView
@@ -8,7 +8,7 @@ declare const _default: import("react").ForwardRefExoticComponent<Partial<import
8
8
  * @en Bubble card, supports six directions, small arrows are centered in each direction based on the mounted sub-elements, and supports controlled and uncontrolled modes.
9
9
  * @name 气泡卡片
10
10
  * @name_en Popover
11
- * @type 数据展示
11
+ * @type 信息展示
12
12
  * @type_en Data Display
13
13
  */
14
14
  export default _default;
@@ -29,7 +29,7 @@ var Menu = (0, _menu.componentGenerator)(_popover.Popover);
29
29
  * @en Bubble card, supports six directions, small arrows are centered in each direction based on the mounted sub-elements, and supports controlled and uncontrolled modes.
30
30
  * @name 气泡卡片
31
31
  * @name_en Popover
32
- * @type 数据展示
32
+ * @type 信息展示
33
33
  * @type_en Data Display
34
34
  */
35
35
 
@@ -139,13 +139,14 @@ var PopupSwiper = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
139
139
  var movingFromDirec = allowedDirections.includes(fromDirec) ? fromDirec : '';
140
140
  var disDirection = exitDirection || movingFromDirec;
141
141
  var direcValue = ['top', 'bottom'].includes(disDirection) ? 'Y' : 'X';
142
+ var direcRatio = ['bottom', 'right'].includes(disDirection) ? 1 : -1;
142
143
 
143
144
  switch (movingFromDirec) {
144
145
  case 'top':
145
146
  case 'bottom':
146
147
  setDistance({
147
148
  direction: direcValue,
148
- value: Math[movingFromDirec === 'top' ? 'min' : 'max'](0, disY)
149
+ value: Math.abs(disY) * direcRatio
149
150
  });
150
151
  break;
151
152
 
@@ -153,7 +154,7 @@ var PopupSwiper = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
153
154
  case 'right':
154
155
  setDistance({
155
156
  direction: direcValue,
156
- value: Math[movingFromDirec === 'left' ? 'min' : 'max'](0, disX)
157
+ value: Math.abs(disX) * direcRatio
157
158
  });
158
159
  break;
159
160
 
@@ -8,7 +8,7 @@ declare const _default: import("react").ForwardRefExoticComponent<import("./type
8
8
  * @en Radio button, click to switch selection when available, supports disabled state and radio option group.
9
9
  * @name 单选框
10
10
  * @name_en Radio
11
- * @type 数据输入
11
+ * @type 数据录入
12
12
  * @type_en Data Entry
13
13
  */
14
14
  export default _default;
@@ -29,7 +29,7 @@ var Group = (0, _group.componentGenerator)(_radio.Radio);
29
29
  * @en Radio button, click to switch selection when available, supports disabled state and radio option group.
30
30
  * @name 单选框
31
31
  * @name_en Radio
32
- * @type 数据输入
32
+ * @type 数据录入
33
33
  * @type_en Data Entry
34
34
  */
35
35
 
@@ -97,7 +97,7 @@ export interface RateRef {
97
97
  /**
98
98
  * 评分组件,支持受控模式
99
99
  * @en Rate component, supports controlled mode
100
- * @type 数据输入
100
+ * @type 数据录入
101
101
  * @type_en Data Entry
102
102
  * @name 评分
103
103
  * @name_en Rate
package/cjs/rate/index.js CHANGED
@@ -24,7 +24,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
24
24
  /**
25
25
  * 评分组件,支持受控模式
26
26
  * @en Rate component, supports controlled mode
27
- * @type 数据输入
27
+ * @type 数据录入
28
28
  * @type_en Data Entry
29
29
  * @name 评分
30
30
  * @name_en Rate
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ import { SearchBarAssociationProps } from './type';
3
+ export declare function SearchBarAssociation<Data>(props: SearchBarAssociationProps<Data>): JSX.Element;
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.SearchBarAssociation = SearchBarAssociation;
7
+
8
+ var _mobileUtils = require("@arco-design/mobile-utils");
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _highlight = require("./highlight");
13
+
14
+ function SearchBarAssociation(props) {
15
+ var _cls;
16
+
17
+ var prefixCls = props.prefixCls,
18
+ _props$associationIte = props.associationItems,
19
+ associationItems = _props$associationIte === void 0 ? [] : _props$associationIte,
20
+ highlightClassName = props.highlightClassName,
21
+ _props$highlightMode = props.highlightMode,
22
+ highlightMode = _props$highlightMode === void 0 ? 'none' : _props$highlightMode,
23
+ highlightStyle = props.highlightStyle,
24
+ onAssociationClick = props.onAssociationClick,
25
+ onAssociationItemClick = props.onAssociationItemClick,
26
+ renderAssociation = props.renderAssociation,
27
+ renderAssociationItem = props.renderAssociationItem,
28
+ keyword = props.keyword,
29
+ visible = props.visible;
30
+ var searchBarAssociationPrefixCls = prefixCls + "-association";
31
+ var defaultHighlightClassName = searchBarAssociationPrefixCls + "-item-highlight";
32
+
33
+ var renderHighlightNode = function renderHighlightNode(content) {
34
+ if (!content || !keyword || highlightMode === 'none') {
35
+ return content;
36
+ }
37
+
38
+ var config = {
39
+ keyword: keyword,
40
+ content: content,
41
+ highlightClassName: highlightClassName || defaultHighlightClassName,
42
+ highlightStyle: highlightStyle
43
+ };
44
+
45
+ if (highlightMode === 'contain') {
46
+ return (0, _highlight.highlightWithContainMode)(config);
47
+ }
48
+
49
+ if (highlightMode === 'prefix') {
50
+ return (0, _highlight.highlightWithPrefixMode)(config);
51
+ }
52
+
53
+ return typeof highlightMode === 'function' ? highlightMode(content, keyword, defaultHighlightClassName) : content;
54
+ };
55
+
56
+ var renderItem = function renderItem(item, index) {
57
+ var itemContent = item.content;
58
+ var node = itemContent; // itemContent为string类型,并且开启高亮模式才去走渲染高亮内容的逻辑
59
+ // @en When `itemContent` is a string, and the highlight mode is turned on, the logic of rendering the highlighted content is performed
60
+
61
+ if (typeof itemContent === 'string' && highlightMode !== 'none') {
62
+ node = renderHighlightNode(itemContent);
63
+ }
64
+
65
+ if (renderAssociationItem) {
66
+ node = renderAssociationItem(item, index, node);
67
+ }
68
+
69
+ return /*#__PURE__*/_react.default.createElement("div", {
70
+ key: index,
71
+ className: searchBarAssociationPrefixCls + "-item",
72
+ onClick: function onClick() {
73
+ return onAssociationItemClick == null ? void 0 : onAssociationItemClick(item, index);
74
+ }
75
+ }, node);
76
+ };
77
+
78
+ var renderContent = function renderContent() {
79
+ var associationContent = associationItems.map(renderItem);
80
+
81
+ if (renderAssociation) {
82
+ return renderAssociation(associationContent);
83
+ }
84
+
85
+ return associationContent;
86
+ };
87
+
88
+ return /*#__PURE__*/_react.default.createElement("div", {
89
+ className: (0, _mobileUtils.cls)(searchBarAssociationPrefixCls, (_cls = {}, _cls[searchBarAssociationPrefixCls + "-visible"] = visible, _cls)),
90
+ onClick: onAssociationClick
91
+ }, renderContent());
92
+ }
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ interface CancelButtonProps {
3
+ className: string;
4
+ onCancel?: () => void;
5
+ focusing: boolean;
6
+ currentInputValue: string;
7
+ text?: string;
8
+ }
9
+ export declare function CancelButton(props: CancelButtonProps): JSX.Element | null;
10
+ export {};
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.CancelButton = CancelButton;
5
+
6
+ var _mobileUtils = require("@arco-design/mobile-utils");
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
11
+
12
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
13
+
14
+ function CancelButton(props) {
15
+ var className = props.className,
16
+ onCancel = props.onCancel,
17
+ focusing = props.focusing,
18
+ currentInputValue = props.currentInputValue,
19
+ text = props.text;
20
+
21
+ var _useState = (0, _react.useState)(focusing || Boolean(currentInputValue)),
22
+ visible = _useState[0],
23
+ setVisible = _useState[1];
24
+
25
+ var handleClick = function handleClick() {
26
+ onCancel == null ? void 0 : onCancel(); // 如果不延迟,在聚焦切输入框有值的情况下,点击取消按钮会造成闪烁
27
+ // @en If there is no delay, when the focus cut input box has a value, clicking the cancel button will cause flickering
28
+
29
+ (0, _mobileUtils.nextTick)(function () {
30
+ setVisible(false);
31
+ });
32
+ };
33
+
34
+ (0, _react.useEffect)(function () {
35
+ setVisible(focusing || Boolean(currentInputValue));
36
+ }, [focusing, currentInputValue]);
37
+ return visible ? /*#__PURE__*/_react.default.createElement("span", {
38
+ className: className,
39
+ onClick: handleClick
40
+ }, text) : null;
41
+ }
@@ -0,0 +1,5 @@
1
+ #demo-search-bar .arcodesign-mobile-demo-content {
2
+ padding: 0;
3
+ background: transparent;
4
+ font-size: 0.32rem;
5
+ }
@@ -0,0 +1,9 @@
1
+ @import '../../../../style/mixin.less';
2
+
3
+ #demo-search-bar {
4
+ .arcodesign-mobile-demo-content {
5
+ padding: 0;
6
+ background: transparent;
7
+ .rem(font-size, 16)
8
+ }
9
+ }
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { SearchBarAssociationHighlightConfig } from './type';
3
+ /**
4
+ * 高亮搜索候选项中,包含的关键字
5
+ *
6
+ */
7
+ export declare function highlightWithContainMode(config: SearchBarAssociationHighlightConfig): React.ReactNode[];
8
+ /**
9
+ * 高亮搜索候选项和关键字的最长前缀公共字符串
10
+ *
11
+ */
12
+ export declare function highlightWithPrefixMode(config: SearchBarAssociationHighlightConfig): string | (string | JSX.Element)[];
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.highlightWithContainMode = highlightWithContainMode;
7
+ exports.highlightWithPrefixMode = highlightWithPrefixMode;
8
+
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+
11
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
12
+
13
+ var _react = _interopRequireDefault(require("react"));
14
+
15
+ var _excluded = ["content", "keyword"];
16
+
17
+ function createHighlightNode(config, index) {
18
+ var keyword = config.keyword,
19
+ highlightClassName = config.highlightClassName,
20
+ highlightStyle = config.highlightStyle;
21
+ return /*#__PURE__*/_react.default.createElement("span", {
22
+ className: highlightClassName,
23
+ style: highlightStyle,
24
+ key: index
25
+ }, keyword);
26
+ }
27
+ /**
28
+ * 高亮搜索候选项中,包含的关键字
29
+ *
30
+ */
31
+
32
+
33
+ function highlightWithContainMode(config) {
34
+ var _config$content = config.content,
35
+ content = _config$content === void 0 ? '' : _config$content,
36
+ _config$keyword = config.keyword,
37
+ keyword = _config$keyword === void 0 ? '' : _config$keyword; // 具体实现思路就是将keyword作为split的分隔符,切割content得到数组
38
+
39
+ var splitContent = content.split(keyword); // 再将高亮后的keyword节点,插空填入数组
40
+
41
+ var highlightResult = splitContent.reduce(function (prev, word, index) {
42
+ prev.push(word);
43
+
44
+ if (index !== splitContent.length - 1) {
45
+ prev.push(createHighlightNode(config, index));
46
+ }
47
+
48
+ return prev;
49
+ }, []);
50
+ return highlightResult;
51
+ }
52
+ /**
53
+ * 高亮搜索候选项和关键字的最长前缀公共字符串
54
+ *
55
+ */
56
+
57
+
58
+ function highlightWithPrefixMode(config) {
59
+ var _config$content2 = config.content,
60
+ content = _config$content2 === void 0 ? '' : _config$content2,
61
+ _config$keyword2 = config.keyword,
62
+ keyword = _config$keyword2 === void 0 ? '' : _config$keyword2,
63
+ otherConfig = (0, _objectWithoutPropertiesLoose2.default)(config, _excluded);
64
+ var splitIndex = -1;
65
+
66
+ for (var i = 0; i < keyword.length; i++) {
67
+ if (i >= content.length || content[i] !== keyword[i]) {
68
+ break;
69
+ }
70
+
71
+ splitIndex = i;
72
+ }
73
+
74
+ return splitIndex > -1 ? [createHighlightNode((0, _extends2.default)({}, otherConfig, {
75
+ keyword: content.substring(0, splitIndex + 1)
76
+ }), 0), content.substring(splitIndex + 1)] : content;
77
+ }
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { SearchAssociationBaseItem, SearchBarProps, SearchBarRef } from './type';
3
+ export { SearchBarProps, SearchBarRef, SearchAssociationHighlightMode, SearchAssociationItem, SearchAssociationShowType, SearchBarShape, } from './type';
4
+ /**
5
+ * 搜索栏组件
6
+ * @en SearchBar component
7
+ * @type 数据录入
8
+ * @type_en Data Entry
9
+ * @name 搜索栏
10
+ * @name_en SearchBar
11
+ */
12
+ declare const SearchBar: React.ForwardRefExoticComponent<SearchBarProps<SearchAssociationBaseItem> & React.RefAttributes<SearchBarRef>>;
13
+ export default SearchBar;