@broxus/react-uikit 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (599) hide show
  1. package/LICENSE +154 -167
  2. package/dist/cjs/components/Accordion/Accordion.d.ts +3 -2
  3. package/dist/cjs/components/Accordion/Accordion.js +8 -5
  4. package/dist/cjs/components/Accordion/Item.d.ts +3 -6
  5. package/dist/cjs/components/Accordion/Item.js +4 -5
  6. package/dist/cjs/components/Accordion/index.d.ts +6 -5
  7. package/dist/cjs/components/Accordion/index.js +2 -2
  8. package/dist/cjs/components/Alert/index.d.ts +3 -3
  9. package/dist/cjs/components/Alert/index.js +17 -10
  10. package/dist/cjs/components/Align/Align.d.ts +5 -7
  11. package/dist/cjs/components/Align/Align.js +9 -6
  12. package/dist/cjs/components/Align/Left.d.ts +3 -5
  13. package/dist/cjs/components/Align/Left.js +3 -6
  14. package/dist/cjs/components/Align/Right.d.ts +3 -5
  15. package/dist/cjs/components/Align/Right.js +3 -6
  16. package/dist/cjs/components/Align/index.d.ts +8 -7
  17. package/dist/cjs/components/Align/index.js +3 -3
  18. package/dist/cjs/components/Article/Article.d.ts +1 -1
  19. package/dist/cjs/components/Article/Article.js +9 -4
  20. package/dist/cjs/components/Article/Meta.d.ts +4 -9
  21. package/dist/cjs/components/Article/Meta.js +8 -6
  22. package/dist/cjs/components/Article/Title.d.ts +4 -9
  23. package/dist/cjs/components/Article/Title.js +8 -6
  24. package/dist/cjs/components/Article/index.d.ts +7 -9
  25. package/dist/cjs/components/Article/index.js +3 -3
  26. package/dist/cjs/components/Badge/index.d.ts +4 -6
  27. package/dist/cjs/components/Badge/index.js +7 -4
  28. package/dist/cjs/components/Breadcrumb/Breadcrumb.d.ts +1 -1
  29. package/dist/cjs/components/Breadcrumb/Breadcrumb.js +7 -4
  30. package/dist/cjs/components/Breadcrumb/Item.d.ts +1 -4
  31. package/dist/cjs/components/Breadcrumb/Item.js +3 -4
  32. package/dist/cjs/components/Breadcrumb/index.d.ts +5 -5
  33. package/dist/cjs/components/Breadcrumb/index.js +2 -2
  34. package/dist/cjs/components/Button/Button.d.ts +1 -1
  35. package/dist/cjs/components/Button/Button.js +16 -14
  36. package/dist/cjs/components/Button/Group.d.ts +1 -4
  37. package/dist/cjs/components/Button/Group.js +6 -6
  38. package/dist/cjs/components/Button/index.d.ts +5 -5
  39. package/dist/cjs/components/Button/index.js +2 -2
  40. package/dist/cjs/components/Card/Badge.d.ts +3 -7
  41. package/dist/cjs/components/Card/Badge.js +10 -7
  42. package/dist/cjs/components/Card/Body.d.ts +1 -4
  43. package/dist/cjs/components/Card/Body.js +8 -6
  44. package/dist/cjs/components/Card/Card.d.ts +4 -6
  45. package/dist/cjs/components/Card/Card.js +17 -11
  46. package/dist/cjs/components/Card/Footer.d.ts +4 -9
  47. package/dist/cjs/components/Card/Footer.js +8 -6
  48. package/dist/cjs/components/Card/Header.d.ts +4 -9
  49. package/dist/cjs/components/Card/Header.js +8 -6
  50. package/dist/cjs/components/Card/Media.d.ts +1 -4
  51. package/dist/cjs/components/Card/Media.js +8 -6
  52. package/dist/cjs/components/Card/Title.d.ts +4 -9
  53. package/dist/cjs/components/Card/Title.js +9 -7
  54. package/dist/cjs/components/Card/index.d.ts +10 -10
  55. package/dist/cjs/components/Card/index.js +7 -7
  56. package/dist/cjs/components/Close/index.d.ts +3 -7
  57. package/dist/cjs/components/Close/index.js +7 -4
  58. package/dist/cjs/components/Component/index.d.ts +9 -4
  59. package/dist/cjs/components/Component/index.js +26 -2
  60. package/dist/cjs/components/ComponentProvider/index.d.ts +11 -0
  61. package/dist/cjs/components/ComponentProvider/index.js +49 -0
  62. package/dist/cjs/components/ConfrigProvider/index.d.ts +9 -7
  63. package/dist/cjs/components/ConfrigProvider/index.js +37 -7
  64. package/dist/cjs/components/Container/index.d.ts +4 -5
  65. package/dist/cjs/components/Container/index.js +12 -7
  66. package/dist/cjs/components/Control/Checkbox/Checkbox.d.ts +7 -2
  67. package/dist/cjs/components/Control/Checkbox/Checkbox.js +66 -46
  68. package/dist/cjs/components/Control/Checkbox/CheckboxGroupContext.d.ts +26 -0
  69. package/dist/cjs/components/Control/Checkbox/{Context.js → CheckboxGroupContext.js} +6 -3
  70. package/dist/cjs/components/Control/Checkbox/Group.d.ts +14 -2
  71. package/dist/cjs/components/Control/Checkbox/Group.js +31 -28
  72. package/dist/cjs/components/Control/Checkbox/index.d.ts +8 -6
  73. package/dist/cjs/components/Control/Checkbox/index.js +3 -3
  74. package/dist/cjs/components/Control/Checkbox/index.scss +7 -2
  75. package/dist/cjs/components/Control/Checkbox/types.d.ts +3 -66
  76. package/dist/cjs/components/Control/Input/Input.d.ts +2 -2
  77. package/dist/cjs/components/Control/Input/Input.js +22 -13
  78. package/dist/cjs/components/Control/Input/Number/index.d.ts +2 -2
  79. package/dist/cjs/components/Control/Input/Number/index.js +24 -19
  80. package/dist/cjs/components/Control/Input/Password/index.d.ts +2 -2
  81. package/dist/cjs/components/Control/Input/Password/index.js +39 -27
  82. package/dist/cjs/components/Control/Input/index.d.ts +7 -7
  83. package/dist/cjs/components/Control/Input/index.js +5 -5
  84. package/dist/cjs/components/Control/Input/types.d.ts +5 -5
  85. package/dist/cjs/components/Control/Input/useInput.d.ts +5 -4
  86. package/dist/cjs/components/Control/Input/useInput.js +47 -50
  87. package/dist/cjs/components/Control/Radio/Group.d.ts +7 -2
  88. package/dist/cjs/components/Control/Radio/Group.js +24 -17
  89. package/dist/cjs/components/Control/Radio/Radio.d.ts +6 -2
  90. package/dist/cjs/components/Control/Radio/Radio.js +57 -40
  91. package/dist/cjs/components/Control/Radio/RadioGroupContext.d.ts +9 -0
  92. package/dist/cjs/components/Control/Radio/{Context.js → RadioGroupContext.js} +6 -3
  93. package/dist/cjs/components/Control/Radio/index.d.ts +6 -6
  94. package/dist/cjs/components/Control/Radio/index.js +2 -17
  95. package/dist/cjs/components/Control/Radio/index.scss +1 -0
  96. package/dist/cjs/components/Control/Select/index.d.ts +8 -12
  97. package/dist/cjs/components/Control/Select/index.js +72 -49
  98. package/dist/cjs/components/Control/TextArea/index.d.ts +3 -10
  99. package/dist/cjs/components/Control/TextArea/index.js +51 -47
  100. package/dist/cjs/components/Control/TextArea/index.scss +1 -1
  101. package/dist/cjs/components/Control/index.d.ts +6 -6
  102. package/dist/cjs/components/Control/index.js +6 -6
  103. package/dist/cjs/components/Control/types.d.ts +8 -7
  104. package/dist/cjs/components/Cover/index.d.ts +2 -1
  105. package/dist/cjs/components/Cover/index.js +24 -17
  106. package/dist/cjs/components/DescriptionList/Description.d.ts +1 -6
  107. package/dist/cjs/components/DescriptionList/Description.js +2 -5
  108. package/dist/cjs/components/DescriptionList/DescriptionList.d.ts +2 -1
  109. package/dist/cjs/components/DescriptionList/DescriptionList.js +10 -5
  110. package/dist/cjs/components/DescriptionList/Term.d.ts +1 -6
  111. package/dist/cjs/components/DescriptionList/Term.js +2 -5
  112. package/dist/cjs/components/DescriptionList/index.d.ts +6 -6
  113. package/dist/cjs/components/DescriptionList/index.js +3 -3
  114. package/dist/cjs/components/Divider/index.d.ts +2 -1
  115. package/dist/cjs/components/Divider/index.js +11 -6
  116. package/dist/cjs/components/Dotnav/Dotnav.d.ts +2 -1
  117. package/dist/cjs/components/Dotnav/Dotnav.js +10 -5
  118. package/dist/cjs/components/Dotnav/Item.d.ts +1 -4
  119. package/dist/cjs/components/Dotnav/Item.js +7 -6
  120. package/dist/cjs/components/Dotnav/index.d.ts +5 -5
  121. package/dist/cjs/components/Dotnav/index.js +2 -2
  122. package/dist/cjs/components/Drawer/index.d.ts +7 -44
  123. package/dist/cjs/components/Drawer/index.js +40 -139
  124. package/dist/cjs/components/Drawer/index.scss +11 -14
  125. package/dist/cjs/components/Drop/index.d.ts +12 -4
  126. package/dist/cjs/components/Drop/index.js +38 -21
  127. package/dist/cjs/components/Drop/index.scss +0 -26
  128. package/dist/cjs/components/Dropdown/index.d.ts +3 -3
  129. package/dist/cjs/components/Dropdown/index.js +5 -2
  130. package/dist/cjs/components/Flex/index.d.ts +14 -15
  131. package/dist/cjs/components/Flex/index.js +15 -13
  132. package/dist/cjs/components/Form/Controls.d.ts +3 -4
  133. package/dist/cjs/components/Form/Controls.js +10 -6
  134. package/dist/cjs/components/Form/ControlsText.d.ts +3 -4
  135. package/dist/cjs/components/Form/ControlsText.js +10 -6
  136. package/dist/cjs/components/Form/Fieldset.d.ts +4 -4
  137. package/dist/cjs/components/Form/Fieldset.js +10 -6
  138. package/dist/cjs/components/Form/Form.d.ts +4 -5
  139. package/dist/cjs/components/Form/Form.js +11 -7
  140. package/dist/cjs/components/Form/Label.d.ts +3 -4
  141. package/dist/cjs/components/Form/Label.js +9 -6
  142. package/dist/cjs/components/Form/Legend.d.ts +3 -4
  143. package/dist/cjs/components/Form/Legend.js +8 -6
  144. package/dist/cjs/components/Form/index.d.ts +9 -9
  145. package/dist/cjs/components/Form/index.js +6 -6
  146. package/dist/cjs/components/Grid/index.d.ts +7 -8
  147. package/dist/cjs/components/Grid/index.js +13 -11
  148. package/dist/cjs/components/Heading/index.d.ts +5 -6
  149. package/dist/cjs/components/Heading/index.js +11 -6
  150. package/dist/cjs/components/Icon/Button.d.ts +3 -5
  151. package/dist/cjs/components/Icon/Button.js +3 -6
  152. package/dist/cjs/components/Icon/Icon.d.ts +4 -6
  153. package/dist/cjs/components/Icon/Icon.js +9 -9
  154. package/dist/cjs/components/Icon/Link.d.ts +3 -5
  155. package/dist/cjs/components/Icon/Link.js +3 -6
  156. package/dist/cjs/components/Icon/default-svg-props.d.ts +1 -1
  157. package/dist/cjs/components/Icon/default-svg-props.js +2 -2
  158. package/dist/cjs/components/Icon/index.d.ts +9 -9
  159. package/dist/cjs/components/Icon/index.js +5 -5
  160. package/dist/cjs/components/Iconnav/Iconnav.d.ts +1 -1
  161. package/dist/cjs/components/Iconnav/Iconnav.js +6 -6
  162. package/dist/cjs/components/Iconnav/Item.d.ts +1 -5
  163. package/dist/cjs/components/Iconnav/Item.js +4 -5
  164. package/dist/cjs/components/Iconnav/index.d.ts +5 -5
  165. package/dist/cjs/components/Iconnav/index.js +2 -2
  166. package/dist/cjs/components/Label/index.d.ts +1 -1
  167. package/dist/cjs/components/Label/index.js +7 -7
  168. package/dist/cjs/components/Label/index.scss +1 -1
  169. package/dist/cjs/components/Link/index.d.ts +3 -3
  170. package/dist/cjs/components/Link/index.js +9 -3
  171. package/dist/cjs/components/List/Item.d.ts +2 -5
  172. package/dist/cjs/components/List/Item.js +2 -5
  173. package/dist/cjs/components/List/List.d.ts +1 -1
  174. package/dist/cjs/components/List/List.js +8 -8
  175. package/dist/cjs/components/List/index.d.ts +5 -5
  176. package/dist/cjs/components/List/index.js +2 -2
  177. package/dist/cjs/components/Modal/Modal.d.ts +4 -3
  178. package/dist/cjs/components/Modal/Modal.js +19 -16
  179. package/dist/cjs/components/Modal/index.d.ts +1 -1
  180. package/dist/cjs/components/Modal/index.js +1 -1
  181. package/dist/cjs/components/Nav/Divider.d.ts +3 -8
  182. package/dist/cjs/components/Nav/Divider.js +6 -7
  183. package/dist/cjs/components/Nav/Group/InternalNavItemGroup.d.ts +11 -0
  184. package/dist/cjs/components/Nav/Group/InternalNavItemGroup.js +42 -0
  185. package/dist/cjs/components/Nav/Group/index.d.ts +3 -0
  186. package/dist/cjs/components/Nav/{Group.js → Group/index.js} +10 -19
  187. package/dist/cjs/components/Nav/Header.d.ts +1 -1
  188. package/dist/cjs/components/Nav/Header.js +2 -2
  189. package/dist/cjs/components/Nav/Item/InternalNavItem.d.ts +16 -2
  190. package/dist/cjs/components/Nav/Item/InternalNavItem.js +54 -35
  191. package/dist/cjs/components/Nav/Item/LegacyNavItem.js +1 -1
  192. package/dist/cjs/components/Nav/Item/index.d.ts +2 -28
  193. package/dist/cjs/components/Nav/Item/index.js +6 -7
  194. package/dist/cjs/components/Nav/Nav.d.ts +23 -5
  195. package/dist/cjs/components/Nav/Nav.js +165 -123
  196. package/dist/cjs/components/Nav/Sub/InlineSubNavList.js +3 -3
  197. package/dist/cjs/components/Nav/Sub/PopupTrigger.d.ts +6 -6
  198. package/dist/cjs/components/Nav/Sub/PopupTrigger.js +21 -14
  199. package/dist/cjs/components/Nav/Sub/SubNavList.d.ts +1 -1
  200. package/dist/cjs/components/Nav/Sub/SubNavList.js +5 -3
  201. package/dist/cjs/components/Nav/Sub/index.d.ts +3 -19
  202. package/dist/cjs/components/Nav/Sub/index.js +58 -41
  203. package/dist/cjs/components/Nav/context/IdContext.js +3 -0
  204. package/dist/cjs/components/Nav/context/NavContext.d.ts +5 -4
  205. package/dist/cjs/components/Nav/context/NavContext.js +9 -3
  206. package/dist/cjs/components/Nav/context/PathContext.js +5 -0
  207. package/dist/cjs/components/Nav/context/PrivateContext.d.ts +7 -0
  208. package/dist/cjs/components/{Component/Component.js → Nav/context/PrivateContext.js} +2 -3
  209. package/dist/cjs/components/Nav/hooks/useAccessibility.d.ts +2 -2
  210. package/dist/cjs/components/Nav/hooks/useAccessibility.js +4 -3
  211. package/dist/cjs/components/Nav/hooks/useActive.d.ts +2 -2
  212. package/dist/cjs/components/Nav/hooks/useActive.js +6 -5
  213. package/dist/cjs/components/Nav/hooks/useDirectionStyle.d.ts +2 -0
  214. package/dist/cjs/components/Nav/hooks/useDirectionStyle.js +37 -0
  215. package/dist/cjs/components/Nav/hooks/useKeyRecords.d.ts +3 -3
  216. package/dist/cjs/components/Nav/hooks/useKeyRecords.js +14 -14
  217. package/dist/cjs/components/Nav/hooks/useMemoCallback.d.ts +1 -1
  218. package/dist/cjs/components/Nav/hooks/useMemoCallback.js +3 -1
  219. package/dist/cjs/components/Nav/hooks/useUUID.d.ts +1 -1
  220. package/dist/cjs/components/Nav/hooks/useUUID.js +3 -2
  221. package/dist/cjs/components/Nav/index.d.ts +9 -9
  222. package/dist/cjs/components/Nav/index.js +6 -6
  223. package/dist/cjs/components/Nav/index.scss +10 -7
  224. package/dist/cjs/components/Nav/types.d.ts +58 -10
  225. package/dist/cjs/components/Nav/utils/alignUtil.d.ts +1 -1
  226. package/dist/cjs/components/Nav/utils/motionUtil.d.ts +1 -1
  227. package/dist/cjs/components/Nav/utils/nodeUtil.d.ts +3 -1
  228. package/dist/cjs/components/Nav/utils/nodeUtil.js +38 -1
  229. package/dist/cjs/components/Nav/utils/warnUtil.d.ts +1 -1
  230. package/dist/cjs/components/Navbar/Center.d.ts +5 -7
  231. package/dist/cjs/components/Navbar/Center.js +8 -6
  232. package/dist/cjs/components/Navbar/Container.d.ts +4 -8
  233. package/dist/cjs/components/Navbar/Container.js +9 -7
  234. package/dist/cjs/components/Navbar/Item.d.ts +5 -8
  235. package/dist/cjs/components/Navbar/Item.js +8 -6
  236. package/dist/cjs/components/Navbar/Left.d.ts +5 -7
  237. package/dist/cjs/components/Navbar/Left.js +8 -6
  238. package/dist/cjs/components/Navbar/Nav.d.ts +2 -1
  239. package/dist/cjs/components/Navbar/Nav.js +5 -2
  240. package/dist/cjs/components/Navbar/Right.d.ts +3 -3
  241. package/dist/cjs/components/Navbar/Toggle.d.ts +5 -4
  242. package/dist/cjs/components/Navbar/index.d.ts +11 -11
  243. package/dist/cjs/components/Navbar/index.js +8 -8
  244. package/dist/cjs/components/Progress/index.d.ts +6 -0
  245. package/dist/cjs/components/Progress/index.js +39 -0
  246. package/dist/cjs/components/Progress/index.scss +129 -0
  247. package/dist/cjs/components/Section/index.d.ts +4 -6
  248. package/dist/cjs/components/Section/index.js +10 -8
  249. package/dist/cjs/components/Spinner/index.d.ts +3 -3
  250. package/dist/cjs/components/Spinner/index.js +7 -5
  251. package/dist/cjs/components/Tabs/index.d.ts +7 -11
  252. package/dist/cjs/components/Tabs/index.js +17 -18
  253. package/dist/cjs/components/Tabs/index.scss +9 -1
  254. package/dist/cjs/components/Text/index.d.ts +7 -8
  255. package/dist/cjs/components/Text/index.js +22 -20
  256. package/dist/cjs/components/Tile/index.d.ts +5 -6
  257. package/dist/cjs/components/Tile/index.js +10 -8
  258. package/dist/cjs/components/Tile/index.scss +8 -8
  259. package/dist/cjs/components/Width/Width.d.ts +5 -6
  260. package/dist/cjs/components/Width/Width.js +12 -6
  261. package/dist/cjs/components/Width/index.d.ts +3 -3
  262. package/dist/cjs/components/Width/index.js +3 -3
  263. package/dist/cjs/components/Width/types.d.ts +6 -6
  264. package/dist/cjs/components/Width/utils.d.ts +1 -1
  265. package/dist/cjs/components/Width/utils.js +3 -1
  266. package/dist/cjs/hooks/index.d.ts +3 -0
  267. package/dist/cjs/{utils/hooks → hooks}/index.js +3 -1
  268. package/dist/cjs/hooks/useContext.d.ts +2 -0
  269. package/dist/cjs/hooks/useContext.js +35 -0
  270. package/dist/cjs/hooks/useMounted.d.ts +1 -0
  271. package/dist/cjs/hooks/useMounted.js +38 -0
  272. package/dist/cjs/index.d.ts +33 -30
  273. package/dist/cjs/index.js +33 -30
  274. package/dist/cjs/styles/_import.components.scss +1 -2
  275. package/dist/cjs/styles/_import.scss +1 -2
  276. package/dist/cjs/styles/animation.scss +35 -35
  277. package/dist/cjs/styles/column.scss +0 -1
  278. package/dist/cjs/styles/mixins.scss +30 -8
  279. package/dist/cjs/styles/motion.scss +367 -44
  280. package/dist/cjs/styles/progress.scss +1 -129
  281. package/dist/cjs/styles/variables.scss +6 -4
  282. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  283. package/dist/cjs/types.d.ts +15 -3
  284. package/dist/cjs/utils/get-breakpoints-config-classes.d.ts +1 -1
  285. package/dist/cjs/utils/index.d.ts +3 -4
  286. package/dist/cjs/utils/index.js +3 -4
  287. package/dist/cjs/utils/motion.d.ts +3 -3
  288. package/dist/cjs/utils/motion.js +23 -21
  289. package/dist/esm/components/Accordion/Accordion.d.ts +3 -2
  290. package/dist/esm/components/Accordion/Accordion.js +8 -4
  291. package/dist/esm/components/Accordion/Item.d.ts +3 -6
  292. package/dist/esm/components/Accordion/Item.js +3 -3
  293. package/dist/esm/components/Accordion/index.d.ts +6 -5
  294. package/dist/esm/components/Accordion/index.js +2 -2
  295. package/dist/esm/components/Alert/index.d.ts +3 -3
  296. package/dist/esm/components/Alert/index.js +17 -10
  297. package/dist/esm/components/Align/Align.d.ts +5 -7
  298. package/dist/esm/components/Align/Align.js +9 -5
  299. package/dist/esm/components/Align/Left.d.ts +3 -5
  300. package/dist/esm/components/Align/Left.js +2 -4
  301. package/dist/esm/components/Align/Right.d.ts +3 -5
  302. package/dist/esm/components/Align/Right.js +2 -4
  303. package/dist/esm/components/Align/index.d.ts +8 -7
  304. package/dist/esm/components/Align/index.js +3 -3
  305. package/dist/esm/components/Article/Article.d.ts +1 -1
  306. package/dist/esm/components/Article/Article.js +9 -3
  307. package/dist/esm/components/Article/Meta.d.ts +4 -9
  308. package/dist/esm/components/Article/Meta.js +7 -4
  309. package/dist/esm/components/Article/Title.d.ts +4 -9
  310. package/dist/esm/components/Article/Title.js +7 -4
  311. package/dist/esm/components/Article/index.d.ts +7 -9
  312. package/dist/esm/components/Article/index.js +3 -3
  313. package/dist/esm/components/Badge/index.d.ts +4 -6
  314. package/dist/esm/components/Badge/index.js +7 -3
  315. package/dist/esm/components/Breadcrumb/Breadcrumb.d.ts +1 -1
  316. package/dist/esm/components/Breadcrumb/Breadcrumb.js +7 -3
  317. package/dist/esm/components/Breadcrumb/Item.d.ts +1 -4
  318. package/dist/esm/components/Breadcrumb/Item.js +2 -2
  319. package/dist/esm/components/Breadcrumb/index.d.ts +5 -5
  320. package/dist/esm/components/Breadcrumb/index.js +3 -3
  321. package/dist/esm/components/Button/Button.d.ts +1 -1
  322. package/dist/esm/components/Button/Button.js +16 -14
  323. package/dist/esm/components/Button/Group.d.ts +1 -4
  324. package/dist/esm/components/Button/Group.js +5 -4
  325. package/dist/esm/components/Button/index.d.ts +5 -5
  326. package/dist/esm/components/Button/index.js +2 -2
  327. package/dist/esm/components/Card/Badge.d.ts +3 -7
  328. package/dist/esm/components/Card/Badge.js +9 -5
  329. package/dist/esm/components/Card/Body.d.ts +1 -4
  330. package/dist/esm/components/Card/Body.js +7 -4
  331. package/dist/esm/components/Card/Card.d.ts +4 -6
  332. package/dist/esm/components/Card/Card.js +17 -10
  333. package/dist/esm/components/Card/Footer.d.ts +4 -9
  334. package/dist/esm/components/Card/Footer.js +7 -4
  335. package/dist/esm/components/Card/Header.d.ts +4 -9
  336. package/dist/esm/components/Card/Header.js +7 -4
  337. package/dist/esm/components/Card/Media.d.ts +1 -4
  338. package/dist/esm/components/Card/Media.js +7 -4
  339. package/dist/esm/components/Card/Title.d.ts +4 -9
  340. package/dist/esm/components/Card/Title.js +8 -5
  341. package/dist/esm/components/Card/index.d.ts +10 -10
  342. package/dist/esm/components/Card/index.js +7 -7
  343. package/dist/esm/components/Close/index.d.ts +3 -7
  344. package/dist/esm/components/Close/index.js +7 -3
  345. package/dist/esm/components/Component/index.d.ts +9 -4
  346. package/dist/esm/components/Component/index.js +3 -1
  347. package/dist/esm/components/ComponentProvider/index.d.ts +11 -0
  348. package/dist/esm/components/ComponentProvider/index.js +21 -0
  349. package/dist/esm/components/ConfrigProvider/index.d.ts +9 -7
  350. package/dist/esm/components/ConfrigProvider/index.js +37 -7
  351. package/dist/esm/components/Container/index.d.ts +4 -5
  352. package/dist/esm/components/Container/index.js +12 -6
  353. package/dist/esm/components/Control/Checkbox/Checkbox.d.ts +7 -2
  354. package/dist/esm/components/Control/Checkbox/Checkbox.js +65 -45
  355. package/dist/esm/components/Control/Checkbox/CheckboxGroupContext.d.ts +26 -0
  356. package/dist/esm/components/Control/Checkbox/CheckboxGroupContext.js +8 -0
  357. package/dist/esm/components/Control/Checkbox/Group.d.ts +14 -2
  358. package/dist/esm/components/Control/Checkbox/Group.js +31 -28
  359. package/dist/esm/components/Control/Checkbox/index.d.ts +8 -6
  360. package/dist/esm/components/Control/Checkbox/index.js +3 -3
  361. package/dist/esm/components/Control/Checkbox/index.scss +7 -2
  362. package/dist/esm/components/Control/Checkbox/types.d.ts +3 -66
  363. package/dist/esm/components/Control/Input/Input.d.ts +2 -2
  364. package/dist/esm/components/Control/Input/Input.js +22 -13
  365. package/dist/esm/components/Control/Input/Number/index.d.ts +2 -2
  366. package/dist/esm/components/Control/Input/Number/index.js +24 -19
  367. package/dist/esm/components/Control/Input/Password/index.d.ts +2 -2
  368. package/dist/esm/components/Control/Input/Password/index.js +39 -27
  369. package/dist/esm/components/Control/Input/index.d.ts +7 -7
  370. package/dist/esm/components/Control/Input/index.js +5 -5
  371. package/dist/esm/components/Control/Input/types.d.ts +5 -5
  372. package/dist/esm/components/Control/Input/useInput.d.ts +5 -4
  373. package/dist/esm/components/Control/Input/useInput.js +47 -50
  374. package/dist/esm/components/Control/Radio/Group.d.ts +7 -2
  375. package/dist/esm/components/Control/Radio/Group.js +24 -17
  376. package/dist/esm/components/Control/Radio/Radio.d.ts +6 -2
  377. package/dist/esm/components/Control/Radio/Radio.js +56 -39
  378. package/dist/esm/components/Control/Radio/RadioGroupContext.d.ts +9 -0
  379. package/dist/esm/components/Control/Radio/RadioGroupContext.js +8 -0
  380. package/dist/esm/components/Control/Radio/index.d.ts +6 -6
  381. package/dist/esm/components/Control/Radio/index.js +2 -3
  382. package/dist/esm/components/Control/Radio/index.scss +1 -0
  383. package/dist/esm/components/Control/Select/index.d.ts +8 -12
  384. package/dist/esm/components/Control/Select/index.js +73 -50
  385. package/dist/esm/components/Control/TextArea/index.d.ts +3 -10
  386. package/dist/esm/components/Control/TextArea/index.js +51 -47
  387. package/dist/esm/components/Control/TextArea/index.scss +1 -1
  388. package/dist/esm/components/Control/index.d.ts +6 -6
  389. package/dist/esm/components/Control/index.js +6 -6
  390. package/dist/esm/components/Control/types.d.ts +8 -7
  391. package/dist/esm/components/Cover/index.d.ts +2 -1
  392. package/dist/esm/components/Cover/index.js +24 -16
  393. package/dist/esm/components/DescriptionList/Description.d.ts +1 -6
  394. package/dist/esm/components/DescriptionList/Description.js +1 -3
  395. package/dist/esm/components/DescriptionList/DescriptionList.d.ts +2 -1
  396. package/dist/esm/components/DescriptionList/DescriptionList.js +10 -4
  397. package/dist/esm/components/DescriptionList/Term.d.ts +1 -6
  398. package/dist/esm/components/DescriptionList/Term.js +1 -3
  399. package/dist/esm/components/DescriptionList/index.d.ts +6 -6
  400. package/dist/esm/components/DescriptionList/index.js +3 -3
  401. package/dist/esm/components/Divider/index.d.ts +2 -1
  402. package/dist/esm/components/Divider/index.js +11 -5
  403. package/dist/esm/components/Dotnav/Dotnav.d.ts +2 -1
  404. package/dist/esm/components/Dotnav/Dotnav.js +10 -4
  405. package/dist/esm/components/Dotnav/Item.d.ts +1 -4
  406. package/dist/esm/components/Dotnav/Item.js +6 -4
  407. package/dist/esm/components/Dotnav/index.d.ts +5 -5
  408. package/dist/esm/components/Dotnav/index.js +2 -2
  409. package/dist/esm/components/Drawer/index.d.ts +7 -44
  410. package/dist/esm/components/Drawer/index.js +42 -141
  411. package/dist/esm/components/Drawer/index.scss +11 -14
  412. package/dist/esm/components/Drop/index.d.ts +12 -4
  413. package/dist/esm/components/Drop/index.js +38 -21
  414. package/dist/esm/components/Drop/index.scss +0 -26
  415. package/dist/esm/components/Dropdown/index.d.ts +3 -3
  416. package/dist/esm/components/Dropdown/index.js +5 -2
  417. package/dist/esm/components/Flex/index.d.ts +14 -15
  418. package/dist/esm/components/Flex/index.js +15 -12
  419. package/dist/esm/components/Form/Controls.d.ts +3 -4
  420. package/dist/esm/components/Form/Controls.js +9 -4
  421. package/dist/esm/components/Form/ControlsText.d.ts +3 -4
  422. package/dist/esm/components/Form/ControlsText.js +9 -4
  423. package/dist/esm/components/Form/Fieldset.d.ts +4 -4
  424. package/dist/esm/components/Form/Fieldset.js +9 -4
  425. package/dist/esm/components/Form/Form.d.ts +4 -5
  426. package/dist/esm/components/Form/Form.js +11 -6
  427. package/dist/esm/components/Form/Label.d.ts +3 -4
  428. package/dist/esm/components/Form/Label.js +8 -4
  429. package/dist/esm/components/Form/Legend.d.ts +3 -4
  430. package/dist/esm/components/Form/Legend.js +7 -4
  431. package/dist/esm/components/Form/index.d.ts +9 -9
  432. package/dist/esm/components/Form/index.js +6 -6
  433. package/dist/esm/components/Grid/index.d.ts +7 -8
  434. package/dist/esm/components/Grid/index.js +14 -11
  435. package/dist/esm/components/Heading/index.d.ts +5 -6
  436. package/dist/esm/components/Heading/index.js +11 -5
  437. package/dist/esm/components/Icon/Button.d.ts +3 -5
  438. package/dist/esm/components/Icon/Button.js +2 -4
  439. package/dist/esm/components/Icon/Icon.d.ts +4 -6
  440. package/dist/esm/components/Icon/Icon.js +9 -8
  441. package/dist/esm/components/Icon/Link.d.ts +3 -5
  442. package/dist/esm/components/Icon/Link.js +2 -4
  443. package/dist/esm/components/Icon/default-svg-props.d.ts +1 -1
  444. package/dist/esm/components/Icon/default-svg-props.js +1 -1
  445. package/dist/esm/components/Icon/index.d.ts +9 -9
  446. package/dist/esm/components/Icon/index.js +5 -5
  447. package/dist/esm/components/Iconnav/Iconnav.d.ts +1 -1
  448. package/dist/esm/components/Iconnav/Iconnav.js +6 -5
  449. package/dist/esm/components/Iconnav/Item.d.ts +1 -5
  450. package/dist/esm/components/Iconnav/Item.js +3 -3
  451. package/dist/esm/components/Iconnav/index.d.ts +5 -5
  452. package/dist/esm/components/Iconnav/index.js +2 -2
  453. package/dist/esm/components/Label/index.d.ts +1 -1
  454. package/dist/esm/components/Label/index.js +7 -6
  455. package/dist/esm/components/Label/index.scss +1 -1
  456. package/dist/esm/components/Link/index.d.ts +3 -3
  457. package/dist/esm/components/Link/index.js +9 -3
  458. package/dist/esm/components/List/Item.d.ts +2 -5
  459. package/dist/esm/components/List/Item.js +1 -3
  460. package/dist/esm/components/List/List.d.ts +1 -1
  461. package/dist/esm/components/List/List.js +8 -7
  462. package/dist/esm/components/List/index.d.ts +5 -5
  463. package/dist/esm/components/List/index.js +2 -2
  464. package/dist/esm/components/Modal/Modal.d.ts +4 -3
  465. package/dist/esm/components/Modal/Modal.js +19 -15
  466. package/dist/esm/components/Modal/index.d.ts +1 -1
  467. package/dist/esm/components/Modal/index.js +1 -1
  468. package/dist/esm/components/Nav/Divider.d.ts +3 -8
  469. package/dist/esm/components/Nav/Divider.js +5 -5
  470. package/dist/esm/components/Nav/Group/InternalNavItemGroup.d.ts +11 -0
  471. package/dist/esm/components/Nav/Group/InternalNavItemGroup.js +13 -0
  472. package/dist/esm/components/Nav/Group/index.d.ts +3 -0
  473. package/dist/esm/components/Nav/Group/index.js +18 -0
  474. package/dist/esm/components/Nav/Header.d.ts +1 -1
  475. package/dist/esm/components/Nav/Header.js +2 -2
  476. package/dist/esm/components/Nav/Item/InternalNavItem.d.ts +16 -2
  477. package/dist/esm/components/Nav/Item/InternalNavItem.js +54 -34
  478. package/dist/esm/components/Nav/Item/LegacyNavItem.js +1 -1
  479. package/dist/esm/components/Nav/Item/index.d.ts +2 -28
  480. package/dist/esm/components/Nav/Item/index.js +5 -5
  481. package/dist/esm/components/Nav/Nav.d.ts +23 -5
  482. package/dist/esm/components/Nav/Nav.js +161 -118
  483. package/dist/esm/components/Nav/Sub/InlineSubNavList.js +3 -3
  484. package/dist/esm/components/Nav/Sub/PopupTrigger.d.ts +6 -6
  485. package/dist/esm/components/Nav/Sub/PopupTrigger.js +21 -13
  486. package/dist/esm/components/Nav/Sub/SubNavList.d.ts +1 -1
  487. package/dist/esm/components/Nav/Sub/SubNavList.js +5 -3
  488. package/dist/esm/components/Nav/Sub/index.d.ts +3 -19
  489. package/dist/esm/components/Nav/Sub/index.js +55 -37
  490. package/dist/esm/components/Nav/context/IdContext.js +3 -0
  491. package/dist/esm/components/Nav/context/NavContext.d.ts +5 -4
  492. package/dist/esm/components/Nav/context/NavContext.js +9 -3
  493. package/dist/esm/components/Nav/context/PathContext.js +5 -0
  494. package/dist/esm/components/Nav/context/PrivateContext.d.ts +7 -0
  495. package/dist/esm/components/Nav/context/PrivateContext.js +2 -0
  496. package/dist/esm/components/Nav/hooks/useAccessibility.d.ts +2 -2
  497. package/dist/esm/components/Nav/hooks/useAccessibility.js +3 -3
  498. package/dist/esm/components/Nav/hooks/useActive.d.ts +2 -2
  499. package/dist/esm/components/Nav/hooks/useActive.js +5 -5
  500. package/dist/esm/components/Nav/hooks/useDirectionStyle.d.ts +2 -0
  501. package/dist/esm/components/Nav/hooks/useDirectionStyle.js +10 -0
  502. package/dist/esm/components/Nav/hooks/useKeyRecords.d.ts +3 -3
  503. package/dist/esm/components/Nav/hooks/useKeyRecords.js +13 -13
  504. package/dist/esm/components/Nav/hooks/useMemoCallback.d.ts +1 -1
  505. package/dist/esm/components/Nav/hooks/useMemoCallback.js +2 -1
  506. package/dist/esm/components/Nav/hooks/useUUID.d.ts +1 -1
  507. package/dist/esm/components/Nav/hooks/useUUID.js +2 -2
  508. package/dist/esm/components/Nav/index.d.ts +9 -9
  509. package/dist/esm/components/Nav/index.js +6 -6
  510. package/dist/esm/components/Nav/index.scss +10 -7
  511. package/dist/esm/components/Nav/types.d.ts +58 -10
  512. package/dist/esm/components/Nav/utils/alignUtil.d.ts +1 -1
  513. package/dist/esm/components/Nav/utils/motionUtil.d.ts +1 -1
  514. package/dist/esm/components/Nav/utils/nodeUtil.d.ts +3 -1
  515. package/dist/esm/components/Nav/utils/nodeUtil.js +36 -0
  516. package/dist/esm/components/Nav/utils/warnUtil.d.ts +1 -1
  517. package/dist/esm/components/Navbar/Center.d.ts +5 -7
  518. package/dist/esm/components/Navbar/Center.js +7 -4
  519. package/dist/esm/components/Navbar/Container.d.ts +4 -8
  520. package/dist/esm/components/Navbar/Container.js +8 -5
  521. package/dist/esm/components/Navbar/Item.d.ts +5 -8
  522. package/dist/esm/components/Navbar/Item.js +7 -4
  523. package/dist/esm/components/Navbar/Left.d.ts +5 -7
  524. package/dist/esm/components/Navbar/Left.js +7 -4
  525. package/dist/esm/components/Navbar/Nav.d.ts +2 -1
  526. package/dist/esm/components/Navbar/Nav.js +5 -2
  527. package/dist/esm/components/Navbar/Right.d.ts +3 -3
  528. package/dist/esm/components/Navbar/Toggle.d.ts +5 -4
  529. package/dist/esm/components/Navbar/index.d.ts +11 -11
  530. package/dist/esm/components/Navbar/index.js +8 -8
  531. package/dist/esm/components/Progress/index.d.ts +6 -0
  532. package/dist/esm/components/Progress/index.js +10 -0
  533. package/dist/esm/components/Progress/index.scss +129 -0
  534. package/dist/esm/components/Section/index.d.ts +4 -6
  535. package/dist/esm/components/Section/index.js +10 -7
  536. package/dist/esm/components/Spinner/index.d.ts +3 -3
  537. package/dist/esm/components/Spinner/index.js +8 -6
  538. package/dist/esm/components/Tabs/index.d.ts +7 -11
  539. package/dist/esm/components/Tabs/index.js +17 -17
  540. package/dist/esm/components/Tabs/index.scss +9 -1
  541. package/dist/esm/components/Text/index.d.ts +7 -8
  542. package/dist/esm/components/Text/index.js +22 -19
  543. package/dist/esm/components/Tile/index.d.ts +5 -6
  544. package/dist/esm/components/Tile/index.js +10 -7
  545. package/dist/esm/components/Tile/index.scss +8 -8
  546. package/dist/esm/components/Width/Width.d.ts +5 -6
  547. package/dist/esm/components/Width/Width.js +12 -5
  548. package/dist/esm/components/Width/index.d.ts +3 -3
  549. package/dist/esm/components/Width/index.js +3 -3
  550. package/dist/esm/components/Width/types.d.ts +6 -6
  551. package/dist/esm/components/Width/utils.d.ts +1 -1
  552. package/dist/esm/components/Width/utils.js +3 -1
  553. package/dist/esm/hooks/index.d.ts +3 -0
  554. package/dist/esm/hooks/index.js +3 -0
  555. package/dist/esm/hooks/useContext.d.ts +2 -0
  556. package/dist/esm/hooks/useContext.js +8 -0
  557. package/dist/esm/hooks/useMounted.d.ts +1 -0
  558. package/dist/esm/hooks/useMounted.js +11 -0
  559. package/dist/esm/index.d.ts +33 -30
  560. package/dist/esm/index.js +33 -30
  561. package/dist/esm/styles/_import.components.scss +1 -2
  562. package/dist/esm/styles/_import.scss +1 -2
  563. package/dist/esm/styles/animation.scss +35 -35
  564. package/dist/esm/styles/column.scss +0 -1
  565. package/dist/esm/styles/mixins.scss +30 -8
  566. package/dist/esm/styles/motion.scss +367 -44
  567. package/dist/esm/styles/progress.scss +1 -129
  568. package/dist/esm/styles/variables.scss +6 -4
  569. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
  570. package/dist/esm/types.d.ts +15 -3
  571. package/dist/esm/utils/get-breakpoints-config-classes.d.ts +1 -1
  572. package/dist/esm/utils/index.d.ts +3 -4
  573. package/dist/esm/utils/index.js +3 -4
  574. package/dist/esm/utils/motion.d.ts +3 -3
  575. package/dist/esm/utils/motion.js +20 -19
  576. package/package.json +36 -34
  577. package/dist/cjs/components/Component/Component.d.ts +0 -8
  578. package/dist/cjs/components/Control/Checkbox/Context.d.ts +0 -4
  579. package/dist/cjs/components/Control/Radio/Context.d.ts +0 -4
  580. package/dist/cjs/components/Control/Radio/types.d.ts +0 -25
  581. package/dist/cjs/components/Control/Radio/types.js +0 -2
  582. package/dist/cjs/components/Nav/Group.d.ts +0 -14
  583. package/dist/cjs/utils/hooks/index.d.ts +0 -1
  584. package/dist/esm/components/Component/Component.d.ts +0 -8
  585. package/dist/esm/components/Component/Component.js +0 -3
  586. package/dist/esm/components/Control/Checkbox/Context.d.ts +0 -4
  587. package/dist/esm/components/Control/Checkbox/Context.js +0 -5
  588. package/dist/esm/components/Control/Radio/Context.d.ts +0 -4
  589. package/dist/esm/components/Control/Radio/Context.js +0 -5
  590. package/dist/esm/components/Control/Radio/types.d.ts +0 -25
  591. package/dist/esm/components/Control/Radio/types.js +0 -1
  592. package/dist/esm/components/Nav/Group.d.ts +0 -14
  593. package/dist/esm/components/Nav/Group.js +0 -26
  594. package/dist/esm/utils/hooks/index.d.ts +0 -1
  595. package/dist/esm/utils/hooks/index.js +0 -1
  596. /package/dist/cjs/{utils/hooks → hooks}/useForceUpdate.d.ts +0 -0
  597. /package/dist/cjs/{utils/hooks → hooks}/useForceUpdate.js +0 -0
  598. /package/dist/esm/{utils/hooks → hooks}/useForceUpdate.d.ts +0 -0
  599. /package/dist/esm/{utils/hooks → hooks}/useForceUpdate.js +0 -0
@@ -3,21 +3,26 @@ import { noop } from '@broxus/js-utils';
3
3
  import classNames from 'classnames';
4
4
  import Overflow from 'rc-overflow';
5
5
  import warning from 'rc-util/lib/warning';
6
- import { useNavId } from '../context/IdContext';
7
- import { NavContext, NavContextProvider } from '../context/NavContext';
8
- import { PathTrackerContext, PathUserContext, useFullPath, useMeasure, } from '../context/PathContext';
9
- import useActive from '../hooks/useActive';
10
- import useMemoCallback from '../hooks/useMemoCallback';
11
- import { InlineSubNavList } from './InlineSubNavList';
12
- import { PopupTrigger } from './PopupTrigger';
13
- import { SubNavList } from './SubNavList';
14
- import { parseChildren } from '../utils/nodeUtil';
15
- import { warnItemProp } from '../utils/warnUtil';
16
- function InternalSubNav({ children, className, eventKey, expandIcon, internalPopupClose, itemIcon, popupClassName, popupOffset, style, title, warnKey, onClick, onTitleClick, onTitleMouseEnter, onTitleMouseLeave, ...props }) {
6
+ import { useNavId } from '../../Nav/context/IdContext';
7
+ import { NavContext, NavContextProvider } from '../../Nav/context/NavContext';
8
+ import { PathTrackerContext, PathUserContext, useFullPath, useMeasure, } from '../../Nav/context/PathContext';
9
+ import { PrivateContext } from '../../Nav/context/PrivateContext';
10
+ import { useActive } from '../../Nav/hooks/useActive';
11
+ import { useDirectionStyle } from '../../Nav/hooks/useDirectionStyle';
12
+ import { useMemoCallback } from '../../Nav/hooks/useMemoCallback';
13
+ import { InlineSubNavList } from '../../Nav/Sub/InlineSubNavList';
14
+ import { PopupTrigger } from '../../Nav/Sub/PopupTrigger';
15
+ import { SubNavList } from '../../Nav/Sub/SubNavList';
16
+ import { parseChildren } from '../../Nav/utils/nodeUtil';
17
+ import { warnItemProp } from '../../Nav/utils/warnUtil';
18
+ const InternalSubNav = React.memo((props) => {
19
+ const { children, className, disabled, eventKey, expandIcon, internalPopupClose, itemIcon, popupClassName, popupOffset, style, title, warnKey, onClick, onMouseEnter, onMouseLeave, onTitleClick, onTitleMouseEnter, onTitleMouseLeave, ...restProps } = props;
17
20
  const domDataId = useNavId(eventKey);
18
- const { activeKey, disabled = props.disabled, expandIcon: contextExpandIcon, itemIcon: contextItemIcon, mode, openKeys, overflowDisabled, popupPrefixCls, selectedKeys, onActive, onItemClick, onOpenChange, } = React.useContext(NavContext);
21
+ const { activeKey, disabled: contextDisabled, expandIcon: contextExpandIcon, itemIcon: contextItemIcon, mode, openKeys, overflowDisabled, popupPrefixCls, selectedKeys, onActive, onItemClick, onOpenChange, } = React.useContext(NavContext);
19
22
  const pathUser = React.useContext(PathUserContext);
20
23
  const connectedPath = useFullPath();
24
+ const { _internalRenderSubMenuItem } = React.useContext(PrivateContext);
25
+ const mergedDisabled = contextDisabled || disabled;
21
26
  const elementRef = React.useRef(null);
22
27
  const popupRef = React.useRef();
23
28
  // ================================ Warn ================================
@@ -44,7 +49,7 @@ function InternalSubNav({ children, className, eventKey, expandIcon, internalPop
44
49
  const onInternalMouseEnter = domEvent => {
45
50
  triggerChildrenActive(true);
46
51
  if (eventKey) {
47
- props.onMouseEnter?.({
52
+ onMouseEnter?.({
48
53
  domEvent,
49
54
  key: eventKey,
50
55
  });
@@ -53,7 +58,7 @@ function InternalSubNav({ children, className, eventKey, expandIcon, internalPop
53
58
  const onInternalMouseLeave = domEvent => {
54
59
  triggerChildrenActive(false);
55
60
  if (eventKey) {
56
- props.onMouseLeave?.({
61
+ onMouseLeave?.({
57
62
  domEvent,
58
63
  key: eventKey,
59
64
  });
@@ -67,7 +72,9 @@ function InternalSubNav({ children, className, eventKey, expandIcon, internalPop
67
72
  return childrenActive || pathUser?.isSubPathKey([activeKey], eventKey);
68
73
  }
69
74
  return false;
70
- }, [mode, active, activeKey, childrenActive, eventKey, pathUser?.isSubPathKey]);
75
+ }, [active, mode, eventKey, childrenActive, pathUser, activeKey]);
76
+ // ========================== DirectionStyle ==========================
77
+ const directionStyle = useDirectionStyle(connectedPath.length);
71
78
  // =============================== Events ===============================
72
79
  // Title click
73
80
  const onInternalTitleClick = e => {
@@ -98,7 +105,7 @@ function InternalSubNav({ children, className, eventKey, expandIcon, internalPop
98
105
  }
99
106
  };
100
107
  /**
101
- * Used for accessibility. Helper will focus element without key board.
108
+ * Used for accessibility. Helper will focus element without keyboard.
102
109
  * We should manually trigger an active
103
110
  */
104
111
  const onInternalFocus = () => {
@@ -107,38 +114,49 @@ function InternalSubNav({ children, className, eventKey, expandIcon, internalPop
107
114
  }
108
115
  };
109
116
  // =============================== Render ===============================
110
- const popupId = domDataId ? `${domDataId}-popup` : undefined;
117
+ const popupId = domDataId ? `${domDataId}-dropdown` : undefined;
111
118
  // Title
112
- let titleNode = (React.createElement("a", { role: disabled ? undefined : 'menuitem', tabIndex: disabled ? undefined : -1, ref: elementRef, title: typeof title === 'string' ? title : undefined, "aria-controls": popupId, "aria-disabled": disabled, "aria-expanded": open, "aria-haspopup": true, "data-nav-id": overflowDisabled && domDataId ? null : domDataId, onClick: onInternalTitleClick, onFocus: onInternalFocus, ...activeProps }, title));
113
- // Cache mode if it change to `inline` which do not have popup motion
119
+ let titleNode = (React.createElement("a", { role: disabled ? undefined : 'menuitem', tabIndex: disabled ? undefined : -1, ref: elementRef, title: typeof title === 'string' ? title : undefined, "aria-controls": popupId, "aria-disabled": disabled, "aria-expanded": open, "aria-haspopup": true, "data-nav-id": overflowDisabled && domDataId ? null : domDataId, style: { ...directionStyle }, onClick: onInternalTitleClick, onFocus: onInternalFocus, ...activeProps }, title));
120
+ // Cache mode if it changes to `inline` which do not have popup motion
114
121
  const triggerModeRef = React.useRef(mode);
115
- if (mode !== 'inline') {
116
- triggerModeRef.current = connectedPath.length > 1 ? 'vertical' : mode;
122
+ if (mode !== 'inline' && connectedPath.length > 1) {
123
+ triggerModeRef.current = 'vertical';
124
+ }
125
+ else {
126
+ triggerModeRef.current = mode;
117
127
  }
118
128
  if (!overflowDisabled) {
119
129
  const triggerMode = triggerModeRef.current;
120
130
  // Still wrap with Trigger here since we need avoid react re-mount dom node
121
131
  // Which makes motion failed
122
- titleNode = (React.createElement(PopupTrigger, { disabled: disabled, mode: triggerMode, popup: (React.createElement(NavContextProvider
132
+ titleNode = (React.createElement(PopupTrigger, { disabled: disabled, mode: triggerMode, popup: React.createElement(NavContextProvider
123
133
  // Special handle of horizontal mode
124
134
  , {
125
135
  // Special handle of horizontal mode
126
136
  mode: triggerMode === 'horizontal' ? 'vertical' : triggerMode },
127
- React.createElement(SubNavList, { className: classNames(`${popupPrefixCls}-nav`), id: popupId, ref: popupRef }, children))), popupClassName: popupClassName, popupOffset: popupOffset, prefixCls: popupPrefixCls, visible: !internalPopupClose && open && mode !== 'inline', onVisibleChange: onPopupVisibleChange }, titleNode));
137
+ React.createElement(SubNavList, { className: `${popupPrefixCls}-nav`, id: popupId, ref: popupRef }, children)), popupClassName: popupClassName, popupOffset: popupOffset, prefixCls: popupPrefixCls, visible: !internalPopupClose && open && mode !== 'inline', onVisibleChange: onPopupVisibleChange }, titleNode));
128
138
  }
129
- // Render
130
- return (React.createElement(NavContextProvider, { expandIcon: mergedExpandIcon, itemIcon: mergedItemIcon, mode: mode === 'horizontal' ? 'vertical' : mode, onItemClick: onMergedItemClick },
131
- React.createElement(Overflow.Item, { className: classNames('uk-parent', className, {
132
- 'uk-active': childrenSelected,
133
- 'uk-disabled': disabled,
134
- 'uk-hover': mergedActive,
135
- 'uk-open': open,
136
- }), role: "none", ...props, component: "li", style: style, onMouseEnter: onInternalMouseEnter, onMouseLeave: onInternalMouseLeave },
137
- titleNode,
138
- !overflowDisabled && (React.createElement(InlineSubNavList, { id: popupId, open: open, keyPath: connectedPath }, children)))));
139
- }
139
+ // List node
140
+ let listNode = (React.createElement(Overflow.Item, { className: classNames('uk-parent', className, {
141
+ 'uk-active': childrenSelected,
142
+ 'uk-disabled': disabled,
143
+ 'uk-hover': mergedActive,
144
+ 'uk-open': open,
145
+ }), role: "none", ...restProps, component: "li", style: style, onMouseEnter: onInternalMouseEnter, onMouseLeave: onInternalMouseLeave },
146
+ titleNode,
147
+ !overflowDisabled && (React.createElement(InlineSubNavList, { id: popupId, open: open, keyPath: connectedPath }, children))));
148
+ if (_internalRenderSubMenuItem) {
149
+ listNode = _internalRenderSubMenuItem(listNode, props, {
150
+ active: !!mergedActive,
151
+ disabled: !!mergedDisabled,
152
+ open,
153
+ selected: !!childrenSelected,
154
+ });
155
+ }
156
+ return (React.createElement(NavContextProvider, { expandIcon: mergedExpandIcon, itemIcon: mergedItemIcon, mode: mode === 'horizontal' ? 'vertical' : mode, onItemClick: onMergedItemClick }, listNode));
157
+ });
140
158
  // eslint-disable-next-line react/no-multi-comp
141
- export function Sub(props) {
159
+ export const Sub = React.memo((props) => {
142
160
  const { eventKey, children } = props;
143
161
  const connectedKeyPath = useFullPath(eventKey);
144
162
  const childList = parseChildren(children, connectedKeyPath);
@@ -151,9 +169,9 @@ export function Sub(props) {
151
169
  };
152
170
  }
153
171
  return noop;
154
- }, [connectedKeyPath]);
172
+ }, [connectedKeyPath, eventKey, measure]);
155
173
  return (React.createElement(PathTrackerContext.Provider, { value: connectedKeyPath }, measure ? childList : React.createElement(InternalSubNav, { ...props }, childList)));
156
- }
174
+ });
157
175
  if (process.env.NODE_ENV !== 'production') {
158
176
  Sub.displayName = 'Nav.Sub';
159
177
  }
@@ -13,3 +13,6 @@ export function useNavId(eventKey) {
13
13
  }
14
14
  return getNavId(id, eventKey);
15
15
  }
16
+ if (process.env.NODE_ENV !== 'production') {
17
+ IdContext.displayName = 'IdContext';
18
+ }
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
- import type { CSSMotionProps } from 'rc-motion';
3
- import type { BuiltinPlacements, NavClickEventHandler, NavMode, RenderIconType, TriggerSubMenuAction } from '../types';
2
+ import { type CSSMotionProps } from 'rc-motion';
3
+ import { type BuiltinPlacements, type NavClickEventHandler, type NavMode, type RenderIconType, type TriggerSubNavAction } from '../../Nav/types';
4
4
  export interface NavContextProps {
5
5
  activeKey: string;
6
6
  builtinPlacements?: BuiltinPlacements;
@@ -11,6 +11,7 @@ export interface NavContextProps {
11
11
  expandIcon?: RenderIconType;
12
12
  forceSubNavRender?: boolean;
13
13
  getPopupContainer: (node: HTMLElement) => HTMLElement;
14
+ inlineIndent?: number;
14
15
  itemIcon?: RenderIconType;
15
16
  mode: NavMode;
16
17
  motion?: CSSMotionProps;
@@ -22,7 +23,7 @@ export interface NavContextProps {
22
23
  selectedKeys: string[];
23
24
  subNavOpenDelay: number;
24
25
  subNavCloseDelay: number;
25
- triggerSubNavAction?: TriggerSubMenuAction;
26
+ triggerSubNavAction?: TriggerSubNavAction;
26
27
  onActive: (key: string) => void;
27
28
  onInactive: (key: string) => void;
28
29
  onItemClick: NavClickEventHandler;
@@ -33,4 +34,4 @@ export interface InheritableContextProps extends Partial<NavContextProps> {
33
34
  children?: React.ReactNode;
34
35
  locked?: boolean;
35
36
  }
36
- export declare function NavContextProvider({ children, locked, ...props }: InheritableContextProps): JSX.Element;
37
+ export declare function NavContextProvider(props: InheritableContextProps): JSX.Element;
@@ -18,13 +18,19 @@ function mergeProps(origin, target) {
18
18
  });
19
19
  return clone;
20
20
  }
21
- export function NavContextProvider({ children, locked, ...props }) {
21
+ export function NavContextProvider(props) {
22
22
  const config = useConfig();
23
23
  const context = React.useContext(NavContext);
24
+ const { children, locked, ...restProps } = props;
24
25
  const inheritableContext = useMemo(() => mergeProps({
25
26
  ...context,
26
27
  popupPrefixCls: `${config.prefixCls}-dropdown`,
27
28
  prefixCls: `${config.prefixCls}-nav`,
28
- }, props), [context, props], (prev, next) => !locked && (prev[0] !== next[0] || !shallowEqual(prev[1], next[1])));
29
- return (React.createElement(NavContext.Provider, { value: inheritableContext }, children));
29
+ }, restProps),
30
+ // eslint-disable-next-line react-hooks/exhaustive-deps
31
+ [context, restProps], (prev, next) => !locked && (prev[0] !== next[0] || !shallowEqual(prev[1], next[1])));
32
+ return React.createElement(NavContext.Provider, { value: inheritableContext }, children);
33
+ }
34
+ if (process.env.NODE_ENV !== 'production') {
35
+ NavContext.displayName = 'NavContext';
30
36
  }
@@ -10,3 +10,8 @@ export function useFullPath(eventKey) {
10
10
  return React.useMemo(() => (eventKey !== undefined ? [...parentKeyPath, eventKey] : parentKeyPath), [parentKeyPath, eventKey]);
11
11
  }
12
12
  export const PathUserContext = React.createContext(null);
13
+ if (process.env.NODE_ENV !== 'production') {
14
+ PathRegisterContext.displayName = 'PathRegisterContext';
15
+ PathTrackerContext.displayName = 'PathTrackerContext';
16
+ PathUserContext.displayName = 'PathUserContext';
17
+ }
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+ import { type NavProps } from '../../Nav/Nav';
3
+ export interface PrivateContextProps {
4
+ _internalRenderMenuItem?: NavProps['_internalRenderMenuItem'];
5
+ _internalRenderSubMenuItem?: NavProps['_internalRenderSubMenuItem'];
6
+ }
7
+ export declare const PrivateContext: React.Context<PrivateContextProps>;
@@ -0,0 +1,2 @@
1
+ import * as React from 'react';
2
+ export const PrivateContext = React.createContext({});
@@ -1,3 +1,3 @@
1
1
  import * as React from 'react';
2
- import type { NavMode } from '../types';
3
- export default function useAccessibility<T extends HTMLElement>(mode: NavMode, activeKey: string, isRtl: boolean, id: string, containerRef: React.RefObject<HTMLUListElement>, getKeys: () => string[], getKeyPath: (key: string, includeOverflow?: boolean) => string[], triggerActiveKey: (key: string) => void, triggerAccessibilityOpen: (key: string, open?: boolean) => void, originOnKeyDown?: React.KeyboardEventHandler<T>): React.KeyboardEventHandler<T>;
2
+ import { type NavMode } from '../../Nav/types';
3
+ export declare function useAccessibility<T extends HTMLElement>(mode: NavMode, activeKey: string, isRtl: boolean, id: string, containerRef: React.RefObject<HTMLUListElement>, getKeys: () => string[], getKeyPath: (key: string, includeOverflow?: boolean) => string[], triggerActiveKey: (key: string) => void, triggerAccessibilityOpen: (key: string, open?: boolean) => void, originOnKeyDown?: React.KeyboardEventHandler<T>): React.KeyboardEventHandler<T>;
@@ -1,8 +1,8 @@
1
1
  import * as React from 'react';
2
+ import { getFocusNodeList } from 'rc-util/lib/Dom/focus';
2
3
  import KeyCode from 'rc-util/lib/KeyCode';
3
4
  import raf from 'rc-util/lib/raf';
4
- import { getFocusNodeList } from 'rc-util/lib/Dom/focus';
5
- import { getNavId } from '../context/IdContext';
5
+ import { getNavId } from '../../Nav/context/IdContext';
6
6
  // destruct to reduce minify size
7
7
  const { LEFT, RIGHT, UP, DOWN, ENTER, ESC } = KeyCode;
8
8
  const ArrowKeys = [UP, DOWN, LEFT, RIGHT];
@@ -126,7 +126,7 @@ function getNextFocusElement(parentQueryContainer, elements, focusMenuElement, o
126
126
  // Focus menu item
127
127
  return sameLevelFocusableMenuElementList[focusIndex];
128
128
  }
129
- export default function useAccessibility(mode, activeKey, isRtl, id, containerRef, getKeys, getKeyPath, triggerActiveKey, triggerAccessibilityOpen, originOnKeyDown) {
129
+ export function useAccessibility(mode, activeKey, isRtl, id, containerRef, getKeys, getKeyPath, triggerActiveKey, triggerAccessibilityOpen, originOnKeyDown) {
130
130
  const rafRef = React.useRef();
131
131
  const activeRef = React.useRef();
132
132
  activeRef.current = activeKey;
@@ -1,9 +1,9 @@
1
1
  import * as React from 'react';
2
- import type { NavHoverEventHandler } from '../types';
2
+ import { type NavHoverEventHandler } from '../../Nav/types';
3
3
  interface ActiveObj {
4
4
  active: boolean;
5
5
  onMouseEnter?: React.MouseEventHandler<HTMLElement>;
6
6
  onMouseLeave?: React.MouseEventHandler<HTMLElement>;
7
7
  }
8
- export default function useActive(eventKey?: string, disabled?: boolean, onMouseEnter?: NavHoverEventHandler, onMouseLeave?: NavHoverEventHandler): ActiveObj;
8
+ export declare function useActive(eventKey?: string, disabled?: boolean, onMouseEnter?: NavHoverEventHandler, onMouseLeave?: NavHoverEventHandler): ActiveObj;
9
9
  export {};
@@ -1,12 +1,12 @@
1
1
  import * as React from 'react';
2
- import { NavContext } from '../context/NavContext';
3
- export default function useActive(eventKey, disabled, onMouseEnter, onMouseLeave) {
4
- if (eventKey === undefined) {
5
- return { active: false };
6
- }
2
+ import { NavContext } from '../../Nav/context/NavContext';
3
+ export function useActive(eventKey, disabled, onMouseEnter, onMouseLeave) {
7
4
  const {
8
5
  // Active
9
6
  activeKey, onActive, onInactive, } = React.useContext(NavContext);
7
+ if (eventKey === undefined) {
8
+ return { active: false };
9
+ }
10
10
  const ret = {
11
11
  active: activeKey === eventKey,
12
12
  };
@@ -0,0 +1,2 @@
1
+ import * as React from 'react';
2
+ export declare function useDirectionStyle(level: number): React.CSSProperties | null;
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ import { NavContext } from '../../Nav/context/NavContext';
3
+ export function useDirectionStyle(level) {
4
+ const { mode, rtl, inlineIndent } = React.useContext(NavContext);
5
+ if (mode !== 'inline') {
6
+ return null;
7
+ }
8
+ const len = level;
9
+ return rtl ? { paddingRight: len * (inlineIndent ?? 0) } : { paddingLeft: len * (inlineIndent ?? 0) };
10
+ }
@@ -1,12 +1,12 @@
1
1
  export declare const OVERFLOW_KEY = "rc-menu-more";
2
- declare type KeyRecords = {
2
+ type KeyRecords = {
3
3
  registerPath: (key: string, keyPath: string[]) => void;
4
4
  unregisterPath: (key: string, keyPath: string[]) => void;
5
5
  refreshOverflowKeys: (keys: string[]) => void;
6
6
  isSubPathKey: (pathKeys: string[], eventKey: string) => boolean;
7
- getKeyPath: (eventKey: string, includeOverflow?: (boolean | undefined)) => string[];
7
+ getKeyPath: (eventKey: string, includeOverflow?: boolean | undefined) => string[];
8
8
  getKeys: () => string[];
9
9
  getSubPathKeys: (key: string) => Set<string>;
10
10
  };
11
- export default function useKeyRecords(): KeyRecords;
11
+ export declare function useKeyRecords(): KeyRecords;
12
12
  export {};
@@ -1,22 +1,22 @@
1
1
  import * as React from 'react';
2
2
  import warning from 'rc-util/lib/warning';
3
- import { nextSlice } from '../utils/timeUtil';
3
+ import { nextSlice } from '../../Nav/utils/timeUtil';
4
+ import { useForceUpdate } from '../../../hooks';
4
5
  const PATH_SPLIT = '__RC_UTIL_PATH_SPLIT__';
5
- const getPathStr = (keyPath) => keyPath.join(PATH_SPLIT);
6
- const getPathKeys = (keyPathStr) => keyPathStr.split(PATH_SPLIT);
6
+ function getPathStr(keyPath) {
7
+ return keyPath.join(PATH_SPLIT);
8
+ }
9
+ function getPathKeys(keyPathStr) {
10
+ return keyPathStr.split(PATH_SPLIT);
11
+ }
7
12
  export const OVERFLOW_KEY = 'rc-menu-more';
8
- export default function useKeyRecords() {
9
- const [, internalForceUpdate] = React.useState({});
13
+ export function useKeyRecords() {
14
+ const forceUpdate = useForceUpdate();
10
15
  const key2pathRef = React.useRef(new Map());
11
16
  const path2keyRef = React.useRef(new Map());
12
- const [overflowKeys, setOverflowKeys] = React.useState([]);
13
17
  const updateRef = React.useRef(0);
14
18
  const destroyRef = React.useRef(false);
15
- const forceUpdate = () => {
16
- if (!destroyRef.current) {
17
- internalForceUpdate({});
18
- }
19
- };
19
+ const [overflowKeys, setOverflowKeys] = React.useState([]);
20
20
  const registerPath = React.useCallback((key, keyPath) => {
21
21
  // Warning for invalidate or duplicated `key`
22
22
  if (process.env.NODE_ENV !== 'production') {
@@ -29,11 +29,11 @@ export default function useKeyRecords() {
29
29
  updateRef.current += 1;
30
30
  const id = updateRef.current;
31
31
  nextSlice(() => {
32
- if (id === updateRef.current) {
32
+ if (id === updateRef.current && !destroyRef.current) {
33
33
  forceUpdate();
34
34
  }
35
35
  });
36
- }, []);
36
+ }, [forceUpdate]);
37
37
  const unregisterPath = React.useCallback((key, keyPath) => {
38
38
  const connectedPath = getPathStr(keyPath);
39
39
  path2keyRef.current.delete(connectedPath);
@@ -2,4 +2,4 @@
2
2
  * Cache callback function that always return same ref instead.
3
3
  * This is used for context optimization.
4
4
  */
5
- export default function useMemoCallback<T extends (...args: any[]) => void>(func: T): T;
5
+ export declare function useMemoCallback<T extends (...args: any[]) => void>(func: T): T;
@@ -3,9 +3,10 @@ import * as React from 'react';
3
3
  * Cache callback function that always return same ref instead.
4
4
  * This is used for context optimization.
5
5
  */
6
- export default function useMemoCallback(func) {
6
+ export function useMemoCallback(func) {
7
7
  const funRef = React.useRef(func);
8
8
  funRef.current = func;
9
+ // eslint-disable-next-line react-hooks/exhaustive-deps
9
10
  const callback = React.useCallback(((...args) => funRef.current?.(...args)), []);
10
11
  return typeof func === 'function' ? callback : undefined;
11
12
  }
@@ -1 +1 @@
1
- export default function useUUID(id?: string): string | undefined;
1
+ export declare function useUUID(id?: string): string | undefined;
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import useMergedState from 'rc-util/lib/hooks/useMergedState';
3
3
  const uniquePrefix = Math.random().toFixed(5).toString().slice(2);
4
4
  let internalId = 0;
5
- export default function useUUID(id) {
5
+ export function useUUID(id) {
6
6
  const [uuid, setUUID] = useMergedState(id, {
7
7
  value: id,
8
8
  });
@@ -12,6 +12,6 @@ export default function useUUID(id) {
12
12
  ? 'test'
13
13
  : `${uniquePrefix}-${internalId}`;
14
14
  setUUID(`uk-nav-uuid-${newId}`);
15
- }, []);
15
+ }, [setUUID]);
16
16
  return uuid;
17
17
  }
@@ -1,17 +1,17 @@
1
- import * as React from 'react';
2
- import { Divider } from './Divider';
3
- import { Group } from './Group';
4
- import { Header } from './Header';
5
- import { Item } from './Item';
6
- import { Sub } from './Sub';
7
- import type { NavProps } from './Nav';
1
+ import type * as React from 'react';
2
+ import { Divider } from '../Nav/Divider';
3
+ import { Group } from '../Nav/Group';
4
+ import { Header } from '../Nav/Header';
5
+ import { Item } from '../Nav/Item';
6
+ import { type NavProps } from '../Nav/Nav';
7
+ import { Sub } from '../Nav/Sub';
8
8
  import './index.scss';
9
9
  export type { NavProps };
10
- export interface CompoundedNav extends React.FunctionComponent<NavProps> {
10
+ export interface Nav extends React.MemoExoticComponent<React.ForwardRefExoticComponent<NavProps>> {
11
11
  Divider: typeof Divider;
12
12
  Group: typeof Group;
13
13
  Header: typeof Header;
14
14
  Item: typeof Item;
15
15
  Sub: typeof Sub;
16
16
  }
17
- export declare const Nav: CompoundedNav;
17
+ export declare const Nav: Nav;
@@ -1,9 +1,9 @@
1
- import { Divider } from './Divider';
2
- import { Group } from './Group';
3
- import { Header } from './Header';
4
- import { Item } from './Item';
5
- import { Nav as InternalNav } from './Nav';
6
- import { Sub } from './Sub';
1
+ import { Divider } from '../Nav/Divider';
2
+ import { Group } from '../Nav/Group';
3
+ import { Header } from '../Nav/Header';
4
+ import { Item } from '../Nav/Item';
5
+ import { Nav as InternalNav } from '../Nav/Nav';
6
+ import { Sub } from '../Nav/Sub';
7
7
  import './index.scss';
8
8
  export const Nav = InternalNav;
9
9
  Nav.Divider = Divider;
@@ -90,13 +90,13 @@
90
90
  .uk-nav-item {
91
91
  position: relative;
92
92
  white-space: nowrap;
93
+ }
93
94
 
94
- /* Disabled */
95
- &-disabled {
96
- cursor: not-allowed;
97
- opacity: 0.85;
98
- pointer-events: none;
99
- }
95
+ /* Disabled */
96
+ .uk-nav-item-disabled {
97
+ cursor: not-allowed;
98
+ opacity: 0.85;
99
+ pointer-events: none;
100
100
  }
101
101
 
102
102
 
@@ -258,7 +258,7 @@
258
258
  }
259
259
  }
260
260
 
261
- &-placement-rightTop::before {
261
+ &-placement-right-top::before {
262
262
  left: -7px;
263
263
  top: 0;
264
264
  }
@@ -320,6 +320,7 @@ ul.uk-nav-sub {
320
320
  ========================================================================== */
321
321
 
322
322
  .uk-nav-divider {
323
+ border-top: var(--nav-divider-border-width) solid var(--nav-divider-border);
323
324
  margin: var(--nav-divider-margin-vertical) var(--nav-divider-margin-horizontal);
324
325
  @if mixin-exists(hook-nav-divider) {
325
326
  @include hook-nav-divider;
@@ -547,6 +548,8 @@ ul.uk-nav-sub {
547
548
  --nav-header-font-size: var(--global-small-font-size);
548
549
  --nav-header-text-transform: #{$nav-header-text-transform};
549
550
  --nav-header-margin-top: var(--global-margin);
551
+ --nav-divider-border-width: var(--global-border-width);
552
+ --nav-divider-border: var(--global-border);
550
553
  --nav-divider-margin-vertical: #{$nav-divider-margin-vertical};
551
554
  --nav-divider-margin-horizontal: #{$nav-divider-margin-horizontal};
552
555
  --nav-default-item-color: var(--global-muted-color);
@@ -1,18 +1,65 @@
1
1
  import type * as React from 'react';
2
- export declare type NavMode = 'inline' | 'vertical' | 'vertical-left' | 'vertical-right' | 'horizontal';
3
- export declare type NavModifier = 'default' | 'primary' | 'center' | 'divider';
4
- export declare type BuiltinPlacements = Record<string, any>;
5
- export declare type TriggerSubMenuAction = 'click' | 'hover';
2
+ export type NavRef = {
3
+ /**
4
+ * Focus active child if any, or the first child which is not disabled will be focused.
5
+ * @param {FocusOptions} [options]
6
+ */
7
+ focus: (options?: FocusOptions) => void;
8
+ list: HTMLUListElement | null;
9
+ };
10
+ interface ItemSharedProps {
11
+ className?: string;
12
+ style?: React.CSSProperties;
13
+ }
14
+ export interface SubNavType extends ItemSharedProps {
15
+ label?: React.ReactNode;
16
+ children: ItemType[];
17
+ disabled?: boolean;
18
+ key: string;
19
+ rootClassName?: string;
20
+ itemIcon?: RenderIconType;
21
+ expandIcon?: RenderIconType;
22
+ onMouseEnter?: NavHoverEventHandler;
23
+ onMouseLeave?: NavHoverEventHandler;
24
+ popupClassName?: string;
25
+ popupOffset?: number[];
26
+ onClick?: NavClickEventHandler;
27
+ onTitleClick?: (info: NavTitleInfo) => void;
28
+ onTitleMouseEnter?: NavHoverEventHandler;
29
+ onTitleMouseLeave?: NavHoverEventHandler;
30
+ }
31
+ export interface NavItemType extends ItemSharedProps {
32
+ label?: React.ReactNode;
33
+ disabled?: boolean;
34
+ itemIcon?: RenderIconType;
35
+ key: React.Key;
36
+ onMouseEnter?: NavHoverEventHandler;
37
+ onMouseLeave?: NavHoverEventHandler;
38
+ onClick?: NavClickEventHandler;
39
+ }
40
+ export interface NavItemGroupType extends ItemSharedProps {
41
+ type: 'group';
42
+ label?: React.ReactNode;
43
+ children?: ItemType[];
44
+ }
45
+ export interface NavDividerType extends ItemSharedProps {
46
+ type: 'divider';
47
+ }
48
+ export type ItemType = SubNavType | NavItemType | NavItemGroupType | NavDividerType | null;
49
+ export type NavMode = 'inline' | 'vertical' | 'vertical-left' | 'vertical-right' | 'horizontal';
50
+ export type NavModifier = 'default' | 'primary' | 'center' | 'divider';
51
+ export type BuiltinPlacements = Record<string, any>;
52
+ export type TriggerSubNavAction = 'click' | 'hover';
6
53
  export interface RenderIconInfo {
7
54
  disabled?: boolean;
8
55
  isOpen?: boolean;
9
56
  isSelected?: boolean;
10
- isSubMenu?: boolean;
57
+ isSubNav?: boolean;
11
58
  }
12
- export declare type RenderIconType = React.ReactNode | ((props: RenderIconInfo) => React.ReactNode);
59
+ export type RenderIconType = React.ReactNode | ((props: RenderIconInfo) => React.ReactNode);
13
60
  export interface NavInfo {
14
61
  domEvent: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>;
15
- /** @deprecated This will not support in future. You should avoid to use this */
62
+ /** @deprecated This will not support in the future. You should avoid to use this */
16
63
  item: React.ReactInstance;
17
64
  key: string;
18
65
  keyPath: string[];
@@ -21,12 +68,13 @@ export interface NavTitleInfo {
21
68
  domEvent: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>;
22
69
  key: string;
23
70
  }
24
- export declare type NavHoverEventHandler = (info: {
71
+ export type NavHoverEventHandler = (info: {
25
72
  domEvent: React.MouseEvent<HTMLElement>;
26
73
  key: string;
27
74
  }) => void;
28
75
  export interface SelectInfo extends NavInfo {
29
76
  selectedKeys: string[];
30
77
  }
31
- export declare type SelectEventHandler = (info: SelectInfo) => void;
32
- export declare type NavClickEventHandler = (info: NavInfo) => void;
78
+ export type SelectEventHandler = (info: SelectInfo) => void;
79
+ export type NavClickEventHandler = (info: NavInfo) => void;
80
+ export {};
@@ -1,3 +1,3 @@
1
- import type { AlignType, BuildInPlacements } from 'rc-trigger/lib/interface';
1
+ import { type AlignType, type BuildInPlacements } from 'rc-trigger/lib/interface';
2
2
  export declare function getAlignFromPlacement(builtinPlacements: BuildInPlacements, placementStr: string, align: AlignType): AlignType;
3
3
  export declare function getAlignPopupClassName(builtinPlacements: BuildInPlacements, prefixCls: string, align: AlignType, isAlignPoint: boolean): string;
@@ -1,2 +1,2 @@
1
- import type { CSSMotionProps } from 'rc-motion';
1
+ import { type CSSMotionProps } from 'rc-motion';
2
2
  export declare function getMotion(mode: string, motion?: CSSMotionProps, defaultMotions?: Record<string, CSSMotionProps>): CSSMotionProps | undefined;
@@ -1,2 +1,4 @@
1
1
  import * as React from 'react';
2
- export declare function parseChildren(children: React.ReactNode, keyPath: string[]): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>[];
2
+ import { type ItemType } from '../../Nav/types';
3
+ export declare function parseChildren(children: React.ReactNode | undefined, keyPath: string[]): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>[];
4
+ export declare function parseItems(children: React.ReactNode | undefined, items: ItemType[] | undefined, keyPath: string[]): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>[];