@channel.io/bezier-react 1.6.1 → 1.7.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 (310) hide show
  1. package/dist/cjs/components/Forms/Slider/Slider.js +73 -51
  2. package/dist/cjs/components/Forms/Slider/Slider.js.map +1 -1
  3. package/dist/cjs/components/Forms/Slider/Slider.styled.js +24 -83
  4. package/dist/cjs/components/Forms/Slider/Slider.styled.js.map +1 -1
  5. package/dist/cjs/components/Help/Help.js +10 -7
  6. package/dist/cjs/components/Help/Help.js.map +1 -1
  7. package/dist/cjs/components/Help/Help.styled.js +4 -5
  8. package/dist/cjs/components/Help/Help.styled.js.map +1 -1
  9. package/dist/cjs/components/KeyValueListItem/common/ItemActions/ItemAction.js +2 -9
  10. package/dist/cjs/components/KeyValueListItem/common/ItemActions/ItemAction.js.map +1 -1
  11. package/dist/cjs/components/KeyValueListItem/common/ItemActions/ItemAction.styled.js +3 -20
  12. package/dist/cjs/components/KeyValueListItem/common/ItemActions/ItemAction.styled.js.map +1 -1
  13. package/dist/cjs/components/LegacyTooltip/LegacyTooltip.js +101 -0
  14. package/dist/cjs/components/LegacyTooltip/LegacyTooltip.js.map +1 -0
  15. package/dist/cjs/components/LegacyTooltip/LegacyTooltip.styled.js +41 -0
  16. package/dist/cjs/components/LegacyTooltip/LegacyTooltip.styled.js.map +1 -0
  17. package/dist/cjs/components/LegacyTooltip/LegacyTooltip.types.js +20 -0
  18. package/dist/cjs/components/LegacyTooltip/LegacyTooltip.types.js.map +1 -0
  19. package/dist/cjs/components/{Tooltip/TooltipContent.js → LegacyTooltip/LegacyTooltipContent.js} +9 -12
  20. package/dist/cjs/components/LegacyTooltip/LegacyTooltipContent.js.map +1 -0
  21. package/dist/cjs/components/{Tooltip → LegacyTooltip}/utils.js +33 -33
  22. package/dist/cjs/components/LegacyTooltip/utils.js.map +1 -0
  23. package/dist/cjs/components/ListItem/ListItem.styled.js +1 -1
  24. package/dist/cjs/components/ListMenuTitle/ListMenuTitle.js +11 -10
  25. package/dist/cjs/components/ListMenuTitle/ListMenuTitle.js.map +1 -1
  26. package/dist/cjs/components/Modals/Modal/Modal.types.js.map +1 -1
  27. package/dist/cjs/components/Navigator/NavGroup/NavGroup.js +10 -11
  28. package/dist/cjs/components/Navigator/NavGroup/NavGroup.js.map +1 -1
  29. package/dist/cjs/components/Navigator/NavItem/NavItem.js +10 -10
  30. package/dist/cjs/components/Navigator/NavItem/NavItem.js.map +1 -1
  31. package/dist/cjs/components/SectionLabel/SectionLabel.js +10 -17
  32. package/dist/cjs/components/SectionLabel/SectionLabel.js.map +1 -1
  33. package/dist/cjs/components/SectionLabel/SectionLabel.styled.js +4 -4
  34. package/dist/cjs/components/SectionLabel/SectionLabel.styled.js.map +1 -1
  35. package/dist/cjs/components/Spinner/Spinner.js +10 -7
  36. package/dist/cjs/components/Spinner/Spinner.js.map +1 -1
  37. package/dist/cjs/components/Spinner/Spinner.styled.js +1 -1
  38. package/dist/cjs/components/Spinner/Spinner.types.js.map +1 -1
  39. package/dist/cjs/components/Stack/Stack/Stack.styled.js +1 -1
  40. package/dist/cjs/components/Status/Status.styled.js +1 -1
  41. package/dist/cjs/components/TagBadge/Badge/Badge.js +9 -8
  42. package/dist/cjs/components/TagBadge/Badge/Badge.js.map +1 -1
  43. package/dist/cjs/components/TagBadge/Tag/Tag.js +4 -3
  44. package/dist/cjs/components/TagBadge/Tag/Tag.js.map +1 -1
  45. package/dist/cjs/components/Text/Text.styled.js +1 -1
  46. package/dist/cjs/components/Toast/Toast.types.js +2 -1
  47. package/dist/cjs/components/Toast/Toast.types.js.map +1 -1
  48. package/dist/cjs/components/Toast/ToastElement.js +5 -6
  49. package/dist/cjs/components/Toast/ToastElement.js.map +1 -1
  50. package/dist/cjs/components/Toast/ToastProvider.js +2 -2
  51. package/dist/cjs/components/Toast/ToastProvider.js.map +1 -1
  52. package/dist/cjs/components/Toast/utils.js +6 -5
  53. package/dist/cjs/components/Toast/utils.js.map +1 -1
  54. package/dist/cjs/components/Tooltip/Tooltip.js +211 -83
  55. package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
  56. package/dist/cjs/components/Tooltip/Tooltip.styled.js +96 -25
  57. package/dist/cjs/components/Tooltip/Tooltip.styled.js.map +1 -1
  58. package/dist/cjs/components/Tooltip/Tooltip.types.js +3 -0
  59. package/dist/cjs/components/Tooltip/Tooltip.types.js.map +1 -1
  60. package/dist/cjs/foundation/FoundationStyledComponent.js +16 -1
  61. package/dist/cjs/foundation/FoundationStyledComponent.js.map +1 -1
  62. package/dist/cjs/index.js +15 -10
  63. package/dist/cjs/index.js.map +1 -1
  64. package/dist/cjs/node_modules/@floating-ui/core/dist/floating-ui.core.js +886 -0
  65. package/dist/cjs/node_modules/@floating-ui/core/dist/floating-ui.core.js.map +1 -0
  66. package/dist/cjs/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +691 -0
  67. package/dist/cjs/node_modules/@floating-ui/dom/dist/floating-ui.dom.js.map +1 -0
  68. package/dist/cjs/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.esm.js +296 -0
  69. package/dist/cjs/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.esm.js.map +1 -0
  70. package/dist/cjs/node_modules/@radix-ui/react-popper/dist/index.js +265 -0
  71. package/dist/cjs/node_modules/@radix-ui/react-popper/dist/index.js.map +1 -0
  72. package/dist/cjs/node_modules/@radix-ui/react-slider/dist/index.js +21 -21
  73. package/dist/cjs/node_modules/@radix-ui/react-tooltip/dist/index.js +521 -0
  74. package/dist/cjs/node_modules/@radix-ui/react-tooltip/dist/index.js.map +1 -0
  75. package/dist/cjs/providers/BezierProvider.js +3 -2
  76. package/dist/cjs/providers/BezierProvider.js.map +1 -1
  77. package/dist/esm/components/Forms/Slider/Slider.mjs +76 -53
  78. package/dist/esm/components/Forms/Slider/Slider.mjs.map +1 -1
  79. package/dist/esm/components/Forms/Slider/Slider.styled.mjs +22 -82
  80. package/dist/esm/components/Forms/Slider/Slider.styled.mjs.map +1 -1
  81. package/dist/esm/components/Help/Help.mjs +11 -8
  82. package/dist/esm/components/Help/Help.mjs.map +1 -1
  83. package/dist/esm/components/Help/Help.styled.mjs +4 -5
  84. package/dist/esm/components/Help/Help.styled.mjs.map +1 -1
  85. package/dist/esm/components/KeyValueListItem/common/ItemActions/ItemAction.mjs +3 -10
  86. package/dist/esm/components/KeyValueListItem/common/ItemActions/ItemAction.mjs.map +1 -1
  87. package/dist/esm/components/KeyValueListItem/common/ItemActions/ItemAction.styled.mjs +4 -19
  88. package/dist/esm/components/KeyValueListItem/common/ItemActions/ItemAction.styled.mjs.map +1 -1
  89. package/dist/esm/components/LegacyTooltip/LegacyTooltip.mjs +97 -0
  90. package/dist/esm/components/LegacyTooltip/LegacyTooltip.mjs.map +1 -0
  91. package/dist/esm/components/LegacyTooltip/LegacyTooltip.styled.mjs +36 -0
  92. package/dist/esm/components/LegacyTooltip/LegacyTooltip.styled.mjs.map +1 -0
  93. package/dist/esm/components/LegacyTooltip/LegacyTooltip.types.mjs +18 -0
  94. package/dist/esm/components/LegacyTooltip/LegacyTooltip.types.mjs.map +1 -0
  95. package/dist/esm/components/{Tooltip/TooltipContent.mjs → LegacyTooltip/LegacyTooltipContent.mjs} +8 -9
  96. package/dist/esm/components/LegacyTooltip/LegacyTooltipContent.mjs.map +1 -0
  97. package/dist/esm/components/{Tooltip → LegacyTooltip}/utils.mjs +33 -33
  98. package/dist/esm/components/LegacyTooltip/utils.mjs.map +1 -0
  99. package/dist/esm/components/ListItem/ListItem.styled.mjs +1 -1
  100. package/dist/esm/components/ListMenuTitle/ListMenuTitle.mjs +12 -11
  101. package/dist/esm/components/ListMenuTitle/ListMenuTitle.mjs.map +1 -1
  102. package/dist/esm/components/Modals/Modal/Modal.types.mjs.map +1 -1
  103. package/dist/esm/components/Navigator/NavGroup/NavGroup.mjs +11 -12
  104. package/dist/esm/components/Navigator/NavGroup/NavGroup.mjs.map +1 -1
  105. package/dist/esm/components/Navigator/NavItem/NavItem.mjs +11 -11
  106. package/dist/esm/components/Navigator/NavItem/NavItem.mjs.map +1 -1
  107. package/dist/esm/components/Overlay/Overlay.mjs +2 -2
  108. package/dist/esm/components/Overlay/Overlay.mjs.map +1 -1
  109. package/dist/esm/components/SectionLabel/SectionLabel.mjs +11 -17
  110. package/dist/esm/components/SectionLabel/SectionLabel.mjs.map +1 -1
  111. package/dist/esm/components/SectionLabel/SectionLabel.styled.mjs +4 -4
  112. package/dist/esm/components/SectionLabel/SectionLabel.styled.mjs.map +1 -1
  113. package/dist/esm/components/Spinner/Spinner.mjs +11 -8
  114. package/dist/esm/components/Spinner/Spinner.mjs.map +1 -1
  115. package/dist/esm/components/Spinner/Spinner.styled.mjs +1 -1
  116. package/dist/esm/components/Spinner/Spinner.types.mjs.map +1 -1
  117. package/dist/esm/components/Stack/Stack/Stack.styled.mjs +1 -1
  118. package/dist/esm/components/Status/Status.styled.mjs +1 -1
  119. package/dist/esm/components/TagBadge/Badge/Badge.mjs +10 -9
  120. package/dist/esm/components/TagBadge/Badge/Badge.mjs.map +1 -1
  121. package/dist/esm/components/TagBadge/Tag/Tag.mjs +5 -4
  122. package/dist/esm/components/TagBadge/Tag/Tag.mjs.map +1 -1
  123. package/dist/esm/components/Text/Text.styled.mjs +1 -1
  124. package/dist/esm/components/Toast/Toast.types.mjs +2 -1
  125. package/dist/esm/components/Toast/Toast.types.mjs.map +1 -1
  126. package/dist/esm/components/Toast/ToastElement.mjs +5 -6
  127. package/dist/esm/components/Toast/ToastElement.mjs.map +1 -1
  128. package/dist/esm/components/Toast/ToastProvider.mjs +2 -2
  129. package/dist/esm/components/Toast/ToastProvider.mjs.map +1 -1
  130. package/dist/esm/components/Toast/utils.mjs +6 -5
  131. package/dist/esm/components/Toast/utils.mjs.map +1 -1
  132. package/dist/esm/components/Tooltip/Tooltip.mjs +213 -82
  133. package/dist/esm/components/Tooltip/Tooltip.mjs.map +1 -1
  134. package/dist/esm/components/Tooltip/Tooltip.styled.mjs +93 -23
  135. package/dist/esm/components/Tooltip/Tooltip.styled.mjs.map +1 -1
  136. package/dist/esm/components/Tooltip/Tooltip.types.mjs +3 -0
  137. package/dist/esm/components/Tooltip/Tooltip.types.mjs.map +1 -1
  138. package/dist/esm/foundation/FoundationStyledComponent.mjs +16 -1
  139. package/dist/esm/foundation/FoundationStyledComponent.mjs.map +1 -1
  140. package/dist/esm/index.mjs +7 -5
  141. package/dist/esm/index.mjs.map +1 -1
  142. package/dist/esm/node_modules/@floating-ui/core/dist/floating-ui.core.mjs +875 -0
  143. package/dist/esm/node_modules/@floating-ui/core/dist/floating-ui.core.mjs.map +1 -0
  144. package/dist/esm/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs +679 -0
  145. package/dist/esm/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs.map +1 -0
  146. package/dist/esm/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.esm.mjs +265 -0
  147. package/dist/esm/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.esm.mjs.map +1 -0
  148. package/dist/esm/node_modules/@radix-ui/react-popper/dist/index.mjs +257 -0
  149. package/dist/esm/node_modules/@radix-ui/react-popper/dist/index.mjs.map +1 -0
  150. package/dist/esm/node_modules/@radix-ui/react-portal/dist/index.mjs +2 -2
  151. package/dist/esm/node_modules/@radix-ui/react-slider/dist/index.mjs +1 -1
  152. package/dist/esm/node_modules/@radix-ui/react-tooltip/dist/index.mjs +509 -0
  153. package/dist/esm/node_modules/@radix-ui/react-tooltip/dist/index.mjs.map +1 -0
  154. package/dist/esm/providers/BezierProvider.mjs +3 -2
  155. package/dist/esm/providers/BezierProvider.mjs.map +1 -1
  156. package/dist/types/components/Forms/Slider/Slider.d.ts +18 -2
  157. package/dist/types/components/Forms/Slider/Slider.d.ts.map +1 -1
  158. package/dist/types/components/Forms/Slider/Slider.styled.d.ts +14 -24
  159. package/dist/types/components/Forms/Slider/Slider.styled.d.ts.map +1 -1
  160. package/dist/types/components/Forms/Slider/Slider.types.d.ts +52 -13
  161. package/dist/types/components/Forms/Slider/Slider.types.d.ts.map +1 -1
  162. package/dist/types/components/Help/Help.d.ts +1 -4
  163. package/dist/types/components/Help/Help.d.ts.map +1 -1
  164. package/dist/types/components/Help/Help.styled.d.ts +1 -1
  165. package/dist/types/components/Help/Help.styled.d.ts.map +1 -1
  166. package/dist/types/components/Help/Help.types.d.ts +1 -1
  167. package/dist/types/components/Help/Help.types.d.ts.map +1 -1
  168. package/dist/types/components/KeyValueListItem/common/ItemActions/ItemAction.d.ts.map +1 -1
  169. package/dist/types/components/KeyValueListItem/common/ItemActions/ItemAction.styled.d.ts +1 -7
  170. package/dist/types/components/KeyValueListItem/common/ItemActions/ItemAction.styled.d.ts.map +1 -1
  171. package/dist/types/components/KeyValueListItem/common/ItemActions/ItemAction.types.d.ts +3 -3
  172. package/dist/types/components/KeyValueListItem/common/ItemActions/ItemAction.types.d.ts.map +1 -1
  173. package/dist/types/components/KeyValueListItem/common/KeyItem/KeyItem.types.d.ts +2 -2
  174. package/dist/types/components/KeyValueListItem/common/KeyItem/KeyItem.types.d.ts.map +1 -1
  175. package/dist/types/components/LegacyTooltip/LegacyTooltip.d.ts +6 -0
  176. package/dist/types/components/LegacyTooltip/LegacyTooltip.d.ts.map +1 -0
  177. package/dist/types/components/LegacyTooltip/LegacyTooltip.styled.d.ts +18 -0
  178. package/dist/types/components/LegacyTooltip/LegacyTooltip.styled.d.ts.map +1 -0
  179. package/dist/types/components/LegacyTooltip/LegacyTooltip.types.d.ts +40 -0
  180. package/dist/types/components/LegacyTooltip/LegacyTooltip.types.d.ts.map +1 -0
  181. package/dist/types/components/LegacyTooltip/LegacyTooltipContent.d.ts +4 -0
  182. package/dist/types/components/LegacyTooltip/LegacyTooltipContent.d.ts.map +1 -0
  183. package/dist/types/components/LegacyTooltip/index.d.ts +4 -0
  184. package/dist/types/components/LegacyTooltip/index.d.ts.map +1 -0
  185. package/dist/types/components/{Tooltip → LegacyTooltip}/utils.d.ts +2 -2
  186. package/dist/types/components/LegacyTooltip/utils.d.ts.map +1 -0
  187. package/dist/types/components/ListMenuTitle/ListMenuTitle.d.ts +1 -1
  188. package/dist/types/components/ListMenuTitle/ListMenuTitle.d.ts.map +1 -1
  189. package/dist/types/components/ListMenuTitle/ListMenuTitle.types.d.ts +1 -2
  190. package/dist/types/components/ListMenuTitle/ListMenuTitle.types.d.ts.map +1 -1
  191. package/dist/types/components/Modals/Modal/Modal.types.d.ts +2 -2
  192. package/dist/types/components/Modals/Modal/Modal.types.d.ts.map +1 -1
  193. package/dist/types/components/Navigator/NavGroup/NavGroup.d.ts +1 -2
  194. package/dist/types/components/Navigator/NavGroup/NavGroup.d.ts.map +1 -1
  195. package/dist/types/components/Navigator/NavGroup/NavGroup.types.d.ts +3 -3
  196. package/dist/types/components/Navigator/NavGroup/NavGroup.types.d.ts.map +1 -1
  197. package/dist/types/components/Navigator/NavItem/NavItem.d.ts +1 -2
  198. package/dist/types/components/Navigator/NavItem/NavItem.d.ts.map +1 -1
  199. package/dist/types/components/Navigator/NavItem/NavItem.types.d.ts +3 -3
  200. package/dist/types/components/Navigator/NavItem/NavItem.types.d.ts.map +1 -1
  201. package/dist/types/components/SectionLabel/SectionLabel.d.ts +1 -2
  202. package/dist/types/components/SectionLabel/SectionLabel.d.ts.map +1 -1
  203. package/dist/types/components/SectionLabel/SectionLabel.styled.d.ts +1 -1
  204. package/dist/types/components/SectionLabel/SectionLabel.styled.d.ts.map +1 -1
  205. package/dist/types/components/SectionLabel/SectionLabel.types.d.ts +2 -7
  206. package/dist/types/components/SectionLabel/SectionLabel.types.d.ts.map +1 -1
  207. package/dist/types/components/Spinner/Spinner.d.ts +1 -1
  208. package/dist/types/components/Spinner/Spinner.d.ts.map +1 -1
  209. package/dist/types/components/Spinner/Spinner.types.d.ts +2 -1
  210. package/dist/types/components/Spinner/Spinner.types.d.ts.map +1 -1
  211. package/dist/types/components/TagBadge/Badge/Badge.d.ts +1 -1
  212. package/dist/types/components/TagBadge/Badge/Badge.d.ts.map +1 -1
  213. package/dist/types/components/TagBadge/Badge/Badge.types.d.ts +2 -2
  214. package/dist/types/components/TagBadge/Badge/Badge.types.d.ts.map +1 -1
  215. package/dist/types/components/TagBadge/Tag/Tag.d.ts +1 -1
  216. package/dist/types/components/TagBadge/Tag/Tag.d.ts.map +1 -1
  217. package/dist/types/components/Toast/Toast.types.d.ts +4 -4
  218. package/dist/types/components/Toast/Toast.types.d.ts.map +1 -1
  219. package/dist/types/components/Toast/ToastElement.d.ts.map +1 -1
  220. package/dist/types/components/Toast/utils.d.ts.map +1 -1
  221. package/dist/types/components/Tooltip/Tooltip.d.ts +31 -5
  222. package/dist/types/components/Tooltip/Tooltip.d.ts.map +1 -1
  223. package/dist/types/components/Tooltip/Tooltip.styled.d.ts +22 -12
  224. package/dist/types/components/Tooltip/Tooltip.styled.d.ts.map +1 -1
  225. package/dist/types/components/Tooltip/Tooltip.types.d.ts +105 -24
  226. package/dist/types/components/Tooltip/Tooltip.types.d.ts.map +1 -1
  227. package/dist/types/components/Tooltip/index.d.ts +3 -5
  228. package/dist/types/components/Tooltip/index.d.ts.map +1 -1
  229. package/dist/types/components/VisuallyHidden/VisuallyHidden.types.d.ts +2 -1
  230. package/dist/types/components/VisuallyHidden/VisuallyHidden.types.d.ts.map +1 -1
  231. package/dist/types/foundation/FoundationStyledComponent.d.ts.map +1 -1
  232. package/dist/types/index.d.ts +1 -0
  233. package/dist/types/index.d.ts.map +1 -1
  234. package/dist/types/providers/BezierProvider.d.ts.map +1 -1
  235. package/package.json +3 -2
  236. package/src/components/Avatars/AvatarGroup/__snapshots__/AvatarGroup.test.tsx.snap +17 -17
  237. package/src/components/Button/__snapshots__/Button.test.tsx.snap +15 -15
  238. package/src/components/Forms/FormControl/__snapshots__/FormControl.test.tsx.snap +119 -119
  239. package/src/components/Forms/Slider/Slider.stories.tsx +10 -63
  240. package/src/components/Forms/Slider/Slider.styled.ts +46 -95
  241. package/src/components/Forms/Slider/Slider.test.tsx +130 -97
  242. package/src/components/Forms/Slider/Slider.tsx +117 -96
  243. package/src/components/Forms/Slider/Slider.types.ts +55 -17
  244. package/src/components/Forms/Slider/__snapshots__/Slider.test.tsx.snap +156 -0
  245. package/src/components/Help/Help.styled.ts +4 -7
  246. package/src/components/Help/Help.tsx +19 -12
  247. package/src/components/Help/Help.types.ts +1 -1
  248. package/src/components/KeyValueListItem/KeyValueListItem.test.tsx +10 -6
  249. package/src/components/KeyValueListItem/__snapshots__/KeyValueListItem.test.tsx.snap +13 -13
  250. package/src/components/KeyValueListItem/common/ItemActions/ItemAction.styled.ts +5 -15
  251. package/src/components/KeyValueListItem/common/ItemActions/ItemAction.tsx +6 -13
  252. package/src/components/KeyValueListItem/common/ItemActions/ItemAction.types.ts +3 -6
  253. package/src/components/KeyValueListItem/common/KeyItem/KeyItem.types.ts +2 -5
  254. package/src/components/LegacyTooltip/LegacyTooltip.stories.tsx +105 -0
  255. package/src/components/LegacyTooltip/LegacyTooltip.styled.ts +46 -0
  256. package/src/components/LegacyTooltip/LegacyTooltip.test.tsx +100 -0
  257. package/src/components/LegacyTooltip/LegacyTooltip.tsx +152 -0
  258. package/src/components/LegacyTooltip/LegacyTooltip.types.ts +69 -0
  259. package/src/components/{Tooltip/TooltipContent.test.tsx → LegacyTooltip/LegacyTooltipContent.test.tsx} +9 -8
  260. package/src/components/{Tooltip/TooltipContent.tsx → LegacyTooltip/LegacyTooltipContent.tsx} +6 -7
  261. package/src/components/LegacyTooltip/index.ts +5 -0
  262. package/src/components/{Tooltip → LegacyTooltip}/utils.ts +35 -35
  263. package/src/components/ListMenuTitle/ListMenuTitle.tsx +10 -6
  264. package/src/components/ListMenuTitle/ListMenuTitle.types.ts +1 -1
  265. package/src/components/Modals/Modal/Modal.types.ts +2 -2
  266. package/src/components/Navigator/NavGroup/NavGroup.stories.tsx +5 -2
  267. package/src/components/Navigator/NavGroup/NavGroup.test.tsx +1 -1
  268. package/src/components/Navigator/NavGroup/NavGroup.tsx +13 -16
  269. package/src/components/Navigator/NavGroup/NavGroup.types.ts +3 -2
  270. package/src/components/Navigator/NavItem/NavItem.test.tsx +3 -1
  271. package/src/components/Navigator/NavItem/NavItem.tsx +13 -12
  272. package/src/components/Navigator/NavItem/NavItem.types.ts +3 -2
  273. package/src/components/SectionLabel/SectionLabel.stories.tsx +1 -1
  274. package/src/components/SectionLabel/SectionLabel.styled.ts +2 -4
  275. package/src/components/SectionLabel/SectionLabel.test.tsx +5 -25
  276. package/src/components/SectionLabel/SectionLabel.tsx +11 -17
  277. package/src/components/SectionLabel/SectionLabel.types.ts +2 -8
  278. package/src/components/Spinner/Spinner.tsx +7 -4
  279. package/src/components/Spinner/Spinner.types.ts +2 -1
  280. package/src/components/TagBadge/Badge/Badge.stories.tsx +2 -1
  281. package/src/components/TagBadge/Badge/Badge.tsx +15 -10
  282. package/src/components/TagBadge/Badge/Badge.types.ts +2 -2
  283. package/src/components/TagBadge/Tag/Tag.tsx +9 -4
  284. package/src/components/TagBadge/TagBadge.mdx +1 -1
  285. package/src/components/TagBadge/TagBadge.stories.tsx +48 -33
  286. package/src/components/Toast/Toast.stories.tsx +9 -8
  287. package/src/components/Toast/Toast.types.ts +8 -5
  288. package/src/components/Toast/ToastElement.tsx +4 -5
  289. package/src/components/Toast/ToastProvider.tsx +2 -2
  290. package/src/components/Toast/ToastService.test.ts +3 -1
  291. package/src/components/Toast/useToastContextValues.test.tsx +5 -4
  292. package/src/components/Toast/utils.ts +13 -5
  293. package/src/components/Tooltip/Tooltip.stories.tsx +28 -67
  294. package/src/components/Tooltip/Tooltip.styled.ts +109 -19
  295. package/src/components/Tooltip/Tooltip.test.tsx +136 -63
  296. package/src/components/Tooltip/Tooltip.tsx +262 -120
  297. package/src/components/Tooltip/Tooltip.types.ts +111 -47
  298. package/src/components/Tooltip/index.ts +8 -8
  299. package/src/components/VisuallyHidden/VisuallyHidden.types.ts +1 -1
  300. package/src/foundation/FoundationStyledComponent.tsx +17 -1
  301. package/src/index.ts +1 -0
  302. package/src/providers/BezierProvider.tsx +10 -6
  303. package/dist/cjs/components/Tooltip/TooltipContent.js.map +0 -1
  304. package/dist/cjs/components/Tooltip/utils.js.map +0 -1
  305. package/dist/esm/components/Tooltip/TooltipContent.mjs.map +0 -1
  306. package/dist/esm/components/Tooltip/utils.mjs.map +0 -1
  307. package/dist/types/components/Tooltip/TooltipContent.d.ts +0 -5
  308. package/dist/types/components/Tooltip/TooltipContent.d.ts.map +0 -1
  309. package/dist/types/components/Tooltip/utils.d.ts.map +0 -1
  310. /package/src/components/{Tooltip/__snapshots__/Tooltip.test.tsx.snap → LegacyTooltip/__snapshots__/LegacyTooltip.test.tsx.snap} +0 -0
@@ -0,0 +1,152 @@
1
+ import React, {
2
+ type Ref,
3
+ forwardRef,
4
+ memo,
5
+ useCallback,
6
+ useEffect,
7
+ useMemo,
8
+ useRef,
9
+ useState,
10
+ } from 'react'
11
+
12
+ import { window } from '~/src/utils/domUtils'
13
+
14
+ import { type LegacyTooltipProps } from './LegacyTooltip.types'
15
+ import { LegacyTooltipPosition } from './LegacyTooltip.types'
16
+ import { LegacyTooltipContent } from './LegacyTooltipContent'
17
+
18
+ import { Container } from './LegacyTooltip.styled'
19
+
20
+ export const TOOLTIP_TEST_ID = 'bezier-react-tooltip'
21
+ export const TOOLTIP_CONTENT_TEST_ID = 'bezier-react-tooltip-content'
22
+
23
+ export const LegacyTooltip = memo(forwardRef(function LegacyTooltip(
24
+ {
25
+ as,
26
+ testId = TOOLTIP_TEST_ID,
27
+ contentTestId = TOOLTIP_CONTENT_TEST_ID,
28
+ className,
29
+ contentClassName,
30
+ contentInterpolation,
31
+ contentWrapperStyle,
32
+ content = null,
33
+ lazy = false, // optional prop 에서 추후 default behavior 를 lazy 하게 바꿀 예정
34
+ placement = LegacyTooltipPosition.BottomCenter,
35
+ disabled = false,
36
+ offset = 4,
37
+ keepInContainer = false,
38
+ allowHover = false,
39
+ delayShow = 0,
40
+ delayHide = 0,
41
+ children,
42
+ ...otherProps
43
+ }: LegacyTooltipProps,
44
+ forwardedRef: Ref<any>,
45
+ ) {
46
+ const [show, setShow] = useState(false)
47
+ const [didMount, setDidMount] = useState(show)
48
+
49
+ const tooltipContainerRef = useRef<HTMLDivElement>(null)
50
+ const timerRef = useRef<ReturnType<Window['setTimeout']>>()
51
+
52
+ useEffect(function hideTooltipContentWhenDisabled() {
53
+ if (disabled) {
54
+ setShow(false)
55
+ }
56
+ }, [disabled])
57
+
58
+ useEffect(function updateDidMount() {
59
+ setDidMount((prev) => prev || show)
60
+ }, [show])
61
+
62
+ const handleMouseEnter = useCallback(() => {
63
+ if (disabled) {
64
+ return
65
+ }
66
+
67
+ if (timerRef.current) {
68
+ clearTimeout(timerRef.current)
69
+ }
70
+
71
+ timerRef.current = window.setTimeout(() => {
72
+ setShow(true)
73
+ }, delayShow)
74
+ }, [
75
+ delayShow,
76
+ disabled,
77
+ ])
78
+
79
+ const handleMouseLeave = useCallback(() => {
80
+ if (disabled) {
81
+ return
82
+ }
83
+
84
+ if (timerRef.current) {
85
+ clearTimeout(timerRef.current)
86
+ }
87
+
88
+ timerRef.current = window.setTimeout(() => {
89
+ setShow(false)
90
+ }, delayHide)
91
+ }, [
92
+ delayHide,
93
+ disabled,
94
+ ])
95
+
96
+ const TooltipComponent = useMemo(() => {
97
+ if (!lazy || didMount) {
98
+ return (
99
+ <LegacyTooltipContent
100
+ as={as}
101
+ content={content}
102
+ contentClassName={contentClassName}
103
+ contentInterpolation={contentInterpolation}
104
+ contentWrapperStyle={contentWrapperStyle}
105
+ disabled={disabled}
106
+ placement={placement}
107
+ offset={offset}
108
+ allowHover={allowHover}
109
+ keepInContainer={keepInContainer}
110
+ tooltipContainer={tooltipContainerRef.current}
111
+ forwardedRef={forwardedRef}
112
+ testId={contentTestId}
113
+ />
114
+ )
115
+ }
116
+
117
+ return null
118
+ }, [
119
+ lazy,
120
+ didMount,
121
+ as,
122
+ content,
123
+ contentClassName,
124
+ contentInterpolation,
125
+ contentWrapperStyle,
126
+ disabled,
127
+ placement,
128
+ offset,
129
+ allowHover,
130
+ keepInContainer,
131
+ forwardedRef,
132
+ contentTestId,
133
+ ])
134
+
135
+ if (!children) {
136
+ return null
137
+ }
138
+
139
+ return (
140
+ <Container
141
+ ref={tooltipContainerRef}
142
+ data-testid={testId}
143
+ className={className}
144
+ onMouseEnter={handleMouseEnter}
145
+ onMouseLeave={handleMouseLeave}
146
+ {...otherProps}
147
+ >
148
+ { children }
149
+ { show && TooltipComponent }
150
+ </Container>
151
+ )
152
+ }))
@@ -0,0 +1,69 @@
1
+ import { type Ref } from 'react'
2
+
3
+ import {
4
+ type AdditionalStylableProps,
5
+ type BezierComponentProps,
6
+ type ChildrenProps,
7
+ type ContentProps,
8
+ type DisableProps,
9
+ type RenderConfigProps,
10
+ } from '~/src/types/ComponentProps'
11
+
12
+ interface LegacyTooltipOptions {
13
+ placement?: LegacyTooltipPosition
14
+ offset?: number
15
+ keepInContainer?: boolean
16
+ allowHover?: boolean
17
+ delayShow?: number
18
+ delayHide?: number
19
+ contentTestId?: string
20
+ lazy?: boolean
21
+ }
22
+
23
+ export interface LegacyTooltipProps extends
24
+ BezierComponentProps,
25
+ ChildrenProps,
26
+ ContentProps,
27
+ DisableProps,
28
+ AdditionalStylableProps<'content' | 'contentWrapper'>,
29
+ Omit<React.HTMLAttributes<HTMLDivElement>, keyof ContentProps>,
30
+ LegacyTooltipOptions {
31
+ }
32
+
33
+ export interface LegacyTooltipContentProps extends Pick<
34
+ LegacyTooltipOptions,
35
+ 'keepInContainer' |
36
+ 'placement' |
37
+ 'offset' |
38
+ 'allowHover'
39
+ >,
40
+ RenderConfigProps,
41
+ ContentProps,
42
+ AdditionalStylableProps<'content' | 'contentWrapper'>,
43
+ DisableProps {
44
+ tooltipContainer: HTMLDivElement | null
45
+ forwardedRef: Ref<HTMLDivElement>
46
+ }
47
+
48
+ export interface GetTooltipStyle extends Required<Pick<LegacyTooltipOptions, 'placement' | 'offset' | 'allowHover'>> {
49
+ tooltipContainer: HTMLDivElement
50
+ }
51
+
52
+ export interface GetReplacement extends Required<Pick<LegacyTooltipOptions, 'placement' | 'keepInContainer'>> {
53
+ tooltip: HTMLDivElement
54
+ }
55
+
56
+ export enum LegacyTooltipPosition {
57
+ TopCenter = 'topCenter',
58
+ TopLeft = 'topLeft',
59
+ TopRight = 'topRight',
60
+ RightCenter = 'rightCenter',
61
+ RightTop = 'rightTop',
62
+ RightBottom = 'rightBottom',
63
+ BottomCenter = 'bottomCenter',
64
+ BottomLeft = 'bottomLeft',
65
+ BottomRight = 'bottomRight',
66
+ LeftCenter = 'leftCenter',
67
+ LeftTop = 'leftTop',
68
+ LeftBottom = 'leftBottom',
69
+ }
@@ -5,20 +5,21 @@ import { act } from '@testing-library/react'
5
5
 
6
6
  import { render } from '~/src/utils/testUtils'
7
7
 
8
- import Tooltip, {
8
+ import {
9
+ LegacyTooltip,
9
10
  TOOLTIP_CONTENT_TEST_ID,
10
11
  TOOLTIP_TEST_ID,
11
- } from './Tooltip'
12
- import type TooltipProps from './Tooltip.types'
12
+ } from './LegacyTooltip'
13
+ import { type LegacyTooltipProps } from './LegacyTooltip.types'
13
14
 
14
- const RootTooltip: React.FC<TooltipProps> = ({ children, ...rests }) => (
15
- <Tooltip {...rests}>
15
+ const RootTooltip: React.FC<LegacyTooltipProps> = ({ children, ...rests }) => (
16
+ <LegacyTooltip {...rests}>
16
17
  { children }
17
- </Tooltip>
18
+ </LegacyTooltip>
18
19
  )
19
20
 
20
21
  describe('TooltipContent test >', () => {
21
- let props: TooltipProps
22
+ let props: LegacyTooltipProps
22
23
 
23
24
  const PLAIN_TEXT_CONTENT = 'plain text content'
24
25
 
@@ -44,7 +45,7 @@ describe('TooltipContent test >', () => {
44
45
  jest.useRealTimers()
45
46
  })
46
47
 
47
- const renderTooltip = (optionProps?: TooltipProps) => render(
48
+ const renderTooltip = (optionProps?: LegacyTooltipProps) => render(
48
49
  <RootTooltip {...props} {...optionProps} />,
49
50
  )
50
51
 
@@ -22,9 +22,9 @@ import {
22
22
  import { Text } from '~/src/components/Text'
23
23
 
24
24
  import {
25
- type TooltipContentProps,
26
- TooltipPosition,
27
- } from './Tooltip.types'
25
+ type LegacyTooltipContentProps,
26
+ LegacyTooltipPosition,
27
+ } from './LegacyTooltip.types'
28
28
  import {
29
29
  getReplacement,
30
30
  getTooltipStyle,
@@ -34,7 +34,7 @@ import {
34
34
  Content,
35
35
  ContentWrapper,
36
36
  EllipsisableContent,
37
- } from './Tooltip.styled'
37
+ } from './LegacyTooltip.styled'
38
38
 
39
39
  function getNewLineComponent(strContent: string) {
40
40
  return (
@@ -77,7 +77,7 @@ function getContentComponent(content?: React.ReactNode) {
77
77
  return content
78
78
  }
79
79
 
80
- const TooltipContent: React.FC<TooltipContentProps> = ({
80
+ export const LegacyTooltipContent: React.FC<LegacyTooltipContentProps> = ({
81
81
  as,
82
82
  content,
83
83
  contentClassName,
@@ -85,7 +85,7 @@ const TooltipContent: React.FC<TooltipContentProps> = ({
85
85
  contentWrapperStyle: givenContentWrapperStyle,
86
86
  disabled = false,
87
87
  keepInContainer = false,
88
- placement = TooltipPosition.BottomCenter,
88
+ placement = LegacyTooltipPosition.BottomCenter,
89
89
  tooltipContainer,
90
90
  offset = 4,
91
91
  allowHover = false,
@@ -164,4 +164,3 @@ const TooltipContent: React.FC<TooltipContentProps> = ({
164
164
  )
165
165
  }
166
166
 
167
- export default TooltipContent
@@ -0,0 +1,5 @@
1
+ export { LegacyTooltip } from './LegacyTooltip'
2
+
3
+ export { LegacyTooltipPosition } from './LegacyTooltip.types'
4
+
5
+ export type { LegacyTooltipProps } from './LegacyTooltip.types'
@@ -3,14 +3,14 @@ import { getRootElement } from '~/src/utils/domUtils'
3
3
  import {
4
4
  type GetReplacement,
5
5
  type GetTooltipStyle,
6
- TooltipPosition,
7
- } from './Tooltip.types'
6
+ LegacyTooltipPosition,
7
+ } from './LegacyTooltip.types'
8
8
 
9
9
  export function getReplacement({
10
10
  tooltip,
11
11
  keepInContainer,
12
12
  placement,
13
- }: GetReplacement): TooltipPosition {
13
+ }: GetReplacement): LegacyTooltipPosition {
14
14
  if (!keepInContainer) {
15
15
  return placement
16
16
  }
@@ -36,42 +36,42 @@ export function getReplacement({
36
36
 
37
37
  if (isOverTop) {
38
38
  if (isOverLeft) {
39
- return TooltipPosition.BottomLeft
39
+ return LegacyTooltipPosition.BottomLeft
40
40
  }
41
41
  if (isOverRight) {
42
- return TooltipPosition.BottomRight
42
+ return LegacyTooltipPosition.BottomRight
43
43
  }
44
- return TooltipPosition.BottomCenter
44
+ return LegacyTooltipPosition.BottomCenter
45
45
  }
46
46
 
47
47
  if (isOverBottom) {
48
48
  if (isOverLeft) {
49
- return TooltipPosition.TopLeft
49
+ return LegacyTooltipPosition.TopLeft
50
50
  }
51
51
  if (isOverRight) {
52
- return TooltipPosition.TopRight
52
+ return LegacyTooltipPosition.TopRight
53
53
  }
54
- return TooltipPosition.TopCenter
54
+ return LegacyTooltipPosition.TopCenter
55
55
  }
56
56
 
57
57
  if (isOverLeft) {
58
58
  if (isOverTop) {
59
- return TooltipPosition.RightTop
59
+ return LegacyTooltipPosition.RightTop
60
60
  }
61
61
  if (isOverBottom) {
62
- return TooltipPosition.RightBottom
62
+ return LegacyTooltipPosition.RightBottom
63
63
  }
64
- return TooltipPosition.RightCenter
64
+ return LegacyTooltipPosition.RightCenter
65
65
  }
66
66
 
67
67
  if (isOverRight) {
68
68
  if (isOverTop) {
69
- return TooltipPosition.LeftTop
69
+ return LegacyTooltipPosition.LeftTop
70
70
  }
71
71
  if (isOverBottom) {
72
- return TooltipPosition.LeftBottom
72
+ return LegacyTooltipPosition.LeftBottom
73
73
  }
74
- return TooltipPosition.LeftCenter
74
+ return LegacyTooltipPosition.LeftCenter
75
75
  }
76
76
 
77
77
  return placement
@@ -102,50 +102,50 @@ export function getTooltipStyle({
102
102
  let offsetStyle = {}
103
103
 
104
104
  switch (placement) {
105
- case TooltipPosition.TopCenter:
106
- case TooltipPosition.TopLeft:
107
- case TooltipPosition.TopRight:
105
+ case LegacyTooltipPosition.TopCenter:
106
+ case LegacyTooltipPosition.TopLeft:
107
+ case LegacyTooltipPosition.TopRight:
108
108
  translateY = -100
109
109
  offsetBottom = offset
110
110
  break
111
- case TooltipPosition.RightCenter:
112
- case TooltipPosition.RightTop:
113
- case TooltipPosition.RightBottom:
111
+ case LegacyTooltipPosition.RightCenter:
112
+ case LegacyTooltipPosition.RightTop:
113
+ case LegacyTooltipPosition.RightBottom:
114
114
  left += containerWidth
115
115
  offsetLeft = offset
116
116
  break
117
- case TooltipPosition.BottomCenter:
118
- case TooltipPosition.BottomLeft:
119
- case TooltipPosition.BottomRight:
117
+ case LegacyTooltipPosition.BottomCenter:
118
+ case LegacyTooltipPosition.BottomLeft:
119
+ case LegacyTooltipPosition.BottomRight:
120
120
  top += containerHeight
121
121
  offsetTop = offset
122
122
  break
123
- case TooltipPosition.LeftCenter:
124
- case TooltipPosition.LeftTop:
125
- case TooltipPosition.LeftBottom:
123
+ case LegacyTooltipPosition.LeftCenter:
124
+ case LegacyTooltipPosition.LeftTop:
125
+ case LegacyTooltipPosition.LeftBottom:
126
126
  translateX = -100
127
127
  offsetRight = offset
128
128
  break
129
129
  }
130
130
 
131
131
  switch (placement) {
132
- case TooltipPosition.TopCenter:
133
- case TooltipPosition.BottomCenter:
132
+ case LegacyTooltipPosition.TopCenter:
133
+ case LegacyTooltipPosition.BottomCenter:
134
134
  translateX = -50
135
135
  left += (containerWidth / 2)
136
136
  break
137
- case TooltipPosition.TopRight:
138
- case TooltipPosition.BottomRight:
137
+ case LegacyTooltipPosition.TopRight:
138
+ case LegacyTooltipPosition.BottomRight:
139
139
  translateX = -100
140
140
  left += containerWidth
141
141
  break
142
- case TooltipPosition.RightCenter:
143
- case TooltipPosition.LeftCenter:
142
+ case LegacyTooltipPosition.RightCenter:
143
+ case LegacyTooltipPosition.LeftCenter:
144
144
  translateY = -50
145
145
  top += (containerHeight / 2)
146
146
  break
147
- case TooltipPosition.RightBottom:
148
- case TooltipPosition.LeftBottom:
147
+ case LegacyTooltipPosition.RightBottom:
148
+ case LegacyTooltipPosition.LeftBottom:
149
149
  translateY = -100
150
150
  top += containerHeight
151
151
  break
@@ -1,4 +1,7 @@
1
- import React, { useCallback } from 'react'
1
+ import React, {
2
+ forwardRef,
3
+ useCallback,
4
+ } from 'react'
2
5
 
3
6
  import { noop } from '~/src/utils/functionUtils'
4
7
  import { isNil } from '~/src/utils/typeUtils'
@@ -12,17 +15,17 @@ import {
12
15
 
13
16
  export const SIDEBAR_MENU_TITLE_TEST_ID = 'bezier-react-sidebar-menu-title'
14
17
 
15
- function ListMenuTitle({
18
+ const ListMenuTitle = forwardRef<HTMLDivElement, ListMenuTitleProps>(function ListMenuTitle({
16
19
  as,
17
20
  testId = SIDEBAR_MENU_TITLE_TEST_ID,
18
21
  content,
19
22
  hide = false,
20
23
  rightAction = null,
21
- onClick = noop,
22
24
  onClickAction = noop,
23
25
  style,
24
26
  className,
25
- }: ListMenuTitleProps) {
27
+ ...rest
28
+ }, forwardedRef) {
26
29
  const handleClickAction = useCallback((ev: React.MouseEvent<HTMLDivElement>) => {
27
30
  ev.stopPropagation()
28
31
  onClickAction()
@@ -34,11 +37,12 @@ function ListMenuTitle({
34
37
 
35
38
  return (
36
39
  <Wrapper
40
+ {...rest}
41
+ ref={forwardedRef}
37
42
  data-testid={testId}
38
43
  as={as}
39
44
  style={style}
40
45
  className={className}
41
- onClick={onClick}
42
46
  >
43
47
  <TitleWrapper>
44
48
  { content }
@@ -54,6 +58,6 @@ function ListMenuTitle({
54
58
  }
55
59
  </Wrapper>
56
60
  )
57
- }
61
+ })
58
62
 
59
63
  export default ListMenuTitle
@@ -8,13 +8,13 @@ import {
8
8
  interface ListMenuTitleOptions {
9
9
  rightAction?: React.ReactNode
10
10
  hide?: boolean
11
- onClick?: React.MouseEventHandler
12
11
  onClickAction?: () => void
13
12
  }
14
13
 
15
14
  export default interface ListMenuTitleProps extends
16
15
  BezierComponentProps,
17
16
  ContentProps,
17
+ Omit<React.HTMLAttributes<HTMLDivElement>, 'content'>,
18
18
  ListMenuTitleOptions {}
19
19
 
20
20
  export interface StyledWrapperProps extends BezierComponentProps {}
@@ -128,10 +128,10 @@ export interface ModalFooterProps extends
128
128
  ModalFooterOptions {}
129
129
 
130
130
  export interface ModalTriggerProps extends
131
- ChildrenProps {}
131
+ ChildrenProps<React.ReactElement> {}
132
132
 
133
133
  export interface ModalCloseProps extends
134
- ChildrenProps {}
134
+ ChildrenProps<React.ReactElement> {}
135
135
 
136
136
  export interface ModalContentContextValue extends
137
137
  NonNullable<Pick<ModalContentOptions, 'showCloseIcon'>> {}
@@ -1,6 +1,9 @@
1
1
  import React from 'react'
2
2
 
3
- import { DotIcon } from '@channel.io/bezier-icons'
3
+ import {
4
+ DotIcon,
5
+ SettingsIcon,
6
+ } from '@channel.io/bezier-icons'
4
7
  import {
5
8
  type Meta,
6
9
  type Story,
@@ -54,6 +57,6 @@ Primary.args = {
54
57
  active: false,
55
58
  name: 'general',
56
59
  content: '일반 설정',
57
- leftIcon: 'settings',
60
+ leftIcon: SettingsIcon,
58
61
  rightContent: <Icon source={DotIcon} size={IconSize.XS} color="bgtxt-orange-normal" />,
59
62
  }
@@ -22,7 +22,7 @@ describe('NavGroup Test >', () => {
22
22
 
23
23
  beforeEach(() => {
24
24
  props = {
25
- leftIcon: 'dot',
25
+ leftIcon: DotIcon,
26
26
  name: 'general',
27
27
  content: 'test-content',
28
28
  rightContent: <Icon source={DotIcon} size={IconSize.XS} color="bgtxt-orange-normal" />,
@@ -1,4 +1,5 @@
1
1
  import React, {
2
+ forwardRef,
2
3
  memo,
3
4
  useCallback,
4
5
  } from 'react'
@@ -17,10 +18,6 @@ import {
17
18
  Icon,
18
19
  IconSize,
19
20
  } from '~/src/components/Icon'
20
- import {
21
- LegacyIcon,
22
- isIconName,
23
- } from '~/src/components/LegacyIcon'
24
21
  import { Text } from '~/src/components/Text'
25
22
 
26
23
  import type NavGroupProps from './NavGroup.types'
@@ -37,7 +34,7 @@ import {
37
34
  export const NAV_GROUP_TEST_ID = 'bezier-react-nav-group'
38
35
  export const NAV_GROUP_LEFT_ICON_TEST_ID = 'bezier-react-nav-group-left-icon'
39
36
 
40
- function NavGroup({
37
+ const NavGroup = forwardRef<HTMLButtonElement, NavGroupProps>(function NavGroup({
41
38
  as,
42
39
  testId = NAV_GROUP_TEST_ID,
43
40
  name,
@@ -51,7 +48,8 @@ function NavGroup({
51
48
  open,
52
49
  active,
53
50
  onClick = noop,
54
- }: NavGroupProps) {
51
+ ...rest
52
+ }, forwardedRef) {
55
53
  const handleClickItem = useCallback((e?: React.MouseEvent) => {
56
54
  onClick(e, name)
57
55
  }, [
@@ -61,12 +59,13 @@ function NavGroup({
61
59
 
62
60
  const hasChildren = !isNil(children)
63
61
  const chevronIconSource = open ? ChevronSmallDownIcon : ChevronSmallRightIcon
64
- const showLeftIcon = isIconName(leftIcon)
65
62
  const ariaName = `${name}Menu`
66
63
 
67
64
  return (
68
65
  <Wrapper role="none">
69
66
  <Item
67
+ {...rest}
68
+ ref={forwardedRef}
70
69
  as={as}
71
70
  active={active}
72
71
  style={style}
@@ -80,14 +79,12 @@ function NavGroup({
80
79
  aria-controls={ariaName}
81
80
  >
82
81
  <LeftIconWrapper>
83
- { showLeftIcon && (
84
- <LegacyIcon
85
- testId={NAV_GROUP_LEFT_ICON_TEST_ID}
86
- name={leftIcon}
87
- size={IconSize.S}
88
- color={active ? 'bgtxt-blue-normal' : 'txt-black-dark'}
89
- />
90
- ) }
82
+ <Icon
83
+ testId={NAV_GROUP_LEFT_ICON_TEST_ID}
84
+ source={leftIcon}
85
+ size={IconSize.S}
86
+ color={active ? 'bgtxt-blue-normal' : 'txt-black-dark'}
87
+ />
91
88
  </LeftIconWrapper>
92
89
 
93
90
  <Text typo={Typography.Size14} truncated>
@@ -121,6 +118,6 @@ function NavGroup({
121
118
  ) }
122
119
  </Wrapper>
123
120
  )
124
- }
121
+ })
125
122
 
126
123
  export default memo(NavGroup)
@@ -1,4 +1,4 @@
1
- import { type IconName } from '@channel.io/bezier-icons'
1
+ import { type BezierIcon } from '@channel.io/bezier-icons'
2
2
 
3
3
  import type {
4
4
  ActivatableProps,
@@ -10,7 +10,7 @@ import type {
10
10
 
11
11
  interface NavGroupOptions {
12
12
  open?: boolean
13
- leftIcon: IconName
13
+ leftIcon: BezierIcon
14
14
  name: string
15
15
  onClick?: (e?: React.MouseEvent, name?: string) => void
16
16
  }
@@ -21,4 +21,5 @@ export default interface NavGroupProps extends
21
21
  ContentProps,
22
22
  Pick<SideContentProps, 'rightContent'>,
23
23
  Pick<ActivatableProps, 'active'>,
24
+ Omit<React.HTMLAttributes<HTMLButtonElement>, 'onClick' | 'content'>,
24
25
  NavGroupOptions {}
@@ -1,5 +1,7 @@
1
1
  import React from 'react'
2
2
 
3
+ import { DotIcon } from '@channel.io/bezier-icons'
4
+
3
5
  import { LightTheme } from '~/src/foundation/Colors/Theme'
4
6
 
5
7
  import { render } from '~/src/utils/testUtils'
@@ -15,7 +17,7 @@ describe('NavItem Test >', () => {
15
17
 
16
18
  beforeEach(() => {
17
19
  props = {
18
- leftIcon: 'dot',
20
+ leftIcon: DotIcon,
19
21
  name: 'general',
20
22
  content: 'test-content',
21
23
  }