@seakoi/native-ui 1.1.3 → 1.3.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 (376) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/dist/commonjs/components/base/carousel/carousel-indicator.js +56 -0
  3. package/dist/commonjs/components/base/carousel/carousel-slides.js +140 -0
  4. package/dist/commonjs/components/base/carousel/carousel.js +114 -122
  5. package/dist/commonjs/components/base/carousel/hooks/index.js +0 -14
  6. package/dist/commonjs/components/base/carousel/hooks/use-carousel-index.js +16 -13
  7. package/dist/commonjs/components/base/carousel/hooks/use-carousel-lifecycle.js +6 -2
  8. package/dist/commonjs/components/base/carousel/hooks/use-carousel-pan-responder.js +40 -12
  9. package/dist/commonjs/components/base/carousel/hooks/use-carousel-position.js +6 -2
  10. package/dist/commonjs/components/base/carousel/index.js +1 -15
  11. package/dist/commonjs/components/base/carousel/style/index.js +12 -0
  12. package/dist/commonjs/components/base/date-picker/date-picker.js +56 -44
  13. package/dist/commonjs/components/base/date-picker/date-range-picker.js +142 -50
  14. package/dist/commonjs/components/base/date-picker/style/index.js +15 -0
  15. package/dist/commonjs/components/base/date-picker-view/date-picker-view.js +19 -53
  16. package/dist/commonjs/components/base/date-picker-view/index.js +0 -22
  17. package/dist/commonjs/components/base/index.js +53 -9
  18. package/dist/commonjs/components/base/input/base-input.js +4 -2
  19. package/dist/commonjs/components/base/overflow/all-mode-overflow.js +49 -0
  20. package/dist/commonjs/components/base/overflow/fixed-count-overflow.js +70 -0
  21. package/dist/commonjs/components/base/overflow/index.js +16 -0
  22. package/dist/commonjs/components/base/overflow/overflow.js +72 -0
  23. package/dist/commonjs/components/base/overflow/responsive-overflow.js +280 -0
  24. package/dist/commonjs/components/base/overflow/style/index.js +39 -0
  25. package/dist/commonjs/components/base/overflow/types.js +5 -0
  26. package/dist/commonjs/components/base/picker/index.js +26 -4
  27. package/dist/commonjs/components/base/picker/picker-content.js +64 -0
  28. package/dist/commonjs/components/base/picker/picker-context.js +9 -0
  29. package/dist/commonjs/components/base/picker/picker-field.js +39 -0
  30. package/dist/commonjs/components/base/picker/picker.js +26 -95
  31. package/dist/commonjs/components/base/picker/style/index.js +8 -4
  32. package/dist/commonjs/components/base/picker-backup/base-picker-container.js +50 -0
  33. package/dist/commonjs/components/base/picker-backup/index.js +27 -0
  34. package/dist/commonjs/components/base/picker-backup/picker-backup.js +75 -0
  35. package/dist/commonjs/components/base/picker-backup/picker-copy.js +106 -0
  36. package/dist/commonjs/components/base/{picker → picker-backup}/picker-trigger.js +5 -5
  37. package/dist/commonjs/components/base/picker-backup/style/index.js +19 -0
  38. package/dist/commonjs/components/base/picker-backup/utils.js +53 -0
  39. package/dist/commonjs/components/base/picker-view/picker-view-column.js +15 -0
  40. package/dist/commonjs/components/base/picker-view/picker-view.js +4 -4
  41. package/dist/commonjs/components/base/portal/portal-host.js +5 -3
  42. package/dist/commonjs/components/base/select/hooks/use-select-actions.js +155 -0
  43. package/dist/commonjs/components/base/select/hooks/use-select-options.js +169 -0
  44. package/dist/commonjs/components/base/select/hooks/use-selector.js +104 -0
  45. package/dist/commonjs/components/base/select/index.js +16 -0
  46. package/dist/commonjs/components/base/select/select-multiple-content.js +182 -0
  47. package/dist/commonjs/components/base/select/select-popup.js +233 -0
  48. package/dist/commonjs/components/base/select/select-single-content.js +100 -0
  49. package/dist/commonjs/components/base/select/select-suffix.js +67 -0
  50. package/dist/commonjs/components/base/select/select.js +285 -0
  51. package/dist/commonjs/components/base/select/style/index.js +40 -0
  52. package/dist/commonjs/components/base/select/style/select-multiple-content-styles.js +46 -0
  53. package/dist/commonjs/components/base/select/style/select-popup-styles.js +67 -0
  54. package/dist/commonjs/components/base/select/style/select-single-content-styles.js +28 -0
  55. package/dist/commonjs/components/base/select/style/select-styles.js +46 -0
  56. package/dist/commonjs/components/base/select/style/select-suffix-styles.js +21 -0
  57. package/dist/commonjs/components/base/select/types.js +5 -0
  58. package/dist/commonjs/components/base/tabs/style/index.js +37 -0
  59. package/dist/commonjs/components/base/tabs/tabs.js +90 -45
  60. package/dist/commonjs/components/base/tag/index.js +20 -0
  61. package/dist/commonjs/components/base/tag/style/index.js +89 -0
  62. package/dist/commonjs/components/base/tag/tag-context.js +12 -0
  63. package/dist/commonjs/components/base/tag/tag-group.js +35 -0
  64. package/dist/commonjs/components/base/tag/tag.js +47 -0
  65. package/dist/commonjs/components/base/tag/types.js +5 -0
  66. package/dist/commonjs/native-provider/native-provider.js +5 -5
  67. package/dist/commonjs/shared/utils/index.js +11 -0
  68. package/dist/commonjs/shared/utils/object.js +39 -0
  69. package/dist/module/components/base/carousel/carousel-indicator.js +51 -0
  70. package/dist/module/components/base/carousel/carousel-slides.js +135 -0
  71. package/dist/module/components/base/carousel/carousel.js +116 -124
  72. package/dist/module/components/base/carousel/hooks/index.js +0 -2
  73. package/dist/module/components/base/carousel/hooks/use-carousel-index.js +15 -11
  74. package/dist/module/components/base/carousel/hooks/use-carousel-lifecycle.js +6 -2
  75. package/dist/module/components/base/carousel/hooks/use-carousel-pan-responder.js +40 -11
  76. package/dist/module/components/base/carousel/hooks/use-carousel-position.js +5 -1
  77. package/dist/module/components/base/carousel/index.js +1 -5
  78. package/dist/module/components/base/carousel/style/index.js +12 -0
  79. package/dist/module/components/base/date-picker/date-picker.js +60 -48
  80. package/dist/module/components/base/date-picker/date-range-picker.js +146 -54
  81. package/dist/module/components/base/date-picker/style/index.js +11 -0
  82. package/dist/module/components/base/date-picker-view/date-picker-view.js +23 -57
  83. package/dist/module/components/base/date-picker-view/index.js +1 -3
  84. package/dist/module/components/base/index.js +4 -0
  85. package/dist/module/components/base/input/base-input.js +4 -2
  86. package/dist/module/components/base/overflow/all-mode-overflow.js +43 -0
  87. package/dist/module/components/base/overflow/fixed-count-overflow.js +64 -0
  88. package/dist/module/components/base/overflow/index.js +3 -0
  89. package/dist/module/components/base/overflow/overflow.js +66 -0
  90. package/dist/module/components/base/overflow/responsive-overflow.js +274 -0
  91. package/dist/module/components/base/overflow/style/index.js +36 -0
  92. package/dist/module/components/base/overflow/types.js +3 -0
  93. package/dist/module/components/base/picker/index.js +9 -1
  94. package/dist/module/components/base/picker/picker-content.js +58 -0
  95. package/dist/module/components/base/picker/picker-context.js +4 -0
  96. package/dist/module/components/base/picker/picker-field.js +34 -0
  97. package/dist/module/components/base/picker/picker.js +29 -98
  98. package/dist/module/components/base/picker/style/index.js +7 -3
  99. package/dist/module/components/base/picker-backup/base-picker-container.js +44 -0
  100. package/dist/module/components/base/picker-backup/index.js +4 -0
  101. package/dist/module/components/base/picker-backup/picker-backup.js +69 -0
  102. package/dist/module/components/base/picker-backup/picker-copy.js +101 -0
  103. package/dist/module/components/base/{picker → picker-backup}/picker-trigger.js +2 -2
  104. package/dist/module/components/base/picker-backup/style/index.js +15 -0
  105. package/dist/module/components/base/picker-backup/utils.js +48 -0
  106. package/dist/module/components/base/picker-view/picker-view-column.js +15 -0
  107. package/dist/module/components/base/picker-view/picker-view.js +4 -4
  108. package/dist/module/components/base/portal/portal-host.js +4 -3
  109. package/dist/module/components/base/select/hooks/use-select-actions.js +151 -0
  110. package/dist/module/components/base/select/hooks/use-select-options.js +162 -0
  111. package/dist/module/components/base/select/hooks/use-selector.js +100 -0
  112. package/dist/module/components/base/select/index.js +3 -0
  113. package/dist/module/components/base/select/select-multiple-content.js +176 -0
  114. package/dist/module/components/base/select/select-popup.js +227 -0
  115. package/dist/module/components/base/select/select-single-content.js +94 -0
  116. package/dist/module/components/base/select/select-suffix.js +61 -0
  117. package/dist/module/components/base/select/select.js +279 -0
  118. package/dist/module/components/base/select/style/index.js +7 -0
  119. package/dist/module/components/base/select/style/select-multiple-content-styles.js +43 -0
  120. package/dist/module/components/base/select/style/select-popup-styles.js +64 -0
  121. package/dist/module/components/base/select/style/select-single-content-styles.js +25 -0
  122. package/dist/module/components/base/select/style/select-styles.js +43 -0
  123. package/dist/module/components/base/select/style/select-suffix-styles.js +18 -0
  124. package/dist/module/components/base/select/types.js +3 -0
  125. package/dist/module/components/base/tabs/style/index.js +33 -0
  126. package/dist/module/components/base/tabs/tabs.js +92 -47
  127. package/dist/module/components/base/tag/index.js +5 -0
  128. package/dist/module/components/base/tag/style/index.js +85 -0
  129. package/dist/module/components/base/tag/tag-context.js +8 -0
  130. package/dist/module/components/base/tag/tag-group.js +29 -0
  131. package/dist/module/components/base/tag/tag.js +41 -0
  132. package/dist/module/components/base/tag/types.js +3 -0
  133. package/dist/module/native-provider/native-provider.js +5 -5
  134. package/dist/module/shared/utils/index.js +2 -1
  135. package/dist/module/shared/utils/object.js +35 -0
  136. package/dist/typescript/components/base/carousel/carousel-indicator.d.ts +42 -0
  137. package/dist/typescript/components/base/carousel/carousel-indicator.d.ts.map +1 -0
  138. package/dist/typescript/components/base/carousel/carousel-slides.d.ts +49 -0
  139. package/dist/typescript/components/base/carousel/carousel-slides.d.ts.map +1 -0
  140. package/dist/typescript/components/base/carousel/carousel.d.ts +16 -11
  141. package/dist/typescript/components/base/carousel/carousel.d.ts.map +1 -1
  142. package/dist/typescript/components/base/carousel/hooks/index.d.ts +0 -2
  143. package/dist/typescript/components/base/carousel/hooks/index.d.ts.map +1 -1
  144. package/dist/typescript/components/base/carousel/hooks/use-carousel-index.d.ts.map +1 -1
  145. package/dist/typescript/components/base/carousel/hooks/use-carousel-lifecycle.d.ts.map +1 -1
  146. package/dist/typescript/components/base/carousel/hooks/use-carousel-pan-responder.d.ts.map +1 -1
  147. package/dist/typescript/components/base/carousel/hooks/use-carousel-position.d.ts.map +1 -1
  148. package/dist/typescript/components/base/carousel/index.d.ts +1 -4
  149. package/dist/typescript/components/base/carousel/index.d.ts.map +1 -1
  150. package/dist/typescript/components/base/carousel/style/index.d.ts +12 -0
  151. package/dist/typescript/components/base/carousel/style/index.d.ts.map +1 -1
  152. package/dist/typescript/components/base/carousel/types.d.ts +8 -17
  153. package/dist/typescript/components/base/carousel/types.d.ts.map +1 -1
  154. package/dist/typescript/components/base/date-picker/date-picker.d.ts +4 -2
  155. package/dist/typescript/components/base/date-picker/date-picker.d.ts.map +1 -1
  156. package/dist/typescript/components/base/date-picker/date-range-picker.d.ts +12 -3
  157. package/dist/typescript/components/base/date-picker/date-range-picker.d.ts.map +1 -1
  158. package/dist/typescript/components/base/date-picker/style/index.d.ts +9 -0
  159. package/dist/typescript/components/base/date-picker/style/index.d.ts.map +1 -0
  160. package/dist/typescript/components/base/date-picker-view/date-picker-view.d.ts +1 -6
  161. package/dist/typescript/components/base/date-picker-view/date-picker-view.d.ts.map +1 -1
  162. package/dist/typescript/components/base/date-picker-view/index.d.ts +0 -2
  163. package/dist/typescript/components/base/date-picker-view/index.d.ts.map +1 -1
  164. package/dist/typescript/components/base/date-picker-view/types.d.ts +1 -1
  165. package/dist/typescript/components/base/index.d.ts +4 -0
  166. package/dist/typescript/components/base/index.d.ts.map +1 -1
  167. package/dist/typescript/components/base/input/base-input.d.ts.map +1 -1
  168. package/dist/typescript/components/base/overflow/all-mode-overflow.d.ts +11 -0
  169. package/dist/typescript/components/base/overflow/all-mode-overflow.d.ts.map +1 -0
  170. package/dist/typescript/components/base/overflow/fixed-count-overflow.d.ts +11 -0
  171. package/dist/typescript/components/base/overflow/fixed-count-overflow.d.ts.map +1 -0
  172. package/dist/typescript/components/base/overflow/index.d.ts +3 -0
  173. package/dist/typescript/components/base/overflow/index.d.ts.map +1 -0
  174. package/dist/typescript/components/base/overflow/overflow.d.ts +13 -0
  175. package/dist/typescript/components/base/overflow/overflow.d.ts.map +1 -0
  176. package/dist/typescript/components/base/overflow/responsive-overflow.d.ts +12 -0
  177. package/dist/typescript/components/base/overflow/responsive-overflow.d.ts.map +1 -0
  178. package/dist/typescript/components/base/overflow/style/index.d.ts +31 -0
  179. package/dist/typescript/components/base/overflow/style/index.d.ts.map +1 -0
  180. package/dist/typescript/components/base/overflow/types.d.ts +77 -0
  181. package/dist/typescript/components/base/overflow/types.d.ts.map +1 -0
  182. package/dist/typescript/components/base/picker/index.d.ts +7 -1
  183. package/dist/typescript/components/base/picker/index.d.ts.map +1 -1
  184. package/dist/typescript/components/base/picker/picker-content.d.ts +27 -0
  185. package/dist/typescript/components/base/picker/picker-content.d.ts.map +1 -0
  186. package/dist/typescript/components/base/picker/picker-context.d.ts +18 -0
  187. package/dist/typescript/components/base/picker/picker-context.d.ts.map +1 -0
  188. package/dist/typescript/components/base/picker/picker-field.d.ts +10 -0
  189. package/dist/typescript/components/base/picker/picker-field.d.ts.map +1 -0
  190. package/dist/typescript/components/base/picker/picker.d.ts +22 -11
  191. package/dist/typescript/components/base/picker/picker.d.ts.map +1 -1
  192. package/dist/typescript/components/base/picker/style/index.d.ts +6 -2
  193. package/dist/typescript/components/base/picker/style/index.d.ts.map +1 -1
  194. package/dist/typescript/components/base/picker-backup/base-picker-container.d.ts +15 -0
  195. package/dist/typescript/components/base/picker-backup/base-picker-container.d.ts.map +1 -0
  196. package/dist/typescript/components/base/picker-backup/index.d.ts +3 -0
  197. package/dist/typescript/components/base/picker-backup/index.d.ts.map +1 -0
  198. package/dist/typescript/components/base/picker-backup/picker-backup.d.ts +26 -0
  199. package/dist/typescript/components/base/picker-backup/picker-backup.d.ts.map +1 -0
  200. package/dist/typescript/components/base/picker-backup/picker-copy.d.ts +13 -0
  201. package/dist/typescript/components/base/picker-backup/picker-copy.d.ts.map +1 -0
  202. package/dist/typescript/components/base/picker-backup/picker-trigger.d.ts.map +1 -0
  203. package/dist/typescript/components/base/picker-backup/style/index.d.ts +13 -0
  204. package/dist/typescript/components/base/picker-backup/style/index.d.ts.map +1 -0
  205. package/dist/typescript/components/base/picker-backup/utils.d.ts +8 -0
  206. package/dist/typescript/components/base/picker-backup/utils.d.ts.map +1 -0
  207. package/dist/typescript/components/base/picker-view/picker-view-column.d.ts.map +1 -1
  208. package/dist/typescript/components/base/picker-view/utils/picker.d.ts +3 -3
  209. package/dist/typescript/components/base/picker-view/utils/picker.d.ts.map +1 -1
  210. package/dist/typescript/components/base/portal/portal-host.d.ts +1 -0
  211. package/dist/typescript/components/base/portal/portal-host.d.ts.map +1 -1
  212. package/dist/typescript/components/base/portal/types.d.ts +2 -0
  213. package/dist/typescript/components/base/portal/types.d.ts.map +1 -1
  214. package/dist/typescript/components/base/select/hooks/use-select-actions.d.ts +144 -0
  215. package/dist/typescript/components/base/select/hooks/use-select-actions.d.ts.map +1 -0
  216. package/dist/typescript/components/base/select/hooks/use-select-options.d.ts +91 -0
  217. package/dist/typescript/components/base/select/hooks/use-select-options.d.ts.map +1 -0
  218. package/dist/typescript/components/base/select/hooks/use-selector.d.ts +90 -0
  219. package/dist/typescript/components/base/select/hooks/use-selector.d.ts.map +1 -0
  220. package/dist/typescript/components/base/select/index.d.ts +3 -0
  221. package/dist/typescript/components/base/select/index.d.ts.map +1 -0
  222. package/dist/typescript/components/base/select/select-multiple-content.d.ts +51 -0
  223. package/dist/typescript/components/base/select/select-multiple-content.d.ts.map +1 -0
  224. package/dist/typescript/components/base/select/select-popup.d.ts +107 -0
  225. package/dist/typescript/components/base/select/select-popup.d.ts.map +1 -0
  226. package/dist/typescript/components/base/select/select-single-content.d.ts +48 -0
  227. package/dist/typescript/components/base/select/select-single-content.d.ts.map +1 -0
  228. package/dist/typescript/components/base/select/select-suffix.d.ts +43 -0
  229. package/dist/typescript/components/base/select/select-suffix.d.ts.map +1 -0
  230. package/dist/typescript/components/base/select/select.d.ts +40 -0
  231. package/dist/typescript/components/base/select/select.d.ts.map +1 -0
  232. package/dist/typescript/components/base/select/style/index.d.ts +6 -0
  233. package/dist/typescript/components/base/select/style/index.d.ts.map +1 -0
  234. package/dist/typescript/components/base/select/style/select-multiple-content-styles.d.ts +40 -0
  235. package/dist/typescript/components/base/select/style/select-multiple-content-styles.d.ts.map +1 -0
  236. package/dist/typescript/components/base/select/style/select-popup-styles.d.ts +61 -0
  237. package/dist/typescript/components/base/select/style/select-popup-styles.d.ts.map +1 -0
  238. package/dist/typescript/components/base/select/style/select-single-content-styles.d.ts +22 -0
  239. package/dist/typescript/components/base/select/style/select-single-content-styles.d.ts.map +1 -0
  240. package/dist/typescript/components/base/select/style/select-styles.d.ts +40 -0
  241. package/dist/typescript/components/base/select/style/select-styles.d.ts.map +1 -0
  242. package/dist/typescript/components/base/select/style/select-suffix-styles.d.ts +15 -0
  243. package/dist/typescript/components/base/select/style/select-suffix-styles.d.ts.map +1 -0
  244. package/dist/typescript/components/base/select/types.d.ts +206 -0
  245. package/dist/typescript/components/base/select/types.d.ts.map +1 -0
  246. package/dist/typescript/components/base/tabs/style/index.d.ts +29 -0
  247. package/dist/typescript/components/base/tabs/style/index.d.ts.map +1 -0
  248. package/dist/typescript/components/base/tabs/tabs.d.ts +26 -5
  249. package/dist/typescript/components/base/tabs/tabs.d.ts.map +1 -1
  250. package/dist/typescript/components/base/tag/index.d.ts +5 -0
  251. package/dist/typescript/components/base/tag/index.d.ts.map +1 -0
  252. package/dist/typescript/components/base/tag/style/index.d.ts +61 -0
  253. package/dist/typescript/components/base/tag/style/index.d.ts.map +1 -0
  254. package/dist/typescript/components/base/tag/tag-context.d.ts +3 -0
  255. package/dist/typescript/components/base/tag/tag-context.d.ts.map +1 -0
  256. package/dist/typescript/components/base/tag/tag-group.d.ts +4 -0
  257. package/dist/typescript/components/base/tag/tag-group.d.ts.map +1 -0
  258. package/dist/typescript/components/base/tag/tag.d.ts +4 -0
  259. package/dist/typescript/components/base/tag/tag.d.ts.map +1 -0
  260. package/dist/typescript/components/base/tag/types.d.ts +48 -0
  261. package/dist/typescript/components/base/tag/types.d.ts.map +1 -0
  262. package/dist/typescript/native-provider/native-provider.d.ts +2 -0
  263. package/dist/typescript/native-provider/native-provider.d.ts.map +1 -1
  264. package/dist/typescript/shared/utils/index.d.ts +1 -0
  265. package/dist/typescript/shared/utils/index.d.ts.map +1 -1
  266. package/dist/typescript/shared/utils/object.d.ts +21 -0
  267. package/dist/typescript/shared/utils/object.d.ts.map +1 -0
  268. package/package.json +1 -1
  269. package/src/components/base/carousel/carousel-indicator.tsx +80 -0
  270. package/src/components/base/carousel/carousel-slides.tsx +177 -0
  271. package/src/components/base/carousel/carousel.tsx +108 -118
  272. package/src/components/base/carousel/hooks/index.ts +0 -2
  273. package/src/components/base/carousel/hooks/use-carousel-index.ts +13 -9
  274. package/src/components/base/carousel/hooks/use-carousel-lifecycle.ts +4 -3
  275. package/src/components/base/carousel/hooks/use-carousel-pan-responder.ts +40 -16
  276. package/src/components/base/carousel/hooks/use-carousel-position.ts +4 -1
  277. package/src/components/base/carousel/index.ts +1 -3
  278. package/src/components/base/carousel/style/index.ts +12 -0
  279. package/src/components/base/carousel/types.ts +8 -21
  280. package/src/components/base/date-picker/date-picker.tsx +64 -61
  281. package/src/components/base/date-picker/date-range-picker.tsx +178 -70
  282. package/src/components/base/date-picker/style/index.ts +10 -0
  283. package/src/components/base/date-picker-view/date-picker-view.tsx +21 -68
  284. package/src/components/base/date-picker-view/index.ts +0 -2
  285. package/src/components/base/date-picker-view/types.ts +1 -1
  286. package/src/components/base/index.ts +4 -0
  287. package/src/components/base/input/base-input.tsx +4 -2
  288. package/src/components/base/overflow/all-mode-overflow.tsx +49 -0
  289. package/src/components/base/overflow/fixed-count-overflow.tsx +71 -0
  290. package/src/components/base/overflow/index.ts +2 -0
  291. package/src/components/base/overflow/overflow.tsx +60 -0
  292. package/src/components/base/overflow/responsive-overflow.tsx +349 -0
  293. package/src/components/base/overflow/style/index.ts +32 -0
  294. package/src/components/base/overflow/types.ts +75 -0
  295. package/src/components/base/picker/index.ts +11 -1
  296. package/src/components/base/picker/picker-content.tsx +90 -0
  297. package/src/components/base/picker/picker-context.ts +19 -0
  298. package/src/components/base/picker/picker-field.tsx +56 -0
  299. package/src/components/base/picker/picker.tsx +49 -116
  300. package/src/components/base/picker/style/index.ts +4 -2
  301. package/src/components/base/picker-backup/base-picker-container.tsx +55 -0
  302. package/src/components/base/picker-backup/index.ts +2 -0
  303. package/src/components/base/picker-backup/picker-backup.tsx +110 -0
  304. package/src/components/base/picker-backup/picker-copy.tsx +125 -0
  305. package/src/components/base/{picker → picker-backup}/picker-trigger.tsx +2 -2
  306. package/src/components/base/picker-backup/style/index.ts +14 -0
  307. package/src/components/base/picker-backup/utils.ts +62 -0
  308. package/src/components/base/picker-view/picker-view-column.tsx +20 -0
  309. package/src/components/base/picker-view/picker-view.tsx +4 -4
  310. package/src/components/base/picker-view/utils/picker.ts +3 -5
  311. package/src/components/base/portal/portal-host.tsx +13 -3
  312. package/src/components/base/portal/types.ts +2 -0
  313. package/src/components/base/select/hooks/use-select-actions.ts +263 -0
  314. package/src/components/base/select/hooks/use-select-options.ts +250 -0
  315. package/src/components/base/select/hooks/use-selector.ts +155 -0
  316. package/src/components/base/select/index.ts +2 -0
  317. package/src/components/base/select/select-multiple-content.tsx +292 -0
  318. package/src/components/base/select/select-popup.tsx +384 -0
  319. package/src/components/base/select/select-single-content.tsx +127 -0
  320. package/src/components/base/select/select-suffix.tsx +100 -0
  321. package/src/components/base/select/select.tsx +302 -0
  322. package/src/components/base/select/style/index.ts +5 -0
  323. package/src/components/base/select/style/select-multiple-content-styles.ts +41 -0
  324. package/src/components/base/select/style/select-popup-styles.ts +62 -0
  325. package/src/components/base/select/style/select-single-content-styles.ts +23 -0
  326. package/src/components/base/select/style/select-styles.ts +41 -0
  327. package/src/components/base/select/style/select-suffix-styles.ts +16 -0
  328. package/src/components/base/select/types.ts +261 -0
  329. package/src/components/base/tabs/style/index.ts +32 -0
  330. package/src/components/base/tabs/tabs.tsx +146 -55
  331. package/src/components/base/tag/index.ts +5 -0
  332. package/src/components/base/tag/style/index.tsx +84 -0
  333. package/src/components/base/tag/tag-context.ts +9 -0
  334. package/src/components/base/tag/tag-group.tsx +31 -0
  335. package/src/components/base/tag/tag.tsx +50 -0
  336. package/src/components/base/tag/types.ts +71 -0
  337. package/src/native-provider/native-provider.tsx +4 -4
  338. package/src/shared/utils/index.ts +1 -0
  339. package/src/shared/utils/object.ts +37 -0
  340. package/dist/commonjs/components/base/carousel/carousel-item.js +0 -45
  341. package/dist/commonjs/components/base/carousel/constants.js +0 -25
  342. package/dist/commonjs/components/base/carousel/hooks/use-carousel-indicator.js +0 -63
  343. package/dist/commonjs/components/base/carousel/hooks/use-carousel-slides.js +0 -95
  344. package/dist/commonjs/components/base/carousel/utils.js +0 -63
  345. package/dist/commonjs/components/base/date-picker-view/date-range-picker-view.js +0 -145
  346. package/dist/commonjs/components/base/date-picker-view/date-time-picker.js +0 -39
  347. package/dist/module/components/base/carousel/carousel-item.js +0 -40
  348. package/dist/module/components/base/carousel/constants.js +0 -21
  349. package/dist/module/components/base/carousel/hooks/use-carousel-indicator.js +0 -58
  350. package/dist/module/components/base/carousel/hooks/use-carousel-slides.js +0 -90
  351. package/dist/module/components/base/carousel/utils.js +0 -55
  352. package/dist/module/components/base/date-picker-view/date-range-picker-view.js +0 -138
  353. package/dist/module/components/base/date-picker-view/date-time-picker.js +0 -34
  354. package/dist/typescript/components/base/carousel/carousel-item.d.ts +0 -26
  355. package/dist/typescript/components/base/carousel/carousel-item.d.ts.map +0 -1
  356. package/dist/typescript/components/base/carousel/constants.d.ts +0 -17
  357. package/dist/typescript/components/base/carousel/constants.d.ts.map +0 -1
  358. package/dist/typescript/components/base/carousel/hooks/use-carousel-indicator.d.ts +0 -37
  359. package/dist/typescript/components/base/carousel/hooks/use-carousel-indicator.d.ts.map +0 -1
  360. package/dist/typescript/components/base/carousel/hooks/use-carousel-slides.d.ts +0 -51
  361. package/dist/typescript/components/base/carousel/hooks/use-carousel-slides.d.ts.map +0 -1
  362. package/dist/typescript/components/base/carousel/utils.d.ts +0 -25
  363. package/dist/typescript/components/base/carousel/utils.d.ts.map +0 -1
  364. package/dist/typescript/components/base/date-picker-view/date-range-picker-view.d.ts +0 -26
  365. package/dist/typescript/components/base/date-picker-view/date-range-picker-view.d.ts.map +0 -1
  366. package/dist/typescript/components/base/date-picker-view/date-time-picker.d.ts +0 -3
  367. package/dist/typescript/components/base/date-picker-view/date-time-picker.d.ts.map +0 -1
  368. package/dist/typescript/components/base/picker/picker-trigger.d.ts.map +0 -1
  369. package/src/components/base/carousel/carousel-item.tsx +0 -35
  370. package/src/components/base/carousel/constants.ts +0 -19
  371. package/src/components/base/carousel/hooks/use-carousel-indicator.tsx +0 -84
  372. package/src/components/base/carousel/hooks/use-carousel-slides.tsx +0 -131
  373. package/src/components/base/carousel/utils.ts +0 -55
  374. package/src/components/base/date-picker-view/date-range-picker-view.tsx +0 -191
  375. package/src/components/base/date-picker-view/date-time-picker.tsx +0 -34
  376. /package/dist/typescript/components/base/{picker → picker-backup}/picker-trigger.d.ts +0 -0
@@ -1,35 +0,0 @@
1
- import type { FC, PropsWithChildren } from 'react';
2
- import { View } from 'react-native';
3
-
4
- import type { CarouselItemProps } from './types';
5
-
6
- const FULL_SIZE_STYLE = { height: '100%', width: '100%' } as const;
7
-
8
- /**
9
- * 轮播项组件
10
- *
11
- * 用于包裹轮播图中的每一项内容,自动填充父容器的宽高。
12
- *
13
- * @example
14
- * ```tsx
15
- * <Carousel>
16
- * <Carousel.Item>
17
- * <Image source={image1} />
18
- * </Carousel.Item>
19
- * <Carousel.Item>
20
- * <Image source={image2} />
21
- * </Carousel.Item>
22
- * </Carousel>
23
- * ```
24
- *
25
- * @param props - 组件属性
26
- * @param props.children - 轮播项内容
27
- * @param props.style - 容器样式
28
- * @returns 轮播项组件
29
- */
30
- export const CarouselItem: FC<PropsWithChildren<CarouselItemProps>> = ({
31
- children,
32
- style,
33
- }) => {
34
- return <View style={[FULL_SIZE_STYLE, style]}>{children}</View>;
35
- };
@@ -1,19 +0,0 @@
1
- /**
2
- * 轮播图动画时长(毫秒)
3
- */
4
- export const CAROUSEL_ANIMATION_DURATION = 300;
5
-
6
- /**
7
- * 橡皮筋效果阻尼系数
8
- */
9
- export const RUBBERBAND_DAMPING = 0.35;
10
-
11
- /**
12
- * 手势识别最小移动距离(像素)
13
- */
14
- export const GESTURE_MIN_DISTANCE = 5;
15
-
16
- /**
17
- * 速度投影系数(用于计算惯性滑动距离)
18
- */
19
- export const VELOCITY_PROJECTION_FACTOR = 2000;
@@ -1,84 +0,0 @@
1
- import { useMemoizedFn } from 'ahooks';
2
- import { StyleSheet, View } from 'react-native';
3
-
4
- import type { CarouselProps } from '../types';
5
-
6
- interface UseCarouselIndicatorParams {
7
- indicator: CarouselProps['indicator'];
8
- indicatorProps: CarouselProps['indicatorProps'];
9
- total: number;
10
- current: number;
11
- activeColor: string;
12
- inactiveColor: string;
13
- styles: {
14
- indicatorContainer: object;
15
- indicatorDot: object;
16
- indicatorDotActive: object;
17
- };
18
- }
19
-
20
- /**
21
- * 轮播图指示器渲染 Hook
22
- *
23
- * 负责渲染轮播图底部的指示器(小圆点),支持自定义指示器或使用默认样式。
24
- * 当轮播项总数小于等于 1 时,不显示指示器。
25
- *
26
- * @param params - Hook 参数配置
27
- * @param params.indicator - 指示器配置(false 表示不显示,函数表示自定义渲染)
28
- * @param params.indicatorProps - 指示器属性配置(颜色、样式)
29
- * @param params.total - 轮播项总数
30
- * @param params.current - 当前激活的索引
31
- * @param params.activeColor - 激活状态的指示器颜色
32
- * @param params.inactiveColor - 非激活状态的指示器颜色
33
- * @param params.styles - 指示器样式对象
34
- *
35
- * @returns Hook 返回值
36
- * @returns renderIndicator - 渲染指示器的方法,返回 ReactNode 或 null
37
- */
38
- export const useCarouselIndicator = (params: UseCarouselIndicatorParams) => {
39
- const {
40
- indicator,
41
- indicatorProps,
42
- total,
43
- current,
44
- activeColor,
45
- inactiveColor,
46
- styles,
47
- } = params;
48
-
49
- const renderIndicator = useMemoizedFn(() => {
50
- if (indicator === false) return null;
51
- if (total <= 1) return null;
52
-
53
- if (typeof indicator === 'function') {
54
- return indicator(total, current);
55
- }
56
-
57
- const dotActiveColor = indicatorProps?.color ?? activeColor;
58
-
59
- return (
60
- <View
61
- style={StyleSheet.flatten([
62
- styles.indicatorContainer,
63
- indicatorProps?.style,
64
- ])}
65
- >
66
- {Array.from({ length: total }, (_, i) => {
67
- const isActive = i === current;
68
- return (
69
- <View
70
- key={i}
71
- style={StyleSheet.flatten([
72
- styles.indicatorDot,
73
- { backgroundColor: isActive ? dotActiveColor : inactiveColor },
74
- isActive && styles.indicatorDotActive,
75
- ])}
76
- />
77
- );
78
- })}
79
- </View>
80
- );
81
- });
82
-
83
- return { renderIndicator };
84
- };
@@ -1,131 +0,0 @@
1
- import { useMemoizedFn } from 'ahooks';
2
- import { clamp } from 'lodash-es';
3
- import { type ReactElement, useMemo } from 'react';
4
- import { View, type ViewStyle } from 'react-native';
5
-
6
- import type { CarouselItemProps } from '../types';
7
- import { isRenderPropChildren, normalizeChildren } from '../utils';
8
-
9
- interface UseCarouselSlidesParams {
10
- children:
11
- | ReactElement<CarouselItemProps>
12
- | ReactElement<CarouselItemProps>[]
13
- | ((index: number) => ReactElement<CarouselItemProps>)
14
- | undefined;
15
- total: number;
16
- virtualRange: {
17
- start: number;
18
- end: number;
19
- isVirtual: boolean;
20
- } | null;
21
- loopEnabled: boolean;
22
- clonesBefore: number;
23
- slideWrapperStyle: ViewStyle;
24
- spacerStyles: {
25
- leading: ViewStyle;
26
- trailing: ViewStyle;
27
- leadingSize: number;
28
- trailingSize: number;
29
- } | null;
30
- slideStyles: {
31
- slide: ViewStyle;
32
- };
33
- }
34
-
35
- /**
36
- * 轮播图滑块渲染 Hook
37
- *
38
- * 负责渲染轮播图的滑块内容,支持静态子组件和 render prop 两种方式。
39
- * 实现虚拟渲染优化,仅渲染可见范围内的滑块,并处理循环播放时的克隆逻辑。
40
- * 为虚拟渲染添加前后占位空间,确保滚动位置正确。
41
- *
42
- * @param params - Hook 参数配置
43
- * @param params.children - 轮播项内容(静态子组件或 render prop 函数)
44
- * @param params.total - 轮播项总数
45
- * @param params.virtualRange - 虚拟渲染范围(start、end、isVirtual)
46
- * @param params.loopEnabled - 是否启用循环播放
47
- * @param params.clonesBefore - 循环播放时前置克隆节点数量
48
- * @param params.slideWrapperStyle - 滑块包装器样式
49
- * @param params.spacerStyles - 虚拟渲染占位空间样式
50
- * @param params.slideStyles - 滑块样式对象
51
- *
52
- * @returns Hook 返回值
53
- * @returns staticSlides - 静态滑块数组(仅在非 render prop 模式下有值)
54
- * @returns renderSlides - 渲染滑块的方法,返回 ReactNode 或 null
55
- */
56
- export const useCarouselSlides = (params: UseCarouselSlidesParams) => {
57
- const {
58
- children,
59
- total,
60
- virtualRange,
61
- loopEnabled,
62
- clonesBefore,
63
- slideWrapperStyle,
64
- spacerStyles,
65
- slideStyles,
66
- } = params;
67
-
68
- const staticSlides = useMemo(() => {
69
- if (isRenderPropChildren(children)) return [];
70
- return normalizeChildren(children, total);
71
- }, [children, total]);
72
-
73
- const getIndexFromExtIndex = useMemoizedFn((extIndex: number) => {
74
- if (!loopEnabled) return clamp(extIndex, 0, total - 1);
75
- if (extIndex < clonesBefore) {
76
- return (((extIndex - clonesBefore) % total) + total) % total;
77
- }
78
- if (extIndex >= clonesBefore + total) {
79
- return (extIndex - clonesBefore - total) % total;
80
- }
81
- return extIndex - clonesBefore;
82
- });
83
-
84
- const renderSlides = useMemoizedFn(() => {
85
- if (!virtualRange) return null;
86
-
87
- const { start, end, isVirtual } = virtualRange;
88
-
89
- const getElementForExtIndex = (extIndex: number) => {
90
- const logicalIndex = loopEnabled
91
- ? getIndexFromExtIndex(extIndex)
92
- : clamp(extIndex, 0, total - 1);
93
-
94
- if (isRenderPropChildren(children)) return children(logicalIndex);
95
- return staticSlides[logicalIndex];
96
- };
97
-
98
- const slideElements: ReactElement[] = [];
99
- for (let extIndex = start; extIndex <= end; extIndex += 1) {
100
- const element = getElementForExtIndex(extIndex);
101
- if (!element) continue;
102
- slideElements.push(
103
- <View key={extIndex} style={[slideStyles.slide, slideWrapperStyle]}>
104
- {element}
105
- </View>,
106
- );
107
- }
108
-
109
- const leadSpacer =
110
- isVirtual && spacerStyles && spacerStyles.leadingSize > 0 ? (
111
- <View style={spacerStyles.leading} />
112
- ) : null;
113
- const trailSpacer =
114
- isVirtual && spacerStyles && spacerStyles.trailingSize > 0 ? (
115
- <View style={spacerStyles.trailing} />
116
- ) : null;
117
-
118
- return (
119
- <>
120
- {leadSpacer}
121
- {slideElements}
122
- {trailSpacer}
123
- </>
124
- );
125
- });
126
-
127
- return {
128
- staticSlides,
129
- renderSlides,
130
- };
131
- };
@@ -1,55 +0,0 @@
1
- import { Children, type ReactElement } from 'react';
2
-
3
- import type { CarouselItemProps, CarouselProps } from './types';
4
-
5
- export const isRenderPropChildren = (
6
- children: CarouselProps['children'],
7
- ): children is (index: number) => ReactElement<CarouselItemProps> => {
8
- return typeof children === 'function';
9
- };
10
-
11
- export const normalizeChildren = (
12
- children: CarouselProps['children'],
13
- total: number,
14
- ): ReactElement[] => {
15
- if (!children) return [];
16
- if (isRenderPropChildren(children)) {
17
- return Array.from({ length: total }, (_, i) => children(i));
18
- }
19
- return Children.toArray(children) as ReactElement[];
20
- };
21
-
22
- export const getDefaultTotal = (children: CarouselProps['children']) => {
23
- if (!children) return 0;
24
- if (isRenderPropChildren(children)) return 0;
25
- return Array.isArray(children) ? children.length : 1;
26
- };
27
-
28
- /**
29
- * 计算轮播边界索引范围
30
- *
31
- * @param params - 参数配置
32
- * @param params.total - 轮播项总数
33
- * @param params.slideSize - 单个滑块所占百分比 (0-100)
34
- * @param params.trackOffset - 轨道偏移百分比 (0-100)
35
- * @param params.stuckAtBoundary - 是否在边界处卡住
36
- * @returns 边界索引范围 { min, max }
37
- */
38
- export const getBoundaryIndexRange = (params: {
39
- total: number;
40
- slideSize: number;
41
- trackOffset: number;
42
- stuckAtBoundary: boolean;
43
- }) => {
44
- const { total, slideSize, trackOffset, stuckAtBoundary } = params;
45
-
46
- if (total <= 0) return { min: 0, max: 0 };
47
- if (!stuckAtBoundary) return { min: 0, max: total - 1 };
48
-
49
- const slideRatio = slideSize / 100;
50
- const offsetRatio = trackOffset / 100;
51
-
52
- const min = 0 + offsetRatio / (slideRatio || 1);
53
- const max = total - 1 - (1 - slideRatio - offsetRatio) / (slideRatio || 1);
54
- return { min, max };
55
- };
@@ -1,191 +0,0 @@
1
- import dayjs from 'dayjs';
2
- import React, { useCallback, useEffect, useMemo, useState } from 'react';
3
-
4
- import {
5
- Button,
6
- DateTimePicker,
7
- Flex,
8
- ModalHeader,
9
- type ModalHeaderBaseProps,
10
- Text,
11
- } from '#components/base';
12
-
13
- import { useDateRangePickerStyles } from './style';
14
- import type { DateTimePickerProps } from './types';
15
- import { sortRange } from './utils';
16
-
17
- export interface DateRangePickerViewProps
18
- extends Omit<DateTimePickerProps, 'value' | 'defaultValue' | 'onChange'>,
19
- ModalHeaderBaseProps {
20
- /** 当前值(受控) */
21
- value?: [Date, Date];
22
- /** 默认值 (非受控) */
23
- defaultValue?: [Date, Date];
24
- /** 值变化时的回调 */
25
- onChange?: (value: [Date, Date]) => void;
26
- /** start 开始时间的占位文案 */
27
- startText?: string;
28
- /** end 结束时间的占位文案 */
29
- endText?: string;
30
- /** 确定按钮文案 */
31
- confirmText?: string;
32
- /** 重置按钮文案 */
33
- resetText?: string;
34
- /**
35
- * 自定义格式化函数。
36
- * 配置参考 https://day.js.org/docs/zh-CN/display/format
37
- */
38
- formatter: string | ((date: Date) => string);
39
- }
40
-
41
- type Selected = 'start' | 'end';
42
-
43
- export const DateRangePickerView: React.FC<DateRangePickerViewProps> = ({
44
- onClose,
45
- min,
46
- max,
47
- value,
48
- defaultValue,
49
- onChange,
50
- title = '自定义日期',
51
- startText = '请选择开始时间',
52
- endText = '请选择结束时间',
53
- confirmText = '确定',
54
- resetText = '重置',
55
- formatter,
56
- }) => {
57
- const styles = useDateRangePickerStyles();
58
-
59
- /** 当前编辑的是 start 还是 end */
60
- const [selected, setSelected] = useState<Selected>('start');
61
-
62
- /** 初始化 draft */
63
- const [draft, setDraft] = useState<[Date?, Date?]>(() => {
64
- if (value) return sortRange(value);
65
- if (defaultValue) return sortRange(defaultValue);
66
- return [new Date(), undefined];
67
- });
68
-
69
- const _startText =
70
- (draft[0] &&
71
- (typeof formatter === 'string'
72
- ? dayjs(draft[0]).format(formatter)
73
- : formatter(draft[0]))) ||
74
- startText;
75
- const _endText =
76
- (draft[1] &&
77
- (typeof formatter === 'string'
78
- ? dayjs(draft[1]).format(formatter)
79
- : formatter(draft[1]))) ||
80
- endText;
81
-
82
- /** Picker 当前值 */
83
- const pickerValue = (selected === 'start' ? draft[0] : draft[1]) ?? new Date();
84
-
85
- /** Picker 可选范围 - 优化依赖 */
86
- const minDate = useMemo(() => {
87
- return selected === 'end' ? (draft[0] ?? min) : min;
88
- }, [selected, draft, min]);
89
-
90
- const maxDate = useMemo(() => {
91
- return selected === 'start' ? (draft[1] ?? max) : max;
92
- }, [selected, draft, max]);
93
-
94
- /** Picker 改 draft */
95
- const onChangePicker = useCallback(
96
- (date: Date) => {
97
- setDraft(prev => {
98
- const index = selected === 'start' ? 0 : 1;
99
- // 如果日期相同,不更新
100
- if (prev[index]?.getTime() === date.getTime()) {
101
- return prev;
102
- }
103
- const next: [Date?, Date?] = [prev[0], prev[1]];
104
- next[index] = date;
105
- return next;
106
- });
107
- },
108
- [selected],
109
- );
110
-
111
- const changeSelected = useCallback((nextSelected: Selected) => {
112
- setSelected(nextSelected);
113
- setDraft(prev => {
114
- const next: [Date?, Date?] = [prev[0], prev[1]];
115
- const index = nextSelected === 'start' ? 0 : 1;
116
-
117
- next[index] ??= new Date();
118
- return next;
119
- });
120
- }, []);
121
-
122
- /** 重置 */
123
- const onReset = useCallback(() => {
124
- setDraft([new Date(), undefined]);
125
- setSelected('start');
126
- }, []);
127
-
128
- /** 是否可以确定 */
129
- const canConfirm = Boolean(draft[0] && draft[1]);
130
-
131
- /** 确定:唯一对外出口 */
132
- const onConfirm = useCallback(() => {
133
- if (!draft[0] || !draft[1]) return;
134
-
135
- // start > end 自动修正
136
- onChange?.(sortRange([draft[0], draft[1]]));
137
- }, [draft, onChange]);
138
-
139
- // 受控模式:检测外部 value 变化
140
- useEffect(() => {
141
- if (value) {
142
- const sorted = sortRange(value);
143
-
144
- setDraft(sorted);
145
- }
146
- }, [value]);
147
-
148
- return (
149
- <Flex vertical align="stretch" style={styles.container}>
150
- {/* Header */}
151
- <ModalHeader title={title} onClose={onClose} />
152
-
153
- <Flex>
154
- <Button
155
- variant="outline"
156
- theme={selected === 'start' ? 'primary' : 'default'}
157
- block
158
- text={_startText}
159
- onPress={() => changeSelected('start')}
160
- />
161
- <Text>—</Text>
162
- <Button
163
- variant="outline"
164
- theme={selected === 'end' ? 'primary' : 'default'}
165
- block
166
- text={_endText}
167
- onPress={() => changeSelected('end')}
168
- />
169
- </Flex>
170
-
171
- {/* Picker */}
172
- <DateTimePicker
173
- value={pickerValue}
174
- min={minDate}
175
- max={maxDate}
176
- onChange={onChangePicker}
177
- />
178
-
179
- {/* Footer */}
180
- <Button.Group block>
181
- <Button size="large" text={resetText} theme="secondary" onPress={onReset} />
182
- <Button
183
- size="large"
184
- text={confirmText}
185
- onPress={onConfirm}
186
- disabled={!canConfirm}
187
- />
188
- </Button.Group>
189
- </Flex>
190
- );
191
- };
@@ -1,34 +0,0 @@
1
- import { useControllableValue } from 'ahooks';
2
- import { useMemo } from 'react';
3
-
4
- import { PickerView } from '#components/base';
5
-
6
- import { useDateTimePicker } from './hooks/use-date-time-picker';
7
- import type { DateTimePickerProps } from './types';
8
-
9
- export const DateTimePicker: React.FC<DateTimePickerProps> = ({
10
- mode = 'Y-D',
11
- min,
12
- max,
13
- ...restProps
14
- }) => {
15
- // 确保有一个稳定的默认日期值
16
- const defaultDate = useMemo(() => new Date(), []);
17
-
18
- const [value, onChange] = useControllableValue(restProps, {
19
- defaultValue: defaultDate,
20
- });
21
-
22
- // 确保 value 始终有值,避免 undefined 传递给 hook
23
- const safeValue = value ?? defaultDate;
24
-
25
- const [values, columns, onChangePicker] = useDateTimePicker({
26
- mode,
27
- value: safeValue,
28
- onChange,
29
- min,
30
- max,
31
- });
32
-
33
- return <PickerView columns={columns} value={values} onChange={onChangePicker} />;
34
- };