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

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 +3 -3
  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 +166 -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 +1 -4
  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 +3 -3
  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 +210 -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 +1 -4
  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,477 @@
1
+ "use client";
2
+ 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); }
3
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
4
+ 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."); }
5
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
6
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
7
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
8
+ 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."); }
9
+ 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); }
10
+ 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; }
11
+ 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; } }
12
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13
+ 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; }
14
+ 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; }
15
+ 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; }
16
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
17
+ 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); }
18
+ import React, { Children, isValidElement, useCallback, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';
19
+ import { Flex } from 'antd';
20
+ import { FilterOutlined } from '@oceanbase/icons';
21
+ import Button from "../../button";
22
+ import FilterWrap from "./FilterWrap";
23
+ import ConfigProvider from "../../config-provider";
24
+ import defaultLocale from "../../locale/en-US";
25
+ import { FilterProvider } from "../FilterContext";
26
+ import { jsx as _jsx } from "react/jsx-runtime";
27
+ import { jsxs as _jsxs } from "react/jsx-runtime";
28
+ // 检查元素是否是 Filter 组件(通过 __isFilterComponent 静态标记识别)
29
+ var isFilterComponent = function isFilterComponent(child) {
30
+ var _child$props;
31
+ var type = child.type;
32
+ if (type !== null && type !== void 0 && type.__isFilterComponent) return true;
33
+ if ((_child$props = child.props) !== null && _child$props !== void 0 && _child$props.children && /*#__PURE__*/isValidElement(child.props.children)) {
34
+ var innerType = child.props.children.type;
35
+ if (innerType !== null && innerType !== void 0 && innerType.__isFilterComponent) return true;
36
+ }
37
+ return false;
38
+ };
39
+
40
+ // 检查子元素是否可以被折叠(只有 Filter 组件默认可折叠,其他组件需要显式设置 collapsible)
41
+ var isCollapsibleCheck = function isCollapsibleCheck(child) {
42
+ var childProps = child.props;
43
+ if ((childProps === null || childProps === void 0 ? void 0 : childProps.collapsible) !== undefined) {
44
+ return childProps.collapsible !== false;
45
+ }
46
+ if (childProps !== null && childProps !== void 0 && childProps.children && /*#__PURE__*/isValidElement(childProps.children)) {
47
+ var _innerChild$props;
48
+ var innerChild = childProps.children;
49
+ if (((_innerChild$props = innerChild.props) === null || _innerChild$props === void 0 ? void 0 : _innerChild$props.collapsible) !== undefined) {
50
+ return innerChild.props.collapsible !== false;
51
+ }
52
+ }
53
+ return isFilterComponent(child);
54
+ };
55
+
56
+ // 检查子元素是否应该始终折叠
57
+ var isAlwaysCollapseCheck = function isAlwaysCollapseCheck(child) {
58
+ var childProps = child.props;
59
+ if ((childProps === null || childProps === void 0 ? void 0 : childProps.alwaysCollapse) !== undefined) {
60
+ return childProps.alwaysCollapse === true;
61
+ }
62
+ if (childProps !== null && childProps !== void 0 && childProps.children && /*#__PURE__*/isValidElement(childProps.children)) {
63
+ var _innerChild$props2;
64
+ var innerChild = childProps.children;
65
+ if (((_innerChild$props2 = innerChild.props) === null || _innerChild$props2 === void 0 ? void 0 : _innerChild$props2.alwaysCollapse) !== undefined) {
66
+ return innerChild.props.alwaysCollapse === true;
67
+ }
68
+ }
69
+ return false;
70
+ };
71
+ var ResponsiveFilterGroup = function ResponsiveFilterGroup(_ref) {
72
+ var children = _ref.children,
73
+ _ref$gap = _ref.gap,
74
+ gap = _ref$gap === void 0 ? 8 : _ref$gap,
75
+ label = _ref.label,
76
+ _ref$icon = _ref.icon,
77
+ icon = _ref$icon === void 0 ? /*#__PURE__*/_jsx(FilterOutlined, {}) : _ref$icon,
78
+ onApply = _ref.onApply,
79
+ onClearAll = _ref.onClearAll,
80
+ _ref$showActions = _ref.showActions,
81
+ showActions = _ref$showActions === void 0 ? true : _ref$showActions,
82
+ style = _ref.style,
83
+ extra = _ref.extra,
84
+ _ref$showCount = _ref.showCount,
85
+ showCount = _ref$showCount === void 0 ? true : _ref$showCount,
86
+ customLocale = _ref.locale;
87
+ var _useContext = useContext(ConfigProvider.ConfigContext),
88
+ contextLocale = _useContext.locale;
89
+ var filterLocale = _objectSpread(_objectSpread(_objectSpread({}, defaultLocale.Filter), contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.Filter), customLocale);
90
+ var filterLabel = label !== null && label !== void 0 ? label : filterLocale === null || filterLocale === void 0 ? void 0 : filterLocale.filters;
91
+ var containerRef = useRef(null);
92
+ var filterButtonRef = useRef(null);
93
+ var moreButtonMeasureRef = useRef(null);
94
+ var cachedWidths = useRef([]);
95
+ var _useState = useState(null),
96
+ _useState2 = _slicedToArray(_useState, 2),
97
+ visibleCount = _useState2[0],
98
+ setVisibleCount = _useState2[1];
99
+ var _useState3 = useState([]),
100
+ _useState4 = _slicedToArray(_useState3, 2),
101
+ filterValues = _useState4[0],
102
+ setFilterValues = _useState4[1];
103
+ var childrenArray = useMemo(function () {
104
+ return Children.toArray(children).filter(isValidElement);
105
+ }, [children]);
106
+ var childInfo = useMemo(function () {
107
+ return childrenArray.map(function (child, index) {
108
+ return {
109
+ child: child,
110
+ index: index,
111
+ isCollapsible: isCollapsibleCheck(child),
112
+ isAlwaysCollapse: isAlwaysCollapseCheck(child)
113
+ };
114
+ });
115
+ }, [childrenArray]);
116
+ var collapsibleItems = useMemo(function () {
117
+ return childInfo.filter(function (item) {
118
+ return item.isCollapsible;
119
+ });
120
+ }, [childInfo]);
121
+ var alwaysCollapseItems = useMemo(function () {
122
+ return collapsibleItems.filter(function (item) {
123
+ return item.isAlwaysCollapse;
124
+ });
125
+ }, [collapsibleItems]);
126
+ var normalCollapsibleItems = useMemo(function () {
127
+ return collapsibleItems.filter(function (item) {
128
+ return !item.isAlwaysCollapse;
129
+ });
130
+ }, [collapsibleItems]);
131
+
132
+ // 当 children 结构变化(增删/重排)时才重置为测量模式
133
+ // 不能用 childrenArray 引用比较,因为 JSX 每次渲染都产生新引用
134
+ var childrenStructureKey = childrenArray.map(function (c) {
135
+ var _c$key;
136
+ return (_c$key = c.key) !== null && _c$key !== void 0 ? _c$key : c.type;
137
+ }).join(',');
138
+ var _useState5 = useState(childrenStructureKey),
139
+ _useState6 = _slicedToArray(_useState5, 2),
140
+ prevStructureKey = _useState6[0],
141
+ setPrevStructureKey = _useState6[1];
142
+ if (childrenStructureKey !== prevStructureKey) {
143
+ setPrevStructureKey(childrenStructureKey);
144
+ setVisibleCount(null);
145
+ }
146
+ var isMeasuring = visibleCount === null;
147
+
148
+ // 纯计算函数:根据容器宽度计算可显示的可折叠项数量
149
+ var calculateVisibleCount = useCallback(function (containerWidth) {
150
+ var _moreButtonMeasureRef;
151
+ if (normalCollapsibleItems.length === 0) return 0;
152
+ var widths = cachedWidths.current;
153
+ if (widths.length === 0) return normalCollapsibleItems.length;
154
+ var uncollapsibleTotalWidth = 0;
155
+ var uncollapsibleCount = 0;
156
+ childInfo.forEach(function (info) {
157
+ if (!info.isCollapsible) {
158
+ uncollapsibleTotalWidth += widths[info.index] || 0;
159
+ uncollapsibleCount++;
160
+ }
161
+ });
162
+ var moreWidth = ((_moreButtonMeasureRef = moreButtonMeasureRef.current) === null || _moreButtonMeasureRef === void 0 ? void 0 : _moreButtonMeasureRef.offsetWidth) || 0;
163
+ var hasAlwaysCollapse = alwaysCollapseItems.length > 0;
164
+ var visibleWidth = 0;
165
+ var count = 0;
166
+ for (var i = 0; i < normalCollapsibleItems.length; i++) {
167
+ var itemWidth = widths[normalCollapsibleItems[i].index] || 0;
168
+ var newWidth = visibleWidth + itemWidth;
169
+ var remaining = normalCollapsibleItems.length - i - 1;
170
+ var needMore = remaining > 0 || hasAlwaysCollapse;
171
+ var totalItems = uncollapsibleCount + count + 1 + (needMore ? 1 : 0);
172
+ var totalGaps = totalItems > 1 ? (totalItems - 1) * gap : 0;
173
+ var totalWidth = uncollapsibleTotalWidth + newWidth + (needMore ? moreWidth : 0) + totalGaps;
174
+ if (totalWidth <= containerWidth) {
175
+ visibleWidth = newWidth;
176
+ count++;
177
+ } else {
178
+ break;
179
+ }
180
+ }
181
+ return count;
182
+ }, [childInfo, normalCollapsibleItems, alwaysCollapseItems, gap]);
183
+
184
+ // 使用 ref 保存最新的计算函数,避免 ResizeObserver 等 effect 频繁重建
185
+ var calculateRef = useRef(calculateVisibleCount);
186
+ calculateRef.current = calculateVisibleCount;
187
+
188
+ // Effect 1: 测量模式下,读取所有子元素宽度并计算 visibleCount
189
+ useLayoutEffect(function () {
190
+ if (!containerRef.current || !isMeasuring) return;
191
+ var items = containerRef.current.querySelectorAll('[data-filter-item]');
192
+ var newWidths = [];
193
+ items.forEach(function (el) {
194
+ var idx = Number(el.dataset.filterItem);
195
+ if (!isNaN(idx)) {
196
+ newWidths[idx] = el.offsetWidth;
197
+ }
198
+ });
199
+ cachedWidths.current = newWidths;
200
+ var count = calculateRef.current(containerRef.current.offsetWidth);
201
+ setVisibleCount(count);
202
+ }, [isMeasuring]);
203
+
204
+ // Effect 2: 监听容器大小变化,用缓存宽度重新计算(不需要重新测量)
205
+ useEffect(function () {
206
+ if (!containerRef.current) return;
207
+ var el = containerRef.current;
208
+ var ro = new ResizeObserver(function () {
209
+ if (cachedWidths.current.length === 0) return;
210
+ var count = calculateRef.current(el.offsetWidth);
211
+ setVisibleCount(function (prev) {
212
+ return prev === count ? prev : count;
213
+ });
214
+ });
215
+ ro.observe(el);
216
+ return function () {
217
+ return ro.disconnect();
218
+ };
219
+ }, []);
220
+
221
+ // Effect 3: filterValues 变化时,more 按钮 badge 可能变化,需要重新计算
222
+ useEffect(function () {
223
+ if (!containerRef.current || cachedWidths.current.length === 0) return;
224
+ var count = calculateRef.current(containerRef.current.offsetWidth);
225
+ setVisibleCount(function (prev) {
226
+ return prev === count ? prev : count;
227
+ });
228
+ }, [filterValues]);
229
+
230
+ // Effect 4: 监听子元素的宽度变化(如筛选值变化导致按钮变宽),
231
+ // 更新缓存宽度并重新计算可见数量。
232
+ // 依赖 visibleCount 以便在显隐切换后重新查询 DOM 元素。
233
+ useEffect(function () {
234
+ if (!containerRef.current || isMeasuring) return;
235
+ var el = containerRef.current;
236
+ var items = el.querySelectorAll('[data-filter-item]');
237
+ if (items.length === 0) return;
238
+ var ro = new ResizeObserver(function () {
239
+ var widthChanged = false;
240
+ items.forEach(function (item) {
241
+ var idx = Number(item.dataset.filterItem);
242
+ if (isNaN(idx)) return;
243
+ var w = item.offsetWidth;
244
+ if (w > 0 && Math.abs(w - (cachedWidths.current[idx] || 0)) > 1) {
245
+ cachedWidths.current[idx] = w;
246
+ widthChanged = true;
247
+ }
248
+ });
249
+ if (widthChanged) {
250
+ var count = calculateRef.current(el.offsetWidth);
251
+ setVisibleCount(function (prev) {
252
+ return prev === count ? prev : count;
253
+ });
254
+ }
255
+ });
256
+ items.forEach(function (item) {
257
+ return ro.observe(item);
258
+ });
259
+ return function () {
260
+ return ro.disconnect();
261
+ };
262
+ }, [isMeasuring, visibleCount]);
263
+
264
+ // --- 派生状态 ---
265
+ var visibleIndexSet = useMemo(function () {
266
+ if (visibleCount === null) return null;
267
+ return new Set(normalCollapsibleItems.slice(0, visibleCount).map(function (item) {
268
+ return item.index;
269
+ }));
270
+ }, [visibleCount, normalCollapsibleItems]);
271
+ var hiddenCollapsibleItems = useMemo(function () {
272
+ if (!visibleIndexSet) return [];
273
+ return normalCollapsibleItems.filter(function (item) {
274
+ return !visibleIndexSet.has(item.index);
275
+ });
276
+ }, [visibleIndexSet, normalCollapsibleItems]);
277
+ var allHiddenItems = useMemo(function () {
278
+ return [].concat(_toConsumableArray(alwaysCollapseItems), _toConsumableArray(hiddenCollapsibleItems));
279
+ }, [alwaysCollapseItems, hiddenCollapsibleItems]);
280
+
281
+ // --- 值管理 ---
282
+ var updateFilterValue = useCallback(function (id, _filterLabel, value, options, componentName) {
283
+ setFilterValues(function (prev) {
284
+ var isEmpty = value === undefined || value === null || value === '' || componentName === 'switch' && value === false || Array.isArray(value) && value.length === 0;
285
+ if (isEmpty) {
286
+ var filtered = prev.filter(function (item) {
287
+ return item.id !== id;
288
+ });
289
+ return filtered.length === prev.length ? prev : filtered;
290
+ }
291
+ var existingIndex = prev.findIndex(function (item) {
292
+ return item.id === id;
293
+ });
294
+ if (existingIndex >= 0) {
295
+ var existing = prev[existingIndex];
296
+ var optionsEqual = existing.options === options || existing.options === undefined && options === undefined || existing.options !== undefined && options !== undefined && JSON.stringify(existing.options) === JSON.stringify(options);
297
+ if (existing.value === value && optionsEqual && existing.componentName === componentName && existing.label === _filterLabel) {
298
+ return prev;
299
+ }
300
+ var newValues = _toConsumableArray(prev);
301
+ newValues[existingIndex] = {
302
+ id: id,
303
+ label: _filterLabel,
304
+ value: value,
305
+ options: options,
306
+ componentName: componentName
307
+ };
308
+ return newValues;
309
+ }
310
+ return [].concat(_toConsumableArray(prev), [{
311
+ id: id,
312
+ label: _filterLabel,
313
+ value: value,
314
+ options: options,
315
+ componentName: componentName
316
+ }]);
317
+ });
318
+ }, []);
319
+ var handleClearAll = function handleClearAll() {
320
+ allHiddenItems.forEach(function (item) {
321
+ if ( /*#__PURE__*/isValidElement(item.child)) {
322
+ var childProps = item.child.props;
323
+ if (childProps.children && /*#__PURE__*/isValidElement(childProps.children)) {
324
+ var _innerChildProps$onCh;
325
+ var innerChildProps = childProps.children.props;
326
+ (_innerChildProps$onCh = innerChildProps.onChange) === null || _innerChildProps$onCh === void 0 || _innerChildProps$onCh.call(innerChildProps, undefined);
327
+ } else {
328
+ var _childProps$onChange;
329
+ (_childProps$onChange = childProps.onChange) === null || _childProps$onChange === void 0 || _childProps$onChange.call(childProps, undefined);
330
+ }
331
+ }
332
+ });
333
+ setFilterValues([]);
334
+ onClearAll === null || onClearAll === void 0 || onClearAll();
335
+ };
336
+
337
+ // --- 渲染 FilterWrap(收起的筛选项) ---
338
+ var renderHiddenChildren = function renderHiddenChildren() {
339
+ if (allHiddenItems.length === 0) return null;
340
+ return /*#__PURE__*/_jsx(FilterProvider, {
341
+ isCollapsed: true,
342
+ filterValues: filterValues,
343
+ updateFilterValue: updateFilterValue,
344
+ children: /*#__PURE__*/_jsx(FilterWrap, {
345
+ collapsed: true,
346
+ filterButtonRef: filterButtonRef,
347
+ icon: icon,
348
+ label: filterLabel,
349
+ extra: extra,
350
+ onClearAll: handleClearAll,
351
+ showCount: showCount,
352
+ footer: showActions && /*#__PURE__*/_jsxs(Flex, {
353
+ justify: "space-between",
354
+ children: [onApply && /*#__PURE__*/_jsx(Button, {
355
+ type: "primary",
356
+ size: "small",
357
+ onClick: function onClick() {
358
+ var _filterButtonRef$curr;
359
+ onApply === null || onApply === void 0 || onApply();
360
+ (_filterButtonRef$curr = filterButtonRef.current) === null || _filterButtonRef$curr === void 0 || _filterButtonRef$curr.closePopover();
361
+ },
362
+ children: filterLocale === null || filterLocale === void 0 ? void 0 : filterLocale.apply
363
+ }), onClearAll && /*#__PURE__*/_jsx(Button, {
364
+ type: "link",
365
+ size: "small",
366
+ onClick: handleClearAll,
367
+ children: filterLocale === null || filterLocale === void 0 ? void 0 : filterLocale.clearAll
368
+ })]
369
+ }),
370
+ children: allHiddenItems.map(function (item, index) {
371
+ if ( /*#__PURE__*/isValidElement(item.child)) {
372
+ var stableKey = item.child.key || "responsive-filter-child-".concat(index);
373
+ return /*#__PURE__*/_jsx(React.Fragment, {
374
+ children: item.child
375
+ }, stableKey);
376
+ }
377
+ return item.child;
378
+ })
379
+ })
380
+ });
381
+ };
382
+
383
+ // --- 渲染子元素 ---
384
+ // 所有子元素始终保持在 Flex 中的稳定位置(FilterProvider + div 包裹 + 稳定 key),
385
+ // 通过 CSS display 控制显隐,避免在可见/折叠间切换时卸载重挂载导致表单值丢失。
386
+ // FilterProvider 使隐藏的原始组件能直接感知 isCollapsed 并上报值,无需依赖 Popover 中的克隆。
387
+ var renderChildren = function renderChildren() {
388
+ var elements = [];
389
+ var filterWrapInserted = false;
390
+ var collapsibleIdx = 0;
391
+ childrenArray.forEach(function (child, index) {
392
+ var info = childInfo[index];
393
+ var stableKey = child.key || "filter-item-".concat(index);
394
+ var display;
395
+ var isHidden = false;
396
+ if (isMeasuring) {
397
+ display = 'inline-flex';
398
+ } else if (!info.isCollapsible) {
399
+ display = undefined;
400
+ } else if (info.isAlwaysCollapse) {
401
+ display = 'none';
402
+ isHidden = true;
403
+ } else {
404
+ var isVisible = collapsibleIdx < visibleCount;
405
+ display = isVisible ? undefined : 'none';
406
+ isHidden = !isVisible;
407
+ collapsibleIdx++;
408
+ }
409
+ elements.push( /*#__PURE__*/_jsx(FilterProvider, {
410
+ isCollapsed: !isMeasuring && isHidden,
411
+ filterValues: filterValues,
412
+ updateFilterValue: updateFilterValue,
413
+ children: /*#__PURE__*/_jsx("div", {
414
+ "data-filter-item": index,
415
+ style: {
416
+ display: display,
417
+ flexShrink: 0
418
+ },
419
+ children: child
420
+ })
421
+ }, stableKey));
422
+ if (!isMeasuring && isHidden && !filterWrapInserted && allHiddenItems.length > 0) {
423
+ filterWrapInserted = true;
424
+ elements.push( /*#__PURE__*/_jsx(React.Fragment, {
425
+ children: renderHiddenChildren()
426
+ }, "filter-wrap"));
427
+ }
428
+ });
429
+ if (!isMeasuring && !filterWrapInserted && allHiddenItems.length > 0) {
430
+ elements.push( /*#__PURE__*/_jsx(React.Fragment, {
431
+ children: renderHiddenChildren()
432
+ }, "filter-wrap"));
433
+ }
434
+ return elements;
435
+ };
436
+ return /*#__PURE__*/_jsxs("div", {
437
+ ref: containerRef,
438
+ className: "responsive-filter-group",
439
+ style: _objectSpread({
440
+ flex: '1 1 auto',
441
+ minWidth: 0,
442
+ position: 'relative',
443
+ overflow: 'hidden',
444
+ visibility: isMeasuring ? 'hidden' : undefined
445
+ }, style),
446
+ children: [/*#__PURE__*/_jsx("div", {
447
+ ref: moreButtonMeasureRef,
448
+ style: {
449
+ position: 'absolute',
450
+ visibility: 'hidden',
451
+ pointerEvents: 'none',
452
+ top: -9999,
453
+ left: -9999,
454
+ display: 'inline-flex'
455
+ },
456
+ children: /*#__PURE__*/_jsx(FilterProvider, {
457
+ isCollapsed: true,
458
+ filterValues: filterValues,
459
+ updateFilterValue: updateFilterValue,
460
+ children: /*#__PURE__*/_jsx(FilterWrap, {
461
+ collapsed: true,
462
+ icon: icon,
463
+ label: filterLabel,
464
+ showCount: showCount,
465
+ onClearAll: handleClearAll,
466
+ children: /*#__PURE__*/_jsx("div", {})
467
+ })
468
+ })
469
+ }), /*#__PURE__*/_jsx(Flex, {
470
+ gap: gap,
471
+ align: "center",
472
+ wrap: "nowrap",
473
+ children: renderChildren()
474
+ })]
475
+ });
476
+ };
477
+ export default ResponsiveFilterGroup;
@@ -0,0 +1,22 @@
1
+ import type { ReactNode } from 'react';
2
+ import React from 'react';
3
+ export interface TagItem {
4
+ label: ReactNode;
5
+ value: string;
6
+ }
7
+ export interface WrappedTagsDisplayProps {
8
+ /** 选中的标签列表 */
9
+ tags: TagItem[];
10
+ /** 最多显示的标签数量,默认为 2 */
11
+ maxVisibleTags?: number;
12
+ /** 移除标签的回调 */
13
+ onRemove?: (value: string) => void;
14
+ /** 标签的最大宽度,默认为 80 */
15
+ tagMaxWidth?: number;
16
+ }
17
+ /**
18
+ * Wrapped 模式下的 Tag 展示组件
19
+ * 用于 FilterCheckbox、FilterCascader 等多选组件在 wrapped 模式下展示选中值
20
+ */
21
+ declare const WrappedTagsDisplay: React.FC<WrappedTagsDisplayProps>;
22
+ export default WrappedTagsDisplay;
@@ -0,0 +1,80 @@
1
+ "use client";
2
+ import React, { useContext } from 'react';
3
+ import { Flex } from 'antd';
4
+ import Tag from "../../tag";
5
+ import Tooltip from "../../tooltip";
6
+ import theme from "../../theme";
7
+ import ConfigProvider from "../../config-provider";
8
+ import enUS from "../../locale/en-US";
9
+ import { jsx as _jsx } from "react/jsx-runtime";
10
+ import { jsxs as _jsxs } from "react/jsx-runtime";
11
+ /**
12
+ * Wrapped 模式下的 Tag 展示组件
13
+ * 用于 FilterCheckbox、FilterCascader 等多选组件在 wrapped 模式下展示选中值
14
+ */
15
+ var WrappedTagsDisplay = function WrappedTagsDisplay(_ref) {
16
+ var tags = _ref.tags,
17
+ _ref$maxVisibleTags = _ref.maxVisibleTags,
18
+ maxVisibleTags = _ref$maxVisibleTags === void 0 ? 2 : _ref$maxVisibleTags,
19
+ onRemove = _ref.onRemove,
20
+ _ref$tagMaxWidth = _ref.tagMaxWidth,
21
+ tagMaxWidth = _ref$tagMaxWidth === void 0 ? 80 : _ref$tagMaxWidth;
22
+ var _theme$useToken = theme.useToken(),
23
+ token = _theme$useToken.token;
24
+ var _useContext = useContext(ConfigProvider.ConfigContext),
25
+ contextLocale = _useContext.locale;
26
+ var filterLocale = (contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.Filter) || enUS.Filter;
27
+ var hasValue = tags.length > 0;
28
+ var visibleTags = tags.slice(0, maxVisibleTags);
29
+ var hiddenTags = tags.slice(maxVisibleTags);
30
+ var hiddenCount = hiddenTags.length;
31
+ if (!hasValue) {
32
+ return /*#__PURE__*/_jsx("span", {
33
+ style: {
34
+ color: token.colorTextPlaceholder
35
+ },
36
+ children: filterLocale === null || filterLocale === void 0 ? void 0 : filterLocale.pleaseSelect
37
+ });
38
+ }
39
+ return /*#__PURE__*/_jsxs(Flex, {
40
+ align: "center",
41
+ style: {
42
+ overflow: 'hidden',
43
+ flex: 1
44
+ },
45
+ children: [visibleTags.map(function (item) {
46
+ return /*#__PURE__*/_jsx(Tag, {
47
+ closable: !!onRemove,
48
+ onClose: function onClose(e) {
49
+ e.preventDefault();
50
+ e.stopPropagation();
51
+ onRemove === null || onRemove === void 0 || onRemove(item.value);
52
+ },
53
+ style: {
54
+ maxWidth: tagMaxWidth,
55
+ marginRight: 4
56
+ },
57
+ children: item.label
58
+ }, item.value);
59
+ }), hiddenCount > 0 && /*#__PURE__*/_jsx(Tooltip, {
60
+ title: hiddenTags.map(function (item) {
61
+ return /*#__PURE__*/_jsx(Tag, {
62
+ closable: !!onRemove,
63
+ onClose: function onClose(e) {
64
+ e.preventDefault();
65
+ e.stopPropagation();
66
+ onRemove === null || onRemove === void 0 || onRemove(item.value);
67
+ },
68
+ children: item.label
69
+ }, item.value);
70
+ }),
71
+ children: /*#__PURE__*/_jsx(Tag, {
72
+ style: {
73
+ margin: 0
74
+ },
75
+ children: ".."
76
+ })
77
+ })]
78
+ });
79
+ };
80
+ export default WrappedTagsDisplay;
@@ -0,0 +1,4 @@
1
+ export { useControlledState } from './useControlledState';
2
+ export { useFilterCollapsed } from './useFilterCollapsed';
3
+ export { useFilterTooltip } from './useFilterTooltip';
4
+ export type { UseFilterTooltipOptions, UseFilterTooltipReturn } from './useFilterTooltip';
@@ -0,0 +1,3 @@
1
+ export { useControlledState } from "./useControlledState";
2
+ export { useFilterCollapsed } from "./useFilterCollapsed";
3
+ export { useFilterTooltip } from "./useFilterTooltip";
@@ -0,0 +1,9 @@
1
+ /**
2
+ * 处理受控/非受控组件状态的通用 Hook
3
+ * @param value 外部传入的受控值
4
+ * @param defaultValue 默认值
5
+ * @param onChange 值变化时的回调
6
+ * @returns [currentValue, setValue, isControlled]
7
+ */
8
+ export declare function useControlledState<T>(value: T | undefined, defaultValue: T, onChange?: (value: T) => void): [T, (value: T) => void, boolean];
9
+ export default useControlledState;
@@ -0,0 +1,37 @@
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, useState } from 'react';
8
+
9
+ /**
10
+ * 处理受控/非受控组件状态的通用 Hook
11
+ * @param value 外部传入的受控值
12
+ * @param defaultValue 默认值
13
+ * @param onChange 值变化时的回调
14
+ * @returns [currentValue, setValue, isControlled]
15
+ */
16
+ export function useControlledState(value, defaultValue, onChange) {
17
+ var isControlled = value !== undefined;
18
+ var _useState = useState(defaultValue),
19
+ _useState2 = _slicedToArray(_useState, 2),
20
+ internalValue = _useState2[0],
21
+ setInternalValue = _useState2[1];
22
+
23
+ // 使用受控值或内部值
24
+ var currentValue = isControlled ? value : internalValue;
25
+
26
+ // 统一的 setValue 方法
27
+ var setValue = useCallback(function (newValue) {
28
+ // 如果是非受控组件,更新内部状态
29
+ if (!isControlled) {
30
+ setInternalValue(newValue);
31
+ }
32
+ // 总是调用 onChange 回调
33
+ onChange === null || onChange === void 0 || onChange(newValue);
34
+ }, [isControlled, onChange]);
35
+ return [currentValue, setValue, isControlled];
36
+ }
37
+ export default useControlledState;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * 判断 Filter 组件是否处于折叠模式
3
+ * 支持通过 context 或 prop 来判断
4
+ * @param isCollapsedProp 通过 prop 传入的 _isCollapsed 值
5
+ * @returns 是否处于折叠模式
6
+ */
7
+ export declare function useFilterCollapsed(isCollapsedProp?: boolean): boolean;
8
+ export default useFilterCollapsed;
@@ -0,0 +1,15 @@
1
+ import { useFilterContext } from "../FilterContext";
2
+
3
+ /**
4
+ * 判断 Filter 组件是否处于折叠模式
5
+ * 支持通过 context 或 prop 来判断
6
+ * @param isCollapsedProp 通过 prop 传入的 _isCollapsed 值
7
+ * @returns 是否处于折叠模式
8
+ */
9
+ export function useFilterCollapsed() {
10
+ var isCollapsedProp = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
11
+ var _useFilterContext = useFilterContext(),
12
+ isCollapsedFromContext = _useFilterContext.isCollapsed;
13
+ return isCollapsedFromContext || isCollapsedProp;
14
+ }
15
+ export default useFilterCollapsed;