@oceanbase/design 1.0.0-alpha.2 → 1.0.0-alpha.20

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 (630) hide show
  1. package/dist/design.min.css +1 -1
  2. package/dist/design.min.js +1 -1
  3. package/dist/reset.css +2 -1
  4. package/dist/static/Inter-Medium.ea234620.woff2 +0 -0
  5. package/dist/static/Inter-Regular.34ba43c9.woff2 +0 -0
  6. package/dist/static/Inter-SemiBold.95439fb4.woff2 +0 -0
  7. package/es/_util/document.d.ts +11 -0
  8. package/es/_util/document.js +65 -0
  9. package/es/_util/genComponentStyleHook.d.ts +21 -4
  10. package/es/_util/genComponentStyleHook.js +68 -20
  11. package/es/_util/index.d.ts +2 -0
  12. package/es/_util/index.js +28 -1
  13. package/es/_util/styleChecker.js +1 -0
  14. package/es/affix/index.js +1 -0
  15. package/es/alert/index.d.ts +2 -2
  16. package/es/alert/index.js +27 -6
  17. package/es/alert/style/index.d.ts +2 -5
  18. package/es/alert/style/index.js +162 -67
  19. package/es/anchor/index.js +1 -0
  20. package/es/app/index.d.ts +8 -0
  21. package/es/app/index.js +44 -1
  22. package/es/app/style/index.d.ts +6 -0
  23. package/es/app/style/index.js +9 -0
  24. package/es/auto-complete/index.js +1 -0
  25. package/es/avatar/index.js +1 -0
  26. package/es/badge/index.d.ts +2 -0
  27. package/es/badge/index.js +38 -14
  28. package/es/badge/style/index.d.ts +2 -5
  29. package/es/badge/style/index.js +9 -9
  30. package/es/breadcrumb/Breadcrumb.js +1 -0
  31. package/es/breadcrumb/index.js +1 -0
  32. package/es/button/index.js +19 -6
  33. package/es/button/style/index.d.ts +4 -5
  34. package/es/button/style/index.js +49 -7
  35. package/es/calendar/index.js +1 -0
  36. package/es/card/index.d.ts +10 -0
  37. package/es/card/index.js +106 -11
  38. package/es/card/style/index.d.ts +2 -5
  39. package/es/card/style/index.js +113 -31
  40. package/es/carousel/index.js +1 -0
  41. package/es/cascader/index.js +1 -0
  42. package/es/checkbox/index.js +10 -2
  43. package/es/checkbox/style/index.d.ts +2 -5
  44. package/es/checkbox/style/index.js +14 -11
  45. package/es/collapse/index.js +1 -0
  46. package/es/color-picker/index.js +1 -0
  47. package/es/config-provider/DefaultRenderEmpty.js +1 -0
  48. package/es/config-provider/context.d.ts +11 -0
  49. package/es/config-provider/context.js +2 -1
  50. package/es/config-provider/index.d.ts +9 -3
  51. package/es/config-provider/index.js +137 -41
  52. package/es/date-picker/index.js +1 -0
  53. package/es/descriptions/hooks/useItems.d.ts +1 -1
  54. package/es/descriptions/hooks/useItems.js +1 -0
  55. package/es/descriptions/index.d.ts +10 -0
  56. package/es/descriptions/index.js +63 -5
  57. package/es/descriptions/style/index.d.ts +3 -6
  58. package/es/descriptions/style/index.js +68 -9
  59. package/es/divider/index.js +1 -0
  60. package/es/drawer/index.d.ts +2 -0
  61. package/es/drawer/index.js +44 -8
  62. package/es/drawer/style/index.d.ts +2 -5
  63. package/es/drawer/style/index.js +66 -17
  64. package/es/dropdown/dropdown-button.js +27 -6
  65. package/es/dropdown/index.js +29 -3
  66. package/es/dropdown/style/index.d.ts +6 -0
  67. package/es/{_util/genStyle.js → dropdown/style/index.js} +18 -12
  68. package/es/empty/colored.js +1 -0
  69. package/es/empty/database.js +1 -0
  70. package/es/empty/default.js +1 -0
  71. package/es/empty/guide.js +1 -0
  72. package/es/empty/index.js +5 -3
  73. package/es/empty/style/index.d.ts +2 -5
  74. package/es/empty/style/index.js +11 -10
  75. package/es/filter/FilterContext.d.ts +27 -0
  76. package/es/filter/FilterContext.js +26 -0
  77. package/es/filter/components/ClearIcon.d.ts +6 -0
  78. package/es/filter/components/ClearIcon.js +26 -0
  79. package/es/filter/components/CountNumber.d.ts +8 -0
  80. package/es/filter/components/CountNumber.js +20 -0
  81. package/es/filter/components/FilterButton.d.ts +34 -0
  82. package/es/filter/components/FilterButton.js +221 -0
  83. package/es/filter/components/FilterCascader/components/CascaderOption/OptionCheckbox.d.ts +20 -0
  84. package/es/filter/components/FilterCascader/components/CascaderOption/OptionCheckbox.js +101 -0
  85. package/es/filter/components/FilterCascader/components/CascaderOption/OptionItem.d.ts +13 -0
  86. package/es/filter/components/FilterCascader/components/CascaderOption/OptionItem.js +44 -0
  87. package/es/filter/components/FilterCascader/components/FlatCascaderContent/index.d.ts +17 -0
  88. package/es/filter/components/FilterCascader/components/FlatCascaderContent/index.js +78 -0
  89. package/es/filter/components/FilterCascader/components/NormalCascaderContent.d.ts +24 -0
  90. package/es/filter/components/FilterCascader/components/NormalCascaderContent.js +279 -0
  91. package/es/filter/components/FilterCascader/constants.d.ts +7 -0
  92. package/es/filter/components/FilterCascader/constants.js +8 -0
  93. package/es/filter/components/FilterCascader/hooks/useCascaderCallbacks.d.ts +12 -0
  94. package/es/filter/components/FilterCascader/hooks/useCascaderCallbacks.js +101 -0
  95. package/es/filter/components/FilterCascader/hooks/useCascaderLabels.d.ts +9 -0
  96. package/es/filter/components/FilterCascader/hooks/useCascaderLabels.js +50 -0
  97. package/es/filter/components/FilterCascader/hooks/useNormalizedValue.d.ts +7 -0
  98. package/es/filter/components/FilterCascader/hooks/useNormalizedValue.js +53 -0
  99. package/es/filter/components/FilterCascader/index.d.ts +5 -0
  100. package/es/filter/components/FilterCascader/index.js +317 -0
  101. package/es/filter/components/FilterCascader/types.d.ts +56 -0
  102. package/es/filter/components/FilterCascader/types.js +1 -0
  103. package/es/filter/components/FilterCascader/utils/countUtils.d.ts +13 -0
  104. package/es/filter/components/FilterCascader/utils/countUtils.js +48 -0
  105. package/es/filter/components/FilterCascader/utils/pathUtils.d.ts +17 -0
  106. package/es/filter/components/FilterCascader/utils/pathUtils.js +91 -0
  107. package/es/filter/components/FilterCheckbox.d.ts +26 -0
  108. package/es/filter/components/FilterCheckbox.js +358 -0
  109. package/es/filter/components/FilterInput.d.ts +18 -0
  110. package/es/filter/components/FilterInput.js +148 -0
  111. package/es/filter/components/FilterRange.d.ts +19 -0
  112. package/es/filter/components/FilterRange.js +201 -0
  113. package/es/filter/components/FilterSelect.d.ts +23 -0
  114. package/es/filter/components/FilterSelect.js +245 -0
  115. package/es/filter/components/FilterSlot.d.ts +28 -0
  116. package/es/filter/components/FilterSlot.js +189 -0
  117. package/es/filter/components/FilterSwitch.d.ts +13 -0
  118. package/es/filter/components/FilterSwitch.js +102 -0
  119. package/es/filter/components/FilterWrap.d.ts +20 -0
  120. package/es/filter/components/FilterWrap.js +329 -0
  121. package/es/filter/components/ResponsiveFilterGroup.d.ts +27 -0
  122. package/es/filter/components/ResponsiveFilterGroup.js +477 -0
  123. package/es/filter/components/WrappedTagsDisplay.d.ts +22 -0
  124. package/es/filter/components/WrappedTagsDisplay.js +80 -0
  125. package/es/filter/hooks/index.d.ts +4 -0
  126. package/es/filter/hooks/index.js +3 -0
  127. package/es/filter/hooks/useControlledState.d.ts +9 -0
  128. package/es/filter/hooks/useControlledState.js +37 -0
  129. package/es/filter/hooks/useFilterCollapsed.d.ts +8 -0
  130. package/es/filter/hooks/useFilterCollapsed.js +15 -0
  131. package/es/filter/hooks/useFilterTooltip.d.ts +29 -0
  132. package/es/filter/hooks/useFilterTooltip.js +127 -0
  133. package/es/filter/index.d.ts +24 -0
  134. package/es/filter/index.js +27 -0
  135. package/es/filter/style/index.d.ts +15 -0
  136. package/es/filter/style/index.js +245 -0
  137. package/es/filter/type.d.ts +41 -0
  138. package/es/filter/type.js +1 -0
  139. package/es/filter/utils.d.ts +50 -0
  140. package/es/filter/utils.js +189 -0
  141. package/es/float-button/index.js +1 -0
  142. package/es/fonts/Inter-Medium.woff2 +0 -0
  143. package/es/fonts/Inter-Regular.woff2 +0 -0
  144. package/es/fonts/Inter-SemiBold.woff2 +0 -0
  145. package/es/form/FormItem.d.ts +1 -0
  146. package/es/form/FormItem.js +27 -11
  147. package/es/form/index.js +10 -2
  148. package/es/form/style/index.d.ts +2 -5
  149. package/es/form/style/index.js +21 -8
  150. package/es/grid/col.js +1 -0
  151. package/es/grid/index.js +1 -0
  152. package/es/grid/row.js +1 -0
  153. package/es/image/index.js +1 -0
  154. package/es/index.d.ts +182 -4
  155. package/es/index.js +4 -2
  156. package/es/input/Input.d.ts +2 -0
  157. package/es/input/Input.js +31 -7
  158. package/es/input/Password.js +25 -5
  159. package/es/input/Search.js +25 -5
  160. package/es/input/TextArea.js +25 -5
  161. package/es/input/index.js +1 -0
  162. package/es/input/style/index.d.ts +6 -0
  163. package/es/input/style/index.js +31 -0
  164. package/es/input-number/index.d.ts +2 -1
  165. package/es/input-number/index.js +19 -4
  166. package/es/input-number/style/index.d.ts +6 -0
  167. package/es/input-number/style/index.js +26 -0
  168. package/es/layout/index.js +1 -0
  169. package/es/list/index.js +1 -0
  170. package/es/locale/en-US.js +10 -2
  171. package/es/locale/index.d.ts +11 -0
  172. package/es/locale/index.js +1 -0
  173. package/es/locale/ja-JP.d.ts +3 -0
  174. package/es/locale/ja-JP.js +36 -0
  175. package/es/locale/zh-CN.js +10 -2
  176. package/es/locale/zh-TW.js +10 -2
  177. package/es/lottie/index.js +1 -0
  178. package/es/mentions/index.js +1 -0
  179. package/es/menu/index.js +1 -0
  180. package/es/message/index.js +1 -0
  181. package/es/modal/Modal.d.ts +3 -1
  182. package/es/modal/Modal.js +69 -14
  183. package/es/modal/Progress.js +1 -0
  184. package/es/modal/index.js +1 -0
  185. package/es/modal/style/index.d.ts +2 -5
  186. package/es/modal/style/index.js +96 -26
  187. package/es/notification/index.js +1 -0
  188. package/es/pagination/index.js +1 -0
  189. package/es/popconfirm/index.js +1 -0
  190. package/es/popover/index.js +1 -0
  191. package/es/progress/index.js +1 -0
  192. package/es/qrcode/index.js +1 -0
  193. package/es/radio/RadioButton.d.ts +8 -0
  194. package/es/radio/RadioButton.js +42 -0
  195. package/es/radio/index.d.ts +4 -0
  196. package/es/radio/index.js +12 -3
  197. package/es/radio/style/index.d.ts +2 -5
  198. package/es/radio/style/index.js +30 -10
  199. package/es/rate/index.js +1 -0
  200. package/es/result/403.js +1 -0
  201. package/es/result/404.js +1 -0
  202. package/es/result/500.js +1 -0
  203. package/es/result/Error.js +1 -0
  204. package/es/result/Processing.js +1 -0
  205. package/es/result/Success.js +1 -0
  206. package/es/result/Warning.js +1 -0
  207. package/es/result/index.d.ts +2 -2
  208. package/es/result/index.js +15 -6
  209. package/es/result/style/index.d.ts +2 -5
  210. package/es/result/style/index.js +3 -6
  211. package/es/segmented/index.d.ts +1 -0
  212. package/es/segmented/index.js +25 -9
  213. package/es/segmented/style/index.d.ts +1 -4
  214. package/es/segmented/style/index.js +4 -6
  215. package/es/select/index.js +10 -2
  216. package/es/select/style/index.d.ts +2 -5
  217. package/es/select/style/index.js +13 -8
  218. package/es/skeleton/index.js +1 -0
  219. package/es/slider/index.js +10 -2
  220. package/es/slider/style/index.d.ts +2 -5
  221. package/es/slider/style/index.js +11 -11
  222. package/es/space/index.js +10 -2
  223. package/es/space/style/index.d.ts +2 -5
  224. package/es/space/style/index.js +3 -6
  225. package/es/spin/assets/spin-gray.json +1 -1
  226. package/es/spin/assets/spin.json +1 -1
  227. package/es/spin/index.js +10 -2
  228. package/es/spin/style/index.d.ts +2 -5
  229. package/es/spin/style/index.js +26 -29
  230. package/es/static-function/index.d.ts +176 -1
  231. package/es/static-function/index.js +18 -5
  232. package/es/statistic/index.js +1 -0
  233. package/es/steps/index.js +1 -0
  234. package/es/style/global.d.ts +9 -0
  235. package/es/style/global.js +155 -0
  236. package/es/style/reset.css +2 -1
  237. package/es/switch/index.js +10 -2
  238. package/es/switch/style/index.d.ts +2 -5
  239. package/es/switch/style/index.js +7 -8
  240. package/es/table/index.d.ts +3 -6
  241. package/es/table/index.js +264 -22
  242. package/es/table/style/index.d.ts +2 -5
  243. package/es/table/style/index.js +188 -50
  244. package/es/tabs/TabPane.js +1 -0
  245. package/es/tabs/hooks/useLegacyItems.js +1 -0
  246. package/es/tabs/index.js +10 -2
  247. package/es/tabs/style/index.d.ts +2 -5
  248. package/es/tabs/style/index.js +9 -8
  249. package/es/tag/index.d.ts +1 -0
  250. package/es/tag/index.js +21 -5
  251. package/es/tag/style/index.d.ts +3 -8
  252. package/es/tag/style/index.js +50 -39
  253. package/es/theme/compact.d.ts +1 -1
  254. package/es/theme/compact.js +2 -6
  255. package/es/theme/dark.d.ts +1 -48
  256. package/es/theme/default.d.ts +65 -2
  257. package/es/theme/default.js +368 -65
  258. package/es/theme/index.d.ts +22 -57
  259. package/es/theme/index.js +13 -1
  260. package/es/theme/interface.d.ts +147 -0
  261. package/es/theme/interface.js +4 -1
  262. package/es/theme/obToken.d.ts +206 -0
  263. package/es/theme/obToken.js +255 -0
  264. package/es/theme/obTokenMeta.d.ts +24 -0
  265. package/es/theme/obTokenMeta.js +937 -0
  266. package/es/theme/style/aliyun.less +41 -41
  267. package/es/theme/style/compact.less +159 -130
  268. package/es/theme/style/dark.less +54 -54
  269. package/es/theme/style/default.less +160 -131
  270. package/es/time-picker/index.js +1 -0
  271. package/es/timeline/index.js +1 -0
  272. package/es/tooltip/MouseTooltip.js +1 -0
  273. package/es/tooltip/ReactStickyMouseTooltip.js +1 -0
  274. package/es/tooltip/index.js +5 -4
  275. package/es/tooltip/style/index.d.ts +2 -5
  276. package/es/tooltip/style/index.js +10 -13
  277. package/es/tour/index.js +1 -0
  278. package/es/transfer/index.js +1 -0
  279. package/es/tree/index.js +1 -0
  280. package/es/tree-select/index.js +10 -2
  281. package/es/tree-select/style/index.d.ts +2 -5
  282. package/es/tree-select/style/index.js +3 -6
  283. package/es/typography/Link.js +10 -2
  284. package/es/typography/Paragraph.js +10 -2
  285. package/es/typography/Text.d.ts +1 -0
  286. package/es/typography/Text.js +13 -4
  287. package/es/typography/Title.js +10 -2
  288. package/es/typography/hooks/useClassName.d.ts +1 -1
  289. package/es/typography/hooks/useClassName.js +2 -2
  290. package/es/typography/index.d.ts +12 -1
  291. package/es/typography/index.js +3 -1
  292. package/es/typography/style/index.d.ts +2 -5
  293. package/es/typography/style/index.js +37 -28
  294. package/es/upload/index.js +1 -0
  295. package/es/watermark/index.js +1 -0
  296. package/lib/_util/document.d.ts +11 -0
  297. package/lib/_util/document.js +74 -0
  298. package/lib/_util/genComponentStyleHook.d.ts +21 -4
  299. package/lib/_util/genComponentStyleHook.js +69 -57
  300. package/lib/_util/getEllipsisConfig.js +16 -39
  301. package/lib/_util/index.d.ts +2 -0
  302. package/lib/_util/index.js +51 -29
  303. package/lib/_util/styleChecker.js +32 -53
  304. package/lib/_util/type.js +4 -16
  305. package/lib/_util/useFlexGapSupport.js +11 -36
  306. package/lib/affix/index.js +15 -22
  307. package/lib/alert/index.d.ts +2 -2
  308. package/lib/alert/index.js +70 -79
  309. package/lib/alert/style/index.d.ts +2 -5
  310. package/lib/alert/style/index.js +199 -105
  311. package/lib/anchor/index.js +26 -24
  312. package/lib/app/index.d.ts +8 -0
  313. package/lib/app/index.js +49 -22
  314. package/lib/app/style/index.d.ts +6 -0
  315. package/lib/app/style/index.js +18 -0
  316. package/lib/auto-complete/index.js +15 -22
  317. package/lib/avatar/index.js +26 -24
  318. package/lib/badge/index.d.ts +2 -0
  319. package/lib/badge/index.js +108 -102
  320. package/lib/badge/style/index.d.ts +2 -5
  321. package/lib/badge/style/index.js +26 -46
  322. package/lib/breadcrumb/Breadcrumb.js +15 -22
  323. package/lib/breadcrumb/index.js +31 -32
  324. package/lib/button/index.js +56 -60
  325. package/lib/button/style/index.d.ts +4 -5
  326. package/lib/button/style/index.js +73 -35
  327. package/lib/calendar/index.js +15 -22
  328. package/lib/card/Card.js +14 -21
  329. package/lib/card/index.d.ts +10 -0
  330. package/lib/card/index.js +202 -114
  331. package/lib/card/style/index.d.ts +2 -5
  332. package/lib/card/style/index.js +219 -88
  333. package/lib/carousel/index.js +15 -22
  334. package/lib/cascader/index.js +15 -22
  335. package/lib/checkbox/index.js +52 -69
  336. package/lib/checkbox/style/index.d.ts +2 -5
  337. package/lib/checkbox/style/index.js +25 -38
  338. package/lib/collapse/index.js +15 -22
  339. package/lib/color-picker/index.js +15 -22
  340. package/lib/color-picker/interface.js +14 -21
  341. package/lib/config-provider/DefaultRenderEmpty.js +34 -48
  342. package/lib/config-provider/SizeContext.js +14 -21
  343. package/lib/config-provider/context.d.ts +11 -0
  344. package/lib/config-provider/context.js +14 -21
  345. package/lib/config-provider/index.d.ts +9 -3
  346. package/lib/config-provider/index.js +254 -135
  347. package/lib/config-provider/navigate.js +4 -16
  348. package/lib/date-picker/index.js +15 -22
  349. package/lib/descriptions/Item.js +6 -24
  350. package/lib/descriptions/hooks/useItems.d.ts +1 -1
  351. package/lib/descriptions/hooks/useItems.js +50 -72
  352. package/lib/descriptions/index.d.ts +10 -0
  353. package/lib/descriptions/index.js +104 -75
  354. package/lib/descriptions/style/index.d.ts +3 -6
  355. package/lib/descriptions/style/index.js +138 -50
  356. package/lib/divider/index.js +15 -22
  357. package/lib/drawer/index.d.ts +2 -0
  358. package/lib/drawer/index.js +140 -118
  359. package/lib/drawer/style/index.d.ts +2 -5
  360. package/lib/drawer/style/index.js +94 -52
  361. package/lib/dropdown/dropdown-button.js +34 -39
  362. package/lib/dropdown/index.js +47 -47
  363. package/lib/dropdown/style/index.d.ts +6 -0
  364. package/lib/dropdown/style/index.js +35 -0
  365. package/lib/empty/colored.js +325 -356
  366. package/lib/empty/database.js +227 -251
  367. package/lib/empty/default.js +53 -54
  368. package/lib/empty/guide.js +147 -210
  369. package/lib/empty/index.js +77 -91
  370. package/lib/empty/style/index.d.ts +2 -5
  371. package/lib/empty/style/index.js +32 -47
  372. package/lib/filter/FilterContext.d.ts +27 -0
  373. package/lib/filter/FilterContext.js +33 -0
  374. package/lib/filter/components/ClearIcon.d.ts +6 -0
  375. package/lib/filter/components/ClearIcon.js +35 -0
  376. package/lib/filter/components/CountNumber.d.ts +8 -0
  377. package/lib/filter/components/CountNumber.js +30 -0
  378. package/lib/filter/components/FilterButton.d.ts +34 -0
  379. package/lib/filter/components/FilterButton.js +194 -0
  380. package/lib/filter/components/FilterCascader/components/CascaderOption/OptionCheckbox.d.ts +20 -0
  381. package/lib/filter/components/FilterCascader/components/CascaderOption/OptionCheckbox.js +91 -0
  382. package/lib/filter/components/FilterCascader/components/CascaderOption/OptionItem.d.ts +13 -0
  383. package/lib/filter/components/FilterCascader/components/CascaderOption/OptionItem.js +51 -0
  384. package/lib/filter/components/FilterCascader/components/FlatCascaderContent/index.d.ts +17 -0
  385. package/lib/filter/components/FilterCascader/components/FlatCascaderContent/index.js +77 -0
  386. package/lib/filter/components/FilterCascader/components/NormalCascaderContent.d.ts +24 -0
  387. package/lib/filter/components/FilterCascader/components/NormalCascaderContent.js +258 -0
  388. package/lib/filter/components/FilterCascader/constants.d.ts +7 -0
  389. package/lib/filter/components/FilterCascader/constants.js +14 -0
  390. package/lib/filter/components/FilterCascader/hooks/useCascaderCallbacks.d.ts +12 -0
  391. package/lib/filter/components/FilterCascader/hooks/useCascaderCallbacks.js +81 -0
  392. package/lib/filter/components/FilterCascader/hooks/useCascaderLabels.d.ts +9 -0
  393. package/lib/filter/components/FilterCascader/hooks/useCascaderLabels.js +56 -0
  394. package/lib/filter/components/FilterCascader/hooks/useNormalizedValue.d.ts +7 -0
  395. package/lib/filter/components/FilterCascader/hooks/useNormalizedValue.js +48 -0
  396. package/lib/filter/components/FilterCascader/index.d.ts +5 -0
  397. package/lib/filter/components/FilterCascader/index.js +298 -0
  398. package/lib/filter/components/FilterCascader/types.d.ts +56 -0
  399. package/lib/filter/components/FilterCascader/types.js +5 -0
  400. package/lib/filter/components/FilterCascader/utils/countUtils.d.ts +13 -0
  401. package/lib/filter/components/FilterCascader/utils/countUtils.js +49 -0
  402. package/lib/filter/components/FilterCascader/utils/pathUtils.d.ts +17 -0
  403. package/lib/filter/components/FilterCascader/utils/pathUtils.js +56 -0
  404. package/lib/filter/components/FilterCheckbox.d.ts +26 -0
  405. package/lib/filter/components/FilterCheckbox.js +319 -0
  406. package/lib/filter/components/FilterInput.d.ts +18 -0
  407. package/lib/filter/components/FilterInput.js +134 -0
  408. package/lib/filter/components/FilterRange.d.ts +19 -0
  409. package/lib/filter/components/FilterRange.js +186 -0
  410. package/lib/filter/components/FilterSelect.d.ts +23 -0
  411. package/lib/filter/components/FilterSelect.js +221 -0
  412. package/lib/filter/components/FilterSlot.d.ts +28 -0
  413. package/lib/filter/components/FilterSlot.js +174 -0
  414. package/lib/filter/components/FilterSwitch.d.ts +13 -0
  415. package/lib/filter/components/FilterSwitch.js +91 -0
  416. package/lib/filter/components/FilterWrap.d.ts +20 -0
  417. package/lib/filter/components/FilterWrap.js +306 -0
  418. package/lib/filter/components/ResponsiveFilterGroup.d.ts +27 -0
  419. package/lib/filter/components/ResponsiveFilterGroup.js +412 -0
  420. package/lib/filter/components/WrappedTagsDisplay.d.ts +22 -0
  421. package/lib/filter/components/WrappedTagsDisplay.js +84 -0
  422. package/lib/filter/hooks/index.d.ts +4 -0
  423. package/lib/filter/hooks/index.js +26 -0
  424. package/lib/filter/hooks/useControlledState.d.ts +9 -0
  425. package/lib/filter/hooks/useControlledState.js +34 -0
  426. package/lib/filter/hooks/useFilterCollapsed.d.ts +8 -0
  427. package/lib/filter/hooks/useFilterCollapsed.js +21 -0
  428. package/lib/filter/hooks/useFilterTooltip.d.ts +29 -0
  429. package/lib/filter/hooks/useFilterTooltip.js +121 -0
  430. package/lib/filter/index.d.ts +24 -0
  431. package/lib/filter/index.js +45 -0
  432. package/lib/filter/style/index.d.ts +15 -0
  433. package/lib/filter/style/index.js +308 -0
  434. package/lib/filter/type.d.ts +41 -0
  435. package/lib/filter/type.js +5 -0
  436. package/lib/filter/utils.d.ts +50 -0
  437. package/lib/filter/utils.js +192 -0
  438. package/lib/float-button/index.js +15 -22
  439. package/lib/float-button/interface.js +14 -21
  440. package/lib/fonts/Inter-Medium.woff2 +0 -0
  441. package/lib/fonts/Inter-Regular.woff2 +0 -0
  442. package/lib/fonts/Inter-SemiBold.woff2 +0 -0
  443. package/lib/form/FormItem.d.ts +1 -0
  444. package/lib/form/FormItem.js +81 -77
  445. package/lib/form/index.js +58 -76
  446. package/lib/form/interface.js +14 -21
  447. package/lib/form/style/index.d.ts +2 -5
  448. package/lib/form/style/index.js +42 -38
  449. package/lib/grid/col.js +28 -45
  450. package/lib/grid/index.js +25 -44
  451. package/lib/grid/row.js +30 -45
  452. package/lib/image/index.js +15 -22
  453. package/lib/index.d.ts +182 -4
  454. package/lib/index.js +363 -152
  455. package/lib/input/Input.d.ts +2 -0
  456. package/lib/input/Input.js +62 -52
  457. package/lib/input/Password.js +59 -59
  458. package/lib/input/Search.js +55 -53
  459. package/lib/input/TextArea.js +59 -59
  460. package/lib/input/index.js +30 -50
  461. package/lib/input/style/index.d.ts +6 -0
  462. package/lib/input/style/index.js +55 -0
  463. package/lib/input-number/index.d.ts +2 -1
  464. package/lib/input-number/index.js +56 -61
  465. package/lib/input-number/style/index.d.ts +6 -0
  466. package/lib/input-number/style/index.js +43 -0
  467. package/lib/layout/index.js +15 -22
  468. package/lib/list/index.js +52 -59
  469. package/lib/locale/en-US.js +29 -48
  470. package/lib/locale/index.d.ts +11 -0
  471. package/lib/locale/index.js +24 -38
  472. package/lib/locale/ja-JP.d.ts +3 -0
  473. package/lib/locale/ja-JP.js +41 -0
  474. package/lib/locale/useLocale.js +6 -24
  475. package/lib/locale/zh-CN.js +29 -48
  476. package/lib/locale/zh-TW.js +29 -48
  477. package/lib/lottie/index.js +61 -80
  478. package/lib/mentions/index.js +15 -22
  479. package/lib/menu/index.js +15 -22
  480. package/lib/menu/interface.js +14 -21
  481. package/lib/message/index.js +15 -22
  482. package/lib/message/interface.js +14 -21
  483. package/lib/modal/Modal.d.ts +3 -1
  484. package/lib/modal/Modal.js +112 -70
  485. package/lib/modal/Progress.js +44 -58
  486. package/lib/modal/index.js +23 -43
  487. package/lib/modal/interface.js +14 -21
  488. package/lib/modal/style/index.d.ts +2 -5
  489. package/lib/modal/style/index.js +136 -60
  490. package/lib/notification/index.js +15 -22
  491. package/lib/notification/interface.js +14 -21
  492. package/lib/pagination/index.js +15 -22
  493. package/lib/popconfirm/index.js +15 -22
  494. package/lib/popover/index.js +15 -22
  495. package/lib/progress/index.js +26 -24
  496. package/lib/progress/progress.js +14 -21
  497. package/lib/qrcode/index.js +15 -22
  498. package/lib/qrcode/interface.js +14 -21
  499. package/lib/radio/RadioButton.d.ts +8 -0
  500. package/lib/radio/RadioButton.js +44 -0
  501. package/lib/radio/index.d.ts +4 -0
  502. package/lib/radio/index.js +54 -62
  503. package/lib/radio/interface.js +14 -21
  504. package/lib/radio/style/index.d.ts +2 -5
  505. package/lib/radio/style/index.js +60 -38
  506. package/lib/rate/index.js +15 -22
  507. package/lib/result/403.js +166 -163
  508. package/lib/result/404.js +302 -305
  509. package/lib/result/500.js +226 -292
  510. package/lib/result/Error.js +126 -133
  511. package/lib/result/Processing.js +348 -248
  512. package/lib/result/Success.js +207 -203
  513. package/lib/result/Warning.js +513 -550
  514. package/lib/result/index.d.ts +2 -2
  515. package/lib/result/index.js +65 -80
  516. package/lib/result/style/index.d.ts +2 -5
  517. package/lib/result/style/index.js +16 -39
  518. package/lib/segmented/index.d.ts +1 -0
  519. package/lib/segmented/index.js +86 -73
  520. package/lib/segmented/style/index.d.ts +1 -4
  521. package/lib/segmented/style/index.js +21 -40
  522. package/lib/select/index.js +63 -81
  523. package/lib/select/style/index.d.ts +2 -5
  524. package/lib/select/style/index.js +29 -37
  525. package/lib/skeleton/index.js +15 -22
  526. package/lib/slider/index.js +48 -58
  527. package/lib/slider/style/index.d.ts +2 -5
  528. package/lib/slider/style/index.js +23 -40
  529. package/lib/space/index.js +62 -68
  530. package/lib/space/style/index.d.ts +2 -5
  531. package/lib/space/style/index.js +17 -40
  532. package/lib/spin/assets/spin-gray.json +1 -1
  533. package/lib/spin/assets/spin.json +1 -1
  534. package/lib/spin/index.js +58 -76
  535. package/lib/spin/style/index.d.ts +2 -5
  536. package/lib/spin/style/index.js +51 -60
  537. package/lib/static-function/index.d.ts +176 -1
  538. package/lib/static-function/index.js +52 -69
  539. package/lib/statistic/index.js +15 -22
  540. package/lib/steps/index.js +15 -22
  541. package/lib/style/global.d.ts +9 -0
  542. package/lib/style/global.js +203 -0
  543. package/lib/style/reset.css +2 -1
  544. package/lib/switch/index.js +52 -60
  545. package/lib/switch/style/index.d.ts +2 -5
  546. package/lib/switch/style/index.js +17 -37
  547. package/lib/table/hooks/useDefaultPagination.js +18 -46
  548. package/lib/table/index.d.ts +3 -6
  549. package/lib/table/index.js +412 -177
  550. package/lib/table/interface.js +14 -21
  551. package/lib/table/style/index.d.ts +2 -5
  552. package/lib/table/style/index.js +313 -106
  553. package/lib/tabs/TabPane.js +7 -25
  554. package/lib/tabs/hooks/useLegacyItems.js +27 -44
  555. package/lib/tabs/index.js +107 -120
  556. package/lib/tabs/style/index.d.ts +2 -5
  557. package/lib/tabs/style/index.js +31 -41
  558. package/lib/tag/index.d.ts +1 -0
  559. package/lib/tag/index.js +81 -89
  560. package/lib/tag/style/index.d.ts +3 -8
  561. package/lib/tag/style/index.js +71 -78
  562. package/lib/theme/aliyun.js +7 -34
  563. package/lib/theme/compact.d.ts +1 -1
  564. package/lib/theme/compact.js +9 -40
  565. package/lib/theme/dark.d.ts +1 -48
  566. package/lib/theme/dark.js +9 -36
  567. package/lib/theme/default.d.ts +65 -2
  568. package/lib/theme/default.js +388 -105
  569. package/lib/theme/index.d.ts +22 -57
  570. package/lib/theme/index.js +61 -56
  571. package/lib/theme/interface.d.ts +147 -0
  572. package/lib/theme/interface.js +14 -21
  573. package/lib/theme/internal.js +14 -21
  574. package/lib/theme/obToken.d.ts +206 -0
  575. package/lib/theme/obToken.js +462 -0
  576. package/lib/theme/obTokenMeta.d.ts +24 -0
  577. package/lib/theme/obTokenMeta.js +943 -0
  578. package/lib/theme/style/aliyun.less +41 -41
  579. package/lib/theme/style/compact.less +159 -130
  580. package/lib/theme/style/dark.less +54 -54
  581. package/lib/theme/style/default.less +160 -131
  582. package/lib/theme/themes/compact/index.js +19 -39
  583. package/lib/theme/themes/dark/index.js +19 -39
  584. package/lib/theme/themes/default/index.js +19 -39
  585. package/lib/theme/themes/seed.js +24 -43
  586. package/lib/theme/util/alias.js +19 -39
  587. package/lib/theme/util/format.js +15 -35
  588. package/lib/time-picker/index.js +15 -22
  589. package/lib/timeline/index.js +15 -22
  590. package/lib/tooltip/MouseTooltip.js +66 -77
  591. package/lib/tooltip/ReactStickyMouseTooltip.js +62 -87
  592. package/lib/tooltip/hooks/useTooltipTypeList.js +28 -61
  593. package/lib/tooltip/index.js +122 -133
  594. package/lib/tooltip/style/index.d.ts +2 -5
  595. package/lib/tooltip/style/index.js +26 -50
  596. package/lib/tour/index.js +15 -22
  597. package/lib/tour/interface.js +14 -21
  598. package/lib/transfer/index.js +15 -22
  599. package/lib/transfer/interface.js +14 -21
  600. package/lib/tree/index.js +15 -22
  601. package/lib/tree-select/index.js +66 -84
  602. package/lib/tree-select/style/index.d.ts +2 -5
  603. package/lib/tree-select/style/index.js +10 -35
  604. package/lib/typography/Link.js +54 -68
  605. package/lib/typography/Paragraph.js +54 -68
  606. package/lib/typography/Text.d.ts +1 -0
  607. package/lib/typography/Text.js +55 -68
  608. package/lib/typography/Title.js +54 -68
  609. package/lib/typography/hooks/useClassName.d.ts +1 -1
  610. package/lib/typography/hooks/useClassName.js +12 -42
  611. package/lib/typography/index.d.ts +12 -1
  612. package/lib/typography/index.js +89 -58
  613. package/lib/typography/style/index.d.ts +2 -5
  614. package/lib/typography/style/index.js +57 -64
  615. package/lib/upload/index.js +15 -22
  616. package/lib/upload/interface.js +14 -21
  617. package/lib/watermark/index.js +15 -22
  618. package/package.json +11 -10
  619. package/dist/static/Inter.f6bcdfb6.woff2 +0 -0
  620. package/es/_util/genStyle.d.ts +0 -2
  621. package/es/_util/getWeakenBorderColor.d.ts +0 -1
  622. package/es/_util/getWeakenBorderColor.js +0 -4
  623. package/es/fonts/Inter.woff2 +0 -0
  624. package/es/global.css +0 -48
  625. package/lib/_util/genStyle.d.ts +0 -2
  626. package/lib/_util/genStyle.js +0 -43
  627. package/lib/_util/getWeakenBorderColor.d.ts +0 -1
  628. package/lib/_util/getWeakenBorderColor.js +0 -32
  629. package/lib/fonts/Inter.woff2 +0 -0
  630. package/lib/global.css +0 -48
@@ -0,0 +1,101 @@
1
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
2
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
5
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
6
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
7
+ import { useCallback } from 'react';
8
+ /**
9
+ * 管理级联选择器的所有回调函数
10
+ */
11
+ export var useCascaderCallbacks = function useCascaderCallbacks(currentValue, setValue, options, multiple, filterButtonRef, setOpenPopoverKey) {
12
+ var handleChange = useCallback(function (parentValue, childValue) {
13
+ var _parentOption$childre;
14
+ var parentOption = options.find(function (opt) {
15
+ return opt.value === parentValue;
16
+ });
17
+ var childOption = parentOption === null || parentOption === void 0 || (_parentOption$childre = parentOption.children) === null || _parentOption$childre === void 0 ? void 0 : _parentOption$childre.find(function (child) {
18
+ return child.value === childValue;
19
+ });
20
+ if (parentOption !== null && parentOption !== void 0 && parentOption.disabled || childOption !== null && childOption !== void 0 && childOption.disabled) {
21
+ return;
22
+ }
23
+ if (multiple) {
24
+ var existingIndex = currentValue.findIndex(function (item) {
25
+ return item[0] === parentValue && item[1] === childValue;
26
+ });
27
+ var newValueList;
28
+ if (existingIndex !== -1) {
29
+ newValueList = currentValue.filter(function (_, index) {
30
+ return index !== existingIndex;
31
+ });
32
+ } else {
33
+ newValueList = [].concat(_toConsumableArray(currentValue), [[parentValue, childValue]]);
34
+ }
35
+ setValue(newValueList);
36
+ } else {
37
+ var isCurrentSelected = currentValue.length === 1 && currentValue[0][0] === parentValue && currentValue[0][1] === childValue;
38
+ var _newValueList;
39
+ if (isCurrentSelected) {
40
+ _newValueList = [];
41
+ } else {
42
+ _newValueList = [[parentValue, childValue]];
43
+ }
44
+ setValue(_newValueList);
45
+ setOpenPopoverKey(null);
46
+ setTimeout(function () {
47
+ var _filterButtonRef$curr;
48
+ (_filterButtonRef$curr = filterButtonRef.current) === null || _filterButtonRef$curr === void 0 || _filterButtonRef$curr.closePopover();
49
+ }, 0);
50
+ }
51
+ }, [currentValue, multiple, setValue, options, filterButtonRef, setOpenPopoverKey]);
52
+ var clearByParent = useCallback(function (parentValue) {
53
+ var newValueList = currentValue.filter(function (item) {
54
+ return item[0] !== parentValue;
55
+ });
56
+ setValue(newValueList);
57
+ }, [currentValue, setValue]);
58
+ var handleClear = useCallback(function () {
59
+ setValue([]);
60
+ }, [setValue]);
61
+ var selectAllChildren = useCallback(function (option) {
62
+ var _option$children;
63
+ if (option.disabled) {
64
+ return;
65
+ }
66
+ var otherValues = currentValue.filter(function (item) {
67
+ return item[0] !== option.value;
68
+ });
69
+ var allChildValues = ((_option$children = option.children) === null || _option$children === void 0 ? void 0 : _option$children.filter(function (child) {
70
+ return !child.disabled;
71
+ }).map(function (child) {
72
+ return [option.value, child.value];
73
+ })) || [];
74
+ var newValueList = [].concat(_toConsumableArray(otherValues), _toConsumableArray(allChildValues));
75
+ setValue(newValueList);
76
+ }, [currentValue, setValue]);
77
+
78
+ // 移除某个选中的值
79
+ var handleRemoveTag = useCallback(function (tagValue) {
80
+ // tagValue 格式:path1::path2::path3::index
81
+ var parts = tagValue.split('::');
82
+ if (parts.length >= 2) {
83
+ var pathParts = parts.slice(0, -1); // 移除最后的 index
84
+
85
+ var newValueList = currentValue.filter(function (item) {
86
+ if (item.length !== pathParts.length) return true;
87
+ return !item.every(function (val, idx) {
88
+ return val === pathParts[idx];
89
+ });
90
+ });
91
+ setValue(newValueList);
92
+ }
93
+ }, [currentValue, setValue]);
94
+ return {
95
+ handleChange: handleChange,
96
+ clearByParent: clearByParent,
97
+ handleClear: handleClear,
98
+ selectAllChildren: selectAllChildren,
99
+ handleRemoveTag: handleRemoveTag
100
+ };
101
+ };
@@ -0,0 +1,9 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { CascaderOption, SelectedTag } from '../types';
3
+ /**
4
+ * 管理级联选择器的标签显示逻辑
5
+ */
6
+ export declare const useCascaderLabels: (currentValue: string[][], options: CascaderOption[], label: ReactNode, multiple: boolean, isCollapsed: boolean) => {
7
+ getSelectedLabel: () => ReactNode;
8
+ getSelectedTags: () => SelectedTag[];
9
+ };
@@ -0,0 +1,50 @@
1
+ import { useCallback } from 'react';
2
+ import { findOptionByPath } from "../utils/pathUtils";
3
+
4
+ /**
5
+ * 管理级联选择器的标签显示逻辑
6
+ */
7
+ export var useCascaderLabels = function useCascaderLabels(currentValue, options, label, multiple, isCollapsed) {
8
+ // 获取当前选中值的 label(用于单选模式显示)
9
+ var getSelectedLabel = useCallback(function () {
10
+ if (isCollapsed && currentValue.length === 0) {
11
+ return '';
12
+ }
13
+ if (currentValue.length === 0) {
14
+ return label;
15
+ }
16
+ if (!multiple && currentValue.length === 1) {
17
+ var selectedPath = currentValue[0];
18
+
19
+ // 如果是空路径
20
+ if (!selectedPath || selectedPath.length === 0) {
21
+ return label;
22
+ }
23
+
24
+ // 对于多层级路径,查找最后一个节点
25
+ var currentOption = findOptionByPath(options, selectedPath);
26
+ return (currentOption === null || currentOption === void 0 ? void 0 : currentOption.label) || label;
27
+ }
28
+ return label;
29
+ }, [currentValue, isCollapsed, label, multiple, options]);
30
+
31
+ // 获取选中值的 tags(用于多选模式 Tag 显示)
32
+ var getSelectedTags = useCallback(function () {
33
+ return currentValue.map(function (selectedPath, index) {
34
+ // 对于多层级路径,查找最后一个节点
35
+ var currentOption = findOptionByPath(options, selectedPath);
36
+ var displayLabel = (currentOption === null || currentOption === void 0 ? void 0 : currentOption.label) || selectedPath[selectedPath.length - 1];
37
+ var valueKey = selectedPath.join('::') + "::".concat(index);
38
+ return {
39
+ label: displayLabel,
40
+ value: valueKey,
41
+ parentValue: selectedPath[0],
42
+ childValue: selectedPath[selectedPath.length - 1]
43
+ };
44
+ });
45
+ }, [currentValue, options]);
46
+ return {
47
+ getSelectedLabel: getSelectedLabel,
48
+ getSelectedTags: getSelectedTags
49
+ };
50
+ };
@@ -0,0 +1,7 @@
1
+ /**
2
+ * 管理级联选择器的值,处理单选/多选格式转换
3
+ */
4
+ export declare const useNormalizedValue: (value: string[] | string[][] | undefined, onChange: ((value: string[]) => void) | ((value: string[][]) => void), multiple: boolean) => {
5
+ currentValue: string[][];
6
+ setValue: (newValue: string[][]) => void;
7
+ };
@@ -0,0 +1,53 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
+ import { useCallback, useEffect, useState } from 'react';
8
+
9
+ /**
10
+ * 管理级联选择器的值,处理单选/多选格式转换
11
+ */
12
+ export var useNormalizedValue = function useNormalizedValue(value, onChange, multiple) {
13
+ var normalizeValue = useCallback(function (val) {
14
+ if (!val) return [];
15
+ if (val.length === 0) return [];
16
+ // 判断是否为单选格式 string[]
17
+ if (!multiple && val.length > 0 && typeof val[0] === 'string') {
18
+ return [val];
19
+ }
20
+ return val;
21
+ }, [multiple]);
22
+ var denormalizeValue = useCallback(function (val) {
23
+ if (!multiple && val.length > 0) {
24
+ return val[0]; // 单选模式返回 string[]
25
+ }
26
+ return val; // 多选模式返回 string[][]
27
+ }, [multiple]);
28
+
29
+ // 使用受控状态 hook,内部统一使用 string[][] 格式
30
+ var _useState = useState(function () {
31
+ return normalizeValue(value);
32
+ }),
33
+ _useState2 = _slicedToArray(_useState, 2),
34
+ internalValue = _useState2[0],
35
+ setInternalValue = _useState2[1];
36
+
37
+ // 同步外部 value 到内部
38
+ useEffect(function () {
39
+ setInternalValue(normalizeValue(value));
40
+ }, [value, normalizeValue]);
41
+
42
+ // 内部 setValue 包装函数
43
+ var setValue = useCallback(function (newValue) {
44
+ setInternalValue(newValue);
45
+ if (onChange) {
46
+ onChange(denormalizeValue(newValue));
47
+ }
48
+ }, [onChange, denormalizeValue]);
49
+ return {
50
+ currentValue: internalValue,
51
+ setValue: setValue
52
+ };
53
+ };
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import type { FilterCascaderProps } from './types';
3
+ declare const FilterCascader: React.FC<FilterCascaderProps>;
4
+ export type { FilterCascaderProps, CascaderOption } from './types';
5
+ export default FilterCascader;
@@ -0,0 +1,317 @@
1
+ "use client";
2
+ var _excluded = ["options", "value", "onChange", "icon", "label", "bordered", "multiple", "count", "showSearch", "_isCollapsed", "flat"],
3
+ _excluded2 = ["onOpenChange"];
4
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
7
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
8
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
9
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
10
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
11
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
12
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
13
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
14
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
15
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
16
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
17
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
18
+ import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
19
+ import theme from "../../../theme";
20
+ import { useFilterContext } from "../../FilterContext";
21
+ import { useFilterCollapsed } from "../../hooks/useFilterCollapsed";
22
+ import { useFilterTooltip } from "../../hooks/useFilterTooltip";
23
+ import useFilterStyle, { getFilterCls } from "../../style";
24
+ import { generateFilterId, getPlaceholder, getWrappedValueStyle, normalizeLabel } from "../../utils";
25
+ import CountNumber from "../CountNumber";
26
+ import FilterButton from "../FilterButton";
27
+ import WrappedTagsDisplay from "../WrappedTagsDisplay";
28
+ import { useNormalizedValue } from "./hooks/useNormalizedValue";
29
+ import { useCascaderLabels } from "./hooks/useCascaderLabels";
30
+ import { useCascaderCallbacks } from "./hooks/useCascaderCallbacks";
31
+ import { countLeafNodes } from "./utils/countUtils";
32
+ import { FlatCascaderContent } from "./components/FlatCascaderContent";
33
+ import { NormalCascaderContent } from "./components/NormalCascaderContent";
34
+ import { jsx as _jsx } from "react/jsx-runtime";
35
+ import { jsxs as _jsxs } from "react/jsx-runtime";
36
+ var FilterCascader = function FilterCascader(_ref) {
37
+ var _count$showTotal;
38
+ var _ref$options = _ref.options,
39
+ options = _ref$options === void 0 ? [] : _ref$options,
40
+ value = _ref.value,
41
+ onChange = _ref.onChange,
42
+ icon = _ref.icon,
43
+ label = _ref.label,
44
+ _ref$bordered = _ref.bordered,
45
+ bordered = _ref$bordered === void 0 ? true : _ref$bordered,
46
+ _ref$multiple = _ref.multiple,
47
+ multiple = _ref$multiple === void 0 ? false : _ref$multiple,
48
+ _ref$count = _ref.count,
49
+ count = _ref$count === void 0 ? false : _ref$count,
50
+ _ref$showSearch = _ref.showSearch,
51
+ showSearch = _ref$showSearch === void 0 ? false : _ref$showSearch,
52
+ _ref$_isCollapsed = _ref._isCollapsed,
53
+ _isCollapsed = _ref$_isCollapsed === void 0 ? false : _ref$_isCollapsed,
54
+ _ref$flat = _ref.flat,
55
+ flat = _ref$flat === void 0 ? false : _ref$flat,
56
+ restProps = _objectWithoutProperties(_ref, _excluded);
57
+ var isCollapsed = useFilterCollapsed(_isCollapsed);
58
+ var _useFilterStyle = useFilterStyle(),
59
+ prefixCls = _useFilterStyle.prefixCls;
60
+ var _theme$useToken = theme.useToken(),
61
+ token = _theme$useToken.token;
62
+ var filterButtonRef = useRef(null);
63
+ var _useFilterContext = useFilterContext(),
64
+ updateFilterValue = _useFilterContext.updateFilterValue;
65
+ var filterId = useMemo(function () {
66
+ return generateFilterId('cascader', label);
67
+ }, [label]);
68
+
69
+ // 用于控制二级 Popover 的打开状态(仅在单选模式下使用)
70
+ var _useState = useState(null),
71
+ _useState2 = _slicedToArray(_useState, 2),
72
+ openPopoverKey = _useState2[0],
73
+ setOpenPopoverKey = _useState2[1];
74
+ // 用于 flat 模式下的多列路径(支持多层级)
75
+ var _useState3 = useState([]),
76
+ _useState4 = _slicedToArray(_useState3, 2),
77
+ flatColumnsPath = _useState4[0],
78
+ setFlatColumnsPath = _useState4[1];
79
+
80
+ // 搜索关键词状态
81
+ var _useState5 = useState(''),
82
+ _useState6 = _slicedToArray(_useState5, 2),
83
+ searchKeyword = _useState6[0],
84
+ setSearchKeyword = _useState6[1];
85
+
86
+ // 从 restProps 中排除 onOpenChange,避免类型冲突
87
+ var externalOnOpenChange = restProps.onOpenChange,
88
+ filterButtonProps = _objectWithoutProperties(restProps, _excluded2);
89
+
90
+ // 解析 count 配置
91
+ var showCount = !!count;
92
+ var showTotal = _typeof(count) === 'object' ? (_count$showTotal = count.showTotal) !== null && _count$showTotal !== void 0 ? _count$showTotal : false : false;
93
+
94
+ // 值管理
95
+ var _useNormalizedValue = useNormalizedValue(value, onChange, multiple),
96
+ currentValue = _useNormalizedValue.currentValue,
97
+ setValue = _useNormalizedValue.setValue;
98
+
99
+ // 标签显示
100
+ var _useCascaderLabels = useCascaderLabels(currentValue, options, label, multiple, isCollapsed),
101
+ getSelectedLabel = _useCascaderLabels.getSelectedLabel,
102
+ getSelectedTags = _useCascaderLabels.getSelectedTags;
103
+
104
+ // 回调函数
105
+ var _useCascaderCallbacks = useCascaderCallbacks(currentValue, setValue, options, multiple, filterButtonRef, setOpenPopoverKey),
106
+ handleChange = _useCascaderCallbacks.handleChange,
107
+ clearByParent = _useCascaderCallbacks.clearByParent,
108
+ handleClear = _useCascaderCallbacks.handleClear,
109
+ selectAllChildren = _useCascaderCallbacks.selectAllChildren,
110
+ handleRemoveTag = _useCascaderCallbacks.handleRemoveTag;
111
+
112
+ // 使用 Tooltip hook
113
+ var _useFilterTooltip = useFilterTooltip({
114
+ hasValue: currentValue.length > 0,
115
+ label: label,
116
+ content: currentValue.length > 0 ? getSelectedTags().map(function (i) {
117
+ return i.label;
118
+ }).join(', ') : null,
119
+ disabled: isCollapsed
120
+ }),
121
+ onPopoverOpenChange = _useFilterTooltip.onPopoverOpenChange,
122
+ wrapWithTooltip = _useFilterTooltip.wrapWithTooltip;
123
+
124
+ // 处理主弹窗状态变化
125
+ var handleMainPopoverOpenChange = useCallback(function (open) {
126
+ onPopoverOpenChange(open);
127
+ // 当主弹窗关闭时,同步关闭二级弹窗(单选模式)
128
+ if (!open && !multiple) {
129
+ setOpenPopoverKey(null);
130
+ }
131
+ // flat 模式下,关闭弹窗时重置列路径,下次打开时只显示最顶层
132
+ if (!open && flat) {
133
+ setFlatColumnsPath([]);
134
+ }
135
+ // 弹窗关闭时清空搜索关键词
136
+ if (!open) {
137
+ setSearchKeyword('');
138
+ }
139
+ externalOnOpenChange === null || externalOnOpenChange === void 0 || externalOnOpenChange(open);
140
+ }, [onPopoverOpenChange, externalOnOpenChange, multiple, flat]);
141
+
142
+ // 根据搜索关键词过滤选项(同时搜索父级和子级)
143
+ var filteredOptions = useMemo(function () {
144
+ if (!showSearch || !searchKeyword) return options;
145
+ var lowerKeyword = searchKeyword.toLowerCase().trim();
146
+ return options.map(function (option) {
147
+ var parentLabel = normalizeLabel(option.label).toLowerCase();
148
+ var parentMatches = parentLabel.includes(lowerKeyword);
149
+
150
+ // 递归过滤子级选项
151
+ var filterChildren = function filterChildren(children) {
152
+ return children.map(function (child) {
153
+ var childLabel = normalizeLabel(child.label).toLowerCase();
154
+ var childMatches = childLabel.includes(lowerKeyword);
155
+
156
+ // 如果有子级,递归过滤
157
+ if (child.children && child.children.length > 0) {
158
+ var _filteredChildren = filterChildren(child.children);
159
+ // 如果当前节点匹配或有匹配的子级,则保留
160
+ if (childMatches || _filteredChildren.length > 0) {
161
+ return _objectSpread(_objectSpread({}, child), {}, {
162
+ children: childMatches ? child.children : _filteredChildren
163
+ });
164
+ }
165
+ return null;
166
+ }
167
+
168
+ // 叶子节点,如果匹配则保留
169
+ return childMatches ? child : null;
170
+ }).filter(function (child) {
171
+ return child !== null;
172
+ });
173
+ };
174
+ var filteredChildren = option.children ? filterChildren(option.children) : [];
175
+
176
+ // 如果父级匹配或有匹配的子级,则保留该选项
177
+ if (parentMatches || filteredChildren.length > 0) {
178
+ return _objectSpread(_objectSpread({}, option), {}, {
179
+ // 如果父级不匹配但子级匹配,只显示匹配的子级
180
+ children: parentMatches ? option.children : filteredChildren
181
+ });
182
+ }
183
+ return null;
184
+ }).filter(function (option) {
185
+ return option !== null;
186
+ });
187
+ }, [showSearch, searchKeyword, options]);
188
+
189
+ // 当值变化时,更新 context 中的值
190
+ useEffect(function () {
191
+ if (isCollapsed && updateFilterValue) {
192
+ updateFilterValue(filterId, label, currentValue, options, 'cascader');
193
+ }
194
+ }, [isCollapsed, updateFilterValue, filterId, label, currentValue, options]);
195
+
196
+ // 渲染内容
197
+ var renderContent = flat ? /*#__PURE__*/_jsx(FlatCascaderContent, {
198
+ options: filteredOptions,
199
+ currentValue: currentValue,
200
+ multiple: multiple,
201
+ filterButtonRef: filterButtonRef,
202
+ onValueChange: setValue
203
+ }) : /*#__PURE__*/_jsx(NormalCascaderContent, {
204
+ options: filteredOptions,
205
+ currentValue: currentValue,
206
+ multiple: multiple,
207
+ prefixCls: prefixCls,
208
+ openPopoverKey: openPopoverKey,
209
+ filterButtonRef: filterButtonRef,
210
+ onOpenPopoverKeyChange: setOpenPopoverKey,
211
+ onValueChange: setValue,
212
+ onHandleChange: handleChange,
213
+ onClearByParent: clearByParent,
214
+ onSelectAllChildren: selectAllChildren,
215
+ showSearch: showSearch,
216
+ searchKeyword: searchKeyword,
217
+ onSearchChange: setSearchKeyword
218
+ });
219
+
220
+ // flat 模式下的 Popover 样式(动态宽度)
221
+ var flatPopoverStyles = flat ? {
222
+ body: {
223
+ padding: 0
224
+ }
225
+ } : undefined;
226
+
227
+ // 计算总数(用于显示计数)
228
+ var totalCount = showTotal ? options.reduce(function (acc, curr) {
229
+ return acc + (curr.children ? countLeafNodes(curr.children) : 0);
230
+ }, 0) : 0;
231
+
232
+ // Wrapped 模式
233
+ if (isCollapsed) {
234
+ var hasValue = currentValue.length > 0;
235
+ if (multiple) {
236
+ var selectedTags = getSelectedTags();
237
+ return /*#__PURE__*/_jsxs("div", {
238
+ style: {
239
+ paddingBlock: token.paddingXXS
240
+ },
241
+ children: [/*#__PURE__*/_jsx("div", {
242
+ style: {
243
+ marginBottom: 8
244
+ },
245
+ children: label
246
+ }), /*#__PURE__*/_jsx(FilterButton, _objectSpread(_objectSpread(_objectSpread({
247
+ ref: filterButtonRef,
248
+ icon: icon,
249
+ label: label,
250
+ bordered: bordered,
251
+ onClear: handleClear,
252
+ content: renderContent,
253
+ selected: hasValue,
254
+ onOpenChange: handleMainPopoverOpenChange,
255
+ _isFlat: flat
256
+ }, flat ? {
257
+ styles: flatPopoverStyles
258
+ } : {}), filterButtonProps), {}, {
259
+ children: /*#__PURE__*/_jsx(WrappedTagsDisplay, {
260
+ tags: selectedTags,
261
+ onRemove: handleRemoveTag
262
+ })
263
+ }))]
264
+ });
265
+ }
266
+ return /*#__PURE__*/_jsxs("div", {
267
+ children: [/*#__PURE__*/_jsx("div", {
268
+ style: {
269
+ marginBottom: 8
270
+ },
271
+ children: label
272
+ }), /*#__PURE__*/_jsx(FilterButton, _objectSpread(_objectSpread(_objectSpread({
273
+ ref: filterButtonRef,
274
+ icon: icon,
275
+ label: label,
276
+ bordered: bordered,
277
+ onClear: handleClear,
278
+ content: renderContent,
279
+ selected: hasValue,
280
+ onOpenChange: handleMainPopoverOpenChange
281
+ }, flat ? {
282
+ styles: flatPopoverStyles
283
+ } : {}), filterButtonProps), {}, {
284
+ children: /*#__PURE__*/_jsx("span", {
285
+ className: getFilterCls(prefixCls, 'text-ellipsis'),
286
+ style: getWrappedValueStyle(hasValue),
287
+ children: hasValue ? getSelectedLabel() : getPlaceholder()
288
+ })
289
+ }))]
290
+ });
291
+ }
292
+
293
+ // 正常模式
294
+ var filterButton = /*#__PURE__*/_jsxs(FilterButton, _objectSpread(_objectSpread(_objectSpread({
295
+ ref: filterButtonRef,
296
+ icon: icon,
297
+ label: label,
298
+ bordered: bordered,
299
+ onClear: handleClear,
300
+ content: renderContent,
301
+ selected: !!currentValue.length,
302
+ onOpenChange: handleMainPopoverOpenChange,
303
+ _isFlat: flat
304
+ }, flat ? {
305
+ styles: flatPopoverStyles
306
+ } : {}), filterButtonProps), {}, {
307
+ children: [/*#__PURE__*/_jsx("span", {
308
+ className: getFilterCls(prefixCls, 'text-ellipsis'),
309
+ children: getSelectedLabel()
310
+ }), multiple && showCount && currentValue.length > 0 && /*#__PURE__*/_jsx(CountNumber, {
311
+ count: currentValue.length,
312
+ total: totalCount
313
+ })]
314
+ }));
315
+ return wrapWithTooltip(filterButton);
316
+ };
317
+ export default FilterCascader;
@@ -0,0 +1,56 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { BaseFilterProps, InternalFilterProps } from '../../type';
3
+ export interface CascaderOption {
4
+ label?: ReactNode;
5
+ value: string;
6
+ disabled?: boolean;
7
+ children?: CascaderOption[];
8
+ }
9
+ interface BaseFilterCascaderProps extends BaseFilterProps, InternalFilterProps {
10
+ /** 选项列表 */
11
+ options?: CascaderOption[];
12
+ /** 是否显示计数,可传入 { showTotal: true } 同时显示总数 */
13
+ count?: boolean | {
14
+ showTotal?: boolean;
15
+ };
16
+ }
17
+ type FilterCascaderSingleBase = BaseFilterCascaderProps & {
18
+ /** 是否多选 */
19
+ multiple?: false;
20
+ /** 当前选中值,格式为 [parentValue, childValue] */
21
+ value?: string[];
22
+ /** 值变化回调 */
23
+ onChange?: (value: string[]) => void;
24
+ };
25
+ type FilterCascaderMultipleBase = BaseFilterCascaderProps & {
26
+ /** 是否多选 */
27
+ multiple?: true;
28
+ /** 当前选中值,格式为 [[parentValue, childValue], ...] */
29
+ value?: string[][];
30
+ /** 值变化回调 */
31
+ onChange?: (value: string[][]) => void;
32
+ };
33
+ type FilterCascaderWithSearch<T extends FilterCascaderSingleBase | FilterCascaderMultipleBase> = T & {
34
+ /** 是否显示搜索框,默认为 false */
35
+ showSearch: true;
36
+ flat?: never;
37
+ };
38
+ type FilterCascaderWithFlat<T extends FilterCascaderSingleBase | FilterCascaderMultipleBase> = T & {
39
+ /** 扁平化展示 */
40
+ flat: true;
41
+ showSearch?: never;
42
+ };
43
+ type FilterCascaderNormal<T extends FilterCascaderSingleBase | FilterCascaderMultipleBase> = T & {
44
+ flat?: false;
45
+ showSearch?: false;
46
+ };
47
+ export type FilterCascaderSingleProps = FilterCascaderWithSearch<FilterCascaderSingleBase> | FilterCascaderWithFlat<FilterCascaderSingleBase> | FilterCascaderNormal<FilterCascaderSingleBase>;
48
+ export type FilterCascaderMultipleProps = FilterCascaderWithSearch<FilterCascaderMultipleBase> | FilterCascaderWithFlat<FilterCascaderMultipleBase> | FilterCascaderNormal<FilterCascaderMultipleBase>;
49
+ export type FilterCascaderProps = FilterCascaderSingleProps | FilterCascaderMultipleProps;
50
+ export interface SelectedTag {
51
+ label: ReactNode;
52
+ value: string;
53
+ parentValue: string;
54
+ childValue: string;
55
+ }
56
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,13 @@
1
+ import type { CascaderOption } from '../types';
2
+ /**
3
+ * 递归统计所有叶子节点数量(只统计没有children的节点)
4
+ */
5
+ export declare const countLeafNodes: (options: CascaderOption[]) => number;
6
+ /**
7
+ * 收集所有叶子节点的完整路径
8
+ */
9
+ export declare const collectLeafPaths: (options: CascaderOption[], basePath: string[]) => string[][];
10
+ /**
11
+ * 统计选中的子节点数量
12
+ */
13
+ export declare const countSelectedChildren: (currentValue: string[][], currentPath: string[]) => number;