@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,130 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
+ import React, { useMemo } from "react";
8
+ import { Modal as AntdModal, message as antdMessage, notification as antdNotification } from "antd";
9
+ import { Fragment as _Fragment } from "react/jsx-runtime";
10
+ import { jsxs as _jsxs } from "react/jsx-runtime";
11
+ /**
12
+ * 主题化的 message / notification / modal。
13
+ *
14
+ * 问题:antd 的 `message.success()`、`Modal.confirm()` 这类是命令式静态方法,调用时不在
15
+ * React 树里,读不到 `ConfigProvider` 注入的 `theme.token` —— 换过品牌色或切到暗色之后,
16
+ * 弹出来的东西还是 antd 的默认观感,与页面割裂。antd 官方的答案是改用 hook 版本
17
+ * (`Modal.useModal()` 等)并把返回的 contextHolder 渲染进树里,但那样每个调用点都得先拿
18
+ * 到实例,命令式的写法就没了。
19
+ *
20
+ * 这里的做法:`ConfigProvider` 内部挂一个 `FeedbackHolder`,它调用那三个 hook,把拿到的
21
+ * 实例存到模块级变量,并渲染各自的 contextHolder。下面导出的同名函数只是代理,转发给
22
+ * 被捕获的实例。于是调用写法不变,输出却在树内、能读到主题。
23
+ *
24
+ * 没挂 `ConfigProvider` 时回退到 antd 的静态方法:功能照常,只是不跟随主题,
25
+ * 并在开发环境提示一次。
26
+ */
27
+
28
+ var modalInstance = null;
29
+ var messageInstance = null;
30
+ var notificationInstance = null;
31
+ var warned = false;
32
+ var warnOnce = function warnOnce(name) {
33
+ if (warned || process.env.NODE_ENV === "production") return;
34
+ warned = true;
35
+ console.warn("[@hsu-react/ui] ".concat(name, " \u5728 <ConfigProvider> \u4E4B\u5916\u88AB\u8C03\u7528\uFF0C\u5DF2\u56DE\u9000\u5230 antd \u7684\u9759\u6001\u65B9\u6CD5\u3002") + "\u529F\u80FD\u6B63\u5E38\uFF0C\u4F46\u4E0D\u4F1A\u8DDF\u968F ConfigProvider \u6CE8\u5165\u7684\u4E3B\u9898\uFF08\u54C1\u724C\u8272\u3001\u6697\u8272\u7B49\uFF09\u3002" + "\u628A\u5E94\u7528\u5305\u5728 <ConfigProvider> \u91CC\u5373\u53EF\u3002");
36
+ };
37
+
38
+ /**
39
+ * 捕获三个 hook 实例并渲染它们的 contextHolder。由 `ConfigProvider` 内部渲染,
40
+ * 消费方不需要自己挂。
41
+ */
42
+ export var FeedbackHolder = function FeedbackHolder() {
43
+ var _AntdModal$useModal = AntdModal.useModal(),
44
+ _AntdModal$useModal2 = _slicedToArray(_AntdModal$useModal, 2),
45
+ modalApi = _AntdModal$useModal2[0],
46
+ modalHolder = _AntdModal$useModal2[1];
47
+ var _antdMessage$useMessa = antdMessage.useMessage(),
48
+ _antdMessage$useMessa2 = _slicedToArray(_antdMessage$useMessa, 2),
49
+ messageApi = _antdMessage$useMessa2[0],
50
+ messageHolder = _antdMessage$useMessa2[1];
51
+ var _antdNotification$use = antdNotification.useNotification(),
52
+ _antdNotification$use2 = _slicedToArray(_antdNotification$use, 2),
53
+ notificationApi = _antdNotification$use2[0],
54
+ notificationHolder = _antdNotification$use2[1];
55
+
56
+ // 同步赋值而不是放进 useEffect:子树里如果有组件在自己的 effect 里就弹提示,
57
+ // effect 的执行顺序是自下而上的,等到这里的 effect 跑完就已经晚了。
58
+ useMemo(function () {
59
+ modalInstance = modalApi;
60
+ messageInstance = messageApi;
61
+ notificationInstance = notificationApi;
62
+ }, [modalApi, messageApi, notificationApi]);
63
+ return /*#__PURE__*/_jsxs(_Fragment, {
64
+ children: [modalHolder, messageHolder, notificationHolder]
65
+ });
66
+ };
67
+
68
+ /** 仅供测试 / 卸载时清理 */
69
+ export var resetFeedbackInstances = function resetFeedbackInstances() {
70
+ modalInstance = null;
71
+ messageInstance = null;
72
+ notificationInstance = null;
73
+ };
74
+ var proxyMessage = function proxyMessage(key) {
75
+ return function () {
76
+ var _ref;
77
+ var api = messageInstance;
78
+ if (!api) warnOnce("message");
79
+ return (_ref = api !== null && api !== void 0 ? api : antdMessage)[key].apply(_ref, arguments);
80
+ };
81
+ };
82
+ var proxyNotification = function proxyNotification(key) {
83
+ return function () {
84
+ var _ref2;
85
+ var api = notificationInstance;
86
+ if (!api) warnOnce("notification");
87
+ return (_ref2 = api !== null && api !== void 0 ? api : antdNotification)[key].apply(_ref2, arguments);
88
+ };
89
+ };
90
+ var proxyModal = function proxyModal(key) {
91
+ return function () {
92
+ var _ref3;
93
+ var api = modalInstance;
94
+ if (!api) warnOnce("Modal");
95
+ return (_ref3 = api !== null && api !== void 0 ? api : AntdModal)[key].apply(_ref3, arguments);
96
+ };
97
+ };
98
+
99
+ /**
100
+ * 与 antd 的 `message` 同名同签名,区别是输出在 React 树内,会跟随主题。
101
+ * 直接把 `import { message } from "antd"` 换成从本库引入即可。
102
+ */
103
+ export var message = {
104
+ info: proxyMessage("info"),
105
+ success: proxyMessage("success"),
106
+ error: proxyMessage("error"),
107
+ warning: proxyMessage("warning"),
108
+ loading: proxyMessage("loading"),
109
+ open: proxyMessage("open"),
110
+ destroy: proxyMessage("destroy")
111
+ };
112
+
113
+ /** 与 antd 的 `notification` 同名同签名,输出跟随主题 */
114
+ export var notification = {
115
+ success: proxyNotification("success"),
116
+ error: proxyNotification("error"),
117
+ info: proxyNotification("info"),
118
+ warning: proxyNotification("warning"),
119
+ open: proxyNotification("open"),
120
+ destroy: proxyNotification("destroy")
121
+ };
122
+
123
+ /** 与 antd 的 `Modal.confirm` 等同名同签名,输出跟随主题 */
124
+ export var modalFuncs = {
125
+ info: proxyModal("info"),
126
+ success: proxyModal("success"),
127
+ error: proxyModal("error"),
128
+ warning: proxyModal("warning"),
129
+ confirm: proxyModal("confirm")
130
+ };
@@ -1,2 +1,7 @@
1
1
  export { default as usePermissions, PermissionsContent } from "./usePermissions";
2
2
  export { default as useLabelWidth } from "./useLabelWidth";
3
+ export { default as useIsDark } from "./useIsDark";
4
+ export { default as useBreakpoint } from "./useBreakpoint";
5
+ export type { BreakpointName, BreakpointState } from "./useBreakpoint";
6
+ export { default as usePointerType } from "./usePointerType";
7
+ export type { PointerType } from "./usePointerType";
package/es/hooks/index.js CHANGED
@@ -1,2 +1,5 @@
1
1
  export { default as usePermissions, PermissionsContent } from "./usePermissions";
2
- export { default as useLabelWidth } from "./useLabelWidth";
2
+ export { default as useLabelWidth } from "./useLabelWidth";
3
+ export { default as useIsDark } from "./useIsDark";
4
+ export { default as useBreakpoint } from "./useBreakpoint";
5
+ export { default as usePointerType } from "./usePointerType";
@@ -0,0 +1,24 @@
1
+ import { breakpoints } from "../styles/tokens";
2
+ export type BreakpointName = keyof typeof breakpoints;
3
+ export interface BreakpointState {
4
+ /** 当前命中的最大断点;视口比 sm 还窄时为 `xs` */
5
+ current: BreakpointName | "xs";
6
+ /** 视口 >= 对应断点 */
7
+ up: Record<BreakpointName, boolean>;
8
+ /** 视口 < 对应断点 */
9
+ down: Record<BreakpointName, boolean>;
10
+ /** `< md`,用于「这是不是手机」这类粗判断 */
11
+ isMobile: boolean;
12
+ }
13
+ /**
14
+ * 当前视口命中的断点。
15
+ *
16
+ * 断点值与 `styles/_responsive.scss` 的 mixin 同源(都由 tokens.json 生成),所以 JS 里的判断
17
+ * 不会和 CSS 里的媒体查询错开。
18
+ *
19
+ * 能用 CSS 解决的就别用它 —— 媒体查询不需要 JS 参与、没有首屏闪烁、也不会因 SSR 拿不到
20
+ * `window` 而先渲染错一帧。只有当**结构**要变(比如小屏把表格换成卡片列表、把工具栏收进抽屉)
21
+ * 时才需要它。
22
+ */
23
+ declare const useBreakpoint: () => BreakpointState;
24
+ export default useBreakpoint;
@@ -0,0 +1,57 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
+ import { useEffect, useState } from "react";
8
+ import { breakpoints } from "../styles/tokens";
9
+ var NAMES = Object.keys(breakpoints);
10
+ var read = function read() {
11
+ var width = typeof window === "undefined" ? breakpoints.xl : window.innerWidth;
12
+ var up = {};
13
+ var down = {};
14
+ var current = "xs";
15
+ for (var _i = 0, _NAMES = NAMES; _i < _NAMES.length; _i++) {
16
+ var name = _NAMES[_i];
17
+ var hit = width >= breakpoints[name];
18
+ up[name] = hit;
19
+ down[name] = !hit;
20
+ if (hit) current = name;
21
+ }
22
+ return {
23
+ current: current,
24
+ up: up,
25
+ down: down,
26
+ isMobile: width < breakpoints.md
27
+ };
28
+ };
29
+
30
+ /**
31
+ * 当前视口命中的断点。
32
+ *
33
+ * 断点值与 `styles/_responsive.scss` 的 mixin 同源(都由 tokens.json 生成),所以 JS 里的判断
34
+ * 不会和 CSS 里的媒体查询错开。
35
+ *
36
+ * 能用 CSS 解决的就别用它 —— 媒体查询不需要 JS 参与、没有首屏闪烁、也不会因 SSR 拿不到
37
+ * `window` 而先渲染错一帧。只有当**结构**要变(比如小屏把表格换成卡片列表、把工具栏收进抽屉)
38
+ * 时才需要它。
39
+ */
40
+ var useBreakpoint = function useBreakpoint() {
41
+ var _useState = useState(read),
42
+ _useState2 = _slicedToArray(_useState, 2),
43
+ state = _useState2[0],
44
+ setState = _useState2[1];
45
+ useEffect(function () {
46
+ var update = function update() {
47
+ return setState(read());
48
+ };
49
+ update();
50
+ window.addEventListener("resize", update);
51
+ return function () {
52
+ return window.removeEventListener("resize", update);
53
+ };
54
+ }, []);
55
+ return state;
56
+ };
57
+ export default useBreakpoint;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Whether the document is currently in dark mode.
3
+ *
4
+ * The CSS variables switch on their own — they are plain CSS. antd's theme cannot: its tokens are
5
+ * computed in JS, so the algorithm has to be swapped on re-render. This hook is that bridge, and
6
+ * `ConfigProvider` uses it to pick `darkAlgorithm`.
7
+ */
8
+ declare const useIsDark: () => boolean;
9
+ export default useIsDark;
@@ -0,0 +1,64 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
+ import { useEffect, useState } from "react";
8
+
9
+ /**
10
+ * Attributes that mark the document as dark. These are the same selectors the generated
11
+ * `tokens.scss` keys off, so the CSS-variable layer and the antd theme always agree on which
12
+ * palette is active — `data-theme` is what consuming apps toggle, the `prefers-color*` pair is
13
+ * what the dumi docs site sets.
14
+ */
15
+ var DARK_ATTRS = ["data-theme", "data-prefers-color", "data-prefers-color-scheme"];
16
+ var read = function read() {
17
+ var _window$matchMedia, _window;
18
+ if (typeof document === "undefined") return false;
19
+ var root = document.documentElement;
20
+ for (var _i = 0, _DARK_ATTRS = DARK_ATTRS; _i < _DARK_ATTRS.length; _i++) {
21
+ var attr = _DARK_ATTRS[_i];
22
+ var value = root.getAttribute(attr);
23
+ if (value === "dark") return true;
24
+ if (value === "light") return false;
25
+ }
26
+ return typeof window !== "undefined" && ((_window$matchMedia = (_window = window).matchMedia) === null || _window$matchMedia === void 0 ? void 0 : _window$matchMedia.call(_window, "(prefers-color-scheme: dark)").matches);
27
+ };
28
+
29
+ /**
30
+ * Whether the document is currently in dark mode.
31
+ *
32
+ * The CSS variables switch on their own — they are plain CSS. antd's theme cannot: its tokens are
33
+ * computed in JS, so the algorithm has to be swapped on re-render. This hook is that bridge, and
34
+ * `ConfigProvider` uses it to pick `darkAlgorithm`.
35
+ */
36
+ var useIsDark = function useIsDark() {
37
+ var _useState = useState(read),
38
+ _useState2 = _slicedToArray(_useState, 2),
39
+ isDark = _useState2[0],
40
+ setIsDark = _useState2[1];
41
+ useEffect(function () {
42
+ var _window$matchMedia2, _window2, _media$addEventListen;
43
+ var update = function update() {
44
+ return setIsDark(read());
45
+ };
46
+ update();
47
+ var observer = new MutationObserver(update);
48
+ observer.observe(document.documentElement, {
49
+ attributes: true,
50
+ attributeFilter: [].concat(DARK_ATTRS)
51
+ });
52
+
53
+ // Only relevant while no explicit attribute is set, but harmless otherwise.
54
+ var media = (_window$matchMedia2 = (_window2 = window).matchMedia) === null || _window$matchMedia2 === void 0 ? void 0 : _window$matchMedia2.call(_window2, "(prefers-color-scheme: dark)");
55
+ media === null || media === void 0 || (_media$addEventListen = media.addEventListener) === null || _media$addEventListen === void 0 || _media$addEventListen.call(media, "change", update);
56
+ return function () {
57
+ var _media$removeEventLis;
58
+ observer.disconnect();
59
+ media === null || media === void 0 || (_media$removeEventLis = media.removeEventListener) === null || _media$removeEventLis === void 0 || _media$removeEventLis.call(media, "change", update);
60
+ };
61
+ }, []);
62
+ return isDark;
63
+ };
64
+ export default useIsDark;
@@ -0,0 +1,22 @@
1
+ export interface PointerType {
2
+ /** 主要输入设备是粗指针(手指、触控笔) */
3
+ isCoarse: boolean;
4
+ /** 设备具备真正的悬停能力(鼠标、触控板) */
5
+ canHover: boolean;
6
+ /** 粗指针且不能悬停 —— 通常意义上的「触屏设备」 */
7
+ isTouch: boolean;
8
+ }
9
+ /**
10
+ * 当前设备的指针能力。
11
+ *
12
+ * 刻意**不**做 UA 嗅探:二合一设备可以在触摸与鼠标之间来回切换,媒体查询会跟着变,UA 不会。
13
+ *
14
+ * 另外说明一个常见误解:不需要为了移动端把 `onClick` 换成 `onTouchStart`。触摸事件序列本来
15
+ * 就会合成 click,`onClick` 在触屏上一直是能用的;换成 touch 反而会丢掉键盘可访问性、在滚动
16
+ * 时误触发、并与合成的 click 重复触发。移动端真正要处理的是别的东西 —— 300ms 点击延迟
17
+ * (用 `touch-action: manipulation`)、点完粘住不消的 `:hover`(用 `_responsive.scss` 的
18
+ * `hover` mixin 包起来)、以及过小的点按目标。这个 hook 用于最后一类:需要按指针类型
19
+ * **改变结构或尺寸**的场合。
20
+ */
21
+ declare const usePointerType: () => PointerType;
22
+ export default usePointerType;
@@ -0,0 +1,62 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
+ import { useEffect, useState } from "react";
8
+ var QUERY_COARSE = "(pointer: coarse)";
9
+ var QUERY_HOVER = "(hover: hover)";
10
+ var read = function read() {
11
+ if (typeof window === "undefined" || !window.matchMedia) {
12
+ return {
13
+ isCoarse: false,
14
+ canHover: true,
15
+ isTouch: false
16
+ };
17
+ }
18
+ var isCoarse = window.matchMedia(QUERY_COARSE).matches;
19
+ var canHover = window.matchMedia(QUERY_HOVER).matches;
20
+ return {
21
+ isCoarse: isCoarse,
22
+ canHover: canHover,
23
+ isTouch: isCoarse && !canHover
24
+ };
25
+ };
26
+
27
+ /**
28
+ * 当前设备的指针能力。
29
+ *
30
+ * 刻意**不**做 UA 嗅探:二合一设备可以在触摸与鼠标之间来回切换,媒体查询会跟着变,UA 不会。
31
+ *
32
+ * 另外说明一个常见误解:不需要为了移动端把 `onClick` 换成 `onTouchStart`。触摸事件序列本来
33
+ * 就会合成 click,`onClick` 在触屏上一直是能用的;换成 touch 反而会丢掉键盘可访问性、在滚动
34
+ * 时误触发、并与合成的 click 重复触发。移动端真正要处理的是别的东西 —— 300ms 点击延迟
35
+ * (用 `touch-action: manipulation`)、点完粘住不消的 `:hover`(用 `_responsive.scss` 的
36
+ * `hover` mixin 包起来)、以及过小的点按目标。这个 hook 用于最后一类:需要按指针类型
37
+ * **改变结构或尺寸**的场合。
38
+ */
39
+ var usePointerType = function usePointerType() {
40
+ var _useState = useState(read),
41
+ _useState2 = _slicedToArray(_useState, 2),
42
+ state = _useState2[0],
43
+ setState = _useState2[1];
44
+ useEffect(function () {
45
+ var _coarse$addEventListe, _hover$addEventListen;
46
+ var update = function update() {
47
+ return setState(read());
48
+ };
49
+ update();
50
+ var coarse = window.matchMedia(QUERY_COARSE);
51
+ var hover = window.matchMedia(QUERY_HOVER);
52
+ (_coarse$addEventListe = coarse.addEventListener) === null || _coarse$addEventListe === void 0 || _coarse$addEventListe.call(coarse, "change", update);
53
+ (_hover$addEventListen = hover.addEventListener) === null || _hover$addEventListen === void 0 || _hover$addEventListen.call(hover, "change", update);
54
+ return function () {
55
+ var _coarse$removeEventLi, _hover$removeEventLis;
56
+ (_coarse$removeEventLi = coarse.removeEventListener) === null || _coarse$removeEventLi === void 0 || _coarse$removeEventLi.call(coarse, "change", update);
57
+ (_hover$removeEventLis = hover.removeEventListener) === null || _hover$removeEventLis === void 0 || _hover$removeEventLis.call(hover, "change", update);
58
+ };
59
+ }, []);
60
+ return state;
61
+ };
62
+ export default usePointerType;
package/es/index.d.ts CHANGED
@@ -2,16 +2,16 @@ export { default as ConfigProvider } from "./config-provider";
2
2
  export type { ConfigProviderProps } from "./config-provider";
3
3
  export { configureRequest, get, post, del, put, } from "./request";
4
4
  export type { RequestImpl, RequestConfig, ResType, ListRes, FileRes } from "./request";
5
- export { usePermissions, PermissionsContent, useLabelWidth } from "./hooks";
5
+ export { usePermissions, PermissionsContent, useLabelWidth, useIsDark, useBreakpoint, usePointerType, } from "./hooks";
6
+ export type { BreakpointName, BreakpointState, PointerType } from "./hooks";
6
7
  export { getUUID, supportsHasSelector, isLegacyHasSelectorBrowser } from "./utils";
7
- export { lightTokens, darkTokens, defaultPrimaryColor } from "./styles/tokens";
8
+ export { lightTokens, darkTokens, defaultPrimaryColor, radius, fontTokens, controlTokens, modalWidth, breakpoints, toAntdTheme, } from "./styles/tokens";
8
9
  export type { HsuThemeTokens } from "./styles/tokens";
10
+ export { message, notification } from "./feedback";
9
11
  export { default as Button } from "./components/Button";
10
12
  export * from "./components/Button";
11
13
  export { default as ChainGraph } from "./components/ChainGraph";
12
14
  export * from "./components/ChainGraph";
13
- export { default as ChakraRoot } from "./components/ChakraRoot";
14
- export * from "./components/ChakraRoot";
15
15
  export { default as Chart } from "./components/Chart";
16
16
  export * from "./components/Chart";
17
17
  export { default as Chat } from "./components/Chat";
package/es/index.js CHANGED
@@ -3,18 +3,32 @@ export { default as ConfigProvider } from "./config-provider";
3
3
  // Request injection layer
4
4
  export { configureRequest, get, post, del, put } from "./request";
5
5
  // hooks & utils
6
- export { usePermissions, PermissionsContent, useLabelWidth } from "./hooks";
6
+ export { usePermissions, PermissionsContent, useLabelWidth, useIsDark, useBreakpoint, usePointerType } from "./hooks";
7
7
  export { getUUID, supportsHasSelector, isLegacyHasSelectorBrowser } from "./utils";
8
8
 
9
- // Design tokens (TS constants for JS-side consumers such as antd themeConfig; CSS-variable version lives in es/styles/tokens.scss)
10
- export { lightTokens, darkTokens, defaultPrimaryColor } from "./styles/tokens";
9
+ // Design tokens. src/styles/tokens.json is the single source of truth: this module is its JS side
10
+ // (including toAntdTheme, which ConfigProvider feeds to antd), and es/styles/tokens.scss is the
11
+ // generated --vita-* CSS-variable side.
12
+ export { lightTokens, darkTokens, defaultPrimaryColor, radius, fontTokens, controlTokens, modalWidth, breakpoints, toAntdTheme } from "./styles/tokens";
13
+ // 主题化的命令式反馈 API。与 antd 的 message / notification 同名同签名,区别是输出落在
14
+ // ConfigProvider 内,会跟随注入的主题;把 `from "antd"` 换成 `from "@hsu-react/ui"` 即可。
15
+ export { message, notification } from "./feedback";
16
+
17
+ // 布局组件**刻意不从这里导出**。
18
+ //
19
+ // 它们依赖 react-router / react-intl,而这两个是可选 peerDependency。一旦在根入口静态
20
+ // re-export,`import { Button } from "@hsu-react/ui"` 也会让打包器去解析 react-router ——
21
+ // 没装的项目直接构建失败,"可选" 就名存实亡了。
22
+ //
23
+ // 改为子路径引入:
24
+ // import Layout from "@hsu-react/ui/es/layout";
25
+ // import type { RouteType } from "@hsu-react/ui/es/layout";
26
+
11
27
  // Components
12
28
  export { default as Button } from "./components/Button";
13
29
  export * from "./components/Button";
14
30
  export { default as ChainGraph } from "./components/ChainGraph";
15
31
  export * from "./components/ChainGraph";
16
- export { default as ChakraRoot } from "./components/ChakraRoot";
17
- export * from "./components/ChakraRoot";
18
32
  export { default as Chart } from "./components/Chart";
19
33
  export * from "./components/Chart";
20
34
  export { default as Chat } from "./components/Chat";
@@ -0,0 +1,10 @@
1
+ import React, { ReactNode } from "react";
2
+ interface BreadcrumbItemIconProps {
3
+ icon?: ReactNode;
4
+ title?: ReactNode;
5
+ }
6
+ /**
7
+ * Breadcrumb item icon and title component
8
+ */
9
+ declare const BreadcrumbItemIcon: React.FC<BreadcrumbItemIconProps>;
10
+ export default BreadcrumbItemIcon;
@@ -0,0 +1,19 @@
1
+ import React from "react";
2
+ import { Space } from "antd";
3
+ import Icon from "../../../../components/Icon";
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ import { jsxs as _jsxs } from "react/jsx-runtime";
6
+ /**
7
+ * Breadcrumb item icon and title component
8
+ */
9
+ var BreadcrumbItemIcon = function BreadcrumbItemIcon(_ref) {
10
+ var icon = _ref.icon,
11
+ title = _ref.title;
12
+ return /*#__PURE__*/_jsxs(Space, {
13
+ size: 5,
14
+ children: [typeof icon === "string" ? /*#__PURE__*/_jsx(Icon, {
15
+ icon: icon
16
+ }) : icon, title]
17
+ });
18
+ };
19
+ export default BreadcrumbItemIcon;
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import { BreadcrumbType } from "../..";
3
+ interface BreadcrumbMenuItemProps {
4
+ item: BreadcrumbType;
5
+ navigate: (path: string) => void;
6
+ }
7
+ /**
8
+ * Breadcrumb menu item component
9
+ */
10
+ declare const BreadcrumbMenuItem: React.FC<BreadcrumbMenuItemProps>;
11
+ export default BreadcrumbMenuItem;
@@ -0,0 +1,26 @@
1
+ import React from "react";
2
+ import { Space } from "antd";
3
+ import Icon from "../../../../components/Icon";
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ import { jsxs as _jsxs } from "react/jsx-runtime";
6
+ /**
7
+ * Breadcrumb menu item component
8
+ */
9
+ var BreadcrumbMenuItem = function BreadcrumbMenuItem(_ref) {
10
+ var item = _ref.item,
11
+ navigate = _ref.navigate;
12
+ var handleClick = function handleClick() {
13
+ var _item$route;
14
+ if ((!item.children || (_item$route = item.route) !== null && _item$route !== void 0 && _item$route.index) && item.path) {
15
+ navigate(item.path);
16
+ }
17
+ };
18
+ return /*#__PURE__*/_jsxs(Space, {
19
+ size: 5,
20
+ onClick: handleClick,
21
+ children: [typeof item.icon === "string" ? /*#__PURE__*/_jsx(Icon, {
22
+ icon: item.icon
23
+ }) : item.icon, item.title]
24
+ });
25
+ };
26
+ export default BreadcrumbMenuItem;
@@ -0,0 +1,5 @@
1
+ import { BreadcrumbType } from "..";
2
+ /**
3
+ * Hook that handles breadcrumb path matching
4
+ */
5
+ export declare const useBreadcrumbPath: (_routes: BreadcrumbType[]) => BreadcrumbType[];
@@ -0,0 +1,104 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
3
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
5
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
6
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
7
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
8
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
10
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
11
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
12
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
13
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
14
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
15
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
16
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
17
+ import { useEffect, useState, useContext, useMemo } from "react";
18
+ import { useLocation } from "react-router";
19
+ import { checkBreadcrumbPathMatch } from "../_utils/pathMatch";
20
+ import { NavTabBarTitleContent } from "../../_hooks/useSetTabTitle";
21
+
22
+ /**
23
+ * Hook that handles breadcrumb path matching
24
+ */
25
+ export var useBreadcrumbPath = function useBreadcrumbPath(_routes) {
26
+ var location = useLocation();
27
+ var _useContext = useContext(NavTabBarTitleContent),
28
+ tabTitles = _useContext.tabTitles;
29
+ var _useState = useState([]),
30
+ _useState2 = _slicedToArray(_useState, 2),
31
+ breadcrumb = _useState2[0],
32
+ setBreadcrumb = _useState2[1];
33
+ var pathname = useMemo(function () {
34
+ return decodeURI(location.pathname);
35
+ }, [location.pathname]);
36
+ useEffect(function () {
37
+ var _setBreadcrumb = function _setBreadcrumb(routes, parents) {
38
+ var checkPath = function checkPath(item) {
39
+ if (item.path) {
40
+ var _item$parent;
41
+ var isMatch = checkBreadcrumbPathMatch(pathname, item.path, (_item$parent = item.parent) === null || _item$parent === void 0 ? void 0 : _item$parent.path);
42
+ if (isMatch) {
43
+ // If tabTitles has a title for the current path, apply the custom title
44
+ var finalItem = tabTitles && tabTitles[pathname] !== undefined ? _objectSpread(_objectSpread({}, item), {}, {
45
+ title: tabTitles[pathname]
46
+ }) : item;
47
+ if (parents) {
48
+ return [].concat(_toConsumableArray(parents), [finalItem]);
49
+ } else {
50
+ return [finalItem];
51
+ }
52
+ }
53
+ }
54
+ return [];
55
+ };
56
+ routes === null || routes === void 0 || routes.forEach(function (item) {
57
+ if (item.children) {
58
+ var _item$route;
59
+ if ((_item$route = item.route) !== null && _item$route !== void 0 && _item$route.index) {
60
+ var _breadcrumb = checkPath(item);
61
+ if (_breadcrumb.length > 0) {
62
+ setBreadcrumb(_breadcrumb);
63
+ } else {
64
+ var _newParents = parents ? [].concat(_toConsumableArray(parents), [item]) : [item];
65
+ _setBreadcrumb(item.children, _newParents);
66
+ }
67
+ } else {
68
+ var _newParents2 = parents ? [].concat(_toConsumableArray(parents), [item]) : [item];
69
+ _setBreadcrumb(item.children, _newParents2);
70
+ }
71
+ } else {
72
+ var _breadcrumb2 = checkPath(item);
73
+ if (_breadcrumb2.length > 0) {
74
+ setBreadcrumb(_breadcrumb2);
75
+ }
76
+ }
77
+ });
78
+ };
79
+ setBreadcrumb([]);
80
+ _setBreadcrumb(_routes);
81
+ }, [_routes, pathname, tabTitles]);
82
+
83
+ // When tabTitles changes, update the title of the last breadcrumb item
84
+ useEffect(function () {
85
+ if (!pathname) return;
86
+ setBreadcrumb(function (prev) {
87
+ var _lastItem$parent;
88
+ if (prev.length === 0) return prev;
89
+ var newBreadcrumb = _toConsumableArray(prev);
90
+ var lastItem = newBreadcrumb[newBreadcrumb.length - 1];
91
+
92
+ // Check whether the current path matches the last breadcrumb item
93
+ var isPathMatch = lastItem.path === pathname || lastItem.path && checkBreadcrumbPathMatch(pathname, lastItem.path, (_lastItem$parent = lastItem.parent) === null || _lastItem$parent === void 0 ? void 0 : _lastItem$parent.path);
94
+ if (isPathMatch && tabTitles && tabTitles[pathname] !== undefined) {
95
+ // If tabTitles has a title for the current path, update it
96
+ newBreadcrumb[newBreadcrumb.length - 1] = _objectSpread(_objectSpread({}, lastItem), {}, {
97
+ title: tabTitles[pathname]
98
+ });
99
+ }
100
+ return newBreadcrumb;
101
+ });
102
+ }, [tabTitles, pathname]);
103
+ return breadcrumb;
104
+ };