@broxus/react-uikit 0.22.0 → 0.23.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 (406) hide show
  1. package/dist/assets/accordion.css +135 -0
  2. package/dist/assets/alert.css +120 -0
  3. package/dist/assets/align.css +105 -0
  4. package/dist/assets/animation.css +387 -0
  5. package/dist/assets/article.css +51 -0
  6. package/dist/assets/background.css +209 -0
  7. package/dist/assets/badge.css +46 -0
  8. package/dist/assets/base.css +571 -0
  9. package/dist/assets/breadcrumb.css +69 -0
  10. package/dist/assets/button.css +491 -0
  11. package/dist/assets/card.css +255 -0
  12. package/dist/assets/checkbox.css +240 -0
  13. package/dist/assets/close.css +24 -0
  14. package/dist/assets/column.css +145 -0
  15. package/dist/assets/comment.css +87 -0
  16. package/dist/assets/container.css +171 -0
  17. package/dist/assets/control.css +262 -0
  18. package/dist/assets/cover.css +55 -0
  19. package/dist/assets/datepicker.css +662 -0
  20. package/dist/assets/description-list.css +39 -0
  21. package/dist/assets/divider.css +98 -0
  22. package/dist/assets/dotnav.css +100 -0
  23. package/dist/assets/drawer.css +562 -0
  24. package/dist/assets/drop.css +47 -0
  25. package/dist/assets/dropdown.css +118 -0
  26. package/dist/assets/flex.css +392 -0
  27. package/dist/assets/form.css +486 -0
  28. package/dist/assets/grid.css +545 -0
  29. package/dist/assets/heading.css +175 -0
  30. package/dist/assets/height.css +63 -0
  31. package/dist/assets/icon.css +188 -0
  32. package/dist/assets/iconnav.css +83 -0
  33. package/dist/assets/input-number.css +89 -0
  34. package/dist/assets/input-password.css +24 -0
  35. package/dist/assets/inverse.css +746 -0
  36. package/dist/assets/label.css +70 -0
  37. package/dist/assets/leader.css +44 -0
  38. package/dist/assets/link.css +79 -0
  39. package/dist/assets/list.css +211 -0
  40. package/dist/assets/margin.css +362 -0
  41. package/dist/assets/marker.css +28 -0
  42. package/dist/assets/mixin.css +1 -0
  43. package/dist/assets/mixins.css +1 -0
  44. package/dist/assets/modal.css +227 -0
  45. package/dist/assets/motion.css +492 -0
  46. package/dist/assets/nav.css +406 -0
  47. package/dist/assets/navbar.css +468 -0
  48. package/dist/assets/overlay.css +38 -0
  49. package/dist/assets/padding.css +70 -0
  50. package/dist/assets/pagination.css +78 -0
  51. package/dist/assets/placeholder.css +27 -0
  52. package/dist/assets/position.css +216 -0
  53. package/dist/assets/print.css +43 -0
  54. package/dist/assets/progress.css +79 -0
  55. package/dist/assets/radio.css +196 -0
  56. package/dist/assets/search.css +258 -0
  57. package/dist/assets/section.css +138 -0
  58. package/dist/assets/segmented.css +193 -0
  59. package/dist/assets/select.css +515 -0
  60. package/dist/assets/slider.css +392 -0
  61. package/dist/assets/spinner.css +51 -0
  62. package/dist/assets/sticky.css +31 -0
  63. package/dist/assets/subnav.css +171 -0
  64. package/dist/assets/svg.css +23 -0
  65. package/dist/assets/switch.css +167 -0
  66. package/dist/assets/table.css +224 -0
  67. package/dist/assets/tabs.css +631 -0
  68. package/dist/assets/text.css +385 -0
  69. package/dist/assets/textarea.css +54 -0
  70. package/dist/assets/thumbnav.css +67 -0
  71. package/dist/assets/tile.css +138 -0
  72. package/dist/assets/tooltip.css +47 -0
  73. package/dist/assets/totop.css +32 -0
  74. package/dist/assets/transition.css +154 -0
  75. package/dist/assets/uikit.min.css +1 -0
  76. package/dist/assets/utility.css +494 -0
  77. package/dist/assets/variables.css +1 -0
  78. package/dist/assets/vars.css +89 -0
  79. package/dist/assets/visibility.css +140 -0
  80. package/dist/assets/width.css +538 -0
  81. package/dist/cjs/components/Accordion/Accordion.d.ts +3 -2
  82. package/dist/cjs/components/Accordion/Item.d.ts +1 -5
  83. package/dist/cjs/components/Accordion/Item.js +0 -4
  84. package/dist/cjs/components/Accordion/index.d.ts +1 -1
  85. package/dist/cjs/components/Alert/index.js +1 -3
  86. package/dist/cjs/components/Align/Align.d.ts +1 -1
  87. package/dist/cjs/components/Align/Center.d.ts +1 -1
  88. package/dist/cjs/components/Align/Left.d.ts +1 -1
  89. package/dist/cjs/components/Align/Right.d.ts +1 -1
  90. package/dist/cjs/components/Article/Article.d.ts +1 -1
  91. package/dist/cjs/components/Article/Meta.d.ts +1 -1
  92. package/dist/cjs/components/Article/Title.d.ts +1 -1
  93. package/dist/cjs/components/Badge/index.d.ts +1 -1
  94. package/dist/cjs/components/Breadcrumb/Breadcrumb.d.ts +1 -1
  95. package/dist/cjs/components/Breadcrumb/Item.d.ts +1 -1
  96. package/dist/cjs/components/Button/Group.d.ts +1 -1
  97. package/dist/cjs/components/Card/Badge.d.ts +1 -1
  98. package/dist/cjs/components/Card/Body.d.ts +1 -1
  99. package/dist/cjs/components/Card/Card.d.ts +1 -1
  100. package/dist/cjs/components/Card/Footer.d.ts +1 -1
  101. package/dist/cjs/components/Card/Header.d.ts +1 -1
  102. package/dist/cjs/components/Card/Media.d.ts +1 -1
  103. package/dist/cjs/components/Card/Title.d.ts +1 -1
  104. package/dist/cjs/components/Close/index.d.ts +1 -1
  105. package/dist/cjs/components/Component/index.d.ts +1 -1
  106. package/dist/cjs/components/ConfigProvider/index.d.ts +55 -40
  107. package/dist/cjs/components/Container/index.d.ts +1 -1
  108. package/dist/cjs/components/Control/Checkbox/Checkbox.d.ts +2 -2
  109. package/dist/cjs/components/Control/Checkbox/Group.d.ts +2 -2
  110. package/dist/cjs/components/Control/Checkbox/index.d.ts +1 -1
  111. package/dist/cjs/components/Control/Input/Input.js +2 -2
  112. package/dist/cjs/components/Control/Input/Number/index.js +4 -4
  113. package/dist/cjs/components/Control/Input/useInput.js +2 -1
  114. package/dist/cjs/components/Control/Radio/Group.js +2 -4
  115. package/dist/cjs/components/Control/Radio/index.d.ts +1 -1
  116. package/dist/cjs/components/Control/Select/Select.d.ts +18 -0
  117. package/dist/cjs/components/Control/Select/Select.js +248 -0
  118. package/dist/cjs/components/Control/Select/index.d.ts +3 -21
  119. package/dist/cjs/components/Control/Select/index.js +2 -246
  120. package/dist/cjs/components/Control/Select/placements.d.ts +1 -1
  121. package/dist/cjs/components/Control/TextArea/index.d.ts +3 -3
  122. package/dist/cjs/components/Control/TextArea/index.js +6 -5
  123. package/dist/cjs/components/Cover/index.d.ts +1 -1
  124. package/dist/cjs/components/DatePicker/PickerButton.d.ts +1 -1
  125. package/dist/cjs/components/DatePicker/generatePurePicker.js +1 -3
  126. package/dist/cjs/components/DescriptionList/Description.d.ts +1 -1
  127. package/dist/cjs/components/DescriptionList/DescriptionList.d.ts +1 -1
  128. package/dist/cjs/components/DescriptionList/Term.d.ts +1 -1
  129. package/dist/cjs/components/Divider/index.d.ts +1 -1
  130. package/dist/cjs/components/Dotnav/Dotnav.d.ts +1 -1
  131. package/dist/cjs/components/Dotnav/Item.d.ts +1 -1
  132. package/dist/cjs/components/Drawer/index.d.ts +1 -1
  133. package/dist/cjs/components/Drop/index.d.ts +1 -2
  134. package/dist/cjs/components/Drop/index.js +2 -1
  135. package/dist/cjs/components/Flex/Flex.d.ts +1 -1
  136. package/dist/cjs/components/Flex/Item.d.ts +1 -1
  137. package/dist/cjs/components/Flex/index.d.ts +1 -1
  138. package/dist/cjs/components/Form/Controls.d.ts +1 -1
  139. package/dist/cjs/components/Form/ControlsText.d.ts +1 -1
  140. package/dist/cjs/components/Form/Fieldset.d.ts +1 -1
  141. package/dist/cjs/components/Form/Form.d.ts +1 -1
  142. package/dist/cjs/components/Form/Label.d.ts +1 -1
  143. package/dist/cjs/components/Form/Legend.d.ts +1 -1
  144. package/dist/cjs/components/Grid/index.d.ts +1 -1
  145. package/dist/cjs/components/Heading/index.d.ts +1 -1
  146. package/dist/cjs/components/Icon/Button.d.ts +1 -1
  147. package/dist/cjs/components/Icon/Icon.d.ts +1 -1
  148. package/dist/cjs/components/Icon/Link.d.ts +1 -1
  149. package/dist/cjs/components/Icon/index.d.ts +1 -1
  150. package/dist/cjs/components/Iconnav/Iconnav.d.ts +1 -1
  151. package/dist/cjs/components/Iconnav/Item.d.ts +1 -1
  152. package/dist/cjs/components/Inverse/index.d.ts +2 -2
  153. package/dist/cjs/components/Label/index.d.ts +1 -1
  154. package/dist/cjs/components/List/Item.d.ts +1 -1
  155. package/dist/cjs/components/List/List.d.ts +1 -1
  156. package/dist/cjs/components/Modal/index.d.ts +1 -1
  157. package/dist/cjs/components/Nav/Divider.d.ts +1 -1
  158. package/dist/cjs/components/Nav/Divider.js +4 -8
  159. package/dist/cjs/components/Nav/Group/InternalNavGroup.d.ts +10 -0
  160. package/dist/cjs/components/Nav/Group/{InternalNavItemGroup.js → InternalNavGroup.js} +9 -9
  161. package/dist/cjs/components/Nav/Group/index.d.ts +4 -5
  162. package/dist/cjs/components/Nav/Group/index.js +12 -15
  163. package/dist/cjs/components/Nav/Header.d.ts +1 -3
  164. package/dist/cjs/components/Nav/Header.js +4 -4
  165. package/dist/cjs/components/Nav/Icon/index.d.ts +7 -0
  166. package/dist/cjs/components/Nav/{context/PrivateContext.js → Icon/index.js} +13 -5
  167. package/dist/cjs/components/Nav/Item/InternalNavItem.d.ts +1 -5
  168. package/dist/cjs/components/Nav/Item/InternalNavItem.js +26 -47
  169. package/dist/cjs/components/Nav/Item/LegacyNavItem.js +12 -6
  170. package/dist/cjs/components/Nav/Item/index.d.ts +1 -4
  171. package/dist/cjs/components/Nav/Item/index.js +9 -12
  172. package/dist/cjs/components/Nav/Nav.d.ts +8 -21
  173. package/dist/cjs/components/Nav/Nav.js +84 -89
  174. package/dist/cjs/components/Nav/Sub/InlineSubNavList.d.ts +1 -1
  175. package/dist/cjs/components/Nav/Sub/InlineSubNavList.js +6 -6
  176. package/dist/cjs/components/Nav/Sub/InternalSubNav.d.ts +15 -0
  177. package/dist/cjs/components/Nav/Sub/InternalSubNav.js +196 -0
  178. package/dist/cjs/components/Nav/Sub/PopupTrigger.d.ts +2 -1
  179. package/dist/cjs/components/Nav/Sub/PopupTrigger.js +10 -11
  180. package/dist/cjs/components/Nav/Sub/SubNavList.d.ts +1 -2
  181. package/dist/cjs/components/Nav/Sub/SubNavList.js +5 -5
  182. package/dist/cjs/components/Nav/Sub/index.d.ts +4 -15
  183. package/dist/cjs/components/Nav/Sub/index.js +11 -174
  184. package/dist/cjs/components/Nav/context/NavContext.d.ts +7 -3
  185. package/dist/cjs/components/Nav/context/NavContext.js +6 -6
  186. package/dist/cjs/components/Nav/context/index.d.ts +3 -0
  187. package/dist/cjs/components/Nav/context/index.js +19 -0
  188. package/dist/cjs/components/Nav/hooks/index.d.ts +5 -0
  189. package/dist/cjs/components/Nav/hooks/index.js +21 -0
  190. package/dist/cjs/components/Nav/hooks/useAccessibility.d.ts +11 -0
  191. package/dist/cjs/components/Nav/hooks/useAccessibility.js +97 -99
  192. package/dist/cjs/components/Nav/hooks/useActive.js +5 -13
  193. package/dist/cjs/components/Nav/hooks/useDirectionStyle.js +2 -2
  194. package/dist/cjs/components/Nav/hooks/useKeyRecords.d.ts +3 -3
  195. package/dist/cjs/components/Nav/hooks/useKeyRecords.js +5 -8
  196. package/dist/cjs/components/Nav/types.d.ts +14 -1
  197. package/dist/cjs/components/Nav/utils/alignUtil.d.ts +1 -1
  198. package/dist/cjs/components/Nav/utils/alignUtil.js +1 -4
  199. package/dist/cjs/components/Nav/utils/index.d.ts +5 -0
  200. package/dist/cjs/components/Nav/utils/index.js +21 -0
  201. package/dist/cjs/components/Nav/utils/nodeUtil.d.ts +2 -2
  202. package/dist/cjs/components/Nav/utils/nodeUtil.js +38 -34
  203. package/dist/cjs/components/Nav/utils/warnUtil.js +2 -5
  204. package/dist/cjs/components/Navbar/Center.d.ts +1 -1
  205. package/dist/cjs/components/Navbar/Container.d.ts +1 -1
  206. package/dist/cjs/components/Navbar/Item.d.ts +1 -1
  207. package/dist/cjs/components/Navbar/Left.d.ts +1 -1
  208. package/dist/cjs/components/Navbar/Navbar.d.ts +1 -1
  209. package/dist/cjs/components/Navbar/Right.d.ts +1 -1
  210. package/dist/cjs/components/Navbar/Toggle.d.ts +1 -1
  211. package/dist/cjs/components/Overlay/index.d.ts +1 -1
  212. package/dist/cjs/components/Progress/index.d.ts +1 -1
  213. package/dist/cjs/components/Section/index.d.ts +1 -1
  214. package/dist/cjs/components/Segmented/index.d.ts +1 -1
  215. package/dist/cjs/components/Slider/index.d.ts +1 -2
  216. package/dist/cjs/components/Spinner/index.d.ts +1 -1
  217. package/dist/cjs/components/Subnav/Item.d.ts +1 -1
  218. package/dist/cjs/components/Subnav/Subnav.d.ts +1 -1
  219. package/dist/cjs/components/Tabs/index.d.ts +6 -4
  220. package/dist/cjs/components/Tabs/index.js +8 -7
  221. package/dist/cjs/components/Text/index.d.ts +1 -1
  222. package/dist/cjs/components/Tile/index.d.ts +1 -1
  223. package/dist/cjs/components/Width/Width.d.ts +1 -1
  224. package/dist/cjs/constants.d.ts +12 -0
  225. package/dist/cjs/constants.js +16 -0
  226. package/dist/cjs/index.js +1 -1
  227. package/dist/cjs/utils/motion.d.ts +1 -1
  228. package/dist/esm/components/Accordion/Accordion.d.ts +3 -2
  229. package/dist/esm/components/Accordion/Item.d.ts +1 -5
  230. package/dist/esm/components/Accordion/Item.js +0 -4
  231. package/dist/esm/components/Accordion/index.d.ts +1 -1
  232. package/dist/esm/components/Alert/index.js +1 -3
  233. package/dist/esm/components/Align/Align.d.ts +1 -1
  234. package/dist/esm/components/Align/Center.d.ts +1 -1
  235. package/dist/esm/components/Align/Left.d.ts +1 -1
  236. package/dist/esm/components/Align/Right.d.ts +1 -1
  237. package/dist/esm/components/Article/Article.d.ts +1 -1
  238. package/dist/esm/components/Article/Meta.d.ts +1 -1
  239. package/dist/esm/components/Article/Title.d.ts +1 -1
  240. package/dist/esm/components/Badge/index.d.ts +1 -1
  241. package/dist/esm/components/Breadcrumb/Breadcrumb.d.ts +1 -1
  242. package/dist/esm/components/Breadcrumb/Item.d.ts +1 -1
  243. package/dist/esm/components/Button/Group.d.ts +1 -1
  244. package/dist/esm/components/Card/Badge.d.ts +1 -1
  245. package/dist/esm/components/Card/Body.d.ts +1 -1
  246. package/dist/esm/components/Card/Card.d.ts +1 -1
  247. package/dist/esm/components/Card/Footer.d.ts +1 -1
  248. package/dist/esm/components/Card/Header.d.ts +1 -1
  249. package/dist/esm/components/Card/Media.d.ts +1 -1
  250. package/dist/esm/components/Card/Title.d.ts +1 -1
  251. package/dist/esm/components/Close/index.d.ts +1 -1
  252. package/dist/esm/components/Component/index.d.ts +1 -1
  253. package/dist/esm/components/ConfigProvider/index.d.ts +55 -40
  254. package/dist/esm/components/Container/index.d.ts +1 -1
  255. package/dist/esm/components/Control/Checkbox/Checkbox.d.ts +2 -2
  256. package/dist/esm/components/Control/Checkbox/Group.d.ts +2 -2
  257. package/dist/esm/components/Control/Checkbox/index.d.ts +1 -1
  258. package/dist/esm/components/Control/Input/Input.js +1 -1
  259. package/dist/esm/components/Control/Input/Number/index.js +3 -3
  260. package/dist/esm/components/Control/Input/useInput.js +2 -1
  261. package/dist/esm/components/Control/Radio/Group.js +2 -4
  262. package/dist/esm/components/Control/Radio/index.d.ts +1 -1
  263. package/dist/esm/components/Control/Select/Select.d.ts +18 -0
  264. package/dist/esm/components/Control/Select/Select.js +209 -0
  265. package/dist/esm/components/Control/Select/index.d.ts +3 -21
  266. package/dist/esm/components/Control/Select/index.js +1 -210
  267. package/dist/esm/components/Control/Select/placements.d.ts +1 -1
  268. package/dist/esm/components/Control/TextArea/index.d.ts +3 -3
  269. package/dist/esm/components/Control/TextArea/index.js +5 -4
  270. package/dist/esm/components/Cover/index.d.ts +1 -1
  271. package/dist/esm/components/DatePicker/PickerButton.d.ts +1 -1
  272. package/dist/esm/components/DatePicker/generatePurePicker.js +1 -3
  273. package/dist/esm/components/DescriptionList/Description.d.ts +1 -1
  274. package/dist/esm/components/DescriptionList/DescriptionList.d.ts +1 -1
  275. package/dist/esm/components/DescriptionList/Term.d.ts +1 -1
  276. package/dist/esm/components/Divider/index.d.ts +1 -1
  277. package/dist/esm/components/Dotnav/Dotnav.d.ts +1 -1
  278. package/dist/esm/components/Dotnav/Item.d.ts +1 -1
  279. package/dist/esm/components/Drawer/index.d.ts +1 -1
  280. package/dist/esm/components/Drop/index.d.ts +1 -2
  281. package/dist/esm/components/Drop/index.js +2 -1
  282. package/dist/esm/components/Flex/Flex.d.ts +1 -1
  283. package/dist/esm/components/Flex/Item.d.ts +1 -1
  284. package/dist/esm/components/Flex/index.d.ts +1 -1
  285. package/dist/esm/components/Form/Controls.d.ts +1 -1
  286. package/dist/esm/components/Form/ControlsText.d.ts +1 -1
  287. package/dist/esm/components/Form/Fieldset.d.ts +1 -1
  288. package/dist/esm/components/Form/Form.d.ts +1 -1
  289. package/dist/esm/components/Form/Label.d.ts +1 -1
  290. package/dist/esm/components/Form/Legend.d.ts +1 -1
  291. package/dist/esm/components/Grid/index.d.ts +1 -1
  292. package/dist/esm/components/Heading/index.d.ts +1 -1
  293. package/dist/esm/components/Icon/Button.d.ts +1 -1
  294. package/dist/esm/components/Icon/Icon.d.ts +1 -1
  295. package/dist/esm/components/Icon/Link.d.ts +1 -1
  296. package/dist/esm/components/Icon/index.d.ts +1 -1
  297. package/dist/esm/components/Iconnav/Iconnav.d.ts +1 -1
  298. package/dist/esm/components/Iconnav/Item.d.ts +1 -1
  299. package/dist/esm/components/Inverse/index.d.ts +2 -2
  300. package/dist/esm/components/Label/index.d.ts +1 -1
  301. package/dist/esm/components/List/Item.d.ts +1 -1
  302. package/dist/esm/components/List/List.d.ts +1 -1
  303. package/dist/esm/components/Modal/index.d.ts +1 -1
  304. package/dist/esm/components/Nav/Divider.d.ts +1 -1
  305. package/dist/esm/components/Nav/Divider.js +2 -6
  306. package/dist/esm/components/Nav/Group/InternalNavGroup.d.ts +10 -0
  307. package/dist/esm/components/Nav/Group/InternalNavGroup.js +16 -0
  308. package/dist/esm/components/Nav/Group/index.d.ts +4 -5
  309. package/dist/esm/components/Nav/Group/index.js +7 -7
  310. package/dist/esm/components/Nav/Header.d.ts +1 -3
  311. package/dist/esm/components/Nav/Header.js +3 -3
  312. package/dist/esm/components/Nav/Icon/index.d.ts +7 -0
  313. package/dist/esm/components/Nav/Icon/index.js +14 -0
  314. package/dist/esm/components/Nav/Item/InternalNavItem.d.ts +1 -5
  315. package/dist/esm/components/Nav/Item/InternalNavItem.js +16 -37
  316. package/dist/esm/components/Nav/Item/LegacyNavItem.js +11 -5
  317. package/dist/esm/components/Nav/Item/index.d.ts +1 -4
  318. package/dist/esm/components/Nav/Item/index.js +5 -8
  319. package/dist/esm/components/Nav/Nav.d.ts +8 -21
  320. package/dist/esm/components/Nav/Nav.js +70 -75
  321. package/dist/esm/components/Nav/Sub/InlineSubNavList.d.ts +1 -1
  322. package/dist/esm/components/Nav/Sub/InlineSubNavList.js +3 -3
  323. package/dist/esm/components/Nav/Sub/InternalSubNav.d.ts +15 -0
  324. package/dist/esm/components/Nav/Sub/InternalSubNav.js +157 -0
  325. package/dist/esm/components/Nav/Sub/PopupTrigger.d.ts +2 -1
  326. package/dist/esm/components/Nav/Sub/PopupTrigger.js +9 -10
  327. package/dist/esm/components/Nav/Sub/SubNavList.d.ts +1 -2
  328. package/dist/esm/components/Nav/Sub/SubNavList.js +4 -4
  329. package/dist/esm/components/Nav/Sub/index.d.ts +4 -15
  330. package/dist/esm/components/Nav/Sub/index.js +7 -167
  331. package/dist/esm/components/Nav/context/NavContext.d.ts +7 -3
  332. package/dist/esm/components/Nav/context/NavContext.js +6 -6
  333. package/dist/esm/components/Nav/context/index.d.ts +3 -0
  334. package/dist/esm/components/Nav/context/index.js +3 -0
  335. package/dist/esm/components/Nav/hooks/index.d.ts +5 -0
  336. package/dist/esm/components/Nav/hooks/index.js +5 -0
  337. package/dist/esm/components/Nav/hooks/useAccessibility.d.ts +11 -0
  338. package/dist/esm/components/Nav/hooks/useAccessibility.js +96 -100
  339. package/dist/esm/components/Nav/hooks/useActive.js +5 -13
  340. package/dist/esm/components/Nav/hooks/useDirectionStyle.js +1 -1
  341. package/dist/esm/components/Nav/hooks/useKeyRecords.d.ts +3 -3
  342. package/dist/esm/components/Nav/hooks/useKeyRecords.js +3 -3
  343. package/dist/esm/components/Nav/types.d.ts +14 -1
  344. package/dist/esm/components/Nav/utils/alignUtil.d.ts +1 -1
  345. package/dist/esm/components/Nav/utils/alignUtil.js +1 -4
  346. package/dist/esm/components/Nav/utils/index.d.ts +5 -0
  347. package/dist/esm/components/Nav/utils/index.js +5 -0
  348. package/dist/esm/components/Nav/utils/nodeUtil.d.ts +2 -2
  349. package/dist/esm/components/Nav/utils/nodeUtil.js +38 -31
  350. package/dist/esm/components/Nav/utils/warnUtil.js +1 -1
  351. package/dist/esm/components/Navbar/Center.d.ts +1 -1
  352. package/dist/esm/components/Navbar/Container.d.ts +1 -1
  353. package/dist/esm/components/Navbar/Item.d.ts +1 -1
  354. package/dist/esm/components/Navbar/Left.d.ts +1 -1
  355. package/dist/esm/components/Navbar/Navbar.d.ts +1 -1
  356. package/dist/esm/components/Navbar/Right.d.ts +1 -1
  357. package/dist/esm/components/Navbar/Toggle.d.ts +1 -1
  358. package/dist/esm/components/Overlay/index.d.ts +1 -1
  359. package/dist/esm/components/Progress/index.d.ts +1 -1
  360. package/dist/esm/components/Section/index.d.ts +1 -1
  361. package/dist/esm/components/Segmented/index.d.ts +1 -1
  362. package/dist/esm/components/Slider/index.d.ts +1 -2
  363. package/dist/esm/components/Spinner/index.d.ts +1 -1
  364. package/dist/esm/components/Subnav/Item.d.ts +1 -1
  365. package/dist/esm/components/Subnav/Subnav.d.ts +1 -1
  366. package/dist/esm/components/Tabs/index.d.ts +6 -4
  367. package/dist/esm/components/Tabs/index.js +8 -7
  368. package/dist/esm/components/Text/index.d.ts +1 -1
  369. package/dist/esm/components/Tile/index.d.ts +1 -1
  370. package/dist/esm/components/Width/Width.d.ts +1 -1
  371. package/dist/esm/constants.d.ts +12 -0
  372. package/dist/esm/constants.js +13 -0
  373. package/dist/esm/utils/motion.d.ts +1 -1
  374. package/package.json +23 -20
  375. package/styles/accordion.scss +56 -30
  376. package/styles/alert.scss +6 -5
  377. package/styles/animation.scss +64 -213
  378. package/styles/background.scss +34 -131
  379. package/styles/base.scss +37 -65
  380. package/styles/breadcrumb.scss +6 -9
  381. package/styles/button.scss +22 -62
  382. package/styles/control.scss +1 -0
  383. package/styles/datepicker.scss +3 -2
  384. package/styles/input-number.scss +11 -21
  385. package/styles/leader.scss +2 -2
  386. package/styles/mixins.scss +10 -19
  387. package/styles/nav.scss +7 -28
  388. package/styles/navbar.scss +185 -160
  389. package/styles/search.scss +16 -46
  390. package/styles/select.scss +9 -4
  391. package/styles/subnav.scss +1 -1
  392. package/styles/switch.scss +12 -0
  393. package/styles/tabs.scss +65 -37
  394. package/styles/text.scss +65 -65
  395. package/styles/thumbnav.scss +4 -4
  396. package/styles/variables.scss +36 -19
  397. package/dist/cjs/components/Nav/Group/InternalNavItemGroup.d.ts +0 -14
  398. package/dist/cjs/components/Nav/context/PrivateContext.d.ts +0 -7
  399. package/dist/cjs/components/Nav/hooks/useUUID.d.ts +0 -1
  400. package/dist/cjs/components/Nav/hooks/useUUID.js +0 -56
  401. package/dist/esm/components/Nav/Group/InternalNavItemGroup.d.ts +0 -14
  402. package/dist/esm/components/Nav/Group/InternalNavItemGroup.js +0 -16
  403. package/dist/esm/components/Nav/context/PrivateContext.d.ts +0 -7
  404. package/dist/esm/components/Nav/context/PrivateContext.js +0 -6
  405. package/dist/esm/components/Nav/hooks/useUUID.d.ts +0 -1
  406. package/dist/esm/components/Nav/hooks/useUUID.js +0 -17
@@ -37,16 +37,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.LegacyNavItem = void 0;
40
- const omit_1 = __importDefault(require("@rc-component/util/lib/omit"));
41
- const warning_1 = __importDefault(require("@rc-component/util/lib/warning"));
40
+ const util_1 = require("@rc-component/util");
42
41
  const rc_overflow_1 = __importDefault(require("rc-overflow"));
43
42
  const React = __importStar(require("react"));
44
43
  class LegacyNavItem extends React.Component {
45
44
  render() {
46
- const { attribute, elementRef, title, ...restProps } = this.props;
47
- const passedProps = (0, omit_1.default)(restProps, ['eventKey', 'warnKey']);
48
- (0, warning_1.default)(!attribute, '`attribute` of Nav.Item is deprecated. Please pass attribute directly.');
49
- return (React.createElement(rc_overflow_1.default.Item, { ...attribute, title: typeof title === 'string' ? title : undefined, ...passedProps, ref: elementRef }));
45
+ const { attribute, elementRef, ...props } = this.props;
46
+ const passedProps = (0, util_1.omit)(props, [
47
+ 'eventKey',
48
+ 'popupClassName',
49
+ 'popupOffset',
50
+ 'title',
51
+ 'warnKey',
52
+ 'onTitleClick',
53
+ ]);
54
+ (0, util_1.warning)(!attribute, '`attribute` of Nav.Item is deprecated. Please pass attribute directly.');
55
+ return React.createElement(rc_overflow_1.default.Item, { ref: elementRef, ...attribute, ...passedProps });
50
56
  }
51
57
  }
52
58
  exports.LegacyNavItem = LegacyNavItem;
@@ -1,6 +1,3 @@
1
1
  import * as React from 'react';
2
2
  import { type NavItemProps } from '../../../components/Nav/Item/InternalNavItem';
3
- export declare function Item({ eventKey, ...restProps }: NavItemProps): React.JSX.Element | null;
4
- export declare namespace Item {
5
- var displayName: string;
6
- }
3
+ export declare const Item: React.ForwardRefExoticComponent<NavItemProps & React.RefAttributes<HTMLElement>>;
@@ -33,16 +33,16 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.Item = Item;
36
+ exports.Item = void 0;
37
37
  const js_utils_1 = require("@broxus/js-utils");
38
38
  const React = __importStar(require("react"));
39
- const PathContext_1 = require("../../../components/Nav/context/PathContext");
39
+ const context_1 = require("../../../components/Nav/context");
40
40
  const InternalNavItem_1 = require("../../../components/Nav/Item/InternalNavItem");
41
- function Item({ eventKey, ...restProps }) {
42
- const measure = (0, PathContext_1.useMeasure)();
43
- const connectedKeyPath = (0, PathContext_1.useFullPath)(eventKey);
41
+ exports.Item = React.forwardRef(({ eventKey, ...props }, ref) => {
42
+ const measure = (0, context_1.useMeasure)();
43
+ const connectedKeyPath = (0, context_1.useFullPath)(eventKey);
44
44
  React.useEffect(() => {
45
- if (eventKey !== undefined) {
45
+ if (eventKey) {
46
46
  measure?.registerPath(eventKey, connectedKeyPath);
47
47
  return () => {
48
48
  measure?.unregisterPath(eventKey, connectedKeyPath);
@@ -50,11 +50,8 @@ function Item({ eventKey, ...restProps }) {
50
50
  }
51
51
  return js_utils_1.noop;
52
52
  }, [connectedKeyPath, eventKey, measure]);
53
- if (measure) {
54
- return null;
55
- }
56
- return React.createElement(InternalNavItem_1.InternalNavItem, { eventKey: eventKey, ...restProps });
57
- }
53
+ return measure ? null : React.createElement(InternalNavItem_1.InternalNavItem, { ref: ref, eventKey: eventKey, ...props });
54
+ });
58
55
  if (process.env.NODE_ENV !== 'production') {
59
- Item.displayName = 'Nav.Item';
56
+ exports.Item.displayName = 'Nav.Item';
60
57
  }
@@ -1,28 +1,12 @@
1
- import { type CSSMotionProps } from 'rc-motion';
1
+ import { type CSSMotionProps } from '@rc-component/motion';
2
2
  import * as React from 'react';
3
- import { type BuiltinPlacements, type ItemType, type NavClickEventHandler, type NavMode, type NavModifier, type NavRef, type RenderIconType, type SelectEventHandler, type TriggerSubNavAction } from '../../components/Nav/types';
3
+ import { type SemanticName } from '../../components/Nav/Sub/InternalSubNav';
4
+ import { type BuiltinPlacements, type ItemType, type NavClickEventHandler, type NavMode, type NavModifier, type NavPopupRender, type NavRef, type RenderIconType, type SelectEventHandler, type TriggerSubNavAction } from '../../components/Nav/types';
4
5
  import { type Direction } from '../../types';
5
6
  export interface NavProps extends Omit<React.HTMLAttributes<HTMLUListElement>, 'onClick' | 'onSelect' | 'dir'> {
6
- /**
7
- * @private Only used for `pro-layout`. Do not use in your prod directly,
8
- * and we do not promise any compatibility for this.
9
- */
10
- _internalRenderMenuItem?: (originNode: React.ReactElement, menuItemProps: any, stateProps: {
11
- selected: boolean;
12
- }) => React.ReactElement;
13
- /**
14
- * @private Only used for `pro-layout`. Do not use in your prod directly,
15
- * and we do not promise any compatibility for this.
16
- */
17
- _internalRenderSubMenuItem?: (originNode: React.ReactElement, subMenuItemProps: any, stateProps: {
18
- active: boolean;
19
- disabled: boolean;
20
- open: boolean;
21
- selected: boolean;
22
- }) => React.ReactElement;
23
7
  activeKey?: string;
24
8
  builtinPlacements?: BuiltinPlacements;
25
- children?: React.ReactNode;
9
+ classNames?: Partial<Record<SemanticName, string>>;
26
10
  defaultActiveFirst?: boolean;
27
11
  defaultMotions?: Partial<{
28
12
  [key in NavMode | 'other']: CSSMotionProps;
@@ -31,7 +15,6 @@ export interface NavProps extends Omit<React.HTMLAttributes<HTMLUListElement>, '
31
15
  defaultSelectedKeys?: string[];
32
16
  direction?: Direction;
33
17
  disabled?: boolean;
34
- disabledOverflow?: boolean;
35
18
  expandIcon?: RenderIconType;
36
19
  forceSubNavRender?: boolean;
37
20
  getPopupContainer?: (node: HTMLElement) => HTMLElement;
@@ -43,12 +26,16 @@ export interface NavProps extends Omit<React.HTMLAttributes<HTMLUListElement>, '
43
26
  motion?: CSSMotionProps;
44
27
  multiple?: boolean;
45
28
  openKeys?: string[];
29
+ overflowDisabled?: boolean;
46
30
  overflowedIndicator?: React.ReactNode;
47
31
  overflowedIndicatorPopupClassName?: string;
48
32
  popupPrefixCls?: string;
33
+ popupRender?: NavPopupRender;
49
34
  prefixCls?: string;
35
+ rootClassName?: string;
50
36
  selectable?: boolean;
51
37
  selectedKeys?: string[];
38
+ styles?: Partial<Record<SemanticName, React.CSSProperties>>;
52
39
  subNavCloseDelay?: number;
53
40
  subNavOpenDelay?: number;
54
41
  triggerSubNavAction?: TriggerSubNavAction;
@@ -37,50 +37,42 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.Nav = void 0;
40
+ const util_1 = require("@rc-component/util");
41
+ const useId_1 = __importDefault(require("@rc-component/util/es/hooks/useId"));
42
+ const isEqual_1 = __importDefault(require("@rc-component/util/es/isEqual"));
40
43
  const classnames_1 = __importDefault(require("classnames"));
41
44
  const rc_overflow_1 = __importDefault(require("rc-overflow"));
42
- const useMergedState_1 = __importDefault(require("rc-util/lib/hooks/useMergedState"));
43
- const isEqual_1 = __importDefault(require("rc-util/lib/isEqual"));
44
45
  const React = __importStar(require("react"));
45
46
  const ReactDOM = __importStar(require("react-dom"));
46
47
  const ConfigProvider_1 = require("../../components/ConfigProvider");
47
- const IdContext_1 = require("../../components/Nav/context/IdContext");
48
- const NavContext_1 = require("../../components/Nav/context/NavContext");
49
- const PathContext_1 = require("../../components/Nav/context/PathContext");
50
- const PrivateContext_1 = require("../../components/Nav/context/PrivateContext");
51
- const useAccessibility_1 = require("../../components/Nav/hooks/useAccessibility");
52
- const useKeyRecords_1 = require("../../components/Nav/hooks/useKeyRecords");
53
- const useMemoCallback_1 = require("../../components/Nav/hooks/useMemoCallback");
54
- const useUUID_1 = require("../../components/Nav/hooks/useUUID");
48
+ const context_1 = require("../../components/Nav/context");
49
+ const hooks_1 = require("../../components/Nav/hooks");
55
50
  const Item_1 = require("../../components/Nav/Item");
56
51
  const Sub_1 = require("../../components/Nav/Sub");
57
- const nodeUtil_1 = require("../../components/Nav/utils/nodeUtil");
58
- const warnUtil_1 = require("../../components/Nav/utils/warnUtil");
59
- const hooks_1 = require("../../hooks");
60
- const utils_1 = require("../../utils");
61
- const EMPTY_LIST = [];
62
- exports.Nav = React.forwardRef(({ _internalRenderMenuItem, _internalRenderSubMenuItem, activeKey, builtinPlacements, children, className, defaultActiveFirst, defaultOpenKeys, defaultSelectedKeys, direction, disabled, disabledOverflow, expandIcon, forceSubNavRender, id, inlineCollapsed, itemIcon, items, mode = 'inline', modifiers, motion, multiple = false, openKeys, overflowedIndicator = '...', overflowedIndicatorPopupClassName, selectable = false, selectedKeys, style, subNavCloseDelay = 0.1, subNavOpenDelay = 0.1, tabIndex = 0, triggerSubNavAction = 'hover', onClick, onDeselect, onKeyDown, onOpenChange, onSelect, ...props }, ref) => {
52
+ const utils_1 = require("../../components/Nav/utils");
53
+ const hooks_2 = require("../../hooks");
54
+ const utils_2 = require("../../utils");
55
+ const EmptyList = [];
56
+ exports.Nav = React.forwardRef(({ activeKey, builtinPlacements, children, className, classNames: navClassNames, defaultActiveFirst, defaultOpenKeys, defaultSelectedKeys, direction, disabled, expandIcon, forceSubNavRender, id, inlineCollapsed, itemIcon, items, mode = 'inline', modifiers, motion, multiple = false, openKeys, overflowDisabled, overflowedIndicator = '...', overflowedIndicatorPopupClassName, popupRender, selectable = false, selectedKeys, style, styles, subNavCloseDelay = 0.1, subNavOpenDelay = 0.1, tabIndex = 0, triggerSubNavAction = 'hover', onClick, onDeselect, onKeyDown, onOpenChange, onSelect, ...props }, ref) => {
63
57
  const config = (0, ConfigProvider_1.useConfig)();
64
58
  const { prefixCls = config.prefixCls, defaultMotions = {
65
59
  horizontal: {
66
- motionName: (0, utils_1.getMotionName)(prefixCls || config.prefixCls, 'slide-bottom-small'),
60
+ motionName: (0, utils_2.getMotionName)(prefixCls || config.prefixCls, 'slide-bottom-small'),
67
61
  },
68
- inline: (0, utils_1.getCollapseMotion)(prefixCls || config.prefixCls),
62
+ inline: (0, utils_2.getCollapseMotion)(prefixCls || config.prefixCls),
69
63
  other: {
70
64
  leavedClassName: `${prefixCls || config.prefixCls}-hidden`,
71
- motionName: (0, utils_1.getMotionName)(prefixCls || config.prefixCls, 'zoom'),
65
+ motionName: (0, utils_2.getMotionName)(prefixCls || config.prefixCls, 'zoom'),
72
66
  },
73
67
  }, getPopupContainer = config.getPopupContainer, popupPrefixCls = `${config.prefixCls}-dropdown`, ...restProps } = props;
74
- const childList = React.useMemo(() => (0, nodeUtil_1.parseItems)(children, items, EMPTY_LIST), [children, items]);
75
- const mounted = (0, hooks_1.useMounted)();
68
+ const childList = React.useMemo(() => (0, utils_1.parseItems)(children, items, EmptyList, {}, prefixCls), [children, items, prefixCls]);
69
+ const mounted = (0, hooks_2.useMounted)();
76
70
  const containerRef = React.useRef(null);
77
- const uuid = (0, useUUID_1.useUUID)(id);
71
+ const uuid = (0, useId_1.default)(id);
78
72
  const isRtl = direction === 'rtl';
79
73
  // ========================= Open =========================
80
- const [mergedOpenKeys, setMergedOpenKeys] = (0, useMergedState_1.default)(defaultOpenKeys, {
81
- postState: keys => keys || EMPTY_LIST,
82
- value: openKeys,
83
- });
74
+ const [innerOpenKeys, setMergedOpenKeys] = (0, util_1.useControlledState)(defaultOpenKeys, openKeys);
75
+ const mergedOpenKeys = innerOpenKeys || EmptyList;
84
76
  // React 18 will merge mouse event which means we open key will not sync
85
77
  // ref: https://github.com/ant-design/ant-design/issues/38818
86
78
  const triggerOpenKeys = React.useCallback((keys, forceFlush = false) => {
@@ -107,7 +99,7 @@ exports.Nav = React.forwardRef(({ _internalRenderMenuItem, _internalRenderSubMen
107
99
  }, [mode, inlineCollapsed]);
108
100
  const isInlineMode = mergedMode === 'inline';
109
101
  const [internalMode, setInternalMode] = React.useState(mergedMode);
110
- const [, setInternalInlineCollapsed] = React.useState(mergedInlineCollapsed);
102
+ const [internalInlineCollapsed, setInternalInlineCollapsed] = React.useState(mergedInlineCollapsed);
111
103
  React.useEffect(() => {
112
104
  setInternalMode(mergedMode);
113
105
  setInternalInlineCollapsed(mergedInlineCollapsed);
@@ -120,7 +112,7 @@ exports.Nav = React.forwardRef(({ _internalRenderMenuItem, _internalRenderSubMen
120
112
  }
121
113
  else {
122
114
  // Trigger open event in case it`s in control
123
- triggerOpenKeys(EMPTY_LIST);
115
+ triggerOpenKeys(EmptyList);
124
116
  }
125
117
  }, [
126
118
  mergedMode,
@@ -134,7 +126,7 @@ exports.Nav = React.forwardRef(({ _internalRenderMenuItem, _internalRenderSubMen
134
126
  const [lastVisibleIndex, setLastVisibleIndex] = React.useState(0);
135
127
  const allVisible = lastVisibleIndex >= childList.length - 1
136
128
  || internalMode !== 'horizontal'
137
- || disabledOverflow;
129
+ || overflowDisabled;
138
130
  // Cache
139
131
  React.useEffect(() => {
140
132
  if (isInlineMode) {
@@ -148,49 +140,66 @@ exports.Nav = React.forwardRef(({ _internalRenderMenuItem, _internalRenderSubMen
148
140
  };
149
141
  }, []);
150
142
  // ========================= Path =========================
151
- const { getKeyPath, getKeys, getSubPathKeys, isSubPathKey, refreshOverflowKeys, registerPath, unregisterPath, } = (0, useKeyRecords_1.useKeyRecords)();
143
+ const { getKeyPath, getKeys, getSubPathKeys, isSubPathKey, refreshOverflowKeys, registerPath, unregisterPath, } = (0, hooks_1.useKeyRecords)();
152
144
  const registerPathContext = React.useMemo(() => ({ registerPath, unregisterPath }), [registerPath, unregisterPath]);
153
145
  const pathUserContext = React.useMemo(() => ({ isSubPathKey }), [isSubPathKey]);
154
146
  React.useEffect(() => {
155
147
  refreshOverflowKeys(allVisible
156
- ? EMPTY_LIST
148
+ ? EmptyList
157
149
  : childList.slice(lastVisibleIndex + 1).map(child => child.key));
158
150
  }, [lastVisibleIndex, allVisible, refreshOverflowKeys, childList]);
159
151
  // ======================== Active ========================
160
- const [mergedActiveKey, setMergedActiveKey] = (0, useMergedState_1.default)(activeKey || ((defaultActiveFirst && childList[0]?.key)), { value: activeKey });
161
- const onActive = (0, useMemoCallback_1.useMemoCallback)((key) => {
152
+ const [mergedActiveKey, setMergedActiveKey] = (0, util_1.useControlledState)(activeKey || (defaultActiveFirst && childList[0]?.key), activeKey);
153
+ const onActive = (0, hooks_1.useMemoCallback)((key) => {
162
154
  setMergedActiveKey(key);
163
155
  });
164
- const onInactive = (0, useMemoCallback_1.useMemoCallback)(() => {
156
+ const onInactive = (0, hooks_1.useMemoCallback)(() => {
165
157
  setMergedActiveKey(undefined);
166
158
  });
167
159
  React.useImperativeHandle(ref, () => ({
160
+ findItem: ({ key: itemKey }) => {
161
+ const keys = getKeys();
162
+ const { key2element } = (0, hooks_1.refreshElements)(keys, uuid);
163
+ return key2element.get(itemKey) || null;
164
+ },
168
165
  focus: options => {
169
- const shouldFocusKey = mergedActiveKey
170
- ?? childList.find(node => !node.props.disabled)?.key;
171
- if (shouldFocusKey) {
172
- containerRef.current
173
- ?.querySelector(`li[data-nav-id='${(0, IdContext_1.getNavId)(uuid, shouldFocusKey)}']`)
174
- ?.focus?.(options);
166
+ if (!containerRef.current) {
167
+ return;
168
+ }
169
+ const keys = getKeys();
170
+ const { element2key, elements, key2element } = (0, hooks_1.refreshElements)(keys, uuid);
171
+ const focusableElements = (0, hooks_1.getFocusableElements)(containerRef.current, elements);
172
+ let shouldFocusKey;
173
+ if (mergedActiveKey && keys.includes(mergedActiveKey)) {
174
+ shouldFocusKey = mergedActiveKey;
175
+ }
176
+ else {
177
+ shouldFocusKey = focusableElements[0]
178
+ ? element2key.get(focusableElements[0])
179
+ : childList.find(node => !node.props.disabled)?.key;
180
+ }
181
+ if (!shouldFocusKey) {
182
+ return;
183
+ }
184
+ const elementToFocus = key2element.get(shouldFocusKey);
185
+ if (shouldFocusKey && elementToFocus) {
186
+ elementToFocus?.focus?.(options);
175
187
  }
176
188
  },
177
189
  list: containerRef.current,
178
190
  }));
179
191
  // ======================== Select ========================
180
192
  // >>>>> Select keys
181
- const [mergedSelectKeys, setMergedSelectKeys] = (0, useMergedState_1.default)(defaultSelectedKeys || [], {
182
- // Legacy convert key to array
183
- postState: keys => {
184
- if (Array.isArray(keys)) {
185
- return keys;
186
- }
187
- if (keys === null || keys === undefined) {
188
- return EMPTY_LIST;
189
- }
190
- return [keys];
191
- },
192
- value: selectedKeys,
193
- });
193
+ const [internalSelectKeys, setMergedSelectKeys] = (0, util_1.useControlledState)(defaultSelectedKeys || EmptyList, selectedKeys);
194
+ const mergedSelectKeys = React.useMemo(() => {
195
+ if (Array.isArray(internalSelectKeys)) {
196
+ return internalSelectKeys;
197
+ }
198
+ if (internalSelectKeys === null || internalSelectKeys === undefined) {
199
+ return EmptyList;
200
+ }
201
+ return [internalSelectKeys];
202
+ }, [internalSelectKeys]);
194
203
  // >>>>> Trigger select
195
204
  const triggerSelection = (info) => {
196
205
  if (selectable) {
@@ -211,10 +220,7 @@ exports.Nav = React.forwardRef(({ _internalRenderMenuItem, _internalRenderSubMen
211
220
  }
212
221
  setMergedSelectKeys(newSelectKeys);
213
222
  // Trigger event
214
- const selectInfo = {
215
- ...info,
216
- selectedKeys: newSelectKeys,
217
- };
223
+ const selectInfo = { ...info, selectedKeys: newSelectKeys };
218
224
  if (exist) {
219
225
  onDeselect?.(selectInfo);
220
226
  }
@@ -224,18 +230,18 @@ exports.Nav = React.forwardRef(({ _internalRenderMenuItem, _internalRenderSubMen
224
230
  }
225
231
  // Whatever selectable, always close it
226
232
  if (!multiple && mergedOpenKeys?.length && internalMode !== 'inline') {
227
- triggerOpenKeys(EMPTY_LIST);
233
+ triggerOpenKeys(EmptyList);
228
234
  }
229
235
  };
230
236
  // ========================= Open =========================
231
237
  /**
232
238
  * Click for item. SubMenu do not have selection status
233
239
  */
234
- const onInternalClick = (0, useMemoCallback_1.useMemoCallback)((info) => {
235
- onClick?.((0, warnUtil_1.warnItemProp)(info));
240
+ const onInternalClick = (0, hooks_1.useMemoCallback)((info) => {
241
+ onClick?.((0, utils_1.warnItemProp)(info));
236
242
  triggerSelection(info);
237
243
  });
238
- const onInternalOpenChange = (0, useMemoCallback_1.useMemoCallback)((key, open) => {
244
+ const onInternalOpenChange = (0, hooks_1.useMemoCallback)((key, open) => {
239
245
  let newOpenKeys = mergedOpenKeys?.filter(k => k !== key);
240
246
  if (open) {
241
247
  newOpenKeys?.push(key);
@@ -249,49 +255,38 @@ exports.Nav = React.forwardRef(({ _internalRenderMenuItem, _internalRenderSubMen
249
255
  triggerOpenKeys(newOpenKeys, true);
250
256
  }
251
257
  });
252
- const getInternalPopupContainer = (0, useMemoCallback_1.useMemoCallback)(getPopupContainer);
253
258
  // ==================== Accessibility =====================
254
259
  const triggerAccessibilityOpen = (key, open) => {
255
260
  const nextOpen = open ?? !mergedOpenKeys?.includes(key);
256
261
  onInternalOpenChange?.(key, nextOpen);
257
262
  };
258
- const onInternalKeyDown = (0, useAccessibility_1.useAccessibility)(internalMode, mergedActiveKey, isRtl, uuid, containerRef, getKeys, getKeyPath, setMergedActiveKey, triggerAccessibilityOpen, onKeyDown);
259
- // ======================= Context ========================
260
- const privateContext = React.useMemo(() => ({
261
- _internalRenderMenuItem,
262
- _internalRenderSubMenuItem,
263
- }), [_internalRenderMenuItem, _internalRenderSubMenuItem]);
263
+ const onInternalKeyDown = (0, hooks_1.useAccessibility)(internalMode, mergedActiveKey, isRtl, uuid, containerRef, getKeys, getKeyPath, setMergedActiveKey, triggerAccessibilityOpen, onKeyDown);
264
264
  // ======================== Render ========================
265
+ const rootCls = React.useMemo(() => config.getRootPrefixCls(prefixCls || config.prefixCls, 'nav'), [config, prefixCls]);
266
+ const modifiersClasses = React.useMemo(() => (Array.isArray(modifiers) ? modifiers : [modifiers])
267
+ .filter(e => e)
268
+ .map(mod => `${rootCls}-${mod}`), [modifiers, rootCls]);
265
269
  // >>>>> Children
266
- const wrappedChildList = mergedMode !== 'horizontal' || disabledOverflow
270
+ const wrappedChildList = mergedMode !== 'horizontal' || overflowDisabled
267
271
  ? childList
268
272
  // Need wrap for overflow dropdown that do not response for open
269
273
  : childList.map((child, index) => (
270
274
  // Always wrap provider to avoid sub node re-mount
271
- React.createElement(NavContext_1.NavContextProvider, { key: child.key, overflowDisabled: index > lastVisibleIndex }, child)));
272
- const rootCls = React.useMemo(() => config.getRootPrefixCls(prefixCls || config.prefixCls, 'nav'), [config, prefixCls]);
273
- const container = (React.createElement(rc_overflow_1.default, { ref: containerRef, className: (0, classnames_1.default)({
274
- [rootCls]: mergedMode !== 'horizontal',
275
- }, (Array.isArray(modifiers) ? modifiers : [modifiers])
276
- .filter(e => e)
277
- .map(mod => `${rootCls}-${mod}`), {
278
- [`${rootCls}-${mergedMode}`]: rootCls && mergedMode,
279
- [`${rootCls}-rtl`]: rootCls && isRtl,
280
- }, className), component: "ul", data: wrappedChildList, "data-menu-list": true, dir: direction, id: id, itemComponent: Item_1.Item, maxCount: (mergedMode !== 'horizontal' || disabledOverflow)
281
- ? rc_overflow_1.default.INVALIDATE
282
- : rc_overflow_1.default.RESPONSIVE, prefixCls: rootCls, renderRawItem: node => node, renderRawRest: omitItems => {
275
+ React.createElement(context_1.NavContextProvider, { key: child.key, classNames: navClassNames, overflowDisabled: index > lastVisibleIndex, styles: styles }, child)));
276
+ const container = (React.createElement(rc_overflow_1.default, { ref: containerRef, className: (0, classnames_1.default)(className, { [rootCls]: internalMode !== 'horizontal' }, `${rootCls}-${internalMode}`, modifiersClasses, {
277
+ [`${rootCls}-inline-collapsed`]: internalInlineCollapsed,
278
+ [`${rootCls}-rtl`]: isRtl,
279
+ }), component: "ul", data: wrappedChildList, "data-nav-list": true, dir: direction, id: id, itemComponent: Item_1.Item, maxCount: (internalMode !== 'horizontal' || overflowDisabled) ? rc_overflow_1.default.INVALIDATE : rc_overflow_1.default.RESPONSIVE, prefixCls: rootCls, renderRawItem: node => node, renderRawRest: omitItems => {
283
280
  // We use origin list since wrapped list use context to prevent open
284
281
  const len = omitItems.length;
285
282
  const originOmitItems = len ? childList.slice(-len) : null;
286
- return (React.createElement(Sub_1.Sub, { disabled: allVisible, eventKey: useKeyRecords_1.OVERFLOW_KEY, internalPopupClose: len === 0, popupClassName: overflowedIndicatorPopupClassName, title: overflowedIndicator }, originOmitItems));
283
+ return (React.createElement(Sub_1.Sub, { disabled: allVisible, eventKey: hooks_1.OVERFLOW_KEY, internalPopupClose: len === 0, popupClassName: overflowedIndicatorPopupClassName, title: overflowedIndicator }, originOmitItems));
287
284
  }, role: "menu", ssr: "full", style: style, tabIndex: tabIndex, onKeyDown: onInternalKeyDown, onVisibleChange: newLastIndex => {
288
285
  setLastVisibleIndex(newLastIndex);
289
286
  }, ...restProps }));
290
- // >>>>> Render
291
- return (React.createElement(PrivateContext_1.PrivateContext.Provider, { value: privateContext },
292
- React.createElement(IdContext_1.IdContext.Provider, { value: uuid },
293
- React.createElement(NavContext_1.NavContextProvider, { activeKey: mergedActiveKey, builtinPlacements: builtinPlacements, defaultMotions: mounted ? defaultMotions : undefined, disabled: disabled, expandIcon: expandIcon, forceSubNavRender: forceSubNavRender, getPopupContainer: getInternalPopupContainer, itemIcon: itemIcon, mode: mergedMode, motion: mounted ? motion : undefined, openKeys: mergedOpenKeys, popupPrefixCls: popupPrefixCls, prefixCls: rootCls, rtl: isRtl, selectedKeys: mergedSelectKeys, subNavCloseDelay: subNavCloseDelay, subNavOpenDelay: subNavOpenDelay, triggerSubNavAction: triggerSubNavAction, onActive: onActive, onInactive: onInactive, onItemClick: onInternalClick, onOpenChange: onInternalOpenChange },
294
- React.createElement(PathContext_1.PathUserContext.Provider, { value: pathUserContext }, container),
295
- React.createElement("div", { "aria-hidden": true, style: { display: 'none' } },
296
- React.createElement(PathContext_1.PathRegisterContext.Provider, { value: registerPathContext }, childList))))));
287
+ return (React.createElement(context_1.IdContext.Provider, { value: uuid },
288
+ React.createElement(context_1.NavContextProvider, { activeKey: mergedActiveKey, builtinPlacements: builtinPlacements, defaultMotions: mounted ? defaultMotions : undefined, disabled: disabled, expandIcon: expandIcon, forceSubNavRender: forceSubNavRender, getPopupContainer: getPopupContainer, itemIcon: itemIcon, mode: mergedMode, motion: mounted ? motion : undefined, openKeys: mergedOpenKeys, popupPrefixCls: popupPrefixCls, popupRender: popupRender, prefixCls: rootCls, rtl: isRtl, selectedKeys: mergedSelectKeys, subNavCloseDelay: subNavCloseDelay, subNavOpenDelay: subNavOpenDelay, triggerSubNavAction: triggerSubNavAction, onActive: onActive, onInactive: onInactive, onItemClick: onInternalClick, onOpenChange: onInternalOpenChange },
289
+ React.createElement(context_1.PathUserContext.Provider, { value: pathUserContext }, container),
290
+ React.createElement("div", { "aria-hidden": true, style: { display: 'none' } },
291
+ React.createElement(context_1.PathRegisterContext.Provider, { value: registerPathContext }, childList)))));
297
292
  });
@@ -5,7 +5,7 @@ export interface InlineSubNavListProps {
5
5
  keyPath: string[];
6
6
  open: boolean;
7
7
  }
8
- export declare function InlineSubNavList({ children, id, keyPath, open }: InlineSubNavListProps): React.JSX.Element | null;
8
+ export declare function InlineSubNavList({ children, id, keyPath, open }: InlineSubNavListProps): React.ReactElement | null;
9
9
  export declare namespace InlineSubNavList {
10
10
  var displayName: string;
11
11
  }
@@ -40,13 +40,13 @@ exports.InlineSubNavList = InlineSubNavList;
40
40
  const motion_1 = __importDefault(require("@rc-component/motion"));
41
41
  const React = __importStar(require("react"));
42
42
  const ConfigProvider_1 = require("../../../components/ConfigProvider");
43
- const NavContext_1 = require("../../../components/Nav/context/NavContext");
43
+ const context_1 = require("../../../components/Nav/context");
44
44
  const SubNavList_1 = require("../../../components/Nav/Sub/SubNavList");
45
- const motionUtil_1 = require("../../../components/Nav/utils/motionUtil");
45
+ const utils_1 = require("../../../components/Nav/utils");
46
+ const fixedMode = 'inline';
46
47
  function InlineSubNavList({ children, id, keyPath, open }) {
47
48
  const config = (0, ConfigProvider_1.useConfig)();
48
- const fixedMode = 'inline';
49
- const { defaultMotions, forceSubNavRender, mode, motion, prefixCls, } = React.useContext(NavContext_1.NavContext);
49
+ const { defaultMotions, forceSubNavRender, mode, motion, prefixCls, } = React.useContext(context_1.NavContext);
50
50
  // Always use the latest mode check
51
51
  const sameModeRef = React.useRef(false);
52
52
  sameModeRef.current = mode === fixedMode;
@@ -62,7 +62,7 @@ function InlineSubNavList({ children, id, keyPath, open }) {
62
62
  }
63
63
  }, [mode]);
64
64
  // ================================= Render =================================
65
- const mergedMotion = { ...(0, motionUtil_1.getMotion)(fixedMode, motion, defaultMotions) };
65
+ const mergedMotion = { ...(0, utils_1.getMotion)(fixedMode, motion, defaultMotions) };
66
66
  // No need appear since nest inlineCollapse changed
67
67
  if (keyPath.length > 1) {
68
68
  mergedMotion.motionAppear = false;
@@ -78,7 +78,7 @@ function InlineSubNavList({ children, id, keyPath, open }) {
78
78
  if (destroy) {
79
79
  return null;
80
80
  }
81
- return (React.createElement(NavContext_1.NavContextProvider, { locked: !sameModeRef.current, mode: fixedMode, prefixCls: prefixCls },
81
+ return (React.createElement(context_1.NavContextProvider, { locked: !sameModeRef.current, mode: fixedMode, prefixCls: prefixCls },
82
82
  React.createElement(motion_1.default, { visible: mergedOpen, ...mergedMotion, forceRender: forceSubNavRender, leavedClassName: `${config.prefixCls}-hidden`, removeOnLeave: false }, ({ className: motionClassName, style: motionStyle }) => (React.createElement(SubNavList_1.SubNavList, { className: motionClassName, id: id, style: motionStyle }, children)))));
83
83
  }
84
84
  if (process.env.NODE_ENV !== 'production') {
@@ -0,0 +1,15 @@
1
+ import * as React from 'react';
2
+ import { type NavPopupRender, type SubNavType } from '../../../components/Nav/types';
3
+ export type SemanticName = 'list' | 'listTitle';
4
+ export interface SubNavProps extends Omit<SubNavType, 'children' | 'key' | 'label'> {
5
+ classNames?: Partial<Record<SemanticName, string>>;
6
+ eventKey?: string;
7
+ internalPopupClose?: boolean;
8
+ popupRender?: NavPopupRender;
9
+ styles?: Partial<Record<SemanticName, React.CSSProperties>>;
10
+ title?: React.ReactNode;
11
+ warnKey?: boolean;
12
+ }
13
+ export declare const InternalSubNav: React.ForwardRefExoticComponent<SubNavProps & {
14
+ children?: React.ReactNode | undefined;
15
+ } & React.RefAttributes<HTMLLIElement>>;