@hsu-react/ui 1.0.0 → 2.0.1

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 (709) hide show
  1. package/README.md +15 -6
  2. package/es/components/Button/index.d.ts +49 -8
  3. package/es/components/Button/index.js +68 -25
  4. package/es/components/Button/index.module.scss +38 -0
  5. package/es/components/ChainGraph/_components/ExpandButtons/index.module.scss +5 -3
  6. package/es/components/ChainGraph/_components/SearchSelect/index.module.scss +3 -2
  7. package/es/components/ChainGraph/index.js +3 -1
  8. package/es/components/ChainGraph/index.module.scss +2 -2
  9. package/es/components/Chart/Group/index.module.scss +1 -1
  10. package/es/components/Chat/ChatHistory/_components/HistoryGroup/index.module.scss +1 -1
  11. package/es/components/Chat/ChatHistory/_components/HistoryItem/index.module.scss +13 -13
  12. package/es/components/Chat/ChatHistory/_components/NewChatButton/index.module.scss +6 -6
  13. package/es/components/Chat/ChatHistory/index.module.scss +3 -3
  14. package/es/components/Chat/ChatInput/_components/AgentToggleButton/index.module.scss +9 -9
  15. package/es/components/Chat/ChatInput/_components/FileList/index.module.scss +3 -3
  16. package/es/components/Chat/ChatInput/_components/SendButton/index.module.scss +3 -3
  17. package/es/components/Chat/ChatInput/_components/StopButton/index.module.scss +2 -2
  18. package/es/components/Chat/ChatInput/_components/UploadButton/index.js +1 -1
  19. package/es/components/Chat/ChatInput/_components/UploadButton/index.module.scss +3 -3
  20. package/es/components/Chat/ChatInput/_utils/index.js +1 -1
  21. package/es/components/Chat/ChatInput/index.module.scss +12 -11
  22. package/es/components/Chat/ChatList/_components/Assistant/AssistantItem/_components/Copy/index.js +1 -1
  23. package/es/components/Chat/ChatList/_components/Assistant/AssistantItem/_components/Copy/index.module.scss +6 -6
  24. package/es/components/Chat/ChatList/_components/Assistant/AssistantItem/_components/LikeDislike/index.js +3 -1
  25. package/es/components/Chat/ChatList/_components/Assistant/AssistantItem/_components/LikeDislike/index.module.scss +6 -6
  26. package/es/components/Chat/ChatList/_components/Assistant/AssistantItem/_components/QuoteList/index.module.scss +8 -8
  27. package/es/components/Chat/ChatList/_components/Assistant/AssistantItem/index.module.scss +7 -7
  28. package/es/components/Chat/ChatList/_components/Assistant/index.module.scss +3 -3
  29. package/es/components/Chat/ChatList/_components/User/index.module.scss +21 -10
  30. package/es/components/Chat/ChatList/index.js +35 -30
  31. package/es/components/Checkbox/CheckboxGroup/index.module.scss +10 -13
  32. package/es/components/Checkbox/index.module.scss +23 -28
  33. package/es/components/CodeMirror/index.module.scss +6 -6
  34. package/es/components/Copy/index.d.ts +8 -2
  35. package/es/components/Copy/index.js +45 -22
  36. package/es/components/Copy/index.module.scss +5 -5
  37. package/es/components/DatePicker/RangePicker/index.js +5 -1
  38. package/es/components/DatePicker/RangePicker/index.module.scss +10 -1
  39. package/es/components/DatePicker/StepPicker/index.module.scss +6 -4
  40. package/es/components/DatePicker/index.js +14 -3
  41. package/es/components/DatePicker/index.module.scss +2 -2
  42. package/es/components/Descriptions/index.d.ts +6 -2
  43. package/es/components/Descriptions/index.js +15 -8
  44. package/es/components/Editor/index.module.scss +7 -7
  45. package/es/components/FileCol/index.js +3 -3
  46. package/es/components/FilePreview/_components/BasePreview/index.module.scss +3 -3
  47. package/es/components/FilePreview/_components/PdfPreview/index.js +9 -2
  48. package/es/components/FilePreview/_components/PdfPreview/index.module.scss +7 -7
  49. package/es/components/FilePreview/index.module.scss +4 -4
  50. package/es/components/Form/DrawerForm/index.js +10 -18
  51. package/es/components/Form/ImportForm/index.js +15 -16
  52. package/es/components/Form/ModalForm/index.d.ts +1 -1
  53. package/es/components/Form/ModalForm/index.js +14 -16
  54. package/es/components/Form/index.d.ts +12 -0
  55. package/es/components/Form/index.js +7 -1
  56. package/es/components/FormItem/FormInput/FormPasswordStrength/index.module.scss +3 -3
  57. package/es/components/FormItem/FormRadio/index.module.scss +11 -13
  58. package/es/components/FormItem/FormSegmented/index.module.scss +1 -1
  59. package/es/components/FormItem/FormSlider/index.module.scss +1 -1
  60. package/es/components/FormItem/FormUpload/FormImage/index.js +1 -1
  61. package/es/components/FormItem/FormUpload/index.js +2 -1
  62. package/es/components/FormItem/FormUpload/index.module.scss +17 -17
  63. package/es/components/FormItem/ItemContainer/index.js +4 -4
  64. package/es/components/FormItem/ItemContainer/index.module.scss +33 -7
  65. package/es/components/Input/Number/index.js +41 -55
  66. package/es/components/Input/Number/index.module.scss +27 -54
  67. package/es/components/Input/Range/index.module.scss +16 -5
  68. package/es/components/Input/TextArea/index.module.scss +13 -13
  69. package/es/components/Input/index.d.ts +3 -1
  70. package/es/components/Input/index.js +2 -0
  71. package/es/components/Input/index.module.scss +1 -1
  72. package/es/components/Markdown/Editor/index.module.scss +4 -4
  73. package/es/components/Markdown/Views/MermaidBlock.js +15 -1
  74. package/es/components/Markdown/Views/blocks.module.scss +13 -13
  75. package/es/components/Markdown/Views/index.module.scss +3 -3
  76. package/es/components/Modal/index.d.ts +12 -2
  77. package/es/components/Modal/index.js +31 -11
  78. package/es/components/Modal/index.module.scss +11 -1
  79. package/es/components/Operate/index.js +3 -1
  80. package/es/components/Operate/index.module.scss +1 -1
  81. package/es/components/Pagination/index.module.scss +19 -18
  82. package/es/components/Panel/DefaultPanel/index.module.scss +3 -3
  83. package/es/components/Panel/IframePanel/index.js +3 -1
  84. package/es/components/Panel/IframePanel/index.module.scss +2 -2
  85. package/es/components/Panel/ListPanel/ListModalPanel/index.d.ts +2 -2
  86. package/es/components/Panel/ListPanel/ListModalPanel/index.module.scss +2 -2
  87. package/es/components/Panel/ListPanel/_components/ColumnMgt/index.js +9 -17
  88. package/es/components/Panel/ListPanel/_components/ColumnMgt/index.module.scss +3 -3
  89. package/es/components/Panel/ListPanel/_components/ToolBar/index.js +1 -1
  90. package/es/components/Panel/ListPanel/_components/ToolBar/index.module.scss +14 -1
  91. package/es/components/Panel/ListPanel/index.d.ts +2 -2
  92. package/es/components/Panel/ListPanel/index.module.scss +9 -9
  93. package/es/components/Search/SearchAdvanced/index.d.ts +3 -3
  94. package/es/components/Search/SearchCard/index.module.scss +15 -15
  95. package/es/components/Search/SearchCollapsible/index.d.ts +3 -3
  96. package/es/components/Search/SearchWithFilter/index.d.ts +3 -3
  97. package/es/components/Search/SearchWithMore/index.d.ts +3 -3
  98. package/es/components/Search/_components/ButtonGroup/index.d.ts +4 -4
  99. package/es/components/Search/_components/ButtonGroup/index.js +2 -2
  100. package/es/components/Search/_components/FilterDropdown/index.js +3 -1
  101. package/es/components/Search/_hooks/useSearchCommon.d.ts +3 -3
  102. package/es/components/Search/_types/index.d.ts +3 -3
  103. package/es/components/Search/index.d.ts +3 -3
  104. package/es/components/Search/index.module.scss +33 -5
  105. package/es/components/SecondConf/index.js +16 -6
  106. package/es/components/SecondConf/index.module.scss +3 -3
  107. package/es/components/Select/AutoCompleteSelect/index.js +17 -7
  108. package/es/components/Select/AutoCompleteSelect/index.module.scss +73 -132
  109. package/es/components/Select/IconSelect/index.js +67 -60
  110. package/es/components/Select/IconSelect/index.module.scss +4 -3
  111. package/es/components/Select/TreeSelect/_utils/getExpandedKeysByLevel.d.ts +1 -1
  112. package/es/components/Select/TreeSelect/index.js +18 -7
  113. package/es/components/Select/TreeSelect/index.module.scss +19 -44
  114. package/es/components/Select/index.d.ts +17 -2
  115. package/es/components/Select/index.js +22 -4
  116. package/es/components/Select/index.module.scss +71 -131
  117. package/es/components/Slider/index.module.scss +1 -1
  118. package/es/components/Switch/index.module.scss +1 -1
  119. package/es/components/TabBar/index.module.scss +11 -11
  120. package/es/components/Table/_components/Drag/index.js +4 -1
  121. package/es/components/Table/_hooks/useTableColumns.js +1 -1
  122. package/es/components/Table/_utils/tableUtils.d.ts +1 -1
  123. package/es/components/Table/_utils/tableUtils.js +4 -3
  124. package/es/components/Table/index.d.ts +18 -2
  125. package/es/components/Table/index.js +9 -0
  126. package/es/components/Table/index.module.scss +14 -14
  127. package/es/components/Tags/_components/EllipsisTag/index.js +1 -1
  128. package/es/components/TextEllipsis/index.js +12 -8
  129. package/es/components/Tree/index.d.ts +8 -2
  130. package/es/components/Tree/index.js +2 -0
  131. package/es/components/Tree/index.module.scss +6 -6
  132. package/es/components/Upload/_components/UploadedItem/index.js +3 -3
  133. package/es/components/Upload/_components/UploadingItem/index.js +3 -3
  134. package/es/components/Upload/_utils/normalUpload.d.ts +1 -1
  135. package/es/components/Upload/_utils/validateFile.js +49 -2
  136. package/es/components/Upload/index.d.ts +8 -2
  137. package/es/components/Upload/index.js +11 -4
  138. package/es/config-provider/index.d.ts +34 -2
  139. package/es/config-provider/index.js +59 -5
  140. package/es/feedback/index.d.ts +20 -0
  141. package/es/feedback/index.js +130 -0
  142. package/es/hooks/index.d.ts +5 -0
  143. package/es/hooks/index.js +4 -1
  144. package/es/hooks/useBreakpoint.d.ts +24 -0
  145. package/es/hooks/useBreakpoint.js +57 -0
  146. package/es/hooks/useIsDark.d.ts +9 -0
  147. package/es/hooks/useIsDark.js +64 -0
  148. package/es/hooks/usePointerType.d.ts +22 -0
  149. package/es/hooks/usePointerType.js +62 -0
  150. package/es/index.d.ts +4 -4
  151. package/es/index.js +19 -5
  152. package/es/layout/Breadcrumb/_components/BreadcrumbItemIcon/index.d.ts +10 -0
  153. package/es/layout/Breadcrumb/_components/BreadcrumbItemIcon/index.js +19 -0
  154. package/es/layout/Breadcrumb/_components/BreadcrumbMenuItem/index.d.ts +11 -0
  155. package/es/layout/Breadcrumb/_components/BreadcrumbMenuItem/index.js +26 -0
  156. package/es/layout/Breadcrumb/_hooks/useBreadcrumbPath.d.ts +5 -0
  157. package/es/layout/Breadcrumb/_hooks/useBreadcrumbPath.js +104 -0
  158. package/es/layout/Breadcrumb/_utils/formatMenu.d.ts +9 -0
  159. package/es/layout/Breadcrumb/_utils/formatMenu.js +28 -0
  160. package/es/layout/Breadcrumb/_utils/formatRoutes.d.ts +9 -0
  161. package/es/layout/Breadcrumb/_utils/formatRoutes.js +76 -0
  162. package/es/layout/Breadcrumb/_utils/pathMatch.d.ts +8 -0
  163. package/es/layout/Breadcrumb/_utils/pathMatch.js +45 -0
  164. package/es/layout/Breadcrumb/index.d.ts +19 -0
  165. package/es/layout/Breadcrumb/index.js +96 -0
  166. package/es/layout/Breadcrumb/index.module.scss +15 -0
  167. package/es/layout/Header/index.d.ts +39 -0
  168. package/es/layout/Header/index.js +166 -0
  169. package/es/layout/Header/index.module.scss +215 -0
  170. package/es/layout/I18n/I18nStore.d.ts +29 -0
  171. package/es/layout/I18n/I18nStore.js +94 -0
  172. package/es/layout/I18n/index.d.ts +14 -0
  173. package/es/layout/I18n/index.js +33 -0
  174. package/es/layout/I18n/locales/en-US.d.ts +2 -0
  175. package/es/layout/I18n/locales/en-US.js +15 -0
  176. package/es/layout/I18n/locales/zh-CN.d.ts +2 -0
  177. package/es/layout/I18n/locales/zh-CN.js +15 -0
  178. package/es/layout/Menu/_components/SecondaryHeader/index.d.ts +22 -0
  179. package/es/layout/Menu/_components/SecondaryHeader/index.js +48 -0
  180. package/es/layout/Menu/_components/SecondaryHeader/index.module.scss +65 -0
  181. package/es/layout/Menu/_hooks/useMenuPath.d.ts +17 -0
  182. package/es/layout/Menu/_hooks/useMenuPath.js +91 -0
  183. package/es/layout/Menu/_hooks/useOnlyLvOneMenu.d.ts +13 -0
  184. package/es/layout/Menu/_hooks/useOnlyLvOneMenu.js +25 -0
  185. package/es/layout/Menu/_utils/formatMenu.d.ts +10 -0
  186. package/es/layout/Menu/_utils/formatMenu.js +55 -0
  187. package/es/layout/Menu/_utils/pathMatch.d.ts +8 -0
  188. package/es/layout/Menu/_utils/pathMatch.js +42 -0
  189. package/es/layout/Menu/_utils/setActiveIcon.d.ts +7 -0
  190. package/es/layout/Menu/_utils/setActiveIcon.js +20 -0
  191. package/es/layout/Menu/index.d.ts +34 -0
  192. package/es/layout/Menu/index.js +195 -0
  193. package/es/layout/Menu/index.module.scss +50 -0
  194. package/es/layout/NavTabBar/_components/SortableTab/index.d.ts +9 -0
  195. package/es/layout/NavTabBar/_components/SortableTab/index.js +34 -0
  196. package/es/layout/NavTabBar/_components/TabContextMenu/index.d.ts +20 -0
  197. package/es/layout/NavTabBar/_components/TabContextMenu/index.js +124 -0
  198. package/es/layout/NavTabBar/_components/TabDragOverlay/index.d.ts +20 -0
  199. package/es/layout/NavTabBar/_components/TabDragOverlay/index.js +50 -0
  200. package/es/layout/NavTabBar/_components/TabLabel/index.d.ts +22 -0
  201. package/es/layout/NavTabBar/_components/TabLabel/index.js +61 -0
  202. package/es/layout/NavTabBar/_hooks/useDropTabKey.d.ts +5 -0
  203. package/es/layout/NavTabBar/_hooks/useDropTabKey.js +25 -0
  204. package/es/layout/NavTabBar/_hooks/useTabContextMenu.d.ts +8 -0
  205. package/es/layout/NavTabBar/_hooks/useTabContextMenu.js +31 -0
  206. package/es/layout/NavTabBar/_hooks/useTabPath.d.ts +16 -0
  207. package/es/layout/NavTabBar/_hooks/useTabPath.js +131 -0
  208. package/es/layout/NavTabBar/_hooks/useTabTitle.d.ts +5 -0
  209. package/es/layout/NavTabBar/_hooks/useTabTitle.js +29 -0
  210. package/es/layout/NavTabBar/_utils/formatNavTabBar.d.ts +9 -0
  211. package/es/layout/NavTabBar/_utils/formatNavTabBar.js +48 -0
  212. package/es/layout/NavTabBar/_utils/pathMatch.d.ts +8 -0
  213. package/es/layout/NavTabBar/_utils/pathMatch.js +33 -0
  214. package/es/layout/NavTabBar/_utils/tabActions.d.ts +21 -0
  215. package/es/layout/NavTabBar/_utils/tabActions.js +114 -0
  216. package/es/layout/NavTabBar/index.d.ts +21 -0
  217. package/es/layout/NavTabBar/index.js +224 -0
  218. package/es/layout/NavTabBar/index.module.scss +179 -0
  219. package/es/layout/Theme/ThemeStore.d.ts +18 -0
  220. package/es/layout/Theme/ThemeStore.js +80 -0
  221. package/es/layout/Theme/index.d.ts +30 -0
  222. package/es/layout/Theme/index.js +89 -0
  223. package/es/layout/Theme/index.module.scss +6 -0
  224. package/es/layout/_hooks/useDropTab.d.ts +6 -0
  225. package/es/layout/_hooks/useDropTab.js +13 -0
  226. package/es/layout/_hooks/useReload.d.ts +6 -0
  227. package/es/layout/_hooks/useReload.js +10 -0
  228. package/es/layout/_hooks/useSetTabTitle.d.ts +6 -0
  229. package/es/layout/_hooks/useSetTabTitle.js +10 -0
  230. package/es/layout/_utils/storage.d.ts +6 -0
  231. package/es/layout/_utils/storage.js +32 -0
  232. package/es/layout/index.d.ts +54 -0
  233. package/es/layout/index.js +58 -0
  234. package/es/layout/types.d.ts +51 -0
  235. package/es/layout/types.js +1 -0
  236. package/es/request/index.js +15 -1
  237. package/es/styles/_responsive.scss +53 -0
  238. package/es/styles/antd-overload.scss +77 -21
  239. package/es/styles/tokens.d.ts +113 -13
  240. package/es/styles/tokens.js +176 -28
  241. package/es/styles/tokens.json +82 -0
  242. package/es/styles/tokens.scss +99 -52
  243. package/es/types/antd.d.ts +35 -0
  244. package/es/types/antd.js +1 -0
  245. package/es/utils/semantic.d.ts +31 -0
  246. package/es/utils/semantic.js +37 -0
  247. package/lib/components/Button/index.d.ts +49 -8
  248. package/lib/components/Button/index.js +62 -20
  249. package/lib/components/Button/index.module.scss +38 -0
  250. package/lib/components/ChainGraph/_components/ExpandButtons/index.module.scss +5 -3
  251. package/lib/components/ChainGraph/_components/SearchSelect/index.module.scss +3 -2
  252. package/lib/components/ChainGraph/index.js +3 -1
  253. package/lib/components/ChainGraph/index.module.scss +2 -2
  254. package/lib/components/Chart/Group/index.module.scss +1 -1
  255. package/lib/components/Chat/ChatHistory/_components/HistoryGroup/index.module.scss +1 -1
  256. package/lib/components/Chat/ChatHistory/_components/HistoryItem/index.module.scss +13 -13
  257. package/lib/components/Chat/ChatHistory/_components/NewChatButton/index.module.scss +6 -6
  258. package/lib/components/Chat/ChatHistory/index.module.scss +3 -3
  259. package/lib/components/Chat/ChatInput/_components/AgentToggleButton/index.module.scss +9 -9
  260. package/lib/components/Chat/ChatInput/_components/FileList/index.module.scss +3 -3
  261. package/lib/components/Chat/ChatInput/_components/SendButton/index.module.scss +3 -3
  262. package/lib/components/Chat/ChatInput/_components/StopButton/index.module.scss +2 -2
  263. package/lib/components/Chat/ChatInput/_components/UploadButton/index.js +1 -1
  264. package/lib/components/Chat/ChatInput/_components/UploadButton/index.module.scss +3 -3
  265. package/lib/components/Chat/ChatInput/_utils/index.js +6 -6
  266. package/lib/components/Chat/ChatInput/index.module.scss +12 -11
  267. package/lib/components/Chat/ChatList/_components/Assistant/AssistantItem/_components/Copy/index.js +2 -2
  268. package/lib/components/Chat/ChatList/_components/Assistant/AssistantItem/_components/Copy/index.module.scss +6 -6
  269. package/lib/components/Chat/ChatList/_components/Assistant/AssistantItem/_components/LikeDislike/index.js +3 -1
  270. package/lib/components/Chat/ChatList/_components/Assistant/AssistantItem/_components/LikeDislike/index.module.scss +6 -6
  271. package/lib/components/Chat/ChatList/_components/Assistant/AssistantItem/_components/QuoteList/index.module.scss +8 -8
  272. package/lib/components/Chat/ChatList/_components/Assistant/AssistantItem/index.module.scss +7 -7
  273. package/lib/components/Chat/ChatList/_components/Assistant/index.module.scss +3 -3
  274. package/lib/components/Chat/ChatList/_components/User/index.module.scss +21 -10
  275. package/lib/components/Chat/ChatList/index.js +33 -27
  276. package/lib/components/Checkbox/CheckboxGroup/index.module.scss +10 -13
  277. package/lib/components/Checkbox/index.module.scss +23 -28
  278. package/lib/components/CodeMirror/index.module.scss +6 -6
  279. package/lib/components/Copy/index.d.ts +8 -2
  280. package/lib/components/Copy/index.js +38 -23
  281. package/lib/components/Copy/index.module.scss +5 -5
  282. package/lib/components/DatePicker/RangePicker/index.js +5 -1
  283. package/lib/components/DatePicker/RangePicker/index.module.scss +10 -1
  284. package/lib/components/DatePicker/StepPicker/index.module.scss +6 -4
  285. package/lib/components/DatePicker/index.js +14 -3
  286. package/lib/components/DatePicker/index.module.scss +2 -2
  287. package/lib/components/Descriptions/index.d.ts +6 -2
  288. package/lib/components/Descriptions/index.js +14 -12
  289. package/lib/components/Editor/index.module.scss +7 -7
  290. package/lib/components/FileCol/index.js +3 -3
  291. package/lib/components/FilePreview/_components/BasePreview/index.module.scss +3 -3
  292. package/lib/components/FilePreview/_components/PdfPreview/index.js +9 -2
  293. package/lib/components/FilePreview/_components/PdfPreview/index.module.scss +7 -7
  294. package/lib/components/FilePreview/index.module.scss +4 -4
  295. package/lib/components/Form/DrawerForm/index.js +10 -17
  296. package/lib/components/Form/ImportForm/index.js +13 -18
  297. package/lib/components/Form/ModalForm/index.d.ts +1 -1
  298. package/lib/components/Form/ModalForm/index.js +11 -17
  299. package/lib/components/Form/index.d.ts +12 -0
  300. package/lib/components/Form/index.js +7 -1
  301. package/lib/components/FormItem/FormInput/FormPasswordStrength/index.module.scss +3 -3
  302. package/lib/components/FormItem/FormRadio/index.module.scss +11 -13
  303. package/lib/components/FormItem/FormSegmented/index.module.scss +1 -1
  304. package/lib/components/FormItem/FormSlider/index.module.scss +1 -1
  305. package/lib/components/FormItem/FormUpload/FormImage/index.js +3 -3
  306. package/lib/components/FormItem/FormUpload/index.js +3 -2
  307. package/lib/components/FormItem/FormUpload/index.module.scss +17 -17
  308. package/lib/components/FormItem/ItemContainer/index.js +4 -4
  309. package/lib/components/FormItem/ItemContainer/index.module.scss +33 -7
  310. package/lib/components/Input/Number/index.js +38 -54
  311. package/lib/components/Input/Number/index.module.scss +27 -54
  312. package/lib/components/Input/Range/index.module.scss +16 -5
  313. package/lib/components/Input/TextArea/index.module.scss +13 -13
  314. package/lib/components/Input/index.d.ts +3 -1
  315. package/lib/components/Input/index.js +2 -0
  316. package/lib/components/Input/index.module.scss +1 -1
  317. package/lib/components/Markdown/Editor/index.module.scss +4 -4
  318. package/lib/components/Markdown/Views/MermaidBlock.js +15 -1
  319. package/lib/components/Markdown/Views/blocks.module.scss +13 -13
  320. package/lib/components/Markdown/Views/index.module.scss +3 -3
  321. package/lib/components/Modal/index.d.ts +12 -2
  322. package/lib/components/Modal/index.js +30 -10
  323. package/lib/components/Modal/index.module.scss +11 -1
  324. package/lib/components/Operate/index.js +3 -1
  325. package/lib/components/Operate/index.module.scss +1 -1
  326. package/lib/components/Pagination/index.module.scss +19 -18
  327. package/lib/components/Panel/DefaultPanel/index.module.scss +3 -3
  328. package/lib/components/Panel/IframePanel/index.js +3 -1
  329. package/lib/components/Panel/IframePanel/index.module.scss +2 -2
  330. package/lib/components/Panel/ListPanel/ListModalPanel/index.d.ts +2 -2
  331. package/lib/components/Panel/ListPanel/ListModalPanel/index.module.scss +2 -2
  332. package/lib/components/Panel/ListPanel/_components/ColumnMgt/index.js +9 -20
  333. package/lib/components/Panel/ListPanel/_components/ColumnMgt/index.module.scss +3 -3
  334. package/lib/components/Panel/ListPanel/_components/ToolBar/index.js +1 -1
  335. package/lib/components/Panel/ListPanel/_components/ToolBar/index.module.scss +14 -1
  336. package/lib/components/Panel/ListPanel/index.d.ts +2 -2
  337. package/lib/components/Panel/ListPanel/index.module.scss +9 -9
  338. package/lib/components/Search/SearchAdvanced/index.d.ts +3 -3
  339. package/lib/components/Search/SearchCard/index.module.scss +15 -15
  340. package/lib/components/Search/SearchCollapsible/index.d.ts +3 -3
  341. package/lib/components/Search/SearchWithFilter/index.d.ts +3 -3
  342. package/lib/components/Search/SearchWithMore/index.d.ts +3 -3
  343. package/lib/components/Search/_components/ButtonGroup/index.d.ts +4 -4
  344. package/lib/components/Search/_components/ButtonGroup/index.js +2 -2
  345. package/lib/components/Search/_components/FilterDropdown/index.js +3 -1
  346. package/lib/components/Search/_hooks/useSearchCommon.d.ts +3 -3
  347. package/lib/components/Search/_types/index.d.ts +3 -3
  348. package/lib/components/Search/index.d.ts +3 -3
  349. package/lib/components/Search/index.module.scss +33 -5
  350. package/lib/components/SecondConf/index.js +14 -6
  351. package/lib/components/SecondConf/index.module.scss +3 -3
  352. package/lib/components/Select/AutoCompleteSelect/index.js +15 -5
  353. package/lib/components/Select/AutoCompleteSelect/index.module.scss +73 -132
  354. package/lib/components/Select/IconSelect/index.js +64 -57
  355. package/lib/components/Select/IconSelect/index.module.scss +4 -3
  356. package/lib/components/Select/TreeSelect/_utils/getExpandedKeysByLevel.d.ts +1 -1
  357. package/lib/components/Select/TreeSelect/index.js +18 -7
  358. package/lib/components/Select/TreeSelect/index.module.scss +19 -44
  359. package/lib/components/Select/index.d.ts +17 -2
  360. package/lib/components/Select/index.js +22 -4
  361. package/lib/components/Select/index.module.scss +71 -131
  362. package/lib/components/Slider/index.module.scss +1 -1
  363. package/lib/components/Switch/index.module.scss +1 -1
  364. package/lib/components/TabBar/index.module.scss +11 -11
  365. package/lib/components/Table/_components/Drag/index.js +6 -2
  366. package/lib/components/Table/_hooks/useTableColumns.js +1 -1
  367. package/lib/components/Table/_utils/tableUtils.d.ts +1 -1
  368. package/lib/components/Table/_utils/tableUtils.js +4 -3
  369. package/lib/components/Table/index.d.ts +18 -2
  370. package/lib/components/Table/index.js +9 -0
  371. package/lib/components/Table/index.module.scss +14 -14
  372. package/lib/components/Tags/_components/EllipsisTag/index.js +1 -1
  373. package/lib/components/TextEllipsis/index.js +6 -4
  374. package/lib/components/Tree/index.d.ts +8 -2
  375. package/lib/components/Tree/index.js +2 -0
  376. package/lib/components/Tree/index.module.scss +6 -6
  377. package/lib/components/Upload/_components/UploadedItem/index.js +3 -3
  378. package/lib/components/Upload/_components/UploadingItem/index.js +3 -3
  379. package/lib/components/Upload/_utils/normalUpload.d.ts +1 -1
  380. package/lib/components/Upload/_utils/validateFile.js +47 -2
  381. package/lib/components/Upload/index.d.ts +8 -2
  382. package/lib/components/Upload/index.js +11 -4
  383. package/lib/config-provider/index.d.ts +34 -2
  384. package/lib/config-provider/index.js +55 -4
  385. package/lib/feedback/index.d.ts +20 -0
  386. package/lib/feedback/index.js +115 -0
  387. package/lib/hooks/index.d.ts +5 -0
  388. package/lib/hooks/index.js +21 -0
  389. package/lib/hooks/useBreakpoint.d.ts +24 -0
  390. package/lib/hooks/useBreakpoint.js +49 -0
  391. package/lib/hooks/useIsDark.d.ts +9 -0
  392. package/lib/hooks/useIsDark.js +54 -0
  393. package/lib/hooks/usePointerType.d.ts +22 -0
  394. package/lib/hooks/usePointerType.js +55 -0
  395. package/lib/index.d.ts +4 -4
  396. package/lib/index.js +78 -19
  397. package/lib/layout/Breadcrumb/_components/BreadcrumbItemIcon/index.d.ts +10 -0
  398. package/lib/layout/Breadcrumb/_components/BreadcrumbItemIcon/index.js +26 -0
  399. package/lib/layout/Breadcrumb/_components/BreadcrumbMenuItem/index.d.ts +11 -0
  400. package/lib/layout/Breadcrumb/_components/BreadcrumbMenuItem/index.js +32 -0
  401. package/lib/layout/Breadcrumb/_hooks/useBreadcrumbPath.d.ts +5 -0
  402. package/lib/layout/Breadcrumb/_hooks/useBreadcrumbPath.js +89 -0
  403. package/lib/layout/Breadcrumb/_utils/formatMenu.d.ts +9 -0
  404. package/lib/layout/Breadcrumb/_utils/formatMenu.js +31 -0
  405. package/lib/layout/Breadcrumb/_utils/formatRoutes.d.ts +9 -0
  406. package/lib/layout/Breadcrumb/_utils/formatRoutes.js +67 -0
  407. package/lib/layout/Breadcrumb/_utils/pathMatch.d.ts +8 -0
  408. package/lib/layout/Breadcrumb/_utils/pathMatch.js +47 -0
  409. package/lib/layout/Breadcrumb/index.d.ts +19 -0
  410. package/lib/layout/Breadcrumb/index.js +96 -0
  411. package/lib/layout/Breadcrumb/index.module.scss +15 -0
  412. package/lib/layout/Header/index.d.ts +39 -0
  413. package/lib/layout/Header/index.js +172 -0
  414. package/lib/layout/Header/index.module.scss +215 -0
  415. package/lib/layout/I18n/I18nStore.d.ts +29 -0
  416. package/lib/layout/I18n/I18nStore.js +82 -0
  417. package/lib/layout/I18n/index.d.ts +14 -0
  418. package/lib/layout/I18n/index.js +45 -0
  419. package/lib/layout/I18n/locales/en-US.d.ts +2 -0
  420. package/lib/layout/I18n/locales/en-US.js +21 -0
  421. package/lib/layout/I18n/locales/zh-CN.d.ts +2 -0
  422. package/lib/layout/I18n/locales/zh-CN.js +21 -0
  423. package/lib/layout/Menu/_components/SecondaryHeader/index.d.ts +22 -0
  424. package/lib/layout/Menu/_components/SecondaryHeader/index.js +49 -0
  425. package/lib/layout/Menu/_components/SecondaryHeader/index.module.scss +65 -0
  426. package/lib/layout/Menu/_hooks/useMenuPath.d.ts +17 -0
  427. package/lib/layout/Menu/_hooks/useMenuPath.js +75 -0
  428. package/lib/layout/Menu/_hooks/useOnlyLvOneMenu.d.ts +13 -0
  429. package/lib/layout/Menu/_hooks/useOnlyLvOneMenu.js +31 -0
  430. package/lib/layout/Menu/_utils/formatMenu.d.ts +10 -0
  431. package/lib/layout/Menu/_utils/formatMenu.js +55 -0
  432. package/lib/layout/Menu/_utils/pathMatch.d.ts +8 -0
  433. package/lib/layout/Menu/_utils/pathMatch.js +44 -0
  434. package/lib/layout/Menu/_utils/setActiveIcon.d.ts +7 -0
  435. package/lib/layout/Menu/_utils/setActiveIcon.js +27 -0
  436. package/lib/layout/Menu/index.d.ts +34 -0
  437. package/lib/layout/Menu/index.js +158 -0
  438. package/lib/layout/Menu/index.module.scss +50 -0
  439. package/lib/layout/NavTabBar/_components/SortableTab/index.d.ts +9 -0
  440. package/lib/layout/NavTabBar/_components/SortableTab/index.js +39 -0
  441. package/lib/layout/NavTabBar/_components/TabContextMenu/index.d.ts +20 -0
  442. package/lib/layout/NavTabBar/_components/TabContextMenu/index.js +129 -0
  443. package/lib/layout/NavTabBar/_components/TabDragOverlay/index.d.ts +20 -0
  444. package/lib/layout/NavTabBar/_components/TabDragOverlay/index.js +54 -0
  445. package/lib/layout/NavTabBar/_components/TabLabel/index.d.ts +22 -0
  446. package/lib/layout/NavTabBar/_components/TabLabel/index.js +68 -0
  447. package/lib/layout/NavTabBar/_hooks/useDropTabKey.d.ts +5 -0
  448. package/lib/layout/NavTabBar/_hooks/useDropTabKey.js +32 -0
  449. package/lib/layout/NavTabBar/_hooks/useTabContextMenu.d.ts +8 -0
  450. package/lib/layout/NavTabBar/_hooks/useTabContextMenu.js +28 -0
  451. package/lib/layout/NavTabBar/_hooks/useTabPath.d.ts +16 -0
  452. package/lib/layout/NavTabBar/_hooks/useTabPath.js +107 -0
  453. package/lib/layout/NavTabBar/_hooks/useTabTitle.d.ts +5 -0
  454. package/lib/layout/NavTabBar/_hooks/useTabTitle.js +32 -0
  455. package/lib/layout/NavTabBar/_utils/formatNavTabBar.d.ts +9 -0
  456. package/lib/layout/NavTabBar/_utils/formatNavTabBar.js +49 -0
  457. package/lib/layout/NavTabBar/_utils/pathMatch.d.ts +8 -0
  458. package/lib/layout/NavTabBar/_utils/pathMatch.js +37 -0
  459. package/lib/layout/NavTabBar/_utils/tabActions.d.ts +21 -0
  460. package/lib/layout/NavTabBar/_utils/tabActions.js +93 -0
  461. package/lib/layout/NavTabBar/index.d.ts +21 -0
  462. package/lib/layout/NavTabBar/index.js +206 -0
  463. package/lib/layout/NavTabBar/index.module.scss +179 -0
  464. package/lib/layout/Theme/ThemeStore.d.ts +18 -0
  465. package/lib/layout/Theme/ThemeStore.js +63 -0
  466. package/lib/layout/Theme/index.d.ts +30 -0
  467. package/lib/layout/Theme/index.js +100 -0
  468. package/lib/layout/Theme/index.module.scss +6 -0
  469. package/lib/layout/_hooks/useDropTab.d.ts +6 -0
  470. package/lib/layout/_hooks/useDropTab.js +21 -0
  471. package/lib/layout/_hooks/useReload.d.ts +6 -0
  472. package/lib/layout/_hooks/useReload.js +18 -0
  473. package/lib/layout/_hooks/useSetTabTitle.d.ts +6 -0
  474. package/lib/layout/_hooks/useSetTabTitle.js +18 -0
  475. package/lib/layout/_utils/storage.d.ts +6 -0
  476. package/lib/layout/_utils/storage.js +39 -0
  477. package/lib/layout/index.d.ts +54 -0
  478. package/lib/layout/index.js +102 -0
  479. package/lib/layout/types.d.ts +51 -0
  480. package/lib/layout/types.js +5 -0
  481. package/lib/request/index.js +5 -1
  482. package/lib/styles/_responsive.scss +53 -0
  483. package/lib/styles/antd-overload.scss +77 -21
  484. package/lib/styles/tokens.d.ts +113 -13
  485. package/lib/styles/tokens.js +157 -30
  486. package/lib/styles/tokens.json +82 -0
  487. package/lib/styles/tokens.scss +99 -52
  488. package/lib/types/antd.d.ts +35 -0
  489. package/lib/types/antd.js +5 -0
  490. package/lib/utils/semantic.d.ts +31 -0
  491. package/lib/utils/semantic.js +40 -0
  492. package/package.json +28 -22
  493. package/src/components/Button/index.md +54 -10
  494. package/src/components/Button/index.module.scss +38 -0
  495. package/src/components/Button/index.tsx +107 -51
  496. package/src/components/ChainGraph/_components/ExpandButtons/index.module.scss +5 -3
  497. package/src/components/ChainGraph/_components/SearchSelect/index.module.scss +3 -2
  498. package/src/components/ChainGraph/index.module.scss +2 -2
  499. package/src/components/ChainGraph/index.tsx +1 -1
  500. package/src/components/Chart/Group/index.module.scss +1 -1
  501. package/src/components/Chat/ChatHistory/_components/HistoryGroup/index.module.scss +1 -1
  502. package/src/components/Chat/ChatHistory/_components/HistoryItem/index.module.scss +13 -13
  503. package/src/components/Chat/ChatHistory/_components/NewChatButton/index.module.scss +6 -6
  504. package/src/components/Chat/ChatHistory/index.module.scss +3 -3
  505. package/src/components/Chat/ChatInput/_components/AgentToggleButton/index.module.scss +9 -9
  506. package/src/components/Chat/ChatInput/_components/FileList/index.module.scss +3 -3
  507. package/src/components/Chat/ChatInput/_components/SendButton/index.module.scss +3 -3
  508. package/src/components/Chat/ChatInput/_components/StopButton/index.module.scss +2 -2
  509. package/src/components/Chat/ChatInput/_components/UploadButton/index.module.scss +3 -3
  510. package/src/components/Chat/ChatInput/_components/UploadButton/index.tsx +1 -1
  511. package/src/components/Chat/ChatInput/_utils/index.ts +1 -1
  512. package/src/components/Chat/ChatInput/index.module.scss +12 -11
  513. package/src/components/Chat/ChatList/_components/Assistant/AssistantItem/_components/Copy/index.module.scss +6 -6
  514. package/src/components/Chat/ChatList/_components/Assistant/AssistantItem/_components/Copy/index.tsx +1 -1
  515. package/src/components/Chat/ChatList/_components/Assistant/AssistantItem/_components/LikeDislike/index.module.scss +6 -6
  516. package/src/components/Chat/ChatList/_components/Assistant/AssistantItem/_components/LikeDislike/index.tsx +1 -1
  517. package/src/components/Chat/ChatList/_components/Assistant/AssistantItem/_components/QuoteList/index.module.scss +8 -8
  518. package/src/components/Chat/ChatList/_components/Assistant/AssistantItem/index.module.scss +7 -7
  519. package/src/components/Chat/ChatList/_components/Assistant/index.module.scss +3 -3
  520. package/src/components/Chat/ChatList/_components/User/index.module.scss +21 -10
  521. package/src/components/Chat/ChatList/index.tsx +5 -2
  522. package/src/components/Checkbox/CheckboxGroup/index.module.scss +10 -13
  523. package/src/components/Checkbox/index.module.scss +23 -28
  524. package/src/components/CodeMirror/index.module.scss +6 -6
  525. package/src/components/Copy/index.module.scss +5 -5
  526. package/src/components/Copy/index.tsx +41 -25
  527. package/src/components/DatePicker/RangePicker/index.module.scss +10 -1
  528. package/src/components/DatePicker/RangePicker/index.tsx +5 -3
  529. package/src/components/DatePicker/StepPicker/index.module.scss +6 -4
  530. package/src/components/DatePicker/index.module.scss +2 -2
  531. package/src/components/DatePicker/index.tsx +11 -3
  532. package/src/components/Descriptions/index.md +8 -0
  533. package/src/components/Descriptions/index.tsx +21 -14
  534. package/src/components/Editor/index.module.scss +7 -7
  535. package/src/components/FileCol/index.tsx +4 -2
  536. package/src/components/FilePreview/_components/BasePreview/index.module.scss +3 -3
  537. package/src/components/FilePreview/_components/PdfPreview/index.module.scss +7 -7
  538. package/src/components/FilePreview/_components/PdfPreview/index.tsx +8 -2
  539. package/src/components/FilePreview/index.module.scss +4 -4
  540. package/src/components/Form/DrawerForm/index.tsx +10 -11
  541. package/src/components/Form/ImportForm/index.tsx +11 -12
  542. package/src/components/Form/ModalForm/index.tsx +10 -12
  543. package/src/components/Form/index.md +18 -0
  544. package/src/components/Form/index.tsx +18 -0
  545. package/src/components/FormItem/FormInput/FormPasswordStrength/index.module.scss +3 -3
  546. package/src/components/FormItem/FormRadio/index.module.scss +11 -13
  547. package/src/components/FormItem/FormSegmented/index.module.scss +1 -1
  548. package/src/components/FormItem/FormSlider/index.module.scss +1 -1
  549. package/src/components/FormItem/FormUpload/FormImage/index.tsx +2 -1
  550. package/src/components/FormItem/FormUpload/index.module.scss +17 -17
  551. package/src/components/FormItem/FormUpload/index.tsx +2 -1
  552. package/src/components/FormItem/ItemContainer/index.module.scss +33 -7
  553. package/src/components/FormItem/ItemContainer/index.tsx +3 -3
  554. package/src/components/Input/Number/index.module.scss +27 -54
  555. package/src/components/Input/Number/index.tsx +49 -65
  556. package/src/components/Input/Range/index.module.scss +16 -5
  557. package/src/components/Input/TextArea/index.module.scss +13 -13
  558. package/src/components/Input/index.md +14 -0
  559. package/src/components/Input/index.module.scss +1 -1
  560. package/src/components/Input/index.tsx +4 -0
  561. package/src/components/Markdown/Editor/index.module.scss +4 -4
  562. package/src/components/Markdown/Views/MermaidBlock.tsx +15 -1
  563. package/src/components/Markdown/Views/blocks.module.scss +13 -13
  564. package/src/components/Markdown/Views/index.module.scss +3 -3
  565. package/src/components/Markdown/index.md +22 -0
  566. package/src/components/Modal/index.md +22 -1
  567. package/src/components/Modal/index.module.scss +11 -1
  568. package/src/components/Modal/index.tsx +46 -13
  569. package/src/components/Operate/index.module.scss +1 -1
  570. package/src/components/Operate/index.tsx +1 -1
  571. package/src/components/Pagination/index.md +107 -0
  572. package/src/components/Pagination/index.module.scss +19 -18
  573. package/src/components/Pagination/index.tsx +2 -2
  574. package/src/components/Panel/DefaultPanel/index.module.scss +3 -3
  575. package/src/components/Panel/IframePanel/index.module.scss +2 -2
  576. package/src/components/Panel/IframePanel/index.tsx +5 -1
  577. package/src/components/Panel/ListPanel/ListModalPanel/index.module.scss +2 -2
  578. package/src/components/Panel/ListPanel/ListModalPanel/index.tsx +2 -2
  579. package/src/components/Panel/ListPanel/_components/ColumnMgt/index.module.scss +3 -3
  580. package/src/components/Panel/ListPanel/_components/ColumnMgt/index.tsx +7 -11
  581. package/src/components/Panel/ListPanel/_components/ToolBar/index.module.scss +14 -1
  582. package/src/components/Panel/ListPanel/_components/ToolBar/index.tsx +2 -2
  583. package/src/components/Panel/ListPanel/index.module.scss +9 -9
  584. package/src/components/Panel/ListPanel/index.tsx +2 -2
  585. package/src/components/Panel/index.md +1 -1
  586. package/src/components/Search/SearchAdvanced/index.tsx +3 -3
  587. package/src/components/Search/SearchCard/index.module.scss +15 -15
  588. package/src/components/Search/SearchCollapsible/index.tsx +3 -3
  589. package/src/components/Search/SearchWithFilter/index.tsx +3 -3
  590. package/src/components/Search/SearchWithMore/index.tsx +3 -3
  591. package/src/components/Search/_components/ButtonGroup/index.tsx +9 -11
  592. package/src/components/Search/_components/FilterDropdown/index.tsx +1 -1
  593. package/src/components/Search/_hooks/useSearchCommon.ts +4 -4
  594. package/src/components/Search/_types/index.ts +3 -3
  595. package/src/components/Search/index.md +2 -2
  596. package/src/components/Search/index.module.scss +33 -5
  597. package/src/components/Search/index.tsx +3 -3
  598. package/src/components/SecondConf/index.md +1 -1
  599. package/src/components/SecondConf/index.module.scss +3 -3
  600. package/src/components/SecondConf/index.tsx +11 -7
  601. package/src/components/Select/AutoCompleteSelect/index.module.scss +73 -132
  602. package/src/components/Select/AutoCompleteSelect/index.tsx +13 -7
  603. package/src/components/Select/IconSelect/index.module.scss +4 -3
  604. package/src/components/Select/IconSelect/index.tsx +7 -9
  605. package/src/components/Select/TreeSelect/_utils/getExpandedKeysByLevel.ts +4 -1
  606. package/src/components/Select/TreeSelect/index.module.scss +19 -44
  607. package/src/components/Select/TreeSelect/index.tsx +16 -8
  608. package/src/components/Select/index.md +12 -0
  609. package/src/components/Select/index.module.scss +71 -131
  610. package/src/components/Select/index.tsx +38 -10
  611. package/src/components/Slider/index.module.scss +1 -1
  612. package/src/components/Switch/index.module.scss +1 -1
  613. package/src/components/TabBar/index.module.scss +11 -11
  614. package/src/components/Table/_components/Drag/index.tsx +3 -2
  615. package/src/components/Table/_hooks/useTableColumns.tsx +1 -1
  616. package/src/components/Table/_utils/tableUtils.ts +3 -2
  617. package/src/components/Table/index.md +16 -0
  618. package/src/components/Table/index.module.scss +14 -14
  619. package/src/components/Table/index.tsx +27 -1
  620. package/src/components/Tags/_components/EllipsisTag/index.tsx +1 -1
  621. package/src/components/TextEllipsis/index.tsx +6 -4
  622. package/src/components/Tree/index.md +9 -0
  623. package/src/components/Tree/index.module.scss +6 -6
  624. package/src/components/Tree/index.tsx +12 -2
  625. package/src/components/Upload/_components/UploadedItem/index.tsx +2 -2
  626. package/src/components/Upload/_components/UploadingItem/index.tsx +2 -2
  627. package/src/components/Upload/_utils/normalUpload.ts +1 -1
  628. package/src/components/Upload/_utils/validateFile.ts +55 -2
  629. package/src/components/Upload/index.md +9 -0
  630. package/src/components/Upload/index.tsx +22 -7
  631. package/src/config-provider/index.tsx +84 -4
  632. package/src/feedback/index.tsx +141 -0
  633. package/src/hooks/index.ts +5 -0
  634. package/src/hooks/useBreakpoint.ts +62 -0
  635. package/src/hooks/useIsDark.ts +64 -0
  636. package/src/hooks/usePointerType.ts +59 -0
  637. package/src/index.ts +37 -5
  638. package/src/layout/Breadcrumb/_components/BreadcrumbItemIcon/index.tsx +26 -0
  639. package/src/layout/Breadcrumb/_components/BreadcrumbMenuItem/index.tsx +32 -0
  640. package/src/layout/Breadcrumb/_hooks/useBreadcrumbPath.ts +111 -0
  641. package/src/layout/Breadcrumb/_utils/formatMenu.ts +30 -0
  642. package/src/layout/Breadcrumb/_utils/formatRoutes.ts +71 -0
  643. package/src/layout/Breadcrumb/_utils/pathMatch.ts +52 -0
  644. package/src/layout/Breadcrumb/index.md +37 -0
  645. package/src/layout/Breadcrumb/index.module.scss +15 -0
  646. package/src/layout/Breadcrumb/index.tsx +103 -0
  647. package/src/layout/Header/index.md +120 -0
  648. package/src/layout/Header/index.module.scss +215 -0
  649. package/src/layout/Header/index.tsx +198 -0
  650. package/src/layout/I18n/I18nStore.ts +98 -0
  651. package/src/layout/I18n/index.md +45 -0
  652. package/src/layout/I18n/index.tsx +44 -0
  653. package/src/layout/I18n/locales/en-US.ts +16 -0
  654. package/src/layout/I18n/locales/zh-CN.ts +16 -0
  655. package/src/layout/Menu/_components/SecondaryHeader/index.module.scss +65 -0
  656. package/src/layout/Menu/_components/SecondaryHeader/index.tsx +61 -0
  657. package/src/layout/Menu/_hooks/useMenuPath.ts +81 -0
  658. package/src/layout/Menu/_hooks/useOnlyLvOneMenu.ts +44 -0
  659. package/src/layout/Menu/_utils/formatMenu.ts +57 -0
  660. package/src/layout/Menu/_utils/pathMatch.ts +48 -0
  661. package/src/layout/Menu/_utils/setActiveIcon.ts +23 -0
  662. package/src/layout/Menu/index.md +43 -0
  663. package/src/layout/Menu/index.module.scss +50 -0
  664. package/src/layout/Menu/index.tsx +208 -0
  665. package/src/layout/NavTabBar/_components/SortableTab/index.tsx +40 -0
  666. package/src/layout/NavTabBar/_components/TabContextMenu/index.tsx +157 -0
  667. package/src/layout/NavTabBar/_components/TabDragOverlay/index.tsx +69 -0
  668. package/src/layout/NavTabBar/_components/TabLabel/index.tsx +84 -0
  669. package/src/layout/NavTabBar/_hooks/useDropTabKey.ts +27 -0
  670. package/src/layout/NavTabBar/_hooks/useTabContextMenu.ts +23 -0
  671. package/src/layout/NavTabBar/_hooks/useTabPath.ts +118 -0
  672. package/src/layout/NavTabBar/_hooks/useTabTitle.ts +28 -0
  673. package/src/layout/NavTabBar/_utils/formatNavTabBar.ts +50 -0
  674. package/src/layout/NavTabBar/_utils/pathMatch.ts +37 -0
  675. package/src/layout/NavTabBar/_utils/tabActions.ts +131 -0
  676. package/src/layout/NavTabBar/index.md +76 -0
  677. package/src/layout/NavTabBar/index.module.scss +179 -0
  678. package/src/layout/NavTabBar/index.tsx +236 -0
  679. package/src/layout/Theme/ThemeStore.ts +70 -0
  680. package/src/layout/Theme/index.md +48 -0
  681. package/src/layout/Theme/index.module.scss +6 -0
  682. package/src/layout/Theme/index.tsx +105 -0
  683. package/src/layout/_hooks/useDropTab.ts +23 -0
  684. package/src/layout/_hooks/useReload.ts +19 -0
  685. package/src/layout/_hooks/useSetTabTitle.ts +19 -0
  686. package/src/layout/_utils/storage.ts +34 -0
  687. package/src/layout/index.ts +78 -0
  688. package/src/layout/types.ts +58 -0
  689. package/src/request/index.ts +8 -1
  690. package/src/styles/_responsive.scss +53 -0
  691. package/src/styles/antd-overload.scss +77 -21
  692. package/src/styles/tokens.json +82 -0
  693. package/src/styles/tokens.scss +99 -52
  694. package/src/styles/tokens.ts +198 -33
  695. package/src/types/antd.ts +46 -0
  696. package/src/utils/semantic.ts +45 -0
  697. package/es/components/Button/ChakraButton/index.d.ts +0 -11
  698. package/es/components/Button/ChakraButton/index.js +0 -66
  699. package/es/components/Button/ChakraButton/index.module.scss +0 -20
  700. package/es/components/ChakraRoot/index.d.ts +0 -6
  701. package/es/components/ChakraRoot/index.js +0 -42
  702. package/lib/components/Button/ChakraButton/index.d.ts +0 -11
  703. package/lib/components/Button/ChakraButton/index.js +0 -70
  704. package/lib/components/Button/ChakraButton/index.module.scss +0 -20
  705. package/lib/components/ChakraRoot/index.d.ts +0 -6
  706. package/lib/components/ChakraRoot/index.js +0 -46
  707. package/src/components/Button/ChakraButton/index.module.scss +0 -20
  708. package/src/components/Button/ChakraButton/index.tsx +0 -83
  709. package/src/components/ChakraRoot/index.tsx +0 -43
@@ -25,10 +25,10 @@
25
25
  padding: var(--th-padding);
26
26
 
27
27
  &:global(.ant-table-column-has-sorters) {
28
- background: var(--cf-subtle);
28
+ background: var(--vita-muted);
29
29
 
30
30
  &:hover {
31
- background: var(--cf-subtle);
31
+ background: var(--vita-muted);
32
32
  }
33
33
  }
34
34
  }
@@ -61,11 +61,11 @@
61
61
 
62
62
  // 排序列:antd 会用 bodySortBg 单独给该列的单元格上底色,这里抹掉,
63
63
  // 让「哪一列在排序」只由表头的高亮与箭头表达。
64
- // 只抹静止态——从前连悬浮态一起抹掉、再补一支 --cf-subtle 回来,
64
+ // 只抹静止态——从前连悬浮态一起抹掉、再补一支 --vita-muted 回来,
65
65
  // 而整行其余单元格走的是 antd 的 rowHoverBg,两支值并不相等(库自带调色板下
66
66
  // 是 #fafbfc vs #f6f7f9),悬浮一行时排序列会比其余列深一块、整行裂成两截。
67
67
  // 排除掉悬浮态后,该单元格自然落回 antd 的行悬浮规则,与整行始终同色,
68
- // 且不依赖消费方是否同步设置了 --cf-subtle / rowHoverBg。
68
+ // 且不依赖消费方是否同步设置了 --vita-muted / rowHoverBg。
69
69
  &:global(.ant-table-column-sort):not(:global(.ant-table-cell-row-hover)) {
70
70
  background: transparent;
71
71
  }
@@ -74,10 +74,10 @@
74
74
  &:global(.ant-table-row-selected) {
75
75
  :global(.ant-table-cell) {
76
76
  &:global(.ant-table-column-sort) {
77
- background: color-mix(in srgb, var(--primary-color) 12%, transparent);
77
+ background: color-mix(in srgb, var(--vita-primary) 12%, transparent);
78
78
 
79
79
  &:global(.ant-table-cell-row-hover) {
80
- background: color-mix(in srgb, var(--primary-color) 22%, transparent);
80
+ background: color-mix(in srgb, var(--vita-primary) 22%, transparent);
81
81
  }
82
82
  }
83
83
  }
@@ -130,7 +130,7 @@
130
130
 
131
131
  :global(.ant-checkbox) {
132
132
  &:global(.ant-checkbox-checked) {
133
- :global(.ant-checkbox-inner) {
133
+ & {
134
134
  &::after {
135
135
  top: 45%;
136
136
  inset-inline-start: 25%;
@@ -145,7 +145,7 @@
145
145
 
146
146
  // Table
147
147
  .antdTable {
148
- border-color: var(--cf-border-weak);
148
+ border-color: var(--vita-border-weak);
149
149
 
150
150
  *:not(:global(.ant-table-cell) *) {
151
151
  border-color: inherit !important;
@@ -174,7 +174,7 @@
174
174
  :global(.ant-table-container) {
175
175
  :global(.ant-table-content) {
176
176
  > table {
177
- border-left: 1px solid var(--cf-border-weak);
177
+ border-left: 1px solid var(--vita-border-weak);
178
178
  }
179
179
  }
180
180
  }
@@ -239,23 +239,23 @@
239
239
  :global(.ant-table-container) {
240
240
  > :global(.ant-table-header) {
241
241
  > table {
242
- border-radius: 6px 6px 0 0;
243
- border-left: 1px solid var(--cf-border-weak);
242
+ border-radius: var(--vita-radius-sm) var(--vita-radius-sm) 0 0;
243
+ border-left: 1px solid var(--vita-border-weak);
244
244
  }
245
245
  }
246
246
 
247
247
  > :global(.ant-table-body) {
248
248
  > table {
249
249
  border-radius: 0px !important;
250
- border-left: 1px solid var(--cf-border-weak);
250
+ border-left: 1px solid var(--vita-border-weak);
251
251
  }
252
252
  }
253
253
 
254
254
  > :global(.ant-table-summary) {
255
255
  > table {
256
256
  border-radius: 0px !important;
257
- border-left: 1px solid var(--cf-border-weak);
258
- border-top: 1px solid var(--cf-border-weak);
257
+ border-left: 1px solid var(--vita-border-weak);
258
+ border-top: 1px solid var(--vita-border-weak);
259
259
  }
260
260
  }
261
261
  }
@@ -128,7 +128,23 @@ export interface TableProps<RecordType = AnyObject>
128
128
  type TableFC = (<T extends AnyObject>(
129
129
  props: TableProps<T>
130
130
  ) => JSX.Element | null) &
131
- React.FC<TableProps<AnyObject>>;
131
+ React.FC<TableProps<AnyObject>> & {
132
+ /** antd 的 `Table.Summary`,用来渲染合计行 */
133
+ Summary: typeof AntdTable.Summary;
134
+ /** antd 的 `Table.Column`,供 JSX 声明列(本库更推荐用 `columns` 属性) */
135
+ Column: typeof AntdTable.Column;
136
+ /** antd 的 `Table.ColumnGroup` */
137
+ ColumnGroup: typeof AntdTable.ColumnGroup;
138
+ /** 展开列的占位符,放进 `columns` 里可指定展开图标的位置 */
139
+ EXPAND_COLUMN: typeof AntdTable.EXPAND_COLUMN;
140
+ /** 选择列的占位符,同上 */
141
+ SELECTION_COLUMN: typeof AntdTable.SELECTION_COLUMN;
142
+ SELECTION_ALL: typeof AntdTable.SELECTION_ALL;
143
+ SELECTION_INVERT: typeof AntdTable.SELECTION_INVERT;
144
+ SELECTION_NONE: typeof AntdTable.SELECTION_NONE;
145
+ /** 拖拽排序:`Table.Drag.Handle` 作为拖拽手柄列 */
146
+ Drag: typeof Drag;
147
+ };
132
148
 
133
149
  const Table: TableFC = <T extends AnyObject>(props: TableProps<T>) => {
134
150
  const {
@@ -348,4 +364,14 @@ const Table: TableFC = <T extends AnyObject>(props: TableProps<T>) => {
348
364
  );
349
365
  };
350
366
 
367
+ Table.Summary = AntdTable.Summary;
368
+ Table.Column = AntdTable.Column;
369
+ Table.ColumnGroup = AntdTable.ColumnGroup;
370
+ Table.EXPAND_COLUMN = AntdTable.EXPAND_COLUMN;
371
+ Table.SELECTION_COLUMN = AntdTable.SELECTION_COLUMN;
372
+ Table.SELECTION_ALL = AntdTable.SELECTION_ALL;
373
+ Table.SELECTION_INVERT = AntdTable.SELECTION_INVERT;
374
+ Table.SELECTION_NONE = AntdTable.SELECTION_NONE;
375
+ Table.Drag = Drag;
376
+
351
377
  export default Table;
@@ -39,7 +39,7 @@ const EllipsisTag: React.FC<EllipsisTagProps> = (props) => {
39
39
  }}
40
40
  color="#fff"
41
41
  styles={{
42
- body: {
42
+ container: {
43
43
  padding: "6px",
44
44
  maxHeight: "300px",
45
45
  overflow: "auto",
@@ -1,6 +1,7 @@
1
1
  import { Tooltip, TooltipProps } from "antd";
2
2
  import { ReactNode, useEffect, useRef, useState } from "react";
3
3
  import cssStyles from "./index.module.scss";
4
+ import { mergeSemantic } from "../../utils/semantic";
4
5
 
5
6
  // Default Tooltip width
6
7
  const DEFAULT_TOOLTIP_WIDTH = 200;
@@ -201,15 +202,16 @@ const TextEllipsis: React.FC<TextEllipsisProps> = ({
201
202
  placement="bottomLeft"
202
203
  {...restTooltipConfig}
203
204
  title={isOverflow && !disabled ? tooltipTitle : undefined}
204
- styles={{
205
- body: {
205
+ styles={mergeSemantic(styles, (outer) => ({
206
+ // v5 called this slot `body`; v6 renamed it to `container`
207
+ container: {
206
208
  width: tooltipWidth,
207
209
  overflow: "auto",
208
210
  maxHeight: "300px",
209
211
  whiteSpace: "pre-wrap",
210
212
  },
211
- ...styles,
212
- }}
213
+ ...outer,
214
+ }))}
213
215
  >
214
216
  {content}
215
217
  </Tooltip>
@@ -55,6 +55,15 @@ export default () => (
55
55
  );
56
56
  ```
57
57
 
58
+ ## 子组件
59
+
60
+ ```tsx | pure
61
+ Tree.DirectoryTree // antd 的目录树(文件夹图标 + 目录态选中)
62
+ Tree.TreeNode // antd 的 JSX 节点声明
63
+ ```
64
+
65
+ `TreeNode` 供 JSX 写法,本库更推荐用 `treeData`。
66
+
58
67
  ## API
59
68
 
60
69
  在 [antd TreeProps](https://ant.design/components/tree-cn)(已 `Omit` 掉 `treeData`、`loadData`、`loadedKeys`、`titleRender`)基础上扩展:
@@ -11,9 +11,9 @@
11
11
  height: 100%;
12
12
  min-height: 0px !important;
13
13
 
14
- background: var(--cf-surface);
14
+ background: var(--vita-surface);
15
15
 
16
- border-radius: 8px;
16
+ border-radius: var(--vita-radius);
17
17
 
18
18
  .title_search {
19
19
  display: flex;
@@ -35,7 +35,7 @@
35
35
  }
36
36
 
37
37
  .search {
38
- height: 32px;
38
+ height: var(--vita-control-height);
39
39
 
40
40
  .searchIcon {
41
41
  font-size: 16px;
@@ -58,11 +58,11 @@
58
58
 
59
59
  :global(.ant-tree-treenode) {
60
60
  &:hover {
61
- background: var(--cf-subtle);
61
+ background: var(--vita-muted);
62
62
  }
63
63
 
64
64
  &:has(> :global(.ant-tree-node-selected)) {
65
- background-color: color-mix(in srgb, var(--primary-color) 12%, transparent);
65
+ background-color: color-mix(in srgb, var(--vita-primary) 12%, transparent);
66
66
 
67
67
  :global(.ant-tree-node-selected) {
68
68
  background-color: transparent;
@@ -131,7 +131,7 @@
131
131
  &.legacyHasSelectedNodeBackground {
132
132
  .treeContainer {
133
133
  :global(.ant-tree-treenode):global(.ant-tree-treenode-selected) {
134
- background-color: color-mix(in srgb, var(--primary-color) 12%, transparent);
134
+ background-color: color-mix(in srgb, var(--vita-primary) 12%, transparent);
135
135
 
136
136
  :global(.ant-tree-node-selected) {
137
137
  background-color: transparent;
@@ -72,7 +72,14 @@ export interface TreeProps extends Omit<
72
72
  titleSearchBarClassName?: string;
73
73
  }
74
74
 
75
- const Tree: React.FC<TreeProps> = (props) => {
75
+ interface TreeFC extends React.FC<TreeProps> {
76
+ /** antd 的目录树(带文件夹图标与目录态选中) */
77
+ DirectoryTree: typeof AntdTree.DirectoryTree;
78
+ /** antd 的 `Tree.TreeNode`,供 JSX 写法(本库更推荐用 `treeData`) */
79
+ TreeNode: typeof AntdTree.TreeNode;
80
+ }
81
+
82
+ const Tree = ((props: TreeProps) => {
76
83
  const {
77
84
  title,
78
85
  titleRender,
@@ -304,6 +311,9 @@ const Tree: React.FC<TreeProps> = (props) => {
304
311
  </div>
305
312
  </div>
306
313
  );
307
- };
314
+ }) as TreeFC;
315
+
316
+ Tree.DirectoryTree = AntdTree.DirectoryTree;
317
+ Tree.TreeNode = AntdTree.TreeNode;
308
318
 
309
319
  export default Tree;
@@ -94,9 +94,9 @@ export const UploadedItem: React.FC<UploadedItemProps> = ({
94
94
  <div className={classNames(styles.fileItem, listProps?.item)}>
95
95
  <Tooltip
96
96
  title={name}
97
- color="var(--cf-subtle)"
97
+ color="var(--vita-muted)"
98
98
  styles={{
99
- body: { color: "var(--cf-text)", padding: "6px 16px" },
99
+ container: { color: "var(--vita-foreground)", padding: "6px 16px" },
100
100
  }}
101
101
  >
102
102
  <div className={classNames(styles.fileName, listProps?.itemName)}>
@@ -32,9 +32,9 @@ export const UploadingItem: React.FC<UploadingItemProps> = ({
32
32
  <div className={styles.uploading}>
33
33
  <Tooltip
34
34
  title={name}
35
- color="var(--cf-subtle)"
35
+ color="var(--vita-muted)"
36
36
  styles={{
37
- body: { color: "var(--cf-text)", padding: "6px 16px" },
37
+ container: { color: "var(--vita-foreground)", padding: "6px 16px" },
38
38
  }}
39
39
  >
40
40
  <div
@@ -3,7 +3,7 @@ import { RcFile } from "antd/es/upload";
3
3
  import { deepCopy } from "hsu-utils";
4
4
  import { validateFile, createFormData, isSuccessResponse } from ".";
5
5
  import { UploadingList } from "..";
6
- import type { UploadRequestOption } from "rc-upload/lib/interface";
6
+ import type { UploadRequestOption } from "../../../types/antd";
7
7
 
8
8
  interface NormalUploadOptions {
9
9
  file: RcFile;
@@ -8,6 +8,60 @@ interface ValidateFileOptions {
8
8
  en?: boolean;
9
9
  }
10
10
 
11
+ /**
12
+ * 文件是否命中 accept —— 与 antd 保持一致的语义。
13
+ *
14
+ * 此前是把 accept 拼进正则:`new RegExp(`(${accept.replace(/,/g, "|")})$`)`,有两个问题:
15
+ * 字符没转义(`.png` 里的 `.` 是「任意字符」,实测放行了 `axpng`),且 HTML 允许的 MIME
16
+ * 形式里 `image/*` 的 `*` 会被当成量词(实测把 photo.png 判成了格式错误)。把外部字符串
17
+ * 拼进正则本身也是 ReDoS 入口。
18
+ *
19
+ * 这里照抄 @rc-component/upload 的 attr-accept 语义,而不是另写一套:这个函数是上传前的
20
+ * 预校验,antd 自己的 accept 过滤也在跑,两边规则一旦不一致,就会出现「antd 放行、我们拦下」
21
+ * 或反过来的割裂。逐条 some(),任一命中即通过,全不命中即拒绝 —— 不做额外兜底。
22
+ */
23
+ const matchesAccept = (
24
+ file: { name: string; type?: string },
25
+ accept: string
26
+ ): boolean => {
27
+ const items = accept.split(",");
28
+ const fileName = file.name || "";
29
+ const mimeType = file.type || "";
30
+ const baseMimeType = mimeType.replace(/\/.*$/, "");
31
+
32
+ return items.some((item) => {
33
+ const validType = item.trim();
34
+ if (!validType) return false;
35
+
36
+ // `*` / `*​/*`:全部放行
37
+ if (/^\*(\/\*)?$/.test(validType)) return true;
38
+
39
+ // 扩展名。jpg 与 jpeg 互认,与 attr-accept 一致
40
+ if (validType.charAt(0) === ".") {
41
+ const lowerName = fileName.toLowerCase();
42
+ const lowerType = validType.toLowerCase();
43
+ const affixes =
44
+ lowerType === ".jpg" || lowerType === ".jpeg"
45
+ ? [".jpg", ".jpeg"]
46
+ : [lowerType];
47
+ return affixes.some((affix) => lowerName.endsWith(affix));
48
+ }
49
+
50
+ // `image/*` 这类通配
51
+ if (/\/\*$/.test(validType)) {
52
+ return baseMimeType === validType.replace(/\/.*$/, "");
53
+ }
54
+
55
+ // MIME 全等
56
+ if (mimeType === validType) return true;
57
+
58
+ // `png` 这种没有点也没有斜杠的写法是无效 accept,attr-accept 选择跳过而不是拦下
59
+ if (/^\w+$/.test(validType)) return true;
60
+
61
+ return false;
62
+ });
63
+ };
64
+
11
65
  /**
12
66
  * Validate file format and size
13
67
  */
@@ -18,8 +72,7 @@ export function validateFile({
18
72
  en,
19
73
  }: ValidateFileOptions): { valid: boolean; error?: Error } {
20
74
  if (accept) {
21
- const fileRegex = new RegExp(`(${accept.replace(/,/g, "|")})$`);
22
- if (!fileRegex.test(file.name.toLowerCase())) {
75
+ if (!matchesAccept(file, accept)) {
23
76
  return {
24
77
  valid: false,
25
78
  error: new Error(
@@ -64,6 +64,15 @@ export default () => {
64
64
  };
65
65
  ```
66
66
 
67
+ ## 子组件
68
+
69
+ ```tsx | pure
70
+ Upload.Dragger // antd 的拖拽上传区
71
+ Upload.LIST_IGNORE // beforeUpload 返回它表示「跳过该文件且不进 fileList」
72
+ ```
73
+
74
+ 本库的 `Upload` 传 `drop` 属性即可切成拖拽形态;`Upload.Dragger` 是 antd 原生的那个,两者不要混用。
75
+
67
76
  ## API
68
77
 
69
78
  继承 antd [UploadProps](https://ant.design/components/upload-cn)(移除原 `action`、`data` 后重新定义),新增/重写属性如下:
@@ -3,7 +3,7 @@ import {
3
3
  UploadProps as AntdUploadProps,
4
4
  UploadFile,
5
5
  } from "antd";
6
- import type { UploadRequestOption } from "rc-upload/lib/interface";
6
+ import type { UploadRequestOption } from "../../types/antd";
7
7
  import React, { useCallback } from "react";
8
8
  import { Canceler } from "axios";
9
9
  import { RcFile } from "antd/es/upload";
@@ -58,7 +58,14 @@ export interface UploadProps extends Omit<AntdUploadProps, "action" | "data"> {
58
58
  en?: boolean;
59
59
  }
60
60
 
61
- const Upload: React.FC<UploadProps> = (props) => {
61
+ interface UploadFC extends React.FC<UploadProps> {
62
+ /** antd 的拖拽上传区 */
63
+ Dragger: typeof AntdUpload.Dragger;
64
+ /** `beforeUpload` 返回它表示「跳过这个文件且不进 fileList」 */
65
+ LIST_IGNORE: typeof AntdUpload.LIST_IGNORE;
66
+ }
67
+
68
+ const Upload = ((props: UploadProps) => {
62
69
  const {
63
70
  disabled = false,
64
71
  drop,
@@ -86,6 +93,11 @@ const Upload: React.FC<UploadProps> = (props) => {
86
93
  ...uploadConfig
87
94
  } = props;
88
95
 
96
+ // antd v6 widened `accept` to `string | { format: string; filter?: ... }`. This component's own
97
+ // extension check (validateFile) only understands the comma-separated string, so read the format
98
+ // out of the object form; antd still applies the full config to the native file input.
99
+ const acceptFormat = typeof accept === "string" ? accept : accept.format;
100
+
89
101
  const {
90
102
  fileList: _fileList,
91
103
  setFileList,
@@ -131,7 +143,7 @@ const Upload: React.FC<UploadProps> = (props) => {
131
143
  chunkNum,
132
144
  data,
133
145
  headers,
134
- accept,
146
+ accept: acceptFormat,
135
147
  size,
136
148
  en,
137
149
  uploadingList,
@@ -148,7 +160,7 @@ const Upload: React.FC<UploadProps> = (props) => {
148
160
  chunkNum,
149
161
  data,
150
162
  headers,
151
- accept,
163
+ acceptFormat,
152
164
  size,
153
165
  en,
154
166
  uploadingList,
@@ -180,7 +192,7 @@ const Upload: React.FC<UploadProps> = (props) => {
180
192
  action,
181
193
  data,
182
194
  headers,
183
- accept,
195
+ accept: acceptFormat,
184
196
  size,
185
197
  en,
186
198
  uploadingList,
@@ -195,7 +207,7 @@ const Upload: React.FC<UploadProps> = (props) => {
195
207
  action,
196
208
  data,
197
209
  headers,
198
- accept,
210
+ acceptFormat,
199
211
  size,
200
212
  en,
201
213
  uploadingList,
@@ -301,6 +313,9 @@ const Upload: React.FC<UploadProps> = (props) => {
301
313
  />
302
314
  </>
303
315
  );
304
- };
316
+ }) as UploadFC;
317
+
318
+ Upload.Dragger = AntdUpload.Dragger;
319
+ Upload.LIST_IGNORE = AntdUpload.LIST_IGNORE;
305
320
 
306
321
  export default Upload;
@@ -1,27 +1,70 @@
1
- import React, { useMemo } from "react";
1
+ import React, { useEffect, useMemo } from "react";
2
+ import {
3
+ ConfigProvider as AntdConfigProvider,
4
+ theme as antdTheme,
5
+ type ThemeConfig,
6
+ } from "antd";
2
7
 
3
8
  import { PermissionsContent } from "../hooks/usePermissions";
9
+ import useIsDark from "../hooks/useIsDark";
4
10
  import { configureRequest, RequestImpl } from "../request";
11
+ import { toAntdComponents, toAntdTheme } from "../styles/tokens";
12
+ import { FeedbackHolder } from "../feedback";
5
13
 
6
14
  export interface ConfigProviderProps {
7
15
  /** Current user's permission code list; when provided, usePermissions / hasPermi validate against it. If omitted, everything is allowed by default */
8
16
  permissions?: string[] | null;
9
17
  /** Inject the HTTP request implementation, used by smart components such as ImportForm */
10
18
  request?: Partial<RequestImpl>;
19
+ /**
20
+ * Brand colour. Sets both halves of the token layer at once: the `--vita-primary` CSS variable
21
+ * (via `--primary-color`, so pre-2.0 overrides keep working) and antd's `colorPrimary`.
22
+ *
23
+ * Setting the CSS variable by hand only moves this library's own styles — antd derives a
24
+ * 10-step palette from the JS token and cannot read a `var()`. Going through this prop is what
25
+ * keeps the two in step.
26
+ */
27
+ primaryColor?: string;
28
+ /**
29
+ * Force light/dark instead of following `html[data-theme]` / the OS preference.
30
+ * The CSS variables follow the same signals on their own.
31
+ */
32
+ dark?: boolean;
33
+ /**
34
+ * Extra antd theme config, merged on top of the generated one — escape hatch for a consumer
35
+ * that wants a token this library does not map.
36
+ */
37
+ theme?: ThemeConfig;
38
+ /**
39
+ * Set to `false` to stop managing antd's theme entirely, leaving it to the host app.
40
+ * Components this library wraps still follow the `--vita-*` variables; antd components it does
41
+ * not wrap will fall back to antd's stock look.
42
+ */
43
+ antdTheme?: boolean;
11
44
  children?: React.ReactNode;
12
45
  }
13
46
 
14
47
  /**
15
- * Hsu UI global configuration: injects permissions and the request implementation.
48
+ * Hsu UI global configuration: permissions, the request implementation, and the design tokens.
49
+ *
50
+ * On the theme: the `--vita-*` CSS variables cover everything this library styles itself, but not
51
+ * the antd components it merely re-exports or that a page uses directly. Feeding antd's
52
+ * `theme.token` from the very same tokens is what makes an unwrapped `<Steps />` land on the same
53
+ * palette, radii and type scale as a wrapped `<Table />` — without this library having to wrap all
54
+ * 75 antd components to keep the look consistent.
16
55
  *
17
56
  * @example
18
- * <ConfigProvider permissions={perms} request={{ get, post, del, put }}>
57
+ * <ConfigProvider permissions={perms} request={{ get, post, del, put }} primaryColor="#7c3aed">
19
58
  * <App />
20
59
  * </ConfigProvider>
21
60
  */
22
61
  const ConfigProvider: React.FC<ConfigProviderProps> = ({
23
62
  permissions = null,
24
63
  request,
64
+ primaryColor,
65
+ dark,
66
+ theme,
67
+ antdTheme: manageAntdTheme = true,
25
68
  children,
26
69
  }) => {
27
70
  // Inject synchronously during render so child components get the request implementation on their very first interaction
@@ -31,11 +74,48 @@ const ConfigProvider: React.FC<ConfigProviderProps> = ({
31
74
 
32
75
  const permissionsValue = useMemo(() => ({ permissions }), [permissions]);
33
76
 
34
- return (
77
+ const detectedDark = useIsDark();
78
+ const isDark = dark ?? detectedDark;
79
+
80
+ const themeConfig = useMemo<ThemeConfig>(
81
+ () => ({
82
+ algorithm: isDark ? antdTheme.darkAlgorithm : antdTheme.defaultAlgorithm,
83
+ ...theme,
84
+ token: { ...toAntdTheme({ dark: isDark, primaryColor }), ...theme?.token },
85
+ components: { ...toAntdComponents(), ...theme?.components },
86
+ }),
87
+ [isDark, primaryColor, theme]
88
+ );
89
+
90
+ // Written onto <html> rather than a wrapper element: this provider usually sits at the very top
91
+ // of the tree, and slipping an extra div in there would change the layout of whatever it wraps.
92
+ // `--primary-color` rather than `--vita-primary` because the generated tokens make the latter
93
+ // point at the former, so writing the legacy name keeps both spellings working for consumers.
94
+ useEffect(() => {
95
+ if (!primaryColor || typeof document === "undefined") return;
96
+
97
+ const root = document.documentElement;
98
+ const previous = root.style.getPropertyValue("--primary-color");
99
+ root.style.setProperty("--primary-color", primaryColor);
100
+
101
+ return () => {
102
+ if (previous) root.style.setProperty("--primary-color", previous);
103
+ else root.style.removeProperty("--primary-color");
104
+ };
105
+ }, [primaryColor]);
106
+
107
+ const tree = (
35
108
  <PermissionsContent.Provider value={permissionsValue}>
109
+ {/* 让 message / notification / Modal.confirm 这类命令式 API 的输出落在树内,
110
+ 从而能读到下面注入的主题。见 ../feedback。 */}
111
+ <FeedbackHolder />
36
112
  {children}
37
113
  </PermissionsContent.Provider>
38
114
  );
115
+
116
+ if (!manageAntdTheme) return tree;
117
+
118
+ return <AntdConfigProvider theme={themeConfig}>{tree}</AntdConfigProvider>;
39
119
  };
40
120
 
41
121
  export default ConfigProvider;