@broxus/react-uikit 0.1.3 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (599) hide show
  1. package/LICENSE +154 -167
  2. package/dist/cjs/components/Accordion/Accordion.d.ts +3 -2
  3. package/dist/cjs/components/Accordion/Accordion.js +8 -5
  4. package/dist/cjs/components/Accordion/Item.d.ts +3 -6
  5. package/dist/cjs/components/Accordion/Item.js +4 -5
  6. package/dist/cjs/components/Accordion/index.d.ts +6 -5
  7. package/dist/cjs/components/Accordion/index.js +2 -2
  8. package/dist/cjs/components/Alert/index.d.ts +3 -3
  9. package/dist/cjs/components/Alert/index.js +17 -10
  10. package/dist/cjs/components/Align/Align.d.ts +5 -7
  11. package/dist/cjs/components/Align/Align.js +9 -6
  12. package/dist/cjs/components/Align/Left.d.ts +3 -5
  13. package/dist/cjs/components/Align/Left.js +3 -6
  14. package/dist/cjs/components/Align/Right.d.ts +3 -5
  15. package/dist/cjs/components/Align/Right.js +3 -6
  16. package/dist/cjs/components/Align/index.d.ts +8 -7
  17. package/dist/cjs/components/Align/index.js +3 -3
  18. package/dist/cjs/components/Article/Article.d.ts +1 -1
  19. package/dist/cjs/components/Article/Article.js +9 -4
  20. package/dist/cjs/components/Article/Meta.d.ts +4 -9
  21. package/dist/cjs/components/Article/Meta.js +8 -6
  22. package/dist/cjs/components/Article/Title.d.ts +4 -9
  23. package/dist/cjs/components/Article/Title.js +8 -6
  24. package/dist/cjs/components/Article/index.d.ts +7 -9
  25. package/dist/cjs/components/Article/index.js +3 -3
  26. package/dist/cjs/components/Badge/index.d.ts +4 -6
  27. package/dist/cjs/components/Badge/index.js +7 -4
  28. package/dist/cjs/components/Breadcrumb/Breadcrumb.d.ts +1 -1
  29. package/dist/cjs/components/Breadcrumb/Breadcrumb.js +7 -4
  30. package/dist/cjs/components/Breadcrumb/Item.d.ts +1 -4
  31. package/dist/cjs/components/Breadcrumb/Item.js +3 -4
  32. package/dist/cjs/components/Breadcrumb/index.d.ts +5 -5
  33. package/dist/cjs/components/Breadcrumb/index.js +2 -2
  34. package/dist/cjs/components/Button/Button.d.ts +1 -1
  35. package/dist/cjs/components/Button/Button.js +16 -14
  36. package/dist/cjs/components/Button/Group.d.ts +1 -4
  37. package/dist/cjs/components/Button/Group.js +6 -6
  38. package/dist/cjs/components/Button/index.d.ts +5 -5
  39. package/dist/cjs/components/Button/index.js +2 -2
  40. package/dist/cjs/components/Card/Badge.d.ts +3 -7
  41. package/dist/cjs/components/Card/Badge.js +10 -7
  42. package/dist/cjs/components/Card/Body.d.ts +1 -4
  43. package/dist/cjs/components/Card/Body.js +8 -6
  44. package/dist/cjs/components/Card/Card.d.ts +4 -6
  45. package/dist/cjs/components/Card/Card.js +17 -11
  46. package/dist/cjs/components/Card/Footer.d.ts +4 -9
  47. package/dist/cjs/components/Card/Footer.js +8 -6
  48. package/dist/cjs/components/Card/Header.d.ts +4 -9
  49. package/dist/cjs/components/Card/Header.js +8 -6
  50. package/dist/cjs/components/Card/Media.d.ts +1 -4
  51. package/dist/cjs/components/Card/Media.js +8 -6
  52. package/dist/cjs/components/Card/Title.d.ts +4 -9
  53. package/dist/cjs/components/Card/Title.js +9 -7
  54. package/dist/cjs/components/Card/index.d.ts +10 -10
  55. package/dist/cjs/components/Card/index.js +7 -7
  56. package/dist/cjs/components/Close/index.d.ts +3 -7
  57. package/dist/cjs/components/Close/index.js +7 -4
  58. package/dist/cjs/components/Component/index.d.ts +9 -4
  59. package/dist/cjs/components/Component/index.js +26 -2
  60. package/dist/cjs/components/ComponentProvider/index.d.ts +11 -0
  61. package/dist/cjs/components/ComponentProvider/index.js +49 -0
  62. package/dist/cjs/components/ConfrigProvider/index.d.ts +9 -7
  63. package/dist/cjs/components/ConfrigProvider/index.js +37 -7
  64. package/dist/cjs/components/Container/index.d.ts +4 -5
  65. package/dist/cjs/components/Container/index.js +12 -7
  66. package/dist/cjs/components/Control/Checkbox/Checkbox.d.ts +7 -2
  67. package/dist/cjs/components/Control/Checkbox/Checkbox.js +66 -46
  68. package/dist/cjs/components/Control/Checkbox/CheckboxGroupContext.d.ts +26 -0
  69. package/dist/cjs/components/Control/Checkbox/{Context.js → CheckboxGroupContext.js} +6 -3
  70. package/dist/cjs/components/Control/Checkbox/Group.d.ts +14 -2
  71. package/dist/cjs/components/Control/Checkbox/Group.js +31 -28
  72. package/dist/cjs/components/Control/Checkbox/index.d.ts +8 -6
  73. package/dist/cjs/components/Control/Checkbox/index.js +3 -3
  74. package/dist/cjs/components/Control/Checkbox/index.scss +7 -2
  75. package/dist/cjs/components/Control/Checkbox/types.d.ts +3 -66
  76. package/dist/cjs/components/Control/Input/Input.d.ts +2 -2
  77. package/dist/cjs/components/Control/Input/Input.js +22 -13
  78. package/dist/cjs/components/Control/Input/Number/index.d.ts +2 -2
  79. package/dist/cjs/components/Control/Input/Number/index.js +24 -19
  80. package/dist/cjs/components/Control/Input/Password/index.d.ts +2 -2
  81. package/dist/cjs/components/Control/Input/Password/index.js +39 -27
  82. package/dist/cjs/components/Control/Input/index.d.ts +7 -7
  83. package/dist/cjs/components/Control/Input/index.js +5 -5
  84. package/dist/cjs/components/Control/Input/types.d.ts +5 -5
  85. package/dist/cjs/components/Control/Input/useInput.d.ts +5 -4
  86. package/dist/cjs/components/Control/Input/useInput.js +47 -50
  87. package/dist/cjs/components/Control/Radio/Group.d.ts +7 -2
  88. package/dist/cjs/components/Control/Radio/Group.js +24 -17
  89. package/dist/cjs/components/Control/Radio/Radio.d.ts +6 -2
  90. package/dist/cjs/components/Control/Radio/Radio.js +57 -40
  91. package/dist/cjs/components/Control/Radio/RadioGroupContext.d.ts +9 -0
  92. package/dist/cjs/components/Control/Radio/{Context.js → RadioGroupContext.js} +6 -3
  93. package/dist/cjs/components/Control/Radio/index.d.ts +6 -6
  94. package/dist/cjs/components/Control/Radio/index.js +2 -17
  95. package/dist/cjs/components/Control/Radio/index.scss +1 -0
  96. package/dist/cjs/components/Control/Select/index.d.ts +8 -12
  97. package/dist/cjs/components/Control/Select/index.js +72 -49
  98. package/dist/cjs/components/Control/TextArea/index.d.ts +3 -10
  99. package/dist/cjs/components/Control/TextArea/index.js +51 -47
  100. package/dist/cjs/components/Control/TextArea/index.scss +1 -1
  101. package/dist/cjs/components/Control/index.d.ts +6 -6
  102. package/dist/cjs/components/Control/index.js +6 -6
  103. package/dist/cjs/components/Control/types.d.ts +8 -7
  104. package/dist/cjs/components/Cover/index.d.ts +2 -1
  105. package/dist/cjs/components/Cover/index.js +24 -17
  106. package/dist/cjs/components/DescriptionList/Description.d.ts +1 -6
  107. package/dist/cjs/components/DescriptionList/Description.js +2 -5
  108. package/dist/cjs/components/DescriptionList/DescriptionList.d.ts +2 -1
  109. package/dist/cjs/components/DescriptionList/DescriptionList.js +10 -5
  110. package/dist/cjs/components/DescriptionList/Term.d.ts +1 -6
  111. package/dist/cjs/components/DescriptionList/Term.js +2 -5
  112. package/dist/cjs/components/DescriptionList/index.d.ts +6 -6
  113. package/dist/cjs/components/DescriptionList/index.js +3 -3
  114. package/dist/cjs/components/Divider/index.d.ts +2 -1
  115. package/dist/cjs/components/Divider/index.js +11 -6
  116. package/dist/cjs/components/Dotnav/Dotnav.d.ts +2 -1
  117. package/dist/cjs/components/Dotnav/Dotnav.js +10 -5
  118. package/dist/cjs/components/Dotnav/Item.d.ts +1 -4
  119. package/dist/cjs/components/Dotnav/Item.js +7 -6
  120. package/dist/cjs/components/Dotnav/index.d.ts +5 -5
  121. package/dist/cjs/components/Dotnav/index.js +2 -2
  122. package/dist/cjs/components/Drawer/index.d.ts +7 -44
  123. package/dist/cjs/components/Drawer/index.js +40 -139
  124. package/dist/cjs/components/Drawer/index.scss +11 -14
  125. package/dist/cjs/components/Drop/index.d.ts +12 -4
  126. package/dist/cjs/components/Drop/index.js +38 -21
  127. package/dist/cjs/components/Drop/index.scss +0 -26
  128. package/dist/cjs/components/Dropdown/index.d.ts +3 -3
  129. package/dist/cjs/components/Dropdown/index.js +5 -2
  130. package/dist/cjs/components/Flex/index.d.ts +14 -15
  131. package/dist/cjs/components/Flex/index.js +15 -13
  132. package/dist/cjs/components/Form/Controls.d.ts +3 -4
  133. package/dist/cjs/components/Form/Controls.js +10 -6
  134. package/dist/cjs/components/Form/ControlsText.d.ts +3 -4
  135. package/dist/cjs/components/Form/ControlsText.js +10 -6
  136. package/dist/cjs/components/Form/Fieldset.d.ts +4 -4
  137. package/dist/cjs/components/Form/Fieldset.js +10 -6
  138. package/dist/cjs/components/Form/Form.d.ts +4 -5
  139. package/dist/cjs/components/Form/Form.js +11 -7
  140. package/dist/cjs/components/Form/Label.d.ts +3 -4
  141. package/dist/cjs/components/Form/Label.js +9 -6
  142. package/dist/cjs/components/Form/Legend.d.ts +3 -4
  143. package/dist/cjs/components/Form/Legend.js +8 -6
  144. package/dist/cjs/components/Form/index.d.ts +9 -9
  145. package/dist/cjs/components/Form/index.js +6 -6
  146. package/dist/cjs/components/Grid/index.d.ts +7 -8
  147. package/dist/cjs/components/Grid/index.js +13 -11
  148. package/dist/cjs/components/Heading/index.d.ts +5 -6
  149. package/dist/cjs/components/Heading/index.js +11 -6
  150. package/dist/cjs/components/Icon/Button.d.ts +3 -5
  151. package/dist/cjs/components/Icon/Button.js +3 -6
  152. package/dist/cjs/components/Icon/Icon.d.ts +4 -6
  153. package/dist/cjs/components/Icon/Icon.js +9 -9
  154. package/dist/cjs/components/Icon/Link.d.ts +3 -5
  155. package/dist/cjs/components/Icon/Link.js +3 -6
  156. package/dist/cjs/components/Icon/default-svg-props.d.ts +1 -1
  157. package/dist/cjs/components/Icon/default-svg-props.js +2 -2
  158. package/dist/cjs/components/Icon/index.d.ts +9 -9
  159. package/dist/cjs/components/Icon/index.js +5 -5
  160. package/dist/cjs/components/Iconnav/Iconnav.d.ts +1 -1
  161. package/dist/cjs/components/Iconnav/Iconnav.js +6 -6
  162. package/dist/cjs/components/Iconnav/Item.d.ts +1 -5
  163. package/dist/cjs/components/Iconnav/Item.js +4 -5
  164. package/dist/cjs/components/Iconnav/index.d.ts +5 -5
  165. package/dist/cjs/components/Iconnav/index.js +2 -2
  166. package/dist/cjs/components/Label/index.d.ts +1 -1
  167. package/dist/cjs/components/Label/index.js +7 -7
  168. package/dist/cjs/components/Label/index.scss +1 -1
  169. package/dist/cjs/components/Link/index.d.ts +3 -3
  170. package/dist/cjs/components/Link/index.js +9 -3
  171. package/dist/cjs/components/List/Item.d.ts +2 -5
  172. package/dist/cjs/components/List/Item.js +2 -5
  173. package/dist/cjs/components/List/List.d.ts +1 -1
  174. package/dist/cjs/components/List/List.js +8 -8
  175. package/dist/cjs/components/List/index.d.ts +5 -5
  176. package/dist/cjs/components/List/index.js +2 -2
  177. package/dist/cjs/components/Modal/Modal.d.ts +4 -3
  178. package/dist/cjs/components/Modal/Modal.js +19 -16
  179. package/dist/cjs/components/Modal/index.d.ts +1 -1
  180. package/dist/cjs/components/Modal/index.js +1 -1
  181. package/dist/cjs/components/Nav/Divider.d.ts +3 -8
  182. package/dist/cjs/components/Nav/Divider.js +6 -7
  183. package/dist/cjs/components/Nav/Group/InternalNavItemGroup.d.ts +11 -0
  184. package/dist/cjs/components/Nav/Group/InternalNavItemGroup.js +42 -0
  185. package/dist/cjs/components/Nav/Group/index.d.ts +3 -0
  186. package/dist/cjs/components/Nav/{Group.js → Group/index.js} +10 -19
  187. package/dist/cjs/components/Nav/Header.d.ts +1 -1
  188. package/dist/cjs/components/Nav/Header.js +2 -2
  189. package/dist/cjs/components/Nav/Item/InternalNavItem.d.ts +16 -2
  190. package/dist/cjs/components/Nav/Item/InternalNavItem.js +54 -35
  191. package/dist/cjs/components/Nav/Item/LegacyNavItem.js +1 -1
  192. package/dist/cjs/components/Nav/Item/index.d.ts +2 -28
  193. package/dist/cjs/components/Nav/Item/index.js +6 -7
  194. package/dist/cjs/components/Nav/Nav.d.ts +23 -5
  195. package/dist/cjs/components/Nav/Nav.js +165 -123
  196. package/dist/cjs/components/Nav/Sub/InlineSubNavList.js +3 -3
  197. package/dist/cjs/components/Nav/Sub/PopupTrigger.d.ts +6 -6
  198. package/dist/cjs/components/Nav/Sub/PopupTrigger.js +21 -14
  199. package/dist/cjs/components/Nav/Sub/SubNavList.d.ts +1 -1
  200. package/dist/cjs/components/Nav/Sub/SubNavList.js +5 -3
  201. package/dist/cjs/components/Nav/Sub/index.d.ts +3 -19
  202. package/dist/cjs/components/Nav/Sub/index.js +58 -41
  203. package/dist/cjs/components/Nav/context/IdContext.js +3 -0
  204. package/dist/cjs/components/Nav/context/NavContext.d.ts +5 -4
  205. package/dist/cjs/components/Nav/context/NavContext.js +9 -3
  206. package/dist/cjs/components/Nav/context/PathContext.js +5 -0
  207. package/dist/cjs/components/Nav/context/PrivateContext.d.ts +7 -0
  208. package/dist/cjs/components/{Component/Component.js → Nav/context/PrivateContext.js} +2 -3
  209. package/dist/cjs/components/Nav/hooks/useAccessibility.d.ts +2 -2
  210. package/dist/cjs/components/Nav/hooks/useAccessibility.js +4 -3
  211. package/dist/cjs/components/Nav/hooks/useActive.d.ts +2 -2
  212. package/dist/cjs/components/Nav/hooks/useActive.js +6 -5
  213. package/dist/cjs/components/Nav/hooks/useDirectionStyle.d.ts +2 -0
  214. package/dist/cjs/components/Nav/hooks/useDirectionStyle.js +37 -0
  215. package/dist/cjs/components/Nav/hooks/useKeyRecords.d.ts +3 -3
  216. package/dist/cjs/components/Nav/hooks/useKeyRecords.js +14 -14
  217. package/dist/cjs/components/Nav/hooks/useMemoCallback.d.ts +1 -1
  218. package/dist/cjs/components/Nav/hooks/useMemoCallback.js +3 -1
  219. package/dist/cjs/components/Nav/hooks/useUUID.d.ts +1 -1
  220. package/dist/cjs/components/Nav/hooks/useUUID.js +3 -2
  221. package/dist/cjs/components/Nav/index.d.ts +9 -9
  222. package/dist/cjs/components/Nav/index.js +6 -6
  223. package/dist/cjs/components/Nav/index.scss +10 -7
  224. package/dist/cjs/components/Nav/types.d.ts +58 -10
  225. package/dist/cjs/components/Nav/utils/alignUtil.d.ts +1 -1
  226. package/dist/cjs/components/Nav/utils/motionUtil.d.ts +1 -1
  227. package/dist/cjs/components/Nav/utils/nodeUtil.d.ts +3 -1
  228. package/dist/cjs/components/Nav/utils/nodeUtil.js +38 -1
  229. package/dist/cjs/components/Nav/utils/warnUtil.d.ts +1 -1
  230. package/dist/cjs/components/Navbar/Center.d.ts +5 -7
  231. package/dist/cjs/components/Navbar/Center.js +8 -6
  232. package/dist/cjs/components/Navbar/Container.d.ts +4 -8
  233. package/dist/cjs/components/Navbar/Container.js +9 -7
  234. package/dist/cjs/components/Navbar/Item.d.ts +5 -8
  235. package/dist/cjs/components/Navbar/Item.js +8 -6
  236. package/dist/cjs/components/Navbar/Left.d.ts +5 -7
  237. package/dist/cjs/components/Navbar/Left.js +8 -6
  238. package/dist/cjs/components/Navbar/Nav.d.ts +2 -1
  239. package/dist/cjs/components/Navbar/Nav.js +5 -2
  240. package/dist/cjs/components/Navbar/Right.d.ts +3 -3
  241. package/dist/cjs/components/Navbar/Toggle.d.ts +5 -4
  242. package/dist/cjs/components/Navbar/index.d.ts +11 -11
  243. package/dist/cjs/components/Navbar/index.js +8 -8
  244. package/dist/cjs/components/Progress/index.d.ts +6 -0
  245. package/dist/cjs/components/Progress/index.js +39 -0
  246. package/dist/cjs/components/Progress/index.scss +129 -0
  247. package/dist/cjs/components/Section/index.d.ts +4 -6
  248. package/dist/cjs/components/Section/index.js +10 -8
  249. package/dist/cjs/components/Spinner/index.d.ts +3 -3
  250. package/dist/cjs/components/Spinner/index.js +7 -5
  251. package/dist/cjs/components/Tabs/index.d.ts +7 -11
  252. package/dist/cjs/components/Tabs/index.js +17 -18
  253. package/dist/cjs/components/Tabs/index.scss +9 -1
  254. package/dist/cjs/components/Text/index.d.ts +7 -8
  255. package/dist/cjs/components/Text/index.js +22 -20
  256. package/dist/cjs/components/Tile/index.d.ts +5 -6
  257. package/dist/cjs/components/Tile/index.js +10 -8
  258. package/dist/cjs/components/Tile/index.scss +8 -8
  259. package/dist/cjs/components/Width/Width.d.ts +5 -6
  260. package/dist/cjs/components/Width/Width.js +12 -6
  261. package/dist/cjs/components/Width/index.d.ts +3 -3
  262. package/dist/cjs/components/Width/index.js +3 -3
  263. package/dist/cjs/components/Width/types.d.ts +6 -6
  264. package/dist/cjs/components/Width/utils.d.ts +1 -1
  265. package/dist/cjs/components/Width/utils.js +3 -1
  266. package/dist/cjs/hooks/index.d.ts +3 -0
  267. package/dist/cjs/{utils/hooks → hooks}/index.js +3 -1
  268. package/dist/cjs/hooks/useContext.d.ts +2 -0
  269. package/dist/cjs/hooks/useContext.js +35 -0
  270. package/dist/cjs/hooks/useMounted.d.ts +1 -0
  271. package/dist/cjs/hooks/useMounted.js +38 -0
  272. package/dist/cjs/index.d.ts +33 -30
  273. package/dist/cjs/index.js +33 -30
  274. package/dist/cjs/styles/_import.components.scss +1 -2
  275. package/dist/cjs/styles/_import.scss +1 -2
  276. package/dist/cjs/styles/animation.scss +35 -35
  277. package/dist/cjs/styles/column.scss +0 -1
  278. package/dist/cjs/styles/mixins.scss +30 -8
  279. package/dist/cjs/styles/motion.scss +367 -44
  280. package/dist/cjs/styles/progress.scss +1 -129
  281. package/dist/cjs/styles/variables.scss +6 -4
  282. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  283. package/dist/cjs/types.d.ts +15 -3
  284. package/dist/cjs/utils/get-breakpoints-config-classes.d.ts +1 -1
  285. package/dist/cjs/utils/index.d.ts +3 -4
  286. package/dist/cjs/utils/index.js +3 -4
  287. package/dist/cjs/utils/motion.d.ts +3 -3
  288. package/dist/cjs/utils/motion.js +23 -21
  289. package/dist/esm/components/Accordion/Accordion.d.ts +3 -2
  290. package/dist/esm/components/Accordion/Accordion.js +8 -4
  291. package/dist/esm/components/Accordion/Item.d.ts +3 -6
  292. package/dist/esm/components/Accordion/Item.js +3 -3
  293. package/dist/esm/components/Accordion/index.d.ts +6 -5
  294. package/dist/esm/components/Accordion/index.js +2 -2
  295. package/dist/esm/components/Alert/index.d.ts +3 -3
  296. package/dist/esm/components/Alert/index.js +17 -10
  297. package/dist/esm/components/Align/Align.d.ts +5 -7
  298. package/dist/esm/components/Align/Align.js +9 -5
  299. package/dist/esm/components/Align/Left.d.ts +3 -5
  300. package/dist/esm/components/Align/Left.js +2 -4
  301. package/dist/esm/components/Align/Right.d.ts +3 -5
  302. package/dist/esm/components/Align/Right.js +2 -4
  303. package/dist/esm/components/Align/index.d.ts +8 -7
  304. package/dist/esm/components/Align/index.js +3 -3
  305. package/dist/esm/components/Article/Article.d.ts +1 -1
  306. package/dist/esm/components/Article/Article.js +9 -3
  307. package/dist/esm/components/Article/Meta.d.ts +4 -9
  308. package/dist/esm/components/Article/Meta.js +7 -4
  309. package/dist/esm/components/Article/Title.d.ts +4 -9
  310. package/dist/esm/components/Article/Title.js +7 -4
  311. package/dist/esm/components/Article/index.d.ts +7 -9
  312. package/dist/esm/components/Article/index.js +3 -3
  313. package/dist/esm/components/Badge/index.d.ts +4 -6
  314. package/dist/esm/components/Badge/index.js +7 -3
  315. package/dist/esm/components/Breadcrumb/Breadcrumb.d.ts +1 -1
  316. package/dist/esm/components/Breadcrumb/Breadcrumb.js +7 -3
  317. package/dist/esm/components/Breadcrumb/Item.d.ts +1 -4
  318. package/dist/esm/components/Breadcrumb/Item.js +2 -2
  319. package/dist/esm/components/Breadcrumb/index.d.ts +5 -5
  320. package/dist/esm/components/Breadcrumb/index.js +3 -3
  321. package/dist/esm/components/Button/Button.d.ts +1 -1
  322. package/dist/esm/components/Button/Button.js +16 -14
  323. package/dist/esm/components/Button/Group.d.ts +1 -4
  324. package/dist/esm/components/Button/Group.js +5 -4
  325. package/dist/esm/components/Button/index.d.ts +5 -5
  326. package/dist/esm/components/Button/index.js +2 -2
  327. package/dist/esm/components/Card/Badge.d.ts +3 -7
  328. package/dist/esm/components/Card/Badge.js +9 -5
  329. package/dist/esm/components/Card/Body.d.ts +1 -4
  330. package/dist/esm/components/Card/Body.js +7 -4
  331. package/dist/esm/components/Card/Card.d.ts +4 -6
  332. package/dist/esm/components/Card/Card.js +17 -10
  333. package/dist/esm/components/Card/Footer.d.ts +4 -9
  334. package/dist/esm/components/Card/Footer.js +7 -4
  335. package/dist/esm/components/Card/Header.d.ts +4 -9
  336. package/dist/esm/components/Card/Header.js +7 -4
  337. package/dist/esm/components/Card/Media.d.ts +1 -4
  338. package/dist/esm/components/Card/Media.js +7 -4
  339. package/dist/esm/components/Card/Title.d.ts +4 -9
  340. package/dist/esm/components/Card/Title.js +8 -5
  341. package/dist/esm/components/Card/index.d.ts +10 -10
  342. package/dist/esm/components/Card/index.js +7 -7
  343. package/dist/esm/components/Close/index.d.ts +3 -7
  344. package/dist/esm/components/Close/index.js +7 -3
  345. package/dist/esm/components/Component/index.d.ts +9 -4
  346. package/dist/esm/components/Component/index.js +3 -1
  347. package/dist/esm/components/ComponentProvider/index.d.ts +11 -0
  348. package/dist/esm/components/ComponentProvider/index.js +21 -0
  349. package/dist/esm/components/ConfrigProvider/index.d.ts +9 -7
  350. package/dist/esm/components/ConfrigProvider/index.js +37 -7
  351. package/dist/esm/components/Container/index.d.ts +4 -5
  352. package/dist/esm/components/Container/index.js +12 -6
  353. package/dist/esm/components/Control/Checkbox/Checkbox.d.ts +7 -2
  354. package/dist/esm/components/Control/Checkbox/Checkbox.js +65 -45
  355. package/dist/esm/components/Control/Checkbox/CheckboxGroupContext.d.ts +26 -0
  356. package/dist/esm/components/Control/Checkbox/CheckboxGroupContext.js +8 -0
  357. package/dist/esm/components/Control/Checkbox/Group.d.ts +14 -2
  358. package/dist/esm/components/Control/Checkbox/Group.js +31 -28
  359. package/dist/esm/components/Control/Checkbox/index.d.ts +8 -6
  360. package/dist/esm/components/Control/Checkbox/index.js +3 -3
  361. package/dist/esm/components/Control/Checkbox/index.scss +7 -2
  362. package/dist/esm/components/Control/Checkbox/types.d.ts +3 -66
  363. package/dist/esm/components/Control/Input/Input.d.ts +2 -2
  364. package/dist/esm/components/Control/Input/Input.js +22 -13
  365. package/dist/esm/components/Control/Input/Number/index.d.ts +2 -2
  366. package/dist/esm/components/Control/Input/Number/index.js +24 -19
  367. package/dist/esm/components/Control/Input/Password/index.d.ts +2 -2
  368. package/dist/esm/components/Control/Input/Password/index.js +39 -27
  369. package/dist/esm/components/Control/Input/index.d.ts +7 -7
  370. package/dist/esm/components/Control/Input/index.js +5 -5
  371. package/dist/esm/components/Control/Input/types.d.ts +5 -5
  372. package/dist/esm/components/Control/Input/useInput.d.ts +5 -4
  373. package/dist/esm/components/Control/Input/useInput.js +47 -50
  374. package/dist/esm/components/Control/Radio/Group.d.ts +7 -2
  375. package/dist/esm/components/Control/Radio/Group.js +24 -17
  376. package/dist/esm/components/Control/Radio/Radio.d.ts +6 -2
  377. package/dist/esm/components/Control/Radio/Radio.js +56 -39
  378. package/dist/esm/components/Control/Radio/RadioGroupContext.d.ts +9 -0
  379. package/dist/esm/components/Control/Radio/RadioGroupContext.js +8 -0
  380. package/dist/esm/components/Control/Radio/index.d.ts +6 -6
  381. package/dist/esm/components/Control/Radio/index.js +2 -3
  382. package/dist/esm/components/Control/Radio/index.scss +1 -0
  383. package/dist/esm/components/Control/Select/index.d.ts +8 -12
  384. package/dist/esm/components/Control/Select/index.js +73 -50
  385. package/dist/esm/components/Control/TextArea/index.d.ts +3 -10
  386. package/dist/esm/components/Control/TextArea/index.js +51 -47
  387. package/dist/esm/components/Control/TextArea/index.scss +1 -1
  388. package/dist/esm/components/Control/index.d.ts +6 -6
  389. package/dist/esm/components/Control/index.js +6 -6
  390. package/dist/esm/components/Control/types.d.ts +8 -7
  391. package/dist/esm/components/Cover/index.d.ts +2 -1
  392. package/dist/esm/components/Cover/index.js +24 -16
  393. package/dist/esm/components/DescriptionList/Description.d.ts +1 -6
  394. package/dist/esm/components/DescriptionList/Description.js +1 -3
  395. package/dist/esm/components/DescriptionList/DescriptionList.d.ts +2 -1
  396. package/dist/esm/components/DescriptionList/DescriptionList.js +10 -4
  397. package/dist/esm/components/DescriptionList/Term.d.ts +1 -6
  398. package/dist/esm/components/DescriptionList/Term.js +1 -3
  399. package/dist/esm/components/DescriptionList/index.d.ts +6 -6
  400. package/dist/esm/components/DescriptionList/index.js +3 -3
  401. package/dist/esm/components/Divider/index.d.ts +2 -1
  402. package/dist/esm/components/Divider/index.js +11 -5
  403. package/dist/esm/components/Dotnav/Dotnav.d.ts +2 -1
  404. package/dist/esm/components/Dotnav/Dotnav.js +10 -4
  405. package/dist/esm/components/Dotnav/Item.d.ts +1 -4
  406. package/dist/esm/components/Dotnav/Item.js +6 -4
  407. package/dist/esm/components/Dotnav/index.d.ts +5 -5
  408. package/dist/esm/components/Dotnav/index.js +2 -2
  409. package/dist/esm/components/Drawer/index.d.ts +7 -44
  410. package/dist/esm/components/Drawer/index.js +42 -141
  411. package/dist/esm/components/Drawer/index.scss +11 -14
  412. package/dist/esm/components/Drop/index.d.ts +12 -4
  413. package/dist/esm/components/Drop/index.js +38 -21
  414. package/dist/esm/components/Drop/index.scss +0 -26
  415. package/dist/esm/components/Dropdown/index.d.ts +3 -3
  416. package/dist/esm/components/Dropdown/index.js +5 -2
  417. package/dist/esm/components/Flex/index.d.ts +14 -15
  418. package/dist/esm/components/Flex/index.js +15 -12
  419. package/dist/esm/components/Form/Controls.d.ts +3 -4
  420. package/dist/esm/components/Form/Controls.js +9 -4
  421. package/dist/esm/components/Form/ControlsText.d.ts +3 -4
  422. package/dist/esm/components/Form/ControlsText.js +9 -4
  423. package/dist/esm/components/Form/Fieldset.d.ts +4 -4
  424. package/dist/esm/components/Form/Fieldset.js +9 -4
  425. package/dist/esm/components/Form/Form.d.ts +4 -5
  426. package/dist/esm/components/Form/Form.js +11 -6
  427. package/dist/esm/components/Form/Label.d.ts +3 -4
  428. package/dist/esm/components/Form/Label.js +8 -4
  429. package/dist/esm/components/Form/Legend.d.ts +3 -4
  430. package/dist/esm/components/Form/Legend.js +7 -4
  431. package/dist/esm/components/Form/index.d.ts +9 -9
  432. package/dist/esm/components/Form/index.js +6 -6
  433. package/dist/esm/components/Grid/index.d.ts +7 -8
  434. package/dist/esm/components/Grid/index.js +14 -11
  435. package/dist/esm/components/Heading/index.d.ts +5 -6
  436. package/dist/esm/components/Heading/index.js +11 -5
  437. package/dist/esm/components/Icon/Button.d.ts +3 -5
  438. package/dist/esm/components/Icon/Button.js +2 -4
  439. package/dist/esm/components/Icon/Icon.d.ts +4 -6
  440. package/dist/esm/components/Icon/Icon.js +9 -8
  441. package/dist/esm/components/Icon/Link.d.ts +3 -5
  442. package/dist/esm/components/Icon/Link.js +2 -4
  443. package/dist/esm/components/Icon/default-svg-props.d.ts +1 -1
  444. package/dist/esm/components/Icon/default-svg-props.js +1 -1
  445. package/dist/esm/components/Icon/index.d.ts +9 -9
  446. package/dist/esm/components/Icon/index.js +5 -5
  447. package/dist/esm/components/Iconnav/Iconnav.d.ts +1 -1
  448. package/dist/esm/components/Iconnav/Iconnav.js +6 -5
  449. package/dist/esm/components/Iconnav/Item.d.ts +1 -5
  450. package/dist/esm/components/Iconnav/Item.js +3 -3
  451. package/dist/esm/components/Iconnav/index.d.ts +5 -5
  452. package/dist/esm/components/Iconnav/index.js +2 -2
  453. package/dist/esm/components/Label/index.d.ts +1 -1
  454. package/dist/esm/components/Label/index.js +7 -6
  455. package/dist/esm/components/Label/index.scss +1 -1
  456. package/dist/esm/components/Link/index.d.ts +3 -3
  457. package/dist/esm/components/Link/index.js +9 -3
  458. package/dist/esm/components/List/Item.d.ts +2 -5
  459. package/dist/esm/components/List/Item.js +1 -3
  460. package/dist/esm/components/List/List.d.ts +1 -1
  461. package/dist/esm/components/List/List.js +8 -7
  462. package/dist/esm/components/List/index.d.ts +5 -5
  463. package/dist/esm/components/List/index.js +2 -2
  464. package/dist/esm/components/Modal/Modal.d.ts +4 -3
  465. package/dist/esm/components/Modal/Modal.js +19 -15
  466. package/dist/esm/components/Modal/index.d.ts +1 -1
  467. package/dist/esm/components/Modal/index.js +1 -1
  468. package/dist/esm/components/Nav/Divider.d.ts +3 -8
  469. package/dist/esm/components/Nav/Divider.js +5 -5
  470. package/dist/esm/components/Nav/Group/InternalNavItemGroup.d.ts +11 -0
  471. package/dist/esm/components/Nav/Group/InternalNavItemGroup.js +13 -0
  472. package/dist/esm/components/Nav/Group/index.d.ts +3 -0
  473. package/dist/esm/components/Nav/Group/index.js +18 -0
  474. package/dist/esm/components/Nav/Header.d.ts +1 -1
  475. package/dist/esm/components/Nav/Header.js +2 -2
  476. package/dist/esm/components/Nav/Item/InternalNavItem.d.ts +16 -2
  477. package/dist/esm/components/Nav/Item/InternalNavItem.js +54 -34
  478. package/dist/esm/components/Nav/Item/LegacyNavItem.js +1 -1
  479. package/dist/esm/components/Nav/Item/index.d.ts +2 -28
  480. package/dist/esm/components/Nav/Item/index.js +5 -5
  481. package/dist/esm/components/Nav/Nav.d.ts +23 -5
  482. package/dist/esm/components/Nav/Nav.js +161 -118
  483. package/dist/esm/components/Nav/Sub/InlineSubNavList.js +3 -3
  484. package/dist/esm/components/Nav/Sub/PopupTrigger.d.ts +6 -6
  485. package/dist/esm/components/Nav/Sub/PopupTrigger.js +21 -13
  486. package/dist/esm/components/Nav/Sub/SubNavList.d.ts +1 -1
  487. package/dist/esm/components/Nav/Sub/SubNavList.js +5 -3
  488. package/dist/esm/components/Nav/Sub/index.d.ts +3 -19
  489. package/dist/esm/components/Nav/Sub/index.js +55 -37
  490. package/dist/esm/components/Nav/context/IdContext.js +3 -0
  491. package/dist/esm/components/Nav/context/NavContext.d.ts +5 -4
  492. package/dist/esm/components/Nav/context/NavContext.js +9 -3
  493. package/dist/esm/components/Nav/context/PathContext.js +5 -0
  494. package/dist/esm/components/Nav/context/PrivateContext.d.ts +7 -0
  495. package/dist/esm/components/Nav/context/PrivateContext.js +2 -0
  496. package/dist/esm/components/Nav/hooks/useAccessibility.d.ts +2 -2
  497. package/dist/esm/components/Nav/hooks/useAccessibility.js +3 -3
  498. package/dist/esm/components/Nav/hooks/useActive.d.ts +2 -2
  499. package/dist/esm/components/Nav/hooks/useActive.js +5 -5
  500. package/dist/esm/components/Nav/hooks/useDirectionStyle.d.ts +2 -0
  501. package/dist/esm/components/Nav/hooks/useDirectionStyle.js +10 -0
  502. package/dist/esm/components/Nav/hooks/useKeyRecords.d.ts +3 -3
  503. package/dist/esm/components/Nav/hooks/useKeyRecords.js +13 -13
  504. package/dist/esm/components/Nav/hooks/useMemoCallback.d.ts +1 -1
  505. package/dist/esm/components/Nav/hooks/useMemoCallback.js +2 -1
  506. package/dist/esm/components/Nav/hooks/useUUID.d.ts +1 -1
  507. package/dist/esm/components/Nav/hooks/useUUID.js +2 -2
  508. package/dist/esm/components/Nav/index.d.ts +9 -9
  509. package/dist/esm/components/Nav/index.js +6 -6
  510. package/dist/esm/components/Nav/index.scss +10 -7
  511. package/dist/esm/components/Nav/types.d.ts +58 -10
  512. package/dist/esm/components/Nav/utils/alignUtil.d.ts +1 -1
  513. package/dist/esm/components/Nav/utils/motionUtil.d.ts +1 -1
  514. package/dist/esm/components/Nav/utils/nodeUtil.d.ts +3 -1
  515. package/dist/esm/components/Nav/utils/nodeUtil.js +36 -0
  516. package/dist/esm/components/Nav/utils/warnUtil.d.ts +1 -1
  517. package/dist/esm/components/Navbar/Center.d.ts +5 -7
  518. package/dist/esm/components/Navbar/Center.js +7 -4
  519. package/dist/esm/components/Navbar/Container.d.ts +4 -8
  520. package/dist/esm/components/Navbar/Container.js +8 -5
  521. package/dist/esm/components/Navbar/Item.d.ts +5 -8
  522. package/dist/esm/components/Navbar/Item.js +7 -4
  523. package/dist/esm/components/Navbar/Left.d.ts +5 -7
  524. package/dist/esm/components/Navbar/Left.js +7 -4
  525. package/dist/esm/components/Navbar/Nav.d.ts +2 -1
  526. package/dist/esm/components/Navbar/Nav.js +5 -2
  527. package/dist/esm/components/Navbar/Right.d.ts +3 -3
  528. package/dist/esm/components/Navbar/Toggle.d.ts +5 -4
  529. package/dist/esm/components/Navbar/index.d.ts +11 -11
  530. package/dist/esm/components/Navbar/index.js +8 -8
  531. package/dist/esm/components/Progress/index.d.ts +6 -0
  532. package/dist/esm/components/Progress/index.js +10 -0
  533. package/dist/esm/components/Progress/index.scss +129 -0
  534. package/dist/esm/components/Section/index.d.ts +4 -6
  535. package/dist/esm/components/Section/index.js +10 -7
  536. package/dist/esm/components/Spinner/index.d.ts +3 -3
  537. package/dist/esm/components/Spinner/index.js +8 -6
  538. package/dist/esm/components/Tabs/index.d.ts +7 -11
  539. package/dist/esm/components/Tabs/index.js +17 -17
  540. package/dist/esm/components/Tabs/index.scss +9 -1
  541. package/dist/esm/components/Text/index.d.ts +7 -8
  542. package/dist/esm/components/Text/index.js +22 -19
  543. package/dist/esm/components/Tile/index.d.ts +5 -6
  544. package/dist/esm/components/Tile/index.js +10 -7
  545. package/dist/esm/components/Tile/index.scss +8 -8
  546. package/dist/esm/components/Width/Width.d.ts +5 -6
  547. package/dist/esm/components/Width/Width.js +12 -5
  548. package/dist/esm/components/Width/index.d.ts +3 -3
  549. package/dist/esm/components/Width/index.js +3 -3
  550. package/dist/esm/components/Width/types.d.ts +6 -6
  551. package/dist/esm/components/Width/utils.d.ts +1 -1
  552. package/dist/esm/components/Width/utils.js +3 -1
  553. package/dist/esm/hooks/index.d.ts +3 -0
  554. package/dist/esm/hooks/index.js +3 -0
  555. package/dist/esm/hooks/useContext.d.ts +2 -0
  556. package/dist/esm/hooks/useContext.js +8 -0
  557. package/dist/esm/hooks/useMounted.d.ts +1 -0
  558. package/dist/esm/hooks/useMounted.js +11 -0
  559. package/dist/esm/index.d.ts +33 -30
  560. package/dist/esm/index.js +33 -30
  561. package/dist/esm/styles/_import.components.scss +1 -2
  562. package/dist/esm/styles/_import.scss +1 -2
  563. package/dist/esm/styles/animation.scss +35 -35
  564. package/dist/esm/styles/column.scss +0 -1
  565. package/dist/esm/styles/mixins.scss +30 -8
  566. package/dist/esm/styles/motion.scss +367 -44
  567. package/dist/esm/styles/progress.scss +1 -129
  568. package/dist/esm/styles/variables.scss +6 -4
  569. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
  570. package/dist/esm/types.d.ts +15 -3
  571. package/dist/esm/utils/get-breakpoints-config-classes.d.ts +1 -1
  572. package/dist/esm/utils/index.d.ts +3 -4
  573. package/dist/esm/utils/index.js +3 -4
  574. package/dist/esm/utils/motion.d.ts +3 -3
  575. package/dist/esm/utils/motion.js +20 -19
  576. package/package.json +36 -34
  577. package/dist/cjs/components/Component/Component.d.ts +0 -8
  578. package/dist/cjs/components/Control/Checkbox/Context.d.ts +0 -4
  579. package/dist/cjs/components/Control/Radio/Context.d.ts +0 -4
  580. package/dist/cjs/components/Control/Radio/types.d.ts +0 -25
  581. package/dist/cjs/components/Control/Radio/types.js +0 -2
  582. package/dist/cjs/components/Nav/Group.d.ts +0 -14
  583. package/dist/cjs/utils/hooks/index.d.ts +0 -1
  584. package/dist/esm/components/Component/Component.d.ts +0 -8
  585. package/dist/esm/components/Component/Component.js +0 -3
  586. package/dist/esm/components/Control/Checkbox/Context.d.ts +0 -4
  587. package/dist/esm/components/Control/Checkbox/Context.js +0 -5
  588. package/dist/esm/components/Control/Radio/Context.d.ts +0 -4
  589. package/dist/esm/components/Control/Radio/Context.js +0 -5
  590. package/dist/esm/components/Control/Radio/types.d.ts +0 -25
  591. package/dist/esm/components/Control/Radio/types.js +0 -1
  592. package/dist/esm/components/Nav/Group.d.ts +0 -14
  593. package/dist/esm/components/Nav/Group.js +0 -26
  594. package/dist/esm/utils/hooks/index.d.ts +0 -1
  595. package/dist/esm/utils/hooks/index.js +0 -1
  596. /package/dist/cjs/{utils/hooks → hooks}/useForceUpdate.d.ts +0 -0
  597. /package/dist/cjs/{utils/hooks → hooks}/useForceUpdate.js +0 -0
  598. /package/dist/esm/{utils/hooks → hooks}/useForceUpdate.d.ts +0 -0
  599. /package/dist/esm/{utils/hooks → hooks}/useForceUpdate.js +0 -0
@@ -1,12 +1,13 @@
1
1
  import * as React from 'react';
2
2
  import classNames from 'classnames';
3
3
  import { useConfig } from '../ConfrigProvider';
4
- export function List(props) {
4
+ export const List = React.memo((props) => {
5
5
  const config = useConfig();
6
- const { className, color, prefixCls = `${config.prefixCls}-list`, size, type, ...restProps } = props;
7
- return (React.createElement("ul", { className: classNames(prefixCls, {
8
- [`${prefixCls}-${color}`]: color !== undefined,
9
- [`${prefixCls}-${size}`]: size !== undefined,
10
- [`${prefixCls}-${type}`]: type !== undefined,
6
+ const { className, color, prefixCls = config.prefixCls, size, type, ...restProps } = props;
7
+ const rootCls = React.useMemo(() => config.getRootPrefixCls(prefixCls || config.prefixCls, 'list'), [config, prefixCls]);
8
+ return (React.createElement("ul", { className: classNames(rootCls, {
9
+ [`${rootCls}-${color}`]: color !== undefined,
10
+ [`${rootCls}-${size}`]: size !== undefined,
11
+ [`${rootCls}-${type}`]: type !== undefined,
11
12
  }, className), ...restProps }));
12
- }
13
+ });
@@ -1,9 +1,9 @@
1
- import * as React from 'react';
2
- import { Item } from './Item';
3
- import type { ListProps } from './List';
1
+ import type * as React from 'react';
2
+ import { type ListProps } from '../List/List';
3
+ import { Item } from '../List/Item';
4
4
  import './index.scss';
5
5
  export type { ListProps };
6
- export interface CompoundedList extends React.FunctionComponent<ListProps> {
6
+ export interface List extends React.MemoExoticComponent<React.FunctionComponent<ListProps>> {
7
7
  Item: typeof Item;
8
8
  }
9
- export declare const List: CompoundedList;
9
+ export declare const List: List;
@@ -1,5 +1,5 @@
1
- import { List as InnerList } from './List';
2
- import { Item } from './Item';
1
+ import { List as InnerList } from '../List/List';
2
+ import { Item } from '../List/Item';
3
3
  import './index.scss';
4
4
  export const List = InnerList;
5
5
  List.Item = Item;
@@ -1,5 +1,6 @@
1
- import type { DialogProps } from 'rc-dialog';
2
- import type { Direction } from '../../types';
1
+ import * as React from 'react';
2
+ import { type DialogProps } from 'rc-dialog';
3
+ import { type Direction } from '../../types';
3
4
  export interface ModalProps extends Omit<DialogProps, 'afterClose'> {
4
5
  centered?: boolean;
5
6
  direction?: Direction;
@@ -8,4 +9,4 @@ export interface ModalProps extends Omit<DialogProps, 'afterClose'> {
8
9
  type?: 'info' | 'success' | 'warning' | 'error' | 'confirm';
9
10
  onClosed?: () => void;
10
11
  }
11
- export declare function Modal(props: ModalProps): JSX.Element;
12
+ export declare const Modal: React.MemoExoticComponent<(props: ModalProps) => JSX.Element>;
@@ -1,15 +1,15 @@
1
1
  import * as React from 'react';
2
2
  import { canUseDocElement } from '@broxus/js-utils';
3
- import Dialog from 'rc-dialog';
4
3
  import classNames from 'classnames';
5
- import { getTransitionName } from '../../utils';
4
+ import Dialog from 'rc-dialog';
6
5
  import { Close } from '../Close';
7
6
  import { useConfig } from '../ConfrigProvider';
7
+ import { getMotionName } from '../../utils';
8
8
  let mousePosition;
9
- const getClickPosition = (e) => {
9
+ const getClickPosition = (event) => {
10
10
  mousePosition = {
11
- x: e.pageX,
12
- y: e.pageY,
11
+ x: event.pageX,
12
+ y: event.pageY,
13
13
  };
14
14
  setTimeout(() => {
15
15
  mousePosition = null;
@@ -18,16 +18,20 @@ const getClickPosition = (e) => {
18
18
  if (canUseDocElement()) {
19
19
  document.documentElement.addEventListener('click', getClickPosition, true);
20
20
  }
21
- export function Modal(props) {
21
+ export const Modal = React.memo((props) => {
22
22
  const config = useConfig();
23
- const { centered, children, className, closable = true, closeIcon, focusTriggerAfterClose = true, full, prefixCls = `${config.prefixCls}-modal`, visible, onClose, onClosed, ...restProps } = props;
23
+ const { centered, children, className, closable = true, closeIcon, focusTriggerAfterClose = true, full, prefixCls = config.prefixCls, visible, onClose, onClosed, ...restProps } = props;
24
+ const rootCls = React.useMemo(() => config.getRootPrefixCls(prefixCls || config.prefixCls, 'modal'), [config, prefixCls]);
25
+ const defaultMaskTransitionName = React.useMemo(() => getMotionName(prefixCls || config.prefixCls, 'fade'), [config.prefixCls, prefixCls]);
26
+ const defaultTransitionName = React.useMemo(() => getMotionName(prefixCls || config.prefixCls, 'zoom'), [config.prefixCls, prefixCls]);
24
27
  return (React.createElement(Dialog, { className: classNames(className, {
25
- [`${prefixCls}-centered`]: centered && !full,
26
- [`${prefixCls}-full`]: full && !centered,
27
- }), focusTriggerAfterClose: focusTriggerAfterClose, maskTransitionName: getTransitionName(`${config.prefixCls}-motion`, 'fade'), mousePosition: mousePosition, prefixCls: prefixCls, transitionName: getTransitionName(`${config.prefixCls}-motion`, 'zoom'), visible: visible, ...restProps, afterClose: onClosed, closable: false, closeIcon: null },
28
- closable && (closeIcon || (React.createElement(Close, { className: classNames({
29
- [`${prefixCls}-close-default`]: !full,
30
- [`${prefixCls}-close-full`]: full,
31
- }), component: "button", onClick: onClose }))),
28
+ [`${rootCls}-centered`]: centered && !full,
29
+ [`${rootCls}-full`]: full && !centered,
30
+ }), focusTriggerAfterClose: focusTriggerAfterClose, maskTransitionName: defaultMaskTransitionName, mousePosition: mousePosition, prefixCls: rootCls, transitionName: defaultTransitionName, visible: visible, ...restProps, afterClose: onClosed, closable: false, closeIcon: null },
31
+ closable &&
32
+ (closeIcon || (React.createElement(Close, { className: classNames({
33
+ [`${rootCls}-close-default`]: !full,
34
+ [`${rootCls}-close-full`]: full,
35
+ }), component: "button", onClick: onClose }))),
32
36
  children));
33
- }
37
+ });
@@ -1,2 +1,2 @@
1
1
  import './index.scss';
2
- export * from './Modal';
2
+ export * from '../Modal/Modal';
@@ -1,2 +1,2 @@
1
1
  import './index.scss';
2
- export * from './Modal';
2
+ export * from '../Modal/Modal';
@@ -1,9 +1,4 @@
1
1
  import * as React from 'react';
2
- export declare type DividerProps = {
3
- className?: string;
4
- style?: React.CSSProperties;
5
- };
6
- export declare function Divider(props: DividerProps): JSX.Element | null;
7
- export declare namespace Divider {
8
- var displayName: string;
9
- }
2
+ import { type NavDividerType } from '../Nav/types';
3
+ export type DividerProps = Omit<NavDividerType, 'type'>;
4
+ export declare const Divider: React.MemoExoticComponent<(props: DividerProps) => JSX.Element | null>;
@@ -1,16 +1,16 @@
1
1
  import * as React from 'react';
2
2
  import classNames from 'classnames';
3
- import { NavContext } from './context/NavContext';
4
- import { useMeasure } from './context/PathContext';
5
- export function Divider(props) {
3
+ import { NavContext } from '../Nav/context/NavContext';
4
+ import { useMeasure } from '../Nav/context/PathContext';
5
+ export const Divider = React.memo((props) => {
6
6
  const { className, style } = props;
7
7
  const { prefixCls } = React.useContext(NavContext);
8
8
  const measure = useMeasure();
9
9
  if (measure) {
10
10
  return null;
11
11
  }
12
- return (React.createElement("li", { className: classNames(`${prefixCls}-divider`, className), style: style }));
13
- }
12
+ return React.createElement("li", { className: classNames(`${prefixCls}-divider`, className), style: style });
13
+ });
14
14
  if (process.env.NODE_ENV !== 'production') {
15
15
  Divider.displayName = 'Nav.Divider';
16
16
  }
@@ -0,0 +1,11 @@
1
+ import * as React from 'react';
2
+ import { type NavItemGroupType } from '../../Nav/types';
3
+ export interface NavItemGroupProps extends Omit<NavItemGroupType, 'children' | 'type' | 'label'> {
4
+ title?: React.ReactNode;
5
+ children?: React.ReactNode;
6
+ /** @private Internal filled key. Do not set it directly */
7
+ eventKey?: string;
8
+ /** @private Do not use. Private warning empty usage */
9
+ warnKey?: boolean;
10
+ }
11
+ export declare const InternalNavItemGroup: React.MemoExoticComponent<(props: NavItemGroupProps) => JSX.Element>;
@@ -0,0 +1,13 @@
1
+ import * as React from 'react';
2
+ import classNames from 'classnames';
3
+ import { stopEventPropagate } from '@broxus/js-utils';
4
+ import { NavContext } from '../../Nav/context/NavContext';
5
+ export const InternalNavItemGroup = React.memo((props) => {
6
+ const { children, className, title, ...restProps } = props;
7
+ const { prefixCls } = React.useContext(NavContext);
8
+ const groupRootCls = React.useMemo(() => `${prefixCls}-group`, [prefixCls]);
9
+ const subRootCls = React.useMemo(() => `${prefixCls}-sub`, [prefixCls]);
10
+ return (React.createElement("li", { className: classNames(groupRootCls, className), role: "presentation", ...restProps, onClick: stopEventPropagate },
11
+ React.createElement("div", { className: `${groupRootCls}-header`, role: "presentation", title: typeof title === 'string' ? title : undefined }, title),
12
+ React.createElement("ul", { className: subRootCls, role: "group" }, children)));
13
+ });
@@ -0,0 +1,3 @@
1
+ import * as React from 'react';
2
+ import { type NavItemGroupProps } from '../../Nav/Group/InternalNavItemGroup';
3
+ export declare const Group: React.MemoExoticComponent<(props: NavItemGroupProps) => JSX.Element>;
@@ -0,0 +1,18 @@
1
+ import * as React from 'react';
2
+ import omit from 'rc-util/lib/omit';
3
+ import { useFullPath, useMeasure } from '../../Nav/context/PathContext';
4
+ import { InternalNavItemGroup } from '../../Nav/Group/InternalNavItemGroup';
5
+ import { parseChildren } from '../../Nav/utils/nodeUtil';
6
+ export const Group = React.memo((props) => {
7
+ const { children, eventKey, ...restProps } = props;
8
+ const connectedKeyPath = useFullPath(eventKey);
9
+ const measure = useMeasure();
10
+ const childList = parseChildren(children, connectedKeyPath);
11
+ if (measure) {
12
+ return childList;
13
+ }
14
+ return React.createElement(InternalNavItemGroup, { ...omit(restProps, ['warnKey']) }, childList);
15
+ });
16
+ if (process.env.NODE_ENV !== 'production') {
17
+ Group.displayName = 'Nav.Group';
18
+ }
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- export declare type HeaderProps = {
2
+ export type HeaderProps = {
3
3
  children: React.ReactNode;
4
4
  className?: string;
5
5
  style?: React.CSSProperties;
@@ -1,10 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import classNames from 'classnames';
3
- import { NavContext } from './context/NavContext';
3
+ import { NavContext } from '../Nav/context/NavContext';
4
4
  export function Header(props) {
5
5
  const { className, ...restProps } = props;
6
6
  const { prefixCls } = React.useContext(NavContext);
7
- return (React.createElement("li", { className: classNames(`${prefixCls}-header`, className), ...restProps }));
7
+ return React.createElement("li", { className: classNames(`${prefixCls}-header`, className), ...restProps });
8
8
  }
9
9
  if (process.env.NODE_ENV !== 'production') {
10
10
  Header.displayName = 'Nav.Header';
@@ -1,2 +1,16 @@
1
- import type { NavItemProps } from './index';
2
- export declare function InternalNavItem(props: NavItemProps): JSX.Element;
1
+ import * as React from 'react';
2
+ import { type NavItemType } from '../../Nav/types';
3
+ export interface NavItemProps extends Omit<NavItemType, 'label' | 'key'>, Omit<React.HTMLAttributes<HTMLLIElement>, 'onClick' | 'onMouseEnter' | 'onMouseLeave' | 'onSelect'> {
4
+ children?: React.ReactNode;
5
+ /**
6
+ * Internal filled key. Do not set it directly
7
+ * @private
8
+ */
9
+ eventKey?: string;
10
+ /**
11
+ * Do not use. Private warning empty usage
12
+ * @private
13
+ */
14
+ warnKey?: boolean;
15
+ }
16
+ export declare const InternalNavItem: React.MemoExoticComponent<(props: NavItemProps) => JSX.Element>;
@@ -2,67 +2,87 @@ import * as React from 'react';
2
2
  import classNames from 'classnames';
3
3
  import KeyCode from 'rc-util/lib/KeyCode';
4
4
  import warning from 'rc-util/lib/warning';
5
- import { useNavId } from '../context/IdContext';
6
- import { NavContext } from '../context/NavContext';
7
- import { useFullPath } from '../context/PathContext';
8
- import useActive from '../hooks/useActive';
9
- import { LegacyNavItem } from './LegacyNavItem';
10
- import { warnItemProp } from '../utils/warnUtil';
11
- export function InternalNavItem(props) {
12
- const { className, children, eventKey, itemIcon, role, warnKey, ...restProps } = props;
13
- const { disabled = restProps.disabled, itemIcon: contextItemIcon, overflowDisabled, selectedKeys, onActive, onItemClick, } = React.useContext(NavContext);
5
+ import { useConfig } from '../../ConfrigProvider';
6
+ import { useNavId } from '../../Nav/context/IdContext';
7
+ import { NavContext } from '../../Nav/context/NavContext';
8
+ import { useFullPath } from '../../Nav/context/PathContext';
9
+ import { PrivateContext } from '../../Nav/context/PrivateContext';
10
+ import { useActive } from '../../Nav/hooks/useActive';
11
+ import { LegacyNavItem } from '../../Nav/Item/LegacyNavItem';
12
+ import { warnItemProp } from '../../Nav/utils/warnUtil';
13
+ import { useDirectionStyle } from '../../Nav/hooks/useDirectionStyle';
14
+ export const InternalNavItem = React.memo((props) => {
15
+ const config = useConfig();
16
+ const { className, children, disabled, eventKey, itemIcon, role, style, warnKey, onClick, onFocus, onKeyDown, onMouseEnter, onMouseLeave, ...restProps } = props;
17
+ const domDataId = useNavId(eventKey);
18
+ const { disabled: contextDisabled = disabled, itemIcon: contextItemIcon, overflowDisabled, selectedKeys, onActive, onItemClick, } = React.useContext(NavContext);
19
+ const { _internalRenderMenuItem } = React.useContext(PrivateContext);
14
20
  const legacyNavItemRef = React.useRef();
15
21
  const elementRef = React.useRef();
16
- const { active, ...activeProps } = useActive(eventKey, disabled, restProps.onMouseEnter, restProps.onMouseLeave);
22
+ const mergedDisabled = contextDisabled || disabled;
17
23
  const connectedKeys = useFullPath(eventKey);
18
- const domDataId = useNavId(eventKey);
19
- const selected = eventKey !== undefined && selectedKeys.includes(eventKey);
24
+ // ================================ Warn ================================
20
25
  if (process.env.NODE_ENV !== 'production' && warnKey) {
21
26
  warning(false, 'NavItem should not leave undefined `key`.');
22
27
  }
23
- const getEventInfo = (e) => ({
24
- domEvent: e,
28
+ // ============================= Info =============================
29
+ const getEventInfo = (event) => ({
30
+ domEvent: event,
25
31
  item: legacyNavItemRef.current,
26
32
  key: eventKey,
27
33
  // Note: For legacy code is reversed which not like other antd component
28
34
  keyPath: [...connectedKeys].reverse(),
29
35
  });
30
- const onClick = event => {
31
- if (disabled) {
36
+ // ============================ Active ============================
37
+ const { active, ...activeProps } = useActive(eventKey, disabled, onMouseEnter, onMouseLeave);
38
+ // ============================ Select ============================
39
+ const selected = eventKey ? selectedKeys.includes(eventKey) : false;
40
+ // ======================== DirectionStyle ========================
41
+ const directionStyle = useDirectionStyle(connectedKeys.length);
42
+ // ============================ Events ============================
43
+ const onInternalClick = event => {
44
+ if (mergedDisabled) {
32
45
  return;
33
46
  }
34
47
  const info = getEventInfo(event);
35
- restProps.onClick?.(warnItemProp(info));
36
- onItemClick?.(info);
48
+ onClick?.(warnItemProp(info));
49
+ onItemClick(info);
37
50
  };
38
- const onKeyDown = event => {
39
- restProps.onKeyDown?.(event);
51
+ const onInternalKeyDown = event => {
52
+ onKeyDown?.(event);
40
53
  if (event.which === KeyCode.ENTER) {
41
54
  const info = getEventInfo(event);
42
55
  // Legacy. Key will also trigger click event
43
- restProps.onClick?.(warnItemProp(info));
44
- onItemClick?.(info);
56
+ onClick?.(warnItemProp(info));
57
+ onItemClick(info);
45
58
  }
46
59
  };
47
- /*
48
- * Used for accessibility. Helper will focus element without key board.
60
+ /**
61
+ * Used for accessibility. Helper will focus element without keyboard.
49
62
  * We should manually trigger an active
50
63
  */
51
- const onFocus = event => {
52
- if (eventKey !== undefined) {
64
+ const onInternalFocus = event => {
65
+ if (eventKey) {
53
66
  onActive(eventKey);
54
67
  }
55
- restProps.onFocus?.(event);
68
+ onFocus?.(event);
56
69
  };
57
70
  const optionRoleProps = {};
58
71
  if (role === 'option') {
59
- optionRoleProps['aria-selected'] = selected;
72
+ optionRoleProps['aria-selected'] = selected || false;
60
73
  }
61
- return (React.createElement(LegacyNavItem, { className: classNames({
62
- 'uk-active': selected,
63
- 'uk-disabled': disabled,
64
- 'uk-hover': active,
65
- }, className), component: "li", role: role === null ? 'none' : role || 'menuitem', tabIndex: disabled ? null : -1, "aria-disabled": disabled, ...optionRoleProps, "data-nav-id": (overflowDisabled && domDataId) ? null : domDataId, ...restProps, ...activeProps, elementRef: elementRef, ref: legacyNavItemRef, onClick: onClick, onFocus: onFocus, onKeyDown: onKeyDown },
74
+ let renderNode = (React.createElement(LegacyNavItem, { "aria-disabled": disabled, className: classNames({
75
+ [`${config.prefixCls}-active`]: selected,
76
+ [`${config.prefixCls}-disabled`]: disabled,
77
+ [`${config.prefixCls}-hover`]: active,
78
+ }, className), component: "li", "data-nav-id": overflowDisabled && domDataId ? null : domDataId, elementRef: elementRef, ref: legacyNavItemRef, role: role === null ? 'none' : role || 'menuitem', style: {
79
+ ...directionStyle,
80
+ ...style,
81
+ }, tabIndex: disabled ? null : -1, ...optionRoleProps, ...restProps, ...activeProps, onClick: onInternalClick, onFocus: onInternalFocus, onKeyDown: onInternalKeyDown },
66
82
  itemIcon || contextItemIcon,
67
83
  children));
68
- }
84
+ if (_internalRenderMenuItem) {
85
+ renderNode = _internalRenderMenuItem(renderNode, props, { selected });
86
+ }
87
+ return renderNode;
88
+ });
@@ -4,7 +4,7 @@ import omit from 'rc-util/lib/omit';
4
4
  import warning from 'rc-util/lib/warning';
5
5
  export class LegacyNavItem extends React.Component {
6
6
  render() {
7
- const { title, attribute, elementRef, ...restProps } = this.props;
7
+ const { attribute, elementRef, title, ...restProps } = this.props;
8
8
  const passedProps = omit(restProps, ['eventKey']);
9
9
  warning(!attribute, '`attribute` of Nav.Item is deprecated. Please pass attribute directly.');
10
10
  return (React.createElement(Overflow.Item, { ...attribute, title: typeof title === 'string' ? title : undefined, ...passedProps, ref: elementRef }));
@@ -1,29 +1,3 @@
1
1
  import * as React from 'react';
2
- import type { NavClickEventHandler, NavHoverEventHandler, RenderIconType } from '../types';
3
- export interface NavItemProps extends Omit<React.HTMLAttributes<HTMLLIElement>, 'onClick' | 'onMouseEnter' | 'onMouseLeave' | 'onSelect'> {
4
- /**
5
- * No place to use this. Should remove
6
- * @deprecated
7
- */
8
- attribute?: Record<string, string>;
9
- children?: React.ReactNode;
10
- disabled?: boolean;
11
- /**
12
- * Internal filled key. Do not set it directly
13
- * @private
14
- */
15
- eventKey?: string;
16
- itemIcon?: RenderIconType;
17
- /**
18
- * Do not use. Private warning empty usage
19
- * @private
20
- */
21
- warnKey?: boolean;
22
- onClick?: NavClickEventHandler;
23
- onMouseEnter?: NavHoverEventHandler;
24
- onMouseLeave?: NavHoverEventHandler;
25
- }
26
- export declare function Item(props: NavItemProps): JSX.Element | null;
27
- export declare namespace Item {
28
- var displayName: string;
29
- }
2
+ import { type NavItemProps } from '../../Nav/Item/InternalNavItem';
3
+ export declare const Item: React.MemoExoticComponent<(props: NavItemProps) => JSX.Element | null>;
@@ -1,8 +1,8 @@
1
1
  import * as React from 'react';
2
2
  import { noop } from '@broxus/js-utils';
3
- import { useFullPath, useMeasure } from '../context/PathContext';
4
- import { InternalNavItem } from './InternalNavItem';
5
- export function Item(props) {
3
+ import { useFullPath, useMeasure } from '../../Nav/context/PathContext';
4
+ import { InternalNavItem } from '../../Nav/Item/InternalNavItem';
5
+ export const Item = React.memo((props) => {
6
6
  const { eventKey } = props;
7
7
  const measure = useMeasure();
8
8
  const connectedKeyPath = useFullPath(eventKey);
@@ -14,12 +14,12 @@ export function Item(props) {
14
14
  };
15
15
  }
16
16
  return noop;
17
- }, [connectedKeyPath]);
17
+ }, [connectedKeyPath, eventKey, measure]);
18
18
  if (measure) {
19
19
  return null;
20
20
  }
21
21
  return React.createElement(InternalNavItem, { ...props });
22
- }
22
+ });
23
23
  if (process.env.NODE_ENV !== 'production') {
24
24
  Item.displayName = 'Nav.Item';
25
25
  }
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
- import type { CSSMotionProps } from 'rc-motion';
3
- import type { Direction } from '../../types';
4
- import type { BuiltinPlacements, NavClickEventHandler, NavMode, NavModifier, RenderIconType, SelectEventHandler, TriggerSubMenuAction } from './types';
2
+ import { type CSSMotionProps } from 'rc-motion';
3
+ import { type BuiltinPlacements, type ItemType, type NavClickEventHandler, type NavMode, type NavModifier, type NavRef, type RenderIconType, type SelectEventHandler, type TriggerSubNavAction } from '../Nav/types';
4
+ import { type Direction } from '../../types';
5
5
  export interface NavProps extends Omit<React.HTMLAttributes<HTMLUListElement>, 'onClick' | 'onSelect' | 'dir'> {
6
6
  activeKey?: string;
7
7
  builtinPlacements?: BuiltinPlacements;
@@ -20,6 +20,7 @@ export interface NavProps extends Omit<React.HTMLAttributes<HTMLUListElement>, '
20
20
  getPopupContainer?: (node: HTMLElement) => HTMLElement;
21
21
  inlineCollapsed?: boolean;
22
22
  itemIcon?: RenderIconType;
23
+ items?: ItemType[];
23
24
  mode?: NavMode;
24
25
  modifiers?: NavModifier | NavModifier[];
25
26
  motion?: CSSMotionProps;
@@ -33,10 +34,27 @@ export interface NavProps extends Omit<React.HTMLAttributes<HTMLUListElement>, '
33
34
  selectedKeys?: string[];
34
35
  subNavCloseDelay?: number;
35
36
  subNavOpenDelay?: number;
36
- triggerSubNavAction?: TriggerSubMenuAction;
37
+ triggerSubNavAction?: TriggerSubNavAction;
37
38
  onClick?: NavClickEventHandler;
38
39
  onDeselect?: SelectEventHandler;
39
40
  onOpenChange?: (openKeys: string[]) => void;
40
41
  onSelect?: SelectEventHandler;
42
+ /**
43
+ * @private Only used for `pro-layout`. Do not use in your prod directly,
44
+ * and we do not promise any compatibility for this.
45
+ */
46
+ _internalRenderMenuItem?: (originNode: React.ReactElement, menuItemProps: any, stateProps: {
47
+ selected: boolean;
48
+ }) => React.ReactElement;
49
+ /**
50
+ * @private Only used for `pro-layout`. Do not use in your prod directly,
51
+ * and we do not promise any compatibility for this.
52
+ */
53
+ _internalRenderSubMenuItem?: (originNode: React.ReactElement, subMenuItemProps: any, stateProps: {
54
+ selected: boolean;
55
+ open: boolean;
56
+ active: boolean;
57
+ disabled: boolean;
58
+ }) => React.ReactElement;
41
59
  }
42
- export declare function Nav(props: NavProps): JSX.Element;
60
+ export declare const Nav: React.MemoExoticComponent<React.ForwardRefExoticComponent<NavProps & React.RefAttributes<NavRef>>>;