@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
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.InternalSubNav = void 0;
40
+ /* eslint-disable jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions */
41
+ const util_1 = require("@rc-component/util");
42
+ const classnames_1 = __importDefault(require("classnames"));
43
+ const rc_overflow_1 = __importDefault(require("rc-overflow"));
44
+ const React = __importStar(require("react"));
45
+ const ConfigProvider_1 = require("../../../components/ConfigProvider");
46
+ const context_1 = require("../../../components/Nav/context");
47
+ const hooks_1 = require("../../../components/Nav/hooks");
48
+ const InlineSubNavList_1 = require("../../../components/Nav/Sub/InlineSubNavList");
49
+ const PopupTrigger_1 = require("../../../components/Nav/Sub/PopupTrigger");
50
+ const SubNavList_1 = require("../../../components/Nav/Sub/SubNavList");
51
+ const utils_1 = require("../../../components/Nav/utils");
52
+ exports.InternalSubNav = React.forwardRef(({ children, className, classNames: navClassNames, disabled, eventKey, expandIcon, internalPopupClose, itemIcon, popupClassName, popupOffset, popupRender: propsPopupRender, popupStyle, style, styles, title, warnKey, onClick, onMouseEnter, onMouseLeave, onTitleClick, onTitleMouseEnter, onTitleMouseLeave, ...props }, ref) => {
53
+ const config = (0, ConfigProvider_1.useConfig)();
54
+ const connectedPath = (0, context_1.useFullPath)();
55
+ const domDataId = (0, context_1.useNavId)(eventKey);
56
+ const { activeKey, disabled: contextDisabled, expandIcon: contextExpandIcon, itemIcon: contextItemIcon, mode, openKeys, overflowDisabled, popupPrefixCls, popupRender: contextPopupRender, selectedKeys, onActive, onItemClick, onOpenChange, } = React.useContext(context_1.NavContext);
57
+ const pathUser = React.useContext(context_1.PathUserContext);
58
+ const elementRef = React.useRef(null);
59
+ const popupRef = React.useRef(null);
60
+ const mergedDisabled = contextDisabled || disabled;
61
+ // ================================ Warn ================================
62
+ if (process.env.NODE_ENV !== 'production' && warnKey) {
63
+ (0, util_1.warning)(false, 'SubNav should not leave undefined `key`.');
64
+ }
65
+ // ================================ Icon ================================
66
+ const mergedItemIcon = itemIcon || contextItemIcon;
67
+ const mergedExpandIcon = expandIcon || contextExpandIcon;
68
+ // ================================ Open ================================
69
+ const originOpen = eventKey ? openKeys.includes(eventKey) : false;
70
+ const open = !overflowDisabled && originOpen;
71
+ // =============================== Select ===============================
72
+ const childrenSelected = eventKey ? pathUser?.isSubPathKey(selectedKeys, eventKey) : false;
73
+ // =============================== Active ===============================
74
+ const { active, ...activeProps } = (0, hooks_1.useActive)(eventKey, mergedDisabled, onTitleMouseEnter, onTitleMouseLeave);
75
+ // Fallback of active check to avoid hover on menu title or disabled item
76
+ const [childrenActive, setChildrenActive] = React.useState(false);
77
+ const triggerChildrenActive = (newActive) => {
78
+ if (!mergedDisabled) {
79
+ setChildrenActive(newActive);
80
+ }
81
+ };
82
+ const onInternalMouseEnter = domEvent => {
83
+ triggerChildrenActive(true);
84
+ if (eventKey) {
85
+ onMouseEnter?.({ domEvent, key: eventKey });
86
+ }
87
+ };
88
+ const onInternalMouseLeave = domEvent => {
89
+ triggerChildrenActive(false);
90
+ if (eventKey) {
91
+ onMouseLeave?.({ domEvent, key: eventKey });
92
+ }
93
+ };
94
+ const mergedActive = React.useMemo(() => {
95
+ if (active) {
96
+ return active;
97
+ }
98
+ if (mode !== 'inline' && eventKey) {
99
+ return childrenActive || pathUser?.isSubPathKey([activeKey], eventKey);
100
+ }
101
+ return false;
102
+ }, [active, mode, eventKey, childrenActive, pathUser, activeKey]);
103
+ // ========================== DirectionStyle ==========================
104
+ const directionStyle = (0, hooks_1.useDirectionStyle)(connectedPath.length);
105
+ // =============================== Events ===============================
106
+ // Title click
107
+ const onInternalTitleClick = domEvent => {
108
+ // Skip if disabled
109
+ if (mergedDisabled) {
110
+ return;
111
+ }
112
+ if (eventKey) {
113
+ onTitleClick?.({ domEvent, key: eventKey });
114
+ }
115
+ // Trigger open by click when mode is `inline`
116
+ if (mode === 'inline' && eventKey) {
117
+ onOpenChange(eventKey, !originOpen);
118
+ }
119
+ };
120
+ // Context for children click
121
+ const onMergedItemClick = (0, hooks_1.useMemoCallback)((info) => {
122
+ onClick?.((0, utils_1.warnItemProp)(info));
123
+ onItemClick?.(info);
124
+ });
125
+ // Visible change
126
+ const onPopupVisibleChange = (newVisible) => {
127
+ if (mode !== 'inline' && eventKey) {
128
+ onOpenChange(eventKey, newVisible);
129
+ }
130
+ };
131
+ /**
132
+ * Used for accessibility. Helper will focus element without keyboard.
133
+ * We should manually trigger an active
134
+ */
135
+ const onInternalFocus = () => {
136
+ if (eventKey) {
137
+ onActive(eventKey);
138
+ }
139
+ };
140
+ // =============================== Render ===============================
141
+ const popupId = domDataId ? `${domDataId}-dropdown` : undefined;
142
+ // Title
143
+ let titleNode = (React.createElement("a", { ref: elementRef, "aria-controls": popupId, "aria-disabled": mergedDisabled, "aria-expanded": open, "aria-haspopup": true, "data-nav-id": overflowDisabled && domDataId ? null : domDataId, role: mergedDisabled ? undefined : 'menuitem', style: { ...directionStyle }, tabIndex: mergedDisabled ? undefined : -1, onClick: onInternalTitleClick, onFocus: onInternalFocus, ...activeProps },
144
+ React.createElement(React.Fragment, { key: "children" },
145
+ title,
146
+ typeof mergedExpandIcon === 'function' ? mergedExpandIcon({
147
+ disabled: mergedDisabled,
148
+ isOpen: open,
149
+ isSubNav: true,
150
+ }) : mergedExpandIcon)));
151
+ // Cache mode if it changes to `inline` which do not have popup motion
152
+ const triggerModeRef = React.useRef(mode);
153
+ if (mode !== 'inline' && connectedPath.length > 1) {
154
+ triggerModeRef.current = 'vertical';
155
+ }
156
+ else {
157
+ triggerModeRef.current = mode;
158
+ }
159
+ const popupContentTriggerMode = triggerModeRef.current;
160
+ const renderPopupContent = React.useMemo(() => {
161
+ const originNode = (React.createElement(context_1.NavContextProvider, { classNames: navClassNames, mode: popupContentTriggerMode === 'horizontal' ? 'vertical' : popupContentTriggerMode, styles: styles },
162
+ React.createElement(SubNavList_1.SubNavList, { ref: popupRef, className: `${popupPrefixCls}-nav`, id: popupId }, children)));
163
+ const mergedPopupRender = propsPopupRender || contextPopupRender;
164
+ if (mergedPopupRender) {
165
+ return mergedPopupRender(originNode, { item: props, keys: connectedPath });
166
+ }
167
+ return originNode;
168
+ }, [
169
+ navClassNames,
170
+ popupContentTriggerMode,
171
+ styles,
172
+ popupPrefixCls,
173
+ popupId,
174
+ children,
175
+ propsPopupRender,
176
+ contextPopupRender,
177
+ props,
178
+ connectedPath,
179
+ ]);
180
+ if (!overflowDisabled) {
181
+ const triggerMode = triggerModeRef.current;
182
+ // Still wrap with Trigger here since we need avoid react re-mount dom node
183
+ // Which makes motion failed
184
+ titleNode = (React.createElement(PopupTrigger_1.PopupTrigger, { disabled: mergedDisabled, mode: triggerMode, popup: renderPopupContent, popupClassName: popupClassName, popupOffset: popupOffset, popupStyle: popupStyle, prefixCls: popupPrefixCls, visible: !internalPopupClose && open && mode !== 'inline', onVisibleChange: onPopupVisibleChange }, titleNode));
185
+ }
186
+ // List node
187
+ const listNode = (React.createElement(rc_overflow_1.default.Item, { ref: ref, className: (0, classnames_1.default)(`${config.prefixCls}-parent`, className, {
188
+ [`${config.prefixCls}-active`]: childrenSelected,
189
+ [`${config.prefixCls}-disabled`]: mergedDisabled,
190
+ [`${config.prefixCls}-hover`]: mergedActive,
191
+ [`${config.prefixCls}-open`]: open,
192
+ }), role: "none", ...props, component: "li", style: style, onMouseEnter: onInternalMouseEnter, onMouseLeave: onInternalMouseLeave },
193
+ titleNode,
194
+ !overflowDisabled && (React.createElement(InlineSubNavList_1.InlineSubNavList, { id: popupId, keyPath: connectedPath, open: open }, children))));
195
+ return (React.createElement(context_1.NavContextProvider, { classNames: navClassNames, expandIcon: mergedExpandIcon, itemIcon: mergedItemIcon, mode: mode === 'horizontal' ? 'vertical' : mode, styles: styles, onItemClick: onMergedItemClick }, listNode));
196
+ });
@@ -7,11 +7,12 @@ export interface PopupTriggerProps {
7
7
  popup: React.ReactNode;
8
8
  popupClassName?: string;
9
9
  popupOffset?: number[];
10
+ popupStyle?: React.CSSProperties;
10
11
  prefixCls: string;
11
12
  visible: boolean;
12
13
  onVisibleChange: (visible: boolean) => void;
13
14
  }
14
- export declare function PopupTrigger({ children, disabled, mode, popup, popupClassName, popupOffset, prefixCls, visible, onVisibleChange, }: PopupTriggerProps): React.JSX.Element;
15
+ export declare function PopupTrigger({ children, disabled, mode, popup, popupClassName, popupOffset, popupStyle, prefixCls, visible, onVisibleChange, }: PopupTriggerProps): React.ReactElement;
15
16
  export declare namespace PopupTrigger {
16
17
  var displayName: string;
17
18
  }
@@ -38,13 +38,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.PopupTrigger = PopupTrigger;
40
40
  const trigger_1 = __importDefault(require("@rc-component/trigger"));
41
- const raf_1 = __importDefault(require("@rc-component/util/lib/raf"));
41
+ const util_1 = require("@rc-component/util");
42
+ const raf_1 = __importDefault(require("@rc-component/util/es/raf"));
42
43
  const classnames_1 = __importDefault(require("classnames"));
43
44
  const React = __importStar(require("react"));
44
45
  const ConfigProvider_1 = require("../../../components/ConfigProvider");
45
- const NavContext_1 = require("../../../components/Nav/context/NavContext");
46
+ const context_1 = require("../../../components/Nav/context");
46
47
  const placements_1 = require("../../../components/Nav/placements");
47
- const motionUtil_1 = require("../../../components/Nav/utils/motionUtil");
48
+ const utils_1 = require("../../../components/Nav/utils");
48
49
  const popupPlacementMap = {
49
50
  horizontal: 'bottom-left',
50
51
  inline: null,
@@ -52,15 +53,15 @@ const popupPlacementMap = {
52
53
  'vertical-left': 'right-top',
53
54
  'vertical-right': 'left-top',
54
55
  };
55
- function PopupTrigger({ children, disabled, mode, popup, popupClassName, popupOffset, prefixCls, visible, onVisibleChange, }) {
56
+ function PopupTrigger({ children, disabled, mode, popup, popupClassName, popupOffset, popupStyle, prefixCls, visible, onVisibleChange, }) {
56
57
  const config = (0, ConfigProvider_1.useConfig)();
57
- const { builtinPlacements, defaultMotions, forceSubNavRender, getPopupContainer, motion, rtl, subNavCloseDelay = 300, subNavOpenDelay, triggerSubNavAction = 'hover', } = React.useContext(NavContext_1.NavContext);
58
+ const { builtinPlacements, defaultMotions, forceSubNavRender, getPopupContainer, motion, rootClassName, rtl, subNavCloseDelay = 300, subNavOpenDelay, triggerSubNavAction = 'hover', } = React.useContext(context_1.NavContext);
58
59
  const [innerVisible, setInnerVisible] = React.useState(false);
59
60
  const placement = rtl
60
- ? { ...placements_1.placementsRtl, ...builtinPlacements }
61
- : { ...placements_1.placements, ...builtinPlacements };
61
+ ? (0, util_1.merge)(placements_1.placementsRtl, builtinPlacements || {})
62
+ : (0, util_1.merge)(placements_1.placements, builtinPlacements || {});
62
63
  const popupPlacement = popupPlacementMap[mode];
63
- const targetMotion = (0, motionUtil_1.getMotion)(mode, motion, defaultMotions);
64
+ const targetMotion = (0, utils_1.getMotion)(mode, motion, defaultMotions);
64
65
  const targetMotionRef = React.useRef(targetMotion);
65
66
  if (mode !== 'inline') {
66
67
  /**
@@ -87,9 +88,7 @@ function PopupTrigger({ children, disabled, mode, popup, popupClassName, popupOf
87
88
  }
88
89
  };
89
90
  }, [visible]);
90
- return (React.createElement(trigger_1.default, { action: disabled || !triggerSubNavAction ? [] : [triggerSubNavAction], builtinPlacements: placement, forceRender: forceSubNavRender, getPopupContainer: getPopupContainer, hideAction: disabled || !triggerSubNavAction ? [] : [triggerSubNavAction], mouseEnterDelay: subNavOpenDelay, mouseLeaveDelay: subNavCloseDelay, popup: popup, popupAlign: popupOffset && { offset: popupOffset }, popupClassName: (0, classnames_1.default)({
91
- [`${prefixCls}-rtl`]: rtl,
92
- }, popupClassName), popupMotion: mergedMotion, popupPlacement: popupPlacement, popupVisible: innerVisible, prefixCls: prefixCls, stretch: mode === 'horizontal' ? 'minWidth' : undefined, onPopupVisibleChange: onVisibleChange }, children));
91
+ return (React.createElement(trigger_1.default, { action: disabled || !triggerSubNavAction ? [] : [triggerSubNavAction], builtinPlacements: placement, forceRender: forceSubNavRender, fresh: true, getPopupContainer: getPopupContainer, hideAction: disabled || !triggerSubNavAction ? [] : [triggerSubNavAction], mouseEnterDelay: subNavOpenDelay, mouseLeaveDelay: subNavCloseDelay, popup: popup, popupAlign: popupOffset && { offset: popupOffset }, popupClassName: (0, classnames_1.default)(`${config.prefixCls}-drop`, { [`${prefixCls}-rtl`]: rtl }, popupClassName, rootClassName), popupMotion: mergedMotion, popupPlacement: popupPlacement, popupStyle: popupStyle, popupVisible: innerVisible, prefixCls: prefixCls, stretch: mode === 'horizontal' ? 'minWidth' : undefined, onOpenChange: onVisibleChange }, children));
93
92
  }
94
93
  if (process.env.NODE_ENV !== 'production') {
95
94
  PopupTrigger.displayName = 'Nav.PopupTrigger';
@@ -1,3 +1,2 @@
1
1
  import * as React from 'react';
2
- export type SubNavListProps = React.HTMLAttributes<HTMLUListElement>;
3
- export declare const SubNavList: React.ForwardRefExoticComponent<SubNavListProps & React.RefAttributes<HTMLUListElement>>;
2
+ export declare const SubNavList: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLUListElement> & React.RefAttributes<HTMLUListElement>>;
@@ -39,14 +39,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.SubNavList = void 0;
40
40
  const classnames_1 = __importDefault(require("classnames"));
41
41
  const React = __importStar(require("react"));
42
- const NavContext_1 = require("../../../components/Nav/context/NavContext");
43
- exports.SubNavList = React.forwardRef(({ children, className, ...restProps }, ref) => {
44
- const { mode, prefixCls, rtl } = React.useContext(NavContext_1.NavContext);
45
- return (React.createElement("ul", { className: (0, classnames_1.default)({
42
+ const context_1 = require("../../../components/Nav/context");
43
+ exports.SubNavList = React.forwardRef(({ children, className, ...props }, ref) => {
44
+ const { mode, prefixCls, rtl } = React.useContext(context_1.NavContext);
45
+ return (React.createElement("ul", { ref: ref, className: (0, classnames_1.default)({
46
46
  [`${prefixCls}-sub-rtl`]: rtl && mode === 'inline',
47
47
  [`${prefixCls}-sub`]: mode === 'inline',
48
48
  [prefixCls]: mode !== 'inline',
49
- }, className), ...restProps, ref: ref, "data-nav-list": "" }, children));
49
+ }, className), ...props, "data-nav-list": true, role: "menu" }, children));
50
50
  });
51
51
  if (process.env.NODE_ENV !== 'production') {
52
52
  exports.SubNavList.displayName = 'Nav.SubNavList';
@@ -1,16 +1,5 @@
1
1
  import * as React from 'react';
2
- import { type SubNavType } from '../../../components/Nav/types';
3
- export interface SubNavProps extends Omit<SubNavType, 'children' | 'key' | 'label'> {
4
- children?: React.ReactNode;
5
- /** @private Internal filled key. Do not set it directly */
6
- eventKey?: string;
7
- /** @private Used for rest popup. Do not use in your prod */
8
- internalPopupClose?: boolean;
9
- title?: React.ReactNode;
10
- /** @private Do not use. Private warning empty usage */
11
- warnKey?: boolean;
12
- }
13
- export declare function Sub({ children, eventKey, ...restProps }: SubNavProps): React.JSX.Element;
14
- export declare namespace Sub {
15
- var displayName: string;
16
- }
2
+ import { type SubNavProps } from '../../../components/Nav/Sub/InternalSubNav';
3
+ export declare const Sub: React.ForwardRefExoticComponent<SubNavProps & {
4
+ children?: React.ReactNode | undefined;
5
+ } & React.RefAttributes<HTMLLIElement>>;
@@ -32,180 +32,17 @@ var __importStar = (this && this.__importStar) || (function () {
32
32
  return result;
33
33
  };
34
34
  })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
35
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.Sub = Sub;
40
- /* eslint-disable jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions */
36
+ exports.Sub = void 0;
41
37
  const js_utils_1 = require("@broxus/js-utils");
42
- const warning_1 = __importDefault(require("@rc-component/util/lib/warning"));
43
- const classnames_1 = __importDefault(require("classnames"));
44
- const rc_overflow_1 = __importDefault(require("rc-overflow"));
45
38
  const React = __importStar(require("react"));
46
- const IdContext_1 = require("../../../components/Nav/context/IdContext");
47
- const NavContext_1 = require("../../../components/Nav/context/NavContext");
48
- const PathContext_1 = require("../../../components/Nav/context/PathContext");
49
- const PrivateContext_1 = require("../../../components/Nav/context/PrivateContext");
50
- const useActive_1 = require("../../../components/Nav/hooks/useActive");
51
- const useDirectionStyle_1 = require("../../../components/Nav/hooks/useDirectionStyle");
52
- const useMemoCallback_1 = require("../../../components/Nav/hooks/useMemoCallback");
53
- const InlineSubNavList_1 = require("../../../components/Nav/Sub/InlineSubNavList");
54
- const PopupTrigger_1 = require("../../../components/Nav/Sub/PopupTrigger");
55
- const SubNavList_1 = require("../../../components/Nav/Sub/SubNavList");
56
- const nodeUtil_1 = require("../../../components/Nav/utils/nodeUtil");
57
- const warnUtil_1 = require("../../../components/Nav/utils/warnUtil");
58
- function InternalSubNav({ children, className, disabled, eventKey, expandIcon, internalPopupClose, itemIcon, popupClassName, popupOffset, style, title, warnKey, onClick, onMouseEnter, onMouseLeave, onTitleClick, onTitleMouseEnter, onTitleMouseLeave, ...props }) {
59
- const domDataId = (0, IdContext_1.useNavId)(eventKey);
60
- const { activeKey, disabled: contextDisabled, expandIcon: contextExpandIcon, itemIcon: contextItemIcon, mode, openKeys, overflowDisabled, popupPrefixCls, selectedKeys, onActive, onItemClick, onOpenChange, } = React.useContext(NavContext_1.NavContext);
61
- const pathUser = React.useContext(PathContext_1.PathUserContext);
62
- const connectedPath = (0, PathContext_1.useFullPath)();
63
- const { _internalRenderSubMenuItem } = React.useContext(PrivateContext_1.PrivateContext);
64
- const mergedDisabled = contextDisabled || disabled;
65
- const elementRef = React.useRef(null);
66
- const popupRef = React.useRef(null);
67
- // ================================ Warn ================================
68
- if (process.env.NODE_ENV !== 'production' && warnKey) {
69
- (0, warning_1.default)(false, 'SubNav should not leave undefined `key`.');
70
- }
71
- // ================================ Icon ================================
72
- const mergedItemIcon = itemIcon || contextItemIcon;
73
- const mergedExpandIcon = expandIcon || contextExpandIcon;
74
- // ================================ Open ================================
75
- const originOpen = eventKey ? openKeys.includes(eventKey) : false;
76
- const open = !overflowDisabled && originOpen;
77
- // =============================== Select ===============================
78
- const childrenSelected = eventKey ? pathUser?.isSubPathKey(selectedKeys, eventKey) : false;
79
- // =============================== Active ===============================
80
- const { active, ...activeProps } = (0, useActive_1.useActive)(eventKey, disabled, onTitleMouseEnter, onTitleMouseLeave);
81
- // Fallback of active check to avoid hover on menu title or disabled item
82
- const [childrenActive, setChildrenActive] = React.useState(false);
83
- const triggerChildrenActive = (newActive) => {
84
- if (!disabled) {
85
- setChildrenActive(newActive);
86
- }
87
- };
88
- const onInternalMouseEnter = domEvent => {
89
- triggerChildrenActive(true);
90
- if (eventKey) {
91
- onMouseEnter?.({
92
- domEvent,
93
- key: eventKey,
94
- });
95
- }
96
- };
97
- const onInternalMouseLeave = domEvent => {
98
- triggerChildrenActive(false);
99
- if (eventKey) {
100
- onMouseLeave?.({
101
- domEvent,
102
- key: eventKey,
103
- });
104
- }
105
- };
106
- const mergedActive = React.useMemo(() => {
107
- if (active) {
108
- return active;
109
- }
110
- if (mode !== 'inline' && eventKey) {
111
- return childrenActive || pathUser?.isSubPathKey([activeKey], eventKey);
112
- }
113
- return false;
114
- }, [active, mode, eventKey, childrenActive, pathUser, activeKey]);
115
- // ========================== DirectionStyle ==========================
116
- const directionStyle = (0, useDirectionStyle_1.useDirectionStyle)(connectedPath.length);
117
- // =============================== Events ===============================
118
- // Title click
119
- const onInternalTitleClick = e => {
120
- // Skip if disabled
121
- if (disabled) {
122
- return;
123
- }
124
- if (eventKey) {
125
- onTitleClick?.({
126
- domEvent: e,
127
- key: eventKey,
128
- });
129
- }
130
- // Trigger open by click when mode is `inline`
131
- if (mode === 'inline' && eventKey) {
132
- onOpenChange(eventKey, !originOpen);
133
- }
134
- };
135
- // Context for children click
136
- const onMergedItemClick = (0, useMemoCallback_1.useMemoCallback)((info) => {
137
- onClick?.((0, warnUtil_1.warnItemProp)(info));
138
- onItemClick?.(info);
139
- });
140
- // Visible change
141
- const onPopupVisibleChange = (newVisible) => {
142
- if (mode !== 'inline' && eventKey) {
143
- onOpenChange(eventKey, newVisible);
144
- }
145
- };
146
- /**
147
- * Used for accessibility. Helper will focus element without keyboard.
148
- * We should manually trigger an active
149
- */
150
- const onInternalFocus = () => {
151
- if (eventKey) {
152
- onActive(eventKey);
153
- }
154
- };
155
- // =============================== Render ===============================
156
- const popupId = domDataId ? `${domDataId}-dropdown` : undefined;
157
- // Title
158
- let titleNode = (React.createElement("a", { ref: elementRef, "aria-controls": popupId, "aria-disabled": disabled, "aria-expanded": open, "aria-haspopup": true, "data-nav-id": overflowDisabled && domDataId ? null : domDataId, role: disabled ? undefined : 'menuitem', style: { ...directionStyle }, tabIndex: disabled ? undefined : -1, title: typeof title === 'string' ? title : undefined, onClick: onInternalTitleClick, onFocus: onInternalFocus, ...activeProps },
159
- React.createElement(React.Fragment, { key: "children" },
160
- title,
161
- typeof mergedExpandIcon === 'function' ? mergedExpandIcon({
162
- disabled,
163
- isOpen: open,
164
- isSubNav: true,
165
- }) : mergedExpandIcon)));
166
- // Cache mode if it changes to `inline` which do not have popup motion
167
- const triggerModeRef = React.useRef(mode);
168
- if (mode !== 'inline' && connectedPath.length > 1) {
169
- triggerModeRef.current = 'vertical';
170
- }
171
- else {
172
- triggerModeRef.current = mode;
173
- }
174
- if (!overflowDisabled) {
175
- const triggerMode = triggerModeRef.current;
176
- // Still wrap with Trigger here since we need avoid react re-mount dom node
177
- // Which makes motion failed
178
- titleNode = (React.createElement(PopupTrigger_1.PopupTrigger, { disabled: disabled, mode: triggerMode, popup: (React.createElement(NavContext_1.NavContextProvider
179
- // Special handle of horizontal mode
180
- , {
181
- // Special handle of horizontal mode
182
- mode: triggerMode === 'horizontal' ? 'vertical' : triggerMode },
183
- React.createElement(SubNavList_1.SubNavList, { ref: popupRef, className: `${popupPrefixCls}-nav`, id: popupId }, children))), popupClassName: popupClassName, popupOffset: popupOffset, prefixCls: popupPrefixCls, visible: !internalPopupClose && open && mode !== 'inline', onVisibleChange: onPopupVisibleChange }, titleNode));
184
- }
185
- // List node
186
- let listNode = (React.createElement(rc_overflow_1.default.Item, { className: (0, classnames_1.default)('uk-parent', className, {
187
- 'uk-active': childrenSelected,
188
- 'uk-disabled': disabled,
189
- 'uk-hover': mergedActive,
190
- 'uk-open': open,
191
- }), role: "none", ...props, component: "li", style: style, onMouseEnter: onInternalMouseEnter, onMouseLeave: onInternalMouseLeave },
192
- titleNode,
193
- !overflowDisabled && (React.createElement(InlineSubNavList_1.InlineSubNavList, { id: popupId, keyPath: connectedPath, open: open }, children))));
194
- if (_internalRenderSubMenuItem) {
195
- listNode = _internalRenderSubMenuItem(listNode, props, {
196
- active: !!mergedActive,
197
- disabled: !!mergedDisabled,
198
- open,
199
- selected: !!childrenSelected,
200
- });
201
- }
202
- return (React.createElement(NavContext_1.NavContextProvider, { expandIcon: mergedExpandIcon, itemIcon: mergedItemIcon, mode: mode === 'horizontal' ? 'vertical' : mode, onItemClick: onMergedItemClick }, listNode));
203
- }
204
- // eslint-disable-next-line react/no-multi-comp
205
- function Sub({ children, eventKey, ...restProps }) {
206
- const connectedKeyPath = (0, PathContext_1.useFullPath)(eventKey);
207
- const childList = (0, nodeUtil_1.parseChildren)(children, connectedKeyPath);
208
- const measure = (0, PathContext_1.useMeasure)();
39
+ const context_1 = require("../../../components/Nav/context");
40
+ const InternalSubNav_1 = require("../../../components/Nav/Sub/InternalSubNav");
41
+ const utils_1 = require("../../../components/Nav/utils");
42
+ exports.Sub = React.forwardRef(({ children, eventKey, ...props }, ref) => {
43
+ const connectedKeyPath = (0, context_1.useFullPath)(eventKey);
44
+ const measure = (0, context_1.useMeasure)();
45
+ const childList = (0, utils_1.parseChildren)(children, connectedKeyPath);
209
46
  React.useEffect(() => {
210
47
  if (measure && eventKey) {
211
48
  measure.registerPath(eventKey, connectedKeyPath);
@@ -215,8 +52,8 @@ function Sub({ children, eventKey, ...restProps }) {
215
52
  }
216
53
  return js_utils_1.noop;
217
54
  }, [connectedKeyPath, eventKey, measure]);
218
- return (React.createElement(PathContext_1.PathTrackerContext.Provider, { value: connectedKeyPath }, measure ? childList : React.createElement(InternalSubNav, { eventKey: eventKey, ...restProps }, childList)));
219
- }
55
+ return (React.createElement(context_1.PathTrackerContext.Provider, { value: connectedKeyPath }, measure ? childList : (React.createElement(InternalSubNav_1.InternalSubNav, { ref: ref, eventKey: eventKey, ...props }, childList))));
56
+ });
220
57
  if (process.env.NODE_ENV !== 'production') {
221
- Sub.displayName = 'Nav.Sub';
58
+ exports.Sub.displayName = 'Nav.Sub';
222
59
  }
@@ -1,9 +1,11 @@
1
1
  import { type CSSMotionProps } from '@rc-component/motion';
2
2
  import * as React from 'react';
3
- import { type BuiltinPlacements, type NavClickEventHandler, type NavMode, type RenderIconType, type TriggerSubNavAction } from '../../../components/Nav/types';
3
+ import { type SemanticName } from '../../../components/Nav/Sub/InternalSubNav';
4
+ import { type BuiltinPlacements, type NavClickEventHandler, type NavMode, type NavPopupRender, type RenderIconType, type TriggerSubNavAction } from '../../../components/Nav/types';
4
5
  export interface NavContextProps {
5
6
  activeKey: string;
6
7
  builtinPlacements?: BuiltinPlacements;
8
+ classNames?: Partial<Record<SemanticName, string>>;
7
9
  defaultMotions?: Partial<{
8
10
  [key in NavMode | 'other']: CSSMotionProps;
9
11
  }>;
@@ -18,9 +20,12 @@ export interface NavContextProps {
18
20
  openKeys: string[];
19
21
  overflowDisabled?: boolean;
20
22
  popupPrefixCls: string;
23
+ popupRender?: NavPopupRender;
21
24
  prefixCls: string;
25
+ rootClassName?: string;
22
26
  rtl?: boolean;
23
27
  selectedKeys: string[];
28
+ styles?: Partial<Record<SemanticName, React.CSSProperties>>;
24
29
  subNavCloseDelay: number;
25
30
  subNavOpenDelay: number;
26
31
  triggerSubNavAction?: TriggerSubNavAction;
@@ -31,7 +36,6 @@ export interface NavContextProps {
31
36
  }
32
37
  export declare const NavContext: React.Context<NavContextProps>;
33
38
  export interface InheritableContextProps extends Partial<NavContextProps> {
34
- children?: React.ReactNode;
35
39
  locked?: boolean;
36
40
  }
37
- export declare function NavContextProvider({ children, locked, ...restProps }: InheritableContextProps): React.JSX.Element;
41
+ export declare function NavContextProvider({ children, locked, ...props }: React.PropsWithChildren<InheritableContextProps>): React.ReactElement;
@@ -39,9 +39,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
39
39
  Object.defineProperty(exports, "__esModule", { value: true });
40
40
  exports.NavContext = void 0;
41
41
  exports.NavContextProvider = NavContextProvider;
42
- const useMemo_1 = __importDefault(require("@rc-component/util/lib/hooks/useMemo"));
42
+ const useMemo_1 = __importDefault(require("@rc-component/util/es/hooks/useMemo"));
43
+ const isEqual_1 = __importDefault(require("@rc-component/util/es/isEqual"));
43
44
  const React = __importStar(require("react"));
44
- const shallowequal_1 = __importDefault(require("shallowequal"));
45
45
  const ConfigProvider_1 = require("../../../components/ConfigProvider");
46
46
  exports.NavContext = React.createContext({
47
47
  popupPrefixCls: 'dropdown',
@@ -59,16 +59,16 @@ function mergeProps(origin, target) {
59
59
  });
60
60
  return clone;
61
61
  }
62
- function NavContextProvider({ children, locked, ...restProps }) {
62
+ function NavContextProvider({ children, locked, ...props }) {
63
63
  const config = (0, ConfigProvider_1.useConfig)();
64
64
  const context = React.useContext(exports.NavContext);
65
65
  const inheritableContext = (0, useMemo_1.default)(() => mergeProps({
66
66
  ...context,
67
67
  popupPrefixCls: context.popupPrefixCls ?? `${config.prefixCls}-dropdown`,
68
68
  prefixCls: context.prefixCls ?? `${config.prefixCls}-nav`,
69
- }, restProps),
70
- // eslint-disable-next-line react-hooks/exhaustive-deps
71
- [context, restProps], (prev, next) => !locked && (prev[0] !== next[0] || !(0, shallowequal_1.default)(prev[1], next[1])));
69
+ }, props), [config.prefixCls, context, props], (prev, next) => !locked && (prev[0] !== next[0]
70
+ || !(0, isEqual_1.default)(prev[1], next[1], true)
71
+ || !(0, isEqual_1.default)(prev[2], next[2], true)));
72
72
  return React.createElement(exports.NavContext.Provider, { value: inheritableContext }, children);
73
73
  }
74
74
  if (process.env.NODE_ENV !== 'production') {
@@ -0,0 +1,3 @@
1
+ export * from '../../../components/Nav/context/IdContext';
2
+ export * from '../../../components/Nav/context/NavContext';
3
+ export * from '../../../components/Nav/context/PathContext';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("../../../components/Nav/context/IdContext"), exports);
18
+ __exportStar(require("../../../components/Nav/context/NavContext"), exports);
19
+ __exportStar(require("../../../components/Nav/context/PathContext"), exports);
@@ -0,0 +1,5 @@
1
+ export * from '../../../components/Nav/hooks/useAccessibility';
2
+ export * from '../../../components/Nav/hooks/useActive';
3
+ export * from '../../../components/Nav/hooks/useDirectionStyle';
4
+ export * from '../../../components/Nav/hooks/useKeyRecords';
5
+ export * from '../../../components/Nav/hooks/useMemoCallback';
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("../../../components/Nav/hooks/useAccessibility"), exports);
18
+ __exportStar(require("../../../components/Nav/hooks/useActive"), exports);
19
+ __exportStar(require("../../../components/Nav/hooks/useDirectionStyle"), exports);
20
+ __exportStar(require("../../../components/Nav/hooks/useKeyRecords"), exports);
21
+ __exportStar(require("../../../components/Nav/hooks/useMemoCallback"), exports);