@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
@@ -0,0 +1,179 @@
1
+ // 注意:这是 CSS Module,文件里的每个类名都会被哈希。antd 的类名必须写在 :global() 里,
2
+ // 否则 `.ant-tabs-nav` 会被编译成一串哈希,永远匹配不到 antd 渲染出的 DOM —— 规则不会报错,
3
+ // 只是静悄悄地全部失效。本库其余组件的样式都遵循这个写法。
4
+ .NavTabBar {
5
+ padding: 6px 8px 0px;
6
+
7
+ // Modern look: keep the white strip; the active tab is a light teal pill
8
+ background: var(--vita-surface);
9
+
10
+ border-bottom: 1px solid var(--vita-border);
11
+
12
+ // 把根类重复一次(编译成 `.x.x`),只为提一档权重。antd 的卡片样式是
13
+ // `:where(...).ant-tabs-card.ant-tabs-small.ant-tabs-top > .ant-tabs-nav .ant-tabs-tab`,
14
+ // `:where()` 不计权重,正好和这里的四个类打平 —— 打平时后注入的赢,而 antd 的
15
+ // CSS-in-JS 是运行时插进 <head> 的,永远在后面,圆角这类就会被它盖回卡片样式。
16
+ &.NavTabBar {
17
+ :global(.ant-tabs-nav) {
18
+ height: 36px;
19
+ margin-bottom: 0px;
20
+
21
+ &::before {
22
+ border-bottom: none;
23
+ }
24
+
25
+ // Card-style tabs do not need the bottom ink bar
26
+ :global(.ant-tabs-ink-bar) {
27
+ display: none;
28
+ }
29
+
30
+ :global(.ant-tabs-nav-list) {
31
+ :global(.ant-tabs-tab) {
32
+ position: relative;
33
+
34
+ padding: 0px;
35
+ margin: 0px;
36
+
37
+ border: none;
38
+ border-radius: 8px;
39
+ background: transparent;
40
+
41
+ transition: background 0.2s;
42
+
43
+ & + :global(.ant-tabs-tab) {
44
+ margin-left: 4px;
45
+ }
46
+
47
+ :global(.ant-tabs-tab-btn) {
48
+ color: var(--vita-muted-foreground);
49
+
50
+ > .tabLabel {
51
+ display: inline-flex;
52
+ align-items: center;
53
+ justify-content: center;
54
+ column-gap: 5px;
55
+
56
+ width: 100%;
57
+ height: 100%;
58
+ padding: 6px 16px;
59
+ }
60
+
61
+ > .tabLabel.legacyClosableTabLabel {
62
+ padding-right: 36px;
63
+ }
64
+ }
65
+
66
+ &:hover {
67
+ background: var(--vita-border-weak);
68
+ }
69
+
70
+ &:global(.ant-tabs-tab-active) {
71
+ background: var(--vita-muted);
72
+
73
+ :global(.ant-tabs-tab-btn) {
74
+ color: var(--vita-primary);
75
+ font-weight: 500;
76
+ }
77
+ }
78
+
79
+ :global(.ant-tabs-tab-remove) {
80
+ position: absolute;
81
+ right: 16px;
82
+ top: 50%;
83
+ transform: translateY(-50%);
84
+ }
85
+
86
+ &:has(:global(.ant-tabs-tab-remove)) {
87
+ :global(.ant-tabs-tab-btn) {
88
+ > .tabLabel {
89
+ padding-right: 36px;
90
+ }
91
+ }
92
+ }
93
+ }
94
+ }
95
+ }
96
+
97
+ // extra 区域自身没有高度,撑满后才能和页签对齐;右边那条竖线把刷新按钮和页签分开
98
+ :global(.ant-tabs-extra-content) {
99
+ display: flex;
100
+ align-items: center;
101
+ align-self: stretch;
102
+
103
+ margin-right: 8px;
104
+ padding-right: 8px;
105
+
106
+ border-right: 1px solid var(--vita-border-weak);
107
+ }
108
+
109
+ // 「刷新当前页」按钮
110
+ .reload {
111
+ display: inline-flex;
112
+ align-items: center;
113
+ justify-content: center;
114
+
115
+ width: 28px;
116
+ height: 28px;
117
+ padding: 0px;
118
+
119
+ color: var(--vita-muted-foreground);
120
+
121
+ &:hover {
122
+ color: var(--vita-primary);
123
+ }
124
+ }
125
+
126
+ :global(.ant-tabs-nav-operations) {
127
+ > button {
128
+ cursor: pointer;
129
+ }
130
+ }
131
+ }
132
+ }
133
+
134
+ .popover {
135
+ // antd v6 里承载内边距的是 .ant-popover-container,v5 的 .ant-popover-inner 已经没有了 ——
136
+ // 照着 v5 写不会报错,只是这条规则永远不生效,右键菜单会白白多出一圈 12px 内边距
137
+ :global(.ant-popover-container) {
138
+ padding: 0px;
139
+ }
140
+
141
+ .part {
142
+ display: flex;
143
+ flex-direction: column;
144
+
145
+ padding: 6px 0px;
146
+
147
+ border-bottom: 1px solid var(--vita-border-weak);
148
+
149
+ :global(.ant-btn) {
150
+ justify-content: flex-start;
151
+
152
+ border-radius: 0px;
153
+ }
154
+ }
155
+ }
156
+
157
+ .dragOverlay {
158
+ display: inline-flex;
159
+ align-items: center;
160
+ justify-content: center;
161
+
162
+ cursor: pointer;
163
+ opacity: 0.9;
164
+
165
+ height: 34px;
166
+ padding: 6px 16px;
167
+
168
+ background: var(--vita-surface);
169
+ border-radius: 6px 6px 0 0;
170
+ border: 1px solid var(--vita-border);
171
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
172
+
173
+ .tabLabel {
174
+ display: inline-flex;
175
+ align-items: center;
176
+ justify-content: center;
177
+ column-gap: 5px;
178
+ }
179
+ }
@@ -0,0 +1,236 @@
1
+ import { Tabs as AntdTabs, Tooltip } from "antd";
2
+ import React, { ReactNode, useCallback, useMemo, useState } from "react";
3
+ import { useNavigate } from "react-router";
4
+ import type { DragEndEvent, DragStartEvent } from "@dnd-kit/core";
5
+ import {
6
+ closestCenter,
7
+ DndContext,
8
+ PointerSensor,
9
+ useSensor,
10
+ } from "@dnd-kit/core";
11
+ import {
12
+ restrictToHorizontalAxis,
13
+ restrictToParentElement,
14
+ } from "@dnd-kit/modifiers";
15
+ import {
16
+ arrayMove,
17
+ horizontalListSortingStrategy,
18
+ SortableContext,
19
+ } from "@dnd-kit/sortable";
20
+
21
+ import { RouteType } from "../types";
22
+ import styles from "./index.module.scss";
23
+ import { useAliveController } from "react-activation";
24
+ import useReload from "../_hooks/useReload";
25
+ import { formatNavTabBar } from "./_utils/formatNavTabBar";
26
+ import { useTabPath } from "./_hooks/useTabPath";
27
+ import { useTabContextMenu } from "./_hooks/useTabContextMenu";
28
+ import { useDropTabKey } from "./_hooks/useDropTabKey";
29
+ import { useTabTitle } from "./_hooks/useTabTitle";
30
+ import TabLabel from "./_components/TabLabel";
31
+ import DraggableTabNode from "./_components/SortableTab";
32
+ import TabDragOverlay from "./_components/TabDragOverlay";
33
+ import { isLegacyHasSelectorBrowser } from "../../utils/cssSupports";
34
+ import Button from "../../components/Button";
35
+ import Icon from "../../components/Icon";
36
+
37
+ export interface TabType {
38
+ label: ReactNode;
39
+ key: string;
40
+ element?: React.ReactNode;
41
+ children?: TabType[];
42
+ path?: string;
43
+ name?: ReactNode;
44
+ affix?: boolean;
45
+ icon?: ReactNode;
46
+ }
47
+
48
+ export interface NavTabBarProps {
49
+ router: RouteType[];
50
+ affixRouter?: string[];
51
+ basePath?: string;
52
+ /** 页签栏最前面的「刷新当前页」按钮 */
53
+ showReload?: boolean;
54
+ }
55
+
56
+ const NavTabBar: React.FC<NavTabBarProps> = (props) => {
57
+ const {
58
+ router,
59
+ affixRouter = [],
60
+ basePath = "/",
61
+ showReload = true,
62
+ } = props;
63
+ const navigate = useNavigate();
64
+ const { drop, refresh } = useAliveController();
65
+ const onReload = useReload();
66
+ const legacyHasSelector = isLegacyHasSelectorBrowser();
67
+
68
+ const items = useMemo(() => {
69
+ return formatNavTabBar(router);
70
+ }, [router]);
71
+
72
+ const { tabKey, openKeys, setOpenkeys } = useTabPath({
73
+ items,
74
+ affixRouter,
75
+ });
76
+
77
+ const { open, setOpen } = useTabContextMenu();
78
+
79
+ useDropTabKey(setOpenkeys);
80
+ useTabTitle(setOpenkeys);
81
+
82
+ // ID of the tab currently being dragged
83
+ const [activeId, setActiveId] = useState<string | null>(null);
84
+
85
+ // Configure the drag sensor with a 10px activation distance to avoid accidental drags
86
+ const sensor = useSensor(PointerSensor, {
87
+ activationConstraint: { distance: 10 },
88
+ });
89
+
90
+ // Handle the drag start event
91
+ const onDragStart = (event: DragStartEvent) => {
92
+ setActiveId(String(event.active.id));
93
+ };
94
+
95
+ // Handle the drag end event
96
+ const onDragEnd = ({ active, over }: DragEndEvent) => {
97
+ if (active.id !== over?.id) {
98
+ setOpenkeys((prev) => {
99
+ const activeIndex = prev.findIndex((i) => i.key === active.id);
100
+ const overIndex = prev.findIndex((i) => i.key === over?.id);
101
+ return arrayMove(prev, activeIndex, overIndex);
102
+ });
103
+ }
104
+ setActiveId(null);
105
+ };
106
+
107
+ // Handle the drag cancel event
108
+ const onDragCancel = () => {
109
+ setActiveId(null);
110
+ };
111
+
112
+ /**
113
+ * 刷新当前页。走的是和右键菜单「重新加载」完全相同的两步:`onReload` 通知页面自己重挂,
114
+ * `refresh` 让 react-activation 丢掉这份缓存。少调其中任何一个,都会出现「看上去刷新了、
115
+ * 实际还是那棵旧组件树」。
116
+ *
117
+ * key 要去掉 query —— 缓存是按路径存的,带上 `?a=1` 会找不到对应的那份。
118
+ */
119
+ const reloadCurrent = useCallback(() => {
120
+ const key = tabKey?.split("?")[0];
121
+ if (!key) return;
122
+ onReload(key);
123
+ refresh(key);
124
+ }, [tabKey, onReload, refresh]);
125
+
126
+ return (
127
+ <AntdTabs
128
+ className={styles.NavTabBar}
129
+ items={openKeys?.map((item, idx) => {
130
+ const closable = !(affixRouter.includes(item.key) || item.affix);
131
+
132
+ return {
133
+ label: (
134
+ <TabLabel
135
+ item={item}
136
+ index={idx}
137
+ openKeys={openKeys}
138
+ basePath={basePath}
139
+ affixRouter={affixRouter}
140
+ open={open}
141
+ onReload={onReload}
142
+ refresh={refresh}
143
+ drop={drop}
144
+ setOpenkeys={setOpenkeys}
145
+ setOpen={setOpen}
146
+ navigate={navigate}
147
+ className={
148
+ legacyHasSelector && closable
149
+ ? styles.legacyClosableTabLabel
150
+ : undefined
151
+ }
152
+ />
153
+ ),
154
+ key: item.key,
155
+ closeIcon: closable ? undefined : false,
156
+ };
157
+ })}
158
+ activeKey={tabKey}
159
+ tabBarExtraContent={
160
+ showReload
161
+ ? {
162
+ left: (
163
+ // 不用 Button 的 title —— 本库的 Button 把 title 当作 children 的兜底
164
+ // (children ?? title),传了会把文案画到按钮里,而不是变成悬浮提示
165
+ <Tooltip title="刷新当前页">
166
+ <Button
167
+ className={styles.reload}
168
+ type="text"
169
+ size="small"
170
+ aria-label="刷新当前页"
171
+ icon={<Icon icon="ep:refresh" />}
172
+ onClick={reloadCurrent}
173
+ />
174
+ </Tooltip>
175
+ ),
176
+ }
177
+ : undefined
178
+ }
179
+ hideAdd
180
+ type="editable-card"
181
+ onEdit={(key, action) => {
182
+ if (action === "remove") {
183
+ drop((key as string)?.split("?")[0] || "");
184
+ // Find the index of the tab being closed
185
+ const currentIndex = openKeys.findIndex((item) => item.key === key);
186
+ const newOpenKeys = openKeys.filter((item) => item.key !== key);
187
+ setOpenkeys(newOpenKeys);
188
+ setOpen("");
189
+ if (key === tabKey) {
190
+ // If the active tab is closed, select the previous tab; fall back to the first one
191
+ const targetIndex = currentIndex > 0 ? currentIndex - 1 : 0;
192
+ navigate(newOpenKeys[targetIndex]?.key || basePath);
193
+ }
194
+ }
195
+ }}
196
+ size="small"
197
+ renderTabBar={(tabBarProps, DefaultTabBar) => (
198
+ <DndContext
199
+ sensors={[sensor]}
200
+ onDragStart={onDragStart}
201
+ onDragEnd={onDragEnd}
202
+ onDragCancel={onDragCancel}
203
+ collisionDetection={closestCenter}
204
+ modifiers={[restrictToHorizontalAxis, restrictToParentElement]}
205
+ >
206
+ <SortableContext
207
+ items={openKeys.map((i) => i.key)}
208
+ strategy={horizontalListSortingStrategy}
209
+ >
210
+ <DefaultTabBar {...tabBarProps}>
211
+ {(node) => (
212
+ <DraggableTabNode {...node.props} key={node.key}>
213
+ {node}
214
+ </DraggableTabNode>
215
+ )}
216
+ </DefaultTabBar>
217
+ </SortableContext>
218
+ <TabDragOverlay
219
+ activeId={activeId}
220
+ openKeys={openKeys}
221
+ basePath={basePath}
222
+ affixRouter={affixRouter}
223
+ open={open}
224
+ onReload={onReload}
225
+ refresh={refresh}
226
+ drop={drop}
227
+ setOpenkeys={setOpenkeys}
228
+ setOpen={setOpen}
229
+ navigate={navigate}
230
+ />
231
+ </DndContext>
232
+ )}
233
+ />
234
+ );
235
+ };
236
+ export default NavTabBar;
@@ -0,0 +1,70 @@
1
+ import { readStorage, writeStorage, STORAGE_KEY } from "../_utils/storage";
2
+ import { makeAutoObservable } from "mobx";
3
+
4
+ export type Layout = "left" | "top" | "mixed";
5
+
6
+ export type Theme = "light" | "dark";
7
+
8
+ export type HeaderTheme = "light" | "dark" | "theme";
9
+
10
+ // Three appearance modes (light / dark / follow system)
11
+ export type Appearance = "light" | "dark" | "system";
12
+
13
+ class ThemeStore {
14
+ // Appearance mode selected by the user
15
+ get appearance() {
16
+ return this._appearance;
17
+ }
18
+ private _appearance: Appearance = "system";
19
+
20
+ // Whether the system is currently dark (takes effect when appearance=system)
21
+ private _systemDark = false;
22
+
23
+ // Resolved actual dark-mode state
24
+ get isDark(): boolean {
25
+ if (this._appearance === "system") return this._systemDark;
26
+ return this._appearance === "dark";
27
+ }
28
+
29
+ // Fixed left layout; switching is no longer offered
30
+ get layout(): Layout {
31
+ return "left";
32
+ }
33
+
34
+ // Nav light/dark follows the appearance
35
+ get headerTheme(): HeaderTheme {
36
+ return this.isDark ? "dark" : "light";
37
+ }
38
+
39
+ // Content theme follows the appearance
40
+ get theme(): Theme {
41
+ return this.isDark ? "dark" : "light";
42
+ }
43
+
44
+ constructor() {
45
+ makeAutoObservable(this);
46
+
47
+ const cached = readStorage(STORAGE_KEY.APPEARANCE) as Appearance | undefined;
48
+ if (cached === "light" || cached === "dark" || cached === "system") {
49
+ this._appearance = cached;
50
+ }
51
+
52
+ // Listen for system color-scheme changes, following in real time when appearance=system
53
+ if (typeof window !== "undefined" && window.matchMedia) {
54
+ const mq = window.matchMedia("(prefers-color-scheme: dark)");
55
+ this._systemDark = mq.matches;
56
+ mq.addEventListener("change", (e) => this._setSystemDark(e.matches));
57
+ }
58
+ }
59
+
60
+ private _setSystemDark = (v: boolean) => {
61
+ this._systemDark = v;
62
+ };
63
+
64
+ public setAppearance = (appearance: Appearance) => {
65
+ this._appearance = appearance;
66
+ writeStorage(STORAGE_KEY.APPEARANCE, appearance);
67
+ };
68
+ }
69
+
70
+ export default new ThemeStore();
@@ -0,0 +1,48 @@
1
+ ---
2
+ title: Theme 外观
3
+ order: 5
4
+ ---
5
+
6
+ # Theme 外观
7
+
8
+ 外观三态(浅色 / 深色 / 跟随系统)与导航区专属配色。
9
+
10
+ ## 引入
11
+
12
+ ```ts
13
+ import Layout from "@hsu-react/ui/es/layout";
14
+
15
+ <Layout.Theme>{children}</Layout.Theme>;
16
+ ```
17
+
18
+ ## 与 ConfigProvider 的分工
19
+
20
+ 这两个组件**不是二选一,也不重复**:
21
+
22
+ - [`ConfigProvider`](/components/config-provider) 提供**全局主题** —— 色板、圆角、字号、控件高度、明暗算法、focus ring,全部从设计令牌产出
23
+ - `Layout.Theme` 只做两件它独有的事:
24
+ 1. 写 `html[data-theme]`。令牌的 CSS 变量与 `useIsDark` 都监听这个属性,但没有别的地方写它 —— 外观三态就落在这儿
25
+ 2. 叠加导航区配色。菜单选中态的胶囊、深色侧栏的渐变,这些是布局特有的,通用令牌覆盖不到。选中态的颜色取**当前生效的主色**(antd `useToken` 读到的 `colorPrimary`),所以在 `ConfigProvider` 上换 `primaryColor`,菜单会跟着换
26
+
27
+ 所以顺序是 `ConfigProvider` 在外、`Layout.Theme` 在内(antd 的嵌套主题规则是内层胜)。
28
+
29
+ ## API
30
+
31
+ | 属性 | 说明 | 类型 | 默认值 |
32
+ | --- | --- | --- | --- |
33
+ | children | 子节点 | `ReactNode` | - |
34
+ | navDarkColors | 深色导航渐变的两端色 | `{ top: string; bottom: string }` | `{ top: "#1f1f1f", bottom: "#141414" }` |
35
+
36
+ ## ThemeStore
37
+
38
+ 外观状态是一个 mobx store,应用侧可直接读写(`Layout.Header` 的外观切换器用的就是它):
39
+
40
+ ```ts | pure
41
+ import Layout from "@hsu-react/ui/es/layout";
42
+
43
+ Layout.ThemeStore.appearance; // "light" | "dark" | "system"
44
+ Layout.ThemeStore.isDark; // 解析 system 之后的实际明暗
45
+ Layout.ThemeStore.setAppearance("dark"); // 切换,并写入 localStorage
46
+ ```
47
+
48
+ `appearance` 持久化在 `localStorage["hsu-ui:appearance"]`;选了 `system` 时会跟随 `prefers-color-scheme` 实时变化。
@@ -0,0 +1,6 @@
1
+ .theme {
2
+ width: 100vw;
3
+ height: 100vh;
4
+
5
+ overflow: hidden;
6
+ }
@@ -0,0 +1,105 @@
1
+ import React, { useEffect, useMemo } from "react";
2
+ import { ConfigProvider as AntdConfigProvider, theme as antdTheme } from "antd";
3
+ import { observer } from "mobx-react-lite";
4
+ import classNames from "classnames";
5
+
6
+ import styles from "./index.module.scss";
7
+ import ThemeStore from "./ThemeStore";
8
+ import { lightTokens, darkTokens, withAlpha } from "../../styles/tokens";
9
+
10
+ export interface ThemeProps {
11
+ children?: React.ReactNode;
12
+ /** 深色导航渐变的两端色,不传用内置值 */
13
+ navDarkColors?: { top: string; bottom: string };
14
+ }
15
+
16
+ /**
17
+ * 外观控制器 + 布局专属配色。
18
+ *
19
+ * 这里刻意**不**做全局主题 —— 色板、圆角、字号、控件高度、明暗算法、focus ring 都由本库的
20
+ * `ConfigProvider` 从设计令牌统一产出。这个组件只负责两件它独有的事:
21
+ *
22
+ * 1. **写 `html[data-theme]`**。令牌的 CSS 变量与 `useIsDark` 都监听这个属性,但**没有人写它** ——
23
+ * 这是外观三态(light / dark / 跟随系统)落地的地方,也是这个组件存在的主要理由。
24
+ * 2. **侧栏与导航的配色**。菜单选中态的胶囊、深色导航的渐变,这些是布局特有的,
25
+ * 通用令牌覆盖不到,用一层就近的 antd ConfigProvider 叠加(antd 的嵌套规则:内层胜)。
26
+ *
27
+ * 移植时去掉的(本库已有,留着会重复甚至打架):
28
+ * - 自己包一层 antd ConfigProvider 做全局主题、切 darkAlgorithm -> ConfigProvider
29
+ * - hexToRgba -> styles/tokens 的 withAlpha
30
+ * - 自存一份主题色(原来固定是青色) -> antd useToken 里当前生效的 colorPrimary
31
+ * - matchMedia 监听系统深色 -> useIsDark
32
+ * - borderRadius / colorBorder / Table / Card / Button / Input 等成套 token 覆盖 -> toAntdTheme
33
+ * - 在包裹元素上内联重定义 --cf-*:那会盖掉 tokens.scss 生成的值,属于主动帮倒忙
34
+ */
35
+ const Theme: React.FC<ThemeProps> = observer((props) => {
36
+ const { children, navDarkColors } = props;
37
+ const { isDark } = ThemeStore;
38
+
39
+ const t = isDark ? darkTokens : lightTokens;
40
+
41
+ // 主色取**当前生效**的那个,而不是自己再存一份 —— 消费方在 ConfigProvider 上换了
42
+ // primaryColor,导航的选中态要跟着换,否则菜单会是一个和全站无关的颜色。
43
+ const { token } = antdTheme.useToken();
44
+ const primaryColor = token.colorPrimary;
45
+
46
+ // 写 data-theme:CSS 变量与 useIsDark 都看它。
47
+ useEffect(() => {
48
+ document.documentElement.dataset.theme = isDark ? "dark" : "light";
49
+ }, [isDark]);
50
+
51
+ const themeConfig = useMemo(
52
+ () => ({
53
+ components: {
54
+ Layout: {
55
+ headerBg: t.surface,
56
+ siderBg: t.surface,
57
+ },
58
+ Menu: {
59
+ // 背景透明,好让导航的渐变透出来;选中态是一颗圆角胶囊
60
+ darkItemBg: "transparent",
61
+ darkSubMenuItemBg: "transparent",
62
+ darkPopupBg: t.surface,
63
+ darkItemColor: "rgba(255, 255, 255, 0.82)",
64
+ darkItemHoverColor: "#ffffff",
65
+ darkItemHoverBg: "rgba(255, 255, 255, 0.14)",
66
+ darkItemSelectedBg: withAlpha(primaryColor, 0.16),
67
+ darkItemSelectedColor: primaryColor,
68
+ itemSelectedBg: withAlpha(primaryColor, 0.12),
69
+ itemSelectedColor: primaryColor,
70
+ itemActiveBg: withAlpha(primaryColor, 0.12),
71
+ itemHoverBg: isDark
72
+ ? "rgba(255, 255, 255, 0.06)"
73
+ : "rgba(0, 0, 0, 0.04)",
74
+ itemColor: t.foreground,
75
+ itemBorderRadius: 6,
76
+ itemMarginInline: 8,
77
+ itemMarginBlock: 2,
78
+ itemHeight: 38,
79
+ horizontalItemHoverBg: "#0000000a",
80
+ },
81
+ },
82
+ }),
83
+ [isDark, primaryColor, t]
84
+ );
85
+
86
+ return (
87
+ <AntdConfigProvider theme={themeConfig}>
88
+ <div
89
+ className={classNames(styles.theme, isDark ? "dark" : "light")}
90
+ style={
91
+ {
92
+ "--nav-dark-top": navDarkColors?.top ?? "#1f1f1f",
93
+ "--nav-dark-bottom": navDarkColors?.bottom ?? "#141414",
94
+ } as React.CSSProperties
95
+ }
96
+ >
97
+ {children}
98
+ </div>
99
+ </AntdConfigProvider>
100
+ );
101
+ });
102
+
103
+ Theme.displayName = "Theme";
104
+
105
+ export default Theme;
@@ -0,0 +1,23 @@
1
+ import { createContext, useContext, useCallback } from "react";
2
+
3
+ export const NavTabBarContent = createContext<{
4
+ dropKey?: string;
5
+ setDropKey?: (key: string) => void;
6
+ }>({});
7
+
8
+ export default function useDropTab() {
9
+ const { setDropKey } = useContext(NavTabBarContent);
10
+
11
+ const drop = useCallback(
12
+ (key: string) => {
13
+ setDropKey?.(key);
14
+
15
+ setTimeout(() => {
16
+ setDropKey?.("");
17
+ }, 0);
18
+ },
19
+ [setDropKey]
20
+ );
21
+
22
+ return drop;
23
+ }
@@ -0,0 +1,19 @@
1
+ import { createContext, useCallback, useContext } from "react";
2
+
3
+ export const ReloadContent = createContext<{
4
+ id?: string;
5
+ setId?: (id: string) => void;
6
+ }>({});
7
+
8
+ export default function useReload() {
9
+ const { setId: setReLoadId } = useContext(ReloadContent);
10
+
11
+ const onReload = useCallback(
12
+ (id: string) => {
13
+ setReLoadId?.(id);
14
+ },
15
+ [setReLoadId]
16
+ );
17
+
18
+ return onReload;
19
+ }