@channel.io/bezier-react 1.6.2 → 1.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (383) hide show
  1. package/dist/cjs/_virtual/_rollupPluginBabelHelpers.js +35 -0
  2. package/dist/cjs/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
  3. package/dist/cjs/components/Banner/Banner.const.js +4 -2
  4. package/dist/cjs/components/Banner/Banner.const.js.map +1 -1
  5. package/dist/cjs/components/Forms/Inputs/mixins.js +41 -22
  6. package/dist/cjs/components/Forms/Inputs/mixins.js.map +1 -1
  7. package/dist/cjs/components/Forms/Slider/Slider.js +73 -51
  8. package/dist/cjs/components/Forms/Slider/Slider.js.map +1 -1
  9. package/dist/cjs/components/Forms/Slider/Slider.styled.js +24 -83
  10. package/dist/cjs/components/Forms/Slider/Slider.styled.js.map +1 -1
  11. package/dist/cjs/components/Help/Help.js +10 -7
  12. package/dist/cjs/components/Help/Help.js.map +1 -1
  13. package/dist/cjs/components/Help/Help.styled.js +4 -5
  14. package/dist/cjs/components/Help/Help.styled.js.map +1 -1
  15. package/dist/cjs/components/KeyValueListItem/common/ItemActions/ItemAction.js +2 -9
  16. package/dist/cjs/components/KeyValueListItem/common/ItemActions/ItemAction.js.map +1 -1
  17. package/dist/cjs/components/KeyValueListItem/common/ItemActions/ItemAction.styled.js +3 -20
  18. package/dist/cjs/components/KeyValueListItem/common/ItemActions/ItemAction.styled.js.map +1 -1
  19. package/dist/cjs/components/LegacyTooltip/LegacyTooltip.js +101 -0
  20. package/dist/cjs/components/LegacyTooltip/LegacyTooltip.js.map +1 -0
  21. package/dist/cjs/components/LegacyTooltip/LegacyTooltip.styled.js +41 -0
  22. package/dist/cjs/components/LegacyTooltip/LegacyTooltip.styled.js.map +1 -0
  23. package/dist/cjs/components/LegacyTooltip/LegacyTooltip.types.js +20 -0
  24. package/dist/cjs/components/LegacyTooltip/LegacyTooltip.types.js.map +1 -0
  25. package/dist/cjs/components/{Tooltip/TooltipContent.js → LegacyTooltip/LegacyTooltipContent.js} +9 -12
  26. package/dist/cjs/components/LegacyTooltip/LegacyTooltipContent.js.map +1 -0
  27. package/dist/cjs/components/{Tooltip → LegacyTooltip}/utils.js +33 -33
  28. package/dist/cjs/components/LegacyTooltip/utils.js.map +1 -0
  29. package/dist/cjs/components/ListItem/ListItem.styled.js +1 -1
  30. package/dist/cjs/components/ListItem/utils.js +20 -8
  31. package/dist/cjs/components/ListItem/utils.js.map +1 -1
  32. package/dist/cjs/components/ListMenuTitle/ListMenuTitle.js +11 -10
  33. package/dist/cjs/components/ListMenuTitle/ListMenuTitle.js.map +1 -1
  34. package/dist/cjs/components/Modals/Modal/Modal.types.js.map +1 -1
  35. package/dist/cjs/components/Modals/Modal/ModalAnimation.styled.js +57 -11
  36. package/dist/cjs/components/Modals/Modal/ModalAnimation.styled.js.map +1 -1
  37. package/dist/cjs/components/Navigator/NavGroup/NavGroup.js +10 -11
  38. package/dist/cjs/components/Navigator/NavGroup/NavGroup.js.map +1 -1
  39. package/dist/cjs/components/Navigator/NavItem/NavItem.js +10 -10
  40. package/dist/cjs/components/Navigator/NavItem/NavItem.js.map +1 -1
  41. package/dist/cjs/components/Overlay/utils.js +6 -2
  42. package/dist/cjs/components/Overlay/utils.js.map +1 -1
  43. package/dist/cjs/components/SectionLabel/SectionLabel.js +10 -17
  44. package/dist/cjs/components/SectionLabel/SectionLabel.js.map +1 -1
  45. package/dist/cjs/components/SectionLabel/SectionLabel.styled.js +4 -4
  46. package/dist/cjs/components/SectionLabel/SectionLabel.styled.js.map +1 -1
  47. package/dist/cjs/components/Spinner/Spinner.js +10 -7
  48. package/dist/cjs/components/Spinner/Spinner.js.map +1 -1
  49. package/dist/cjs/components/Spinner/Spinner.styled.js +1 -1
  50. package/dist/cjs/components/Spinner/Spinner.types.js.map +1 -1
  51. package/dist/cjs/components/Stack/Stack/Stack.styled.js +1 -1
  52. package/dist/cjs/components/TagBadge/Badge/Badge.js +9 -8
  53. package/dist/cjs/components/TagBadge/Badge/Badge.js.map +1 -1
  54. package/dist/cjs/components/TagBadge/Tag/Tag.js +4 -3
  55. package/dist/cjs/components/TagBadge/Tag/Tag.js.map +1 -1
  56. package/dist/cjs/components/Text/Text.styled.js +1 -1
  57. package/dist/cjs/components/Toast/Toast.types.js +2 -1
  58. package/dist/cjs/components/Toast/Toast.types.js.map +1 -1
  59. package/dist/cjs/components/Toast/ToastElement.js +5 -6
  60. package/dist/cjs/components/Toast/ToastElement.js.map +1 -1
  61. package/dist/cjs/components/Toast/ToastProvider.js +3 -3
  62. package/dist/cjs/components/Toast/ToastProvider.js.map +1 -1
  63. package/dist/cjs/components/Toast/ToastService.js +9 -9
  64. package/dist/cjs/components/Toast/ToastService.js.map +1 -1
  65. package/dist/cjs/components/Toast/utils.js +17 -10
  66. package/dist/cjs/components/Toast/utils.js.map +1 -1
  67. package/dist/cjs/components/Tooltip/Tooltip.js +211 -83
  68. package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
  69. package/dist/cjs/components/Tooltip/Tooltip.styled.js +96 -25
  70. package/dist/cjs/components/Tooltip/Tooltip.styled.js.map +1 -1
  71. package/dist/cjs/components/Tooltip/Tooltip.types.js +3 -0
  72. package/dist/cjs/components/Tooltip/Tooltip.types.js.map +1 -1
  73. package/dist/cjs/features/SmoothCornersFeature/SmoothCornersFeature.js +2 -2
  74. package/dist/cjs/features/SmoothCornersFeature/SmoothCornersFeature.js.map +1 -1
  75. package/dist/cjs/index.js +15 -10
  76. package/dist/cjs/index.js.map +1 -1
  77. package/dist/cjs/node_modules/@babel/runtime/helpers/esm/extends.js +21 -0
  78. package/dist/cjs/node_modules/@babel/runtime/helpers/esm/extends.js.map +1 -0
  79. package/dist/cjs/node_modules/@floating-ui/core/dist/floating-ui.core.js +886 -0
  80. package/dist/cjs/node_modules/@floating-ui/core/dist/floating-ui.core.js.map +1 -0
  81. package/dist/cjs/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +691 -0
  82. package/dist/cjs/node_modules/@floating-ui/dom/dist/floating-ui.dom.js.map +1 -0
  83. package/dist/cjs/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.esm.js +296 -0
  84. package/dist/cjs/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.esm.js.map +1 -0
  85. package/dist/cjs/node_modules/@radix-ui/react-checkbox/dist/index.js +4 -4
  86. package/dist/cjs/node_modules/@radix-ui/react-dialog/dist/index.js +12 -12
  87. package/dist/cjs/node_modules/@radix-ui/react-dismissable-layer/dist/index.js +2 -2
  88. package/dist/cjs/node_modules/@radix-ui/react-focus-scope/dist/index.js +2 -2
  89. package/dist/cjs/node_modules/@radix-ui/react-popper/dist/index.js +265 -0
  90. package/dist/cjs/node_modules/@radix-ui/react-popper/dist/index.js.map +1 -0
  91. package/dist/cjs/node_modules/@radix-ui/react-portal/dist/index.js +2 -2
  92. package/dist/cjs/node_modules/@radix-ui/react-primitive/dist/index.js +2 -2
  93. package/dist/cjs/node_modules/@radix-ui/react-radio-group/dist/index.js +7 -7
  94. package/dist/cjs/node_modules/@radix-ui/react-roving-focus/dist/index.js +4 -4
  95. package/dist/cjs/node_modules/@radix-ui/react-separator/dist/index.js +2 -2
  96. package/dist/cjs/node_modules/@radix-ui/react-slider/dist/index.js +27 -27
  97. package/dist/cjs/node_modules/@radix-ui/react-slot/dist/index.js +3 -3
  98. package/dist/cjs/node_modules/@radix-ui/react-switch/dist/index.js +4 -4
  99. package/dist/cjs/node_modules/@radix-ui/react-tabs/dist/index.js +7 -7
  100. package/dist/cjs/node_modules/@radix-ui/react-toggle-group/dist/index.js +0 -1
  101. package/dist/cjs/node_modules/@radix-ui/react-toggle-group/dist/index.js.map +1 -1
  102. package/dist/cjs/node_modules/@radix-ui/react-toolbar/dist/index.js +7 -7
  103. package/dist/cjs/node_modules/@radix-ui/react-tooltip/dist/index.js +521 -0
  104. package/dist/cjs/node_modules/@radix-ui/react-tooltip/dist/index.js.map +1 -0
  105. package/dist/cjs/node_modules/@radix-ui/react-visually-hidden/dist/index.js +2 -2
  106. package/dist/cjs/node_modules/react-textarea-autosize/dist/react-textarea-autosize.esm.js +4 -4
  107. package/dist/cjs/node_modules/react-textarea-autosize/dist/react-textarea-autosize.esm.js.map +1 -1
  108. package/dist/cjs/node_modules/react-textarea-autosize/node_modules/@babel/runtime/helpers/esm/extends.js +21 -0
  109. package/dist/cjs/node_modules/react-textarea-autosize/node_modules/@babel/runtime/helpers/esm/extends.js.map +1 -0
  110. package/dist/cjs/node_modules/react-textarea-autosize/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +19 -0
  111. package/dist/cjs/node_modules/react-textarea-autosize/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js.map +1 -0
  112. package/dist/cjs/providers/BezierProvider.js +3 -2
  113. package/dist/cjs/providers/BezierProvider.js.map +1 -1
  114. package/dist/cjs/utils/styleUtils.js +26 -2
  115. package/dist/cjs/utils/styleUtils.js.map +1 -1
  116. package/dist/esm/_virtual/_rollupPluginBabelHelpers.mjs +31 -0
  117. package/dist/esm/_virtual/_rollupPluginBabelHelpers.mjs.map +1 -0
  118. package/dist/esm/components/Banner/Banner.const.mjs +4 -2
  119. package/dist/esm/components/Banner/Banner.const.mjs.map +1 -1
  120. package/dist/esm/components/Forms/Inputs/mixins.mjs +41 -22
  121. package/dist/esm/components/Forms/Inputs/mixins.mjs.map +1 -1
  122. package/dist/esm/components/Forms/Slider/Slider.mjs +76 -53
  123. package/dist/esm/components/Forms/Slider/Slider.mjs.map +1 -1
  124. package/dist/esm/components/Forms/Slider/Slider.styled.mjs +22 -82
  125. package/dist/esm/components/Forms/Slider/Slider.styled.mjs.map +1 -1
  126. package/dist/esm/components/Help/Help.mjs +11 -8
  127. package/dist/esm/components/Help/Help.mjs.map +1 -1
  128. package/dist/esm/components/Help/Help.styled.mjs +4 -5
  129. package/dist/esm/components/Help/Help.styled.mjs.map +1 -1
  130. package/dist/esm/components/KeyValueListItem/common/ItemActions/ItemAction.mjs +3 -10
  131. package/dist/esm/components/KeyValueListItem/common/ItemActions/ItemAction.mjs.map +1 -1
  132. package/dist/esm/components/KeyValueListItem/common/ItemActions/ItemAction.styled.mjs +4 -19
  133. package/dist/esm/components/KeyValueListItem/common/ItemActions/ItemAction.styled.mjs.map +1 -1
  134. package/dist/esm/components/LegacyTooltip/LegacyTooltip.mjs +97 -0
  135. package/dist/esm/components/LegacyTooltip/LegacyTooltip.mjs.map +1 -0
  136. package/dist/esm/components/LegacyTooltip/LegacyTooltip.styled.mjs +36 -0
  137. package/dist/esm/components/LegacyTooltip/LegacyTooltip.styled.mjs.map +1 -0
  138. package/dist/esm/components/LegacyTooltip/LegacyTooltip.types.mjs +18 -0
  139. package/dist/esm/components/LegacyTooltip/LegacyTooltip.types.mjs.map +1 -0
  140. package/dist/esm/components/{Tooltip/TooltipContent.mjs → LegacyTooltip/LegacyTooltipContent.mjs} +8 -9
  141. package/dist/esm/components/LegacyTooltip/LegacyTooltipContent.mjs.map +1 -0
  142. package/dist/esm/components/{Tooltip → LegacyTooltip}/utils.mjs +33 -33
  143. package/dist/esm/components/LegacyTooltip/utils.mjs.map +1 -0
  144. package/dist/esm/components/ListItem/ListItem.styled.mjs +1 -1
  145. package/dist/esm/components/ListItem/utils.mjs +20 -8
  146. package/dist/esm/components/ListItem/utils.mjs.map +1 -1
  147. package/dist/esm/components/ListMenuTitle/ListMenuTitle.mjs +12 -11
  148. package/dist/esm/components/ListMenuTitle/ListMenuTitle.mjs.map +1 -1
  149. package/dist/esm/components/Modals/Modal/Modal.types.mjs.map +1 -1
  150. package/dist/esm/components/Modals/Modal/ModalAnimation.styled.mjs +57 -11
  151. package/dist/esm/components/Modals/Modal/ModalAnimation.styled.mjs.map +1 -1
  152. package/dist/esm/components/Navigator/NavGroup/NavGroup.mjs +11 -12
  153. package/dist/esm/components/Navigator/NavGroup/NavGroup.mjs.map +1 -1
  154. package/dist/esm/components/Navigator/NavItem/NavItem.mjs +11 -11
  155. package/dist/esm/components/Navigator/NavItem/NavItem.mjs.map +1 -1
  156. package/dist/esm/components/Overlay/Overlay.mjs +2 -2
  157. package/dist/esm/components/Overlay/Overlay.mjs.map +1 -1
  158. package/dist/esm/components/Overlay/utils.mjs +6 -2
  159. package/dist/esm/components/Overlay/utils.mjs.map +1 -1
  160. package/dist/esm/components/SectionLabel/SectionLabel.mjs +11 -17
  161. package/dist/esm/components/SectionLabel/SectionLabel.mjs.map +1 -1
  162. package/dist/esm/components/SectionLabel/SectionLabel.styled.mjs +4 -4
  163. package/dist/esm/components/SectionLabel/SectionLabel.styled.mjs.map +1 -1
  164. package/dist/esm/components/Spinner/Spinner.mjs +11 -8
  165. package/dist/esm/components/Spinner/Spinner.mjs.map +1 -1
  166. package/dist/esm/components/Spinner/Spinner.styled.mjs +1 -1
  167. package/dist/esm/components/Spinner/Spinner.types.mjs.map +1 -1
  168. package/dist/esm/components/Stack/Stack/Stack.styled.mjs +1 -1
  169. package/dist/esm/components/TagBadge/Badge/Badge.mjs +10 -9
  170. package/dist/esm/components/TagBadge/Badge/Badge.mjs.map +1 -1
  171. package/dist/esm/components/TagBadge/Tag/Tag.mjs +5 -4
  172. package/dist/esm/components/TagBadge/Tag/Tag.mjs.map +1 -1
  173. package/dist/esm/components/Text/Text.styled.mjs +1 -1
  174. package/dist/esm/components/Toast/Toast.types.mjs +2 -1
  175. package/dist/esm/components/Toast/Toast.types.mjs.map +1 -1
  176. package/dist/esm/components/Toast/ToastElement.mjs +5 -6
  177. package/dist/esm/components/Toast/ToastElement.mjs.map +1 -1
  178. package/dist/esm/components/Toast/ToastProvider.mjs +3 -3
  179. package/dist/esm/components/Toast/ToastProvider.mjs.map +1 -1
  180. package/dist/esm/components/Toast/ToastService.mjs +1 -1
  181. package/dist/esm/components/Toast/utils.mjs +17 -10
  182. package/dist/esm/components/Toast/utils.mjs.map +1 -1
  183. package/dist/esm/components/Tooltip/Tooltip.mjs +213 -82
  184. package/dist/esm/components/Tooltip/Tooltip.mjs.map +1 -1
  185. package/dist/esm/components/Tooltip/Tooltip.styled.mjs +93 -23
  186. package/dist/esm/components/Tooltip/Tooltip.styled.mjs.map +1 -1
  187. package/dist/esm/components/Tooltip/Tooltip.types.mjs +3 -0
  188. package/dist/esm/components/Tooltip/Tooltip.types.mjs.map +1 -1
  189. package/dist/esm/features/SmoothCornersFeature/SmoothCornersFeature.mjs +1 -1
  190. package/dist/esm/index.mjs +7 -5
  191. package/dist/esm/index.mjs.map +1 -1
  192. package/dist/esm/node_modules/@babel/runtime/helpers/esm/extends.mjs +17 -0
  193. package/dist/esm/node_modules/@babel/runtime/helpers/esm/extends.mjs.map +1 -0
  194. package/dist/esm/node_modules/@floating-ui/core/dist/floating-ui.core.mjs +875 -0
  195. package/dist/esm/node_modules/@floating-ui/core/dist/floating-ui.core.mjs.map +1 -0
  196. package/dist/esm/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs +679 -0
  197. package/dist/esm/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs.map +1 -0
  198. package/dist/esm/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.esm.mjs +265 -0
  199. package/dist/esm/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.esm.mjs.map +1 -0
  200. package/dist/esm/node_modules/@radix-ui/react-checkbox/dist/index.mjs +4 -4
  201. package/dist/esm/node_modules/@radix-ui/react-dialog/dist/index.mjs +12 -12
  202. package/dist/esm/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs +2 -2
  203. package/dist/esm/node_modules/@radix-ui/react-focus-scope/dist/index.mjs +2 -2
  204. package/dist/esm/node_modules/@radix-ui/react-popper/dist/index.mjs +257 -0
  205. package/dist/esm/node_modules/@radix-ui/react-popper/dist/index.mjs.map +1 -0
  206. package/dist/esm/node_modules/@radix-ui/react-portal/dist/index.mjs +3 -3
  207. package/dist/esm/node_modules/@radix-ui/react-primitive/dist/index.mjs +2 -2
  208. package/dist/esm/node_modules/@radix-ui/react-radio-group/dist/index.mjs +7 -7
  209. package/dist/esm/node_modules/@radix-ui/react-roving-focus/dist/index.mjs +4 -4
  210. package/dist/esm/node_modules/@radix-ui/react-separator/dist/index.mjs +2 -2
  211. package/dist/esm/node_modules/@radix-ui/react-slider/dist/index.mjs +11 -11
  212. package/dist/esm/node_modules/@radix-ui/react-slot/dist/index.mjs +3 -3
  213. package/dist/esm/node_modules/@radix-ui/react-switch/dist/index.mjs +4 -4
  214. package/dist/esm/node_modules/@radix-ui/react-tabs/dist/index.mjs +7 -7
  215. package/dist/esm/node_modules/@radix-ui/react-toggle-group/dist/index.mjs +0 -1
  216. package/dist/esm/node_modules/@radix-ui/react-toggle-group/dist/index.mjs.map +1 -1
  217. package/dist/esm/node_modules/@radix-ui/react-toolbar/dist/index.mjs +7 -7
  218. package/dist/esm/node_modules/@radix-ui/react-tooltip/dist/index.mjs +509 -0
  219. package/dist/esm/node_modules/@radix-ui/react-tooltip/dist/index.mjs.map +1 -0
  220. package/dist/esm/node_modules/@radix-ui/react-visually-hidden/dist/index.mjs +2 -2
  221. package/dist/esm/node_modules/react-textarea-autosize/dist/react-textarea-autosize.esm.mjs +3 -3
  222. package/dist/esm/node_modules/react-textarea-autosize/dist/react-textarea-autosize.esm.mjs.map +1 -1
  223. package/dist/esm/node_modules/react-textarea-autosize/node_modules/@babel/runtime/helpers/esm/extends.mjs +17 -0
  224. package/dist/esm/node_modules/react-textarea-autosize/node_modules/@babel/runtime/helpers/esm/extends.mjs.map +1 -0
  225. package/dist/esm/node_modules/react-textarea-autosize/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.mjs +15 -0
  226. package/dist/esm/node_modules/react-textarea-autosize/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.mjs.map +1 -0
  227. package/dist/esm/providers/BezierProvider.mjs +3 -2
  228. package/dist/esm/providers/BezierProvider.mjs.map +1 -1
  229. package/dist/esm/utils/styleUtils.mjs +26 -2
  230. package/dist/esm/utils/styleUtils.mjs.map +1 -1
  231. package/dist/types/components/Forms/Slider/Slider.d.ts +18 -2
  232. package/dist/types/components/Forms/Slider/Slider.d.ts.map +1 -1
  233. package/dist/types/components/Forms/Slider/Slider.styled.d.ts +14 -24
  234. package/dist/types/components/Forms/Slider/Slider.styled.d.ts.map +1 -1
  235. package/dist/types/components/Forms/Slider/Slider.types.d.ts +52 -13
  236. package/dist/types/components/Forms/Slider/Slider.types.d.ts.map +1 -1
  237. package/dist/types/components/Help/Help.d.ts +1 -4
  238. package/dist/types/components/Help/Help.d.ts.map +1 -1
  239. package/dist/types/components/Help/Help.styled.d.ts +1 -1
  240. package/dist/types/components/Help/Help.styled.d.ts.map +1 -1
  241. package/dist/types/components/Help/Help.types.d.ts +1 -1
  242. package/dist/types/components/Help/Help.types.d.ts.map +1 -1
  243. package/dist/types/components/KeyValueListItem/common/ItemActions/ItemAction.d.ts.map +1 -1
  244. package/dist/types/components/KeyValueListItem/common/ItemActions/ItemAction.styled.d.ts +1 -7
  245. package/dist/types/components/KeyValueListItem/common/ItemActions/ItemAction.styled.d.ts.map +1 -1
  246. package/dist/types/components/KeyValueListItem/common/ItemActions/ItemAction.types.d.ts +3 -3
  247. package/dist/types/components/KeyValueListItem/common/ItemActions/ItemAction.types.d.ts.map +1 -1
  248. package/dist/types/components/KeyValueListItem/common/KeyItem/KeyItem.types.d.ts +2 -2
  249. package/dist/types/components/KeyValueListItem/common/KeyItem/KeyItem.types.d.ts.map +1 -1
  250. package/dist/types/components/LegacyTooltip/LegacyTooltip.d.ts +6 -0
  251. package/dist/types/components/LegacyTooltip/LegacyTooltip.d.ts.map +1 -0
  252. package/dist/types/components/LegacyTooltip/LegacyTooltip.styled.d.ts +18 -0
  253. package/dist/types/components/LegacyTooltip/LegacyTooltip.styled.d.ts.map +1 -0
  254. package/dist/types/components/LegacyTooltip/LegacyTooltip.types.d.ts +40 -0
  255. package/dist/types/components/LegacyTooltip/LegacyTooltip.types.d.ts.map +1 -0
  256. package/dist/types/components/LegacyTooltip/LegacyTooltipContent.d.ts +4 -0
  257. package/dist/types/components/LegacyTooltip/LegacyTooltipContent.d.ts.map +1 -0
  258. package/dist/types/components/LegacyTooltip/index.d.ts +4 -0
  259. package/dist/types/components/LegacyTooltip/index.d.ts.map +1 -0
  260. package/dist/types/components/{Tooltip → LegacyTooltip}/utils.d.ts +2 -2
  261. package/dist/types/components/LegacyTooltip/utils.d.ts.map +1 -0
  262. package/dist/types/components/ListMenuTitle/ListMenuTitle.d.ts +1 -1
  263. package/dist/types/components/ListMenuTitle/ListMenuTitle.d.ts.map +1 -1
  264. package/dist/types/components/ListMenuTitle/ListMenuTitle.types.d.ts +1 -2
  265. package/dist/types/components/ListMenuTitle/ListMenuTitle.types.d.ts.map +1 -1
  266. package/dist/types/components/Modals/Modal/Modal.types.d.ts +2 -2
  267. package/dist/types/components/Modals/Modal/Modal.types.d.ts.map +1 -1
  268. package/dist/types/components/Navigator/NavGroup/NavGroup.d.ts +1 -2
  269. package/dist/types/components/Navigator/NavGroup/NavGroup.d.ts.map +1 -1
  270. package/dist/types/components/Navigator/NavGroup/NavGroup.types.d.ts +3 -3
  271. package/dist/types/components/Navigator/NavGroup/NavGroup.types.d.ts.map +1 -1
  272. package/dist/types/components/Navigator/NavItem/NavItem.d.ts +1 -2
  273. package/dist/types/components/Navigator/NavItem/NavItem.d.ts.map +1 -1
  274. package/dist/types/components/Navigator/NavItem/NavItem.types.d.ts +3 -3
  275. package/dist/types/components/Navigator/NavItem/NavItem.types.d.ts.map +1 -1
  276. package/dist/types/components/SectionLabel/SectionLabel.d.ts +1 -2
  277. package/dist/types/components/SectionLabel/SectionLabel.d.ts.map +1 -1
  278. package/dist/types/components/SectionLabel/SectionLabel.styled.d.ts +1 -1
  279. package/dist/types/components/SectionLabel/SectionLabel.styled.d.ts.map +1 -1
  280. package/dist/types/components/SectionLabel/SectionLabel.types.d.ts +2 -7
  281. package/dist/types/components/SectionLabel/SectionLabel.types.d.ts.map +1 -1
  282. package/dist/types/components/Spinner/Spinner.d.ts +1 -1
  283. package/dist/types/components/Spinner/Spinner.d.ts.map +1 -1
  284. package/dist/types/components/Spinner/Spinner.types.d.ts +2 -1
  285. package/dist/types/components/Spinner/Spinner.types.d.ts.map +1 -1
  286. package/dist/types/components/TagBadge/Badge/Badge.d.ts +1 -1
  287. package/dist/types/components/TagBadge/Badge/Badge.d.ts.map +1 -1
  288. package/dist/types/components/TagBadge/Badge/Badge.types.d.ts +2 -2
  289. package/dist/types/components/TagBadge/Badge/Badge.types.d.ts.map +1 -1
  290. package/dist/types/components/TagBadge/Tag/Tag.d.ts +1 -1
  291. package/dist/types/components/TagBadge/Tag/Tag.d.ts.map +1 -1
  292. package/dist/types/components/Toast/Toast.types.d.ts +4 -4
  293. package/dist/types/components/Toast/Toast.types.d.ts.map +1 -1
  294. package/dist/types/components/Toast/ToastElement.d.ts.map +1 -1
  295. package/dist/types/components/Toast/utils.d.ts.map +1 -1
  296. package/dist/types/components/Tooltip/Tooltip.d.ts +31 -5
  297. package/dist/types/components/Tooltip/Tooltip.d.ts.map +1 -1
  298. package/dist/types/components/Tooltip/Tooltip.styled.d.ts +22 -12
  299. package/dist/types/components/Tooltip/Tooltip.styled.d.ts.map +1 -1
  300. package/dist/types/components/Tooltip/Tooltip.types.d.ts +105 -24
  301. package/dist/types/components/Tooltip/Tooltip.types.d.ts.map +1 -1
  302. package/dist/types/components/Tooltip/index.d.ts +3 -5
  303. package/dist/types/components/Tooltip/index.d.ts.map +1 -1
  304. package/dist/types/components/VisuallyHidden/VisuallyHidden.types.d.ts +2 -1
  305. package/dist/types/components/VisuallyHidden/VisuallyHidden.types.d.ts.map +1 -1
  306. package/dist/types/index.d.ts +1 -0
  307. package/dist/types/index.d.ts.map +1 -1
  308. package/dist/types/providers/BezierProvider.d.ts.map +1 -1
  309. package/package.json +3 -5
  310. package/src/components/Avatars/AvatarGroup/__snapshots__/AvatarGroup.test.tsx.snap +17 -17
  311. package/src/components/Button/__snapshots__/Button.test.tsx.snap +15 -15
  312. package/src/components/Forms/FormControl/__snapshots__/FormControl.test.tsx.snap +119 -119
  313. package/src/components/Forms/Slider/Slider.stories.tsx +10 -63
  314. package/src/components/Forms/Slider/Slider.styled.ts +46 -95
  315. package/src/components/Forms/Slider/Slider.test.tsx +130 -97
  316. package/src/components/Forms/Slider/Slider.tsx +117 -96
  317. package/src/components/Forms/Slider/Slider.types.ts +55 -17
  318. package/src/components/Forms/Slider/__snapshots__/Slider.test.tsx.snap +156 -0
  319. package/src/components/Help/Help.styled.ts +4 -7
  320. package/src/components/Help/Help.tsx +19 -12
  321. package/src/components/Help/Help.types.ts +1 -1
  322. package/src/components/KeyValueListItem/KeyValueListItem.test.tsx +10 -6
  323. package/src/components/KeyValueListItem/__snapshots__/KeyValueListItem.test.tsx.snap +13 -13
  324. package/src/components/KeyValueListItem/common/ItemActions/ItemAction.styled.ts +5 -15
  325. package/src/components/KeyValueListItem/common/ItemActions/ItemAction.tsx +6 -13
  326. package/src/components/KeyValueListItem/common/ItemActions/ItemAction.types.ts +3 -6
  327. package/src/components/KeyValueListItem/common/KeyItem/KeyItem.types.ts +2 -5
  328. package/src/components/LegacyTooltip/LegacyTooltip.stories.tsx +105 -0
  329. package/src/components/LegacyTooltip/LegacyTooltip.styled.ts +46 -0
  330. package/src/components/LegacyTooltip/LegacyTooltip.test.tsx +100 -0
  331. package/src/components/LegacyTooltip/LegacyTooltip.tsx +152 -0
  332. package/src/components/LegacyTooltip/LegacyTooltip.types.ts +69 -0
  333. package/src/components/{Tooltip/TooltipContent.test.tsx → LegacyTooltip/LegacyTooltipContent.test.tsx} +9 -8
  334. package/src/components/{Tooltip/TooltipContent.tsx → LegacyTooltip/LegacyTooltipContent.tsx} +6 -7
  335. package/src/components/LegacyTooltip/index.ts +5 -0
  336. package/src/components/{Tooltip → LegacyTooltip}/utils.ts +35 -35
  337. package/src/components/ListMenuTitle/ListMenuTitle.tsx +10 -6
  338. package/src/components/ListMenuTitle/ListMenuTitle.types.ts +1 -1
  339. package/src/components/Modals/Modal/Modal.types.ts +2 -2
  340. package/src/components/Navigator/NavGroup/NavGroup.stories.tsx +5 -2
  341. package/src/components/Navigator/NavGroup/NavGroup.test.tsx +1 -1
  342. package/src/components/Navigator/NavGroup/NavGroup.tsx +13 -16
  343. package/src/components/Navigator/NavGroup/NavGroup.types.ts +3 -2
  344. package/src/components/Navigator/NavItem/NavItem.test.tsx +3 -1
  345. package/src/components/Navigator/NavItem/NavItem.tsx +13 -12
  346. package/src/components/Navigator/NavItem/NavItem.types.ts +3 -2
  347. package/src/components/SectionLabel/SectionLabel.stories.tsx +1 -1
  348. package/src/components/SectionLabel/SectionLabel.styled.ts +2 -4
  349. package/src/components/SectionLabel/SectionLabel.test.tsx +5 -25
  350. package/src/components/SectionLabel/SectionLabel.tsx +11 -17
  351. package/src/components/SectionLabel/SectionLabel.types.ts +2 -8
  352. package/src/components/Spinner/Spinner.tsx +7 -4
  353. package/src/components/Spinner/Spinner.types.ts +2 -1
  354. package/src/components/TagBadge/Badge/Badge.stories.tsx +2 -1
  355. package/src/components/TagBadge/Badge/Badge.tsx +15 -10
  356. package/src/components/TagBadge/Badge/Badge.types.ts +2 -2
  357. package/src/components/TagBadge/Tag/Tag.tsx +9 -4
  358. package/src/components/TagBadge/TagBadge.mdx +1 -1
  359. package/src/components/TagBadge/TagBadge.stories.tsx +48 -33
  360. package/src/components/Toast/Toast.stories.tsx +9 -8
  361. package/src/components/Toast/Toast.types.ts +8 -5
  362. package/src/components/Toast/ToastElement.tsx +4 -5
  363. package/src/components/Toast/ToastProvider.tsx +2 -2
  364. package/src/components/Toast/ToastService.test.ts +3 -1
  365. package/src/components/Toast/useToastContextValues.test.tsx +5 -4
  366. package/src/components/Toast/utils.ts +13 -5
  367. package/src/components/Tooltip/Tooltip.stories.tsx +28 -67
  368. package/src/components/Tooltip/Tooltip.styled.ts +109 -19
  369. package/src/components/Tooltip/Tooltip.test.tsx +136 -63
  370. package/src/components/Tooltip/Tooltip.tsx +262 -120
  371. package/src/components/Tooltip/Tooltip.types.ts +111 -47
  372. package/src/components/Tooltip/index.ts +8 -8
  373. package/src/components/VisuallyHidden/VisuallyHidden.types.ts +1 -1
  374. package/src/index.ts +1 -0
  375. package/src/providers/BezierProvider.tsx +10 -6
  376. package/dist/cjs/components/Tooltip/TooltipContent.js.map +0 -1
  377. package/dist/cjs/components/Tooltip/utils.js.map +0 -1
  378. package/dist/esm/components/Tooltip/TooltipContent.mjs.map +0 -1
  379. package/dist/esm/components/Tooltip/utils.mjs.map +0 -1
  380. package/dist/types/components/Tooltip/TooltipContent.d.ts +0 -5
  381. package/dist/types/components/Tooltip/TooltipContent.d.ts.map +0 -1
  382. package/dist/types/components/Tooltip/utils.d.ts.map +0 -1
  383. /package/src/components/{Tooltip/__snapshots__/Tooltip.test.tsx.snap → LegacyTooltip/__snapshots__/LegacyTooltip.test.tsx.snap} +0 -0
@@ -1,105 +1,66 @@
1
1
  import React from 'react'
2
2
 
3
+ import { TranslateIcon } from '@channel.io/bezier-icons'
3
4
  import {
4
5
  type Meta,
5
6
  type Story,
6
7
  } from '@storybook/react'
7
8
  import { base } from 'paths.macro'
8
9
 
9
- import { styled } from '~/src/foundation'
10
+ import {
11
+ getObjectFromEnum,
12
+ getTitle,
13
+ } from '~/src/utils/storyUtils'
10
14
 
11
- import { getTitle } from '~/src/utils/storyUtils'
15
+ import { Button } from '~/src/components/Button'
12
16
 
13
- import Tooltip from './Tooltip'
14
- import type TooltipProps from './Tooltip.types'
15
- import { TooltipPosition } from './Tooltip.types'
17
+ import {
18
+ Tooltip,
19
+ TooltipProvider,
20
+ } from './Tooltip'
21
+ import {
22
+ TooltipPosition,
23
+ type TooltipProps,
24
+ } from './Tooltip.types'
16
25
 
17
26
  export default {
18
27
  title: getTitle(base),
19
28
  component: Tooltip,
29
+ subcomponents: { TooltipProvider },
20
30
  argTypes: {
21
- content: {
22
- control: {
23
- type: 'text',
24
- },
25
- },
26
- placement: {
27
- control: {
28
- type: 'radio',
29
- options: [
30
- TooltipPosition.TopCenter,
31
- TooltipPosition.TopLeft,
32
- TooltipPosition.TopRight,
33
- TooltipPosition.RightCenter,
34
- TooltipPosition.RightTop,
35
- TooltipPosition.RightBottom,
36
- TooltipPosition.BottomCenter,
37
- TooltipPosition.BottomLeft,
38
- TooltipPosition.BottomRight,
39
- TooltipPosition.LeftCenter,
40
- TooltipPosition.LeftTop,
41
- TooltipPosition.LeftBottom,
42
- ],
43
- },
44
- },
45
31
  offset: {
46
32
  control: {
47
33
  type: 'range',
48
- min: 0,
49
- max: 50,
50
- step: 1,
51
- },
52
- },
53
- delayShow: {
54
- control: {
55
- type: 'range',
56
- min: 0,
57
- max: 5000,
58
- step: 100,
59
34
  },
60
35
  },
61
- delayHide: {
36
+ placement: {
62
37
  control: {
63
- type: 'range',
64
- min: 0,
65
- max: 5000,
66
- step: 100,
38
+ type: 'select',
39
+ options: getObjectFromEnum(TooltipPosition),
67
40
  },
68
41
  },
69
42
  },
70
- } as Meta
71
-
72
- const Target = styled.div`
73
- display: flex;
74
- align-items: center;
75
- justify-content: center;
76
- width: 100px;
77
- height: 40px;
78
- background-color: ${props => props.foundation?.theme?.['bg-black-dark']};
79
- border-radius: 4px;
80
- `
43
+ } as Meta<TooltipProps>
81
44
 
82
- const Template: Story<TooltipProps> = (props) => (
83
- <Tooltip
84
- {...props}
85
- >
86
- <Target>
87
- Target
88
- </Target>
45
+ const Template: Story<TooltipProps> = ({ children, ...rest }) => (
46
+ <Tooltip {...rest}>
47
+ { children }
89
48
  </Tooltip>
90
49
  )
91
50
 
92
51
  export const Primary = Template.bind({})
93
52
 
94
53
  Primary.args = {
95
- // eslint-disable-next-line max-len
96
- content: 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.',
97
- lazy: true,
54
+ defaultShow: false,
98
55
  placement: TooltipPosition.BottomCenter,
99
56
  offset: 4,
100
57
  disabled: false,
101
- keepInContainer: false,
58
+ keepInContainer: true,
102
59
  allowHover: false,
103
60
  delayShow: 0,
104
61
  delayHide: 0,
62
+ children: (<Button text="Button" />),
63
+ content: 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.',
64
+ description: 'Lorem Ipsum is simply dummy text of the printing and typesetting industry.',
65
+ icon: TranslateIcon,
105
66
  }
@@ -1,46 +1,136 @@
1
1
  import {
2
2
  LineHeightAbsoluteNumber,
3
+ TransitionDuration,
4
+ Typography,
3
5
  css,
4
6
  ellipsis,
7
+ keyframes,
5
8
  styled,
6
9
  } from '~/src/foundation'
7
10
 
8
11
  import { ZIndex } from '~/src/constants/ZIndex'
9
- import type { InterpolationProps } from '~/src/types/Foundation'
10
12
 
11
- interface ContentWrapperProps {
12
- disabled: boolean
13
- }
13
+ import { AlphaStack } from '~/src/components/AlphaStack'
14
+ import {
15
+ Icon as BaseIcon,
16
+ IconSize,
17
+ } from '~/src/components/Icon'
18
+ import { Text } from '~/src/components/Text'
19
+
20
+ import { type TooltipProps } from './Tooltip.types'
21
+
22
+ const fadeIn = keyframes`
23
+ from {
24
+ opacity: 0;
25
+ }
14
26
 
15
- export const Container = styled.div`
16
- position: relative;
27
+ to {
28
+ opacity: 1;
29
+ }
30
+ `
31
+
32
+ const SLIDE_OFFSET = 2
33
+
34
+ const slideUp = keyframes`
35
+ from {
36
+ transform: translateY(${SLIDE_OFFSET}px);
37
+ }
38
+
39
+ to {
40
+ transform: translateY(0);
41
+ }
42
+ `
43
+
44
+ const slideRight = keyframes`
45
+ from {
46
+ transform: translateX(-${SLIDE_OFFSET}px);
47
+ }
48
+
49
+ to {
50
+ transform: translateX(0);
51
+ }
52
+ `
53
+
54
+ const slideDown = keyframes`
55
+ from {
56
+ transform: translateY(-${SLIDE_OFFSET}px);
57
+ }
58
+
59
+ to {
60
+ transform: translateY(0);
61
+ }
62
+ `
63
+
64
+ const slideLeft = keyframes`
65
+ from {
66
+ transform: translateX(${SLIDE_OFFSET}px);
67
+ }
68
+
69
+ to {
70
+ transform: translateX(0);
71
+ }
17
72
  `
18
- export const ContentWrapper = styled.div<ContentWrapperProps>`
19
- position: absolute;
20
- top: 0;
21
- left: 0;
22
- z-index: ${ZIndex.Tooltip};
23
73
 
24
- ${({ disabled }) => disabled && css`
25
- display: none;
26
- `}
74
+ const getSlideAnimation = (frames: ReturnType<typeof keyframes>) => css`
75
+ animation-name: ${() => frames}, ${() => fadeIn};
76
+ animation-duration: ${TransitionDuration.M}ms;
77
+ animation-timing-function: cubic-bezier(0.3, 0, 0, 1);
27
78
  `
28
79
 
29
- export const Content = styled.div<InterpolationProps>`
80
+ export const TooltipContent = styled(AlphaStack).attrs({
81
+ direction: 'horizontal',
82
+ spacing: 4,
83
+ })<TooltipProps>`
84
+ z-index: ${ZIndex.Tooltip};
85
+
30
86
  box-sizing: border-box;
31
87
  width: max-content;
32
88
  max-width: 260px;
33
89
  height: max-content;
34
- padding: 8px 14px;
35
- color: ${({ foundation }) => foundation?.subTheme?.['txt-black-darkest']};
90
+ padding: 5px 8px;
36
91
  word-break: normal;
37
92
  word-wrap: break-word;
38
- ${({ foundation }) => foundation?.elevation?.ev2(true)};
93
+
94
+ ${({ foundation }) => foundation?.elevation?.ev3(true)};
39
95
  ${({ foundation }) => foundation?.rounding?.round8};
40
96
 
97
+ &[data-side="top"] {
98
+ ${getSlideAnimation(slideUp)}
99
+ }
100
+
101
+ &[data-side="right"] {
102
+ ${getSlideAnimation(slideRight)}
103
+ }
104
+
105
+ &[data-side="bottom"] {
106
+ ${getSlideAnimation(slideDown)}
107
+ }
108
+
109
+ &[data-side="left"] {
110
+ ${getSlideAnimation(slideLeft)}
111
+ }
112
+
41
113
  ${({ interpolation }) => interpolation}
42
114
  `
43
115
 
44
- export const EllipsisableContent = styled.div`
116
+ export const TextContainer = styled.div`
117
+ overflow: hidden;
118
+ `
119
+
120
+ export const Content = styled(Text).attrs({ typo: Typography.Size13 })`
121
+ color: ${({ foundation }) => foundation?.subTheme?.['txt-black-darkest']};
122
+ /* NOTE: Line height of Typography.Size13 */
45
123
  ${ellipsis(20, LineHeightAbsoluteNumber.Lh18)}
124
+ white-space: pre-wrap;
125
+ `
126
+
127
+ export const Description = styled(Text).attrs({ typo: Typography.Size12 })`
128
+ color: ${({ foundation }) => foundation?.subTheme?.['txt-black-dark']};
129
+ `
130
+
131
+ export const Icon = styled(BaseIcon).attrs({
132
+ size: IconSize.XS,
133
+ })`
134
+ padding: 1px;
135
+ color: ${({ foundation }) => foundation?.subTheme?.['txt-black-darkest']};
46
136
  `
@@ -1,99 +1,172 @@
1
1
  import React from 'react'
2
2
 
3
- import { fireEvent } from '@testing-library/dom'
4
- import { act } from '@testing-library/react'
5
-
6
- import { css } from '~/src/foundation'
3
+ import {
4
+ isInaccessible,
5
+ waitFor,
6
+ } from '@testing-library/react'
7
+ import userEvent from '@testing-library/user-event'
7
8
 
8
9
  import { render } from '~/src/utils/testUtils'
9
10
 
10
- import Tooltip, {
11
- TOOLTIP_CONTENT_TEST_ID,
12
- TOOLTIP_TEST_ID,
11
+ import {
12
+ Tooltip,
13
+ TooltipProvider,
13
14
  } from './Tooltip'
14
- import type TooltipProps from './Tooltip.types'
15
-
16
- const RootTooltip: React.FC<TooltipProps> = ({ children, ...rests }) => (
17
- <Tooltip {...rests}>
18
- { children }
19
- </Tooltip>
20
- )
21
-
22
- describe('Tooltip test >', () => {
23
- let props: TooltipProps
15
+ import {
16
+ type TooltipProps,
17
+ type TooltipProviderProps,
18
+ } from './Tooltip.types'
19
+
20
+ describe('Tooltip', () => {
21
+ const renderTooltip = ({
22
+ children,
23
+ ...rest
24
+ }: TooltipProps = {}) => render(
25
+ <Tooltip {...rest}>
26
+ <button type="button">
27
+ Trigger
28
+ </button>
29
+ </Tooltip>,
30
+ )
24
31
 
25
- const content = 'Hovered'
32
+ let user: ReturnType<typeof userEvent.setup>
26
33
 
27
34
  beforeEach(() => {
28
- props = {
29
- children: 'Text',
30
- content,
31
- }
32
-
33
- jest.useFakeTimers()
35
+ user = userEvent.setup()
34
36
  })
35
37
 
36
- afterEach(() => {
37
- jest.useRealTimers()
38
- })
38
+ describe('ARIA', () => {
39
+ it('should be accessible', () => {
40
+ const { container } = renderTooltip({ defaultShow: true })
41
+ expect(isInaccessible(container)).toBe(false)
42
+ })
39
43
 
40
- const renderTooltip = (optionProps?: TooltipProps) => render(
41
- <RootTooltip {...props} {...optionProps} />,
42
- )
44
+ it('The element that serves as the tooltip container has role `tooltip`.', () => {
45
+ const { getByRole } = renderTooltip({ defaultShow: true })
46
+ expect(getByRole('tooltip')).toBeInTheDocument()
47
+ })
43
48
 
44
- it('Tooltip with default props', () => {
45
- const { baseElement, getByTestId } = renderTooltip()
49
+ it('The element that triggers the tooltip references the tooltip element with `aria-describedby`.', () => {
50
+ const { getByRole } = renderTooltip({ defaultShow: true })
51
+ expect(getByRole('button')).toHaveAttribute('aria-describedby', getByRole('tooltip').id)
52
+ })
53
+ })
46
54
 
47
- act(() => {
48
- fireEvent.mouseOver(getByTestId(TOOLTIP_TEST_ID))
55
+ describe('User Interactions', () => {
56
+ it('The tooltip content should be visible when hover over the trigger.', async () => {
57
+ const { getByRole } = renderTooltip()
58
+ await user.hover(getByRole('button'))
59
+ expect(getByRole('tooltip')).toBeInTheDocument()
60
+ })
49
61
 
50
- jest.runAllTimers()
62
+ it('The tooltip content should be visible when the keyboard focuses on the trigger.', async () => {
63
+ const { getByRole } = renderTooltip()
64
+ await user.tab()
65
+ expect(getByRole('tooltip')).toBeInTheDocument()
51
66
  })
52
67
 
53
- expect(baseElement).toMatchSnapshot()
54
- })
68
+ it('When the tooltip content is visible, pressing Esc should hide the tooltip content.', async () => {
69
+ const { queryByRole } = renderTooltip({ defaultShow: true })
70
+ await user.keyboard('{Escape}')
71
+ expect(queryByRole('tooltip')).not.toBeInTheDocument()
72
+ })
55
73
 
56
- it('Tooltip with contentInterpolation prop', async () => {
57
- const { baseElement, getByTestId } = renderTooltip({
58
- contentInterpolation: css`background-color: black;`,
74
+ it('When the `allowHover` property is true, the tooltip content should be hoverable.', async () => {
75
+ const { getByRole } = renderTooltip({ allowHover: true })
76
+ await user.hover(getByRole('button'))
77
+ await user.hover(getByRole('tooltip'))
78
+ expect(getByRole('tooltip')).toBeInTheDocument()
59
79
  })
60
80
 
61
- act(() => {
62
- fireEvent.mouseOver(getByTestId(TOOLTIP_TEST_ID))
81
+ it('When the tooltip is visible, the `onShow` handler should be called.', async () => {
82
+ const onShow = jest.fn()
83
+ const { getByRole } = renderTooltip({ onShow })
84
+ await user.hover(getByRole('button'))
85
+ expect(onShow).toHaveBeenCalled()
86
+ })
63
87
 
64
- jest.runAllTimers()
88
+ it('When the tooltip is hidden, the `onHide` handler should be called.', async () => {
89
+ const onHide = jest.fn()
90
+ const { getByRole } = renderTooltip({ onHide })
91
+ await user.hover(getByRole('button'))
92
+ await user.unhover(getByRole('button'))
93
+ expect(onHide).toHaveBeenCalled()
65
94
  })
66
95
 
67
- expect(baseElement).toMatchSnapshot()
68
- })
96
+ it('If the `disabled` property is true, the tooltip should not be visible when hovering over it or with keyboard focus.', async () => {
97
+ const { getByRole, queryByRole } = renderTooltip({ disabled: true })
98
+ await user.hover(getByRole('button'))
99
+ expect(queryByRole('tooltip')).not.toBeInTheDocument()
100
+ await user.tab()
101
+ expect(queryByRole('tooltip')).not.toBeInTheDocument()
102
+ })
69
103
 
70
- it('TooltipContent not rendered at first', async () => {
71
- const { queryByTestId } = renderTooltip()
104
+ it('If the `delayShow` property is greater than 0, the tooltip should be delayed by that number of ms before appearing.', async () => {
105
+ const { getByRole, queryByRole } = renderTooltip({ delayShow: 1000 })
106
+ await user.hover(getByRole('button'))
107
+ expect(queryByRole('tooltip')).not.toBeInTheDocument()
108
+ await waitFor(() => {
109
+ expect(queryByRole('tooltip')).toBeInTheDocument()
110
+ }, { timeout: 1000 })
111
+ })
72
112
 
73
- expect(queryByTestId(TOOLTIP_CONTENT_TEST_ID)).toBeNull()
113
+ it('If the `delayHide` property is greater than 0, the tooltip should be delayed by that number of ms before disappearing.', async () => {
114
+ const { getByRole, queryByRole } = renderTooltip({ delayHide: 1000 })
115
+ await user.hover(getByRole('button'))
116
+ await user.unhover(getByRole('button'))
117
+ expect(queryByRole('tooltip')).toBeInTheDocument()
118
+ await waitFor(() => {
119
+ expect(queryByRole('tooltip')).not.toBeInTheDocument()
120
+ }, { timeout: 1000 })
121
+ })
74
122
  })
123
+ })
75
124
 
76
- it('TooltipContent rendered after mouseover', async () => {
77
- const { getByTestId, queryByTestId } = renderTooltip()
78
-
79
- act(() => {
80
- fireEvent.mouseOver(getByTestId(TOOLTIP_TEST_ID))
125
+ describe('TooltipProvider', () => {
126
+ const renderTooltipProvider = ({
127
+ children,
128
+ ...rest
129
+ }: TooltipProviderProps = {}) => render(
130
+ <TooltipProvider {...rest}>
131
+ <Tooltip>
132
+ <button type="button">
133
+ Trigger
134
+ </button>
135
+ </Tooltip>
136
+ </TooltipProvider>,
137
+ )
81
138
 
82
- jest.runAllTimers()
83
- })
139
+ let user: ReturnType<typeof userEvent.setup>
84
140
 
85
- expect(queryByTestId(TOOLTIP_CONTENT_TEST_ID)).toBeVisible()
141
+ beforeEach(() => {
142
+ user = userEvent.setup()
86
143
  })
87
144
 
88
- it('Tooltip with disabled prop not rendered even after mouseover', async () => {
89
- const { getByTestId, queryByTestId } = renderTooltip({ disabled: true })
90
-
91
- act(() => {
92
- fireEvent.mouseOver(getByTestId(TOOLTIP_TEST_ID))
145
+ describe('User Interactions', () => {
146
+ it('If the `allowHover` property is true, the tooltip content should be hoverable.', async () => {
147
+ const { getByRole } = renderTooltipProvider({ allowHover: true })
148
+ await user.hover(getByRole('button'))
149
+ await user.hover(getByRole('tooltip'))
150
+ expect(getByRole('tooltip')).toBeInTheDocument()
151
+ })
93
152
 
94
- jest.runAllTimers()
153
+ it('If the `delayShow` property is greater than 0, the tooltip should be delayed by that number of ms before appearing.', async () => {
154
+ const { getByRole, queryByRole } = renderTooltipProvider({ delayShow: 1000 })
155
+ await user.hover(getByRole('button'))
156
+ expect(queryByRole('tooltip')).not.toBeInTheDocument()
157
+ await waitFor(() => {
158
+ expect(queryByRole('tooltip')).toBeInTheDocument()
159
+ }, { timeout: 1000 })
95
160
  })
96
161
 
97
- expect(queryByTestId(TOOLTIP_CONTENT_TEST_ID)).toBeNull()
162
+ it('If the `delayHide` property is greater than 0, the tooltip should be delayed by that number of ms before disappearing.', async () => {
163
+ const { getByRole, queryByRole } = renderTooltipProvider({ delayHide: 1000 })
164
+ await user.hover(getByRole('button'))
165
+ await user.unhover(getByRole('button'))
166
+ expect(queryByRole('tooltip')).toBeInTheDocument()
167
+ await waitFor(() => {
168
+ expect(queryByRole('tooltip')).not.toBeInTheDocument()
169
+ }, { timeout: 1000 })
170
+ })
98
171
  })
99
172
  })