@oceanbase/design 1.0.0-alpha.8 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (580) hide show
  1. package/dist/design.min.js +1 -1
  2. package/es/_util/document.d.ts +11 -0
  3. package/es/_util/document.js +65 -0
  4. package/es/_util/genComponentStyleHook.d.ts +19 -2
  5. package/es/_util/genComponentStyleHook.js +55 -20
  6. package/es/_util/index.d.ts +2 -0
  7. package/es/_util/index.js +28 -1
  8. package/es/_util/styleChecker.js +1 -0
  9. package/es/affix/index.js +1 -0
  10. package/es/alert/index.d.ts +1 -1
  11. package/es/alert/index.js +16 -4
  12. package/es/alert/style/index.d.ts +1 -4
  13. package/es/alert/style/index.js +20 -18
  14. package/es/anchor/index.js +1 -0
  15. package/es/app/index.js +10 -2
  16. package/es/app/style/index.d.ts +1 -4
  17. package/es/app/style/index.js +3 -6
  18. package/es/auto-complete/index.js +1 -0
  19. package/es/avatar/index.js +1 -0
  20. package/es/badge/index.d.ts +2 -0
  21. package/es/badge/index.js +39 -14
  22. package/es/badge/style/index.d.ts +1 -4
  23. package/es/badge/style/index.js +9 -7
  24. package/es/breadcrumb/Breadcrumb.js +1 -0
  25. package/es/breadcrumb/index.js +1 -0
  26. package/es/button/index.js +19 -6
  27. package/es/button/style/index.d.ts +3 -4
  28. package/es/button/style/index.js +43 -9
  29. package/es/calendar/index.js +1 -0
  30. package/es/card/index.d.ts +6 -0
  31. package/es/card/index.js +59 -21
  32. package/es/card/style/index.d.ts +1 -4
  33. package/es/card/style/index.js +92 -36
  34. package/es/carousel/index.js +1 -0
  35. package/es/cascader/index.js +1 -0
  36. package/es/checkbox/index.js +10 -2
  37. package/es/checkbox/style/index.d.ts +1 -4
  38. package/es/checkbox/style/index.js +12 -11
  39. package/es/collapse/index.js +1 -0
  40. package/es/color-picker/index.js +1 -0
  41. package/es/config-provider/DefaultRenderEmpty.js +1 -0
  42. package/es/config-provider/index.d.ts +5 -0
  43. package/es/config-provider/index.js +101 -48
  44. package/es/date-picker/index.js +1 -0
  45. package/es/descriptions/hooks/useItems.js +1 -0
  46. package/es/descriptions/index.d.ts +10 -0
  47. package/es/descriptions/index.js +63 -5
  48. package/es/descriptions/style/index.d.ts +2 -5
  49. package/es/descriptions/style/index.js +64 -8
  50. package/es/divider/index.js +1 -0
  51. package/es/drawer/index.d.ts +2 -0
  52. package/es/drawer/index.js +38 -4
  53. package/es/drawer/style/index.d.ts +1 -4
  54. package/es/drawer/style/index.js +35 -10
  55. package/es/dropdown/dropdown-button.js +27 -6
  56. package/es/dropdown/index.js +29 -3
  57. package/es/dropdown/style/index.d.ts +6 -0
  58. package/es/dropdown/style/index.js +22 -0
  59. package/es/empty/colored.js +1 -0
  60. package/es/empty/database.js +1 -0
  61. package/es/empty/default.js +1 -0
  62. package/es/empty/guide.js +1 -0
  63. package/es/empty/index.js +4 -2
  64. package/es/empty/style/index.d.ts +1 -4
  65. package/es/empty/style/index.js +5 -6
  66. package/es/filter/FilterContext.d.ts +27 -0
  67. package/es/filter/FilterContext.js +26 -0
  68. package/es/filter/components/ClearIcon.d.ts +6 -0
  69. package/es/filter/components/ClearIcon.js +26 -0
  70. package/es/filter/components/CountNumber.d.ts +8 -0
  71. package/es/filter/components/CountNumber.js +20 -0
  72. package/es/filter/components/FilterButton.d.ts +34 -0
  73. package/es/filter/components/FilterButton.js +221 -0
  74. package/es/filter/components/FilterCascader/components/CascaderOption/OptionCheckbox.d.ts +20 -0
  75. package/es/filter/components/FilterCascader/components/CascaderOption/OptionCheckbox.js +101 -0
  76. package/es/filter/components/FilterCascader/components/CascaderOption/OptionItem.d.ts +13 -0
  77. package/es/filter/components/FilterCascader/components/CascaderOption/OptionItem.js +44 -0
  78. package/es/filter/components/FilterCascader/components/FlatCascaderContent/index.d.ts +17 -0
  79. package/es/filter/components/FilterCascader/components/FlatCascaderContent/index.js +78 -0
  80. package/es/filter/components/FilterCascader/components/NormalCascaderContent.d.ts +24 -0
  81. package/es/filter/components/FilterCascader/components/NormalCascaderContent.js +279 -0
  82. package/es/filter/components/FilterCascader/constants.d.ts +7 -0
  83. package/es/filter/components/FilterCascader/constants.js +8 -0
  84. package/es/filter/components/FilterCascader/hooks/useCascaderCallbacks.d.ts +12 -0
  85. package/es/filter/components/FilterCascader/hooks/useCascaderCallbacks.js +101 -0
  86. package/es/filter/components/FilterCascader/hooks/useCascaderLabels.d.ts +9 -0
  87. package/es/filter/components/FilterCascader/hooks/useCascaderLabels.js +50 -0
  88. package/es/filter/components/FilterCascader/hooks/useNormalizedValue.d.ts +7 -0
  89. package/es/filter/components/FilterCascader/hooks/useNormalizedValue.js +53 -0
  90. package/es/filter/components/FilterCascader/index.d.ts +5 -0
  91. package/es/filter/components/FilterCascader/index.js +317 -0
  92. package/es/filter/components/FilterCascader/types.d.ts +56 -0
  93. package/es/filter/components/FilterCascader/types.js +1 -0
  94. package/es/filter/components/FilterCascader/utils/countUtils.d.ts +13 -0
  95. package/es/filter/components/FilterCascader/utils/countUtils.js +48 -0
  96. package/es/filter/components/FilterCascader/utils/pathUtils.d.ts +17 -0
  97. package/es/filter/components/FilterCascader/utils/pathUtils.js +91 -0
  98. package/es/filter/components/FilterCheckbox.d.ts +26 -0
  99. package/es/filter/components/FilterCheckbox.js +358 -0
  100. package/es/filter/components/FilterInput.d.ts +18 -0
  101. package/es/filter/components/FilterInput.js +148 -0
  102. package/es/filter/components/FilterRange.d.ts +19 -0
  103. package/es/filter/components/FilterRange.js +201 -0
  104. package/es/filter/components/FilterSelect.d.ts +23 -0
  105. package/es/filter/components/FilterSelect.js +245 -0
  106. package/es/filter/components/FilterSlot.d.ts +28 -0
  107. package/es/filter/components/FilterSlot.js +189 -0
  108. package/es/filter/components/FilterSwitch.d.ts +13 -0
  109. package/es/filter/components/FilterSwitch.js +102 -0
  110. package/es/filter/components/FilterWrap.d.ts +20 -0
  111. package/es/filter/components/FilterWrap.js +329 -0
  112. package/es/filter/components/ResponsiveFilterGroup.d.ts +27 -0
  113. package/es/filter/components/ResponsiveFilterGroup.js +477 -0
  114. package/es/filter/components/WrappedTagsDisplay.d.ts +22 -0
  115. package/es/filter/components/WrappedTagsDisplay.js +80 -0
  116. package/es/filter/hooks/index.d.ts +4 -0
  117. package/es/filter/hooks/index.js +3 -0
  118. package/es/filter/hooks/useControlledState.d.ts +9 -0
  119. package/es/filter/hooks/useControlledState.js +37 -0
  120. package/es/filter/hooks/useFilterCollapsed.d.ts +8 -0
  121. package/es/filter/hooks/useFilterCollapsed.js +15 -0
  122. package/es/filter/hooks/useFilterTooltip.d.ts +29 -0
  123. package/es/filter/hooks/useFilterTooltip.js +127 -0
  124. package/es/filter/index.d.ts +24 -0
  125. package/es/filter/index.js +27 -0
  126. package/es/filter/style/index.d.ts +15 -0
  127. package/es/filter/style/index.js +245 -0
  128. package/es/filter/type.d.ts +41 -0
  129. package/es/filter/type.js +1 -0
  130. package/es/filter/utils.d.ts +50 -0
  131. package/es/filter/utils.js +189 -0
  132. package/es/float-button/index.js +1 -0
  133. package/es/form/FormItem.d.ts +1 -1
  134. package/es/form/FormItem.js +10 -2
  135. package/es/form/index.js +10 -2
  136. package/es/form/style/index.d.ts +1 -4
  137. package/es/form/style/index.js +6 -7
  138. package/es/grid/col.js +1 -0
  139. package/es/grid/index.js +1 -0
  140. package/es/grid/row.js +1 -0
  141. package/es/image/index.js +1 -0
  142. package/es/index.d.ts +178 -1
  143. package/es/index.js +3 -1
  144. package/es/input/Input.js +10 -2
  145. package/es/input/Password.js +10 -2
  146. package/es/input/Search.js +10 -2
  147. package/es/input/TextArea.js +10 -2
  148. package/es/input/index.js +1 -0
  149. package/es/input/style/index.d.ts +1 -4
  150. package/es/input/style/index.js +23 -9
  151. package/es/input-number/index.js +10 -2
  152. package/es/input-number/style/index.d.ts +2 -5
  153. package/es/input-number/style/index.js +14 -10
  154. package/es/layout/index.js +1 -0
  155. package/es/list/index.js +1 -0
  156. package/es/locale/en-US.js +10 -2
  157. package/es/locale/index.d.ts +11 -0
  158. package/es/locale/index.js +1 -0
  159. package/es/locale/ja-JP.js +10 -2
  160. package/es/locale/zh-CN.js +10 -2
  161. package/es/locale/zh-TW.js +10 -2
  162. package/es/lottie/index.js +1 -0
  163. package/es/mentions/index.js +1 -0
  164. package/es/menu/index.js +1 -0
  165. package/es/message/index.js +1 -0
  166. package/es/modal/Modal.d.ts +3 -1
  167. package/es/modal/Modal.js +49 -8
  168. package/es/modal/Progress.js +1 -0
  169. package/es/modal/index.js +1 -0
  170. package/es/modal/style/index.d.ts +1 -4
  171. package/es/modal/style/index.js +39 -13
  172. package/es/notification/index.js +1 -0
  173. package/es/pagination/index.js +1 -0
  174. package/es/popconfirm/index.js +1 -0
  175. package/es/popover/index.js +1 -0
  176. package/es/progress/index.js +1 -0
  177. package/es/qrcode/index.js +1 -0
  178. package/es/radio/RadioButton.d.ts +8 -0
  179. package/es/radio/RadioButton.js +42 -0
  180. package/es/radio/index.d.ts +4 -0
  181. package/es/radio/index.js +12 -3
  182. package/es/radio/style/index.d.ts +1 -4
  183. package/es/radio/style/index.js +27 -9
  184. package/es/rate/index.js +1 -0
  185. package/es/result/403.js +1 -0
  186. package/es/result/404.js +1 -0
  187. package/es/result/500.js +1 -0
  188. package/es/result/Error.js +1 -0
  189. package/es/result/Processing.js +1 -0
  190. package/es/result/Success.js +1 -0
  191. package/es/result/Warning.js +1 -0
  192. package/es/result/index.js +10 -2
  193. package/es/result/style/index.d.ts +1 -4
  194. package/es/result/style/index.js +3 -6
  195. package/es/segmented/index.js +10 -2
  196. package/es/segmented/style/index.d.ts +1 -4
  197. package/es/segmented/style/index.js +3 -6
  198. package/es/select/index.js +10 -2
  199. package/es/select/style/index.d.ts +1 -4
  200. package/es/select/style/index.js +13 -8
  201. package/es/skeleton/index.js +1 -0
  202. package/es/slider/index.js +10 -2
  203. package/es/slider/style/index.d.ts +1 -4
  204. package/es/slider/style/index.js +6 -8
  205. package/es/space/index.js +10 -2
  206. package/es/space/style/index.d.ts +1 -4
  207. package/es/space/style/index.js +3 -6
  208. package/es/spin/assets/spin-gray.json +1 -1
  209. package/es/spin/assets/spin.json +1 -1
  210. package/es/spin/index.js +10 -2
  211. package/es/spin/style/index.d.ts +1 -4
  212. package/es/spin/style/index.js +29 -30
  213. package/es/static-function/index.d.ts +176 -1
  214. package/es/static-function/index.js +5 -1
  215. package/es/statistic/index.js +1 -0
  216. package/es/steps/index.js +1 -0
  217. package/es/style/global.d.ts +1 -0
  218. package/es/style/global.js +59 -11
  219. package/es/switch/index.js +10 -2
  220. package/es/switch/style/index.d.ts +1 -4
  221. package/es/switch/style/index.js +7 -8
  222. package/es/table/index.d.ts +1 -4
  223. package/es/table/index.js +264 -22
  224. package/es/table/style/index.d.ts +1 -4
  225. package/es/table/style/index.js +174 -40
  226. package/es/tabs/TabPane.js +1 -0
  227. package/es/tabs/hooks/useLegacyItems.js +1 -0
  228. package/es/tabs/index.js +10 -2
  229. package/es/tabs/style/index.d.ts +1 -4
  230. package/es/tabs/style/index.js +6 -7
  231. package/es/tag/index.js +20 -5
  232. package/es/tag/style/index.d.ts +1 -4
  233. package/es/tag/style/index.js +43 -21
  234. package/es/theme/default.d.ts +61 -0
  235. package/es/theme/default.js +315 -62
  236. package/es/theme/index.d.ts +2 -0
  237. package/es/theme/index.js +13 -1
  238. package/es/theme/interface.d.ts +81 -0
  239. package/es/theme/obToken.d.ts +206 -0
  240. package/es/theme/obToken.js +255 -0
  241. package/es/theme/obTokenMeta.d.ts +24 -0
  242. package/es/theme/obTokenMeta.js +937 -0
  243. package/es/theme/style/aliyun.less +1 -1
  244. package/es/theme/style/compact.less +106 -84
  245. package/es/theme/style/dark.less +1 -1
  246. package/es/theme/style/default.less +107 -85
  247. package/es/time-picker/index.js +1 -0
  248. package/es/timeline/index.js +1 -0
  249. package/es/tooltip/MouseTooltip.js +1 -0
  250. package/es/tooltip/ReactStickyMouseTooltip.js +1 -0
  251. package/es/tooltip/index.js +5 -4
  252. package/es/tooltip/style/index.d.ts +1 -4
  253. package/es/tooltip/style/index.js +10 -13
  254. package/es/tour/index.js +1 -0
  255. package/es/transfer/index.js +1 -0
  256. package/es/tree/index.js +1 -0
  257. package/es/tree-select/index.js +10 -2
  258. package/es/tree-select/style/index.d.ts +1 -4
  259. package/es/tree-select/style/index.js +3 -6
  260. package/es/typography/Link.js +10 -2
  261. package/es/typography/Paragraph.js +10 -2
  262. package/es/typography/Text.d.ts +1 -0
  263. package/es/typography/Text.js +13 -4
  264. package/es/typography/Title.js +10 -2
  265. package/es/typography/hooks/useClassName.d.ts +1 -1
  266. package/es/typography/hooks/useClassName.js +2 -2
  267. package/es/typography/index.d.ts +12 -1
  268. package/es/typography/index.js +3 -1
  269. package/es/typography/style/index.d.ts +2 -5
  270. package/es/typography/style/index.js +9 -8
  271. package/es/upload/index.js +1 -0
  272. package/es/watermark/index.js +1 -0
  273. package/lib/_util/document.d.ts +11 -0
  274. package/lib/_util/document.js +74 -0
  275. package/lib/_util/genComponentStyleHook.d.ts +19 -2
  276. package/lib/_util/genComponentStyleHook.js +60 -64
  277. package/lib/_util/getEllipsisConfig.js +16 -39
  278. package/lib/_util/index.d.ts +2 -0
  279. package/lib/_util/index.js +51 -29
  280. package/lib/_util/styleChecker.js +32 -53
  281. package/lib/_util/type.js +4 -16
  282. package/lib/_util/useFlexGapSupport.js +11 -36
  283. package/lib/affix/index.js +15 -22
  284. package/lib/alert/index.d.ts +1 -1
  285. package/lib/alert/index.js +65 -83
  286. package/lib/alert/style/index.d.ts +1 -4
  287. package/lib/alert/style/index.js +109 -113
  288. package/lib/anchor/index.js +26 -24
  289. package/lib/app/index.js +47 -55
  290. package/lib/app/style/index.d.ts +1 -4
  291. package/lib/app/style/index.js +14 -36
  292. package/lib/auto-complete/index.js +15 -22
  293. package/lib/avatar/index.js +26 -24
  294. package/lib/badge/index.d.ts +2 -0
  295. package/lib/badge/index.js +108 -105
  296. package/lib/badge/style/index.d.ts +1 -4
  297. package/lib/badge/style/index.js +25 -43
  298. package/lib/breadcrumb/Breadcrumb.js +15 -22
  299. package/lib/breadcrumb/index.js +31 -32
  300. package/lib/button/index.js +56 -61
  301. package/lib/button/style/index.d.ts +3 -4
  302. package/lib/button/style/index.js +69 -37
  303. package/lib/calendar/index.js +15 -22
  304. package/lib/card/Card.js +14 -21
  305. package/lib/card/index.d.ts +6 -0
  306. package/lib/card/index.js +202 -175
  307. package/lib/card/style/index.d.ts +1 -4
  308. package/lib/card/style/index.js +186 -102
  309. package/lib/carousel/index.js +15 -22
  310. package/lib/cascader/index.js +15 -22
  311. package/lib/checkbox/index.js +52 -70
  312. package/lib/checkbox/style/index.d.ts +1 -4
  313. package/lib/checkbox/style/index.js +25 -39
  314. package/lib/collapse/index.js +15 -22
  315. package/lib/color-picker/index.js +15 -22
  316. package/lib/color-picker/interface.js +14 -21
  317. package/lib/config-provider/DefaultRenderEmpty.js +34 -49
  318. package/lib/config-provider/SizeContext.js +14 -21
  319. package/lib/config-provider/context.js +14 -21
  320. package/lib/config-provider/index.d.ts +5 -0
  321. package/lib/config-provider/index.js +257 -230
  322. package/lib/config-provider/navigate.js +4 -16
  323. package/lib/date-picker/index.js +15 -22
  324. package/lib/descriptions/Item.js +6 -24
  325. package/lib/descriptions/hooks/useItems.js +50 -73
  326. package/lib/descriptions/index.d.ts +10 -0
  327. package/lib/descriptions/index.js +104 -76
  328. package/lib/descriptions/style/index.d.ts +2 -5
  329. package/lib/descriptions/style/index.js +135 -50
  330. package/lib/divider/index.js +15 -22
  331. package/lib/drawer/index.d.ts +2 -0
  332. package/lib/drawer/index.js +139 -128
  333. package/lib/drawer/style/index.d.ts +1 -4
  334. package/lib/drawer/style/index.js +69 -55
  335. package/lib/dropdown/dropdown-button.js +34 -29
  336. package/lib/dropdown/index.js +47 -47
  337. package/lib/dropdown/style/index.d.ts +6 -0
  338. package/lib/dropdown/style/index.js +35 -0
  339. package/lib/empty/colored.js +198 -315
  340. package/lib/empty/database.js +117 -186
  341. package/lib/empty/default.js +53 -49
  342. package/lib/empty/guide.js +145 -225
  343. package/lib/empty/index.js +77 -96
  344. package/lib/empty/style/index.d.ts +1 -4
  345. package/lib/empty/style/index.js +31 -47
  346. package/lib/filter/FilterContext.d.ts +27 -0
  347. package/lib/filter/FilterContext.js +33 -0
  348. package/lib/filter/components/ClearIcon.d.ts +6 -0
  349. package/lib/filter/components/ClearIcon.js +35 -0
  350. package/lib/filter/components/CountNumber.d.ts +8 -0
  351. package/lib/filter/components/CountNumber.js +30 -0
  352. package/lib/filter/components/FilterButton.d.ts +34 -0
  353. package/lib/filter/components/FilterButton.js +194 -0
  354. package/lib/filter/components/FilterCascader/components/CascaderOption/OptionCheckbox.d.ts +20 -0
  355. package/lib/filter/components/FilterCascader/components/CascaderOption/OptionCheckbox.js +91 -0
  356. package/lib/filter/components/FilterCascader/components/CascaderOption/OptionItem.d.ts +13 -0
  357. package/lib/filter/components/FilterCascader/components/CascaderOption/OptionItem.js +51 -0
  358. package/lib/filter/components/FilterCascader/components/FlatCascaderContent/index.d.ts +17 -0
  359. package/lib/filter/components/FilterCascader/components/FlatCascaderContent/index.js +77 -0
  360. package/lib/filter/components/FilterCascader/components/NormalCascaderContent.d.ts +24 -0
  361. package/lib/filter/components/FilterCascader/components/NormalCascaderContent.js +258 -0
  362. package/lib/filter/components/FilterCascader/constants.d.ts +7 -0
  363. package/lib/filter/components/FilterCascader/constants.js +14 -0
  364. package/lib/filter/components/FilterCascader/hooks/useCascaderCallbacks.d.ts +12 -0
  365. package/lib/filter/components/FilterCascader/hooks/useCascaderCallbacks.js +81 -0
  366. package/lib/filter/components/FilterCascader/hooks/useCascaderLabels.d.ts +9 -0
  367. package/lib/filter/components/FilterCascader/hooks/useCascaderLabels.js +56 -0
  368. package/lib/filter/components/FilterCascader/hooks/useNormalizedValue.d.ts +7 -0
  369. package/lib/filter/components/FilterCascader/hooks/useNormalizedValue.js +48 -0
  370. package/lib/filter/components/FilterCascader/index.d.ts +5 -0
  371. package/lib/filter/components/FilterCascader/index.js +298 -0
  372. package/lib/filter/components/FilterCascader/types.d.ts +56 -0
  373. package/lib/filter/components/FilterCascader/types.js +5 -0
  374. package/lib/filter/components/FilterCascader/utils/countUtils.d.ts +13 -0
  375. package/lib/filter/components/FilterCascader/utils/countUtils.js +49 -0
  376. package/lib/filter/components/FilterCascader/utils/pathUtils.d.ts +17 -0
  377. package/lib/filter/components/FilterCascader/utils/pathUtils.js +56 -0
  378. package/lib/filter/components/FilterCheckbox.d.ts +26 -0
  379. package/lib/filter/components/FilterCheckbox.js +319 -0
  380. package/lib/filter/components/FilterInput.d.ts +18 -0
  381. package/lib/filter/components/FilterInput.js +134 -0
  382. package/lib/filter/components/FilterRange.d.ts +19 -0
  383. package/lib/filter/components/FilterRange.js +186 -0
  384. package/lib/filter/components/FilterSelect.d.ts +23 -0
  385. package/lib/filter/components/FilterSelect.js +221 -0
  386. package/lib/filter/components/FilterSlot.d.ts +28 -0
  387. package/lib/filter/components/FilterSlot.js +174 -0
  388. package/lib/filter/components/FilterSwitch.d.ts +13 -0
  389. package/lib/filter/components/FilterSwitch.js +91 -0
  390. package/lib/filter/components/FilterWrap.d.ts +20 -0
  391. package/lib/filter/components/FilterWrap.js +306 -0
  392. package/lib/filter/components/ResponsiveFilterGroup.d.ts +27 -0
  393. package/lib/filter/components/ResponsiveFilterGroup.js +412 -0
  394. package/lib/filter/components/WrappedTagsDisplay.d.ts +22 -0
  395. package/lib/filter/components/WrappedTagsDisplay.js +84 -0
  396. package/lib/filter/hooks/index.d.ts +4 -0
  397. package/lib/filter/hooks/index.js +26 -0
  398. package/lib/filter/hooks/useControlledState.d.ts +9 -0
  399. package/lib/filter/hooks/useControlledState.js +34 -0
  400. package/lib/filter/hooks/useFilterCollapsed.d.ts +8 -0
  401. package/lib/filter/hooks/useFilterCollapsed.js +21 -0
  402. package/lib/filter/hooks/useFilterTooltip.d.ts +29 -0
  403. package/lib/filter/hooks/useFilterTooltip.js +121 -0
  404. package/lib/filter/index.d.ts +24 -0
  405. package/lib/filter/index.js +45 -0
  406. package/lib/filter/style/index.d.ts +15 -0
  407. package/lib/filter/style/index.js +308 -0
  408. package/lib/filter/type.d.ts +41 -0
  409. package/lib/filter/type.js +5 -0
  410. package/lib/filter/utils.d.ts +50 -0
  411. package/lib/filter/utils.js +192 -0
  412. package/lib/float-button/index.js +15 -22
  413. package/lib/float-button/interface.js +14 -21
  414. package/lib/form/FormItem.d.ts +1 -1
  415. package/lib/form/FormItem.js +78 -85
  416. package/lib/form/index.js +58 -79
  417. package/lib/form/interface.js +14 -21
  418. package/lib/form/style/index.d.ts +1 -4
  419. package/lib/form/style/index.js +20 -40
  420. package/lib/grid/col.js +28 -46
  421. package/lib/grid/index.js +25 -44
  422. package/lib/grid/row.js +30 -46
  423. package/lib/image/index.js +15 -22
  424. package/lib/index.d.ts +178 -1
  425. package/lib/index.js +363 -154
  426. package/lib/input/Input.js +64 -78
  427. package/lib/input/Password.js +59 -77
  428. package/lib/input/Search.js +59 -77
  429. package/lib/input/TextArea.js +59 -77
  430. package/lib/input/index.js +30 -50
  431. package/lib/input/style/index.d.ts +1 -4
  432. package/lib/input/style/index.js +45 -36
  433. package/lib/input-number/index.js +56 -77
  434. package/lib/input-number/style/index.d.ts +2 -5
  435. package/lib/input-number/style/index.js +30 -38
  436. package/lib/layout/index.js +15 -22
  437. package/lib/list/index.js +52 -60
  438. package/lib/locale/en-US.js +29 -48
  439. package/lib/locale/index.d.ts +11 -0
  440. package/lib/locale/index.js +24 -38
  441. package/lib/locale/ja-JP.js +29 -48
  442. package/lib/locale/useLocale.js +6 -24
  443. package/lib/locale/zh-CN.js +29 -48
  444. package/lib/locale/zh-TW.js +29 -48
  445. package/lib/lottie/index.js +61 -81
  446. package/lib/mentions/index.js +15 -22
  447. package/lib/menu/index.js +15 -22
  448. package/lib/menu/interface.js +14 -21
  449. package/lib/message/index.js +15 -22
  450. package/lib/message/interface.js +14 -21
  451. package/lib/modal/Modal.d.ts +3 -1
  452. package/lib/modal/Modal.js +99 -81
  453. package/lib/modal/Progress.js +44 -62
  454. package/lib/modal/index.js +23 -43
  455. package/lib/modal/interface.js +14 -21
  456. package/lib/modal/style/index.d.ts +1 -4
  457. package/lib/modal/style/index.js +67 -51
  458. package/lib/notification/index.js +15 -22
  459. package/lib/notification/interface.js +14 -21
  460. package/lib/pagination/index.js +15 -22
  461. package/lib/popconfirm/index.js +15 -22
  462. package/lib/popover/index.js +15 -22
  463. package/lib/progress/index.js +26 -24
  464. package/lib/progress/progress.js +14 -21
  465. package/lib/qrcode/index.js +15 -22
  466. package/lib/qrcode/interface.js +14 -21
  467. package/lib/radio/RadioButton.d.ts +8 -0
  468. package/lib/radio/RadioButton.js +44 -0
  469. package/lib/radio/index.d.ts +4 -0
  470. package/lib/radio/index.js +54 -63
  471. package/lib/radio/interface.js +14 -21
  472. package/lib/radio/style/index.d.ts +1 -4
  473. package/lib/radio/style/index.js +59 -38
  474. package/lib/rate/index.js +15 -22
  475. package/lib/result/403.js +164 -196
  476. package/lib/result/404.js +291 -355
  477. package/lib/result/500.js +156 -260
  478. package/lib/result/Error.js +126 -161
  479. package/lib/result/Processing.js +320 -253
  480. package/lib/result/Success.js +202 -262
  481. package/lib/result/Warning.js +302 -435
  482. package/lib/result/index.js +65 -81
  483. package/lib/result/style/index.d.ts +1 -4
  484. package/lib/result/style/index.js +16 -39
  485. package/lib/segmented/index.js +86 -84
  486. package/lib/segmented/style/index.d.ts +1 -4
  487. package/lib/segmented/style/index.js +20 -40
  488. package/lib/select/index.js +63 -82
  489. package/lib/select/style/index.d.ts +1 -4
  490. package/lib/select/style/index.js +29 -37
  491. package/lib/skeleton/index.js +15 -22
  492. package/lib/slider/index.js +48 -59
  493. package/lib/slider/style/index.d.ts +1 -4
  494. package/lib/slider/style/index.js +20 -38
  495. package/lib/space/index.js +62 -69
  496. package/lib/space/style/index.d.ts +1 -4
  497. package/lib/space/style/index.js +17 -40
  498. package/lib/spin/assets/spin-gray.json +1 -1
  499. package/lib/spin/assets/spin.json +1 -1
  500. package/lib/spin/index.js +58 -77
  501. package/lib/spin/style/index.d.ts +1 -4
  502. package/lib/spin/style/index.js +54 -58
  503. package/lib/static-function/index.d.ts +176 -1
  504. package/lib/static-function/index.js +51 -74
  505. package/lib/statistic/index.js +15 -22
  506. package/lib/steps/index.js +15 -22
  507. package/lib/style/global.d.ts +1 -0
  508. package/lib/style/global.js +187 -145
  509. package/lib/switch/index.js +52 -61
  510. package/lib/switch/style/index.d.ts +1 -4
  511. package/lib/switch/style/index.js +17 -37
  512. package/lib/table/hooks/useDefaultPagination.js +18 -46
  513. package/lib/table/index.d.ts +1 -4
  514. package/lib/table/index.js +414 -192
  515. package/lib/table/interface.js +14 -21
  516. package/lib/table/style/index.d.ts +1 -4
  517. package/lib/table/style/index.js +297 -94
  518. package/lib/tabs/TabPane.js +7 -25
  519. package/lib/tabs/hooks/useLegacyItems.js +27 -44
  520. package/lib/tabs/index.js +107 -125
  521. package/lib/tabs/style/index.d.ts +1 -4
  522. package/lib/tabs/style/index.js +26 -41
  523. package/lib/tag/index.js +81 -95
  524. package/lib/tag/style/index.d.ts +1 -4
  525. package/lib/tag/style/index.js +64 -64
  526. package/lib/theme/aliyun.js +7 -34
  527. package/lib/theme/compact.js +9 -36
  528. package/lib/theme/dark.js +9 -36
  529. package/lib/theme/default.d.ts +61 -0
  530. package/lib/theme/default.js +343 -119
  531. package/lib/theme/index.d.ts +2 -0
  532. package/lib/theme/index.js +61 -56
  533. package/lib/theme/interface.d.ts +81 -0
  534. package/lib/theme/interface.js +14 -21
  535. package/lib/theme/internal.js +14 -21
  536. package/lib/theme/obToken.d.ts +206 -0
  537. package/lib/theme/obToken.js +462 -0
  538. package/lib/theme/obTokenMeta.d.ts +24 -0
  539. package/lib/theme/obTokenMeta.js +943 -0
  540. package/lib/theme/style/aliyun.less +1 -1
  541. package/lib/theme/style/compact.less +106 -84
  542. package/lib/theme/style/dark.less +1 -1
  543. package/lib/theme/style/default.less +107 -85
  544. package/lib/theme/themes/compact/index.js +19 -39
  545. package/lib/theme/themes/dark/index.js +19 -39
  546. package/lib/theme/themes/default/index.js +19 -39
  547. package/lib/theme/themes/seed.js +24 -43
  548. package/lib/theme/util/alias.js +19 -39
  549. package/lib/theme/util/format.js +15 -35
  550. package/lib/time-picker/index.js +15 -22
  551. package/lib/timeline/index.js +15 -22
  552. package/lib/tooltip/MouseTooltip.js +84 -99
  553. package/lib/tooltip/ReactStickyMouseTooltip.js +63 -89
  554. package/lib/tooltip/hooks/useTooltipTypeList.js +28 -61
  555. package/lib/tooltip/index.js +122 -137
  556. package/lib/tooltip/style/index.d.ts +1 -4
  557. package/lib/tooltip/style/index.js +26 -50
  558. package/lib/tour/index.js +15 -22
  559. package/lib/tour/interface.js +14 -21
  560. package/lib/transfer/index.js +15 -22
  561. package/lib/transfer/interface.js +14 -21
  562. package/lib/tree/index.js +15 -22
  563. package/lib/tree-select/index.js +66 -85
  564. package/lib/tree-select/style/index.d.ts +1 -4
  565. package/lib/tree-select/style/index.js +10 -35
  566. package/lib/typography/Link.js +54 -69
  567. package/lib/typography/Paragraph.js +54 -69
  568. package/lib/typography/Text.d.ts +1 -0
  569. package/lib/typography/Text.js +55 -69
  570. package/lib/typography/Title.js +54 -69
  571. package/lib/typography/hooks/useClassName.d.ts +1 -1
  572. package/lib/typography/hooks/useClassName.js +12 -42
  573. package/lib/typography/index.d.ts +12 -1
  574. package/lib/typography/index.js +89 -58
  575. package/lib/typography/style/index.d.ts +2 -5
  576. package/lib/typography/style/index.js +35 -49
  577. package/lib/upload/index.js +15 -22
  578. package/lib/upload/interface.js +14 -21
  579. package/lib/watermark/index.js +15 -22
  580. package/package.json +8 -8
@@ -0,0 +1,412 @@
1
+ "use strict";
2
+ "use client";
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _antd = require("antd");
9
+ var _icons = require("@oceanbase/icons");
10
+ var _button = _interopRequireDefault(require("../../button"));
11
+ var _FilterWrap = _interopRequireDefault(require("./FilterWrap"));
12
+ var _configProvider = _interopRequireDefault(require("../../config-provider"));
13
+ var _enUS = _interopRequireDefault(require("../../locale/en-US"));
14
+ var _FilterContext = require("../FilterContext");
15
+ var _jsxRuntime = require("react/jsx-runtime");
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
18
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
19
+ // 检查元素是否是 Filter 组件(通过 __isFilterComponent 静态标记识别)
20
+ const isFilterComponent = child => {
21
+ const type = child.type;
22
+ if (type?.__isFilterComponent) return true;
23
+ if (child.props?.children && /*#__PURE__*/(0, _react.isValidElement)(child.props.children)) {
24
+ const innerType = child.props.children.type;
25
+ if (innerType?.__isFilterComponent) return true;
26
+ }
27
+ return false;
28
+ };
29
+
30
+ // 检查子元素是否可以被折叠(只有 Filter 组件默认可折叠,其他组件需要显式设置 collapsible)
31
+ const isCollapsibleCheck = child => {
32
+ const childProps = child.props;
33
+ if (childProps?.collapsible !== undefined) {
34
+ return childProps.collapsible !== false;
35
+ }
36
+ if (childProps?.children && /*#__PURE__*/(0, _react.isValidElement)(childProps.children)) {
37
+ const innerChild = childProps.children;
38
+ if (innerChild.props?.collapsible !== undefined) {
39
+ return innerChild.props.collapsible !== false;
40
+ }
41
+ }
42
+ return isFilterComponent(child);
43
+ };
44
+
45
+ // 检查子元素是否应该始终折叠
46
+ const isAlwaysCollapseCheck = child => {
47
+ const childProps = child.props;
48
+ if (childProps?.alwaysCollapse !== undefined) {
49
+ return childProps.alwaysCollapse === true;
50
+ }
51
+ if (childProps?.children && /*#__PURE__*/(0, _react.isValidElement)(childProps.children)) {
52
+ const innerChild = childProps.children;
53
+ if (innerChild.props?.alwaysCollapse !== undefined) {
54
+ return innerChild.props.alwaysCollapse === true;
55
+ }
56
+ }
57
+ return false;
58
+ };
59
+ const ResponsiveFilterGroup = ({
60
+ children,
61
+ gap = 8,
62
+ label,
63
+ icon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.FilterOutlined, {}),
64
+ onApply,
65
+ onClearAll,
66
+ showActions = true,
67
+ style,
68
+ extra,
69
+ showCount = true,
70
+ locale: customLocale
71
+ }) => {
72
+ const {
73
+ locale: contextLocale
74
+ } = (0, _react.useContext)(_configProvider.default.ConfigContext);
75
+ const filterLocale = {
76
+ ..._enUS.default.Filter,
77
+ ...contextLocale?.Filter,
78
+ ...customLocale
79
+ };
80
+ const filterLabel = label ?? filterLocale?.filters;
81
+ const containerRef = (0, _react.useRef)(null);
82
+ const filterButtonRef = (0, _react.useRef)(null);
83
+ const moreButtonMeasureRef = (0, _react.useRef)(null);
84
+ const cachedWidths = (0, _react.useRef)([]);
85
+ const [visibleCount, setVisibleCount] = (0, _react.useState)(null);
86
+ const [filterValues, setFilterValues] = (0, _react.useState)([]);
87
+ const childrenArray = (0, _react.useMemo)(() => _react.Children.toArray(children).filter(_react.isValidElement), [children]);
88
+ const childInfo = (0, _react.useMemo)(() => childrenArray.map((child, index) => ({
89
+ child,
90
+ index,
91
+ isCollapsible: isCollapsibleCheck(child),
92
+ isAlwaysCollapse: isAlwaysCollapseCheck(child)
93
+ })), [childrenArray]);
94
+ const collapsibleItems = (0, _react.useMemo)(() => childInfo.filter(item => item.isCollapsible), [childInfo]);
95
+ const alwaysCollapseItems = (0, _react.useMemo)(() => collapsibleItems.filter(item => item.isAlwaysCollapse), [collapsibleItems]);
96
+ const normalCollapsibleItems = (0, _react.useMemo)(() => collapsibleItems.filter(item => !item.isAlwaysCollapse), [collapsibleItems]);
97
+
98
+ // 当 children 结构变化(增删/重排)时才重置为测量模式
99
+ // 不能用 childrenArray 引用比较,因为 JSX 每次渲染都产生新引用
100
+ const childrenStructureKey = childrenArray.map(c => c.key ?? c.type).join(',');
101
+ const [prevStructureKey, setPrevStructureKey] = (0, _react.useState)(childrenStructureKey);
102
+ if (childrenStructureKey !== prevStructureKey) {
103
+ setPrevStructureKey(childrenStructureKey);
104
+ setVisibleCount(null);
105
+ }
106
+ const isMeasuring = visibleCount === null;
107
+
108
+ // 纯计算函数:根据容器宽度计算可显示的可折叠项数量
109
+ const calculateVisibleCount = (0, _react.useCallback)(containerWidth => {
110
+ if (normalCollapsibleItems.length === 0) return 0;
111
+ const widths = cachedWidths.current;
112
+ if (widths.length === 0) return normalCollapsibleItems.length;
113
+ let uncollapsibleTotalWidth = 0;
114
+ let uncollapsibleCount = 0;
115
+ childInfo.forEach(info => {
116
+ if (!info.isCollapsible) {
117
+ uncollapsibleTotalWidth += widths[info.index] || 0;
118
+ uncollapsibleCount++;
119
+ }
120
+ });
121
+ const moreWidth = moreButtonMeasureRef.current?.offsetWidth || 0;
122
+ const hasAlwaysCollapse = alwaysCollapseItems.length > 0;
123
+ let visibleWidth = 0;
124
+ let count = 0;
125
+ for (let i = 0; i < normalCollapsibleItems.length; i++) {
126
+ const itemWidth = widths[normalCollapsibleItems[i].index] || 0;
127
+ const newWidth = visibleWidth + itemWidth;
128
+ const remaining = normalCollapsibleItems.length - i - 1;
129
+ const needMore = remaining > 0 || hasAlwaysCollapse;
130
+ const totalItems = uncollapsibleCount + count + 1 + (needMore ? 1 : 0);
131
+ const totalGaps = totalItems > 1 ? (totalItems - 1) * gap : 0;
132
+ const totalWidth = uncollapsibleTotalWidth + newWidth + (needMore ? moreWidth : 0) + totalGaps;
133
+ if (totalWidth <= containerWidth) {
134
+ visibleWidth = newWidth;
135
+ count++;
136
+ } else {
137
+ break;
138
+ }
139
+ }
140
+ return count;
141
+ }, [childInfo, normalCollapsibleItems, alwaysCollapseItems, gap]);
142
+
143
+ // 使用 ref 保存最新的计算函数,避免 ResizeObserver 等 effect 频繁重建
144
+ const calculateRef = (0, _react.useRef)(calculateVisibleCount);
145
+ calculateRef.current = calculateVisibleCount;
146
+
147
+ // Effect 1: 测量模式下,读取所有子元素宽度并计算 visibleCount
148
+ (0, _react.useLayoutEffect)(() => {
149
+ if (!containerRef.current || !isMeasuring) return;
150
+ const items = containerRef.current.querySelectorAll('[data-filter-item]');
151
+ const newWidths = [];
152
+ items.forEach(el => {
153
+ const idx = Number(el.dataset.filterItem);
154
+ if (!isNaN(idx)) {
155
+ newWidths[idx] = el.offsetWidth;
156
+ }
157
+ });
158
+ cachedWidths.current = newWidths;
159
+ const count = calculateRef.current(containerRef.current.offsetWidth);
160
+ setVisibleCount(count);
161
+ }, [isMeasuring]);
162
+
163
+ // Effect 2: 监听容器大小变化,用缓存宽度重新计算(不需要重新测量)
164
+ (0, _react.useEffect)(() => {
165
+ if (!containerRef.current) return;
166
+ const el = containerRef.current;
167
+ const ro = new ResizeObserver(() => {
168
+ if (cachedWidths.current.length === 0) return;
169
+ const count = calculateRef.current(el.offsetWidth);
170
+ setVisibleCount(prev => prev === count ? prev : count);
171
+ });
172
+ ro.observe(el);
173
+ return () => ro.disconnect();
174
+ }, []);
175
+
176
+ // Effect 3: filterValues 变化时,more 按钮 badge 可能变化,需要重新计算
177
+ (0, _react.useEffect)(() => {
178
+ if (!containerRef.current || cachedWidths.current.length === 0) return;
179
+ const count = calculateRef.current(containerRef.current.offsetWidth);
180
+ setVisibleCount(prev => prev === count ? prev : count);
181
+ }, [filterValues]);
182
+
183
+ // Effect 4: 监听子元素的宽度变化(如筛选值变化导致按钮变宽),
184
+ // 更新缓存宽度并重新计算可见数量。
185
+ // 依赖 visibleCount 以便在显隐切换后重新查询 DOM 元素。
186
+ (0, _react.useEffect)(() => {
187
+ if (!containerRef.current || isMeasuring) return;
188
+ const el = containerRef.current;
189
+ const items = el.querySelectorAll('[data-filter-item]');
190
+ if (items.length === 0) return;
191
+ const ro = new ResizeObserver(() => {
192
+ let widthChanged = false;
193
+ items.forEach(item => {
194
+ const idx = Number(item.dataset.filterItem);
195
+ if (isNaN(idx)) return;
196
+ const w = item.offsetWidth;
197
+ if (w > 0 && Math.abs(w - (cachedWidths.current[idx] || 0)) > 1) {
198
+ cachedWidths.current[idx] = w;
199
+ widthChanged = true;
200
+ }
201
+ });
202
+ if (widthChanged) {
203
+ const count = calculateRef.current(el.offsetWidth);
204
+ setVisibleCount(prev => prev === count ? prev : count);
205
+ }
206
+ });
207
+ items.forEach(item => ro.observe(item));
208
+ return () => ro.disconnect();
209
+ }, [isMeasuring, visibleCount]);
210
+
211
+ // --- 派生状态 ---
212
+ const visibleIndexSet = (0, _react.useMemo)(() => {
213
+ if (visibleCount === null) return null;
214
+ return new Set(normalCollapsibleItems.slice(0, visibleCount).map(item => item.index));
215
+ }, [visibleCount, normalCollapsibleItems]);
216
+ const hiddenCollapsibleItems = (0, _react.useMemo)(() => {
217
+ if (!visibleIndexSet) return [];
218
+ return normalCollapsibleItems.filter(item => !visibleIndexSet.has(item.index));
219
+ }, [visibleIndexSet, normalCollapsibleItems]);
220
+ const allHiddenItems = (0, _react.useMemo)(() => [...alwaysCollapseItems, ...hiddenCollapsibleItems], [alwaysCollapseItems, hiddenCollapsibleItems]);
221
+
222
+ // --- 值管理 ---
223
+ const updateFilterValue = (0, _react.useCallback)((id, _filterLabel, value, options, componentName) => {
224
+ setFilterValues(prev => {
225
+ const isEmpty = value === undefined || value === null || value === '' || componentName === 'switch' && value === false || Array.isArray(value) && value.length === 0;
226
+ if (isEmpty) {
227
+ const filtered = prev.filter(item => item.id !== id);
228
+ return filtered.length === prev.length ? prev : filtered;
229
+ }
230
+ const existingIndex = prev.findIndex(item => item.id === id);
231
+ if (existingIndex >= 0) {
232
+ const existing = prev[existingIndex];
233
+ const optionsEqual = existing.options === options || existing.options === undefined && options === undefined || existing.options !== undefined && options !== undefined && JSON.stringify(existing.options) === JSON.stringify(options);
234
+ if (existing.value === value && optionsEqual && existing.componentName === componentName && existing.label === _filterLabel) {
235
+ return prev;
236
+ }
237
+ const newValues = [...prev];
238
+ newValues[existingIndex] = {
239
+ id,
240
+ label: _filterLabel,
241
+ value,
242
+ options,
243
+ componentName
244
+ };
245
+ return newValues;
246
+ }
247
+ return [...prev, {
248
+ id,
249
+ label: _filterLabel,
250
+ value,
251
+ options,
252
+ componentName
253
+ }];
254
+ });
255
+ }, []);
256
+ const handleClearAll = () => {
257
+ allHiddenItems.forEach(item => {
258
+ if ( /*#__PURE__*/(0, _react.isValidElement)(item.child)) {
259
+ const childProps = item.child.props;
260
+ if (childProps.children && /*#__PURE__*/(0, _react.isValidElement)(childProps.children)) {
261
+ const innerChildProps = childProps.children.props;
262
+ innerChildProps.onChange?.(undefined);
263
+ } else {
264
+ childProps.onChange?.(undefined);
265
+ }
266
+ }
267
+ });
268
+ setFilterValues([]);
269
+ onClearAll?.();
270
+ };
271
+
272
+ // --- 渲染 FilterWrap(收起的筛选项) ---
273
+ const renderHiddenChildren = () => {
274
+ if (allHiddenItems.length === 0) return null;
275
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_FilterContext.FilterProvider, {
276
+ isCollapsed: true,
277
+ filterValues: filterValues,
278
+ updateFilterValue: updateFilterValue,
279
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_FilterWrap.default, {
280
+ collapsed: true,
281
+ filterButtonRef: filterButtonRef,
282
+ icon: icon,
283
+ label: filterLabel,
284
+ extra: extra,
285
+ onClearAll: handleClearAll,
286
+ showCount: showCount,
287
+ footer: showActions && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_antd.Flex, {
288
+ justify: "space-between",
289
+ children: [onApply && /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.default, {
290
+ type: "primary",
291
+ size: "small",
292
+ onClick: () => {
293
+ onApply?.();
294
+ filterButtonRef.current?.closePopover();
295
+ },
296
+ children: filterLocale?.apply
297
+ }), onClearAll && /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.default, {
298
+ type: "link",
299
+ size: "small",
300
+ onClick: handleClearAll,
301
+ children: filterLocale?.clearAll
302
+ })]
303
+ }),
304
+ children: allHiddenItems.map((item, index) => {
305
+ if ( /*#__PURE__*/(0, _react.isValidElement)(item.child)) {
306
+ const stableKey = item.child.key || `responsive-filter-child-${index}`;
307
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_react.default.Fragment, {
308
+ children: item.child
309
+ }, stableKey);
310
+ }
311
+ return item.child;
312
+ })
313
+ })
314
+ });
315
+ };
316
+
317
+ // --- 渲染子元素 ---
318
+ // 所有子元素始终保持在 Flex 中的稳定位置(FilterProvider + div 包裹 + 稳定 key),
319
+ // 通过 CSS display 控制显隐,避免在可见/折叠间切换时卸载重挂载导致表单值丢失。
320
+ // FilterProvider 使隐藏的原始组件能直接感知 isCollapsed 并上报值,无需依赖 Popover 中的克隆。
321
+ const renderChildren = () => {
322
+ const elements = [];
323
+ let filterWrapInserted = false;
324
+ let collapsibleIdx = 0;
325
+ childrenArray.forEach((child, index) => {
326
+ const info = childInfo[index];
327
+ const stableKey = child.key || `filter-item-${index}`;
328
+ let display;
329
+ let isHidden = false;
330
+ if (isMeasuring) {
331
+ display = 'inline-flex';
332
+ } else if (!info.isCollapsible) {
333
+ display = undefined;
334
+ } else if (info.isAlwaysCollapse) {
335
+ display = 'none';
336
+ isHidden = true;
337
+ } else {
338
+ const isVisible = collapsibleIdx < visibleCount;
339
+ display = isVisible ? undefined : 'none';
340
+ isHidden = !isVisible;
341
+ collapsibleIdx++;
342
+ }
343
+ elements.push( /*#__PURE__*/(0, _jsxRuntime.jsx)(_FilterContext.FilterProvider, {
344
+ isCollapsed: !isMeasuring && isHidden,
345
+ filterValues: filterValues,
346
+ updateFilterValue: updateFilterValue,
347
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
348
+ "data-filter-item": index,
349
+ style: {
350
+ display,
351
+ flexShrink: 0
352
+ },
353
+ children: child
354
+ })
355
+ }, stableKey));
356
+ if (!isMeasuring && isHidden && !filterWrapInserted && allHiddenItems.length > 0) {
357
+ filterWrapInserted = true;
358
+ elements.push( /*#__PURE__*/(0, _jsxRuntime.jsx)(_react.default.Fragment, {
359
+ children: renderHiddenChildren()
360
+ }, "filter-wrap"));
361
+ }
362
+ });
363
+ if (!isMeasuring && !filterWrapInserted && allHiddenItems.length > 0) {
364
+ elements.push( /*#__PURE__*/(0, _jsxRuntime.jsx)(_react.default.Fragment, {
365
+ children: renderHiddenChildren()
366
+ }, "filter-wrap"));
367
+ }
368
+ return elements;
369
+ };
370
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
371
+ ref: containerRef,
372
+ className: "responsive-filter-group",
373
+ style: {
374
+ flex: '1 1 auto',
375
+ minWidth: 0,
376
+ position: 'relative',
377
+ overflow: 'hidden',
378
+ visibility: isMeasuring ? 'hidden' : undefined,
379
+ ...style
380
+ },
381
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
382
+ ref: moreButtonMeasureRef,
383
+ style: {
384
+ position: 'absolute',
385
+ visibility: 'hidden',
386
+ pointerEvents: 'none',
387
+ top: -9999,
388
+ left: -9999,
389
+ display: 'inline-flex'
390
+ },
391
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_FilterContext.FilterProvider, {
392
+ isCollapsed: true,
393
+ filterValues: filterValues,
394
+ updateFilterValue: updateFilterValue,
395
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_FilterWrap.default, {
396
+ collapsed: true,
397
+ icon: icon,
398
+ label: filterLabel,
399
+ showCount: showCount,
400
+ onClearAll: handleClearAll,
401
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {})
402
+ })
403
+ })
404
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.Flex, {
405
+ gap: gap,
406
+ align: "center",
407
+ wrap: "nowrap",
408
+ children: renderChildren()
409
+ })]
410
+ });
411
+ };
412
+ var _default = exports.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,84 @@
1
+ "use strict";
2
+ "use client";
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _antd = require("antd");
9
+ var _tag = _interopRequireDefault(require("../../tag"));
10
+ var _tooltip = _interopRequireDefault(require("../../tooltip"));
11
+ var _theme = _interopRequireDefault(require("../../theme"));
12
+ var _configProvider = _interopRequireDefault(require("../../config-provider"));
13
+ var _enUS = _interopRequireDefault(require("../../locale/en-US"));
14
+ var _jsxRuntime = require("react/jsx-runtime");
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
17
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
+ /**
19
+ * Wrapped 模式下的 Tag 展示组件
20
+ * 用于 FilterCheckbox、FilterCascader 等多选组件在 wrapped 模式下展示选中值
21
+ */
22
+ const WrappedTagsDisplay = ({
23
+ tags,
24
+ maxVisibleTags = 2,
25
+ onRemove,
26
+ tagMaxWidth = 80
27
+ }) => {
28
+ const {
29
+ token
30
+ } = _theme.default.useToken();
31
+ const {
32
+ locale: contextLocale
33
+ } = (0, _react.useContext)(_configProvider.default.ConfigContext);
34
+ const filterLocale = contextLocale?.Filter || _enUS.default.Filter;
35
+ const hasValue = tags.length > 0;
36
+ const visibleTags = tags.slice(0, maxVisibleTags);
37
+ const hiddenTags = tags.slice(maxVisibleTags);
38
+ const hiddenCount = hiddenTags.length;
39
+ if (!hasValue) {
40
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
41
+ style: {
42
+ color: token.colorTextPlaceholder
43
+ },
44
+ children: filterLocale?.pleaseSelect
45
+ });
46
+ }
47
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_antd.Flex, {
48
+ align: "center",
49
+ style: {
50
+ overflow: 'hidden',
51
+ flex: 1
52
+ },
53
+ children: [visibleTags.map(item => /*#__PURE__*/(0, _jsxRuntime.jsx)(_tag.default, {
54
+ closable: !!onRemove,
55
+ onClose: e => {
56
+ e.preventDefault();
57
+ e.stopPropagation();
58
+ onRemove?.(item.value);
59
+ },
60
+ style: {
61
+ maxWidth: tagMaxWidth,
62
+ marginRight: 4
63
+ },
64
+ children: item.label
65
+ }, item.value)), hiddenCount > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_tooltip.default, {
66
+ title: hiddenTags.map(item => /*#__PURE__*/(0, _jsxRuntime.jsx)(_tag.default, {
67
+ closable: !!onRemove,
68
+ onClose: e => {
69
+ e.preventDefault();
70
+ e.stopPropagation();
71
+ onRemove?.(item.value);
72
+ },
73
+ children: item.label
74
+ }, item.value)),
75
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_tag.default, {
76
+ style: {
77
+ margin: 0
78
+ },
79
+ children: ".."
80
+ })
81
+ })]
82
+ });
83
+ };
84
+ var _default = exports.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,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "useControlledState", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _useControlledState.useControlledState;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "useFilterCollapsed", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _useFilterCollapsed.useFilterCollapsed;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "useFilterTooltip", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _useFilterTooltip.useFilterTooltip;
22
+ }
23
+ });
24
+ var _useControlledState = require("./useControlledState");
25
+ var _useFilterCollapsed = require("./useFilterCollapsed");
26
+ var _useFilterTooltip = require("./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,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ exports.useControlledState = useControlledState;
8
+ var _react = require("react");
9
+ /**
10
+ * 处理受控/非受控组件状态的通用 Hook
11
+ * @param value 外部传入的受控值
12
+ * @param defaultValue 默认值
13
+ * @param onChange 值变化时的回调
14
+ * @returns [currentValue, setValue, isControlled]
15
+ */
16
+ function useControlledState(value, defaultValue, onChange) {
17
+ const isControlled = value !== undefined;
18
+ const [internalValue, setInternalValue] = (0, _react.useState)(defaultValue);
19
+
20
+ // 使用受控值或内部值
21
+ const currentValue = isControlled ? value : internalValue;
22
+
23
+ // 统一的 setValue 方法
24
+ const setValue = (0, _react.useCallback)(newValue => {
25
+ // 如果是非受控组件,更新内部状态
26
+ if (!isControlled) {
27
+ setInternalValue(newValue);
28
+ }
29
+ // 总是调用 onChange 回调
30
+ onChange?.(newValue);
31
+ }, [isControlled, onChange]);
32
+ return [currentValue, setValue, isControlled];
33
+ }
34
+ var _default = exports.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,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ exports.useFilterCollapsed = useFilterCollapsed;
8
+ var _FilterContext = require("../FilterContext");
9
+ /**
10
+ * 判断 Filter 组件是否处于折叠模式
11
+ * 支持通过 context 或 prop 来判断
12
+ * @param isCollapsedProp 通过 prop 传入的 _isCollapsed 值
13
+ * @returns 是否处于折叠模式
14
+ */
15
+ function useFilterCollapsed(isCollapsedProp = false) {
16
+ const {
17
+ isCollapsed: isCollapsedFromContext
18
+ } = (0, _FilterContext.useFilterContext)();
19
+ return isCollapsedFromContext || isCollapsedProp;
20
+ }
21
+ var _default = exports.default = useFilterCollapsed;
@@ -0,0 +1,29 @@
1
+ import type { ReactNode } from 'react';
2
+ export interface UseFilterTooltipOptions {
3
+ /** 是否有选中的值 */
4
+ hasValue: boolean;
5
+ /** Tooltip 显示的内容 */
6
+ label?: ReactNode;
7
+ content: ReactNode;
8
+ /** 是否禁用 Tooltip,默认 false */
9
+ disabled?: boolean;
10
+ /** Popover 关闭后的延迟时间(毫秒),用于防止 Tooltip 立即显示,默认 100 */
11
+ closeDelay?: number;
12
+ }
13
+ export interface UseFilterTooltipReturn {
14
+ /** Popover 状态变化时调用,用于同步状态 */
15
+ onPopoverOpenChange: (open: boolean) => void;
16
+ /** 用 Tooltip 包裹 children */
17
+ wrapWithTooltip: (children: ReactNode) => ReactNode;
18
+ }
19
+ /**
20
+ * 用于管理 Filter 组件的 Tooltip 显示逻辑
21
+ *
22
+ * 功能:
23
+ * 1. 在有选中值时,hover 显示 Tooltip
24
+ * 2. 当 Popover 打开时,自动关闭 Tooltip
25
+ * 3. 当 Popover 关闭后,需要鼠标移出再移入才会显示 Tooltip
26
+ * 4. 没有值时不显示 Tooltip
27
+ */
28
+ export declare function useFilterTooltip({ hasValue, label, content, disabled, closeDelay, }: UseFilterTooltipOptions): UseFilterTooltipReturn;
29
+ export default useFilterTooltip;