@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
@@ -0,0 +1,50 @@
1
+ import React, { use, useMemo } from 'react';
2
+ import { Pressable } from 'react-native';
3
+
4
+ import { Text } from '#components/base';
5
+
6
+ import { useTagStyles } from './style';
7
+ import { TagContext } from './tag-context';
8
+ import { type TagProps } from './types';
9
+ export const Tag: React.FC<TagProps> = ({
10
+ text,
11
+ variant = 'solid',
12
+ style,
13
+ theme = 'primary',
14
+ disabled: customDisabled,
15
+ size,
16
+ child,
17
+ textStyle,
18
+ onPress,
19
+ }) => {
20
+ const context = use(TagContext);
21
+ const mergedDisabled = customDisabled ?? context.disabled ?? false;
22
+ const mergedSize = size ?? context.size ?? 'medium';
23
+ const styles = useTagStyles({ variant, themeColor: theme, mergedSize });
24
+ const tagStyle = useMemo(() => {
25
+ return [styles.tag, styles[variant], styles[mergedSize], style];
26
+ }, [mergedSize, style, variant, styles]);
27
+
28
+ const tagNode: React.ReactNode = (
29
+ <Pressable
30
+ style={tagStyle}
31
+ onPress={mergedDisabled ? undefined : onPress}
32
+ disabled={mergedDisabled}
33
+ >
34
+ {child ? (
35
+ child
36
+ ) : (
37
+ <Text
38
+ style={[
39
+ styles[`text-${variant}`],
40
+ styles[`font-${mergedSize}`],
41
+ textStyle,
42
+ ]}
43
+ >
44
+ {text}
45
+ </Text>
46
+ )}
47
+ </Pressable>
48
+ );
49
+ return tagNode;
50
+ };
@@ -0,0 +1,71 @@
1
+ import type { PropsWithChildren } from 'react';
2
+ import type {
3
+ GestureResponderEvent,
4
+ StyleProp,
5
+ TextStyle,
6
+ ViewStyle,
7
+ } from 'react-native';
8
+
9
+ import type { AnyObject } from '#shared/utils/types';
10
+
11
+ export interface TagProps {
12
+ /** 标签文本 */
13
+ text?: string;
14
+
15
+ /** 标签主题色 */
16
+ color?: string;
17
+
18
+ /** 结构形态 */
19
+ variant?: 'filled' | 'solid' | 'outlined';
20
+
21
+ /** 标签样式 */
22
+ style?: StyleProp<ViewStyle>;
23
+
24
+ /** 标签内容样式 */
25
+ textStyle?: StyleProp<TextStyle>;
26
+
27
+ /** 标签主题色 */
28
+ theme?: 'primary' | 'default' | 'danger';
29
+
30
+ /** 标签尺寸 */
31
+ size?: 'small' | 'medium' | 'large';
32
+
33
+ /** 标签是否可关闭 */
34
+ closable?: boolean;
35
+
36
+ /** 标签图标 */
37
+ icon?: React.ReactElement<AnyObject>;
38
+
39
+ /** 标签内容 */
40
+ child?: React.ReactNode;
41
+
42
+ /** 标签跳转链接 */
43
+ href?: string;
44
+
45
+ /** 标签是否禁用 */
46
+ disabled?: boolean;
47
+
48
+ /** 标签跳转链接目标 */
49
+ target?: '_blank' | '_self' | '_parent' | '_top';
50
+
51
+ /** 标签点击 事件 */
52
+ onPress?: (event: GestureResponderEvent) => void;
53
+ }
54
+
55
+ export interface TagGroupProps extends PropsWithChildren, TagContextValue {
56
+ /** 容器样式 */
57
+ style?: StyleProp<ViewStyle>;
58
+
59
+ /** 容器样式 */
60
+ gap?: number;
61
+
62
+ /** 容器样式 */
63
+ direction?: 'horizontal' | 'vertical';
64
+ }
65
+
66
+ export interface TagContextValue {
67
+ /** 按钮标签的尺寸 */
68
+ size?: 'small' | 'medium' | 'large';
69
+ /** 按钮标签的禁用状态 */
70
+ disabled?: boolean;
71
+ }
@@ -1,7 +1,6 @@
1
1
  import React, { useMemo } from 'react';
2
- import { Platform } from 'react-native';
3
2
 
4
- import { Portal } from '#components/base';
3
+ import { Portal, type PortalHostProps } from '#components/base';
5
4
  import { createTheme, type ThemeConfig } from '#shared/theme';
6
5
 
7
6
  import {
@@ -25,6 +24,7 @@ export interface NativeProviderProps {
25
24
  errorBoundary?: Omit<ErrorBoundaryProps, 'children'>;
26
25
  /** 导航配置 */
27
26
  navigators?: ConfigContextValue['navigators'];
27
+ portalHostProps: PortalHostProps;
28
28
  }
29
29
 
30
30
  export const NativeProvider: React.FC<NativeProviderProps> = ({
@@ -33,8 +33,8 @@ export const NativeProvider: React.FC<NativeProviderProps> = ({
33
33
  navigators,
34
34
  errorBoundary,
35
35
  request = null,
36
+ portalHostProps,
36
37
  }) => {
37
- const isNative = Platform.OS !== 'web';
38
38
  const themeContextValue = useMemo(() => createTheme(theme), [theme]);
39
39
 
40
40
  return (
@@ -43,7 +43,7 @@ export const NativeProvider: React.FC<NativeProviderProps> = ({
43
43
  <RequestContext.Provider value={request}>
44
44
  <ThemeContext.Provider value={themeContextValue}>
45
45
  <ErrorBoundary {...errorBoundary}>
46
- {isNative ? <Portal.Host>{children}</Portal.Host> : children}
46
+ <Portal.Host {...portalHostProps}>{children}</Portal.Host>
47
47
  </ErrorBoundary>
48
48
  </ThemeContext.Provider>
49
49
  </RequestContext.Provider>
@@ -1,3 +1,4 @@
1
1
  export * from './element';
2
2
  export * from './error';
3
+ export * from './object';
3
4
  export type * from './types';
@@ -0,0 +1,37 @@
1
+ import { isNil } from 'lodash-es';
2
+
3
+ /**
4
+ * 浅比较两个对象是否相等
5
+ *
6
+ * 仅比较对象的第一层属性,使用严格相等(===)进行比较。
7
+ * 不会递归比较嵌套对象或数组的内容。
8
+ *
9
+ * @param a - 第一个对象
10
+ * @param b - 第二个对象
11
+ * @returns 如果两个对象的所有第一层属性都相等则返回 true,否则返回 false。如果 a/b 有一个非对象,则直接比较二者
12
+ *
13
+ * @example
14
+ * shallowEqual({ a: 1, b: 2 }, { a: 1, b: 2 }); // true
15
+ * shallowEqual({ a: 1 }, { a: 1, b: 2 }); // false
16
+ * shallowEqual({ a: { x: 1 } }, { a: { x: 1 } }); // false
17
+ * shallowEqual(null, null); // true
18
+ * shallowEqual(null, undefined); // false
19
+ * shallowEqual(1, 1); // true
20
+ * shallowEqual(1, '1'); // false
21
+ */
22
+ export const shallowEqual = (a?: object, b?: object): boolean => {
23
+ if (isNil(a) || isNil(b)) {
24
+ return a === b;
25
+ }
26
+
27
+ if (typeof a !== 'object' || typeof b !== 'object') {
28
+ return a === b;
29
+ }
30
+
31
+ const aKeys = Object.keys(a);
32
+ const bKeys = Object.keys(b);
33
+
34
+ if (aKeys.length !== bKeys.length) return false;
35
+
36
+ return aKeys.every(key => a[key] === b[key]);
37
+ };
@@ -1,45 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.CarouselItem = void 0;
7
- var _reactNative = require("react-native");
8
- var _jsxRuntime = require("react/jsx-runtime");
9
- const FULL_SIZE_STYLE = {
10
- height: '100%',
11
- width: '100%'
12
- };
13
-
14
- /**
15
- * 轮播项组件
16
- *
17
- * 用于包裹轮播图中的每一项内容,自动填充父容器的宽高。
18
- *
19
- * @example
20
- * ```tsx
21
- * <Carousel>
22
- * <Carousel.Item>
23
- * <Image source={image1} />
24
- * </Carousel.Item>
25
- * <Carousel.Item>
26
- * <Image source={image2} />
27
- * </Carousel.Item>
28
- * </Carousel>
29
- * ```
30
- *
31
- * @param props - 组件属性
32
- * @param props.children - 轮播项内容
33
- * @param props.style - 容器样式
34
- * @returns 轮播项组件
35
- */
36
- const CarouselItem = ({
37
- children,
38
- style
39
- }) => {
40
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
41
- style: [FULL_SIZE_STYLE, style],
42
- children: children
43
- });
44
- };
45
- exports.CarouselItem = CarouselItem;
@@ -1,25 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.VELOCITY_PROJECTION_FACTOR = exports.RUBBERBAND_DAMPING = exports.GESTURE_MIN_DISTANCE = exports.CAROUSEL_ANIMATION_DURATION = void 0;
7
- /**
8
- * 轮播图动画时长(毫秒)
9
- */
10
- const CAROUSEL_ANIMATION_DURATION = exports.CAROUSEL_ANIMATION_DURATION = 300;
11
-
12
- /**
13
- * 橡皮筋效果阻尼系数
14
- */
15
- const RUBBERBAND_DAMPING = exports.RUBBERBAND_DAMPING = 0.35;
16
-
17
- /**
18
- * 手势识别最小移动距离(像素)
19
- */
20
- const GESTURE_MIN_DISTANCE = exports.GESTURE_MIN_DISTANCE = 5;
21
-
22
- /**
23
- * 速度投影系数(用于计算惯性滑动距离)
24
- */
25
- const VELOCITY_PROJECTION_FACTOR = exports.VELOCITY_PROJECTION_FACTOR = 2000;
@@ -1,63 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.useCarouselIndicator = void 0;
7
- var _ahooks = require("ahooks");
8
- var _reactNative = require("react-native");
9
- var _jsxRuntime = require("react/jsx-runtime");
10
- /**
11
- * 轮播图指示器渲染 Hook
12
- *
13
- * 负责渲染轮播图底部的指示器(小圆点),支持自定义指示器或使用默认样式。
14
- * 当轮播项总数小于等于 1 时,不显示指示器。
15
- *
16
- * @param params - Hook 参数配置
17
- * @param params.indicator - 指示器配置(false 表示不显示,函数表示自定义渲染)
18
- * @param params.indicatorProps - 指示器属性配置(颜色、样式)
19
- * @param params.total - 轮播项总数
20
- * @param params.current - 当前激活的索引
21
- * @param params.activeColor - 激活状态的指示器颜色
22
- * @param params.inactiveColor - 非激活状态的指示器颜色
23
- * @param params.styles - 指示器样式对象
24
- *
25
- * @returns Hook 返回值
26
- * @returns renderIndicator - 渲染指示器的方法,返回 ReactNode 或 null
27
- */
28
- const useCarouselIndicator = params => {
29
- const {
30
- indicator,
31
- indicatorProps,
32
- total,
33
- current,
34
- activeColor,
35
- inactiveColor,
36
- styles
37
- } = params;
38
- const renderIndicator = (0, _ahooks.useMemoizedFn)(() => {
39
- if (indicator === false) return null;
40
- if (total <= 1) return null;
41
- if (typeof indicator === 'function') {
42
- return indicator(total, current);
43
- }
44
- const dotActiveColor = indicatorProps?.color ?? activeColor;
45
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
46
- style: _reactNative.StyleSheet.flatten([styles.indicatorContainer, indicatorProps?.style]),
47
- children: Array.from({
48
- length: total
49
- }, (_, i) => {
50
- const isActive = i === current;
51
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
52
- style: _reactNative.StyleSheet.flatten([styles.indicatorDot, {
53
- backgroundColor: isActive ? dotActiveColor : inactiveColor
54
- }, isActive && styles.indicatorDotActive])
55
- }, i);
56
- })
57
- });
58
- });
59
- return {
60
- renderIndicator
61
- };
62
- };
63
- exports.useCarouselIndicator = useCarouselIndicator;
@@ -1,95 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.useCarouselSlides = void 0;
7
- var _ahooks = require("ahooks");
8
- var _lodashEs = require("lodash-es");
9
- var _react = require("react");
10
- var _reactNative = require("react-native");
11
- var _utils = require("../utils.js");
12
- var _jsxRuntime = require("react/jsx-runtime");
13
- /**
14
- * 轮播图滑块渲染 Hook
15
- *
16
- * 负责渲染轮播图的滑块内容,支持静态子组件和 render prop 两种方式。
17
- * 实现虚拟渲染优化,仅渲染可见范围内的滑块,并处理循环播放时的克隆逻辑。
18
- * 为虚拟渲染添加前后占位空间,确保滚动位置正确。
19
- *
20
- * @param params - Hook 参数配置
21
- * @param params.children - 轮播项内容(静态子组件或 render prop 函数)
22
- * @param params.total - 轮播项总数
23
- * @param params.virtualRange - 虚拟渲染范围(start、end、isVirtual)
24
- * @param params.loopEnabled - 是否启用循环播放
25
- * @param params.clonesBefore - 循环播放时前置克隆节点数量
26
- * @param params.slideWrapperStyle - 滑块包装器样式
27
- * @param params.spacerStyles - 虚拟渲染占位空间样式
28
- * @param params.slideStyles - 滑块样式对象
29
- *
30
- * @returns Hook 返回值
31
- * @returns staticSlides - 静态滑块数组(仅在非 render prop 模式下有值)
32
- * @returns renderSlides - 渲染滑块的方法,返回 ReactNode 或 null
33
- */
34
- const useCarouselSlides = params => {
35
- const {
36
- children,
37
- total,
38
- virtualRange,
39
- loopEnabled,
40
- clonesBefore,
41
- slideWrapperStyle,
42
- spacerStyles,
43
- slideStyles
44
- } = params;
45
- const staticSlides = (0, _react.useMemo)(() => {
46
- if ((0, _utils.isRenderPropChildren)(children)) return [];
47
- return (0, _utils.normalizeChildren)(children, total);
48
- }, [children, total]);
49
- const getIndexFromExtIndex = (0, _ahooks.useMemoizedFn)(extIndex => {
50
- if (!loopEnabled) return (0, _lodashEs.clamp)(extIndex, 0, total - 1);
51
- if (extIndex < clonesBefore) {
52
- return ((extIndex - clonesBefore) % total + total) % total;
53
- }
54
- if (extIndex >= clonesBefore + total) {
55
- return (extIndex - clonesBefore - total) % total;
56
- }
57
- return extIndex - clonesBefore;
58
- });
59
- const renderSlides = (0, _ahooks.useMemoizedFn)(() => {
60
- if (!virtualRange) return null;
61
- const {
62
- start,
63
- end,
64
- isVirtual
65
- } = virtualRange;
66
- const getElementForExtIndex = extIndex => {
67
- const logicalIndex = loopEnabled ? getIndexFromExtIndex(extIndex) : (0, _lodashEs.clamp)(extIndex, 0, total - 1);
68
- if ((0, _utils.isRenderPropChildren)(children)) return children(logicalIndex);
69
- return staticSlides[logicalIndex];
70
- };
71
- const slideElements = [];
72
- for (let extIndex = start; extIndex <= end; extIndex += 1) {
73
- const element = getElementForExtIndex(extIndex);
74
- if (!element) continue;
75
- slideElements.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
76
- style: [slideStyles.slide, slideWrapperStyle],
77
- children: element
78
- }, extIndex));
79
- }
80
- const leadSpacer = isVirtual && spacerStyles && spacerStyles.leadingSize > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
81
- style: spacerStyles.leading
82
- }) : null;
83
- const trailSpacer = isVirtual && spacerStyles && spacerStyles.trailingSize > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
84
- style: spacerStyles.trailing
85
- }) : null;
86
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
87
- children: [leadSpacer, slideElements, trailSpacer]
88
- });
89
- });
90
- return {
91
- staticSlides,
92
- renderSlides
93
- };
94
- };
95
- exports.useCarouselSlides = useCarouselSlides;
@@ -1,63 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.normalizeChildren = exports.isRenderPropChildren = exports.getDefaultTotal = exports.getBoundaryIndexRange = void 0;
7
- var _react = require("react");
8
- const isRenderPropChildren = children => {
9
- return typeof children === 'function';
10
- };
11
- exports.isRenderPropChildren = isRenderPropChildren;
12
- const normalizeChildren = (children, total) => {
13
- if (!children) return [];
14
- if (isRenderPropChildren(children)) {
15
- return Array.from({
16
- length: total
17
- }, (_, i) => children(i));
18
- }
19
- return _react.Children.toArray(children);
20
- };
21
- exports.normalizeChildren = normalizeChildren;
22
- const getDefaultTotal = 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
- exports.getDefaultTotal = getDefaultTotal;
39
- const getBoundaryIndexRange = params => {
40
- const {
41
- total,
42
- slideSize,
43
- trackOffset,
44
- stuckAtBoundary
45
- } = params;
46
- if (total <= 0) return {
47
- min: 0,
48
- max: 0
49
- };
50
- if (!stuckAtBoundary) return {
51
- min: 0,
52
- max: total - 1
53
- };
54
- const slideRatio = slideSize / 100;
55
- const offsetRatio = trackOffset / 100;
56
- const min = 0 + offsetRatio / (slideRatio || 1);
57
- const max = total - 1 - (1 - slideRatio - offsetRatio) / (slideRatio || 1);
58
- return {
59
- min,
60
- max
61
- };
62
- };
63
- exports.getBoundaryIndexRange = getBoundaryIndexRange;
@@ -1,145 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.DateRangePickerView = void 0;
7
- var _dayjs = _interopRequireDefault(require("dayjs"));
8
- var _react = _interopRequireWildcard(require("react"));
9
- var _index = require("./../index.js");
10
- var _index2 = require("./style/index.js");
11
- var _utils = require("./utils.js");
12
- var _jsxRuntime = require("react/jsx-runtime");
13
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
14
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
- const DateRangePickerView = ({
16
- onClose,
17
- min,
18
- max,
19
- value,
20
- defaultValue,
21
- onChange,
22
- title = '自定义日期',
23
- startText = '请选择开始时间',
24
- endText = '请选择结束时间',
25
- confirmText = '确定',
26
- resetText = '重置',
27
- formatter
28
- }) => {
29
- const styles = (0, _index2.useDateRangePickerStyles)();
30
-
31
- /** 当前编辑的是 start 还是 end */
32
- const [selected, setSelected] = (0, _react.useState)('start');
33
-
34
- /** 初始化 draft */
35
- const [draft, setDraft] = (0, _react.useState)(() => {
36
- if (value) return (0, _utils.sortRange)(value);
37
- if (defaultValue) return (0, _utils.sortRange)(defaultValue);
38
- return [new Date(), undefined];
39
- });
40
- const _startText = draft[0] && (typeof formatter === 'string' ? (0, _dayjs.default)(draft[0]).format(formatter) : formatter(draft[0])) || startText;
41
- const _endText = draft[1] && (typeof formatter === 'string' ? (0, _dayjs.default)(draft[1]).format(formatter) : formatter(draft[1])) || endText;
42
-
43
- /** Picker 当前值 */
44
- const pickerValue = (selected === 'start' ? draft[0] : draft[1]) ?? new Date();
45
-
46
- /** Picker 可选范围 - 优化依赖 */
47
- const minDate = (0, _react.useMemo)(() => {
48
- return selected === 'end' ? draft[0] ?? min : min;
49
- }, [selected, draft, min]);
50
- const maxDate = (0, _react.useMemo)(() => {
51
- return selected === 'start' ? draft[1] ?? max : max;
52
- }, [selected, draft, max]);
53
-
54
- /** Picker 改 draft */
55
- const onChangePicker = (0, _react.useCallback)(date => {
56
- setDraft(prev => {
57
- const index = selected === 'start' ? 0 : 1;
58
- // 如果日期相同,不更新
59
- if (prev[index]?.getTime() === date.getTime()) {
60
- return prev;
61
- }
62
- const next = [prev[0], prev[1]];
63
- next[index] = date;
64
- return next;
65
- });
66
- }, [selected]);
67
- const changeSelected = (0, _react.useCallback)(nextSelected => {
68
- setSelected(nextSelected);
69
- setDraft(prev => {
70
- const next = [prev[0], prev[1]];
71
- const index = nextSelected === 'start' ? 0 : 1;
72
- next[index] ??= new Date();
73
- return next;
74
- });
75
- }, []);
76
-
77
- /** 重置 */
78
- const onReset = (0, _react.useCallback)(() => {
79
- setDraft([new Date(), undefined]);
80
- setSelected('start');
81
- }, []);
82
-
83
- /** 是否可以确定 */
84
- const canConfirm = Boolean(draft[0] && draft[1]);
85
-
86
- /** 确定:唯一对外出口 */
87
- const onConfirm = (0, _react.useCallback)(() => {
88
- if (!draft[0] || !draft[1]) return;
89
-
90
- // start > end 自动修正
91
- onChange?.((0, _utils.sortRange)([draft[0], draft[1]]));
92
- }, [draft, onChange]);
93
-
94
- // 受控模式:检测外部 value 变化
95
- (0, _react.useEffect)(() => {
96
- if (value) {
97
- const sorted = (0, _utils.sortRange)(value);
98
- setDraft(sorted);
99
- }
100
- }, [value]);
101
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_index.Flex, {
102
- vertical: true,
103
- align: "stretch",
104
- style: styles.container,
105
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_index.ModalHeader, {
106
- title: title,
107
- onClose: onClose
108
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_index.Flex, {
109
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Button, {
110
- variant: "outline",
111
- theme: selected === 'start' ? 'primary' : 'default',
112
- block: true,
113
- text: _startText,
114
- onPress: () => changeSelected('start')
115
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Text, {
116
- children: "\u2014"
117
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Button, {
118
- variant: "outline",
119
- theme: selected === 'end' ? 'primary' : 'default',
120
- block: true,
121
- text: _endText,
122
- onPress: () => changeSelected('end')
123
- })]
124
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.DateTimePicker, {
125
- value: pickerValue,
126
- min: minDate,
127
- max: maxDate,
128
- onChange: onChangePicker
129
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_index.Button.Group, {
130
- block: true,
131
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Button, {
132
- size: "large",
133
- text: resetText,
134
- theme: "secondary",
135
- onPress: onReset
136
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Button, {
137
- size: "large",
138
- text: confirmText,
139
- onPress: onConfirm,
140
- disabled: !canConfirm
141
- })]
142
- })]
143
- });
144
- };
145
- exports.DateRangePickerView = DateRangePickerView;
@@ -1,39 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.DateTimePicker = void 0;
7
- var _ahooks = require("ahooks");
8
- var _react = require("react");
9
- var _index = require("./../index.js");
10
- var _useDateTimePicker = require("./hooks/use-date-time-picker.js");
11
- var _jsxRuntime = require("react/jsx-runtime");
12
- const DateTimePicker = ({
13
- mode = 'Y-D',
14
- min,
15
- max,
16
- ...restProps
17
- }) => {
18
- // 确保有一个稳定的默认日期值
19
- const defaultDate = (0, _react.useMemo)(() => new Date(), []);
20
- const [value, onChange] = (0, _ahooks.useControllableValue)(restProps, {
21
- defaultValue: defaultDate
22
- });
23
-
24
- // 确保 value 始终有值,避免 undefined 传递给 hook
25
- const safeValue = value ?? defaultDate;
26
- const [values, columns, onChangePicker] = (0, _useDateTimePicker.useDateTimePicker)({
27
- mode,
28
- value: safeValue,
29
- onChange,
30
- min,
31
- max
32
- });
33
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.PickerView, {
34
- columns: columns,
35
- value: values,
36
- onChange: onChangePicker
37
- });
38
- };
39
- exports.DateTimePicker = DateTimePicker;