@broxus/react-uikit 0.22.0 → 0.23.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 (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 +4 -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 +4 -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
@@ -1,39 +1,47 @@
1
- import { getFocusNodeList } from '@rc-component/util/lib/Dom/focus';
2
- import KeyCode from '@rc-component/util/lib/KeyCode';
3
- import raf from '@rc-component/util/lib/raf';
1
+ import { getFocusNodeList } from '@rc-component/util/es/Dom/focus';
2
+ import raf from '@rc-component/util/es/raf';
4
3
  import * as React from 'react';
5
- import { getNavId } from '../../../components/Nav/context/IdContext';
6
- // destruct to reduce minify size
7
- const { DOWN, ENTER, ESC, LEFT, RIGHT, UP } = KeyCode;
8
- const ArrowKeys = [UP, DOWN, LEFT, RIGHT];
9
- function getOffset(mode, isRootLevel, isRtl, which) {
4
+ import { getNavId } from '../../../components/Nav/context';
5
+ import { KeyCode } from '../../../constants';
6
+ const ArrowKeys = [
7
+ KeyCode.ArrowDown,
8
+ KeyCode.ArrowLeft,
9
+ KeyCode.ArrowRight,
10
+ KeyCode.ArrowUp,
11
+ ];
12
+ const EdgeKeys = [KeyCode.Home, KeyCode.End];
13
+ const EnteringKeys = [KeyCode.Enter, KeyCode.Space];
14
+ function getOffset(mode, isRootLevel, isRtl, isShiftKey, keyCode) {
10
15
  const prev = 'prev';
11
16
  const next = 'next';
12
17
  const children = 'children';
13
18
  const parent = 'parent';
14
19
  // Inline enter is special that we use unique operation
15
- if (mode === 'inline' && which === ENTER) {
16
- return {
17
- inlineTrigger: true,
18
- };
20
+ if (mode === 'inline' && [KeyCode.Enter.toString(), KeyCode.Space.toString()].includes(keyCode)) {
21
+ return { inlineTrigger: true };
19
22
  }
20
23
  const inline = {
21
- [DOWN]: next,
22
- [UP]: prev,
24
+ [KeyCode.ArrowDown]: next,
25
+ [KeyCode.ArrowUp]: prev,
26
+ [KeyCode.Tab]: isShiftKey ? prev : next,
23
27
  };
24
28
  const horizontal = {
25
- [DOWN]: children,
26
- [ENTER]: children,
27
- [LEFT]: isRtl ? next : prev,
28
- [RIGHT]: isRtl ? prev : next,
29
+ [KeyCode.ArrowDown]: children,
30
+ [KeyCode.ArrowLeft]: isRtl ? next : prev,
31
+ [KeyCode.ArrowRight]: isRtl ? prev : next,
32
+ [KeyCode.Enter]: children,
33
+ [KeyCode.Space]: children,
34
+ [KeyCode.Tab]: isShiftKey ? prev : next,
29
35
  };
30
36
  const vertical = {
31
- [DOWN]: next,
32
- [ENTER]: children,
33
- [ESC]: parent,
34
- [LEFT]: isRtl ? children : parent,
35
- [RIGHT]: isRtl ? parent : children,
36
- [UP]: prev,
37
+ [KeyCode.ArrowDown]: next,
38
+ [KeyCode.ArrowLeft]: isRtl ? children : parent,
39
+ [KeyCode.ArrowRight]: isRtl ? parent : children,
40
+ [KeyCode.ArrowUp]: prev,
41
+ [KeyCode.Enter]: children,
42
+ [KeyCode.Escape]: parent,
43
+ [KeyCode.Space]: children,
44
+ [KeyCode.Tab]: isShiftKey ? prev : next,
37
45
  };
38
46
  const offsets = {
39
47
  horizontal,
@@ -43,42 +51,30 @@ function getOffset(mode, isRootLevel, isRtl, which) {
43
51
  vertical,
44
52
  verticalSub: vertical,
45
53
  };
46
- const type = offsets[`${mode}${isRootLevel ? '' : 'Sub'}`]?.[which];
54
+ // @ts-ignore .....
55
+ const type = offsets[`${mode}${isRootLevel ? '' : 'Sub'}`]?.[keyCode];
47
56
  switch (type) {
48
57
  case prev:
49
- return {
50
- offset: -1,
51
- sibling: true,
52
- };
58
+ return { offset: -1, sibling: true };
53
59
  case next:
54
- return {
55
- offset: 1,
56
- sibling: true,
57
- };
60
+ return { offset: 1, sibling: true };
58
61
  case parent:
59
- return {
60
- offset: -1,
61
- sibling: false,
62
- };
62
+ return { offset: -1, sibling: false };
63
63
  case children:
64
- return {
65
- offset: 1,
66
- sibling: false,
67
- };
64
+ return { offset: 1, sibling: false };
68
65
  default:
69
- return null;
66
+ return undefined;
70
67
  }
71
68
  }
72
69
  function findContainerUL(element) {
73
70
  let current = element;
74
71
  while (current) {
75
- if (current.getAttribute('data-nav-list')) {
72
+ if (current.hasAttribute('data-nav-list')) {
76
73
  return current;
77
74
  }
78
75
  current = current.parentElement;
79
76
  }
80
77
  // Normally should not reach this line
81
- /* istanbul ignore next */
82
78
  return null;
83
79
  }
84
80
  /**
@@ -92,25 +88,25 @@ function getFocusElement(activeElement, elements) {
92
88
  }
93
89
  current = current.parentElement;
94
90
  }
95
- return null;
91
+ return undefined;
96
92
  }
97
93
  /**
98
94
  * Get focusable elements from the element set under provided container
99
95
  */
100
- function getFocusableElements(container, elements) {
96
+ export function getFocusableElements(container, elements) {
101
97
  const list = getFocusNodeList(container, true);
102
98
  return list.filter(ele => elements.has(ele));
103
99
  }
104
- function getNextFocusElement(parentQueryContainer, elements, focusMenuElement, offset = 1) {
100
+ function getNextFocusElement(parentQueryContainer, elements, focusNavElement, offset = 1) {
105
101
  // Key on the menu item will not get validate parent container
106
102
  if (!parentQueryContainer) {
107
103
  return undefined;
108
104
  }
109
105
  // List current level menu item elements
110
- const sameLevelFocusableMenuElementList = getFocusableElements(parentQueryContainer, elements);
106
+ const sameLevelFocusableNavElementList = getFocusableElements(parentQueryContainer, elements);
111
107
  // Find next focus index
112
- const count = sameLevelFocusableMenuElementList.length;
113
- let focusIndex = sameLevelFocusableMenuElementList.findIndex(ele => focusMenuElement === ele);
108
+ const count = sameLevelFocusableNavElementList.length;
109
+ let focusIndex = sameLevelFocusableNavElementList.findIndex(ele => focusNavElement === ele);
114
110
  if (offset < 0) {
115
111
  if (focusIndex === -1) {
116
112
  focusIndex = count - 1;
@@ -124,7 +120,21 @@ function getNextFocusElement(parentQueryContainer, elements, focusMenuElement, o
124
120
  }
125
121
  focusIndex = (focusIndex + count) % count;
126
122
  // Focus menu item
127
- return sameLevelFocusableMenuElementList[focusIndex];
123
+ return sameLevelFocusableNavElementList[focusIndex];
124
+ }
125
+ export function refreshElements(keys, id) {
126
+ const elements = new Set();
127
+ const key2element = new Map();
128
+ const element2key = new Map();
129
+ keys.forEach(key => {
130
+ const element = document.querySelector(`[data-nav-id='${getNavId(id, key)}']`);
131
+ if (element) {
132
+ elements.add(element);
133
+ element2key.set(element, key);
134
+ key2element.set(key, element);
135
+ }
136
+ });
137
+ return { element2key, elements, key2element };
128
138
  }
129
139
  export function useAccessibility(mode, activeKey, isRtl, id, containerRef, getKeys, getKeyPath, triggerActiveKey, triggerAccessibilityOpen, originOnKeyDown) {
130
140
  const rafRef = React.useRef(undefined);
@@ -137,50 +147,33 @@ export function useAccessibility(mode, activeKey, isRtl, id, containerRef, getKe
137
147
  cleanRaf();
138
148
  }, []);
139
149
  return event => {
140
- const { which } = event;
141
- if ([...ArrowKeys, ENTER, ESC].includes(which)) {
142
- // Convert key to elements
143
- let element2key = new Map(), elements = new Set(), key2element = new Map();
144
- // >>> Wrap as function since we use raf for some case
145
- const refreshElements = () => {
146
- elements = new Set();
147
- key2element = new Map();
148
- element2key = new Map();
149
- const keys = getKeys();
150
- keys.forEach(key => {
151
- const element = document.querySelector(`[data-nav-id='${getNavId(id, key)}']`);
152
- if (element) {
153
- elements.add(element);
154
- element2key.set(element, key);
155
- key2element.set(key, element);
156
- }
157
- });
158
- return elements;
159
- };
160
- refreshElements();
150
+ if ([...ArrowKeys, ...EdgeKeys, ...EnteringKeys, KeyCode.Escape, KeyCode.Tab].includes(event.code)) {
151
+ const keys = getKeys();
152
+ let refreshedElements = refreshElements(keys, id);
153
+ const { element2key, elements, key2element } = refreshedElements;
161
154
  // First we should find current focused MenuItem/SubMenu element
162
155
  const activeElement = key2element.get(activeKey);
163
156
  const focusMenuElement = getFocusElement(activeElement, elements);
164
- const focusMenuKey = focusMenuElement ? element2key.get(focusMenuElement) : undefined;
165
- const offsetObj = getOffset(mode, focusMenuKey !== undefined && getKeyPath(focusMenuKey, true).length === 1, isRtl, which);
157
+ const focusMenuKey = focusMenuElement ? element2key.get(focusMenuElement) : null;
158
+ const offsetObj = getOffset(mode, focusMenuKey != null ? getKeyPath(focusMenuKey, true).length === 1 : true, isRtl, event.shiftKey, event.code);
166
159
  // Some mode do not have fully arrow operation like inline
167
- if (!offsetObj) {
160
+ if (!offsetObj && event.code !== KeyCode.Home && event.code !== KeyCode.End) {
168
161
  return;
169
162
  }
170
163
  // Arrow prevent default to avoid page scroll
171
- if (ArrowKeys.includes(which)) {
164
+ if ([...ArrowKeys, ...EdgeKeys, KeyCode.Enter, KeyCode.Tab].includes(event.code)) {
172
165
  event.preventDefault();
173
166
  }
174
- const tryFocus = (menuElement) => {
175
- if (menuElement) {
176
- let focusTargetElement = menuElement;
167
+ const tryFocus = (navElement) => {
168
+ if (navElement) {
169
+ let focusTargetElement = navElement;
177
170
  // Focus to link instead of menu item if possible
178
- const link = menuElement.querySelector('a');
171
+ const link = navElement.querySelector('a');
179
172
  if (link?.getAttribute('href')) {
180
173
  focusTargetElement = link;
181
174
  }
182
- const targetKey = element2key.get(menuElement);
183
- if (targetKey !== undefined) {
175
+ const targetKey = element2key.get(navElement);
176
+ if (targetKey != null) {
184
177
  triggerActiveKey(targetKey);
185
178
  }
186
179
  /**
@@ -196,25 +189,28 @@ export function useAccessibility(mode, activeKey, isRtl, id, containerRef, getKe
196
189
  });
197
190
  }
198
191
  };
199
- if (offsetObj.sibling || !focusMenuElement) {
192
+ // @ts-ignore .....
193
+ if (EdgeKeys.includes(event.code) || offsetObj?.sibling || !focusMenuElement) {
200
194
  // ========================== Sibling ==========================
201
195
  // Find walkable focus menu element container
202
- let parentQueryContainer;
203
- if (!focusMenuElement || mode === 'inline') {
204
- parentQueryContainer = containerRef.current;
205
- }
206
- else {
207
- parentQueryContainer = findContainerUL(focusMenuElement);
208
- }
196
+ const parentQueryContainer = (!focusMenuElement || mode === 'inline')
197
+ ? containerRef.current
198
+ : findContainerUL(focusMenuElement);
209
199
  if (parentQueryContainer == null) {
210
200
  return;
211
201
  }
212
202
  // Get next focus element
213
- const targetElement = getNextFocusElement(parentQueryContainer,
214
- // @ts-ignore bla bla ts
215
- elements,
216
- // @ts-ignore bla bla ts
217
- focusMenuElement, offsetObj.offset);
203
+ let targetElement;
204
+ const focusableElements = getFocusableElements(parentQueryContainer, elements);
205
+ if (event.code === KeyCode.Home) {
206
+ [targetElement] = focusableElements;
207
+ }
208
+ else if (event.code === KeyCode.End) {
209
+ targetElement = focusableElements[focusableElements.length - 1];
210
+ }
211
+ else {
212
+ targetElement = getNextFocusElement(parentQueryContainer, elements, focusMenuElement, offsetObj?.offset);
213
+ }
218
214
  if (targetElement == null) {
219
215
  return;
220
216
  }
@@ -222,17 +218,17 @@ export function useAccessibility(mode, activeKey, isRtl, id, containerRef, getKe
222
218
  tryFocus(targetElement);
223
219
  }
224
220
  // ======================= InlineTrigger =======================
225
- else if (offsetObj.inlineTrigger && focusMenuKey !== undefined) {
221
+ else if (offsetObj?.inlineTrigger && focusMenuKey) {
226
222
  // Inline trigger no need switch to sub menu item
227
223
  triggerAccessibilityOpen(focusMenuKey);
228
224
  }
229
225
  // =========================== Level ===========================
230
- else if (offsetObj.offset && focusMenuKey !== undefined) {
226
+ else if ((offsetObj?.offset ?? 0) > 0 && focusMenuKey) {
231
227
  triggerAccessibilityOpen(focusMenuKey, true);
232
228
  cleanRaf();
233
229
  rafRef.current = raf(() => {
234
230
  // Async should re-sync elements
235
- refreshElements();
231
+ refreshedElements = refreshElements(keys, id);
236
232
  const controlId = focusMenuElement.getAttribute('aria-controls');
237
233
  if (controlId == null) {
238
234
  return;
@@ -250,12 +246,12 @@ export function useAccessibility(mode, activeKey, isRtl, id, containerRef, getKe
250
246
  tryFocus(targetElement);
251
247
  }, 5);
252
248
  }
253
- else if ((!offsetObj.offset || offsetObj.offset < 0) && focusMenuKey !== undefined) {
249
+ else if ((offsetObj?.offset ?? 0) < 0 && focusMenuKey) {
254
250
  const keyPath = getKeyPath(focusMenuKey, true);
255
251
  const parentKey = keyPath[keyPath.length - 2];
256
- const parentMenuElement = key2element.get(parentKey);
257
252
  // Focus menu item
258
253
  triggerAccessibilityOpen(parentKey, false);
254
+ const parentMenuElement = key2element.get(parentKey);
259
255
  if (parentMenuElement == null) {
260
256
  return;
261
257
  }
@@ -1,10 +1,8 @@
1
1
  import * as React from 'react';
2
- import { NavContext } from '../../../components/Nav/context/NavContext';
2
+ import { NavContext } from '../../../components/Nav/context';
3
3
  export function useActive(eventKey, disabled, onMouseEnter, onMouseLeave) {
4
- const {
5
- // Active
6
- activeKey, onActive, onInactive, } = React.useContext(NavContext);
7
- if (eventKey === undefined) {
4
+ const { activeKey, onActive, onInactive } = React.useContext(NavContext);
5
+ if (eventKey == null) {
8
6
  return { active: false };
9
7
  }
10
8
  const ret = {
@@ -13,17 +11,11 @@ export function useActive(eventKey, disabled, onMouseEnter, onMouseLeave) {
13
11
  // Skip when disabled
14
12
  if (!disabled) {
15
13
  ret.onMouseEnter = domEvent => {
16
- onMouseEnter?.({
17
- domEvent,
18
- key: eventKey,
19
- });
14
+ onMouseEnter?.({ domEvent, key: eventKey });
20
15
  onActive(eventKey);
21
16
  };
22
17
  ret.onMouseLeave = domEvent => {
23
- onMouseLeave?.({
24
- domEvent,
25
- key: eventKey,
26
- });
18
+ onMouseLeave?.({ domEvent, key: eventKey });
27
19
  onInactive(eventKey);
28
20
  };
29
21
  }
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { NavContext } from '../../../components/Nav/context/NavContext';
2
+ import { NavContext } from '../../../components/Nav/context';
3
3
  export function useDirectionStyle(level) {
4
4
  const { inlineIndent, mode, rtl } = React.useContext(NavContext);
5
5
  if (mode !== 'inline') {
@@ -1,5 +1,5 @@
1
- export declare const OVERFLOW_KEY = "rc-menu-more";
2
- type KeyRecords = {
1
+ export declare const OVERFLOW_KEY = "uk-nav-more";
2
+ interface KeyRecords {
3
3
  getKeyPath: (eventKey: string, includeOverflow?: boolean | undefined) => string[];
4
4
  getKeys: () => string[];
5
5
  getSubPathKeys: (key: string) => Set<string>;
@@ -7,6 +7,6 @@ type KeyRecords = {
7
7
  refreshOverflowKeys: (keys: string[]) => void;
8
8
  registerPath: (key: string, keyPath: string[]) => void;
9
9
  unregisterPath: (key: string, keyPath: string[]) => void;
10
- };
10
+ }
11
11
  export declare function useKeyRecords(): KeyRecords;
12
12
  export {};
@@ -1,6 +1,6 @@
1
- import warning from '@rc-component/util/lib/warning';
1
+ import { warning } from '@rc-component/util';
2
2
  import * as React from 'react';
3
- import { nextSlice } from '../../../components/Nav/utils/timeUtil';
3
+ import { nextSlice } from '../../../components/Nav/utils';
4
4
  import { useForceUpdate } from '../../../hooks';
5
5
  const PATH_SPLIT = '__RC_UTIL_PATH_SPLIT__';
6
6
  function getPathStr(keyPath) {
@@ -9,7 +9,7 @@ function getPathStr(keyPath) {
9
9
  function getPathKeys(keyPathStr) {
10
10
  return keyPathStr.split(PATH_SPLIT);
11
11
  }
12
- export const OVERFLOW_KEY = 'rc-menu-more';
12
+ export const OVERFLOW_KEY = 'uk-nav-more';
13
13
  export function useKeyRecords() {
14
14
  const forceUpdate = useForceUpdate();
15
15
  const key2pathRef = React.useRef(new Map());
@@ -1,12 +1,16 @@
1
1
  import { type ActionType } from '@rc-component/trigger';
2
2
  import type * as React from 'react';
3
+ import { type SubNavProps } from '../../components/Nav/Sub/InternalSubNav';
3
4
  export interface NavRef {
5
+ findItem: (params: {
6
+ key: string;
7
+ }) => HTMLElement | null;
4
8
  /**
5
9
  * Focus active child if any, or the first child which is not disabled will be focused.
6
10
  * @param {FocusOptions} [options]
7
11
  */
8
12
  focus: (options?: FocusOptions) => void;
9
- list: HTMLUListElement | null;
13
+ list?: HTMLUListElement | null;
10
14
  }
11
15
  interface ItemSharedProps {
12
16
  className?: string;
@@ -21,6 +25,7 @@ export interface SubNavType extends ItemSharedProps {
21
25
  label?: React.ReactNode;
22
26
  popupClassName?: string;
23
27
  popupOffset?: number[];
28
+ popupStyle?: React.CSSProperties;
24
29
  rootClassName?: string;
25
30
  onClick?: NavClickEventHandler;
26
31
  onMouseEnter?: NavHoverEventHandler;
@@ -31,9 +36,11 @@ export interface SubNavType extends ItemSharedProps {
31
36
  }
32
37
  export interface NavItemType extends ItemSharedProps {
33
38
  disabled?: boolean;
39
+ extra?: React.ReactNode;
34
40
  itemIcon?: RenderIconType;
35
41
  key: React.Key;
36
42
  label?: React.ReactNode;
43
+ type?: 'item';
37
44
  onClick?: NavClickEventHandler;
38
45
  onMouseEnter?: NavHoverEventHandler;
39
46
  onMouseLeave?: NavHoverEventHandler;
@@ -78,4 +85,10 @@ export interface SelectInfo extends NavInfo {
78
85
  }
79
86
  export type SelectEventHandler = (info: SelectInfo) => void;
80
87
  export type NavClickEventHandler = (info: NavInfo) => void;
88
+ export type NavComponentType = 'subnav' | 'item' | 'group' | 'divider';
89
+ export type NavComponents = Partial<Record<NavComponentType, React.ComponentType<any>>>;
90
+ export type NavPopupRender = (node: React.ReactElement, info: {
91
+ item: SubNavProps;
92
+ keys: string[];
93
+ }) => React.ReactNode;
81
94
  export {};
@@ -1,3 +1,3 @@
1
- import { type AlignType, type BuildInPlacements } from '@rc-component/trigger/lib/interface';
1
+ import { type AlignType, type BuildInPlacements } from '@rc-component/trigger/es/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;
@@ -6,10 +6,7 @@ function isPointsEq(a1, a2, isAlignPoint) {
6
6
  }
7
7
  export function getAlignFromPlacement(builtinPlacements, placementStr, align) {
8
8
  const baseAlign = builtinPlacements[placementStr] || {};
9
- return {
10
- ...baseAlign,
11
- ...align,
12
- };
9
+ return { ...baseAlign, ...align };
13
10
  }
14
11
  export function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {
15
12
  const { points } = align;
@@ -0,0 +1,5 @@
1
+ export * from '../../../components/Nav/utils/alignUtil';
2
+ export * from '../../../components/Nav/utils/motionUtil';
3
+ export * from '../../../components/Nav/utils/nodeUtil';
4
+ export * from '../../../components/Nav/utils/timeUtil';
5
+ export * from '../../../components/Nav/utils/warnUtil';
@@ -0,0 +1,5 @@
1
+ export * from '../../../components/Nav/utils/alignUtil';
2
+ export * from '../../../components/Nav/utils/motionUtil';
3
+ export * from '../../../components/Nav/utils/nodeUtil';
4
+ export * from '../../../components/Nav/utils/timeUtil';
5
+ export * from '../../../components/Nav/utils/warnUtil';
@@ -1,4 +1,4 @@
1
1
  import * as React from 'react';
2
- import { type ItemType } from '../../../components/Nav/types';
2
+ import { type ItemType, type NavComponents } from '../../../components/Nav/types';
3
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>>[];
4
+ export declare function parseItems(children: React.ReactNode | undefined, items: ItemType[] | undefined, keyPath: string[], components: NavComponents, prefixCls?: string): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>[];
@@ -1,59 +1,66 @@
1
- import toArray from '@rc-component/util/lib/Children/toArray';
1
+ import { toArray } from '@rc-component/util';
2
2
  import * as React from 'react';
3
3
  import { Divider } from '../../../components/Nav/Divider';
4
4
  import { Group } from '../../../components/Nav/Group';
5
5
  import { Item } from '../../../components/Nav/Item';
6
6
  import { Sub } from '../../../components/Nav/Sub';
7
- export function parseChildren(children, keyPath) {
8
- return toArray(children).map((child, index) => {
9
- if (React.isValidElement(child)) {
10
- const { key } = child;
11
- let eventKey = child.props?.eventKey ?? key;
12
- const emptyKey = eventKey === null || eventKey === undefined;
13
- if (emptyKey) {
14
- eventKey = `tmp_key-${[...keyPath, index].join('-')}`;
15
- }
16
- const cloneProps = {
17
- eventKey,
18
- key: eventKey,
19
- };
20
- if (process.env.NODE_ENV !== 'production' && emptyKey) {
21
- cloneProps.warnKey = true;
22
- }
23
- return React.cloneElement(child, cloneProps);
24
- }
25
- return child;
26
- });
27
- }
28
- function convertItemsToNodes(list) {
7
+ function convertItemsToNodes(list, components, prefixCls) {
8
+ const { divider: MergedDivider, group: MergedNavGroup, item: MergedNavItem, subnav: MergedSubNav, } = components;
29
9
  return (list || [])
30
10
  .map((opt, index) => {
31
11
  if (opt && typeof opt === 'object') {
32
- const { children, key, label, type, ...restProps } = opt;
12
+ const { children, extra, key, label, type, ...restProps } = opt;
33
13
  const mergedKey = key ?? `tmp-${index}`;
34
- // MenuItemGroup & SubMenuItem
14
+ // NavItemGroup & SubNavItem
35
15
  if (children || type === 'group') {
36
16
  if (type === 'group') {
37
17
  // Group
38
- return (React.createElement(Group, { key: mergedKey, ...restProps, title: label }, convertItemsToNodes(children)));
18
+ return (React.createElement(MergedNavGroup, { key: mergedKey, ...restProps, title: label }, convertItemsToNodes(children, components, prefixCls)));
39
19
  }
40
20
  // Sub Menu
41
- return (React.createElement(Sub, { key: mergedKey, ...restProps, title: label }, convertItemsToNodes(children)));
21
+ return (React.createElement(MergedSubNav, { key: mergedKey, ...restProps, title: label }, convertItemsToNodes(children, components, prefixCls)));
42
22
  }
43
23
  // MenuItem & Divider
44
24
  if (type === 'divider') {
45
- return React.createElement(Divider, { key: mergedKey, ...restProps });
25
+ return React.createElement(MergedDivider, { key: mergedKey, ...restProps });
46
26
  }
47
- return (React.createElement(Item, { key: mergedKey, ...restProps }, label));
27
+ return (React.createElement(MergedNavItem, { key: mergedKey, ...restProps, extra: extra },
28
+ label,
29
+ (!!extra || extra === 0) && (React.createElement("span", { className: `${prefixCls}-item-extra` }, extra))));
48
30
  }
49
31
  return null;
50
32
  })
51
33
  .filter(opt => opt);
52
34
  }
53
- export function parseItems(children, items, keyPath) {
35
+ export function parseChildren(children, keyPath) {
36
+ return toArray(children).map((child, index) => {
37
+ if (React.isValidElement(child)) {
38
+ const { key } = child;
39
+ let eventKey = child.props?.eventKey ?? key;
40
+ const emptyKey = eventKey === null || eventKey === undefined;
41
+ if (emptyKey) {
42
+ eventKey = `tmp_key-${[...keyPath, index].join('-')}`;
43
+ }
44
+ const cloneProps = { eventKey, key: eventKey };
45
+ if (process.env.NODE_ENV !== 'production' && emptyKey) {
46
+ cloneProps.warnKey = true;
47
+ }
48
+ return React.cloneElement(child, cloneProps);
49
+ }
50
+ return child;
51
+ });
52
+ }
53
+ export function parseItems(children, items, keyPath, components, prefixCls) {
54
54
  let childNodes = children;
55
+ const mergedComponents = {
56
+ divider: Divider,
57
+ group: Group,
58
+ item: Item,
59
+ subnav: Sub,
60
+ ...components,
61
+ };
55
62
  if (items) {
56
- childNodes = convertItemsToNodes(items);
63
+ childNodes = convertItemsToNodes(items, mergedComponents, prefixCls);
57
64
  }
58
65
  return parseChildren(childNodes, keyPath);
59
66
  }
@@ -1,4 +1,4 @@
1
- import warning from '@rc-component/util/lib/warning';
1
+ import { warning } from '@rc-component/util';
2
2
  /**
3
3
  * `onClick` event return `info.item` which point to react node directly.
4
4
  * We should warning this since it will not work on FC.
@@ -5,7 +5,7 @@ export interface NavbarCenterOwnProps extends React.HTMLAttributes<HTMLElement>
5
5
  }
6
6
  export type NavbarCenterProps<E extends React.ElementType = React.ElementType> = NavbarCenterOwnProps & PolymorphicProps<E> & PolymorphicProps<E, NavbarCenterOwnProps>;
7
7
  declare const defaultElement = "div";
8
- export declare function Center<E extends React.ElementType = typeof defaultElement>({ className, component, ...props }: React.PropsWithChildren<NavbarCenterProps<E>>): React.JSX.Element;
8
+ export declare function Center<E extends React.ElementType = typeof defaultElement>({ className, component, ...props }: React.PropsWithChildren<NavbarCenterProps<E>>): React.ReactElement;
9
9
  export declare namespace Center {
10
10
  var displayName: string;
11
11
  }
@@ -6,7 +6,7 @@ export interface NavbarContainerOwnProps extends React.HTMLAttributes<HTMLElemen
6
6
  }
7
7
  export type NavbarContainerProps<E extends React.ElementType = React.ElementType> = NavbarContainerOwnProps & PolymorphicProps<E> & PolymorphicProps<E, NavbarContainerOwnProps>;
8
8
  declare const defaultElement = "div";
9
- export declare function Container<E extends React.ElementType = typeof defaultElement>({ className, component, transparent, ...props }: React.PropsWithChildren<NavbarContainerProps<E>>): React.JSX.Element;
9
+ export declare function Container<E extends React.ElementType = typeof defaultElement>({ className, component, transparent, ...props }: React.PropsWithChildren<NavbarContainerProps<E>>): React.ReactElement;
10
10
  export declare namespace Container {
11
11
  var displayName: string;
12
12
  }
@@ -6,7 +6,7 @@ export interface NavbarItemOwnProps extends React.HTMLAttributes<HTMLElement> {
6
6
  }
7
7
  export type NavbarItemProps<E extends React.ElementType = React.ElementType> = NavbarItemOwnProps & PolymorphicProps<E> & PolymorphicProps<E, NavbarItemOwnProps>;
8
8
  declare const defaultElement = "div";
9
- export declare function Item<E extends React.ElementType = typeof defaultElement>({ className, component, ...props }: React.PropsWithChildren<NavbarItemProps<E>>): React.JSX.Element;
9
+ export declare function Item<E extends React.ElementType = typeof defaultElement>({ className, component, ...props }: React.PropsWithChildren<NavbarItemProps<E>>): React.ReactElement;
10
10
  export declare namespace Item {
11
11
  var displayName: string;
12
12
  }
@@ -5,7 +5,7 @@ export interface NavbarLeftOwnProps extends React.HTMLAttributes<HTMLElement> {
5
5
  }
6
6
  export type NavbarLeftProps<E extends React.ElementType = React.ElementType> = NavbarLeftOwnProps & PolymorphicProps<E> & PolymorphicProps<E, NavbarLeftOwnProps>;
7
7
  declare const defaultElement = "div";
8
- export declare function Left<E extends React.ElementType = typeof defaultElement>({ className, component, ...props }: React.PropsWithChildren<NavbarLeftProps<E>>): React.JSX.Element;
8
+ export declare function Left<E extends React.ElementType = typeof defaultElement>({ className, component, ...props }: React.PropsWithChildren<NavbarLeftProps<E>>): React.ReactElement;
9
9
  export declare namespace Left {
10
10
  var displayName: string;
11
11
  }
@@ -4,4 +4,4 @@ export interface NavbarProps extends React.HTMLAttributes<HTMLElement> {
4
4
  prefixCls?: string;
5
5
  transparent?: boolean;
6
6
  }
7
- export declare function Navbar({ asContainer, className, transparent, ...props }: NavbarProps): React.JSX.Element;
7
+ export declare function Navbar({ asContainer, className, transparent, ...props }: NavbarProps): React.ReactElement;