@channel.io/bezier-react 2.6.1 → 2.6.2

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 (318) hide show
  1. package/dist/cjs/components/AlphaAvatar/Avatar.js.map +1 -1
  2. package/dist/cjs/components/AlphaAvatar/AvatarSizeContext.js.map +1 -1
  3. package/dist/cjs/components/AlphaAvatar/useProgressiveImage.js.map +1 -1
  4. package/dist/cjs/components/AlphaAvatarGroup/AvatarGroup.js.map +1 -1
  5. package/dist/cjs/components/AlphaButton/Button.js +4 -1
  6. package/dist/cjs/components/AlphaButton/Button.js.map +1 -1
  7. package/dist/cjs/components/AlphaDialogPrimitive/DialogPrimitive.js.map +1 -1
  8. package/dist/cjs/components/AlphaFloatingButton/FloatingButton.js +5 -2
  9. package/dist/cjs/components/AlphaFloatingButton/FloatingButton.js.map +1 -1
  10. package/dist/cjs/components/AlphaFloatingIconButton/FloatingIconButton.js +5 -2
  11. package/dist/cjs/components/AlphaFloatingIconButton/FloatingIconButton.js.map +1 -1
  12. package/dist/cjs/components/AlphaIconButton/IconButton.js +5 -2
  13. package/dist/cjs/components/AlphaIconButton/IconButton.js.map +1 -1
  14. package/dist/cjs/components/AlphaLoader/Loader.js.map +1 -1
  15. package/dist/cjs/components/AlphaStatusBadge/StatusBadge.js.map +1 -1
  16. package/dist/cjs/components/AlphaToggleButton/ToggleButton.js.map +1 -1
  17. package/dist/cjs/components/AlphaToggleButton/ToggleButtonContext.js.map +1 -1
  18. package/dist/cjs/components/AlphaToggleButtonGroup/ToggleButtonGroup.js.map +1 -1
  19. package/dist/cjs/components/AlphaToggleEmojiButtonGroup/ToggleEmojiButtonGroup.js.map +1 -1
  20. package/dist/cjs/components/AlphaToggleEmojiButtonGroup/useToggleEmojiButtonSize.js.map +1 -1
  21. package/dist/cjs/components/AlphaTooltipPrimitive/TooltipPrimitive.js.map +1 -1
  22. package/dist/cjs/components/AppProvider/AppProvider.js.map +1 -1
  23. package/dist/cjs/components/AutoFocus/AutoFocus.js.map +1 -1
  24. package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
  25. package/dist/cjs/components/Avatar/useProgressiveImage.js.map +1 -1
  26. package/dist/cjs/components/AvatarGroup/AvatarGroup.js.map +1 -1
  27. package/dist/cjs/components/Badge/Badge.js.map +1 -1
  28. package/dist/cjs/components/Banner/Banner.js.map +1 -1
  29. package/dist/cjs/components/BaseButton/BaseButton.js.map +1 -1
  30. package/dist/cjs/components/BaseTagBadge/BaseTagBadge.js.map +1 -1
  31. package/dist/cjs/components/Box/Box.js.map +1 -1
  32. package/dist/cjs/components/Button/Button.js +2 -1
  33. package/dist/cjs/components/Button/Button.js.map +1 -1
  34. package/dist/cjs/components/ButtonGroup/ButtonGroup.js.map +1 -1
  35. package/dist/cjs/components/Center/Center.js.map +1 -1
  36. package/dist/cjs/components/CheckableAvatar/CheckableAvatar.js.map +1 -1
  37. package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
  38. package/dist/cjs/components/ConfirmModal/ConfirmModal.js.map +1 -1
  39. package/dist/cjs/components/Divider/Divider.js.map +1 -1
  40. package/dist/cjs/components/Emoji/Emoji.js.map +1 -1
  41. package/dist/cjs/components/FeatureProvider/FeatureProvider.js.map +1 -1
  42. package/dist/cjs/components/FeatureProvider/FeatureProvider.types.js.map +1 -1
  43. package/dist/cjs/components/FeatureProvider/SmoothCornersFeature/SmoothCornersFeature.js.map +1 -1
  44. package/dist/cjs/components/FeatureProvider/SmoothCornersFeature/smoothCornersScript.js.map +1 -1
  45. package/dist/cjs/components/FormControl/FormControl.js.map +1 -1
  46. package/dist/cjs/components/FormGroup/FormGroup.js.map +1 -1
  47. package/dist/cjs/components/FormHelperText/FormHelperText.js.map +1 -1
  48. package/dist/cjs/components/FormLabel/FormLabel.js.map +1 -1
  49. package/dist/cjs/components/Help/Help.js.map +1 -1
  50. package/dist/cjs/components/Icon/Icon.js.map +1 -1
  51. package/dist/cjs/components/KeyValueItem/KeyValueItem.js.map +1 -1
  52. package/dist/cjs/components/LegacyIcon/LegacyIcon.js.map +1 -1
  53. package/dist/cjs/components/LegacyIcon/utils.js.map +1 -1
  54. package/dist/cjs/components/LegacyStack/LegacyHStack/LegacyHStack.js.map +1 -1
  55. package/dist/cjs/components/LegacyStack/LegacySpacer/LegacySpacer.js.map +1 -1
  56. package/dist/cjs/components/LegacyStack/LegacyStack/LegacyStack.js.map +1 -1
  57. package/dist/cjs/components/LegacyStack/LegacyStackItem/LegacyStackItem.js.map +1 -1
  58. package/dist/cjs/components/LegacyStack/LegacyVStack/LegacyVStack.js.map +1 -1
  59. package/dist/cjs/components/LegacyTooltip/LegacyTooltip.js.map +1 -1
  60. package/dist/cjs/components/LegacyTooltip/LegacyTooltipContent.js.map +1 -1
  61. package/dist/cjs/components/LegacyTooltip/utils.js.map +1 -1
  62. package/dist/cjs/components/ListItem/ListItem.js.map +1 -1
  63. package/dist/cjs/components/Modal/Modal.js.map +1 -1
  64. package/dist/cjs/components/NavGroup/NavGroup.js.map +1 -1
  65. package/dist/cjs/components/NavItem/NavItem.js.map +1 -1
  66. package/dist/cjs/components/OutlineItem/OutlineItem.js.map +1 -1
  67. package/dist/cjs/components/Overlay/Overlay.js.map +1 -1
  68. package/dist/cjs/components/Overlay/utils.js.map +1 -1
  69. package/dist/cjs/components/ProgressBar/ProgressBar.js.map +1 -1
  70. package/dist/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  71. package/dist/cjs/components/SectionLabel/SectionLabel.js.map +1 -1
  72. package/dist/cjs/components/SegmentedControl/SegmentedControl.js.map +1 -1
  73. package/dist/cjs/components/Select/Select.js.map +1 -1
  74. package/dist/cjs/components/Slider/Slider.js.map +1 -1
  75. package/dist/cjs/components/SmoothCornersBox/SmoothCornersBox.js.map +1 -1
  76. package/dist/cjs/components/Spinner/Spinner.js.map +1 -1
  77. package/dist/cjs/components/Stack/Stack.js.map +1 -1
  78. package/dist/cjs/components/Status/Status.js.map +1 -1
  79. package/dist/cjs/components/Switch/Switch.js.map +1 -1
  80. package/dist/cjs/components/Tabs/Tabs.js.map +1 -1
  81. package/dist/cjs/components/Tag/Tag.js.map +1 -1
  82. package/dist/cjs/components/Text/Text.js.map +1 -1
  83. package/dist/cjs/components/TextArea/TextArea.js.map +1 -1
  84. package/dist/cjs/components/TextField/TextField.js.map +1 -1
  85. package/dist/cjs/components/ThemeProvider/ThemeProvider.js.map +1 -1
  86. package/dist/cjs/components/Toast/Toast.js.map +1 -1
  87. package/dist/cjs/components/Toast/ToastService.js.map +1 -1
  88. package/dist/cjs/components/Toast/useToastContextValues.js.map +1 -1
  89. package/dist/cjs/components/TokenProvider/TokenProvider.js.map +1 -1
  90. package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
  91. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  92. package/dist/cjs/components/WindowProvider/WindowProvider.js.map +1 -1
  93. package/dist/cjs/hooks/useEventHandler.js.map +1 -1
  94. package/dist/cjs/hooks/useId.js.map +1 -1
  95. package/dist/cjs/hooks/useIsMounted.js.map +1 -1
  96. package/dist/cjs/hooks/useKeyboardActionLockerWhileComposing.js.map +1 -1
  97. package/dist/cjs/hooks/useMergeRefs.js.map +1 -1
  98. package/dist/cjs/node_modules/@babel/runtime/helpers/esm/extends.js.map +1 -1
  99. package/dist/cjs/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js.map +1 -1
  100. package/dist/cjs/node_modules/@floating-ui/core/dist/floating-ui.core.js.map +1 -1
  101. package/dist/cjs/node_modules/@floating-ui/dom/dist/floating-ui.dom.js.map +1 -1
  102. package/dist/cjs/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js.map +1 -1
  103. package/dist/cjs/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js.map +1 -1
  104. package/dist/cjs/node_modules/@floating-ui/utils/dist/floating-ui.utils.js.map +1 -1
  105. package/dist/cjs/node_modules/aria-hidden/dist/es2015/index.js.map +1 -1
  106. package/dist/cjs/node_modules/classnames/index.js.map +1 -1
  107. package/dist/cjs/node_modules/get-nonce/dist/es2015/index.js.map +1 -1
  108. package/dist/cjs/node_modules/react-remove-scroll/dist/es2015/Combination.js.map +1 -1
  109. package/dist/cjs/node_modules/react-remove-scroll/dist/es2015/SideEffect.js.map +1 -1
  110. package/dist/cjs/node_modules/react-remove-scroll/dist/es2015/UI.js.map +1 -1
  111. package/dist/cjs/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js.map +1 -1
  112. package/dist/cjs/node_modules/react-remove-scroll/dist/es2015/handleScroll.js.map +1 -1
  113. package/dist/cjs/node_modules/react-remove-scroll-bar/dist/es2015/component.js.map +1 -1
  114. package/dist/cjs/node_modules/react-remove-scroll-bar/dist/es2015/constants.js.map +1 -1
  115. package/dist/cjs/node_modules/react-remove-scroll-bar/dist/es2015/utils.js.map +1 -1
  116. package/dist/cjs/node_modules/react-style-singleton/dist/es2015/component.js.map +1 -1
  117. package/dist/cjs/node_modules/react-style-singleton/dist/es2015/hook.js.map +1 -1
  118. package/dist/cjs/node_modules/react-style-singleton/dist/es2015/singleton.js.map +1 -1
  119. package/dist/cjs/node_modules/react-textarea-autosize/dist/react-textarea-autosize.esm.js.map +1 -1
  120. package/dist/cjs/node_modules/ssr-window/ssr-window.esm.js.map +1 -1
  121. package/dist/cjs/node_modules/tslib/tslib.es6.js.map +1 -1
  122. package/dist/cjs/node_modules/use-callback-ref/dist/es2015/assignRef.js.map +1 -1
  123. package/dist/cjs/node_modules/use-callback-ref/dist/es2015/useMergeRef.js.map +1 -1
  124. package/dist/cjs/node_modules/use-callback-ref/dist/es2015/useRef.js.map +1 -1
  125. package/dist/cjs/node_modules/use-composed-ref/dist/use-composed-ref.esm.js.map +1 -1
  126. package/dist/cjs/node_modules/use-latest/dist/use-latest.esm.js.map +1 -1
  127. package/dist/cjs/node_modules/use-sidecar/dist/es2015/exports.js.map +1 -1
  128. package/dist/cjs/node_modules/use-sidecar/dist/es2015/medium.js.map +1 -1
  129. package/dist/cjs/node_modules/uuid/dist/esm-browser/native.js.map +1 -1
  130. package/dist/cjs/node_modules/uuid/dist/esm-browser/rng.js.map +1 -1
  131. package/dist/cjs/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -1
  132. package/dist/cjs/node_modules/uuid/dist/esm-browser/v4.js.map +1 -1
  133. package/dist/cjs/packages/bezier-tokens/dist/esm/darkTheme.js.map +1 -1
  134. package/dist/cjs/packages/bezier-tokens/dist/esm/global.js.map +1 -1
  135. package/dist/cjs/packages/bezier-tokens/dist/esm/index.js.map +1 -1
  136. package/dist/cjs/packages/bezier-tokens/dist/esm/lightTheme.js.map +1 -1
  137. package/dist/cjs/styles.css +1 -1
  138. package/dist/cjs/types/props-helpers.js.map +1 -1
  139. package/dist/cjs/utils/aria.js.map +1 -1
  140. package/dist/cjs/utils/array.js.map +1 -1
  141. package/dist/cjs/utils/assert.js.map +1 -1
  142. package/dist/cjs/utils/number.js.map +1 -1
  143. package/dist/cjs/utils/object.js.map +1 -1
  144. package/dist/cjs/utils/react.js.map +1 -1
  145. package/dist/cjs/utils/string.js.map +1 -1
  146. package/dist/cjs/utils/style.js.map +1 -1
  147. package/dist/cjs/utils/type.js.map +1 -1
  148. package/dist/esm/components/AlphaAvatar/Avatar.mjs.map +1 -1
  149. package/dist/esm/components/AlphaAvatar/AvatarSizeContext.mjs.map +1 -1
  150. package/dist/esm/components/AlphaAvatar/useProgressiveImage.mjs.map +1 -1
  151. package/dist/esm/components/AlphaAvatarGroup/AvatarGroup.mjs.map +1 -1
  152. package/dist/esm/components/AlphaButton/Button.mjs +4 -1
  153. package/dist/esm/components/AlphaButton/Button.mjs.map +1 -1
  154. package/dist/esm/components/AlphaDialogPrimitive/DialogPrimitive.mjs.map +1 -1
  155. package/dist/esm/components/AlphaFloatingButton/FloatingButton.mjs +5 -2
  156. package/dist/esm/components/AlphaFloatingButton/FloatingButton.mjs.map +1 -1
  157. package/dist/esm/components/AlphaFloatingIconButton/FloatingIconButton.mjs +5 -2
  158. package/dist/esm/components/AlphaFloatingIconButton/FloatingIconButton.mjs.map +1 -1
  159. package/dist/esm/components/AlphaIconButton/IconButton.mjs +5 -2
  160. package/dist/esm/components/AlphaIconButton/IconButton.mjs.map +1 -1
  161. package/dist/esm/components/AlphaLoader/Loader.mjs.map +1 -1
  162. package/dist/esm/components/AlphaStatusBadge/StatusBadge.mjs.map +1 -1
  163. package/dist/esm/components/AlphaToggleButton/ToggleButton.mjs.map +1 -1
  164. package/dist/esm/components/AlphaToggleButton/ToggleButtonContext.mjs.map +1 -1
  165. package/dist/esm/components/AlphaToggleButtonGroup/ToggleButtonGroup.mjs.map +1 -1
  166. package/dist/esm/components/AlphaToggleEmojiButtonGroup/ToggleEmojiButtonGroup.mjs.map +1 -1
  167. package/dist/esm/components/AlphaToggleEmojiButtonGroup/useToggleEmojiButtonSize.mjs.map +1 -1
  168. package/dist/esm/components/AlphaTooltipPrimitive/TooltipPrimitive.mjs.map +1 -1
  169. package/dist/esm/components/AppProvider/AppProvider.mjs.map +1 -1
  170. package/dist/esm/components/AutoFocus/AutoFocus.mjs.map +1 -1
  171. package/dist/esm/components/Avatar/Avatar.mjs.map +1 -1
  172. package/dist/esm/components/Avatar/useProgressiveImage.mjs.map +1 -1
  173. package/dist/esm/components/AvatarGroup/AvatarGroup.mjs.map +1 -1
  174. package/dist/esm/components/Badge/Badge.mjs.map +1 -1
  175. package/dist/esm/components/Banner/Banner.mjs.map +1 -1
  176. package/dist/esm/components/BaseButton/BaseButton.mjs.map +1 -1
  177. package/dist/esm/components/BaseTagBadge/BaseTagBadge.mjs.map +1 -1
  178. package/dist/esm/components/Box/Box.mjs.map +1 -1
  179. package/dist/esm/components/Button/Button.mjs +2 -1
  180. package/dist/esm/components/Button/Button.mjs.map +1 -1
  181. package/dist/esm/components/ButtonGroup/ButtonGroup.mjs.map +1 -1
  182. package/dist/esm/components/Center/Center.mjs.map +1 -1
  183. package/dist/esm/components/CheckableAvatar/CheckableAvatar.mjs.map +1 -1
  184. package/dist/esm/components/Checkbox/Checkbox.mjs.map +1 -1
  185. package/dist/esm/components/ConfirmModal/ConfirmModal.mjs.map +1 -1
  186. package/dist/esm/components/Divider/Divider.mjs.map +1 -1
  187. package/dist/esm/components/Emoji/Emoji.mjs.map +1 -1
  188. package/dist/esm/components/FeatureProvider/FeatureProvider.mjs.map +1 -1
  189. package/dist/esm/components/FeatureProvider/FeatureProvider.types.mjs.map +1 -1
  190. package/dist/esm/components/FeatureProvider/SmoothCornersFeature/SmoothCornersFeature.mjs.map +1 -1
  191. package/dist/esm/components/FeatureProvider/SmoothCornersFeature/smoothCornersScript.mjs.map +1 -1
  192. package/dist/esm/components/FormControl/FormControl.mjs.map +1 -1
  193. package/dist/esm/components/FormGroup/FormGroup.mjs.map +1 -1
  194. package/dist/esm/components/FormHelperText/FormHelperText.mjs.map +1 -1
  195. package/dist/esm/components/FormLabel/FormLabel.mjs.map +1 -1
  196. package/dist/esm/components/Help/Help.mjs.map +1 -1
  197. package/dist/esm/components/Icon/Icon.mjs.map +1 -1
  198. package/dist/esm/components/KeyValueItem/KeyValueItem.mjs.map +1 -1
  199. package/dist/esm/components/LegacyIcon/LegacyIcon.mjs.map +1 -1
  200. package/dist/esm/components/LegacyIcon/utils.mjs.map +1 -1
  201. package/dist/esm/components/LegacyStack/LegacyHStack/LegacyHStack.mjs.map +1 -1
  202. package/dist/esm/components/LegacyStack/LegacySpacer/LegacySpacer.mjs.map +1 -1
  203. package/dist/esm/components/LegacyStack/LegacyStack/LegacyStack.mjs.map +1 -1
  204. package/dist/esm/components/LegacyStack/LegacyStackItem/LegacyStackItem.mjs.map +1 -1
  205. package/dist/esm/components/LegacyStack/LegacyVStack/LegacyVStack.mjs.map +1 -1
  206. package/dist/esm/components/LegacyTooltip/LegacyTooltip.mjs.map +1 -1
  207. package/dist/esm/components/LegacyTooltip/LegacyTooltipContent.mjs.map +1 -1
  208. package/dist/esm/components/LegacyTooltip/utils.mjs.map +1 -1
  209. package/dist/esm/components/ListItem/ListItem.mjs.map +1 -1
  210. package/dist/esm/components/Modal/Modal.mjs.map +1 -1
  211. package/dist/esm/components/NavGroup/NavGroup.mjs.map +1 -1
  212. package/dist/esm/components/NavItem/NavItem.mjs.map +1 -1
  213. package/dist/esm/components/OutlineItem/OutlineItem.mjs.map +1 -1
  214. package/dist/esm/components/Overlay/Overlay.mjs.map +1 -1
  215. package/dist/esm/components/Overlay/utils.mjs.map +1 -1
  216. package/dist/esm/components/ProgressBar/ProgressBar.mjs.map +1 -1
  217. package/dist/esm/components/RadioGroup/RadioGroup.mjs.map +1 -1
  218. package/dist/esm/components/SectionLabel/SectionLabel.mjs.map +1 -1
  219. package/dist/esm/components/SegmentedControl/SegmentedControl.mjs.map +1 -1
  220. package/dist/esm/components/Select/Select.mjs.map +1 -1
  221. package/dist/esm/components/Slider/Slider.mjs.map +1 -1
  222. package/dist/esm/components/SmoothCornersBox/SmoothCornersBox.mjs.map +1 -1
  223. package/dist/esm/components/Spinner/Spinner.mjs.map +1 -1
  224. package/dist/esm/components/Stack/Stack.mjs.map +1 -1
  225. package/dist/esm/components/Status/Status.mjs.map +1 -1
  226. package/dist/esm/components/Switch/Switch.mjs.map +1 -1
  227. package/dist/esm/components/Tabs/Tabs.mjs.map +1 -1
  228. package/dist/esm/components/Tag/Tag.mjs.map +1 -1
  229. package/dist/esm/components/Text/Text.mjs.map +1 -1
  230. package/dist/esm/components/TextArea/TextArea.mjs.map +1 -1
  231. package/dist/esm/components/TextField/TextField.mjs.map +1 -1
  232. package/dist/esm/components/ThemeProvider/ThemeProvider.mjs.map +1 -1
  233. package/dist/esm/components/Toast/Toast.mjs.map +1 -1
  234. package/dist/esm/components/Toast/ToastService.mjs.map +1 -1
  235. package/dist/esm/components/Toast/useToastContextValues.mjs.map +1 -1
  236. package/dist/esm/components/TokenProvider/TokenProvider.mjs.map +1 -1
  237. package/dist/esm/components/Tooltip/Tooltip.mjs.map +1 -1
  238. package/dist/esm/components/VisuallyHidden/VisuallyHidden.mjs.map +1 -1
  239. package/dist/esm/components/WindowProvider/WindowProvider.mjs.map +1 -1
  240. package/dist/esm/hooks/useEventHandler.mjs.map +1 -1
  241. package/dist/esm/hooks/useId.mjs.map +1 -1
  242. package/dist/esm/hooks/useIsMounted.mjs.map +1 -1
  243. package/dist/esm/hooks/useKeyboardActionLockerWhileComposing.mjs.map +1 -1
  244. package/dist/esm/hooks/useMergeRefs.mjs.map +1 -1
  245. package/dist/esm/node_modules/@babel/runtime/helpers/esm/extends.mjs.map +1 -1
  246. package/dist/esm/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.mjs.map +1 -1
  247. package/dist/esm/node_modules/@floating-ui/core/dist/floating-ui.core.mjs.map +1 -1
  248. package/dist/esm/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs.map +1 -1
  249. package/dist/esm/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs.map +1 -1
  250. package/dist/esm/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs.map +1 -1
  251. package/dist/esm/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs.map +1 -1
  252. package/dist/esm/node_modules/aria-hidden/dist/es2015/index.mjs.map +1 -1
  253. package/dist/esm/node_modules/classnames/index.mjs.map +1 -1
  254. package/dist/esm/node_modules/get-nonce/dist/es2015/index.mjs.map +1 -1
  255. package/dist/esm/node_modules/react-remove-scroll/dist/es2015/Combination.mjs.map +1 -1
  256. package/dist/esm/node_modules/react-remove-scroll/dist/es2015/SideEffect.mjs.map +1 -1
  257. package/dist/esm/node_modules/react-remove-scroll/dist/es2015/UI.mjs.map +1 -1
  258. package/dist/esm/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.mjs.map +1 -1
  259. package/dist/esm/node_modules/react-remove-scroll/dist/es2015/handleScroll.mjs.map +1 -1
  260. package/dist/esm/node_modules/react-remove-scroll-bar/dist/es2015/component.mjs.map +1 -1
  261. package/dist/esm/node_modules/react-remove-scroll-bar/dist/es2015/constants.mjs.map +1 -1
  262. package/dist/esm/node_modules/react-remove-scroll-bar/dist/es2015/utils.mjs.map +1 -1
  263. package/dist/esm/node_modules/react-style-singleton/dist/es2015/component.mjs.map +1 -1
  264. package/dist/esm/node_modules/react-style-singleton/dist/es2015/hook.mjs.map +1 -1
  265. package/dist/esm/node_modules/react-style-singleton/dist/es2015/singleton.mjs.map +1 -1
  266. package/dist/esm/node_modules/react-textarea-autosize/dist/react-textarea-autosize.esm.mjs.map +1 -1
  267. package/dist/esm/node_modules/ssr-window/ssr-window.esm.mjs.map +1 -1
  268. package/dist/esm/node_modules/tslib/tslib.es6.mjs.map +1 -1
  269. package/dist/esm/node_modules/use-callback-ref/dist/es2015/assignRef.mjs.map +1 -1
  270. package/dist/esm/node_modules/use-callback-ref/dist/es2015/useMergeRef.mjs.map +1 -1
  271. package/dist/esm/node_modules/use-callback-ref/dist/es2015/useRef.mjs.map +1 -1
  272. package/dist/esm/node_modules/use-composed-ref/dist/use-composed-ref.esm.mjs.map +1 -1
  273. package/dist/esm/node_modules/use-latest/dist/use-latest.esm.mjs.map +1 -1
  274. package/dist/esm/node_modules/use-sidecar/dist/es2015/exports.mjs.map +1 -1
  275. package/dist/esm/node_modules/use-sidecar/dist/es2015/medium.mjs.map +1 -1
  276. package/dist/esm/node_modules/uuid/dist/esm-browser/native.mjs.map +1 -1
  277. package/dist/esm/node_modules/uuid/dist/esm-browser/rng.mjs.map +1 -1
  278. package/dist/esm/node_modules/uuid/dist/esm-browser/stringify.mjs.map +1 -1
  279. package/dist/esm/node_modules/uuid/dist/esm-browser/v4.mjs.map +1 -1
  280. package/dist/esm/packages/bezier-tokens/dist/esm/darkTheme.mjs.map +1 -1
  281. package/dist/esm/packages/bezier-tokens/dist/esm/global.mjs.map +1 -1
  282. package/dist/esm/packages/bezier-tokens/dist/esm/index.mjs.map +1 -1
  283. package/dist/esm/packages/bezier-tokens/dist/esm/lightTheme.mjs.map +1 -1
  284. package/dist/esm/styles.css +1 -1
  285. package/dist/esm/types/props-helpers.mjs.map +1 -1
  286. package/dist/esm/utils/aria.mjs.map +1 -1
  287. package/dist/esm/utils/array.mjs.map +1 -1
  288. package/dist/esm/utils/assert.mjs.map +1 -1
  289. package/dist/esm/utils/number.mjs.map +1 -1
  290. package/dist/esm/utils/object.mjs.map +1 -1
  291. package/dist/esm/utils/react.mjs.map +1 -1
  292. package/dist/esm/utils/string.mjs.map +1 -1
  293. package/dist/esm/utils/style.mjs.map +1 -1
  294. package/dist/esm/utils/type.mjs.map +1 -1
  295. package/dist/types/components/AlphaButton/Button.d.ts.map +1 -1
  296. package/dist/types/components/AlphaButton/Button.types.d.ts +1 -1
  297. package/dist/types/components/AlphaFloatingButton/FloatingButton.d.ts.map +1 -1
  298. package/dist/types/components/AlphaFloatingButton/FloatingButton.types.d.ts +1 -1
  299. package/dist/types/components/AlphaFloatingIconButton/FloatingIconButton.d.ts.map +1 -1
  300. package/dist/types/components/AlphaFloatingIconButton/FloatingIconButton.types.d.ts +1 -1
  301. package/dist/types/components/AlphaIconButton/IconButton.d.ts.map +1 -1
  302. package/dist/types/components/AlphaIconButton/IconButton.types.d.ts +1 -1
  303. package/dist/types/components/Button/Button.d.ts.map +1 -1
  304. package/dist/types/components/Button/Button.types.d.ts +1 -1
  305. package/package.json +3 -3
  306. package/src/components/AlphaButton/Button.module.scss +5 -5
  307. package/src/components/AlphaButton/Button.tsx +4 -0
  308. package/src/components/AlphaButton/Button.types.ts +1 -1
  309. package/src/components/AlphaFloatingButton/FloatingButton.tsx +4 -1
  310. package/src/components/AlphaFloatingButton/FloatingButton.types.ts +1 -1
  311. package/src/components/AlphaFloatingIconButton/FloatingIconButton.tsx +4 -1
  312. package/src/components/AlphaFloatingIconButton/FloatingIconButton.types.ts +1 -1
  313. package/src/components/AlphaIconButton/IconButton.module.scss +5 -5
  314. package/src/components/AlphaIconButton/IconButton.tsx +5 -1
  315. package/src/components/AlphaIconButton/IconButton.types.ts +1 -1
  316. package/src/components/AlphaToggleButton/ToggleButton.module.scss +1 -1
  317. package/src/components/Button/Button.tsx +4 -2
  318. package/src/components/Button/Button.types.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"LegacyStackItem.mjs","sources":["../../../../../src/components/LegacyStack/LegacyStackItem/LegacyStackItem.tsx"],"sourcesContent":["'use client'\n\nimport React, { forwardRef } from 'react'\n\nimport classNames from 'classnames'\n\nimport { isInteger, isNil } from '~/src/utils/type'\n\nimport type LegacyStackItemProps from './LegacyStackItem.types'\n\nimport styles from './LegacyStackItem.module.scss'\n\nconst sanitizeWeight = (weight: number): number => {\n if (weight < 0) {\n return 0\n }\n if (!isInteger(weight)) {\n return 0\n }\n return weight\n}\n\n/**\n * @deprecated Use layout components(`Box`, `Stack`) that support flex item related properties (`shrink`, `grow`) instead.\n * @example\n *\n * ```\n * <Stack>\n * <Stack grow={1} shrink={1} {...}>\n * { ... }\n * </Stack>\n * <Box grow={0} shrink={0} {...} />\n * </Stack>\n * ```\n *\n *\n * `StackItem` is used along `Stack`.\n * It inherits the default settings from `Stack`,\n * but allows to override some props to customize the behavior\n * of particular item.\n *\n * If you are not using `StackItem` as the direct child of `Stack`,\n * be reminded to forward props in `StackItemProps` to `StackItem` component,\n * or manually implement the behavior compatible with `StackItem`.\n */\nexport const LegacyStackItem = forwardRef<HTMLElement, LegacyStackItemProps>(\n function StackItem(\n {\n as = 'div',\n children,\n style,\n className,\n direction,\n justify,\n align,\n size,\n weight = 0,\n grow = false,\n shrink = false,\n marginBefore = 0,\n marginAfter = 0,\n ...rest\n },\n forwardedRef\n ) {\n const Comp = as\n\n return (\n <Comp\n ref={forwardedRef}\n style={{\n ...style,\n '--b-main-axis-size': isNil(size) ? 'initial' : `${size}px`,\n '--b-grow-weight': grow ? sanitizeWeight(weight) : '0',\n '--b-shrink-weight': shrink ? sanitizeWeight(weight) : '0',\n '--b-margin-before': `${marginBefore}px`,\n '--b-margin-after': `${marginAfter}px`,\n }}\n className={classNames(\n styles.LegacyStackItem,\n styles[`direction-${direction}`],\n styles[`justify-${justify}`],\n styles[`align-${align}`],\n className\n )}\n data-testid=\"bezier-legacy-stack-item\"\n {...rest}\n >\n {children}\n </Comp>\n )\n }\n)\n"],"names":["sanitizeWeight","weight","isInteger","LegacyStackItem","forwardRef","StackItem","as","children","style","className","direction","justify","align","size","grow","shrink","marginBefore","marginAfter","rest","forwardedRef","Comp","React","createElement","Object","assign","ref","isNil","classNames","styles"],"mappings":";;;;;AAYA,MAAMA,cAAc,GAAIC,MAAc,IAAa;EACjD,IAAIA,MAAM,GAAG,CAAC,EAAE;AACd,IAAA,OAAO,CAAC,CAAA;AACV,GAAA;AACA,EAAA,IAAI,CAACC,SAAS,CAACD,MAAM,CAAC,EAAE;AACtB,IAAA,OAAO,CAAC,CAAA;AACV,GAAA;AACA,EAAA,OAAOA,MAAM,CAAA;AACf,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACaE,eAAe,gBAAGC,UAAU,CACvC,SAASC,SAASA,CAChB;AACEC,EAAAA,EAAE,GAAG,KAAK;EACVC,QAAQ;EACRC,KAAK;EACLC,SAAS;EACTC,SAAS;EACTC,OAAO;EACPC,KAAK;EACLC,IAAI;AACJZ,EAAAA,MAAM,GAAG,CAAC;AACVa,EAAAA,IAAI,GAAG,KAAK;AACZC,EAAAA,MAAM,GAAG,KAAK;AACdC,EAAAA,YAAY,GAAG,CAAC;AAChBC,EAAAA,WAAW,GAAG,CAAC;EACf,GAAGC,IAAAA;AACL,CAAC,EACDC,YAAY,EACZ;EACA,MAAMC,IAAI,GAAGd,EAAE,CAAA;EAEf,oBACEe,cAAA,CAAAC,aAAA,CAACF,IAAI,EAAAG,MAAA,CAAAC,MAAA,CAAA;AACHC,IAAAA,GAAG,EAAEN,YAAa;AAClBX,IAAAA,KAAK,EAAE;AACL,MAAA,GAAGA,KAAK;MACR,oBAAoB,EAAEkB,KAAK,CAACb,IAAI,CAAC,GAAG,SAAS,GAAG,CAAGA,EAAAA,IAAI,CAAI,EAAA,CAAA;MAC3D,iBAAiB,EAAEC,IAAI,GAAGd,cAAc,CAACC,MAAM,CAAC,GAAG,GAAG;MACtD,mBAAmB,EAAEc,MAAM,GAAGf,cAAc,CAACC,MAAM,CAAC,GAAG,GAAG;MAC1D,mBAAmB,EAAE,CAAGe,EAAAA,YAAY,CAAI,EAAA,CAAA;MACxC,kBAAkB,EAAE,GAAGC,WAAW,CAAA,EAAA,CAAA;KAClC;AACFR,IAAAA,SAAS,EAAEkB,UAAU,CACnBC,MAAM,CAACzB,eAAe,EACtByB,MAAM,CAAC,CAAA,UAAA,EAAalB,SAAS,CAAA,CAAE,CAAC,EAChCkB,MAAM,CAAC,CAAWjB,QAAAA,EAAAA,OAAO,CAAE,CAAA,CAAC,EAC5BiB,MAAM,CAAC,CAAA,MAAA,EAAShB,KAAK,CAAA,CAAE,CAAC,EACxBH,SACF,CAAE;IACF,aAAY,EAAA,0BAAA;GACRS,EAAAA,IAAI,CAEPX,EAAAA,QACG,CAAC,CAAA;AAEX,CACF;;;;"}
1
+ {"version":3,"file":"LegacyStackItem.mjs","sources":["../../../../../src/components/LegacyStack/LegacyStackItem/LegacyStackItem.tsx"],"sourcesContent":["'use client'\n\nimport React, { forwardRef } from 'react'\n\nimport classNames from 'classnames'\n\nimport { isInteger, isNil } from '~/src/utils/type'\n\nimport type LegacyStackItemProps from './LegacyStackItem.types'\n\nimport styles from './LegacyStackItem.module.scss'\n\nconst sanitizeWeight = (weight: number): number => {\n if (weight < 0) {\n return 0\n }\n if (!isInteger(weight)) {\n return 0\n }\n return weight\n}\n\n/**\n * @deprecated Use layout components(`Box`, `Stack`) that support flex item related properties (`shrink`, `grow`) instead.\n * @example\n *\n * ```\n * <Stack>\n * <Stack grow={1} shrink={1} {...}>\n * { ... }\n * </Stack>\n * <Box grow={0} shrink={0} {...} />\n * </Stack>\n * ```\n *\n *\n * `StackItem` is used along `Stack`.\n * It inherits the default settings from `Stack`,\n * but allows to override some props to customize the behavior\n * of particular item.\n *\n * If you are not using `StackItem` as the direct child of `Stack`,\n * be reminded to forward props in `StackItemProps` to `StackItem` component,\n * or manually implement the behavior compatible with `StackItem`.\n */\nexport const LegacyStackItem = forwardRef<HTMLElement, LegacyStackItemProps>(\n function StackItem(\n {\n as = 'div',\n children,\n style,\n className,\n direction,\n justify,\n align,\n size,\n weight = 0,\n grow = false,\n shrink = false,\n marginBefore = 0,\n marginAfter = 0,\n ...rest\n },\n forwardedRef\n ) {\n const Comp = as\n\n return (\n <Comp\n ref={forwardedRef}\n style={{\n ...style,\n '--b-main-axis-size': isNil(size) ? 'initial' : `${size}px`,\n '--b-grow-weight': grow ? sanitizeWeight(weight) : '0',\n '--b-shrink-weight': shrink ? sanitizeWeight(weight) : '0',\n '--b-margin-before': `${marginBefore}px`,\n '--b-margin-after': `${marginAfter}px`,\n }}\n className={classNames(\n styles.LegacyStackItem,\n styles[`direction-${direction}`],\n styles[`justify-${justify}`],\n styles[`align-${align}`],\n className\n )}\n data-testid=\"bezier-legacy-stack-item\"\n {...rest}\n >\n {children}\n </Comp>\n )\n }\n)\n"],"names":["sanitizeWeight","weight","isInteger","LegacyStackItem","forwardRef","StackItem","as","children","style","className","direction","justify","align","size","grow","shrink","marginBefore","marginAfter","rest","forwardedRef","Comp","React","createElement","Object","assign","ref","isNil","classNames","styles"],"mappings":";;;;;AAYA,MAAMA,cAAc,GAAIC,MAAc,IAAa;EACjD,IAAIA,MAAM,GAAG,CAAC,EAAE;AACd,IAAA,OAAO,CAAC;AACV;AACA,EAAA,IAAI,CAACC,SAAS,CAACD,MAAM,CAAC,EAAE;AACtB,IAAA,OAAO,CAAC;AACV;AACA,EAAA,OAAOA,MAAM;AACf,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACaE,eAAe,gBAAGC,UAAU,CACvC,SAASC,SAASA,CAChB;AACEC,EAAAA,EAAE,GAAG,KAAK;EACVC,QAAQ;EACRC,KAAK;EACLC,SAAS;EACTC,SAAS;EACTC,OAAO;EACPC,KAAK;EACLC,IAAI;AACJZ,EAAAA,MAAM,GAAG,CAAC;AACVa,EAAAA,IAAI,GAAG,KAAK;AACZC,EAAAA,MAAM,GAAG,KAAK;AACdC,EAAAA,YAAY,GAAG,CAAC;AAChBC,EAAAA,WAAW,GAAG,CAAC;EACf,GAAGC;AACL,CAAC,EACDC,YAAY,EACZ;EACA,MAAMC,IAAI,GAAGd,EAAE;EAEf,oBACEe,cAAA,CAAAC,aAAA,CAACF,IAAI,EAAAG,MAAA,CAAAC,MAAA,CAAA;AACHC,IAAAA,GAAG,EAAEN,YAAa;AAClBX,IAAAA,KAAK,EAAE;AACL,MAAA,GAAGA,KAAK;MACR,oBAAoB,EAAEkB,KAAK,CAACb,IAAI,CAAC,GAAG,SAAS,GAAG,CAAGA,EAAAA,IAAI,CAAI,EAAA,CAAA;MAC3D,iBAAiB,EAAEC,IAAI,GAAGd,cAAc,CAACC,MAAM,CAAC,GAAG,GAAG;MACtD,mBAAmB,EAAEc,MAAM,GAAGf,cAAc,CAACC,MAAM,CAAC,GAAG,GAAG;MAC1D,mBAAmB,EAAE,CAAGe,EAAAA,YAAY,CAAI,EAAA,CAAA;MACxC,kBAAkB,EAAE,GAAGC,WAAW,CAAA,EAAA;KAClC;AACFR,IAAAA,SAAS,EAAEkB,UAAU,CACnBC,MAAM,CAACzB,eAAe,EACtByB,MAAM,CAAC,CAAA,UAAA,EAAalB,SAAS,CAAA,CAAE,CAAC,EAChCkB,MAAM,CAAC,CAAWjB,QAAAA,EAAAA,OAAO,CAAE,CAAA,CAAC,EAC5BiB,MAAM,CAAC,CAAA,MAAA,EAAShB,KAAK,CAAA,CAAE,CAAC,EACxBH,SACF,CAAE;IACF,aAAY,EAAA;GACRS,EAAAA,IAAI,CAEPX,EAAAA,QACG,CAAC;AAEX,CACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"LegacyVStack.mjs","sources":["../../../../../src/components/LegacyStack/LegacyVStack/LegacyVStack.tsx"],"sourcesContent":["'use client'\n\nimport React, { forwardRef } from 'react'\n\nimport { LegacyStack } from '~/src/components/LegacyStack/LegacyStack'\n\nimport type LegacyVStackProps from './LegacyVStack.types'\n\n/**\n * @deprecated Use `VStack` instead.\n *\n * A container for vertical flex layout.\n */\nexport const LegacyVStack = forwardRef<HTMLElement, LegacyVStackProps>(\n function VStack(props, forwardedRef) {\n return (\n <LegacyStack\n ref={forwardedRef}\n direction=\"vertical\"\n {...props}\n />\n )\n }\n)\n"],"names":["LegacyVStack","forwardRef","VStack","props","forwardedRef","React","createElement","LegacyStack","Object","assign","ref","direction"],"mappings":";;;AAQA;AACA;AACA;AACA;AACA;AACO,MAAMA,YAAY,gBAAGC,UAAU,CACpC,SAASC,MAAMA,CAACC,KAAK,EAAEC,YAAY,EAAE;EACnC,oBACEC,cAAA,CAAAC,aAAA,CAACC,WAAW,EAAAC,MAAA,CAAAC,MAAA,CAAA;AACVC,IAAAA,GAAG,EAAEN,YAAa;AAClBO,IAAAA,SAAS,EAAC,UAAA;GACNR,EAAAA,KAAK,CACV,CAAC,CAAA;AAEN,CACF;;;;"}
1
+ {"version":3,"file":"LegacyVStack.mjs","sources":["../../../../../src/components/LegacyStack/LegacyVStack/LegacyVStack.tsx"],"sourcesContent":["'use client'\n\nimport React, { forwardRef } from 'react'\n\nimport { LegacyStack } from '~/src/components/LegacyStack/LegacyStack'\n\nimport type LegacyVStackProps from './LegacyVStack.types'\n\n/**\n * @deprecated Use `VStack` instead.\n *\n * A container for vertical flex layout.\n */\nexport const LegacyVStack = forwardRef<HTMLElement, LegacyVStackProps>(\n function VStack(props, forwardedRef) {\n return (\n <LegacyStack\n ref={forwardedRef}\n direction=\"vertical\"\n {...props}\n />\n )\n }\n)\n"],"names":["LegacyVStack","forwardRef","VStack","props","forwardedRef","React","createElement","LegacyStack","Object","assign","ref","direction"],"mappings":";;;AAQA;AACA;AACA;AACA;AACA;AACO,MAAMA,YAAY,gBAAGC,UAAU,CACpC,SAASC,MAAMA,CAACC,KAAK,EAAEC,YAAY,EAAE;EACnC,oBACEC,cAAA,CAAAC,aAAA,CAACC,WAAW,EAAAC,MAAA,CAAAC,MAAA,CAAA;AACVC,IAAAA,GAAG,EAAEN,YAAa;AAClBO,IAAAA,SAAS,EAAC;GACNR,EAAAA,KAAK,CACV,CAAC;AAEN,CACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"LegacyTooltip.mjs","sources":["../../../../src/components/LegacyTooltip/LegacyTooltip.tsx"],"sourcesContent":["'use client'\n\nimport React, {\n type Ref,\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport classNames from 'classnames'\n\nimport { useWindow } from '~/src/components/WindowProvider'\n\nimport { type LegacyTooltipProps } from './LegacyTooltip.types'\nimport { LegacyTooltipContent } from './LegacyTooltipContent'\n\nimport styles from './LegacyTooltip.module.scss'\n\nexport const TOOLTIP_TEST_ID = 'bezier-tooltip'\nexport const TOOLTIP_CONTENT_TEST_ID = 'bezier-tooltip-content'\n\n/**\n * @deprecated Use `Tooltip` instead. It may be removed in the next major version.\n */\nexport const LegacyTooltip = memo(\n forwardRef(function LegacyTooltip(\n {\n as,\n contentTestId = TOOLTIP_CONTENT_TEST_ID,\n className,\n contentStyle,\n contentClassName,\n contentWrapperStyle,\n contentWrapperClassName,\n content = null,\n lazy = false, // optional prop 에서 추후 default behavior 를 lazy 하게 바꿀 예정\n placement = 'bottom-center',\n disabled = false,\n offset = 4,\n keepInContainer = false,\n allowHover = false,\n delayShow = 0,\n delayHide = 0,\n children,\n ...otherProps\n }: LegacyTooltipProps,\n forwardedRef: Ref<any>\n ) {\n const { window } = useWindow()\n\n const [show, setShow] = useState(false)\n const [didMount, setDidMount] = useState(show)\n\n const tooltipContainerRef = useRef<HTMLDivElement>(null)\n const timerRef = useRef<ReturnType<Window['setTimeout']>>()\n\n useEffect(\n function hideTooltipContentWhenDisabled() {\n if (disabled) {\n setShow(false)\n }\n },\n [disabled]\n )\n\n useEffect(\n function updateDidMount() {\n setDidMount((prev) => prev || show)\n },\n [show]\n )\n\n const handleMouseEnter = useCallback(() => {\n if (disabled) {\n return\n }\n\n if (timerRef.current) {\n clearTimeout(timerRef.current)\n }\n\n timerRef.current = window.setTimeout(() => {\n setShow(true)\n }, delayShow)\n }, [delayShow, disabled, window])\n\n const handleMouseLeave = useCallback(() => {\n if (disabled) {\n return\n }\n\n if (timerRef.current) {\n clearTimeout(timerRef.current)\n }\n\n timerRef.current = window.setTimeout(() => {\n setShow(false)\n }, delayHide)\n }, [delayHide, disabled, window])\n\n const TooltipComponent = useMemo(() => {\n if (!lazy || didMount) {\n return (\n <LegacyTooltipContent\n as={as}\n content={content}\n contentStyle={contentStyle}\n contentClassName={contentClassName}\n contentWrapperStyle={contentWrapperStyle}\n contentWrapperClassName={contentWrapperClassName}\n disabled={disabled}\n placement={placement}\n offset={offset}\n allowHover={allowHover}\n keepInContainer={keepInContainer}\n tooltipContainer={tooltipContainerRef.current}\n forwardedRef={forwardedRef}\n data-testid={contentTestId}\n />\n )\n }\n\n return null\n }, [\n lazy,\n didMount,\n as,\n content,\n contentStyle,\n contentClassName,\n contentWrapperStyle,\n contentWrapperClassName,\n disabled,\n placement,\n offset,\n allowHover,\n keepInContainer,\n forwardedRef,\n contentTestId,\n ])\n\n if (!children) {\n return null\n }\n\n return (\n <div\n ref={tooltipContainerRef}\n className={classNames(styles.LegacyTooltip, className)}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n data-testid={TOOLTIP_TEST_ID}\n {...otherProps}\n >\n {children}\n {show && TooltipComponent}\n </div>\n )\n })\n)\n"],"names":["TOOLTIP_TEST_ID","TOOLTIP_CONTENT_TEST_ID","LegacyTooltip","memo","forwardRef","as","contentTestId","className","contentStyle","contentClassName","contentWrapperStyle","contentWrapperClassName","content","lazy","placement","disabled","offset","keepInContainer","allowHover","delayShow","delayHide","children","otherProps","forwardedRef","window","useWindow","show","setShow","useState","didMount","setDidMount","tooltipContainerRef","useRef","timerRef","useEffect","hideTooltipContentWhenDisabled","updateDidMount","prev","handleMouseEnter","useCallback","current","clearTimeout","setTimeout","handleMouseLeave","TooltipComponent","useMemo","React","createElement","LegacyTooltipContent","tooltipContainer","Object","assign","ref","classNames","styles","onMouseEnter","onMouseLeave"],"mappings":";;;;;;AAsBO,MAAMA,eAAe,GAAG,iBAAgB;AACxC,MAAMC,uBAAuB,GAAG,yBAAwB;;AAE/D;AACA;AACA;AACO,MAAMC,aAAa,gBAAGC,IAAI,cAC/BC,UAAU,CAAC,SAASF,aAAaA,CAC/B;EACEG,EAAE;AACFC,EAAAA,aAAa,GAAGL,uBAAuB;EACvCM,SAAS;EACTC,YAAY;EACZC,gBAAgB;EAChBC,mBAAmB;EACnBC,uBAAuB;AACvBC,EAAAA,OAAO,GAAG,IAAI;AACdC,EAAAA,IAAI,GAAG,KAAK;AAAE;AACdC,EAAAA,SAAS,GAAG,eAAe;AAC3BC,EAAAA,QAAQ,GAAG,KAAK;AAChBC,EAAAA,MAAM,GAAG,CAAC;AACVC,EAAAA,eAAe,GAAG,KAAK;AACvBC,EAAAA,UAAU,GAAG,KAAK;AAClBC,EAAAA,SAAS,GAAG,CAAC;AACbC,EAAAA,SAAS,GAAG,CAAC;EACbC,QAAQ;EACR,GAAGC,UAAAA;AACe,CAAC,EACrBC,YAAsB,EACtB;EACA,MAAM;AAAEC,IAAAA,MAAAA;GAAQ,GAAGC,SAAS,EAAE,CAAA;EAE9B,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAGC,QAAQ,CAAC,KAAK,CAAC,CAAA;EACvC,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGF,QAAQ,CAACF,IAAI,CAAC,CAAA;AAE9C,EAAA,MAAMK,mBAAmB,GAAGC,MAAM,CAAiB,IAAI,CAAC,CAAA;AACxD,EAAA,MAAMC,QAAQ,GAAGD,MAAM,EAAoC,CAAA;AAE3DE,EAAAA,SAAS,CACP,SAASC,8BAA8BA,GAAG;AACxC,IAAA,IAAIpB,QAAQ,EAAE;MACZY,OAAO,CAAC,KAAK,CAAC,CAAA;AAChB,KAAA;AACF,GAAC,EACD,CAACZ,QAAQ,CACX,CAAC,CAAA;AAEDmB,EAAAA,SAAS,CACP,SAASE,cAAcA,GAAG;AACxBN,IAAAA,WAAW,CAAEO,IAAI,IAAKA,IAAI,IAAIX,IAAI,CAAC,CAAA;AACrC,GAAC,EACD,CAACA,IAAI,CACP,CAAC,CAAA;AAED,EAAA,MAAMY,gBAAgB,GAAGC,WAAW,CAAC,MAAM;AACzC,IAAA,IAAIxB,QAAQ,EAAE;AACZ,MAAA,OAAA;AACF,KAAA;IAEA,IAAIkB,QAAQ,CAACO,OAAO,EAAE;AACpBC,MAAAA,YAAY,CAACR,QAAQ,CAACO,OAAO,CAAC,CAAA;AAChC,KAAA;AAEAP,IAAAA,QAAQ,CAACO,OAAO,GAAGhB,MAAM,CAACkB,UAAU,CAAC,MAAM;MACzCf,OAAO,CAAC,IAAI,CAAC,CAAA;KACd,EAAER,SAAS,CAAC,CAAA;GACd,EAAE,CAACA,SAAS,EAAEJ,QAAQ,EAAES,MAAM,CAAC,CAAC,CAAA;AAEjC,EAAA,MAAMmB,gBAAgB,GAAGJ,WAAW,CAAC,MAAM;AACzC,IAAA,IAAIxB,QAAQ,EAAE;AACZ,MAAA,OAAA;AACF,KAAA;IAEA,IAAIkB,QAAQ,CAACO,OAAO,EAAE;AACpBC,MAAAA,YAAY,CAACR,QAAQ,CAACO,OAAO,CAAC,CAAA;AAChC,KAAA;AAEAP,IAAAA,QAAQ,CAACO,OAAO,GAAGhB,MAAM,CAACkB,UAAU,CAAC,MAAM;MACzCf,OAAO,CAAC,KAAK,CAAC,CAAA;KACf,EAAEP,SAAS,CAAC,CAAA;GACd,EAAE,CAACA,SAAS,EAAEL,QAAQ,EAAES,MAAM,CAAC,CAAC,CAAA;AAEjC,EAAA,MAAMoB,gBAAgB,GAAGC,OAAO,CAAC,MAAM;AACrC,IAAA,IAAI,CAAChC,IAAI,IAAIgB,QAAQ,EAAE;AACrB,MAAA,oBACEiB,cAAA,CAAAC,aAAA,CAACC,oBAAoB,EAAA;AACnB3C,QAAAA,EAAE,EAAEA,EAAG;AACPO,QAAAA,OAAO,EAAEA,OAAQ;AACjBJ,QAAAA,YAAY,EAAEA,YAAa;AAC3BC,QAAAA,gBAAgB,EAAEA,gBAAiB;AACnCC,QAAAA,mBAAmB,EAAEA,mBAAoB;AACzCC,QAAAA,uBAAuB,EAAEA,uBAAwB;AACjDI,QAAAA,QAAQ,EAAEA,QAAS;AACnBD,QAAAA,SAAS,EAAEA,SAAU;AACrBE,QAAAA,MAAM,EAAEA,MAAO;AACfE,QAAAA,UAAU,EAAEA,UAAW;AACvBD,QAAAA,eAAe,EAAEA,eAAgB;QACjCgC,gBAAgB,EAAElB,mBAAmB,CAACS,OAAQ;AAC9CjB,QAAAA,YAAY,EAAEA,YAAa;QAC3B,aAAajB,EAAAA,aAAAA;AAAc,OAC5B,CAAC,CAAA;AAEN,KAAA;AAEA,IAAA,OAAO,IAAI,CAAA;AACb,GAAC,EAAE,CACDO,IAAI,EACJgB,QAAQ,EACRxB,EAAE,EACFO,OAAO,EACPJ,YAAY,EACZC,gBAAgB,EAChBC,mBAAmB,EACnBC,uBAAuB,EACvBI,QAAQ,EACRD,SAAS,EACTE,MAAM,EACNE,UAAU,EACVD,eAAe,EACfM,YAAY,EACZjB,aAAa,CACd,CAAC,CAAA;EAEF,IAAI,CAACe,QAAQ,EAAE;AACb,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AAEA,EAAA,oBACEyB,cAAA,CAAAC,aAAA,CAAAG,KAAAA,EAAAA,MAAA,CAAAC,MAAA,CAAA;AACEC,IAAAA,GAAG,EAAErB,mBAAoB;IACzBxB,SAAS,EAAE8C,UAAU,CAACC,MAAM,CAACpD,aAAa,EAAEK,SAAS,CAAE;AACvDgD,IAAAA,YAAY,EAAEjB,gBAAiB;AAC/BkB,IAAAA,YAAY,EAAEb,gBAAiB;IAC/B,aAAa3C,EAAAA,eAAAA;AAAgB,GAAA,EACzBsB,UAAU,CAEbD,EAAAA,QAAQ,EACRK,IAAI,IAAIkB,gBACN,CAAC,CAAA;AAEV,CAAC,CACH;;;;"}
1
+ {"version":3,"file":"LegacyTooltip.mjs","sources":["../../../../src/components/LegacyTooltip/LegacyTooltip.tsx"],"sourcesContent":["'use client'\n\nimport React, {\n type Ref,\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport classNames from 'classnames'\n\nimport { useWindow } from '~/src/components/WindowProvider'\n\nimport { type LegacyTooltipProps } from './LegacyTooltip.types'\nimport { LegacyTooltipContent } from './LegacyTooltipContent'\n\nimport styles from './LegacyTooltip.module.scss'\n\nexport const TOOLTIP_TEST_ID = 'bezier-tooltip'\nexport const TOOLTIP_CONTENT_TEST_ID = 'bezier-tooltip-content'\n\n/**\n * @deprecated Use `Tooltip` instead. It may be removed in the next major version.\n */\nexport const LegacyTooltip = memo(\n forwardRef(function LegacyTooltip(\n {\n as,\n contentTestId = TOOLTIP_CONTENT_TEST_ID,\n className,\n contentStyle,\n contentClassName,\n contentWrapperStyle,\n contentWrapperClassName,\n content = null,\n lazy = false, // optional prop 에서 추후 default behavior 를 lazy 하게 바꿀 예정\n placement = 'bottom-center',\n disabled = false,\n offset = 4,\n keepInContainer = false,\n allowHover = false,\n delayShow = 0,\n delayHide = 0,\n children,\n ...otherProps\n }: LegacyTooltipProps,\n forwardedRef: Ref<any>\n ) {\n const { window } = useWindow()\n\n const [show, setShow] = useState(false)\n const [didMount, setDidMount] = useState(show)\n\n const tooltipContainerRef = useRef<HTMLDivElement>(null)\n const timerRef = useRef<ReturnType<Window['setTimeout']>>()\n\n useEffect(\n function hideTooltipContentWhenDisabled() {\n if (disabled) {\n setShow(false)\n }\n },\n [disabled]\n )\n\n useEffect(\n function updateDidMount() {\n setDidMount((prev) => prev || show)\n },\n [show]\n )\n\n const handleMouseEnter = useCallback(() => {\n if (disabled) {\n return\n }\n\n if (timerRef.current) {\n clearTimeout(timerRef.current)\n }\n\n timerRef.current = window.setTimeout(() => {\n setShow(true)\n }, delayShow)\n }, [delayShow, disabled, window])\n\n const handleMouseLeave = useCallback(() => {\n if (disabled) {\n return\n }\n\n if (timerRef.current) {\n clearTimeout(timerRef.current)\n }\n\n timerRef.current = window.setTimeout(() => {\n setShow(false)\n }, delayHide)\n }, [delayHide, disabled, window])\n\n const TooltipComponent = useMemo(() => {\n if (!lazy || didMount) {\n return (\n <LegacyTooltipContent\n as={as}\n content={content}\n contentStyle={contentStyle}\n contentClassName={contentClassName}\n contentWrapperStyle={contentWrapperStyle}\n contentWrapperClassName={contentWrapperClassName}\n disabled={disabled}\n placement={placement}\n offset={offset}\n allowHover={allowHover}\n keepInContainer={keepInContainer}\n tooltipContainer={tooltipContainerRef.current}\n forwardedRef={forwardedRef}\n data-testid={contentTestId}\n />\n )\n }\n\n return null\n }, [\n lazy,\n didMount,\n as,\n content,\n contentStyle,\n contentClassName,\n contentWrapperStyle,\n contentWrapperClassName,\n disabled,\n placement,\n offset,\n allowHover,\n keepInContainer,\n forwardedRef,\n contentTestId,\n ])\n\n if (!children) {\n return null\n }\n\n return (\n <div\n ref={tooltipContainerRef}\n className={classNames(styles.LegacyTooltip, className)}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n data-testid={TOOLTIP_TEST_ID}\n {...otherProps}\n >\n {children}\n {show && TooltipComponent}\n </div>\n )\n })\n)\n"],"names":["TOOLTIP_TEST_ID","TOOLTIP_CONTENT_TEST_ID","LegacyTooltip","memo","forwardRef","as","contentTestId","className","contentStyle","contentClassName","contentWrapperStyle","contentWrapperClassName","content","lazy","placement","disabled","offset","keepInContainer","allowHover","delayShow","delayHide","children","otherProps","forwardedRef","window","useWindow","show","setShow","useState","didMount","setDidMount","tooltipContainerRef","useRef","timerRef","useEffect","hideTooltipContentWhenDisabled","updateDidMount","prev","handleMouseEnter","useCallback","current","clearTimeout","setTimeout","handleMouseLeave","TooltipComponent","useMemo","React","createElement","LegacyTooltipContent","tooltipContainer","Object","assign","ref","classNames","styles","onMouseEnter","onMouseLeave"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"LegacyTooltipContent.mjs","sources":["../../../../src/components/LegacyTooltip/LegacyTooltipContent.tsx"],"sourcesContent":["'use client'\n\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport ReactDOM from 'react-dom'\n\nimport classNames from 'classnames'\n\nimport useEventHandler from '~/src/hooks/useEventHandler'\nimport useMergeRefs from '~/src/hooks/useMergeRefs'\nimport { isArray, isEmpty, isString } from '~/src/utils/type'\n\nimport { Text } from '~/src/components/Text'\nimport { InvertedThemeProvider } from '~/src/components/ThemeProvider'\nimport { useRootElement } from '~/src/components/WindowProvider'\n\nimport { type LegacyTooltipContentProps } from './LegacyTooltip.types'\nimport { getReplacement, getTooltipStyle } from './utils'\n\nimport styles from './LegacyTooltip.module.scss'\n\nfunction getNewLineComponent(strContent: string) {\n return strContent.split('\\n').map((str, index) => {\n if (index === 0) {\n return (\n <Text\n key={str}\n typo=\"14\"\n >\n {str}\n </Text>\n )\n }\n\n return (\n <React.Fragment key={str}>\n <br />\n <Text typo=\"14\">{str}</Text>\n </React.Fragment>\n )\n })\n}\n\nfunction getContentComponent(content?: React.ReactNode) {\n if (isArray(content)) {\n return content.map((item) => {\n if (isString(item)) {\n return getNewLineComponent(item)\n }\n\n return item\n })\n }\n\n if (isString(content)) {\n return getNewLineComponent(content)\n }\n\n return content\n}\n\nexport const LegacyTooltipContent: React.FC<LegacyTooltipContentProps> = ({\n as,\n content,\n contentStyle,\n contentClassName,\n contentWrapperClassName,\n contentWrapperStyle: givenContentWrapperStyle,\n disabled = false,\n keepInContainer = false,\n placement = 'bottom-center',\n tooltipContainer,\n offset = 4,\n allowHover = false,\n forwardedRef,\n ...rest\n}) => {\n const rootElement = useRootElement()\n\n const tooltipRef = useRef<HTMLDivElement>(null)\n const tooltipWrapperRef = useRef<HTMLDivElement>(null)\n const mergedRef = useMergeRefs<HTMLDivElement>(tooltipRef, forwardedRef)\n const [replacement, setReplacement] = useState(placement)\n\n const handleClickTooltip = useCallback(\n (event: HTMLElementEventMap['click']) => {\n event.stopPropagation()\n },\n []\n )\n\n useEventHandler(tooltipRef.current, 'click', handleClickTooltip)\n\n useEffect(() => {\n if (!tooltipRef.current) {\n return\n }\n const newPlacement = getReplacement({\n tooltip: tooltipRef.current,\n keepInContainer,\n placement,\n rootElement,\n })\n setReplacement(newPlacement)\n }, [rootElement, keepInContainer, placement])\n\n const ContentComponent = useMemo(\n () => getContentComponent(content),\n [content]\n )\n\n const contentWrapperStyle = useMemo(() => {\n if (tooltipContainer) {\n return {\n ...givenContentWrapperStyle,\n ...getTooltipStyle({\n tooltipContainer,\n placement: replacement,\n offset,\n allowHover,\n }),\n }\n }\n\n return {}\n }, [\n tooltipContainer,\n givenContentWrapperStyle,\n replacement,\n offset,\n allowHover,\n ])\n\n const Comp = as ?? 'div'\n\n return ReactDOM.createPortal(\n <InvertedThemeProvider>\n <div\n style={contentWrapperStyle}\n className={classNames(\n styles.LegacyTooltipContentWrapper,\n (disabled || isEmpty(content)) && styles.disabled,\n contentWrapperClassName\n )}\n ref={tooltipWrapperRef}\n >\n <Comp\n style={contentStyle}\n className={classNames(styles.LegacyTooltipContent, contentClassName)}\n ref={mergedRef}\n {...rest}\n >\n <Text\n color=\"txt-black-darkest\"\n truncated={20}\n typo=\"13\"\n >\n {ContentComponent}\n </Text>\n </Comp>\n </div>\n </InvertedThemeProvider>,\n rootElement\n )\n}\n"],"names":["getNewLineComponent","strContent","split","map","str","index","React","createElement","Text","key","typo","Fragment","getContentComponent","content","isArray","item","isString","LegacyTooltipContent","as","contentStyle","contentClassName","contentWrapperClassName","contentWrapperStyle","givenContentWrapperStyle","disabled","keepInContainer","placement","tooltipContainer","offset","allowHover","forwardedRef","rest","rootElement","useRootElement","tooltipRef","useRef","tooltipWrapperRef","mergedRef","useMergeRefs","replacement","setReplacement","useState","handleClickTooltip","useCallback","event","stopPropagation","useEventHandler","current","useEffect","newPlacement","getReplacement","tooltip","ContentComponent","useMemo","getTooltipStyle","Comp","ReactDOM","createPortal","InvertedThemeProvider","style","className","classNames","styles","LegacyTooltipContentWrapper","isEmpty","ref","Object","assign","color","truncated"],"mappings":"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"}
1
+ {"version":3,"file":"LegacyTooltipContent.mjs","sources":["../../../../src/components/LegacyTooltip/LegacyTooltipContent.tsx"],"sourcesContent":["'use client'\n\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport ReactDOM from 'react-dom'\n\nimport classNames from 'classnames'\n\nimport useEventHandler from '~/src/hooks/useEventHandler'\nimport useMergeRefs from '~/src/hooks/useMergeRefs'\nimport { isArray, isEmpty, isString } from '~/src/utils/type'\n\nimport { Text } from '~/src/components/Text'\nimport { InvertedThemeProvider } from '~/src/components/ThemeProvider'\nimport { useRootElement } from '~/src/components/WindowProvider'\n\nimport { type LegacyTooltipContentProps } from './LegacyTooltip.types'\nimport { getReplacement, getTooltipStyle } from './utils'\n\nimport styles from './LegacyTooltip.module.scss'\n\nfunction getNewLineComponent(strContent: string) {\n return strContent.split('\\n').map((str, index) => {\n if (index === 0) {\n return (\n <Text\n key={str}\n typo=\"14\"\n >\n {str}\n </Text>\n )\n }\n\n return (\n <React.Fragment key={str}>\n <br />\n <Text typo=\"14\">{str}</Text>\n </React.Fragment>\n )\n })\n}\n\nfunction getContentComponent(content?: React.ReactNode) {\n if (isArray(content)) {\n return content.map((item) => {\n if (isString(item)) {\n return getNewLineComponent(item)\n }\n\n return item\n })\n }\n\n if (isString(content)) {\n return getNewLineComponent(content)\n }\n\n return content\n}\n\nexport const LegacyTooltipContent: React.FC<LegacyTooltipContentProps> = ({\n as,\n content,\n contentStyle,\n contentClassName,\n contentWrapperClassName,\n contentWrapperStyle: givenContentWrapperStyle,\n disabled = false,\n keepInContainer = false,\n placement = 'bottom-center',\n tooltipContainer,\n offset = 4,\n allowHover = false,\n forwardedRef,\n ...rest\n}) => {\n const rootElement = useRootElement()\n\n const tooltipRef = useRef<HTMLDivElement>(null)\n const tooltipWrapperRef = useRef<HTMLDivElement>(null)\n const mergedRef = useMergeRefs<HTMLDivElement>(tooltipRef, forwardedRef)\n const [replacement, setReplacement] = useState(placement)\n\n const handleClickTooltip = useCallback(\n (event: HTMLElementEventMap['click']) => {\n event.stopPropagation()\n },\n []\n )\n\n useEventHandler(tooltipRef.current, 'click', handleClickTooltip)\n\n useEffect(() => {\n if (!tooltipRef.current) {\n return\n }\n const newPlacement = getReplacement({\n tooltip: tooltipRef.current,\n keepInContainer,\n placement,\n rootElement,\n })\n setReplacement(newPlacement)\n }, [rootElement, keepInContainer, placement])\n\n const ContentComponent = useMemo(\n () => getContentComponent(content),\n [content]\n )\n\n const contentWrapperStyle = useMemo(() => {\n if (tooltipContainer) {\n return {\n ...givenContentWrapperStyle,\n ...getTooltipStyle({\n tooltipContainer,\n placement: replacement,\n offset,\n allowHover,\n }),\n }\n }\n\n return {}\n }, [\n tooltipContainer,\n givenContentWrapperStyle,\n replacement,\n offset,\n allowHover,\n ])\n\n const Comp = as ?? 'div'\n\n return ReactDOM.createPortal(\n <InvertedThemeProvider>\n <div\n style={contentWrapperStyle}\n className={classNames(\n styles.LegacyTooltipContentWrapper,\n (disabled || isEmpty(content)) && styles.disabled,\n contentWrapperClassName\n )}\n ref={tooltipWrapperRef}\n >\n <Comp\n style={contentStyle}\n className={classNames(styles.LegacyTooltipContent, contentClassName)}\n ref={mergedRef}\n {...rest}\n >\n <Text\n color=\"txt-black-darkest\"\n truncated={20}\n typo=\"13\"\n >\n {ContentComponent}\n </Text>\n </Comp>\n </div>\n </InvertedThemeProvider>,\n rootElement\n )\n}\n"],"names":["getNewLineComponent","strContent","split","map","str","index","React","createElement","Text","key","typo","Fragment","getContentComponent","content","isArray","item","isString","LegacyTooltipContent","as","contentStyle","contentClassName","contentWrapperClassName","contentWrapperStyle","givenContentWrapperStyle","disabled","keepInContainer","placement","tooltipContainer","offset","allowHover","forwardedRef","rest","rootElement","useRootElement","tooltipRef","useRef","tooltipWrapperRef","mergedRef","useMergeRefs","replacement","setReplacement","useState","handleClickTooltip","useCallback","event","stopPropagation","useEventHandler","current","useEffect","newPlacement","getReplacement","tooltip","ContentComponent","useMemo","getTooltipStyle","Comp","ReactDOM","createPortal","InvertedThemeProvider","style","className","classNames","styles","LegacyTooltipContentWrapper","isEmpty","ref","Object","assign","color","truncated"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.mjs","sources":["../../../../src/components/LegacyTooltip/utils.ts"],"sourcesContent":["import {\n type GetReplacement,\n type GetTooltipStyle,\n type LegacyTooltipPosition,\n} from './LegacyTooltip.types'\n\nexport function getReplacement({\n tooltip,\n keepInContainer,\n placement,\n rootElement,\n}: GetReplacement): LegacyTooltipPosition {\n if (!keepInContainer) {\n return placement\n }\n\n const {\n width: tooltipWidth,\n height: tooltipHeight,\n top: tooltipTop,\n left: tooltipLeft,\n } = tooltip.getBoundingClientRect()\n\n const {\n width: rootWidth,\n height: rootHeight,\n top: rootTop,\n left: rootLeft,\n } = rootElement.getBoundingClientRect()\n\n const isOverTop = tooltipTop < rootTop\n const isOverBottom = tooltipTop + tooltipHeight > rootTop + rootHeight\n const isOverLeft = tooltipLeft < rootLeft\n const isOverRight = tooltipLeft + tooltipWidth > rootLeft + rootWidth\n\n if (isOverTop) {\n if (isOverLeft) {\n return 'bottom-left'\n }\n if (isOverRight) {\n return 'bottom-right'\n }\n return 'bottom-center'\n }\n\n if (isOverBottom) {\n if (isOverLeft) {\n return 'top-left'\n }\n if (isOverRight) {\n return 'top-right'\n }\n return 'top-center'\n }\n\n if (isOverLeft) {\n if (isOverTop) {\n return 'right-top'\n }\n if (isOverBottom) {\n return 'right-bottom'\n }\n return 'right-center'\n }\n\n if (isOverRight) {\n if (isOverTop) {\n return 'left-top'\n }\n if (isOverBottom) {\n return 'left-bottom'\n }\n return 'left-center'\n }\n\n return placement\n}\n\nexport function getTooltipStyle({\n tooltipContainer,\n placement,\n offset,\n allowHover,\n}: GetTooltipStyle) {\n const {\n top: containerTop,\n left: containerLeft,\n width: containerWidth,\n height: containerHeight,\n } = tooltipContainer.getBoundingClientRect()\n\n let top = containerTop\n let left = containerLeft\n let translateX = 0\n let translateY = 0\n\n let offsetTop = 0\n let offsetRight = 0\n let offsetBottom = 0\n let offsetLeft = 0\n let offsetStyle = {}\n\n switch (placement) {\n case 'top-center':\n case 'top-left':\n case 'top-right':\n translateY = -100\n offsetBottom = offset\n break\n case 'right-center':\n case 'right-top':\n case 'right-bottom':\n left += containerWidth\n offsetLeft = offset\n break\n case 'bottom-center':\n case 'bottom-left':\n case 'bottom-right':\n top += containerHeight\n offsetTop = offset\n break\n case 'left-center':\n case 'left-top':\n case 'left-bottom':\n translateX = -100\n offsetRight = offset\n break\n }\n\n switch (placement) {\n case 'top-center':\n case 'bottom-center':\n translateX = -50\n left += containerWidth / 2\n break\n case 'top-right':\n case 'bottom-right':\n translateX = -100\n left += containerWidth\n break\n case 'right-center':\n case 'left-center':\n translateY = -50\n top += containerHeight / 2\n break\n case 'right-bottom':\n case 'left-bottom':\n translateY = -100\n top += containerHeight\n break\n }\n\n if (allowHover) {\n offsetStyle = {\n paddingTop: offsetTop,\n paddingRight: offsetRight,\n paddingBottom: offsetBottom,\n paddingLeft: offsetLeft,\n }\n } else {\n top += offsetTop - offsetBottom\n left += offsetLeft - offsetRight\n }\n\n return {\n position: 'fixed',\n top,\n left,\n transform: `translate(${translateX}%, ${translateY}%)`,\n ...offsetStyle,\n }\n}\n"],"names":["getReplacement","tooltip","keepInContainer","placement","rootElement","width","tooltipWidth","height","tooltipHeight","top","tooltipTop","left","tooltipLeft","getBoundingClientRect","rootWidth","rootHeight","rootTop","rootLeft","isOverTop","isOverBottom","isOverLeft","isOverRight","getTooltipStyle","tooltipContainer","offset","allowHover","containerTop","containerLeft","containerWidth","containerHeight","translateX","translateY","offsetTop","offsetRight","offsetBottom","offsetLeft","offsetStyle","paddingTop","paddingRight","paddingBottom","paddingLeft","position","transform"],"mappings":"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"}
1
+ {"version":3,"file":"utils.mjs","sources":["../../../../src/components/LegacyTooltip/utils.ts"],"sourcesContent":["import {\n type GetReplacement,\n type GetTooltipStyle,\n type LegacyTooltipPosition,\n} from './LegacyTooltip.types'\n\nexport function getReplacement({\n tooltip,\n keepInContainer,\n placement,\n rootElement,\n}: GetReplacement): LegacyTooltipPosition {\n if (!keepInContainer) {\n return placement\n }\n\n const {\n width: tooltipWidth,\n height: tooltipHeight,\n top: tooltipTop,\n left: tooltipLeft,\n } = tooltip.getBoundingClientRect()\n\n const {\n width: rootWidth,\n height: rootHeight,\n top: rootTop,\n left: rootLeft,\n } = rootElement.getBoundingClientRect()\n\n const isOverTop = tooltipTop < rootTop\n const isOverBottom = tooltipTop + tooltipHeight > rootTop + rootHeight\n const isOverLeft = tooltipLeft < rootLeft\n const isOverRight = tooltipLeft + tooltipWidth > rootLeft + rootWidth\n\n if (isOverTop) {\n if (isOverLeft) {\n return 'bottom-left'\n }\n if (isOverRight) {\n return 'bottom-right'\n }\n return 'bottom-center'\n }\n\n if (isOverBottom) {\n if (isOverLeft) {\n return 'top-left'\n }\n if (isOverRight) {\n return 'top-right'\n }\n return 'top-center'\n }\n\n if (isOverLeft) {\n if (isOverTop) {\n return 'right-top'\n }\n if (isOverBottom) {\n return 'right-bottom'\n }\n return 'right-center'\n }\n\n if (isOverRight) {\n if (isOverTop) {\n return 'left-top'\n }\n if (isOverBottom) {\n return 'left-bottom'\n }\n return 'left-center'\n }\n\n return placement\n}\n\nexport function getTooltipStyle({\n tooltipContainer,\n placement,\n offset,\n allowHover,\n}: GetTooltipStyle) {\n const {\n top: containerTop,\n left: containerLeft,\n width: containerWidth,\n height: containerHeight,\n } = tooltipContainer.getBoundingClientRect()\n\n let top = containerTop\n let left = containerLeft\n let translateX = 0\n let translateY = 0\n\n let offsetTop = 0\n let offsetRight = 0\n let offsetBottom = 0\n let offsetLeft = 0\n let offsetStyle = {}\n\n switch (placement) {\n case 'top-center':\n case 'top-left':\n case 'top-right':\n translateY = -100\n offsetBottom = offset\n break\n case 'right-center':\n case 'right-top':\n case 'right-bottom':\n left += containerWidth\n offsetLeft = offset\n break\n case 'bottom-center':\n case 'bottom-left':\n case 'bottom-right':\n top += containerHeight\n offsetTop = offset\n break\n case 'left-center':\n case 'left-top':\n case 'left-bottom':\n translateX = -100\n offsetRight = offset\n break\n }\n\n switch (placement) {\n case 'top-center':\n case 'bottom-center':\n translateX = -50\n left += containerWidth / 2\n break\n case 'top-right':\n case 'bottom-right':\n translateX = -100\n left += containerWidth\n break\n case 'right-center':\n case 'left-center':\n translateY = -50\n top += containerHeight / 2\n break\n case 'right-bottom':\n case 'left-bottom':\n translateY = -100\n top += containerHeight\n break\n }\n\n if (allowHover) {\n offsetStyle = {\n paddingTop: offsetTop,\n paddingRight: offsetRight,\n paddingBottom: offsetBottom,\n paddingLeft: offsetLeft,\n }\n } else {\n top += offsetTop - offsetBottom\n left += offsetLeft - offsetRight\n }\n\n return {\n position: 'fixed',\n top,\n left,\n transform: `translate(${translateX}%, ${translateY}%)`,\n ...offsetStyle,\n }\n}\n"],"names":["getReplacement","tooltip","keepInContainer","placement","rootElement","width","tooltipWidth","height","tooltipHeight","top","tooltipTop","left","tooltipLeft","getBoundingClientRect","rootWidth","rootHeight","rootTop","rootLeft","isOverTop","isOverBottom","isOverLeft","isOverRight","getTooltipStyle","tooltipContainer","offset","allowHover","containerTop","containerLeft","containerWidth","containerHeight","translateX","translateY","offsetTop","offsetRight","offsetBottom","offsetLeft","offsetStyle","paddingTop","paddingRight","paddingBottom","paddingLeft","position","transform"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ListItem.mjs","sources":["../../../../src/components/ListItem/ListItem.tsx"],"sourcesContent":["'use client'\n\nimport React, { forwardRef } from 'react'\n\nimport { isBezierIcon } from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport { isEmpty, isNil, isString } from '~/src/utils/type'\n\nimport { Icon } from '~/src/components/Icon'\nimport { Text } from '~/src/components/Text'\n\nimport { type ListItemProps } from './ListItem.types'\n\nimport styles from './ListItem.module.scss'\n\ntype ListItemRef = HTMLDivElement & HTMLAnchorElement\n\nfunction renderNewLineComponent(value: string) {\n return value.split('\\n').map((str, index) => (\n // eslint-disable-next-line react/no-array-index-key\n <React.Fragment key={index}>\n {index !== 0 && <br />}\n {str}\n </React.Fragment>\n ))\n}\n\nexport const LIST_ITEM_TEST_ID = 'bezier-list-item'\n\nexport const ListItem = forwardRef<ListItemRef, ListItemProps>(\n function ListItem(\n {\n className,\n as,\n variant = 'monochrome',\n size = 's',\n content,\n description,\n descriptionMaxLines,\n leftContent,\n rightContent,\n active = false,\n focused = false,\n disabled = false,\n clickable: clickableProp = false,\n href,\n onClick,\n ...rest\n },\n forwardedRef\n ) {\n const isLink = !isEmpty(href)\n const Comp = isLink ? 'a' : ((as ?? 'div') as 'div')\n const clickable = isLink || clickableProp || !isNil(onClick)\n\n return (\n <Comp\n {...(isLink && {\n href,\n draggable: false,\n target: '_blank',\n rel: 'noopener noreferrer',\n })}\n className={classNames(\n styles.ListItem,\n styles[`size-${size}`],\n styles[`variant-${variant}`],\n disabled && styles.disabled,\n focused && styles.focused,\n active && styles.active,\n clickable && styles.clickable,\n className\n )}\n ref={forwardedRef}\n onClick={!disabled ? onClick : undefined}\n data-testid={LIST_ITEM_TEST_ID}\n {...rest}\n >\n <div className={styles.ListItemContent}>\n {!isNil(leftContent) && (\n <div className={styles.ListItemLeftContent}>\n {isBezierIcon(leftContent) ? (\n <Icon\n className={styles.ListItemLeftIcon}\n source={leftContent}\n size=\"s\"\n />\n ) : (\n leftContent\n )}\n </div>\n )}\n\n <div className={styles.ListItemTitle}>\n {isString(content) ? (\n <Text\n truncated\n typo={size === 'l' ? '16' : '14'}\n >\n {content}\n </Text>\n ) : (\n content\n )}\n </div>\n\n {description && (\n <div className={styles.ListItemDescription}>\n <Text\n typo=\"12\"\n color=\"txt-black-darker\"\n truncated={descriptionMaxLines}\n >\n {isString(description)\n ? renderNewLineComponent(description)\n : description}\n </Text>\n </div>\n )}\n </div>\n\n {rightContent && (\n <div className={styles.ListItemRightContent}>{rightContent}</div>\n )}\n </Comp>\n )\n }\n)\n"],"names":["renderNewLineComponent","value","split","map","str","index","React","createElement","Fragment","key","LIST_ITEM_TEST_ID","ListItem","forwardRef","className","as","variant","size","content","description","descriptionMaxLines","leftContent","rightContent","active","focused","disabled","clickable","clickableProp","href","onClick","rest","forwardedRef","isLink","isEmpty","Comp","isNil","Object","assign","draggable","target","rel","classNames","styles","ref","undefined","ListItemContent","ListItemLeftContent","isBezierIcon","Icon","ListItemLeftIcon","source","ListItemTitle","isString","Text","truncated","typo","ListItemDescription","color","ListItemRightContent"],"mappings":"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"}
1
+ {"version":3,"file":"ListItem.mjs","sources":["../../../../src/components/ListItem/ListItem.tsx"],"sourcesContent":["'use client'\n\nimport React, { forwardRef } from 'react'\n\nimport { isBezierIcon } from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport { isEmpty, isNil, isString } from '~/src/utils/type'\n\nimport { Icon } from '~/src/components/Icon'\nimport { Text } from '~/src/components/Text'\n\nimport { type ListItemProps } from './ListItem.types'\n\nimport styles from './ListItem.module.scss'\n\ntype ListItemRef = HTMLDivElement & HTMLAnchorElement\n\nfunction renderNewLineComponent(value: string) {\n return value.split('\\n').map((str, index) => (\n // eslint-disable-next-line react/no-array-index-key\n <React.Fragment key={index}>\n {index !== 0 && <br />}\n {str}\n </React.Fragment>\n ))\n}\n\nexport const LIST_ITEM_TEST_ID = 'bezier-list-item'\n\nexport const ListItem = forwardRef<ListItemRef, ListItemProps>(\n function ListItem(\n {\n className,\n as,\n variant = 'monochrome',\n size = 's',\n content,\n description,\n descriptionMaxLines,\n leftContent,\n rightContent,\n active = false,\n focused = false,\n disabled = false,\n clickable: clickableProp = false,\n href,\n onClick,\n ...rest\n },\n forwardedRef\n ) {\n const isLink = !isEmpty(href)\n const Comp = isLink ? 'a' : ((as ?? 'div') as 'div')\n const clickable = isLink || clickableProp || !isNil(onClick)\n\n return (\n <Comp\n {...(isLink && {\n href,\n draggable: false,\n target: '_blank',\n rel: 'noopener noreferrer',\n })}\n className={classNames(\n styles.ListItem,\n styles[`size-${size}`],\n styles[`variant-${variant}`],\n disabled && styles.disabled,\n focused && styles.focused,\n active && styles.active,\n clickable && styles.clickable,\n className\n )}\n ref={forwardedRef}\n onClick={!disabled ? onClick : undefined}\n data-testid={LIST_ITEM_TEST_ID}\n {...rest}\n >\n <div className={styles.ListItemContent}>\n {!isNil(leftContent) && (\n <div className={styles.ListItemLeftContent}>\n {isBezierIcon(leftContent) ? (\n <Icon\n className={styles.ListItemLeftIcon}\n source={leftContent}\n size=\"s\"\n />\n ) : (\n leftContent\n )}\n </div>\n )}\n\n <div className={styles.ListItemTitle}>\n {isString(content) ? (\n <Text\n truncated\n typo={size === 'l' ? '16' : '14'}\n >\n {content}\n </Text>\n ) : (\n content\n )}\n </div>\n\n {description && (\n <div className={styles.ListItemDescription}>\n <Text\n typo=\"12\"\n color=\"txt-black-darker\"\n truncated={descriptionMaxLines}\n >\n {isString(description)\n ? renderNewLineComponent(description)\n : description}\n </Text>\n </div>\n )}\n </div>\n\n {rightContent && (\n <div className={styles.ListItemRightContent}>{rightContent}</div>\n )}\n </Comp>\n )\n }\n)\n"],"names":["renderNewLineComponent","value","split","map","str","index","React","createElement","Fragment","key","LIST_ITEM_TEST_ID","ListItem","forwardRef","className","as","variant","size","content","description","descriptionMaxLines","leftContent","rightContent","active","focused","disabled","clickable","clickableProp","href","onClick","rest","forwardedRef","isLink","isEmpty","Comp","isNil","Object","assign","draggable","target","rel","classNames","styles","ref","undefined","ListItemContent","ListItemLeftContent","isBezierIcon","Icon","ListItemLeftIcon","source","ListItemTitle","isString","Text","truncated","typo","ListItemDescription","color","ListItemRightContent"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.mjs","sources":["../../../../src/components/Modal/Modal.tsx"],"sourcesContent":["'use client'\n\nimport React, { forwardRef, useCallback, useMemo, useState } from 'react'\n\nimport { CancelIcon } from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport useMergeRefs from '~/src/hooks/useMergeRefs'\nimport { getZIndexClassName } from '~/src/types/props-helpers'\nimport { createContext } from '~/src/utils/react'\nimport { cssDimension } from '~/src/utils/style'\nimport { isNil, isNumber } from '~/src/utils/type'\n\nimport {\n AlphaDialogPrimitive,\n AlphaDialogPrimitiveClose,\n AlphaDialogPrimitiveContent,\n AlphaDialogPrimitiveDescription,\n AlphaDialogPrimitiveOverlay,\n AlphaDialogPrimitivePortal,\n type AlphaDialogPrimitiveProps,\n AlphaDialogPrimitiveTitle,\n AlphaDialogPrimitiveTrigger,\n} from '~/src/components/AlphaDialogPrimitive'\nimport { Button } from '~/src/components/Button'\nimport { Text } from '~/src/components/Text'\nimport { ThemeProvider, useThemeName } from '~/src/components/ThemeProvider'\nimport { VisuallyHidden } from '~/src/components/VisuallyHidden'\nimport { useRootElement } from '~/src/components/WindowProvider'\n\nimport {\n type ModalBodyProps,\n type ModalCloseProps,\n type ModalContentProps,\n type ModalContentPropsContextValue,\n type ModalFooterProps,\n type ModalHeaderProps,\n type ModalProps,\n type ModalTitleSize,\n type ModalTriggerProps,\n} from './Modal.types'\n\nimport styles from './Modal.module.scss'\n\nconst [ModalContainerContextProvider, useModalContainerContext] = createContext<\n HTMLElement | undefined\n>(undefined)\n\nexport { useModalContainerContext }\n\nconst [ModalContentPropsContextProvider, useModalContentPropsContext] =\n createContext<ModalContentPropsContextValue>({\n showCloseIcon: false,\n })\n\n/**\n * `Modal` is a dialog that appears on top of the page.\n *\n * `Modal` is a context of the Modal-related components. It doesn't render any DOM node.\n * It controls the visibility of the entire component and provides\n * handlers and accessibility properties to Modal-related components.\n * @example\n *\n * ```tsx\n * // Anatomy of the Modal\n * <Modal>\n * <ModalTrigger />\n * <ModalContent>\n * <ModalHeader />\n * <ModalBody />\n * <ModalFooter />\n * </ModalContent>\n * </Modal>\n * ```\n */\nexport function Modal({\n children,\n show,\n defaultShow,\n onShow,\n onHide,\n}: ModalProps) {\n const onOpenChange = useCallback<\n NonNullable<AlphaDialogPrimitiveProps['onOpenChange']>\n >(\n (open) => {\n const callback = open ? onShow : onHide\n callback?.()\n },\n [onShow, onHide]\n )\n\n return (\n <AlphaDialogPrimitive\n open={show}\n defaultOpen={defaultShow}\n onOpenChange={onOpenChange}\n >\n {children}\n </AlphaDialogPrimitive>\n )\n}\n\n/**\n * `ModalContent` is a container of the modal content.\n * It creates a portal to render the modal content outside of the DOM tree\n * and renders overlay behind the modal content too.\n */\nexport const ModalContent = forwardRef<HTMLDivElement, ModalContentProps>(\n function ModalContent(\n {\n children,\n style,\n className,\n container: givenContainer,\n showCloseIcon = false,\n preventHideOnOutsideClick = false,\n width = 'max-content',\n height = 'fit-content',\n zIndex = 'modal',\n collisionPadding = { top: 40, bottom: 40 },\n ...rest\n },\n forwardedRef\n ) {\n const rootElement = useRootElement()\n const container = givenContainer ?? rootElement\n const [contentContainer, setContentContainer] = useState<HTMLElement>()\n\n const contentRef = useMergeRefs(\n forwardedRef,\n useCallback((node: HTMLElement | null) => {\n setContentContainer(node ?? undefined)\n }, [])\n )\n\n const overlayStyle = (() => {\n const padding = (() => {\n if (isNumber(collisionPadding)) {\n return `${collisionPadding}px`\n }\n\n const { top, right, bottom, left } = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...collisionPadding,\n }\n\n return `${top}px ${right}px ${bottom}px ${left}px`\n })()\n\n return {\n '--b-modal-collision-padding': padding,\n } as React.CSSProperties\n })()\n\n const propsContextValue = useMemo(\n (): ModalContentPropsContextValue => ({\n showCloseIcon,\n }),\n [showCloseIcon]\n )\n\n return (\n <AlphaDialogPrimitivePortal container={container}>\n <ThemeProvider themeName={useThemeName()}>\n <AlphaDialogPrimitiveOverlay\n style={overlayStyle}\n className={classNames(\n styles.ModalOverlay,\n getZIndexClassName(zIndex)\n )}\n >\n <AlphaDialogPrimitiveContent\n asChild\n onPointerDownOutside={(e) => {\n if (preventHideOnOutsideClick) {\n e.preventDefault()\n }\n }}\n onInteractOutside={(e) => {\n if (preventHideOnOutsideClick) {\n e.preventDefault()\n }\n }}\n >\n <div\n aria-modal=\"true\"\n ref={contentRef}\n style={\n {\n '--b-modal-width': cssDimension(width),\n '--b-modal-height': cssDimension(height),\n ...style,\n } as React.CSSProperties\n }\n className={classNames(styles.ModalContent, className)}\n {...rest}\n >\n <section className={styles.ModalSection}>\n <ModalContainerContextProvider value={contentContainer}>\n <ModalContentPropsContextProvider value={propsContextValue}>\n {children}\n </ModalContentPropsContextProvider>\n </ModalContainerContextProvider>\n\n {/* NOTE: To prevent focusing first on the close button when opening the modal, place the close button behind. */}\n {showCloseIcon && (\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n <ModalClose>\n <Button\n className={styles.CloseIconButton}\n size=\"m\"\n leftContent={CancelIcon}\n colorVariant=\"monochrome-dark\"\n styleVariant=\"tertiary\"\n />\n </ModalClose>\n )}\n </section>\n </div>\n </AlphaDialogPrimitiveContent>\n </AlphaDialogPrimitiveOverlay>\n </ThemeProvider>\n </AlphaDialogPrimitivePortal>\n )\n }\n)\n\nfunction getTitleTypo(size: ModalTitleSize) {\n return (\n {\n l: '24',\n m: '16',\n } as const\n )[size]\n}\n\nfunction ModalHeaderTitle({\n children,\n size,\n subtitle,\n}: React.PropsWithChildren<\n Pick<ModalHeaderProps, 'subtitle'> & {\n size: NonNullable<ModalHeaderProps['titleSize']>\n }\n>) {\n const Title = (\n <Text\n className={styles.Title}\n as=\"h2\"\n typo={getTitleTypo(size)}\n bold\n color=\"txt-black-darkest\"\n >\n {children}\n </Text>\n )\n\n return (\n <AlphaDialogPrimitiveTitle asChild>\n {!isNil(subtitle) ? (\n <hgroup\n className={styles.HeadingGroup}\n role=\"group\"\n aria-roledescription=\"Heading group\"\n >\n {Title}\n\n <Text\n aria-roledescription=\"subtitle\"\n as=\"p\"\n bold\n color=\"txt-black-dark\"\n typo=\"13\"\n >\n {subtitle}\n </Text>\n </hgroup>\n ) : (\n Title\n )}\n </AlphaDialogPrimitiveTitle>\n )\n}\n\n/**\n * `ModalHeader` is a header of the modal content.\n * It renders the accessible title and description of the modal.\n * If you want to hide the title and description, use `hidden` prop.\n */\nexport const ModalHeader = forwardRef<HTMLElement, ModalHeaderProps>(\n function ModalHeader(\n {\n className,\n title,\n subtitle,\n description,\n titleSize = 'l',\n hidden = false,\n ...rest\n },\n forwardedRef\n ) {\n const { showCloseIcon } = useModalContentPropsContext()\n const hasTitleArea = title || showCloseIcon\n const Hidden = hidden ? VisuallyHidden : React.Fragment\n\n return (\n <Hidden>\n <header\n ref={forwardedRef}\n className={classNames(\n styles.ModalHeader,\n hidden && styles.hidden,\n className\n )}\n {...rest}\n >\n {hasTitleArea && (\n <div className={styles.TitleContainer}>\n {title && (\n <ModalHeaderTitle\n size={titleSize}\n subtitle={subtitle}\n >\n {title}\n </ModalHeaderTitle>\n )}\n\n {showCloseIcon && (\n <Button\n className={styles.CloseIconButtonSpacer}\n as=\"div\"\n size=\"m\"\n />\n )}\n </div>\n )}\n\n {description && (\n <AlphaDialogPrimitiveDescription asChild>\n <Text\n as=\"p\"\n color=\"txt-black-darkest\"\n typo=\"15\"\n >\n {description}\n </Text>\n </AlphaDialogPrimitiveDescription>\n )}\n </header>\n </Hidden>\n )\n }\n)\n\n/**\n * `ModalBody` is a simple wrapper of the main modal content.\n */\nexport const ModalBody = forwardRef(function ModalBody(\n { children, className, ...rest }: ModalBodyProps,\n forwardedRef: React.Ref<HTMLDivElement>\n) {\n return (\n <div\n ref={forwardedRef}\n className={classNames(styles.ModalBody, className)}\n {...rest}\n >\n {children}\n </div>\n )\n})\n\n/**\n * `ModalFooter` is a simple wrapper of the footer of the modal content.\n * Usually, it contains the action buttons of the modal.\n */\nexport const ModalFooter = forwardRef<HTMLElement, ModalFooterProps>(\n function ModalFooter(\n { className, leftContent, rightContent, ...rest },\n forwardedRef\n ) {\n return (\n <footer\n ref={forwardedRef}\n className={classNames(styles.ModalFooter, className)}\n {...rest}\n >\n {leftContent && (\n <div className={styles.FooterLeftContent}>{leftContent}</div>\n )}\n\n {rightContent && (\n <div className={styles.FooterRightContent}>{rightContent}</div>\n )}\n </footer>\n )\n }\n)\n\n/**\n * `ModalTrigger` is a button that opens the modal. **It doesn't render any DOM node.**\n * It passes the handler that opens the modal and accessibility properties to the children.\n *\n * It **must** be placed outside of the `ModalContent`.\n */\nexport function ModalTrigger({ children }: ModalTriggerProps) {\n return (\n <AlphaDialogPrimitiveTrigger asChild>\n {children}\n </AlphaDialogPrimitiveTrigger>\n )\n}\n\n/**\n * `ModalClose` is a button that closes the modal. **It doesn't render any DOM node.**\n * It passes the handler that closes the modal to the children.\n */\nexport function ModalClose({ children }: ModalCloseProps) {\n return (\n <AlphaDialogPrimitiveClose asChild>{children}</AlphaDialogPrimitiveClose>\n )\n}\n"],"names":["ModalContainerContextProvider","useModalContainerContext","createContext","undefined","ModalContentPropsContextProvider","useModalContentPropsContext","showCloseIcon","Modal","children","show","defaultShow","onShow","onHide","onOpenChange","useCallback","open","callback","React","createElement","AlphaDialogPrimitive","defaultOpen","ModalContent","forwardRef","style","className","container","givenContainer","preventHideOnOutsideClick","width","height","zIndex","collisionPadding","top","bottom","rest","forwardedRef","rootElement","useRootElement","contentContainer","setContentContainer","useState","contentRef","useMergeRefs","node","overlayStyle","padding","isNumber","right","left","propsContextValue","useMemo","AlphaDialogPrimitivePortal","ThemeProvider","themeName","useThemeName","AlphaDialogPrimitiveOverlay","classNames","styles","ModalOverlay","getZIndexClassName","AlphaDialogPrimitiveContent","asChild","onPointerDownOutside","e","preventDefault","onInteractOutside","Object","assign","ref","cssDimension","ModalSection","value","ModalClose","Button","CloseIconButton","size","leftContent","CancelIcon","colorVariant","styleVariant","getTitleTypo","l","m","ModalHeaderTitle","subtitle","Title","Text","as","typo","bold","color","AlphaDialogPrimitiveTitle","isNil","HeadingGroup","role","ModalHeader","title","description","titleSize","hidden","hasTitleArea","Hidden","VisuallyHidden","Fragment","TitleContainer","CloseIconButtonSpacer","AlphaDialogPrimitiveDescription","ModalBody","ModalFooter","rightContent","FooterLeftContent","FooterRightContent","ModalTrigger","AlphaDialogPrimitiveTrigger","AlphaDialogPrimitiveClose"],"mappings":"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"}
1
+ {"version":3,"file":"Modal.mjs","sources":["../../../../src/components/Modal/Modal.tsx"],"sourcesContent":["'use client'\n\nimport React, { forwardRef, useCallback, useMemo, useState } from 'react'\n\nimport { CancelIcon } from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport useMergeRefs from '~/src/hooks/useMergeRefs'\nimport { getZIndexClassName } from '~/src/types/props-helpers'\nimport { createContext } from '~/src/utils/react'\nimport { cssDimension } from '~/src/utils/style'\nimport { isNil, isNumber } from '~/src/utils/type'\n\nimport {\n AlphaDialogPrimitive,\n AlphaDialogPrimitiveClose,\n AlphaDialogPrimitiveContent,\n AlphaDialogPrimitiveDescription,\n AlphaDialogPrimitiveOverlay,\n AlphaDialogPrimitivePortal,\n type AlphaDialogPrimitiveProps,\n AlphaDialogPrimitiveTitle,\n AlphaDialogPrimitiveTrigger,\n} from '~/src/components/AlphaDialogPrimitive'\nimport { Button } from '~/src/components/Button'\nimport { Text } from '~/src/components/Text'\nimport { ThemeProvider, useThemeName } from '~/src/components/ThemeProvider'\nimport { VisuallyHidden } from '~/src/components/VisuallyHidden'\nimport { useRootElement } from '~/src/components/WindowProvider'\n\nimport {\n type ModalBodyProps,\n type ModalCloseProps,\n type ModalContentProps,\n type ModalContentPropsContextValue,\n type ModalFooterProps,\n type ModalHeaderProps,\n type ModalProps,\n type ModalTitleSize,\n type ModalTriggerProps,\n} from './Modal.types'\n\nimport styles from './Modal.module.scss'\n\nconst [ModalContainerContextProvider, useModalContainerContext] = createContext<\n HTMLElement | undefined\n>(undefined)\n\nexport { useModalContainerContext }\n\nconst [ModalContentPropsContextProvider, useModalContentPropsContext] =\n createContext<ModalContentPropsContextValue>({\n showCloseIcon: false,\n })\n\n/**\n * `Modal` is a dialog that appears on top of the page.\n *\n * `Modal` is a context of the Modal-related components. It doesn't render any DOM node.\n * It controls the visibility of the entire component and provides\n * handlers and accessibility properties to Modal-related components.\n * @example\n *\n * ```tsx\n * // Anatomy of the Modal\n * <Modal>\n * <ModalTrigger />\n * <ModalContent>\n * <ModalHeader />\n * <ModalBody />\n * <ModalFooter />\n * </ModalContent>\n * </Modal>\n * ```\n */\nexport function Modal({\n children,\n show,\n defaultShow,\n onShow,\n onHide,\n}: ModalProps) {\n const onOpenChange = useCallback<\n NonNullable<AlphaDialogPrimitiveProps['onOpenChange']>\n >(\n (open) => {\n const callback = open ? onShow : onHide\n callback?.()\n },\n [onShow, onHide]\n )\n\n return (\n <AlphaDialogPrimitive\n open={show}\n defaultOpen={defaultShow}\n onOpenChange={onOpenChange}\n >\n {children}\n </AlphaDialogPrimitive>\n )\n}\n\n/**\n * `ModalContent` is a container of the modal content.\n * It creates a portal to render the modal content outside of the DOM tree\n * and renders overlay behind the modal content too.\n */\nexport const ModalContent = forwardRef<HTMLDivElement, ModalContentProps>(\n function ModalContent(\n {\n children,\n style,\n className,\n container: givenContainer,\n showCloseIcon = false,\n preventHideOnOutsideClick = false,\n width = 'max-content',\n height = 'fit-content',\n zIndex = 'modal',\n collisionPadding = { top: 40, bottom: 40 },\n ...rest\n },\n forwardedRef\n ) {\n const rootElement = useRootElement()\n const container = givenContainer ?? rootElement\n const [contentContainer, setContentContainer] = useState<HTMLElement>()\n\n const contentRef = useMergeRefs(\n forwardedRef,\n useCallback((node: HTMLElement | null) => {\n setContentContainer(node ?? undefined)\n }, [])\n )\n\n const overlayStyle = (() => {\n const padding = (() => {\n if (isNumber(collisionPadding)) {\n return `${collisionPadding}px`\n }\n\n const { top, right, bottom, left } = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...collisionPadding,\n }\n\n return `${top}px ${right}px ${bottom}px ${left}px`\n })()\n\n return {\n '--b-modal-collision-padding': padding,\n } as React.CSSProperties\n })()\n\n const propsContextValue = useMemo(\n (): ModalContentPropsContextValue => ({\n showCloseIcon,\n }),\n [showCloseIcon]\n )\n\n return (\n <AlphaDialogPrimitivePortal container={container}>\n <ThemeProvider themeName={useThemeName()}>\n <AlphaDialogPrimitiveOverlay\n style={overlayStyle}\n className={classNames(\n styles.ModalOverlay,\n getZIndexClassName(zIndex)\n )}\n >\n <AlphaDialogPrimitiveContent\n asChild\n onPointerDownOutside={(e) => {\n if (preventHideOnOutsideClick) {\n e.preventDefault()\n }\n }}\n onInteractOutside={(e) => {\n if (preventHideOnOutsideClick) {\n e.preventDefault()\n }\n }}\n >\n <div\n aria-modal=\"true\"\n ref={contentRef}\n style={\n {\n '--b-modal-width': cssDimension(width),\n '--b-modal-height': cssDimension(height),\n ...style,\n } as React.CSSProperties\n }\n className={classNames(styles.ModalContent, className)}\n {...rest}\n >\n <section className={styles.ModalSection}>\n <ModalContainerContextProvider value={contentContainer}>\n <ModalContentPropsContextProvider value={propsContextValue}>\n {children}\n </ModalContentPropsContextProvider>\n </ModalContainerContextProvider>\n\n {/* NOTE: To prevent focusing first on the close button when opening the modal, place the close button behind. */}\n {showCloseIcon && (\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n <ModalClose>\n <Button\n className={styles.CloseIconButton}\n size=\"m\"\n leftContent={CancelIcon}\n colorVariant=\"monochrome-dark\"\n styleVariant=\"tertiary\"\n />\n </ModalClose>\n )}\n </section>\n </div>\n </AlphaDialogPrimitiveContent>\n </AlphaDialogPrimitiveOverlay>\n </ThemeProvider>\n </AlphaDialogPrimitivePortal>\n )\n }\n)\n\nfunction getTitleTypo(size: ModalTitleSize) {\n return (\n {\n l: '24',\n m: '16',\n } as const\n )[size]\n}\n\nfunction ModalHeaderTitle({\n children,\n size,\n subtitle,\n}: React.PropsWithChildren<\n Pick<ModalHeaderProps, 'subtitle'> & {\n size: NonNullable<ModalHeaderProps['titleSize']>\n }\n>) {\n const Title = (\n <Text\n className={styles.Title}\n as=\"h2\"\n typo={getTitleTypo(size)}\n bold\n color=\"txt-black-darkest\"\n >\n {children}\n </Text>\n )\n\n return (\n <AlphaDialogPrimitiveTitle asChild>\n {!isNil(subtitle) ? (\n <hgroup\n className={styles.HeadingGroup}\n role=\"group\"\n aria-roledescription=\"Heading group\"\n >\n {Title}\n\n <Text\n aria-roledescription=\"subtitle\"\n as=\"p\"\n bold\n color=\"txt-black-dark\"\n typo=\"13\"\n >\n {subtitle}\n </Text>\n </hgroup>\n ) : (\n Title\n )}\n </AlphaDialogPrimitiveTitle>\n )\n}\n\n/**\n * `ModalHeader` is a header of the modal content.\n * It renders the accessible title and description of the modal.\n * If you want to hide the title and description, use `hidden` prop.\n */\nexport const ModalHeader = forwardRef<HTMLElement, ModalHeaderProps>(\n function ModalHeader(\n {\n className,\n title,\n subtitle,\n description,\n titleSize = 'l',\n hidden = false,\n ...rest\n },\n forwardedRef\n ) {\n const { showCloseIcon } = useModalContentPropsContext()\n const hasTitleArea = title || showCloseIcon\n const Hidden = hidden ? VisuallyHidden : React.Fragment\n\n return (\n <Hidden>\n <header\n ref={forwardedRef}\n className={classNames(\n styles.ModalHeader,\n hidden && styles.hidden,\n className\n )}\n {...rest}\n >\n {hasTitleArea && (\n <div className={styles.TitleContainer}>\n {title && (\n <ModalHeaderTitle\n size={titleSize}\n subtitle={subtitle}\n >\n {title}\n </ModalHeaderTitle>\n )}\n\n {showCloseIcon && (\n <Button\n className={styles.CloseIconButtonSpacer}\n as=\"div\"\n size=\"m\"\n />\n )}\n </div>\n )}\n\n {description && (\n <AlphaDialogPrimitiveDescription asChild>\n <Text\n as=\"p\"\n color=\"txt-black-darkest\"\n typo=\"15\"\n >\n {description}\n </Text>\n </AlphaDialogPrimitiveDescription>\n )}\n </header>\n </Hidden>\n )\n }\n)\n\n/**\n * `ModalBody` is a simple wrapper of the main modal content.\n */\nexport const ModalBody = forwardRef(function ModalBody(\n { children, className, ...rest }: ModalBodyProps,\n forwardedRef: React.Ref<HTMLDivElement>\n) {\n return (\n <div\n ref={forwardedRef}\n className={classNames(styles.ModalBody, className)}\n {...rest}\n >\n {children}\n </div>\n )\n})\n\n/**\n * `ModalFooter` is a simple wrapper of the footer of the modal content.\n * Usually, it contains the action buttons of the modal.\n */\nexport const ModalFooter = forwardRef<HTMLElement, ModalFooterProps>(\n function ModalFooter(\n { className, leftContent, rightContent, ...rest },\n forwardedRef\n ) {\n return (\n <footer\n ref={forwardedRef}\n className={classNames(styles.ModalFooter, className)}\n {...rest}\n >\n {leftContent && (\n <div className={styles.FooterLeftContent}>{leftContent}</div>\n )}\n\n {rightContent && (\n <div className={styles.FooterRightContent}>{rightContent}</div>\n )}\n </footer>\n )\n }\n)\n\n/**\n * `ModalTrigger` is a button that opens the modal. **It doesn't render any DOM node.**\n * It passes the handler that opens the modal and accessibility properties to the children.\n *\n * It **must** be placed outside of the `ModalContent`.\n */\nexport function ModalTrigger({ children }: ModalTriggerProps) {\n return (\n <AlphaDialogPrimitiveTrigger asChild>\n {children}\n </AlphaDialogPrimitiveTrigger>\n )\n}\n\n/**\n * `ModalClose` is a button that closes the modal. **It doesn't render any DOM node.**\n * It passes the handler that closes the modal to the children.\n */\nexport function ModalClose({ children }: ModalCloseProps) {\n return (\n <AlphaDialogPrimitiveClose asChild>{children}</AlphaDialogPrimitiveClose>\n )\n}\n"],"names":["ModalContainerContextProvider","useModalContainerContext","createContext","undefined","ModalContentPropsContextProvider","useModalContentPropsContext","showCloseIcon","Modal","children","show","defaultShow","onShow","onHide","onOpenChange","useCallback","open","callback","React","createElement","AlphaDialogPrimitive","defaultOpen","ModalContent","forwardRef","style","className","container","givenContainer","preventHideOnOutsideClick","width","height","zIndex","collisionPadding","top","bottom","rest","forwardedRef","rootElement","useRootElement","contentContainer","setContentContainer","useState","contentRef","useMergeRefs","node","overlayStyle","padding","isNumber","right","left","propsContextValue","useMemo","AlphaDialogPrimitivePortal","ThemeProvider","themeName","useThemeName","AlphaDialogPrimitiveOverlay","classNames","styles","ModalOverlay","getZIndexClassName","AlphaDialogPrimitiveContent","asChild","onPointerDownOutside","e","preventDefault","onInteractOutside","Object","assign","ref","cssDimension","ModalSection","value","ModalClose","Button","CloseIconButton","size","leftContent","CancelIcon","colorVariant","styleVariant","getTitleTypo","l","m","ModalHeaderTitle","subtitle","Title","Text","as","typo","bold","color","AlphaDialogPrimitiveTitle","isNil","HeadingGroup","role","ModalHeader","title","description","titleSize","hidden","hasTitleArea","Hidden","VisuallyHidden","Fragment","TitleContainer","CloseIconButtonSpacer","AlphaDialogPrimitiveDescription","ModalBody","ModalFooter","rightContent","FooterLeftContent","FooterRightContent","ModalTrigger","AlphaDialogPrimitiveTrigger","AlphaDialogPrimitiveClose"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"NavGroup.mjs","sources":["../../../../src/components/NavGroup/NavGroup.tsx"],"sourcesContent":["'use client'\n\nimport React, { forwardRef } from 'react'\n\nimport {\n ChevronSmallDownIcon,\n ChevronSmallRightIcon,\n} from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport { isNil } from '~/src/utils/type'\n\nimport { BaseButton } from '~/src/components/BaseButton'\nimport { Icon } from '~/src/components/Icon'\nimport { Text } from '~/src/components/Text'\n\n// eslint-disable-next-line no-restricted-imports\nimport commonStyles from '../NavItem/NavItem.module.scss'\n\nimport type { NavGroupProps } from './NavGroup.types'\n\nimport styles from './NavGroup.module.scss'\n\nexport const NAV_GROUP_TEST_ID = 'bezier-nav-group'\nexport const NAV_GROUP_LEFT_ICON_TEST_ID = 'bezier-nav-group-left-icon'\n\nexport const NavGroup = forwardRef<HTMLButtonElement, NavGroupProps>(\n function NavGroup(\n {\n name,\n className,\n children,\n content,\n rightContent,\n leftContent,\n open,\n active,\n onClick,\n ...rest\n },\n forwardedRef\n ) {\n const handleClickItem = (e?: React.MouseEvent) => {\n onClick?.(e, name)\n }\n\n const hasChildren = !isNil(children)\n const chevronIconSource = open\n ? ChevronSmallDownIcon\n : ChevronSmallRightIcon\n const ariaName = `${name}Menu`\n\n return (\n <li\n className={commonStyles.Wrapper}\n role=\"none\"\n >\n <BaseButton\n ref={forwardedRef}\n className={classNames(\n commonStyles.Item,\n active && commonStyles.active,\n className\n )}\n role=\"menuitem\"\n aria-haspopup={hasChildren}\n aria-expanded={open}\n aria-controls={ariaName}\n onClick={handleClickItem}\n data-testid={NAV_GROUP_TEST_ID}\n {...rest}\n >\n <div className={commonStyles.LeftIconWrapper}>\n <Icon\n source={leftContent}\n size=\"s\"\n color={active ? 'bgtxt-blue-normal' : 'txt-black-dark'}\n data-testid={NAV_GROUP_LEFT_ICON_TEST_ID}\n />\n </div>\n\n <Text\n typo=\"14\"\n truncated\n >\n {content}\n </Text>\n\n {hasChildren && (\n <div className={styles.ChevronWrapper}>\n <Icon\n source={chevronIconSource}\n size=\"s\"\n color=\"txt-black-dark\"\n />\n </div>\n )}\n\n {rightContent && (\n <div className={commonStyles.RightContentWrapper}>\n {rightContent}\n </div>\n )}\n </BaseButton>\n\n {open && (\n <ul\n className={styles.ChildrenWrapper}\n role=\"menu\"\n id={ariaName}\n >\n {open && children}\n </ul>\n )}\n </li>\n )\n }\n)\n"],"names":["NAV_GROUP_TEST_ID","NAV_GROUP_LEFT_ICON_TEST_ID","NavGroup","forwardRef","name","className","children","content","rightContent","leftContent","open","active","onClick","rest","forwardedRef","handleClickItem","e","hasChildren","isNil","chevronIconSource","ChevronSmallDownIcon","ChevronSmallRightIcon","ariaName","React","createElement","commonStyles","Wrapper","role","BaseButton","Object","assign","ref","classNames","Item","LeftIconWrapper","Icon","source","size","color","Text","typo","truncated","styles","ChevronWrapper","RightContentWrapper","ChildrenWrapper","id"],"mappings":"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"}
1
+ {"version":3,"file":"NavGroup.mjs","sources":["../../../../src/components/NavGroup/NavGroup.tsx"],"sourcesContent":["'use client'\n\nimport React, { forwardRef } from 'react'\n\nimport {\n ChevronSmallDownIcon,\n ChevronSmallRightIcon,\n} from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport { isNil } from '~/src/utils/type'\n\nimport { BaseButton } from '~/src/components/BaseButton'\nimport { Icon } from '~/src/components/Icon'\nimport { Text } from '~/src/components/Text'\n\n// eslint-disable-next-line no-restricted-imports\nimport commonStyles from '../NavItem/NavItem.module.scss'\n\nimport type { NavGroupProps } from './NavGroup.types'\n\nimport styles from './NavGroup.module.scss'\n\nexport const NAV_GROUP_TEST_ID = 'bezier-nav-group'\nexport const NAV_GROUP_LEFT_ICON_TEST_ID = 'bezier-nav-group-left-icon'\n\nexport const NavGroup = forwardRef<HTMLButtonElement, NavGroupProps>(\n function NavGroup(\n {\n name,\n className,\n children,\n content,\n rightContent,\n leftContent,\n open,\n active,\n onClick,\n ...rest\n },\n forwardedRef\n ) {\n const handleClickItem = (e?: React.MouseEvent) => {\n onClick?.(e, name)\n }\n\n const hasChildren = !isNil(children)\n const chevronIconSource = open\n ? ChevronSmallDownIcon\n : ChevronSmallRightIcon\n const ariaName = `${name}Menu`\n\n return (\n <li\n className={commonStyles.Wrapper}\n role=\"none\"\n >\n <BaseButton\n ref={forwardedRef}\n className={classNames(\n commonStyles.Item,\n active && commonStyles.active,\n className\n )}\n role=\"menuitem\"\n aria-haspopup={hasChildren}\n aria-expanded={open}\n aria-controls={ariaName}\n onClick={handleClickItem}\n data-testid={NAV_GROUP_TEST_ID}\n {...rest}\n >\n <div className={commonStyles.LeftIconWrapper}>\n <Icon\n source={leftContent}\n size=\"s\"\n color={active ? 'bgtxt-blue-normal' : 'txt-black-dark'}\n data-testid={NAV_GROUP_LEFT_ICON_TEST_ID}\n />\n </div>\n\n <Text\n typo=\"14\"\n truncated\n >\n {content}\n </Text>\n\n {hasChildren && (\n <div className={styles.ChevronWrapper}>\n <Icon\n source={chevronIconSource}\n size=\"s\"\n color=\"txt-black-dark\"\n />\n </div>\n )}\n\n {rightContent && (\n <div className={commonStyles.RightContentWrapper}>\n {rightContent}\n </div>\n )}\n </BaseButton>\n\n {open && (\n <ul\n className={styles.ChildrenWrapper}\n role=\"menu\"\n id={ariaName}\n >\n {open && children}\n </ul>\n )}\n </li>\n )\n }\n)\n"],"names":["NAV_GROUP_TEST_ID","NAV_GROUP_LEFT_ICON_TEST_ID","NavGroup","forwardRef","name","className","children","content","rightContent","leftContent","open","active","onClick","rest","forwardedRef","handleClickItem","e","hasChildren","isNil","chevronIconSource","ChevronSmallDownIcon","ChevronSmallRightIcon","ariaName","React","createElement","commonStyles","Wrapper","role","BaseButton","Object","assign","ref","classNames","Item","LeftIconWrapper","Icon","source","size","color","Text","typo","truncated","styles","ChevronWrapper","RightContentWrapper","ChildrenWrapper","id"],"mappings":";;;;;;;;;;AAuBO,MAAMA,iBAAiB,GAAG;AAC1B,MAAMC,2BAA2B,GAAG;MAE9BC,QAAQ,gBAAGC,UAAU,CAChC,SAASD,QAAQA,CACf;EACEE,IAAI;EACJC,SAAS;EACTC,QAAQ;EACRC,OAAO;EACPC,YAAY;EACZC,WAAW;EACXC,IAAI;EACJC,MAAM;EACNC,OAAO;EACP,GAAGC;AACL,CAAC,EACDC,YAAY,EACZ;EACA,MAAMC,eAAe,GAAIC,CAAoB,IAAK;IAChDJ,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAPA,KAAAA,CAAAA,IAAAA,OAAO,CAAGI,CAAC,EAAEZ,IAAI,CAAC;GACnB;AAED,EAAA,MAAMa,WAAW,GAAG,CAACC,KAAK,CAACZ,QAAQ,CAAC;AACpC,EAAA,MAAMa,iBAAiB,GAAGT,IAAI,GAC1BU,oBAAoB,GACpBC,qBAAqB;AACzB,EAAA,MAAMC,QAAQ,GAAG,CAAGlB,EAAAA,IAAI,CAAM,IAAA,CAAA;EAE9B,oBACEmB,cAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;IACEnB,SAAS,EAAEoB,MAAY,CAACC,OAAQ;AAChCC,IAAAA,IAAI,EAAC;GAELJ,eAAAA,cAAA,CAAAC,aAAA,CAACI,UAAU,EAAAC,MAAA,CAAAC,MAAA,CAAA;AACTC,IAAAA,GAAG,EAAEjB,YAAa;AAClBT,IAAAA,SAAS,EAAE2B,UAAU,CACnBP,MAAY,CAACQ,IAAI,EACjBtB,MAAM,IAAIc,MAAY,CAACd,MAAM,EAC7BN,SACF,CAAE;AACFsB,IAAAA,IAAI,EAAC,UAAU;AACf,IAAA,eAAA,EAAeV,WAAY;AAC3B,IAAA,eAAA,EAAeP,IAAK;AACpB,IAAA,eAAA,EAAeY,QAAS;AACxBV,IAAAA,OAAO,EAAEG,eAAgB;IACzB,aAAaf,EAAAA;AAAkB,GAAA,EAC3Ba,IAAI,CAAA,eAERU,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKnB,SAAS,EAAEoB,MAAY,CAACS;AAAgB,GAAA,eAC3CX,cAAA,CAAAC,aAAA,CAACW,IAAI,EAAA;AACHC,IAAAA,MAAM,EAAE3B,WAAY;AACpB4B,IAAAA,IAAI,EAAC,GAAG;AACRC,IAAAA,KAAK,EAAE3B,MAAM,GAAG,mBAAmB,GAAG,gBAAiB;IACvD,aAAaV,EAAAA;AAA4B,GAC1C,CACE,CAAC,eAENsB,cAAA,CAAAC,aAAA,CAACe,IAAI,EAAA;AACHC,IAAAA,IAAI,EAAC,IAAI;IACTC,SAAS,EAAA;AAAA,GAAA,EAERlC,OACG,CAAC,EAENU,WAAW,iBACVM,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKnB,SAAS,EAAEqC,QAAM,CAACC;AAAe,GAAA,eACpCpB,cAAA,CAAAC,aAAA,CAACW,IAAI,EAAA;AACHC,IAAAA,MAAM,EAAEjB,iBAAkB;AAC1BkB,IAAAA,IAAI,EAAC,GAAG;AACRC,IAAAA,KAAK,EAAC;AAAgB,GACvB,CACE,CACN,EAEA9B,YAAY,iBACXe,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKnB,SAAS,EAAEoB,MAAY,CAACmB;GAC1BpC,EAAAA,YACE,CAEG,CAAC,EAEZE,IAAI,iBACHa,cAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;IACEnB,SAAS,EAAEqC,QAAM,CAACG,eAAgB;AAClClB,IAAAA,IAAI,EAAC,MAAM;AACXmB,IAAAA,EAAE,EAAExB;AAAS,GAAA,EAEZZ,IAAI,IAAIJ,QACP,CAEJ,CAAC;AAET,CACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"NavItem.mjs","sources":["../../../../src/components/NavItem/NavItem.tsx"],"sourcesContent":["'use client'\n\nimport React, { forwardRef } from 'react'\n\nimport classNames from 'classnames'\n\nimport { Icon } from '~/src/components/Icon'\nimport { Text } from '~/src/components/Text'\n\nimport type { NavItemProps } from './NavItem.types'\n\nimport styles from './NavItem.module.scss'\n\nexport const NAV_ITEM_TEST_ID = 'bezier-nav-item'\nexport const NAV_ITEM_LEFT_ICON_TEST_ID = 'bezier-nav-item-left-icon'\n\n/**\n * `NavItem` is a component for an item where you can navigate to another link.\n * @example\n * ```tsx\n * <NavItem\n * name=\"channel\"\n * content=\"https://channel.io\"\n * href=\"_parent\"\n * />\n * ```\n */\nexport const NavItem = forwardRef<HTMLAnchorElement, NavItemProps>(\n function NavItem(\n {\n name,\n style,\n className,\n content,\n href,\n target = '_self',\n rightContent,\n leftContent,\n active,\n onClick,\n ...rest\n },\n forwardedRef\n ) {\n const handleClickItem = (e?: React.MouseEvent) => {\n onClick?.(e, name)\n }\n\n return (\n <li\n className={styles.Wrapper}\n role=\"none\"\n >\n <a\n ref={forwardedRef}\n style={style}\n className={classNames(\n styles.Item,\n active && styles.active,\n className\n )}\n href={href}\n target={target}\n role=\"menuitem\"\n onClick={handleClickItem}\n data-testid={NAV_ITEM_TEST_ID}\n {...rest}\n >\n <div className={styles.LeftIconWrapper}>\n {leftContent && (\n <Icon\n data-testid={NAV_ITEM_LEFT_ICON_TEST_ID}\n source={leftContent}\n size=\"s\"\n color={active ? 'bgtxt-blue-normal' : 'txt-black-dark'}\n />\n )}\n </div>\n\n <Text\n typo=\"14\"\n truncated\n >\n {content}\n </Text>\n\n {rightContent && (\n <div className={styles.RightContentWrapper}>{rightContent}</div>\n )}\n </a>\n </li>\n )\n }\n)\n"],"names":["NAV_ITEM_TEST_ID","NAV_ITEM_LEFT_ICON_TEST_ID","NavItem","forwardRef","name","style","className","content","href","target","rightContent","leftContent","active","onClick","rest","forwardedRef","handleClickItem","e","React","createElement","styles","Wrapper","role","Object","assign","ref","classNames","Item","LeftIconWrapper","Icon","source","size","color","Text","typo","truncated","RightContentWrapper"],"mappings":";;;;;;AAaO,MAAMA,gBAAgB,GAAG,kBAAiB;AAC1C,MAAMC,0BAA0B,GAAG,4BAA2B;;AAErE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACaC,OAAO,gBAAGC,UAAU,CAC/B,SAASD,OAAOA,CACd;EACEE,IAAI;EACJC,KAAK;EACLC,SAAS;EACTC,OAAO;EACPC,IAAI;AACJC,EAAAA,MAAM,GAAG,OAAO;EAChBC,YAAY;EACZC,WAAW;EACXC,MAAM;EACNC,OAAO;EACP,GAAGC,IAAAA;AACL,CAAC,EACDC,YAAY,EACZ;EACA,MAAMC,eAAe,GAAIC,CAAoB,IAAK;IAChDJ,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAPA,KAAAA,CAAAA,IAAAA,OAAO,CAAGI,CAAC,EAAEb,IAAI,CAAC,CAAA;GACnB,CAAA;EAED,oBACEc,cAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;IACEb,SAAS,EAAEc,MAAM,CAACC,OAAQ;AAC1BC,IAAAA,IAAI,EAAC,MAAA;AAAM,GAAA,eAEXJ,cAAA,CAAAC,aAAA,CAAAI,GAAAA,EAAAA,MAAA,CAAAC,MAAA,CAAA;AACEC,IAAAA,GAAG,EAAEV,YAAa;AAClBV,IAAAA,KAAK,EAAEA,KAAM;AACbC,IAAAA,SAAS,EAAEoB,UAAU,CACnBN,MAAM,CAACO,IAAI,EACXf,MAAM,IAAIQ,MAAM,CAACR,MAAM,EACvBN,SACF,CAAE;AACFE,IAAAA,IAAI,EAAEA,IAAK;AACXC,IAAAA,MAAM,EAAEA,MAAO;AACfa,IAAAA,IAAI,EAAC,UAAU;AACfT,IAAAA,OAAO,EAAEG,eAAgB;IACzB,aAAahB,EAAAA,gBAAAA;AAAiB,GAAA,EAC1Bc,IAAI,CAAA,eAERI,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKb,SAAS,EAAEc,MAAM,CAACQ,eAAAA;AAAgB,GAAA,EACpCjB,WAAW,iBACVO,cAAA,CAAAC,aAAA,CAACU,IAAI,EAAA;AACH,IAAA,aAAA,EAAa5B,0BAA2B;AACxC6B,IAAAA,MAAM,EAAEnB,WAAY;AACpBoB,IAAAA,IAAI,EAAC,GAAG;AACRC,IAAAA,KAAK,EAAEpB,MAAM,GAAG,mBAAmB,GAAG,gBAAA;AAAiB,GACxD,CAEA,CAAC,eAENM,cAAA,CAAAC,aAAA,CAACc,IAAI,EAAA;AACHC,IAAAA,IAAI,EAAC,IAAI;IACTC,SAAS,EAAA,IAAA;AAAA,GAAA,EAER5B,OACG,CAAC,EAENG,YAAY,iBACXQ,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKb,SAAS,EAAEc,MAAM,CAACgB,mBAAAA;GAAsB1B,EAAAA,YAAkB,CAEhE,CACD,CAAC,CAAA;AAET,CACF;;;;"}
1
+ {"version":3,"file":"NavItem.mjs","sources":["../../../../src/components/NavItem/NavItem.tsx"],"sourcesContent":["'use client'\n\nimport React, { forwardRef } from 'react'\n\nimport classNames from 'classnames'\n\nimport { Icon } from '~/src/components/Icon'\nimport { Text } from '~/src/components/Text'\n\nimport type { NavItemProps } from './NavItem.types'\n\nimport styles from './NavItem.module.scss'\n\nexport const NAV_ITEM_TEST_ID = 'bezier-nav-item'\nexport const NAV_ITEM_LEFT_ICON_TEST_ID = 'bezier-nav-item-left-icon'\n\n/**\n * `NavItem` is a component for an item where you can navigate to another link.\n * @example\n * ```tsx\n * <NavItem\n * name=\"channel\"\n * content=\"https://channel.io\"\n * href=\"_parent\"\n * />\n * ```\n */\nexport const NavItem = forwardRef<HTMLAnchorElement, NavItemProps>(\n function NavItem(\n {\n name,\n style,\n className,\n content,\n href,\n target = '_self',\n rightContent,\n leftContent,\n active,\n onClick,\n ...rest\n },\n forwardedRef\n ) {\n const handleClickItem = (e?: React.MouseEvent) => {\n onClick?.(e, name)\n }\n\n return (\n <li\n className={styles.Wrapper}\n role=\"none\"\n >\n <a\n ref={forwardedRef}\n style={style}\n className={classNames(\n styles.Item,\n active && styles.active,\n className\n )}\n href={href}\n target={target}\n role=\"menuitem\"\n onClick={handleClickItem}\n data-testid={NAV_ITEM_TEST_ID}\n {...rest}\n >\n <div className={styles.LeftIconWrapper}>\n {leftContent && (\n <Icon\n data-testid={NAV_ITEM_LEFT_ICON_TEST_ID}\n source={leftContent}\n size=\"s\"\n color={active ? 'bgtxt-blue-normal' : 'txt-black-dark'}\n />\n )}\n </div>\n\n <Text\n typo=\"14\"\n truncated\n >\n {content}\n </Text>\n\n {rightContent && (\n <div className={styles.RightContentWrapper}>{rightContent}</div>\n )}\n </a>\n </li>\n )\n }\n)\n"],"names":["NAV_ITEM_TEST_ID","NAV_ITEM_LEFT_ICON_TEST_ID","NavItem","forwardRef","name","style","className","content","href","target","rightContent","leftContent","active","onClick","rest","forwardedRef","handleClickItem","e","React","createElement","styles","Wrapper","role","Object","assign","ref","classNames","Item","LeftIconWrapper","Icon","source","size","color","Text","typo","truncated","RightContentWrapper"],"mappings":";;;;;;AAaO,MAAMA,gBAAgB,GAAG;AACzB,MAAMC,0BAA0B,GAAG;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACaC,OAAO,gBAAGC,UAAU,CAC/B,SAASD,OAAOA,CACd;EACEE,IAAI;EACJC,KAAK;EACLC,SAAS;EACTC,OAAO;EACPC,IAAI;AACJC,EAAAA,MAAM,GAAG,OAAO;EAChBC,YAAY;EACZC,WAAW;EACXC,MAAM;EACNC,OAAO;EACP,GAAGC;AACL,CAAC,EACDC,YAAY,EACZ;EACA,MAAMC,eAAe,GAAIC,CAAoB,IAAK;IAChDJ,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAPA,KAAAA,CAAAA,IAAAA,OAAO,CAAGI,CAAC,EAAEb,IAAI,CAAC;GACnB;EAED,oBACEc,cAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;IACEb,SAAS,EAAEc,MAAM,CAACC,OAAQ;AAC1BC,IAAAA,IAAI,EAAC;AAAM,GAAA,eAEXJ,cAAA,CAAAC,aAAA,CAAAI,GAAAA,EAAAA,MAAA,CAAAC,MAAA,CAAA;AACEC,IAAAA,GAAG,EAAEV,YAAa;AAClBV,IAAAA,KAAK,EAAEA,KAAM;AACbC,IAAAA,SAAS,EAAEoB,UAAU,CACnBN,MAAM,CAACO,IAAI,EACXf,MAAM,IAAIQ,MAAM,CAACR,MAAM,EACvBN,SACF,CAAE;AACFE,IAAAA,IAAI,EAAEA,IAAK;AACXC,IAAAA,MAAM,EAAEA,MAAO;AACfa,IAAAA,IAAI,EAAC,UAAU;AACfT,IAAAA,OAAO,EAAEG,eAAgB;IACzB,aAAahB,EAAAA;AAAiB,GAAA,EAC1Bc,IAAI,CAAA,eAERI,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKb,SAAS,EAAEc,MAAM,CAACQ;AAAgB,GAAA,EACpCjB,WAAW,iBACVO,cAAA,CAAAC,aAAA,CAACU,IAAI,EAAA;AACH,IAAA,aAAA,EAAa5B,0BAA2B;AACxC6B,IAAAA,MAAM,EAAEnB,WAAY;AACpBoB,IAAAA,IAAI,EAAC,GAAG;AACRC,IAAAA,KAAK,EAAEpB,MAAM,GAAG,mBAAmB,GAAG;AAAiB,GACxD,CAEA,CAAC,eAENM,cAAA,CAAAC,aAAA,CAACc,IAAI,EAAA;AACHC,IAAAA,IAAI,EAAC,IAAI;IACTC,SAAS,EAAA;AAAA,GAAA,EAER5B,OACG,CAAC,EAENG,YAAY,iBACXQ,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKb,SAAS,EAAEc,MAAM,CAACgB;GAAsB1B,EAAAA,YAAkB,CAEhE,CACD,CAAC;AAET,CACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"OutlineItem.mjs","sources":["../../../../src/components/OutlineItem/OutlineItem.tsx"],"sourcesContent":["'use client'\n\nimport React, { forwardRef, useMemo } from 'react'\n\nimport {\n ChevronSmallDownIcon,\n ChevronSmallRightIcon,\n isBezierIcon,\n} from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport { createContext } from '~/src/utils/react'\nimport { isEmpty, isNil } from '~/src/utils/type'\n\nimport { Icon } from '~/src/components/Icon'\nimport { Text } from '~/src/components/Text'\n\nimport {\n type OutlineItemContextProps,\n type OutlineItemProps,\n} from './OutlineItem.types'\n\nimport styles from './OutlineItem.module.scss'\n\nconst [OutlineItemContextProvider, useOutlineItemContext] = createContext<\n OutlineItemContextProps | undefined\n>(undefined)\n\nconst DEFAULT_INDENT = 16\n\nexport const OUTLINE_ITEM_TEST_ID = 'bezier-outline-item'\n\nexport const OutlineItem = forwardRef<\n HTMLDivElement & HTMLAnchorElement,\n OutlineItemProps\n>(function OutlineItem(\n {\n children,\n style,\n className,\n as,\n open = false,\n disableChevron = false,\n active = false,\n focused = false,\n clickable: clickableProp = false,\n leftContent,\n content,\n rightContent,\n href,\n onClick,\n ...rest\n },\n forwardedRef\n) {\n const context = useOutlineItemContext()\n const isRoot = isNil(context)\n const indent = isRoot ? 0 : context.indent + DEFAULT_INDENT\n\n const isLink = !isEmpty(href)\n const Comp = isLink ? 'a' : ((as ?? 'div') as 'div')\n const clickable = isLink || clickableProp || !isNil(onClick)\n\n return (\n <>\n <Comp\n {...(isLink && {\n href,\n target: '_blank',\n rel: 'noopener noreferrer',\n })}\n style={\n {\n ...style,\n '--b-outline-item-indent': `${indent}px`,\n } as React.CSSProperties\n }\n className={classNames(\n styles.OutlineItem,\n active && styles.active,\n focused && styles.focused,\n clickable && styles.clickable,\n className\n )}\n ref={forwardedRef}\n data-testid={OUTLINE_ITEM_TEST_ID}\n onClick={onClick}\n {...rest}\n >\n {!disableChevron && (\n <div className={styles.Chevron}>\n {!isNil(children) && (\n <Icon\n className={styles.Icon}\n source={open ? ChevronSmallDownIcon : ChevronSmallRightIcon}\n size=\"s\"\n color=\"txt-black-dark\"\n />\n )}\n </div>\n )}\n\n {leftContent && (\n <div className={styles.LeftContent}>\n {isBezierIcon(leftContent) ? (\n <Icon\n className={styles.Icon}\n size=\"s\"\n source={leftContent}\n color=\"txt-black-dark\"\n />\n ) : (\n leftContent\n )}\n </div>\n )}\n\n <Text\n className={styles.Content}\n typo=\"14\"\n truncated\n >\n {content}\n </Text>\n\n {rightContent}\n </Comp>\n\n <OutlineItemContextProvider value={useMemo(() => ({ indent }), [indent])}>\n {open && children}\n </OutlineItemContextProvider>\n </>\n )\n})\n"],"names":["OutlineItemContextProvider","useOutlineItemContext","createContext","undefined","DEFAULT_INDENT","OUTLINE_ITEM_TEST_ID","OutlineItem","forwardRef","children","style","className","as","open","disableChevron","active","focused","clickable","clickableProp","leftContent","content","rightContent","href","onClick","rest","forwardedRef","context","isRoot","isNil","indent","isLink","isEmpty","Comp","React","createElement","Fragment","Object","assign","target","rel","classNames","styles","ref","Chevron","Icon","source","ChevronSmallDownIcon","ChevronSmallRightIcon","size","color","LeftContent","isBezierIcon","Text","Content","typo","truncated","value","useMemo"],"mappings":"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"}
1
+ {"version":3,"file":"OutlineItem.mjs","sources":["../../../../src/components/OutlineItem/OutlineItem.tsx"],"sourcesContent":["'use client'\n\nimport React, { forwardRef, useMemo } from 'react'\n\nimport {\n ChevronSmallDownIcon,\n ChevronSmallRightIcon,\n isBezierIcon,\n} from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport { createContext } from '~/src/utils/react'\nimport { isEmpty, isNil } from '~/src/utils/type'\n\nimport { Icon } from '~/src/components/Icon'\nimport { Text } from '~/src/components/Text'\n\nimport {\n type OutlineItemContextProps,\n type OutlineItemProps,\n} from './OutlineItem.types'\n\nimport styles from './OutlineItem.module.scss'\n\nconst [OutlineItemContextProvider, useOutlineItemContext] = createContext<\n OutlineItemContextProps | undefined\n>(undefined)\n\nconst DEFAULT_INDENT = 16\n\nexport const OUTLINE_ITEM_TEST_ID = 'bezier-outline-item'\n\nexport const OutlineItem = forwardRef<\n HTMLDivElement & HTMLAnchorElement,\n OutlineItemProps\n>(function OutlineItem(\n {\n children,\n style,\n className,\n as,\n open = false,\n disableChevron = false,\n active = false,\n focused = false,\n clickable: clickableProp = false,\n leftContent,\n content,\n rightContent,\n href,\n onClick,\n ...rest\n },\n forwardedRef\n) {\n const context = useOutlineItemContext()\n const isRoot = isNil(context)\n const indent = isRoot ? 0 : context.indent + DEFAULT_INDENT\n\n const isLink = !isEmpty(href)\n const Comp = isLink ? 'a' : ((as ?? 'div') as 'div')\n const clickable = isLink || clickableProp || !isNil(onClick)\n\n return (\n <>\n <Comp\n {...(isLink && {\n href,\n target: '_blank',\n rel: 'noopener noreferrer',\n })}\n style={\n {\n ...style,\n '--b-outline-item-indent': `${indent}px`,\n } as React.CSSProperties\n }\n className={classNames(\n styles.OutlineItem,\n active && styles.active,\n focused && styles.focused,\n clickable && styles.clickable,\n className\n )}\n ref={forwardedRef}\n data-testid={OUTLINE_ITEM_TEST_ID}\n onClick={onClick}\n {...rest}\n >\n {!disableChevron && (\n <div className={styles.Chevron}>\n {!isNil(children) && (\n <Icon\n className={styles.Icon}\n source={open ? ChevronSmallDownIcon : ChevronSmallRightIcon}\n size=\"s\"\n color=\"txt-black-dark\"\n />\n )}\n </div>\n )}\n\n {leftContent && (\n <div className={styles.LeftContent}>\n {isBezierIcon(leftContent) ? (\n <Icon\n className={styles.Icon}\n size=\"s\"\n source={leftContent}\n color=\"txt-black-dark\"\n />\n ) : (\n leftContent\n )}\n </div>\n )}\n\n <Text\n className={styles.Content}\n typo=\"14\"\n truncated\n >\n {content}\n </Text>\n\n {rightContent}\n </Comp>\n\n <OutlineItemContextProvider value={useMemo(() => ({ indent }), [indent])}>\n {open && children}\n </OutlineItemContextProvider>\n </>\n )\n})\n"],"names":["OutlineItemContextProvider","useOutlineItemContext","createContext","undefined","DEFAULT_INDENT","OUTLINE_ITEM_TEST_ID","OutlineItem","forwardRef","children","style","className","as","open","disableChevron","active","focused","clickable","clickableProp","leftContent","content","rightContent","href","onClick","rest","forwardedRef","context","isRoot","isNil","indent","isLink","isEmpty","Comp","React","createElement","Fragment","Object","assign","target","rel","classNames","styles","ref","Chevron","Icon","source","ChevronSmallDownIcon","ChevronSmallRightIcon","size","color","LeftContent","isBezierIcon","Text","Content","typo","truncated","value","useMemo"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Overlay.mjs","sources":["../../../../src/components/Overlay/Overlay.tsx"],"sourcesContent":["'use client'\n\nimport React, {\n forwardRef,\n useCallback,\n useEffect,\n useReducer,\n useRef,\n useState,\n} from 'react'\nimport ReactDOM from 'react-dom'\n\nimport classNames from 'classnames'\n\nimport useEventHandler from '~/src/hooks/useEventHandler'\nimport { useIsomorphicLayoutEffect } from '~/src/hooks/useIsomorphicLayoutEffect'\nimport useMergeRefs from '~/src/hooks/useMergeRefs'\n\nimport { useModalContainerContext } from '~/src/components/Modal'\nimport { ThemeProvider, useThemeName } from '~/src/components/ThemeProvider'\nimport { useWindow } from '~/src/components/WindowProvider'\n\nimport type {\n ContainerRectAttr,\n OverlayProps,\n TargetRectAttr,\n} from './Overlay.types'\nimport { getOverlayStyle } from './utils'\n\nimport styles from './Overlay.module.scss'\n\nexport const CONTAINER_TEST_ID = 'bezier-container'\nexport const OVERLAY_TEST_ID = 'bezier-overlay'\nexport const ESCAPE_KEY = 'Escape'\n\nexport const Overlay = forwardRef<HTMLDivElement, OverlayProps>(\n function Overlay(\n {\n children,\n style,\n className,\n show = false,\n container: givenContainer,\n target,\n position = 'left-center',\n marginX = 0,\n marginY = 0,\n keepInContainer = false,\n withTransition = false,\n enableClickOutside = false,\n containerStyle,\n containerClassName,\n onHide,\n onTransitionEnd,\n ...rest\n },\n forwardedRef\n ) {\n const { window, document, rootElement } = useWindow()\n\n const [shouldRender, setShouldRender] = useState(false)\n const [shouldShow, setShouldShow] = useState(false)\n\n const containerRect = useRef<ContainerRectAttr | null>(null)\n const targetRect = useRef<TargetRectAttr | null>(null)\n\n const [, forceUpdate] = useReducer((x) => !x, true)\n\n const containerRef = useRef<HTMLDivElement>(null)\n const overlayRef = useRef<HTMLDivElement>(null)\n const mergedRef = useMergeRefs<HTMLDivElement>(overlayRef, forwardedRef)\n\n const modalContainer = useModalContainerContext()\n const hasContainer = Boolean(givenContainer || modalContainer)\n const container = givenContainer ?? modalContainer ?? rootElement\n\n const handleOverlayForceUpdate = useCallback(() => {\n forceUpdate()\n }, [])\n\n const handleContainerRect = useCallback(() => {\n const {\n width: containerWidth,\n height: containerHeight,\n top: containerTop,\n left: containerLeft,\n } = container.getBoundingClientRect()\n\n containerRect.current = {\n containerWidth,\n containerHeight,\n containerTop,\n containerLeft,\n scrollTop: hasContainer ? container.scrollTop : 0,\n scrollLeft: hasContainer ? container.scrollLeft : 0,\n }\n }, [container, hasContainer])\n\n useIsomorphicLayoutEffect(\n function initContainerRect() {\n if (show) {\n handleContainerRect()\n }\n },\n [show, handleContainerRect]\n )\n\n const handleTargetRect = useCallback(() => {\n if (!target) {\n return\n }\n const {\n width: targetWidth,\n height: targetHeight,\n top: targetTop,\n left: targetLeft,\n } = target.getBoundingClientRect()\n const { clientTop, clientLeft } = target\n\n targetRect.current = {\n targetWidth,\n targetHeight,\n targetTop,\n targetLeft,\n clientTop,\n clientLeft,\n }\n }, [target])\n\n useIsomorphicLayoutEffect(\n function initTargetRect() {\n if (show) {\n handleTargetRect()\n }\n },\n [show, handleTargetRect]\n )\n\n const handleTransitionEnd = useCallback<\n React.TransitionEventHandler<HTMLDivElement>\n >(\n (event) => {\n onTransitionEnd?.(event)\n if (!show) {\n setShouldRender(false)\n }\n },\n [show, onTransitionEnd]\n )\n\n const handleBlockMouseWheel = useCallback(\n (event: HTMLElementEventMap['wheel']) => {\n event.stopPropagation()\n },\n []\n )\n\n const handleHideOverlay = useCallback(\n (event: MouseEvent) => {\n /**\n * NOTE: Type checking with instanceof makes it difficult to handle cases where the window object is different.\n */\n if (\n !event.target ||\n !(event.target as HTMLElement).closest(`.${styles.Overlay}`)\n ) {\n onHide?.()\n\n if (!enableClickOutside) {\n event.stopPropagation()\n }\n }\n },\n [enableClickOutside, onHide]\n )\n\n const handleKeydown = useCallback(\n (event: HTMLElementEventMap['keyup']) => {\n if (event.key === ESCAPE_KEY) {\n onHide?.()\n }\n },\n [onHide]\n )\n\n useEventHandler(document, 'click', handleHideOverlay, show, true)\n useEventHandler(document, 'keydown', handleKeydown, show)\n useEventHandler(containerRef.current, 'wheel', handleBlockMouseWheel, show)\n\n useEffect(() => {\n handleOverlayForceUpdate()\n }, [children, handleOverlayForceUpdate])\n\n /**\n * Case 1: show === true\n * show -> shouldRender -> shouldShow\n * shouldRender 를 true 로 설정하고, 직후에 shouldShow 를 true 로 설정하여 transition 유발\n *\n * Case 2: show === false\n * show -> shouldShow -> (...) -> shouldRender\n * shouldShow 를 false 로 설정하고, shouldRender 는 transition 필요 여부에 따라 다르게 결정함\n * Case 2-1: withTransition === true\n * shouldShow -> onTransitionEnd -> shouldRender\n * onTransitionEnd handler 를 이용해 transition 이 끝난 다음 shouldRender 를 false 로 설정\n * Case 2-2: withTransition === false\n * shouldShow && shouldRender\n * transition 을 기다릴 필요가 없으므로 바로 shouldRender 를 false 로 설정\n */\n useEffect(() => {\n if (show) {\n if (shouldRender) {\n window.requestAnimationFrame(() => setShouldShow(true))\n } else {\n window.requestAnimationFrame(() => setShouldRender(true))\n }\n }\n\n if (!show) {\n window.requestAnimationFrame(() => setShouldShow(false))\n\n if (!withTransition) {\n window.requestAnimationFrame(() => setShouldRender(false))\n }\n }\n }, [show, withTransition, shouldRender, shouldShow, window])\n\n const themeName = useThemeName()\n\n if (!shouldRender) {\n return null\n }\n\n const Content = (\n <ThemeProvider themeName={themeName}>\n <div\n className={classNames(\n styles.Overlay,\n !shouldShow && styles.hidden,\n withTransition && styles.transition,\n className\n )}\n style={{\n ...style,\n ...getOverlayStyle({\n containerRect: containerRect.current,\n targetRect: targetRect.current,\n overlay: overlayRef.current,\n position,\n marginX,\n marginY,\n keepInContainer,\n show: shouldShow,\n }),\n }}\n ref={mergedRef}\n data-testid={OVERLAY_TEST_ID}\n onTransitionEnd={handleTransitionEnd}\n {...rest}\n >\n {children}\n </div>\n </ThemeProvider>\n )\n\n return ReactDOM.createPortal(\n hasContainer ? (\n Content\n ) : (\n <div\n style={containerStyle}\n className={classNames(\n styles.OverlayContainer,\n !show && styles.hidden,\n containerClassName\n )}\n ref={containerRef}\n data-testid={CONTAINER_TEST_ID}\n >\n <div className={styles.OverlayWrapper}>{Content}</div>\n </div>\n ),\n container\n )\n }\n)\n"],"names":["CONTAINER_TEST_ID","OVERLAY_TEST_ID","ESCAPE_KEY","Overlay","forwardRef","children","style","className","show","container","givenContainer","target","position","marginX","marginY","keepInContainer","withTransition","enableClickOutside","containerStyle","containerClassName","onHide","onTransitionEnd","rest","forwardedRef","_ref","window","document","rootElement","useWindow","shouldRender","setShouldRender","useState","shouldShow","setShouldShow","containerRect","useRef","targetRect","forceUpdate","useReducer","x","containerRef","overlayRef","mergedRef","useMergeRefs","modalContainer","useModalContainerContext","hasContainer","Boolean","handleOverlayForceUpdate","useCallback","handleContainerRect","width","containerWidth","height","containerHeight","top","containerTop","left","containerLeft","getBoundingClientRect","current","scrollTop","scrollLeft","useIsomorphicLayoutEffect","initContainerRect","handleTargetRect","targetWidth","targetHeight","targetTop","targetLeft","clientTop","clientLeft","initTargetRect","handleTransitionEnd","event","handleBlockMouseWheel","stopPropagation","handleHideOverlay","closest","styles","handleKeydown","key","useEventHandler","useEffect","requestAnimationFrame","themeName","useThemeName","Content","React","createElement","ThemeProvider","Object","assign","classNames","hidden","transition","getOverlayStyle","overlay","ref","ReactDOM","createPortal","OverlayContainer","OverlayWrapper"],"mappings":"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"}
1
+ {"version":3,"file":"Overlay.mjs","sources":["../../../../src/components/Overlay/Overlay.tsx"],"sourcesContent":["'use client'\n\nimport React, {\n forwardRef,\n useCallback,\n useEffect,\n useReducer,\n useRef,\n useState,\n} from 'react'\nimport ReactDOM from 'react-dom'\n\nimport classNames from 'classnames'\n\nimport useEventHandler from '~/src/hooks/useEventHandler'\nimport { useIsomorphicLayoutEffect } from '~/src/hooks/useIsomorphicLayoutEffect'\nimport useMergeRefs from '~/src/hooks/useMergeRefs'\n\nimport { useModalContainerContext } from '~/src/components/Modal'\nimport { ThemeProvider, useThemeName } from '~/src/components/ThemeProvider'\nimport { useWindow } from '~/src/components/WindowProvider'\n\nimport type {\n ContainerRectAttr,\n OverlayProps,\n TargetRectAttr,\n} from './Overlay.types'\nimport { getOverlayStyle } from './utils'\n\nimport styles from './Overlay.module.scss'\n\nexport const CONTAINER_TEST_ID = 'bezier-container'\nexport const OVERLAY_TEST_ID = 'bezier-overlay'\nexport const ESCAPE_KEY = 'Escape'\n\nexport const Overlay = forwardRef<HTMLDivElement, OverlayProps>(\n function Overlay(\n {\n children,\n style,\n className,\n show = false,\n container: givenContainer,\n target,\n position = 'left-center',\n marginX = 0,\n marginY = 0,\n keepInContainer = false,\n withTransition = false,\n enableClickOutside = false,\n containerStyle,\n containerClassName,\n onHide,\n onTransitionEnd,\n ...rest\n },\n forwardedRef\n ) {\n const { window, document, rootElement } = useWindow()\n\n const [shouldRender, setShouldRender] = useState(false)\n const [shouldShow, setShouldShow] = useState(false)\n\n const containerRect = useRef<ContainerRectAttr | null>(null)\n const targetRect = useRef<TargetRectAttr | null>(null)\n\n const [, forceUpdate] = useReducer((x) => !x, true)\n\n const containerRef = useRef<HTMLDivElement>(null)\n const overlayRef = useRef<HTMLDivElement>(null)\n const mergedRef = useMergeRefs<HTMLDivElement>(overlayRef, forwardedRef)\n\n const modalContainer = useModalContainerContext()\n const hasContainer = Boolean(givenContainer || modalContainer)\n const container = givenContainer ?? modalContainer ?? rootElement\n\n const handleOverlayForceUpdate = useCallback(() => {\n forceUpdate()\n }, [])\n\n const handleContainerRect = useCallback(() => {\n const {\n width: containerWidth,\n height: containerHeight,\n top: containerTop,\n left: containerLeft,\n } = container.getBoundingClientRect()\n\n containerRect.current = {\n containerWidth,\n containerHeight,\n containerTop,\n containerLeft,\n scrollTop: hasContainer ? container.scrollTop : 0,\n scrollLeft: hasContainer ? container.scrollLeft : 0,\n }\n }, [container, hasContainer])\n\n useIsomorphicLayoutEffect(\n function initContainerRect() {\n if (show) {\n handleContainerRect()\n }\n },\n [show, handleContainerRect]\n )\n\n const handleTargetRect = useCallback(() => {\n if (!target) {\n return\n }\n const {\n width: targetWidth,\n height: targetHeight,\n top: targetTop,\n left: targetLeft,\n } = target.getBoundingClientRect()\n const { clientTop, clientLeft } = target\n\n targetRect.current = {\n targetWidth,\n targetHeight,\n targetTop,\n targetLeft,\n clientTop,\n clientLeft,\n }\n }, [target])\n\n useIsomorphicLayoutEffect(\n function initTargetRect() {\n if (show) {\n handleTargetRect()\n }\n },\n [show, handleTargetRect]\n )\n\n const handleTransitionEnd = useCallback<\n React.TransitionEventHandler<HTMLDivElement>\n >(\n (event) => {\n onTransitionEnd?.(event)\n if (!show) {\n setShouldRender(false)\n }\n },\n [show, onTransitionEnd]\n )\n\n const handleBlockMouseWheel = useCallback(\n (event: HTMLElementEventMap['wheel']) => {\n event.stopPropagation()\n },\n []\n )\n\n const handleHideOverlay = useCallback(\n (event: MouseEvent) => {\n /**\n * NOTE: Type checking with instanceof makes it difficult to handle cases where the window object is different.\n */\n if (\n !event.target ||\n !(event.target as HTMLElement).closest(`.${styles.Overlay}`)\n ) {\n onHide?.()\n\n if (!enableClickOutside) {\n event.stopPropagation()\n }\n }\n },\n [enableClickOutside, onHide]\n )\n\n const handleKeydown = useCallback(\n (event: HTMLElementEventMap['keyup']) => {\n if (event.key === ESCAPE_KEY) {\n onHide?.()\n }\n },\n [onHide]\n )\n\n useEventHandler(document, 'click', handleHideOverlay, show, true)\n useEventHandler(document, 'keydown', handleKeydown, show)\n useEventHandler(containerRef.current, 'wheel', handleBlockMouseWheel, show)\n\n useEffect(() => {\n handleOverlayForceUpdate()\n }, [children, handleOverlayForceUpdate])\n\n /**\n * Case 1: show === true\n * show -> shouldRender -> shouldShow\n * shouldRender 를 true 로 설정하고, 직후에 shouldShow 를 true 로 설정하여 transition 유발\n *\n * Case 2: show === false\n * show -> shouldShow -> (...) -> shouldRender\n * shouldShow 를 false 로 설정하고, shouldRender 는 transition 필요 여부에 따라 다르게 결정함\n * Case 2-1: withTransition === true\n * shouldShow -> onTransitionEnd -> shouldRender\n * onTransitionEnd handler 를 이용해 transition 이 끝난 다음 shouldRender 를 false 로 설정\n * Case 2-2: withTransition === false\n * shouldShow && shouldRender\n * transition 을 기다릴 필요가 없으므로 바로 shouldRender 를 false 로 설정\n */\n useEffect(() => {\n if (show) {\n if (shouldRender) {\n window.requestAnimationFrame(() => setShouldShow(true))\n } else {\n window.requestAnimationFrame(() => setShouldRender(true))\n }\n }\n\n if (!show) {\n window.requestAnimationFrame(() => setShouldShow(false))\n\n if (!withTransition) {\n window.requestAnimationFrame(() => setShouldRender(false))\n }\n }\n }, [show, withTransition, shouldRender, shouldShow, window])\n\n const themeName = useThemeName()\n\n if (!shouldRender) {\n return null\n }\n\n const Content = (\n <ThemeProvider themeName={themeName}>\n <div\n className={classNames(\n styles.Overlay,\n !shouldShow && styles.hidden,\n withTransition && styles.transition,\n className\n )}\n style={{\n ...style,\n ...getOverlayStyle({\n containerRect: containerRect.current,\n targetRect: targetRect.current,\n overlay: overlayRef.current,\n position,\n marginX,\n marginY,\n keepInContainer,\n show: shouldShow,\n }),\n }}\n ref={mergedRef}\n data-testid={OVERLAY_TEST_ID}\n onTransitionEnd={handleTransitionEnd}\n {...rest}\n >\n {children}\n </div>\n </ThemeProvider>\n )\n\n return ReactDOM.createPortal(\n hasContainer ? (\n Content\n ) : (\n <div\n style={containerStyle}\n className={classNames(\n styles.OverlayContainer,\n !show && styles.hidden,\n containerClassName\n )}\n ref={containerRef}\n data-testid={CONTAINER_TEST_ID}\n >\n <div className={styles.OverlayWrapper}>{Content}</div>\n </div>\n ),\n container\n )\n }\n)\n"],"names":["CONTAINER_TEST_ID","OVERLAY_TEST_ID","ESCAPE_KEY","Overlay","forwardRef","children","style","className","show","container","givenContainer","target","position","marginX","marginY","keepInContainer","withTransition","enableClickOutside","containerStyle","containerClassName","onHide","onTransitionEnd","rest","forwardedRef","_ref","window","document","rootElement","useWindow","shouldRender","setShouldRender","useState","shouldShow","setShouldShow","containerRect","useRef","targetRect","forceUpdate","useReducer","x","containerRef","overlayRef","mergedRef","useMergeRefs","modalContainer","useModalContainerContext","hasContainer","Boolean","handleOverlayForceUpdate","useCallback","handleContainerRect","width","containerWidth","height","containerHeight","top","containerTop","left","containerLeft","getBoundingClientRect","current","scrollTop","scrollLeft","useIsomorphicLayoutEffect","initContainerRect","handleTargetRect","targetWidth","targetHeight","targetTop","targetLeft","clientTop","clientLeft","initTargetRect","handleTransitionEnd","event","handleBlockMouseWheel","stopPropagation","handleHideOverlay","closest","styles","handleKeydown","key","useEventHandler","useEffect","requestAnimationFrame","themeName","useThemeName","Content","React","createElement","ThemeProvider","Object","assign","classNames","hidden","transition","getOverlayStyle","overlay","ref","ReactDOM","createPortal","OverlayContainer","OverlayWrapper"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.mjs","sources":["../../../../src/components/Overlay/utils.ts"],"sourcesContent":["import {\n type ContainerRectAttr,\n type OverlayPosition,\n type TargetRectAttr,\n} from './Overlay.types'\n\nconst TOP_POSITION_OFFSET = 10\n\ninterface GetOverlayPositionArgs {\n containerRect: ContainerRectAttr\n targetRect: TargetRectAttr\n show: boolean\n}\n\nexport function getOverlayPosition({\n containerRect,\n targetRect,\n show,\n}: GetOverlayPositionArgs) {\n const { containerTop, containerLeft, scrollTop, scrollLeft } = containerRect\n const { targetTop, targetLeft, clientTop, clientLeft } = targetRect\n\n const top = targetTop - clientTop - containerTop + scrollTop\n const left = targetLeft - clientLeft - containerLeft + scrollLeft\n\n return {\n top: show ? top : top - TOP_POSITION_OFFSET,\n left,\n }\n}\n\ninterface GetOverlayTranslatationArgs {\n containerRect: ContainerRectAttr\n targetRect: TargetRectAttr | null\n overlay: HTMLElement | null\n position: OverlayPosition\n marginX: number\n marginY: number\n keepInContainer: boolean\n}\n\nexport function getOverlayTranslation({\n containerRect,\n targetRect,\n overlay,\n position,\n marginX,\n marginY,\n keepInContainer,\n}: GetOverlayTranslatationArgs) {\n if (containerRect && targetRect && overlay) {\n const { containerWidth, containerHeight, containerTop, containerLeft } =\n containerRect\n const { targetWidth, targetHeight, targetTop, targetLeft } = targetRect\n const { width: overlayWidth, height: overlayHeight } =\n overlay.getBoundingClientRect()\n\n let translateX = 0\n let translateY = 0\n\n // pre position\n switch (position) {\n case 'top-center':\n case 'top-left':\n case 'top-right':\n translateY -= overlayHeight + marginY\n translateX += marginX\n break\n case 'right-center':\n case 'right-top':\n case 'right-bottom':\n translateX += targetWidth + marginX\n translateY += marginY\n break\n case 'bottom-center':\n case 'bottom-left':\n case 'bottom-right':\n translateY += targetHeight + marginY\n translateX += marginX\n break\n case 'left-center':\n case 'left-top':\n case 'left-bottom':\n translateX -= overlayWidth + marginX\n translateY += marginY\n break\n }\n\n switch (position) {\n // post position\n case 'top-center':\n case 'bottom-center':\n translateX -= overlayWidth / 2 - targetWidth / 2\n break\n case 'top-right':\n case 'bottom-right':\n translateX -= overlayWidth - targetWidth\n break\n case 'right-center':\n case 'left-center':\n translateY -= overlayHeight / 2 - targetHeight / 2\n break\n case 'right-bottom':\n case 'left-bottom':\n translateY -= overlayHeight - targetHeight\n break\n\n // inner position\n case 'inner-left-top':\n translateX = marginX\n translateY = marginY\n break\n case 'inner-left-bottom':\n translateX = marginX\n translateY = targetHeight - overlayHeight + marginY\n break\n case 'inner-right-top':\n translateX = targetWidth - overlayWidth + marginX\n translateY = marginY\n break\n case 'inner-right-bottom':\n translateX = targetWidth - overlayWidth + marginX\n translateY = targetHeight - overlayHeight + marginY\n break\n }\n\n if (keepInContainer) {\n const isOverTop = targetTop + translateY < containerTop\n const isOverBottom =\n targetTop + translateY + overlayHeight > containerTop + containerHeight\n const isOverLeft = targetLeft + translateX < containerLeft\n const isOverRight =\n targetLeft + translateX + overlayWidth > containerLeft + containerWidth\n\n const topSpace = targetTop - containerTop\n const bottomSpace =\n containerTop + containerHeight - (targetTop + targetHeight)\n const leftSpace = targetLeft - containerLeft\n const rightSpace =\n containerLeft + containerWidth - (targetLeft + targetWidth)\n\n if (isOverTop) {\n translateY =\n topSpace > bottomSpace\n ? translateY\n : targetHeight - translateY - overlayHeight\n } else if (isOverBottom) {\n translateY =\n bottomSpace > topSpace\n ? translateY\n : targetHeight - translateY - overlayHeight\n }\n if (isOverLeft) {\n translateX =\n leftSpace > rightSpace\n ? translateX\n : targetWidth - translateX - overlayWidth\n } else if (isOverRight) {\n translateX =\n rightSpace > leftSpace\n ? translateX\n : targetWidth - translateX - overlayWidth\n }\n }\n\n return {\n translateX: Math.round(translateX),\n translateY: Math.round(translateY),\n }\n }\n return {\n translateX: 0,\n translateY: 0,\n }\n}\n\ninterface GetOverlayStyleArgs {\n containerRect: ContainerRectAttr | null\n targetRect: TargetRectAttr | null\n overlay: HTMLElement | null\n position: OverlayPosition\n marginX: number\n marginY: number\n keepInContainer: boolean\n show: boolean\n}\n\nexport function getOverlayStyle({\n containerRect,\n targetRect,\n overlay,\n position,\n marginX,\n marginY,\n keepInContainer,\n show,\n}: GetOverlayStyleArgs) {\n if (containerRect && targetRect) {\n const { top, left } = getOverlayPosition({\n containerRect,\n targetRect,\n show,\n })\n const { translateX, translateY } = getOverlayTranslation({\n containerRect,\n targetRect,\n overlay,\n position,\n marginX,\n marginY,\n keepInContainer,\n })\n\n return {\n top: `${top}px`,\n left: `${left}px`,\n transform: `translateX(${translateX}px) translateY(${translateY}px)`,\n }\n }\n\n return {}\n}\n"],"names":["TOP_POSITION_OFFSET","getOverlayPosition","containerRect","targetRect","show","containerTop","containerLeft","scrollTop","scrollLeft","targetTop","targetLeft","clientTop","clientLeft","top","left","getOverlayTranslation","overlay","position","marginX","marginY","keepInContainer","containerWidth","containerHeight","targetWidth","targetHeight","width","overlayWidth","height","overlayHeight","getBoundingClientRect","translateX","translateY","isOverTop","isOverBottom","isOverLeft","isOverRight","topSpace","bottomSpace","leftSpace","rightSpace","Math","round","getOverlayStyle","transform"],"mappings":"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"}
1
+ {"version":3,"file":"utils.mjs","sources":["../../../../src/components/Overlay/utils.ts"],"sourcesContent":["import {\n type ContainerRectAttr,\n type OverlayPosition,\n type TargetRectAttr,\n} from './Overlay.types'\n\nconst TOP_POSITION_OFFSET = 10\n\ninterface GetOverlayPositionArgs {\n containerRect: ContainerRectAttr\n targetRect: TargetRectAttr\n show: boolean\n}\n\nexport function getOverlayPosition({\n containerRect,\n targetRect,\n show,\n}: GetOverlayPositionArgs) {\n const { containerTop, containerLeft, scrollTop, scrollLeft } = containerRect\n const { targetTop, targetLeft, clientTop, clientLeft } = targetRect\n\n const top = targetTop - clientTop - containerTop + scrollTop\n const left = targetLeft - clientLeft - containerLeft + scrollLeft\n\n return {\n top: show ? top : top - TOP_POSITION_OFFSET,\n left,\n }\n}\n\ninterface GetOverlayTranslatationArgs {\n containerRect: ContainerRectAttr\n targetRect: TargetRectAttr | null\n overlay: HTMLElement | null\n position: OverlayPosition\n marginX: number\n marginY: number\n keepInContainer: boolean\n}\n\nexport function getOverlayTranslation({\n containerRect,\n targetRect,\n overlay,\n position,\n marginX,\n marginY,\n keepInContainer,\n}: GetOverlayTranslatationArgs) {\n if (containerRect && targetRect && overlay) {\n const { containerWidth, containerHeight, containerTop, containerLeft } =\n containerRect\n const { targetWidth, targetHeight, targetTop, targetLeft } = targetRect\n const { width: overlayWidth, height: overlayHeight } =\n overlay.getBoundingClientRect()\n\n let translateX = 0\n let translateY = 0\n\n // pre position\n switch (position) {\n case 'top-center':\n case 'top-left':\n case 'top-right':\n translateY -= overlayHeight + marginY\n translateX += marginX\n break\n case 'right-center':\n case 'right-top':\n case 'right-bottom':\n translateX += targetWidth + marginX\n translateY += marginY\n break\n case 'bottom-center':\n case 'bottom-left':\n case 'bottom-right':\n translateY += targetHeight + marginY\n translateX += marginX\n break\n case 'left-center':\n case 'left-top':\n case 'left-bottom':\n translateX -= overlayWidth + marginX\n translateY += marginY\n break\n }\n\n switch (position) {\n // post position\n case 'top-center':\n case 'bottom-center':\n translateX -= overlayWidth / 2 - targetWidth / 2\n break\n case 'top-right':\n case 'bottom-right':\n translateX -= overlayWidth - targetWidth\n break\n case 'right-center':\n case 'left-center':\n translateY -= overlayHeight / 2 - targetHeight / 2\n break\n case 'right-bottom':\n case 'left-bottom':\n translateY -= overlayHeight - targetHeight\n break\n\n // inner position\n case 'inner-left-top':\n translateX = marginX\n translateY = marginY\n break\n case 'inner-left-bottom':\n translateX = marginX\n translateY = targetHeight - overlayHeight + marginY\n break\n case 'inner-right-top':\n translateX = targetWidth - overlayWidth + marginX\n translateY = marginY\n break\n case 'inner-right-bottom':\n translateX = targetWidth - overlayWidth + marginX\n translateY = targetHeight - overlayHeight + marginY\n break\n }\n\n if (keepInContainer) {\n const isOverTop = targetTop + translateY < containerTop\n const isOverBottom =\n targetTop + translateY + overlayHeight > containerTop + containerHeight\n const isOverLeft = targetLeft + translateX < containerLeft\n const isOverRight =\n targetLeft + translateX + overlayWidth > containerLeft + containerWidth\n\n const topSpace = targetTop - containerTop\n const bottomSpace =\n containerTop + containerHeight - (targetTop + targetHeight)\n const leftSpace = targetLeft - containerLeft\n const rightSpace =\n containerLeft + containerWidth - (targetLeft + targetWidth)\n\n if (isOverTop) {\n translateY =\n topSpace > bottomSpace\n ? translateY\n : targetHeight - translateY - overlayHeight\n } else if (isOverBottom) {\n translateY =\n bottomSpace > topSpace\n ? translateY\n : targetHeight - translateY - overlayHeight\n }\n if (isOverLeft) {\n translateX =\n leftSpace > rightSpace\n ? translateX\n : targetWidth - translateX - overlayWidth\n } else if (isOverRight) {\n translateX =\n rightSpace > leftSpace\n ? translateX\n : targetWidth - translateX - overlayWidth\n }\n }\n\n return {\n translateX: Math.round(translateX),\n translateY: Math.round(translateY),\n }\n }\n return {\n translateX: 0,\n translateY: 0,\n }\n}\n\ninterface GetOverlayStyleArgs {\n containerRect: ContainerRectAttr | null\n targetRect: TargetRectAttr | null\n overlay: HTMLElement | null\n position: OverlayPosition\n marginX: number\n marginY: number\n keepInContainer: boolean\n show: boolean\n}\n\nexport function getOverlayStyle({\n containerRect,\n targetRect,\n overlay,\n position,\n marginX,\n marginY,\n keepInContainer,\n show,\n}: GetOverlayStyleArgs) {\n if (containerRect && targetRect) {\n const { top, left } = getOverlayPosition({\n containerRect,\n targetRect,\n show,\n })\n const { translateX, translateY } = getOverlayTranslation({\n containerRect,\n targetRect,\n overlay,\n position,\n marginX,\n marginY,\n keepInContainer,\n })\n\n return {\n top: `${top}px`,\n left: `${left}px`,\n transform: `translateX(${translateX}px) translateY(${translateY}px)`,\n }\n }\n\n return {}\n}\n"],"names":["TOP_POSITION_OFFSET","getOverlayPosition","containerRect","targetRect","show","containerTop","containerLeft","scrollTop","scrollLeft","targetTop","targetLeft","clientTop","clientLeft","top","left","getOverlayTranslation","overlay","position","marginX","marginY","keepInContainer","containerWidth","containerHeight","targetWidth","targetHeight","width","overlayWidth","height","overlayHeight","getBoundingClientRect","translateX","translateY","isOverTop","isOverBottom","isOverLeft","isOverRight","topSpace","bottomSpace","leftSpace","rightSpace","Math","round","getOverlayStyle","transform"],"mappings":"AAMA,MAAMA,mBAAmB,GAAG,EAAE;AAQvB,SAASC,kBAAkBA,CAAC;EACjCC,aAAa;EACbC,UAAU;AACVC,EAAAA;AACsB,CAAC,EAAE;EACzB,MAAM;IAAEC,YAAY;IAAEC,aAAa;IAAEC,SAAS;AAAEC,IAAAA;AAAW,GAAC,GAAGN,aAAa;EAC5E,MAAM;IAAEO,SAAS;IAAEC,UAAU;IAAEC,SAAS;AAAEC,IAAAA;AAAW,GAAC,GAAGT,UAAU;EAEnE,MAAMU,GAAG,GAAGJ,SAAS,GAAGE,SAAS,GAAGN,YAAY,GAAGE,SAAS;EAC5D,MAAMO,IAAI,GAAGJ,UAAU,GAAGE,UAAU,GAAGN,aAAa,GAAGE,UAAU;EAEjE,OAAO;AACLK,IAAAA,GAAG,EAAET,IAAI,GAAGS,GAAG,GAAGA,GAAG,GAAGb,mBAAmB;AAC3Cc,IAAAA;GACD;AACH;AAYO,SAASC,qBAAqBA,CAAC;EACpCb,aAAa;EACbC,UAAU;EACVa,OAAO;EACPC,QAAQ;EACRC,OAAO;EACPC,OAAO;AACPC,EAAAA;AAC2B,CAAC,EAAE;AAC9B,EAAA,IAAIlB,aAAa,IAAIC,UAAU,IAAIa,OAAO,EAAE;IAC1C,MAAM;MAAEK,cAAc;MAAEC,eAAe;MAAEjB,YAAY;AAAEC,MAAAA;AAAc,KAAC,GACpEJ,aAAa;IACf,MAAM;MAAEqB,WAAW;MAAEC,YAAY;MAAEf,SAAS;AAAEC,MAAAA;AAAW,KAAC,GAAGP,UAAU;IACvE,MAAM;AAAEsB,MAAAA,KAAK,EAAEC,YAAY;AAAEC,MAAAA,MAAM,EAAEC;AAAc,KAAC,GAClDZ,OAAO,CAACa,qBAAqB,EAAE;IAEjC,IAAIC,UAAU,GAAG,CAAC;IAClB,IAAIC,UAAU,GAAG,CAAC;;AAElB;AACA,IAAA,QAAQd,QAAQ;AACd,MAAA,KAAK,YAAY;AACjB,MAAA,KAAK,UAAU;AACf,MAAA,KAAK,WAAW;QACdc,UAAU,IAAIH,aAAa,GAAGT,OAAO;AACrCW,QAAAA,UAAU,IAAIZ,OAAO;AACrB,QAAA;AACF,MAAA,KAAK,cAAc;AACnB,MAAA,KAAK,WAAW;AAChB,MAAA,KAAK,cAAc;QACjBY,UAAU,IAAIP,WAAW,GAAGL,OAAO;AACnCa,QAAAA,UAAU,IAAIZ,OAAO;AACrB,QAAA;AACF,MAAA,KAAK,eAAe;AACpB,MAAA,KAAK,aAAa;AAClB,MAAA,KAAK,cAAc;QACjBY,UAAU,IAAIP,YAAY,GAAGL,OAAO;AACpCW,QAAAA,UAAU,IAAIZ,OAAO;AACrB,QAAA;AACF,MAAA,KAAK,aAAa;AAClB,MAAA,KAAK,UAAU;AACf,MAAA,KAAK,aAAa;QAChBY,UAAU,IAAIJ,YAAY,GAAGR,OAAO;AACpCa,QAAAA,UAAU,IAAIZ,OAAO;AACrB,QAAA;AACJ;AAEA,IAAA,QAAQF,QAAQ;AACd;AACA,MAAA,KAAK,YAAY;AACjB,MAAA,KAAK,eAAe;AAClBa,QAAAA,UAAU,IAAIJ,YAAY,GAAG,CAAC,GAAGH,WAAW,GAAG,CAAC;AAChD,QAAA;AACF,MAAA,KAAK,WAAW;AAChB,MAAA,KAAK,cAAc;QACjBO,UAAU,IAAIJ,YAAY,GAAGH,WAAW;AACxC,QAAA;AACF,MAAA,KAAK,cAAc;AACnB,MAAA,KAAK,aAAa;AAChBQ,QAAAA,UAAU,IAAIH,aAAa,GAAG,CAAC,GAAGJ,YAAY,GAAG,CAAC;AAClD,QAAA;AACF,MAAA,KAAK,cAAc;AACnB,MAAA,KAAK,aAAa;QAChBO,UAAU,IAAIH,aAAa,GAAGJ,YAAY;AAC1C,QAAA;;AAEF;AACA,MAAA,KAAK,gBAAgB;AACnBM,QAAAA,UAAU,GAAGZ,OAAO;AACpBa,QAAAA,UAAU,GAAGZ,OAAO;AACpB,QAAA;AACF,MAAA,KAAK,mBAAmB;AACtBW,QAAAA,UAAU,GAAGZ,OAAO;AACpBa,QAAAA,UAAU,GAAGP,YAAY,GAAGI,aAAa,GAAGT,OAAO;AACnD,QAAA;AACF,MAAA,KAAK,iBAAiB;AACpBW,QAAAA,UAAU,GAAGP,WAAW,GAAGG,YAAY,GAAGR,OAAO;AACjDa,QAAAA,UAAU,GAAGZ,OAAO;AACpB,QAAA;AACF,MAAA,KAAK,oBAAoB;AACvBW,QAAAA,UAAU,GAAGP,WAAW,GAAGG,YAAY,GAAGR,OAAO;AACjDa,QAAAA,UAAU,GAAGP,YAAY,GAAGI,aAAa,GAAGT,OAAO;AACnD,QAAA;AACJ;AAEA,IAAA,IAAIC,eAAe,EAAE;AACnB,MAAA,MAAMY,SAAS,GAAGvB,SAAS,GAAGsB,UAAU,GAAG1B,YAAY;MACvD,MAAM4B,YAAY,GAChBxB,SAAS,GAAGsB,UAAU,GAAGH,aAAa,GAAGvB,YAAY,GAAGiB,eAAe;AACzE,MAAA,MAAMY,UAAU,GAAGxB,UAAU,GAAGoB,UAAU,GAAGxB,aAAa;MAC1D,MAAM6B,WAAW,GACfzB,UAAU,GAAGoB,UAAU,GAAGJ,YAAY,GAAGpB,aAAa,GAAGe,cAAc;AAEzE,MAAA,MAAMe,QAAQ,GAAG3B,SAAS,GAAGJ,YAAY;MACzC,MAAMgC,WAAW,GACfhC,YAAY,GAAGiB,eAAe,IAAIb,SAAS,GAAGe,YAAY,CAAC;AAC7D,MAAA,MAAMc,SAAS,GAAG5B,UAAU,GAAGJ,aAAa;MAC5C,MAAMiC,UAAU,GACdjC,aAAa,GAAGe,cAAc,IAAIX,UAAU,GAAGa,WAAW,CAAC;AAE7D,MAAA,IAAIS,SAAS,EAAE;QACbD,UAAU,GACRK,QAAQ,GAAGC,WAAW,GAClBN,UAAU,GACVP,YAAY,GAAGO,UAAU,GAAGH,aAAa;OAChD,MAAM,IAAIK,YAAY,EAAE;QACvBF,UAAU,GACRM,WAAW,GAAGD,QAAQ,GAClBL,UAAU,GACVP,YAAY,GAAGO,UAAU,GAAGH,aAAa;AACjD;AACA,MAAA,IAAIM,UAAU,EAAE;QACdJ,UAAU,GACRQ,SAAS,GAAGC,UAAU,GAClBT,UAAU,GACVP,WAAW,GAAGO,UAAU,GAAGJ,YAAY;OAC9C,MAAM,IAAIS,WAAW,EAAE;QACtBL,UAAU,GACRS,UAAU,GAAGD,SAAS,GAClBR,UAAU,GACVP,WAAW,GAAGO,UAAU,GAAGJ,YAAY;AAC/C;AACF;IAEA,OAAO;AACLI,MAAAA,UAAU,EAAEU,IAAI,CAACC,KAAK,CAACX,UAAU,CAAC;AAClCC,MAAAA,UAAU,EAAES,IAAI,CAACC,KAAK,CAACV,UAAU;KAClC;AACH;EACA,OAAO;AACLD,IAAAA,UAAU,EAAE,CAAC;AACbC,IAAAA,UAAU,EAAE;GACb;AACH;AAaO,SAASW,eAAeA,CAAC;EAC9BxC,aAAa;EACbC,UAAU;EACVa,OAAO;EACPC,QAAQ;EACRC,OAAO;EACPC,OAAO;EACPC,eAAe;AACfhB,EAAAA;AACmB,CAAC,EAAE;EACtB,IAAIF,aAAa,IAAIC,UAAU,EAAE;IAC/B,MAAM;MAAEU,GAAG;AAAEC,MAAAA;KAAM,GAAGb,kBAAkB,CAAC;MACvCC,aAAa;MACbC,UAAU;AACVC,MAAAA;AACF,KAAC,CAAC;IACF,MAAM;MAAE0B,UAAU;AAAEC,MAAAA;KAAY,GAAGhB,qBAAqB,CAAC;MACvDb,aAAa;MACbC,UAAU;MACVa,OAAO;MACPC,QAAQ;MACRC,OAAO;MACPC,OAAO;AACPC,MAAAA;AACF,KAAC,CAAC;IAEF,OAAO;MACLP,GAAG,EAAE,CAAGA,EAAAA,GAAG,CAAI,EAAA,CAAA;MACfC,IAAI,EAAE,CAAGA,EAAAA,IAAI,CAAI,EAAA,CAAA;AACjB6B,MAAAA,SAAS,EAAE,CAAA,WAAA,EAAcb,UAAU,CAAA,eAAA,EAAkBC,UAAU,CAAA,GAAA;KAChE;AACH;AAEA,EAAA,OAAO,EAAE;AACX;;;;"}