@veracity/vui 1.1.2 → 1.2.0-beta.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 (296) hide show
  1. package/dist/cjs/button/button.js +1 -1
  2. package/dist/cjs/button/theme.d.ts +0 -12
  3. package/dist/cjs/button/theme.d.ts.map +1 -1
  4. package/dist/cjs/button/theme.js +0 -22
  5. package/dist/cjs/core/index.d.ts +1 -0
  6. package/dist/cjs/core/index.d.ts.map +1 -1
  7. package/dist/cjs/core/index.js +1 -0
  8. package/dist/cjs/core/media.d.ts +4 -3
  9. package/dist/cjs/core/media.d.ts.map +1 -1
  10. package/dist/cjs/core/types.d.ts +5 -0
  11. package/dist/cjs/core/types.d.ts.map +1 -0
  12. package/dist/cjs/core/types.js +2 -0
  13. package/dist/cjs/core/vuiProvider/vuiProvider.d.ts +2 -1
  14. package/dist/cjs/core/vuiProvider/vuiProvider.d.ts.map +1 -1
  15. package/dist/cjs/core/vuiProvider/vuiProvider.js +7 -9
  16. package/dist/cjs/dialog/consts.d.ts +3 -0
  17. package/dist/cjs/dialog/consts.d.ts.map +1 -1
  18. package/dist/cjs/dialog/consts.js +4 -1
  19. package/dist/cjs/dialog/index.d.ts +2 -0
  20. package/dist/cjs/dialog/index.d.ts.map +1 -1
  21. package/dist/cjs/dialog/index.js +2 -0
  22. package/dist/cjs/dialog/showConfirm.d.ts +2 -0
  23. package/dist/cjs/dialog/showConfirm.d.ts.map +1 -0
  24. package/dist/cjs/dialog/showConfirm.js +37 -0
  25. package/dist/cjs/dialog/showPrompt.d.ts +2 -0
  26. package/dist/cjs/dialog/showPrompt.d.ts.map +1 -0
  27. package/dist/cjs/dialog/showPrompt.js +42 -0
  28. package/dist/cjs/header/header.types.d.ts +3 -9
  29. package/dist/cjs/header/header.types.d.ts.map +1 -1
  30. package/dist/cjs/header/headerLogo.d.ts +3 -3
  31. package/dist/cjs/header/headerLogo.d.ts.map +1 -1
  32. package/dist/cjs/header/headerLogo.js +4 -9
  33. package/dist/cjs/icons/baseIcons/cub/cubBellship.d.ts +4 -0
  34. package/dist/cjs/icons/baseIcons/cub/cubBellship.d.ts.map +1 -0
  35. package/dist/cjs/icons/baseIcons/cub/cubBellship.js +7 -0
  36. package/dist/cjs/icons/baseIcons/cub/cubDNV.d.ts +4 -0
  37. package/dist/cjs/icons/baseIcons/cub/cubDNV.d.ts.map +1 -0
  38. package/dist/cjs/icons/baseIcons/cub/cubDNV.js +7 -0
  39. package/dist/cjs/icons/baseIcons/cul/culFileDownloadAlt.d.ts +4 -0
  40. package/dist/cjs/icons/baseIcons/cul/culFileDownloadAlt.d.ts.map +1 -0
  41. package/dist/cjs/icons/baseIcons/cul/culFileDownloadAlt.js +7 -0
  42. package/dist/cjs/icons/baseIcons/cul/culFilterAlt.d.ts +4 -0
  43. package/dist/cjs/icons/baseIcons/cul/culFilterAlt.d.ts.map +1 -0
  44. package/dist/cjs/icons/baseIcons/cul/culFilterAlt.js +7 -0
  45. package/dist/cjs/icons/baseIcons/fal/falDollarSign.d.ts +4 -0
  46. package/dist/cjs/icons/baseIcons/fal/falDollarSign.d.ts.map +1 -0
  47. package/dist/cjs/icons/baseIcons/fal/falDollarSign.js +7 -0
  48. package/dist/cjs/icons/baseIcons/fal/falEuroSign.d.ts +4 -0
  49. package/dist/cjs/icons/baseIcons/fal/falEuroSign.d.ts.map +1 -0
  50. package/dist/cjs/icons/baseIcons/fal/falEuroSign.js +7 -0
  51. package/dist/cjs/icons/baseIcons/fal/falPoundSign.d.ts +4 -0
  52. package/dist/cjs/icons/baseIcons/fal/falPoundSign.d.ts.map +1 -0
  53. package/dist/cjs/icons/baseIcons/fal/falPoundSign.js +7 -0
  54. package/dist/cjs/icons/baseIcons/fal/falShoppingCart.d.ts +4 -0
  55. package/dist/cjs/icons/baseIcons/fal/falShoppingCart.d.ts.map +1 -0
  56. package/dist/cjs/icons/baseIcons/fal/falShoppingCart.js +7 -0
  57. package/dist/cjs/icons/baseIcons/fal/falUserHeadset.d.ts +4 -0
  58. package/dist/cjs/icons/baseIcons/fal/falUserHeadset.d.ts.map +1 -0
  59. package/dist/cjs/icons/baseIcons/fal/falUserHeadset.js +7 -0
  60. package/dist/cjs/icons/baseIcons/fas/fasChartNetwork.d.ts +4 -0
  61. package/dist/cjs/icons/baseIcons/fas/fasChartNetwork.d.ts.map +1 -0
  62. package/dist/cjs/icons/baseIcons/fas/fasChartNetwork.js +7 -0
  63. package/dist/cjs/icons/baseIcons/fas/fasPuzzlePiece.d.ts +4 -0
  64. package/dist/cjs/icons/baseIcons/fas/fasPuzzlePiece.d.ts.map +1 -0
  65. package/dist/cjs/icons/baseIcons/fas/fasPuzzlePiece.js +7 -0
  66. package/dist/cjs/icons/baseIcons/icons.d.ts +11 -0
  67. package/dist/cjs/icons/baseIcons/icons.d.ts.map +1 -1
  68. package/dist/cjs/icons/baseIcons/icons.js +29 -6
  69. package/dist/cjs/icons/baseIcons/types.d.ts +1 -1
  70. package/dist/cjs/icons/baseIcons/types.d.ts.map +1 -1
  71. package/dist/cjs/index.d.ts +1 -0
  72. package/dist/cjs/index.d.ts.map +1 -1
  73. package/dist/cjs/index.js +1 -0
  74. package/dist/cjs/input/input.js +2 -2
  75. package/dist/cjs/link/link.types.d.ts +2 -0
  76. package/dist/cjs/link/link.types.d.ts.map +1 -1
  77. package/dist/cjs/logo/Logo.d.ts +5 -0
  78. package/dist/cjs/logo/Logo.d.ts.map +1 -0
  79. package/dist/cjs/logo/Logo.js +34 -0
  80. package/dist/cjs/logo/index.d.ts +2 -0
  81. package/dist/cjs/logo/index.d.ts.map +1 -0
  82. package/dist/cjs/logo/index.js +17 -0
  83. package/dist/cjs/logo/logo.types.d.ts +11 -0
  84. package/dist/cjs/logo/logo.types.d.ts.map +1 -0
  85. package/dist/cjs/logo/logo.types.js +2 -0
  86. package/dist/cjs/modal/focusLock.d.ts +2 -1
  87. package/dist/cjs/modal/focusLock.d.ts.map +1 -1
  88. package/dist/cjs/modal/modal.types.d.ts +2 -2
  89. package/dist/cjs/modal/modal.types.d.ts.map +1 -1
  90. package/dist/cjs/modal/modalManager.d.ts.map +1 -1
  91. package/dist/cjs/modal/modalManager.js +3 -2
  92. package/dist/cjs/modal/modalStyle.js +1 -1
  93. package/dist/cjs/popover/popoverContent.d.ts.map +1 -1
  94. package/dist/cjs/popover/popoverContent.js +2 -2
  95. package/dist/cjs/portal/portal.d.ts +2 -1
  96. package/dist/cjs/portal/portal.d.ts.map +1 -1
  97. package/dist/cjs/table/tbody.d.ts.map +1 -1
  98. package/dist/cjs/table/tbody.js +1 -1
  99. package/dist/cjs/tabs/tabs.d.ts +2 -3
  100. package/dist/cjs/tabs/tabs.d.ts.map +1 -1
  101. package/dist/cjs/tabs/tabs.js +5 -5
  102. package/dist/cjs/tabs/tabs.types.d.ts +8 -4
  103. package/dist/cjs/tabs/tabs.types.d.ts.map +1 -1
  104. package/dist/cjs/tabs/tabsNavBar.d.ts.map +1 -1
  105. package/dist/cjs/tabs/tabsNavBar.js +13 -3
  106. package/dist/cjs/theme/components.d.ts +0 -11
  107. package/dist/cjs/theme/components.d.ts.map +1 -1
  108. package/dist/cjs/theme/defaultTheme.d.ts +0 -11
  109. package/dist/cjs/theme/defaultTheme.d.ts.map +1 -1
  110. package/dist/cjs/toast/Toast.d.ts.map +1 -1
  111. package/dist/cjs/toast/Toast.js +6 -5
  112. package/dist/cjs/tooltip/tooltip.d.ts.map +1 -1
  113. package/dist/cjs/tooltip/tooltip.js +10 -4
  114. package/dist/cjs/tooltip/tooltip.setup.d.ts +1 -7
  115. package/dist/cjs/tooltip/tooltip.setup.d.ts.map +1 -1
  116. package/dist/cjs/tooltip/tooltip.setup.js +4 -10
  117. package/dist/cjs/tooltip/tooltip.types.d.ts +10 -6
  118. package/dist/cjs/tooltip/tooltip.types.d.ts.map +1 -1
  119. package/dist/cjs/utils/dom.d.ts +4 -1
  120. package/dist/cjs/utils/dom.d.ts.map +1 -1
  121. package/dist/cjs/utils/dom.js +19 -10
  122. package/dist/cjs/utils/react.d.ts +3 -1
  123. package/dist/cjs/utils/react.d.ts.map +1 -1
  124. package/dist/cjs/utils/react.js +22 -1
  125. package/dist/esm/button/button.js +1 -1
  126. package/dist/esm/button/theme.d.ts +0 -12
  127. package/dist/esm/button/theme.d.ts.map +1 -1
  128. package/dist/esm/button/theme.js +0 -22
  129. package/dist/esm/core/index.d.ts +1 -0
  130. package/dist/esm/core/index.d.ts.map +1 -1
  131. package/dist/esm/core/index.js +1 -0
  132. package/dist/esm/core/media.d.ts +4 -3
  133. package/dist/esm/core/media.d.ts.map +1 -1
  134. package/dist/esm/core/types.d.ts +5 -0
  135. package/dist/esm/core/types.d.ts.map +1 -0
  136. package/dist/esm/core/types.js +1 -0
  137. package/dist/esm/core/vuiProvider/vuiProvider.d.ts +2 -1
  138. package/dist/esm/core/vuiProvider/vuiProvider.d.ts.map +1 -1
  139. package/dist/esm/core/vuiProvider/vuiProvider.js +7 -9
  140. package/dist/esm/dialog/consts.d.ts +3 -0
  141. package/dist/esm/dialog/consts.d.ts.map +1 -1
  142. package/dist/esm/dialog/consts.js +3 -0
  143. package/dist/esm/dialog/index.d.ts +2 -0
  144. package/dist/esm/dialog/index.d.ts.map +1 -1
  145. package/dist/esm/dialog/index.js +2 -0
  146. package/dist/esm/dialog/showConfirm.d.ts +2 -0
  147. package/dist/esm/dialog/showConfirm.d.ts.map +1 -0
  148. package/dist/esm/dialog/showConfirm.js +30 -0
  149. package/dist/esm/dialog/showPrompt.d.ts +2 -0
  150. package/dist/esm/dialog/showPrompt.d.ts.map +1 -0
  151. package/dist/esm/dialog/showPrompt.js +35 -0
  152. package/dist/esm/header/header.types.d.ts +3 -9
  153. package/dist/esm/header/header.types.d.ts.map +1 -1
  154. package/dist/esm/header/headerLogo.d.ts +3 -3
  155. package/dist/esm/header/headerLogo.d.ts.map +1 -1
  156. package/dist/esm/header/headerLogo.js +5 -10
  157. package/dist/esm/icons/baseIcons/cub/cubBellship.d.ts +4 -0
  158. package/dist/esm/icons/baseIcons/cub/cubBellship.d.ts.map +1 -0
  159. package/dist/esm/icons/baseIcons/cub/cubBellship.js +5 -0
  160. package/dist/esm/icons/baseIcons/cub/cubDNV.d.ts +4 -0
  161. package/dist/esm/icons/baseIcons/cub/cubDNV.d.ts.map +1 -0
  162. package/dist/esm/icons/baseIcons/cub/cubDNV.js +5 -0
  163. package/dist/esm/icons/baseIcons/cul/culFileDownloadAlt.d.ts +4 -0
  164. package/dist/esm/icons/baseIcons/cul/culFileDownloadAlt.d.ts.map +1 -0
  165. package/dist/esm/icons/baseIcons/cul/culFileDownloadAlt.js +5 -0
  166. package/dist/esm/icons/baseIcons/cul/culFilterAlt.d.ts +4 -0
  167. package/dist/esm/icons/baseIcons/cul/culFilterAlt.d.ts.map +1 -0
  168. package/dist/esm/icons/baseIcons/cul/culFilterAlt.js +5 -0
  169. package/dist/esm/icons/baseIcons/fal/falDollarSign.d.ts +4 -0
  170. package/dist/esm/icons/baseIcons/fal/falDollarSign.d.ts.map +1 -0
  171. package/dist/esm/icons/baseIcons/fal/falDollarSign.js +5 -0
  172. package/dist/esm/icons/baseIcons/fal/falEuroSign.d.ts +4 -0
  173. package/dist/esm/icons/baseIcons/fal/falEuroSign.d.ts.map +1 -0
  174. package/dist/esm/icons/baseIcons/fal/falEuroSign.js +5 -0
  175. package/dist/esm/icons/baseIcons/fal/falPoundSign.d.ts +4 -0
  176. package/dist/esm/icons/baseIcons/fal/falPoundSign.d.ts.map +1 -0
  177. package/dist/esm/icons/baseIcons/fal/falPoundSign.js +5 -0
  178. package/dist/esm/icons/baseIcons/fal/falShoppingCart.d.ts +4 -0
  179. package/dist/esm/icons/baseIcons/fal/falShoppingCart.d.ts.map +1 -0
  180. package/dist/esm/icons/baseIcons/fal/falShoppingCart.js +5 -0
  181. package/dist/esm/icons/baseIcons/fal/falUserHeadset.d.ts +4 -0
  182. package/dist/esm/icons/baseIcons/fal/falUserHeadset.d.ts.map +1 -0
  183. package/dist/esm/icons/baseIcons/fal/falUserHeadset.js +5 -0
  184. package/dist/esm/icons/baseIcons/fas/fasChartNetwork.d.ts +4 -0
  185. package/dist/esm/icons/baseIcons/fas/fasChartNetwork.d.ts.map +1 -0
  186. package/dist/esm/icons/baseIcons/fas/fasChartNetwork.js +5 -0
  187. package/dist/esm/icons/baseIcons/fas/fasPuzzlePiece.d.ts +4 -0
  188. package/dist/esm/icons/baseIcons/fas/fasPuzzlePiece.d.ts.map +1 -0
  189. package/dist/esm/icons/baseIcons/fas/fasPuzzlePiece.js +5 -0
  190. package/dist/esm/icons/baseIcons/icons.d.ts +11 -0
  191. package/dist/esm/icons/baseIcons/icons.d.ts.map +1 -1
  192. package/dist/esm/icons/baseIcons/icons.js +11 -0
  193. package/dist/esm/icons/baseIcons/types.d.ts +1 -1
  194. package/dist/esm/icons/baseIcons/types.d.ts.map +1 -1
  195. package/dist/esm/index.d.ts +1 -0
  196. package/dist/esm/index.d.ts.map +1 -1
  197. package/dist/esm/index.js +1 -0
  198. package/dist/esm/input/input.js +1 -1
  199. package/dist/esm/link/link.types.d.ts +2 -0
  200. package/dist/esm/link/link.types.d.ts.map +1 -1
  201. package/dist/esm/logo/Logo.d.ts +5 -0
  202. package/dist/esm/logo/Logo.d.ts.map +1 -0
  203. package/dist/esm/logo/Logo.js +17 -0
  204. package/dist/esm/logo/index.d.ts +2 -0
  205. package/dist/esm/logo/index.d.ts.map +1 -0
  206. package/dist/esm/logo/index.js +1 -0
  207. package/dist/esm/logo/logo.types.d.ts +11 -0
  208. package/dist/esm/logo/logo.types.d.ts.map +1 -0
  209. package/dist/esm/logo/logo.types.js +1 -0
  210. package/dist/esm/modal/focusLock.d.ts +2 -1
  211. package/dist/esm/modal/focusLock.d.ts.map +1 -1
  212. package/dist/esm/modal/modal.types.d.ts +2 -2
  213. package/dist/esm/modal/modal.types.d.ts.map +1 -1
  214. package/dist/esm/modal/modalManager.d.ts.map +1 -1
  215. package/dist/esm/modal/modalManager.js +3 -2
  216. package/dist/esm/modal/modalStyle.js +1 -1
  217. package/dist/esm/popover/popoverContent.d.ts.map +1 -1
  218. package/dist/esm/popover/popoverContent.js +3 -3
  219. package/dist/esm/portal/portal.d.ts +2 -1
  220. package/dist/esm/portal/portal.d.ts.map +1 -1
  221. package/dist/esm/table/tbody.d.ts.map +1 -1
  222. package/dist/esm/table/tbody.js +1 -1
  223. package/dist/esm/tabs/tabs.d.ts +2 -3
  224. package/dist/esm/tabs/tabs.d.ts.map +1 -1
  225. package/dist/esm/tabs/tabs.js +6 -6
  226. package/dist/esm/tabs/tabs.types.d.ts +8 -4
  227. package/dist/esm/tabs/tabs.types.d.ts.map +1 -1
  228. package/dist/esm/tabs/tabsNavBar.d.ts.map +1 -1
  229. package/dist/esm/tabs/tabsNavBar.js +13 -3
  230. package/dist/esm/theme/components.d.ts +0 -11
  231. package/dist/esm/theme/components.d.ts.map +1 -1
  232. package/dist/esm/theme/defaultTheme.d.ts +0 -11
  233. package/dist/esm/theme/defaultTheme.d.ts.map +1 -1
  234. package/dist/esm/toast/Toast.d.ts.map +1 -1
  235. package/dist/esm/toast/Toast.js +7 -6
  236. package/dist/esm/tooltip/tooltip.d.ts.map +1 -1
  237. package/dist/esm/tooltip/tooltip.js +11 -5
  238. package/dist/esm/tooltip/tooltip.setup.d.ts +1 -7
  239. package/dist/esm/tooltip/tooltip.setup.d.ts.map +1 -1
  240. package/dist/esm/tooltip/tooltip.setup.js +3 -9
  241. package/dist/esm/tooltip/tooltip.types.d.ts +10 -6
  242. package/dist/esm/tooltip/tooltip.types.d.ts.map +1 -1
  243. package/dist/esm/utils/dom.d.ts +4 -1
  244. package/dist/esm/utils/dom.d.ts.map +1 -1
  245. package/dist/esm/utils/dom.js +11 -9
  246. package/dist/esm/utils/react.d.ts +3 -1
  247. package/dist/esm/utils/react.d.ts.map +1 -1
  248. package/dist/esm/utils/react.js +16 -0
  249. package/package.json +1 -1
  250. package/src/button/button.tsx +1 -1
  251. package/src/button/theme.ts +0 -26
  252. package/src/core/index.ts +1 -0
  253. package/src/core/media.tsx +4 -3
  254. package/src/core/types.ts +5 -0
  255. package/src/core/vuiProvider/vuiProvider.tsx +13 -14
  256. package/src/dialog/consts.ts +6 -0
  257. package/src/dialog/index.ts +2 -0
  258. package/src/dialog/showConfirm.tsx +45 -0
  259. package/src/dialog/showPrompt.tsx +55 -0
  260. package/src/header/header.types.ts +3 -11
  261. package/src/header/headerLogo.tsx +9 -25
  262. package/src/icons/baseIcons/cub/cubBellship.ts +8 -0
  263. package/src/icons/baseIcons/cub/cubDNV.ts +8 -0
  264. package/src/icons/baseIcons/cul/culFileDownloadAlt.ts +8 -0
  265. package/src/icons/baseIcons/cul/culFilterAlt.ts +8 -0
  266. package/src/icons/baseIcons/fal/falDollarSign.ts +8 -0
  267. package/src/icons/baseIcons/fal/falEuroSign.ts +8 -0
  268. package/src/icons/baseIcons/fal/falPoundSign.ts +8 -0
  269. package/src/icons/baseIcons/fal/falShoppingCart.ts +8 -0
  270. package/src/icons/baseIcons/fal/falUserHeadset.ts +8 -0
  271. package/src/icons/baseIcons/fas/fasChartNetwork.ts +8 -0
  272. package/src/icons/baseIcons/fas/fasPuzzlePiece.ts +8 -0
  273. package/src/icons/baseIcons/icons.ts +11 -0
  274. package/src/icons/baseIcons/types.ts +11 -0
  275. package/src/index.ts +1 -0
  276. package/src/input/input.tsx +1 -1
  277. package/src/link/link.types.ts +2 -0
  278. package/src/logo/Logo.tsx +29 -0
  279. package/src/logo/index.ts +1 -0
  280. package/src/logo/logo.types.ts +12 -0
  281. package/src/modal/focusLock.tsx +2 -1
  282. package/src/modal/modal.types.ts +3 -1
  283. package/src/modal/modalManager.ts +4 -2
  284. package/src/modal/modalStyle.ts +1 -1
  285. package/src/popover/popoverContent.tsx +4 -3
  286. package/src/portal/portal.tsx +2 -1
  287. package/src/table/tbody.tsx +1 -3
  288. package/src/tabs/tabs.tsx +6 -5
  289. package/src/tabs/tabs.types.ts +15 -9
  290. package/src/tabs/tabsNavBar.tsx +18 -6
  291. package/src/toast/Toast.tsx +8 -7
  292. package/src/tooltip/tooltip.setup.ts +3 -10
  293. package/src/tooltip/tooltip.tsx +23 -14
  294. package/src/tooltip/tooltip.types.ts +9 -5
  295. package/src/utils/dom.ts +13 -6
  296. package/src/utils/react.ts +15 -0
@@ -2,7 +2,7 @@ import { createGlobalStyle } from '../core'
2
2
 
3
3
  export default createGlobalStyle`
4
4
 
5
- body.no-scroll {
5
+ body.vui-no-scroll {
6
6
  overflow: hidden !important;
7
7
  overscroll-behavior: contain;
8
8
  }
@@ -1,7 +1,7 @@
1
1
  import React from 'react'
2
2
 
3
3
  import Box from '../box'
4
- import { useStyleConfig, vui } from '../core'
4
+ import { useStyleConfig, v, vui } from '../core'
5
5
  import { cs, mergeRefs } from '../utils'
6
6
  import { usePopoverContext } from './context'
7
7
  import { PopoverContentProps } from './popover.types'
@@ -17,7 +17,7 @@ export const PopoverContent = vui<'div', PopoverContentProps>((props, ref) => {
17
17
 
18
18
  return (
19
19
  // Wrapping div prevents an error thrown when conditionally unmounting this component
20
- <div data-popover-workaround>
20
+ <v.div ring={0}>
21
21
  <Box
22
22
  bg="white"
23
23
  borderRadius="md"
@@ -25,12 +25,13 @@ export const PopoverContent = vui<'div', PopoverContentProps>((props, ref) => {
25
25
  className={cs('vui-popoverContent', className)}
26
26
  overflowY="auto"
27
27
  ref={mergeRefs(setPopper, ref)}
28
+ ring={0}
28
29
  {...styles.content}
29
30
  {...rest}
30
31
  >
31
32
  {shouldRenderChildren ? children : null}
32
33
  </Box>
33
- </div>
34
+ </v.div>
34
35
  )
35
36
  })
36
37
 
@@ -1,10 +1,11 @@
1
1
  import React, { FC, useEffect, useState } from 'react'
2
2
  import { createPortal } from 'react-dom'
3
3
 
4
+ import { ChildrenProp } from '../core'
4
5
  import { PortalProps } from './portal.types'
5
6
 
6
7
  /** Provided children are portaled to document.body or custom container. */
7
- export const Portal: FC<PortalProps> = props => {
8
+ export const Portal: FC<PortalProps & ChildrenProp> = props => {
8
9
  const { children, containerRef, disablePortal } = props
9
10
  const [mountNode, setMountNode] = useState<HTMLElement>()
10
11
 
@@ -35,9 +35,7 @@ export const Tbody = vui<'tbody', TbodyProps>((props, ref) => {
35
35
  rows?.map((row, index) => (
36
36
  <Tr key={index}>
37
37
  {columns?.map(column => (
38
- <Td key={column.field} {...column}>
39
- {row[column.field]}
40
- </Td>
38
+ <Td key={column.field}>{row[column.field]}</Td>
41
39
  ))}
42
40
  </Tr>
43
41
  ))}
package/src/tabs/tabs.tsx CHANGED
@@ -1,4 +1,4 @@
1
- import React, { ReactElement, useEffect } from 'react'
1
+ import React, { Children, ReactElement, useEffect } from 'react'
2
2
 
3
3
  import { styled, useStyleConfig, vui } from '../core'
4
4
  import { P } from '../p'
@@ -16,7 +16,7 @@ export const TabsBase = styled.divBox<TabsProps>`
16
16
  * Implements Tabs navigation to switch between views.
17
17
  */
18
18
  export const Tabs = vui<'div', TabsProps>((props, ref) => {
19
- const { activeTabId, children, className, size, onTabClick, ...rest } = props
19
+ const { activeTabId, showBorder = true, children, className, size, onTabClick, ...rest } = props
20
20
  const styles = useStyleConfig('Tabs', props)
21
21
  const { tabs, setTabs, activeTabIndex, setActiveTabIndex, animationDirection, setAnimationDirection } = useTabsState(
22
22
  'fadeIn',
@@ -26,16 +26,16 @@ export const Tabs = vui<'div', TabsProps>((props, ref) => {
26
26
  useEffect(() => {
27
27
  const t: TabProps[] = []
28
28
  if (children) {
29
- ;(children as ReactElement[]).forEach((child: ReactElement<TabProps>, index: number) => {
30
- if (child?.props?.title) {
29
+ ;(Children.toArray(children) as ReactElement[]).forEach((child: ReactElement<TabProps>, index: number) => {
30
+ if (child?.props?.title)
31
31
  t.push({
32
32
  id: index,
33
33
  title: child.props.title,
34
+ icon: child.props.icon,
34
35
  children: child.props.children,
35
36
  disabled: child.props.disabled,
36
37
  onClick: child.props.onClick
37
38
  })
38
- }
39
39
  })
40
40
  }
41
41
  setTabs(t)
@@ -60,6 +60,7 @@ export const Tabs = vui<'div', TabsProps>((props, ref) => {
60
60
  activeNavItem={activeTabIndex}
61
61
  animationDirection={animationDirection}
62
62
  onNavItemClick={onNavItemClick}
63
+ showBorder={showBorder}
63
64
  size={size}
64
65
  tabs={tabs}
65
66
  />
@@ -1,31 +1,37 @@
1
1
  import { ReactNode } from 'react'
2
2
 
3
+ import { ChildrenProp } from '../core'
4
+ import { IconProp } from '../icon'
3
5
  import { SystemProps } from '../system'
4
6
  import { ThemingProps } from '../theme'
5
7
 
6
8
  export type AnimationDirection = 'fadeLeft' | 'fadeRight' | 'fadeIn'
7
9
 
8
10
  export type TabsSize = 'md' | 'sm' | 'lg' | 'xl'
11
+ export type NavBarIconSize = 'md' | 'xs' | 'sm' | 'lg' | undefined
9
12
 
10
13
  export type TabsProps = SystemProps &
11
- ThemingProps<'Tabs'> & {
14
+ ThemingProps<'Tabs'> &
15
+ ChildrenProp & {
12
16
  activeTabId?: number
13
- children?: ReactNode | ReactNode[]
17
+ showBorder?: boolean
14
18
  onTabClick?: (id: number) => void
15
19
  }
16
20
 
17
- export type TabProps = SystemProps & {
18
- id?: number
19
- title: ReactNode
20
- children?: ReactNode
21
- disabled?: boolean
22
- onClick?: () => void
23
- }
21
+ export type TabProps = SystemProps &
22
+ ChildrenProp & {
23
+ icon?: IconProp
24
+ id?: number
25
+ title: ReactNode
26
+ disabled?: boolean
27
+ onClick?: () => void
28
+ }
24
29
 
25
30
  export type TabNavBarProps = {
26
31
  tabs: TabProps[]
27
32
  onNavItemClick: (id: number) => void
28
33
  activeNavItem?: number
29
34
  animationDirection?: AnimationDirection
35
+ showBorder?: boolean
30
36
  size?: TabsSize
31
37
  }
@@ -2,16 +2,25 @@ import React from 'react'
2
2
 
3
3
  import Box from '../box'
4
4
  import { vui } from '../core'
5
+ import { Icon } from '../icon'
5
6
  import { List, ListItem } from '../list'
6
- import { cs } from '../utils'
7
- import { TabNavBarProps } from './tabs.types'
7
+ import { cs, Dict } from '../utils'
8
+ import { NavBarIconSize, TabNavBarProps } from './tabs.types'
9
+
10
+ const iconSizeMapper: Dict = {
11
+ sm: 'xs',
12
+ md: 'sm',
13
+ lg: 'md',
14
+ xl: 'lg'
15
+ }
8
16
 
9
17
  export const TabsNavBar = vui<'div', TabNavBarProps>((props, ref) => {
10
- const { tabs, onNavItemClick, activeNavItem, animationDirection, size } = props
18
+ const { tabs, onNavItemClick, activeNavItem, animationDirection, showBorder, size = 'md' } = props
19
+ const iconSize: NavBarIconSize = iconSizeMapper?.[size as string] || 'md'
11
20
 
12
21
  return (
13
22
  <List
14
- borderBottom="1px solid grey.40"
23
+ borderBottom={showBorder ? '1px solid grey.40' : 'none'}
15
24
  className={cs('vui-tabsNavBar')}
16
25
  display="flex"
17
26
  isInteractive
@@ -25,10 +34,13 @@ export const TabsNavBar = vui<'div', TabNavBarProps>((props, ref) => {
25
34
  disabled={tab.disabled}
26
35
  display="inline-flex"
27
36
  key={tab.id}
28
- onClick={() => tab?.id !== undefined && onNavItemClick(tab.id)}
37
+ onClick={() => onNavItemClick?.(tab.id || 0)}
29
38
  position="relative"
30
39
  >
31
- {tab.title}
40
+ <Box alignItems="center">
41
+ {!!tab.icon && <Icon mr={1} name={tab.icon} size={iconSize} />}
42
+ {tab.title}
43
+ </Box>
32
44
  {!tab.disabled && tab.id === activeNavItem && (
33
45
  <Box
34
46
  animation={animationDirection}
@@ -1,11 +1,10 @@
1
1
  import React, { ReactNode } from 'react'
2
- import ReactDOM from 'react-dom'
3
2
 
4
3
  import { Box } from '../box'
5
4
  import { VuiProvider } from '../core'
6
5
  import { Notification, NotificationStatus } from '../notification'
7
6
  import { zIndices } from '../theme'
8
- import { addContainer, uid } from '../utils'
7
+ import { addContainer, reactDomRender, uid } from '../utils'
9
8
  import { ToastOptions, ToastSetup } from './toast.types'
10
9
 
11
10
  const wrapperId = 'toastsWrapper'
@@ -18,9 +17,9 @@ const setup: ToastSetup = {
18
17
  componentList: []
19
18
  }
20
19
 
21
- const render = (): void =>
22
- // eslint-disable-next-line react/no-render-return-value
23
- ReactDOM.render(
20
+ const render = (): void => {
21
+ const wrapper = document.getElementById(wrapperId)
22
+ const content = (
24
23
  <VuiProvider>
25
24
  <Box
26
25
  bottom="1rem"
@@ -36,10 +35,12 @@ const render = (): void =>
36
35
  <div key={item.id}>{item.component}</div>
37
36
  ))}
38
37
  </Box>
39
- </VuiProvider>,
40
- document.getElementById(wrapperId)
38
+ </VuiProvider>
41
39
  )
42
40
 
41
+ reactDomRender(wrapper, content)
42
+ }
43
+
43
44
  const hide = (id: string): void => {
44
45
  setup.componentList = setup.componentList.filter(i => i.id !== id)
45
46
  render()
@@ -1,11 +1,4 @@
1
- export const animation = {
2
- top: 'fadeDown',
3
- right: 'fadeLeft',
4
- bottom: 'fadeUp',
5
- left: 'fadeRight'
6
- }
7
-
8
- export const pointerSize = 8
1
+ export const pointerSize = 12
9
2
 
10
3
  export const color = 'prussian.80'
11
4
 
@@ -28,13 +21,13 @@ export const pointerPlacement = {
28
21
  top: `50%`,
29
22
  bottom: 'auto',
30
23
  left: 'auto',
31
- right: '0',
24
+ right: '-4px',
32
25
  translate: '-50%, -50%'
33
26
  },
34
27
  right: {
35
28
  top: `50%`,
36
29
  bottom: 'auto',
37
- left: `${pointerSize / 2}px`,
30
+ left: '2px',
38
31
  right: 'auto',
39
32
  translate: '0, -50%'
40
33
  }
@@ -1,8 +1,10 @@
1
1
  import React from 'react'
2
2
 
3
3
  import Box from '../box'
4
+ import { useUp } from '../core'
5
+ import { Link } from '../link'
4
6
  import Popover from '../popover'
5
- import { animation, color, pointerPlacement, pointerSize } from './tooltip.setup'
7
+ import { color, pointerPlacement, pointerSize } from './tooltip.setup'
6
8
  import { TooltipProps } from './tooltip.types'
7
9
 
8
10
  /**
@@ -12,24 +14,23 @@ import { TooltipProps } from './tooltip.types'
12
14
  *
13
15
  * */
14
16
  export const Tooltip = (props: TooltipProps) => {
15
- const { children, maxWidth = '400px', text = 'demo', placement = 'top', isAnimated = false } = props
16
-
17
+ const {
18
+ children,
19
+ fontSize = '16px',
20
+ linkText,
21
+ linkProps,
22
+ maxWidth = '400px',
23
+ text = 'demo',
24
+ placement = 'top'
25
+ } = props
26
+ const isDesktop = useUp('md')
17
27
  return (
18
28
  <Popover placement={placement} trigger="mouseenter">
19
29
  <Popover.Trigger as={Box} display="inline-block">
20
30
  <Box display="inline-block">{children}</Box>
21
31
  </Popover.Trigger>
22
- <Popover.Content
23
- animation={isAnimated ? animation[placement] : undefined}
24
- bg={color}
25
- color="white"
26
- m={1}
27
- maxW={maxWidth}
28
- p={1}
29
- pl={2}
30
- pr={2}
31
- >
32
- {!isAnimated && (
32
+ <Popover.Content bg={color} color="white" fontSize={fontSize} m={1} maxW={maxWidth} p={1} pl={2} pr={2}>
33
+ {isDesktop && (
33
34
  <Box
34
35
  bg={color}
35
36
  bottom={pointerPlacement[placement].bottom}
@@ -43,6 +44,14 @@ export const Tooltip = (props: TooltipProps) => {
43
44
  />
44
45
  )}
45
46
  {text}
47
+ {!!linkText && (
48
+ <>
49
+ &nbsp;
50
+ <Link variant="light" {...linkProps}>
51
+ {linkText}
52
+ </Link>
53
+ </>
54
+ )}
46
55
  </Popover.Content>
47
56
  </Popover>
48
57
  )
@@ -1,13 +1,17 @@
1
- import { ReactNode } from 'react'
1
+ import { ChildrenProp } from '../core'
2
+ import { LinkProps } from '../link'
2
3
 
3
- export type TooltipProps = {
4
+ export interface TooltipProps extends ChildrenProp {
5
+ /** Font size. */
6
+ fontSize?: '16px' | '14px'
4
7
  /** Displays given text at the tooltip. */
5
8
  text?: string
6
9
  /** Tooltip position. */
7
10
  placement?: 'top' | 'left' | 'bottom' | 'right'
8
- /** Displays the tooltip with animation, without the arrow pointer. */
9
- isAnimated?: boolean
10
11
  /** Sets maximum width to the tooltip body. */
11
12
  maxWidth?: string
12
- children?: ReactNode
13
+ /** Link text that will be concatenated to the end of the tooltip text. */
14
+ linkText?: string
15
+ /** The <Link /> props. */
16
+ linkProps?: LinkProps
13
17
  }
package/src/utils/dom.ts CHANGED
@@ -6,22 +6,29 @@ export const addElement = (id: string): HTMLElement => {
6
6
 
7
7
  export const removeElement = (id: string): void => {
8
8
  const element = document.getElementById(id)
9
- if (element) element.remove()
9
+ element?.remove?.()
10
+ }
11
+
12
+ export const addBodyClass = (className: string): void => document.body.classList.add(className)
13
+
14
+ export const removeBodyClass = (className: string): void => document.body.classList.remove(className)
15
+
16
+ export const removeElements = (className: string): void => {
17
+ const elements = document.getElementsByClassName(className)
18
+ for (let i = 0, len = elements.length; i < len; i++) elements[i]?.remove?.()
10
19
  }
11
20
 
12
21
  export const addElementClass = (id: string, className: string): void => {
13
22
  const element = document.getElementById(id)
14
- if (element) element.classList.add(className)
23
+ element?.classList?.add?.(className)
15
24
  }
16
25
 
17
26
  export const removeElementClass = (id: string, className: string): void => {
18
27
  const element = document.getElementById(id)
19
- if (element) element.classList.remove(className)
28
+ element?.classList?.remove?.(className)
20
29
  }
21
30
 
22
- export const appendToBody = (rootElem: HTMLElement) => {
23
- document.body.appendChild(rootElem)
24
- }
31
+ export const appendToBody = (rootElem: HTMLElement) => document.body.appendChild(rootElem)
25
32
 
26
33
  export const addContainer = (id: string): void => {
27
34
  const toastContainer = document.getElementById(id)
@@ -3,6 +3,7 @@
3
3
  import React, {
4
4
  DependencyList,
5
5
  Dispatch,
6
+ ReactNode,
6
7
  RefObject,
7
8
  SetStateAction,
8
9
  useCallback,
@@ -10,6 +11,7 @@ import React, {
10
11
  useRef,
11
12
  useState
12
13
  } from 'react'
14
+ import ReactDOM from 'react-dom'
13
15
 
14
16
  import { isArray, isFunction } from './assertion'
15
17
  import { runIfFn } from './function'
@@ -170,3 +172,16 @@ export function useIsMounted() {
170
172
 
171
173
  return useCallback(() => isMounted.current, [])
172
174
  }
175
+
176
+ /** A resolver to render a DOM node depending on React major version. */
177
+ export function reactDomRender(wrapper: HTMLElement | null, content: ReactNode) {
178
+ if (!wrapper) return
179
+ if ((ReactDOM as any)?.createRoot) {
180
+ // Rendering for React 18
181
+ const root = (ReactDOM as any)?.createRoot?.(wrapper)
182
+ root?.render?.(content)
183
+ } else {
184
+ // Rendering for legacy React 17
185
+ ;(ReactDOM as any)?.render?.(content, wrapper)
186
+ }
187
+ }