@veracity/vui 1.1.3 → 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 (275) 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/types.d.ts +2 -2
  6. package/dist/cjs/core/types.d.ts.map +1 -1
  7. package/dist/cjs/dialog/consts.d.ts +3 -0
  8. package/dist/cjs/dialog/consts.d.ts.map +1 -1
  9. package/dist/cjs/dialog/consts.js +4 -1
  10. package/dist/cjs/dialog/index.d.ts +2 -0
  11. package/dist/cjs/dialog/index.d.ts.map +1 -1
  12. package/dist/cjs/dialog/index.js +2 -0
  13. package/dist/cjs/dialog/showConfirm.d.ts +2 -0
  14. package/dist/cjs/dialog/showConfirm.d.ts.map +1 -0
  15. package/dist/cjs/dialog/showConfirm.js +37 -0
  16. package/dist/cjs/dialog/showPrompt.d.ts +2 -0
  17. package/dist/cjs/dialog/showPrompt.d.ts.map +1 -0
  18. package/dist/cjs/dialog/showPrompt.js +42 -0
  19. package/dist/cjs/header/header.types.d.ts +3 -9
  20. package/dist/cjs/header/header.types.d.ts.map +1 -1
  21. package/dist/cjs/header/headerLogo.d.ts +3 -3
  22. package/dist/cjs/header/headerLogo.d.ts.map +1 -1
  23. package/dist/cjs/header/headerLogo.js +4 -9
  24. package/dist/cjs/icons/baseIcons/cub/cubBellship.d.ts +4 -0
  25. package/dist/cjs/icons/baseIcons/cub/cubBellship.d.ts.map +1 -0
  26. package/dist/cjs/icons/baseIcons/cub/cubBellship.js +7 -0
  27. package/dist/cjs/icons/baseIcons/cub/cubDNV.d.ts +4 -0
  28. package/dist/cjs/icons/baseIcons/cub/cubDNV.d.ts.map +1 -0
  29. package/dist/cjs/icons/baseIcons/cub/cubDNV.js +7 -0
  30. package/dist/cjs/icons/baseIcons/cul/culFileDownloadAlt.d.ts +4 -0
  31. package/dist/cjs/icons/baseIcons/cul/culFileDownloadAlt.d.ts.map +1 -0
  32. package/dist/cjs/icons/baseIcons/cul/culFileDownloadAlt.js +7 -0
  33. package/dist/cjs/icons/baseIcons/cul/culFilterAlt.d.ts +4 -0
  34. package/dist/cjs/icons/baseIcons/cul/culFilterAlt.d.ts.map +1 -0
  35. package/dist/cjs/icons/baseIcons/cul/culFilterAlt.js +7 -0
  36. package/dist/cjs/icons/baseIcons/fal/falDollarSign.d.ts +4 -0
  37. package/dist/cjs/icons/baseIcons/fal/falDollarSign.d.ts.map +1 -0
  38. package/dist/cjs/icons/baseIcons/fal/falDollarSign.js +7 -0
  39. package/dist/cjs/icons/baseIcons/fal/falEuroSign.d.ts +4 -0
  40. package/dist/cjs/icons/baseIcons/fal/falEuroSign.d.ts.map +1 -0
  41. package/dist/cjs/icons/baseIcons/fal/falEuroSign.js +7 -0
  42. package/dist/cjs/icons/baseIcons/fal/falPoundSign.d.ts +4 -0
  43. package/dist/cjs/icons/baseIcons/fal/falPoundSign.d.ts.map +1 -0
  44. package/dist/cjs/icons/baseIcons/fal/falPoundSign.js +7 -0
  45. package/dist/cjs/icons/baseIcons/fal/falShoppingCart.d.ts +4 -0
  46. package/dist/cjs/icons/baseIcons/fal/falShoppingCart.d.ts.map +1 -0
  47. package/dist/cjs/icons/baseIcons/fal/falShoppingCart.js +7 -0
  48. package/dist/cjs/icons/baseIcons/fal/falUserHeadset.d.ts +4 -0
  49. package/dist/cjs/icons/baseIcons/fal/falUserHeadset.d.ts.map +1 -0
  50. package/dist/cjs/icons/baseIcons/fal/falUserHeadset.js +7 -0
  51. package/dist/cjs/icons/baseIcons/fas/fasChartNetwork.d.ts +4 -0
  52. package/dist/cjs/icons/baseIcons/fas/fasChartNetwork.d.ts.map +1 -0
  53. package/dist/cjs/icons/baseIcons/fas/fasChartNetwork.js +7 -0
  54. package/dist/cjs/icons/baseIcons/fas/fasPuzzlePiece.d.ts +4 -0
  55. package/dist/cjs/icons/baseIcons/fas/fasPuzzlePiece.d.ts.map +1 -0
  56. package/dist/cjs/icons/baseIcons/fas/fasPuzzlePiece.js +7 -0
  57. package/dist/cjs/icons/baseIcons/icons.d.ts +11 -0
  58. package/dist/cjs/icons/baseIcons/icons.d.ts.map +1 -1
  59. package/dist/cjs/icons/baseIcons/icons.js +29 -6
  60. package/dist/cjs/icons/baseIcons/types.d.ts +1 -1
  61. package/dist/cjs/icons/baseIcons/types.d.ts.map +1 -1
  62. package/dist/cjs/index.d.ts +1 -0
  63. package/dist/cjs/index.d.ts.map +1 -1
  64. package/dist/cjs/index.js +1 -0
  65. package/dist/cjs/input/input.js +2 -2
  66. package/dist/cjs/link/link.types.d.ts +2 -0
  67. package/dist/cjs/link/link.types.d.ts.map +1 -1
  68. package/dist/cjs/logo/Logo.d.ts +5 -0
  69. package/dist/cjs/logo/Logo.d.ts.map +1 -0
  70. package/dist/cjs/logo/Logo.js +34 -0
  71. package/dist/cjs/logo/index.d.ts +2 -0
  72. package/dist/cjs/logo/index.d.ts.map +1 -0
  73. package/dist/cjs/logo/index.js +17 -0
  74. package/dist/cjs/logo/logo.types.d.ts +11 -0
  75. package/dist/cjs/logo/logo.types.d.ts.map +1 -0
  76. package/dist/cjs/logo/logo.types.js +2 -0
  77. package/dist/cjs/modal/focusLock.d.ts +1 -1
  78. package/dist/cjs/modal/focusLock.d.ts.map +1 -1
  79. package/dist/cjs/modal/modal.types.d.ts +2 -2
  80. package/dist/cjs/modal/modal.types.d.ts.map +1 -1
  81. package/dist/cjs/modal/modalManager.d.ts.map +1 -1
  82. package/dist/cjs/modal/modalManager.js +3 -2
  83. package/dist/cjs/modal/modalStyle.js +1 -1
  84. package/dist/cjs/popover/popoverContent.d.ts.map +1 -1
  85. package/dist/cjs/popover/popoverContent.js +2 -2
  86. package/dist/cjs/portal/portal.d.ts +1 -1
  87. package/dist/cjs/portal/portal.d.ts.map +1 -1
  88. package/dist/cjs/table/tbody.d.ts.map +1 -1
  89. package/dist/cjs/table/tbody.js +1 -1
  90. package/dist/cjs/tabs/tabs.d.ts +2 -3
  91. package/dist/cjs/tabs/tabs.d.ts.map +1 -1
  92. package/dist/cjs/tabs/tabs.js +5 -5
  93. package/dist/cjs/tabs/tabs.types.d.ts +8 -4
  94. package/dist/cjs/tabs/tabs.types.d.ts.map +1 -1
  95. package/dist/cjs/tabs/tabsNavBar.d.ts.map +1 -1
  96. package/dist/cjs/tabs/tabsNavBar.js +13 -3
  97. package/dist/cjs/theme/components.d.ts +0 -11
  98. package/dist/cjs/theme/components.d.ts.map +1 -1
  99. package/dist/cjs/theme/defaultTheme.d.ts +0 -11
  100. package/dist/cjs/theme/defaultTheme.d.ts.map +1 -1
  101. package/dist/cjs/toast/Toast.d.ts.map +1 -1
  102. package/dist/cjs/toast/Toast.js +6 -5
  103. package/dist/cjs/tooltip/tooltip.d.ts.map +1 -1
  104. package/dist/cjs/tooltip/tooltip.js +10 -4
  105. package/dist/cjs/tooltip/tooltip.setup.d.ts +1 -7
  106. package/dist/cjs/tooltip/tooltip.setup.d.ts.map +1 -1
  107. package/dist/cjs/tooltip/tooltip.setup.js +4 -10
  108. package/dist/cjs/tooltip/tooltip.types.d.ts +10 -6
  109. package/dist/cjs/tooltip/tooltip.types.d.ts.map +1 -1
  110. package/dist/cjs/utils/dom.d.ts +4 -1
  111. package/dist/cjs/utils/dom.d.ts.map +1 -1
  112. package/dist/cjs/utils/dom.js +19 -10
  113. package/dist/cjs/utils/react.d.ts +3 -1
  114. package/dist/cjs/utils/react.d.ts.map +1 -1
  115. package/dist/cjs/utils/react.js +22 -1
  116. package/dist/esm/button/button.js +1 -1
  117. package/dist/esm/button/theme.d.ts +0 -12
  118. package/dist/esm/button/theme.d.ts.map +1 -1
  119. package/dist/esm/button/theme.js +0 -22
  120. package/dist/esm/core/types.d.ts +2 -2
  121. package/dist/esm/core/types.d.ts.map +1 -1
  122. package/dist/esm/dialog/consts.d.ts +3 -0
  123. package/dist/esm/dialog/consts.d.ts.map +1 -1
  124. package/dist/esm/dialog/consts.js +3 -0
  125. package/dist/esm/dialog/index.d.ts +2 -0
  126. package/dist/esm/dialog/index.d.ts.map +1 -1
  127. package/dist/esm/dialog/index.js +2 -0
  128. package/dist/esm/dialog/showConfirm.d.ts +2 -0
  129. package/dist/esm/dialog/showConfirm.d.ts.map +1 -0
  130. package/dist/esm/dialog/showConfirm.js +30 -0
  131. package/dist/esm/dialog/showPrompt.d.ts +2 -0
  132. package/dist/esm/dialog/showPrompt.d.ts.map +1 -0
  133. package/dist/esm/dialog/showPrompt.js +35 -0
  134. package/dist/esm/header/header.types.d.ts +3 -9
  135. package/dist/esm/header/header.types.d.ts.map +1 -1
  136. package/dist/esm/header/headerLogo.d.ts +3 -3
  137. package/dist/esm/header/headerLogo.d.ts.map +1 -1
  138. package/dist/esm/header/headerLogo.js +5 -10
  139. package/dist/esm/icons/baseIcons/cub/cubBellship.d.ts +4 -0
  140. package/dist/esm/icons/baseIcons/cub/cubBellship.d.ts.map +1 -0
  141. package/dist/esm/icons/baseIcons/cub/cubBellship.js +5 -0
  142. package/dist/esm/icons/baseIcons/cub/cubDNV.d.ts +4 -0
  143. package/dist/esm/icons/baseIcons/cub/cubDNV.d.ts.map +1 -0
  144. package/dist/esm/icons/baseIcons/cub/cubDNV.js +5 -0
  145. package/dist/esm/icons/baseIcons/cul/culFileDownloadAlt.d.ts +4 -0
  146. package/dist/esm/icons/baseIcons/cul/culFileDownloadAlt.d.ts.map +1 -0
  147. package/dist/esm/icons/baseIcons/cul/culFileDownloadAlt.js +5 -0
  148. package/dist/esm/icons/baseIcons/cul/culFilterAlt.d.ts +4 -0
  149. package/dist/esm/icons/baseIcons/cul/culFilterAlt.d.ts.map +1 -0
  150. package/dist/esm/icons/baseIcons/cul/culFilterAlt.js +5 -0
  151. package/dist/esm/icons/baseIcons/fal/falDollarSign.d.ts +4 -0
  152. package/dist/esm/icons/baseIcons/fal/falDollarSign.d.ts.map +1 -0
  153. package/dist/esm/icons/baseIcons/fal/falDollarSign.js +5 -0
  154. package/dist/esm/icons/baseIcons/fal/falEuroSign.d.ts +4 -0
  155. package/dist/esm/icons/baseIcons/fal/falEuroSign.d.ts.map +1 -0
  156. package/dist/esm/icons/baseIcons/fal/falEuroSign.js +5 -0
  157. package/dist/esm/icons/baseIcons/fal/falPoundSign.d.ts +4 -0
  158. package/dist/esm/icons/baseIcons/fal/falPoundSign.d.ts.map +1 -0
  159. package/dist/esm/icons/baseIcons/fal/falPoundSign.js +5 -0
  160. package/dist/esm/icons/baseIcons/fal/falShoppingCart.d.ts +4 -0
  161. package/dist/esm/icons/baseIcons/fal/falShoppingCart.d.ts.map +1 -0
  162. package/dist/esm/icons/baseIcons/fal/falShoppingCart.js +5 -0
  163. package/dist/esm/icons/baseIcons/fal/falUserHeadset.d.ts +4 -0
  164. package/dist/esm/icons/baseIcons/fal/falUserHeadset.d.ts.map +1 -0
  165. package/dist/esm/icons/baseIcons/fal/falUserHeadset.js +5 -0
  166. package/dist/esm/icons/baseIcons/fas/fasChartNetwork.d.ts +4 -0
  167. package/dist/esm/icons/baseIcons/fas/fasChartNetwork.d.ts.map +1 -0
  168. package/dist/esm/icons/baseIcons/fas/fasChartNetwork.js +5 -0
  169. package/dist/esm/icons/baseIcons/fas/fasPuzzlePiece.d.ts +4 -0
  170. package/dist/esm/icons/baseIcons/fas/fasPuzzlePiece.d.ts.map +1 -0
  171. package/dist/esm/icons/baseIcons/fas/fasPuzzlePiece.js +5 -0
  172. package/dist/esm/icons/baseIcons/icons.d.ts +11 -0
  173. package/dist/esm/icons/baseIcons/icons.d.ts.map +1 -1
  174. package/dist/esm/icons/baseIcons/icons.js +11 -0
  175. package/dist/esm/icons/baseIcons/types.d.ts +1 -1
  176. package/dist/esm/icons/baseIcons/types.d.ts.map +1 -1
  177. package/dist/esm/index.d.ts +1 -0
  178. package/dist/esm/index.d.ts.map +1 -1
  179. package/dist/esm/index.js +1 -0
  180. package/dist/esm/input/input.js +1 -1
  181. package/dist/esm/link/link.types.d.ts +2 -0
  182. package/dist/esm/link/link.types.d.ts.map +1 -1
  183. package/dist/esm/logo/Logo.d.ts +5 -0
  184. package/dist/esm/logo/Logo.d.ts.map +1 -0
  185. package/dist/esm/logo/Logo.js +17 -0
  186. package/dist/esm/logo/index.d.ts +2 -0
  187. package/dist/esm/logo/index.d.ts.map +1 -0
  188. package/dist/esm/logo/index.js +1 -0
  189. package/dist/esm/logo/logo.types.d.ts +11 -0
  190. package/dist/esm/logo/logo.types.d.ts.map +1 -0
  191. package/dist/esm/logo/logo.types.js +1 -0
  192. package/dist/esm/modal/focusLock.d.ts +1 -1
  193. package/dist/esm/modal/focusLock.d.ts.map +1 -1
  194. package/dist/esm/modal/modal.types.d.ts +2 -2
  195. package/dist/esm/modal/modal.types.d.ts.map +1 -1
  196. package/dist/esm/modal/modalManager.d.ts.map +1 -1
  197. package/dist/esm/modal/modalManager.js +3 -2
  198. package/dist/esm/modal/modalStyle.js +1 -1
  199. package/dist/esm/popover/popoverContent.d.ts.map +1 -1
  200. package/dist/esm/popover/popoverContent.js +3 -3
  201. package/dist/esm/portal/portal.d.ts +1 -1
  202. package/dist/esm/portal/portal.d.ts.map +1 -1
  203. package/dist/esm/table/tbody.d.ts.map +1 -1
  204. package/dist/esm/table/tbody.js +1 -1
  205. package/dist/esm/tabs/tabs.d.ts +2 -3
  206. package/dist/esm/tabs/tabs.d.ts.map +1 -1
  207. package/dist/esm/tabs/tabs.js +6 -6
  208. package/dist/esm/tabs/tabs.types.d.ts +8 -4
  209. package/dist/esm/tabs/tabs.types.d.ts.map +1 -1
  210. package/dist/esm/tabs/tabsNavBar.d.ts.map +1 -1
  211. package/dist/esm/tabs/tabsNavBar.js +13 -3
  212. package/dist/esm/theme/components.d.ts +0 -11
  213. package/dist/esm/theme/components.d.ts.map +1 -1
  214. package/dist/esm/theme/defaultTheme.d.ts +0 -11
  215. package/dist/esm/theme/defaultTheme.d.ts.map +1 -1
  216. package/dist/esm/toast/Toast.d.ts.map +1 -1
  217. package/dist/esm/toast/Toast.js +7 -6
  218. package/dist/esm/tooltip/tooltip.d.ts.map +1 -1
  219. package/dist/esm/tooltip/tooltip.js +11 -5
  220. package/dist/esm/tooltip/tooltip.setup.d.ts +1 -7
  221. package/dist/esm/tooltip/tooltip.setup.d.ts.map +1 -1
  222. package/dist/esm/tooltip/tooltip.setup.js +3 -9
  223. package/dist/esm/tooltip/tooltip.types.d.ts +10 -6
  224. package/dist/esm/tooltip/tooltip.types.d.ts.map +1 -1
  225. package/dist/esm/utils/dom.d.ts +4 -1
  226. package/dist/esm/utils/dom.d.ts.map +1 -1
  227. package/dist/esm/utils/dom.js +11 -9
  228. package/dist/esm/utils/react.d.ts +3 -1
  229. package/dist/esm/utils/react.d.ts.map +1 -1
  230. package/dist/esm/utils/react.js +16 -0
  231. package/package.json +1 -1
  232. package/src/button/button.tsx +1 -1
  233. package/src/button/theme.ts +0 -26
  234. package/src/core/types.ts +2 -2
  235. package/src/dialog/consts.ts +6 -0
  236. package/src/dialog/index.ts +2 -0
  237. package/src/dialog/showConfirm.tsx +45 -0
  238. package/src/dialog/showPrompt.tsx +55 -0
  239. package/src/header/header.types.ts +3 -11
  240. package/src/header/headerLogo.tsx +9 -25
  241. package/src/icons/baseIcons/cub/cubBellship.ts +8 -0
  242. package/src/icons/baseIcons/cub/cubDNV.ts +8 -0
  243. package/src/icons/baseIcons/cul/culFileDownloadAlt.ts +8 -0
  244. package/src/icons/baseIcons/cul/culFilterAlt.ts +8 -0
  245. package/src/icons/baseIcons/fal/falDollarSign.ts +8 -0
  246. package/src/icons/baseIcons/fal/falEuroSign.ts +8 -0
  247. package/src/icons/baseIcons/fal/falPoundSign.ts +8 -0
  248. package/src/icons/baseIcons/fal/falShoppingCart.ts +8 -0
  249. package/src/icons/baseIcons/fal/falUserHeadset.ts +8 -0
  250. package/src/icons/baseIcons/fas/fasChartNetwork.ts +8 -0
  251. package/src/icons/baseIcons/fas/fasPuzzlePiece.ts +8 -0
  252. package/src/icons/baseIcons/icons.ts +11 -0
  253. package/src/icons/baseIcons/types.ts +11 -0
  254. package/src/index.ts +1 -0
  255. package/src/input/input.tsx +1 -1
  256. package/src/link/link.types.ts +2 -0
  257. package/src/logo/Logo.tsx +29 -0
  258. package/src/logo/index.ts +1 -0
  259. package/src/logo/logo.types.ts +12 -0
  260. package/src/modal/focusLock.tsx +1 -1
  261. package/src/modal/modal.types.ts +3 -1
  262. package/src/modal/modalManager.ts +4 -2
  263. package/src/modal/modalStyle.ts +1 -1
  264. package/src/popover/popoverContent.tsx +4 -3
  265. package/src/portal/portal.tsx +1 -1
  266. package/src/table/tbody.tsx +1 -3
  267. package/src/tabs/tabs.tsx +6 -5
  268. package/src/tabs/tabs.types.ts +15 -9
  269. package/src/tabs/tabsNavBar.tsx +18 -6
  270. package/src/toast/Toast.tsx +8 -7
  271. package/src/tooltip/tooltip.setup.ts +3 -10
  272. package/src/tooltip/tooltip.tsx +23 -14
  273. package/src/tooltip/tooltip.types.ts +9 -5
  274. package/src/utils/dom.ts +13 -6
  275. package/src/utils/react.ts +15 -0
@@ -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
+ }