@channel.io/bezier-react 2.2.4 → 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/dist/cjs/components/AlphaAvatar/Avatar.js +2 -1
  2. package/dist/cjs/components/AlphaAvatar/Avatar.js.map +1 -1
  3. package/dist/cjs/components/AlphaAvatar/useProgressiveImage.js +2 -2
  4. package/dist/cjs/components/AlphaAvatar/useProgressiveImage.js.map +1 -1
  5. package/dist/cjs/components/AlphaAvatarGroup/AvatarGroup.js +2 -1
  6. package/dist/cjs/components/AlphaAvatarGroup/AvatarGroup.js.map +1 -1
  7. package/dist/cjs/components/AlphaButton/Button.module.scss.js +1 -1
  8. package/dist/cjs/components/AlphaIconButton/IconButton.module.scss.js +1 -1
  9. package/dist/cjs/components/AlphaStatusBadge/StatusBadge.js +50 -0
  10. package/dist/cjs/components/AlphaStatusBadge/StatusBadge.js.map +1 -0
  11. package/dist/cjs/components/AlphaStatusBadge/StatusBadge.module.scss.js +8 -0
  12. package/dist/cjs/components/AlphaStatusBadge/StatusBadge.module.scss.js.map +1 -0
  13. package/dist/cjs/components/AlphaToggleButton/ToggleButton.js +2 -1
  14. package/dist/cjs/components/AlphaToggleButton/ToggleButton.js.map +1 -1
  15. package/dist/cjs/components/Avatar/useProgressiveImage.js +2 -2
  16. package/dist/cjs/components/Avatar/useProgressiveImage.js.map +1 -1
  17. package/dist/cjs/components/AvatarGroup/AvatarGroup.js +2 -1
  18. package/dist/cjs/components/AvatarGroup/AvatarGroup.js.map +1 -1
  19. package/dist/cjs/components/Badge/Badge.js +1 -1
  20. package/dist/cjs/components/Badge/Badge.js.map +1 -1
  21. package/dist/cjs/components/Button/Button.js +1 -1
  22. package/dist/cjs/components/Button/Button.js.map +1 -1
  23. package/dist/cjs/components/Checkbox/Checkbox.js +1 -1
  24. package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
  25. package/dist/cjs/components/Emoji/Emoji.js +1 -1
  26. package/dist/cjs/components/Emoji/Emoji.js.map +1 -1
  27. package/dist/cjs/components/FeatureProvider/SmoothCornersFeature/SmoothCornersFeature.js +2 -2
  28. package/dist/cjs/components/FeatureProvider/SmoothCornersFeature/SmoothCornersFeature.js.map +1 -1
  29. package/dist/cjs/components/FormControl/FormControl.js +2 -1
  30. package/dist/cjs/components/FormControl/FormControl.js.map +1 -1
  31. package/dist/cjs/components/FormGroup/FormGroup.js +2 -1
  32. package/dist/cjs/components/FormGroup/FormGroup.js.map +1 -1
  33. package/dist/cjs/components/FormHelperText/FormHelperText.js +3 -2
  34. package/dist/cjs/components/FormHelperText/FormHelperText.js.map +1 -1
  35. package/dist/cjs/components/FormLabel/FormLabel.js +4 -3
  36. package/dist/cjs/components/FormLabel/FormLabel.js.map +1 -1
  37. package/dist/cjs/components/Icon/Icon.js +1 -1
  38. package/dist/cjs/components/Icon/Icon.js.map +1 -1
  39. package/dist/cjs/components/LegacyStack/LegacyStack/LegacyStack.js +2 -1
  40. package/dist/cjs/components/LegacyStack/LegacyStack/LegacyStack.js.map +1 -1
  41. package/dist/cjs/components/LegacyTooltip/LegacyTooltip.js +1 -1
  42. package/dist/cjs/components/LegacyTooltip/LegacyTooltip.js.map +1 -1
  43. package/dist/cjs/components/LegacyTooltip/LegacyTooltipContent.js +2 -2
  44. package/dist/cjs/components/LegacyTooltip/LegacyTooltipContent.js.map +1 -1
  45. package/dist/cjs/components/ListItem/ListItem.js +1 -1
  46. package/dist/cjs/components/ListItem/ListItem.js.map +1 -1
  47. package/dist/cjs/components/Modal/Modal.js +3 -3
  48. package/dist/cjs/components/Modal/Modal.js.map +1 -1
  49. package/dist/cjs/components/NavGroup/NavGroup.js +1 -1
  50. package/dist/cjs/components/NavGroup/NavGroup.js.map +1 -1
  51. package/dist/cjs/components/NavItem/NavItem.js +1 -1
  52. package/dist/cjs/components/NavItem/NavItem.js.map +1 -1
  53. package/dist/cjs/components/OutlineItem/OutlineItem.js +1 -1
  54. package/dist/cjs/components/OutlineItem/OutlineItem.js.map +1 -1
  55. package/dist/cjs/components/Overlay/Overlay.js +5 -4
  56. package/dist/cjs/components/Overlay/Overlay.js.map +1 -1
  57. package/dist/cjs/components/SegmentedControl/SegmentedControl.js +1 -1
  58. package/dist/cjs/components/SegmentedControl/SegmentedControl.js.map +1 -1
  59. package/dist/cjs/components/Select/Select.js +4 -3
  60. package/dist/cjs/components/Select/Select.js.map +1 -1
  61. package/dist/cjs/components/Slider/Slider.js +1 -1
  62. package/dist/cjs/components/Slider/Slider.js.map +1 -1
  63. package/dist/cjs/components/SmoothCornersBox/SmoothCornersBox.js +7 -6
  64. package/dist/cjs/components/SmoothCornersBox/SmoothCornersBox.js.map +1 -1
  65. package/dist/cjs/components/Status/Status.js +1 -1
  66. package/dist/cjs/components/Status/Status.js.map +1 -1
  67. package/dist/cjs/components/Tag/Tag.js +1 -1
  68. package/dist/cjs/components/Tag/Tag.js.map +1 -1
  69. package/dist/cjs/components/TextArea/TextArea.js +4 -2
  70. package/dist/cjs/components/TextArea/TextArea.js.map +1 -1
  71. package/dist/cjs/components/TextField/TextField.js +19 -9
  72. package/dist/cjs/components/TextField/TextField.js.map +1 -1
  73. package/dist/cjs/components/Toast/Toast.js +31 -27
  74. package/dist/cjs/components/Toast/Toast.js.map +1 -1
  75. package/dist/cjs/components/Toast/ToastService.js +1 -1
  76. package/dist/cjs/components/Toast/ToastService.js.map +1 -1
  77. package/dist/cjs/components/Toast/useToastContextValues.js +2 -2
  78. package/dist/cjs/components/Toast/useToastContextValues.js.map +1 -1
  79. package/dist/cjs/components/Tooltip/Tooltip.js +4 -4
  80. package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
  81. package/dist/cjs/hooks/useKeyboardActionLockerWhileComposing.js +1 -1
  82. package/dist/cjs/hooks/useKeyboardActionLockerWhileComposing.js.map +1 -1
  83. package/dist/cjs/index.js +2 -0
  84. package/dist/cjs/index.js.map +1 -1
  85. package/dist/cjs/node_modules/@radix-ui/react-dialog/dist/index.js +17 -1
  86. package/dist/cjs/node_modules/@radix-ui/react-dialog/dist/index.js.map +1 -1
  87. package/dist/cjs/node_modules/@radix-ui/react-popper/dist/index.js +5 -1
  88. package/dist/cjs/node_modules/@radix-ui/react-popper/dist/index.js.map +1 -1
  89. package/dist/cjs/node_modules/@radix-ui/react-portal/dist/index.js +1 -1
  90. package/dist/cjs/node_modules/@radix-ui/react-slot/dist/index.js +1 -1
  91. package/dist/cjs/node_modules/react-remove-scroll/dist/es2015/UI.js +3 -3
  92. package/dist/cjs/node_modules/react-remove-scroll/dist/es2015/UI.js.map +1 -1
  93. package/dist/cjs/styles.css +1 -1
  94. package/dist/cjs/utils/assert.js +1 -1
  95. package/dist/cjs/utils/assert.js.map +1 -1
  96. package/dist/esm/components/AlphaAvatar/Avatar.mjs +2 -1
  97. package/dist/esm/components/AlphaAvatar/Avatar.mjs.map +1 -1
  98. package/dist/esm/components/AlphaAvatar/useProgressiveImage.mjs +2 -2
  99. package/dist/esm/components/AlphaAvatar/useProgressiveImage.mjs.map +1 -1
  100. package/dist/esm/components/AlphaAvatarGroup/AvatarGroup.mjs +2 -1
  101. package/dist/esm/components/AlphaAvatarGroup/AvatarGroup.mjs.map +1 -1
  102. package/dist/esm/components/AlphaButton/Button.module.scss.mjs +1 -1
  103. package/dist/esm/components/AlphaIconButton/IconButton.module.scss.mjs +1 -1
  104. package/dist/esm/components/AlphaStatusBadge/StatusBadge.mjs +48 -0
  105. package/dist/esm/components/AlphaStatusBadge/StatusBadge.mjs.map +1 -0
  106. package/dist/esm/components/AlphaStatusBadge/StatusBadge.module.scss.mjs +4 -0
  107. package/dist/esm/components/AlphaStatusBadge/StatusBadge.module.scss.mjs.map +1 -0
  108. package/dist/esm/components/AlphaToggleButton/ToggleButton.mjs +2 -1
  109. package/dist/esm/components/AlphaToggleButton/ToggleButton.mjs.map +1 -1
  110. package/dist/esm/components/Avatar/useProgressiveImage.mjs +2 -2
  111. package/dist/esm/components/Avatar/useProgressiveImage.mjs.map +1 -1
  112. package/dist/esm/components/AvatarGroup/AvatarGroup.mjs +2 -1
  113. package/dist/esm/components/AvatarGroup/AvatarGroup.mjs.map +1 -1
  114. package/dist/esm/components/Badge/Badge.mjs +1 -1
  115. package/dist/esm/components/Badge/Badge.mjs.map +1 -1
  116. package/dist/esm/components/Button/Button.mjs +1 -1
  117. package/dist/esm/components/Button/Button.mjs.map +1 -1
  118. package/dist/esm/components/Checkbox/Checkbox.mjs +1 -1
  119. package/dist/esm/components/Checkbox/Checkbox.mjs.map +1 -1
  120. package/dist/esm/components/Emoji/Emoji.mjs +1 -1
  121. package/dist/esm/components/Emoji/Emoji.mjs.map +1 -1
  122. package/dist/esm/components/FeatureProvider/SmoothCornersFeature/SmoothCornersFeature.mjs +2 -2
  123. package/dist/esm/components/FeatureProvider/SmoothCornersFeature/SmoothCornersFeature.mjs.map +1 -1
  124. package/dist/esm/components/FormControl/FormControl.mjs +2 -1
  125. package/dist/esm/components/FormControl/FormControl.mjs.map +1 -1
  126. package/dist/esm/components/FormGroup/FormGroup.mjs +2 -1
  127. package/dist/esm/components/FormGroup/FormGroup.mjs.map +1 -1
  128. package/dist/esm/components/FormHelperText/FormHelperText.mjs +3 -2
  129. package/dist/esm/components/FormHelperText/FormHelperText.mjs.map +1 -1
  130. package/dist/esm/components/FormLabel/FormLabel.mjs +4 -3
  131. package/dist/esm/components/FormLabel/FormLabel.mjs.map +1 -1
  132. package/dist/esm/components/Icon/Icon.mjs +1 -1
  133. package/dist/esm/components/Icon/Icon.mjs.map +1 -1
  134. package/dist/esm/components/LegacyStack/LegacyStack/LegacyStack.mjs +2 -1
  135. package/dist/esm/components/LegacyStack/LegacyStack/LegacyStack.mjs.map +1 -1
  136. package/dist/esm/components/LegacyTooltip/LegacyTooltip.mjs +1 -1
  137. package/dist/esm/components/LegacyTooltip/LegacyTooltip.mjs.map +1 -1
  138. package/dist/esm/components/LegacyTooltip/LegacyTooltipContent.mjs +2 -2
  139. package/dist/esm/components/LegacyTooltip/LegacyTooltipContent.mjs.map +1 -1
  140. package/dist/esm/components/ListItem/ListItem.mjs +1 -1
  141. package/dist/esm/components/ListItem/ListItem.mjs.map +1 -1
  142. package/dist/esm/components/Modal/Modal.mjs +3 -3
  143. package/dist/esm/components/Modal/Modal.mjs.map +1 -1
  144. package/dist/esm/components/NavGroup/NavGroup.mjs +1 -1
  145. package/dist/esm/components/NavGroup/NavGroup.mjs.map +1 -1
  146. package/dist/esm/components/NavItem/NavItem.mjs +1 -1
  147. package/dist/esm/components/NavItem/NavItem.mjs.map +1 -1
  148. package/dist/esm/components/OutlineItem/OutlineItem.mjs +1 -1
  149. package/dist/esm/components/OutlineItem/OutlineItem.mjs.map +1 -1
  150. package/dist/esm/components/Overlay/Overlay.mjs +5 -4
  151. package/dist/esm/components/Overlay/Overlay.mjs.map +1 -1
  152. package/dist/esm/components/SegmentedControl/SegmentedControl.mjs +1 -1
  153. package/dist/esm/components/SegmentedControl/SegmentedControl.mjs.map +1 -1
  154. package/dist/esm/components/Select/Select.mjs +4 -3
  155. package/dist/esm/components/Select/Select.mjs.map +1 -1
  156. package/dist/esm/components/Slider/Slider.mjs +1 -1
  157. package/dist/esm/components/Slider/Slider.mjs.map +1 -1
  158. package/dist/esm/components/SmoothCornersBox/SmoothCornersBox.mjs +7 -6
  159. package/dist/esm/components/SmoothCornersBox/SmoothCornersBox.mjs.map +1 -1
  160. package/dist/esm/components/Status/Status.mjs +1 -1
  161. package/dist/esm/components/Status/Status.mjs.map +1 -1
  162. package/dist/esm/components/Tag/Tag.mjs +1 -1
  163. package/dist/esm/components/Tag/Tag.mjs.map +1 -1
  164. package/dist/esm/components/TextArea/TextArea.mjs +4 -2
  165. package/dist/esm/components/TextArea/TextArea.mjs.map +1 -1
  166. package/dist/esm/components/TextField/TextField.mjs +19 -9
  167. package/dist/esm/components/TextField/TextField.mjs.map +1 -1
  168. package/dist/esm/components/Toast/Toast.mjs +31 -27
  169. package/dist/esm/components/Toast/Toast.mjs.map +1 -1
  170. package/dist/esm/components/Toast/ToastService.mjs +1 -1
  171. package/dist/esm/components/Toast/ToastService.mjs.map +1 -1
  172. package/dist/esm/components/Toast/useToastContextValues.mjs +2 -2
  173. package/dist/esm/components/Toast/useToastContextValues.mjs.map +1 -1
  174. package/dist/esm/components/Tooltip/Tooltip.mjs +4 -4
  175. package/dist/esm/components/Tooltip/Tooltip.mjs.map +1 -1
  176. package/dist/esm/hooks/useKeyboardActionLockerWhileComposing.mjs +1 -1
  177. package/dist/esm/hooks/useKeyboardActionLockerWhileComposing.mjs.map +1 -1
  178. package/dist/esm/index.mjs +1 -0
  179. package/dist/esm/index.mjs.map +1 -1
  180. package/dist/esm/node_modules/@radix-ui/react-dialog/dist/index.mjs +17 -1
  181. package/dist/esm/node_modules/@radix-ui/react-dialog/dist/index.mjs.map +1 -1
  182. package/dist/esm/node_modules/@radix-ui/react-popper/dist/index.mjs +5 -1
  183. package/dist/esm/node_modules/@radix-ui/react-popper/dist/index.mjs.map +1 -1
  184. package/dist/esm/node_modules/@radix-ui/react-portal/dist/index.mjs +1 -1
  185. package/dist/esm/node_modules/@radix-ui/react-slot/dist/index.mjs +1 -1
  186. package/dist/esm/node_modules/react-remove-scroll/dist/es2015/UI.mjs +3 -3
  187. package/dist/esm/node_modules/react-remove-scroll/dist/es2015/UI.mjs.map +1 -1
  188. package/dist/esm/styles.css +1 -1
  189. package/dist/esm/utils/assert.mjs +1 -1
  190. package/dist/esm/utils/assert.mjs.map +1 -1
  191. package/dist/types/components/AlphaButton/Button.types.d.ts +1 -1
  192. package/dist/types/components/AlphaButton/Button.types.d.ts.map +1 -1
  193. package/dist/types/components/AlphaIconButton/IconButton.types.d.ts +1 -1
  194. package/dist/types/components/AlphaIconButton/IconButton.types.d.ts.map +1 -1
  195. package/dist/types/components/AlphaStatusBadge/StatusBadge.d.ts +16 -0
  196. package/dist/types/components/AlphaStatusBadge/StatusBadge.d.ts.map +1 -0
  197. package/dist/types/components/AlphaStatusBadge/StatusBadge.types.d.ts +23 -0
  198. package/dist/types/components/AlphaStatusBadge/StatusBadge.types.d.ts.map +1 -0
  199. package/dist/types/components/AlphaStatusBadge/index.d.ts +3 -0
  200. package/dist/types/components/AlphaStatusBadge/index.d.ts.map +1 -0
  201. package/dist/types/components/Toast/Toast.d.ts +1 -1
  202. package/dist/types/components/Toast/Toast.d.ts.map +1 -1
  203. package/dist/types/components/Toast/Toast.types.d.ts +8 -0
  204. package/dist/types/components/Toast/Toast.types.d.ts.map +1 -1
  205. package/dist/types/index.d.ts +1 -0
  206. package/dist/types/index.d.ts.map +1 -1
  207. package/package.json +4 -6
  208. package/src/components/AlphaButton/Button.module.scss +22 -6
  209. package/src/components/AlphaButton/Button.types.ts +1 -1
  210. package/src/components/AlphaFloatingButton/FloatingButton.module.scss +2 -0
  211. package/src/components/AlphaFloatingIconButton/FloatingIconButton.module.scss +2 -0
  212. package/src/components/AlphaIconButton/IconButton.module.scss +22 -6
  213. package/src/components/AlphaIconButton/IconButton.types.ts +1 -1
  214. package/src/components/AlphaStatusBadge/AlphaStatusBadge.stories.tsx +39 -0
  215. package/src/components/AlphaStatusBadge/StatusBadge.module.scss +50 -0
  216. package/src/components/AlphaStatusBadge/StatusBadge.tsx +77 -0
  217. package/src/components/AlphaStatusBadge/StatusBadge.types.ts +26 -0
  218. package/src/components/AlphaStatusBadge/index.ts +5 -0
  219. package/src/components/Banner/Banner.stories.tsx +2 -2
  220. package/src/components/Button/Button.module.scss +8 -0
  221. package/src/components/Icon/Icon.stories.tsx +1 -2
  222. package/src/components/Toast/Toast.tsx +7 -3
  223. package/src/components/Toast/Toast.types.ts +8 -0
  224. package/src/index.ts +1 -0
  225. package/src/stories/alpha-color.mdx +64 -51
  226. package/src/styles/components/elevation.module.scss +1 -0
  227. package/src/styles/components/radius.module.scss +1 -0
  228. package/src/styles/components/z-index.module.scss +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.js","sources":["../../../../src/components/Slider/Slider.tsx"],"sourcesContent":["import React, { type CSSProperties, forwardRef, memo } from 'react'\n\nimport * as SliderPrimitive from '@radix-ui/react-slider'\nimport classNames from 'classnames'\n\nimport { cssDimension } from '~/src/utils/style'\n\nimport { Tooltip } from '~/src/components/Tooltip'\n\nimport { type SliderProps } from './Slider.types'\n\nimport styles from './Slider.module.scss'\n\nexport const SLIDER_TEST_ID = 'bezier-slider'\n\nconst SliderGuide = memo<Record<'min' | 'max' | 'value', number>>(\n function SliderGuide({ min, max, value }) {\n return (\n <div\n className={styles.SliderGuide}\n style={\n {\n '--b-slider-guide-left': `${(value / (max - min)) * 100}%`,\n } as React.CSSProperties\n }\n />\n )\n }\n)\n\n/* NOTE: Props are injected at runtime by `SliderPrimitive.Thumb`. */\nconst SliderThumb = forwardRef<\n HTMLDivElement,\n Pick<SliderProps, 'disableTooltip'> & React.HTMLAttributes<HTMLDivElement>\n>(function SliderThumb({ disableTooltip, ...rest }, forwardedRef) {\n const value = rest?.['aria-valuenow']\n\n if (disableTooltip) {\n return (\n <div\n ref={forwardedRef}\n className={styles.SliderThumb}\n {...rest}\n />\n )\n }\n\n return (\n <Tooltip\n content={value}\n offset={6}\n placement=\"top-center\"\n onPointerDownOutside={(e) => e.preventDefault()}\n >\n <div\n ref={forwardedRef}\n className={styles.SliderThumb}\n {...rest}\n />\n </Tooltip>\n )\n})\n\n/**\n * An input component where the user selects a value from within a given range.\n * The value of the slider is shown in a tooltip, and in some cases you can add a guide scale.\n * @example\n *\n * ```tsx\n * const [value, setValue] = useState([1])\n * // Controlled\n * <Slider\n * value={value}\n * onValueChange={setValue}\n * />\n * // Uncontrolled\n * <Slider defaultValue={[1]} />\n * ```\n */\nexport const Slider = forwardRef<HTMLSpanElement, SliderProps>(function Slider(\n {\n className,\n style,\n width = 36,\n guide,\n defaultValue = [0],\n value,\n disabled = false,\n min = 0,\n max = 10,\n step = 1,\n minStepsBetweenThumbs = 0,\n dir = 'ltr',\n disableTooltip = false,\n ...rest\n },\n forwardedRef\n) {\n const targetValue = value || defaultValue\n\n return (\n <SliderPrimitive.Root\n style={\n {\n '--b-slider-width': cssDimension(width),\n ...style,\n } as CSSProperties\n }\n className={classNames(styles.Slider, className)}\n ref={forwardedRef}\n orientation=\"horizontal\"\n defaultValue={defaultValue}\n value={value}\n disabled={disabled}\n min={min}\n max={max}\n step={step}\n dir={dir}\n minStepsBetweenThumbs={minStepsBetweenThumbs}\n data-testid={SLIDER_TEST_ID}\n {...rest}\n >\n <SliderPrimitive.Track className={styles.SliderPrimitiveTrack}>\n <SliderPrimitive.Range className={styles.SliderPrimitiveRange} />\n\n {guide && (\n <div className={styles.GuideContainer}>\n {guide.map((guideValue) => (\n <SliderGuide\n key={`slider-guide-${guideValue}`}\n min={min}\n max={max}\n value={guideValue}\n />\n ))}\n </div>\n )}\n </SliderPrimitive.Track>\n\n {targetValue.map((_, i) => (\n <SliderPrimitive.Thumb\n // eslint-disable-next-line react/no-array-index-key\n key={`slider-thumb-${i}`}\n asChild\n >\n <SliderThumb disableTooltip={disableTooltip} />\n </SliderPrimitive.Thumb>\n ))}\n </SliderPrimitive.Root>\n )\n})\n"],"names":["SLIDER_TEST_ID","SliderGuide","memo","min","max","value","React","createElement","className","styles","style","SliderThumb","forwardRef","disableTooltip","rest","forwardedRef","Object","assign","ref","Tooltip","content","offset","placement","onPointerDownOutside","e","preventDefault","Slider","width","guide","defaultValue","disabled","step","minStepsBetweenThumbs","dir","targetValue","SliderPrimitive","cssDimension","classNames","orientation","SliderPrimitiveTrack","SliderPrimitiveRange","GuideContainer","map","guideValue","key","_","i","asChild"],"mappings":";;;;;;;;;AAaO,MAAMA,cAAc,GAAG,gBAAe;AAE7C,MAAMC,WAAW,gBAAGC,UAAI,CACtB,SAASD,WAAWA,CAAC;EAAEE,GAAG;EAAEC,GAAG;AAAEC,EAAAA,KAAAA;AAAM,CAAC,EAAE;EACxC,oBACEC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IACEC,SAAS,EAAEC,qBAAM,CAACR,WAAY;AAC9BS,IAAAA,KAAK,EACH;MACE,uBAAuB,EAAE,GAAIL,KAAK,IAAID,GAAG,GAAGD,GAAG,CAAC,GAAI,GAAG,CAAA,CAAA,CAAA;AACzD,KAAA;AACD,GACF,CAAC,CAAA;AAEN,CACF,CAAC,CAAA;;AAED;AACA,MAAMQ,WAAW,gBAAGC,gBAAU,CAG5B,SAASD,WAAWA,CAAC;EAAEE,cAAc;EAAE,GAAGC,IAAAA;AAAK,CAAC,EAAEC,YAAY,EAAE;AAChE,EAAA,MAAMV,KAAK,GAAGS,IAAI,GAAG,eAAe,CAAC,CAAA;AAErC,EAAA,IAAID,cAAc,EAAE;AAClB,IAAA,oBACEP,KAAA,CAAAC,aAAA,CAAAS,KAAAA,EAAAA,MAAA,CAAAC,MAAA,CAAA;AACEC,MAAAA,GAAG,EAAEH,YAAa;MAClBP,SAAS,EAAEC,qBAAM,CAACE,WAAAA;KACdG,EAAAA,IAAI,CACT,CAAC,CAAA;AAEN,GAAA;AAEA,EAAA,oBACER,KAAA,CAAAC,aAAA,CAACY,eAAO,EAAA;AACNC,IAAAA,OAAO,EAAEf,KAAM;AACfgB,IAAAA,MAAM,EAAE,CAAE;AACVC,IAAAA,SAAS,EAAC,YAAY;AACtBC,IAAAA,oBAAoB,EAAGC,CAAC,IAAKA,CAAC,CAACC,cAAc,EAAC;AAAE,GAAA,eAEhDnB,KAAA,CAAAC,aAAA,CAAAS,KAAAA,EAAAA,MAAA,CAAAC,MAAA,CAAA;AACEC,IAAAA,GAAG,EAAEH,YAAa;IAClBP,SAAS,EAAEC,qBAAM,CAACE,WAAAA;GACdG,EAAAA,IAAI,CACT,CACM,CAAC,CAAA;AAEd,CAAC,CAAC,CAAA;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACaY,MAAM,gBAAGd,gBAAU,CAA+B,SAASc,MAAMA,CAC5E;EACElB,SAAS;SACTE,OAAK;AACLiB,EAAAA,KAAK,GAAG,EAAE;EACVC,KAAK;EACLC,YAAY,GAAG,CAAC,CAAC,CAAC;EAClBxB,KAAK;AACLyB,EAAAA,QAAQ,GAAG,KAAK;AAChB3B,EAAAA,GAAG,GAAG,CAAC;AACPC,EAAAA,GAAG,GAAG,EAAE;AACR2B,EAAAA,IAAI,GAAG,CAAC;AACRC,EAAAA,qBAAqB,GAAG,CAAC;AACzBC,EAAAA,GAAG,GAAG,KAAK;AACXpB,EAAAA,cAAc,GAAG,KAAK;EACtB,GAAGC,IAAAA;AACL,CAAC,EACDC,YAAY,EACZ;AACA,EAAA,MAAMmB,WAAW,GAAG7B,KAAK,IAAIwB,YAAY,CAAA;EAEzC,oBACEvB,KAAA,CAAAC,aAAA,CAAC4B,UAAoB,EAAAnB,MAAA,CAAAC,MAAA,CAAA;AACnBP,IAAAA,KAAK,EACH;AACE,MAAA,kBAAkB,EAAE0B,kBAAY,CAACT,KAAK,CAAC;MACvC,GAAGjB,OAAAA;KAEN;IACDF,SAAS,EAAE6B,eAAU,CAAC5B,qBAAM,CAACiB,MAAM,EAAElB,SAAS,CAAE;AAChDU,IAAAA,GAAG,EAAEH,YAAa;AAClBuB,IAAAA,WAAW,EAAC,YAAY;AACxBT,IAAAA,YAAY,EAAEA,YAAa;AAC3BxB,IAAAA,KAAK,EAAEA,KAAM;AACbyB,IAAAA,QAAQ,EAAEA,QAAS;AACnB3B,IAAAA,GAAG,EAAEA,GAAI;AACTC,IAAAA,GAAG,EAAEA,GAAI;AACT2B,IAAAA,IAAI,EAAEA,IAAK;AACXE,IAAAA,GAAG,EAAEA,GAAI;AACTD,IAAAA,qBAAqB,EAAEA,qBAAsB;IAC7C,aAAahC,EAAAA,cAAAA;GACTc,EAAAA,IAAI,gBAERR,KAAA,CAAAC,aAAA,CAAC4B,WAAqB,EAAA;IAAC3B,SAAS,EAAEC,qBAAM,CAAC8B,oBAAAA;AAAqB,GAAA,eAC5DjC,KAAA,CAAAC,aAAA,CAAC4B,WAAqB,EAAA;IAAC3B,SAAS,EAAEC,qBAAM,CAAC+B,oBAAAA;AAAqB,GAAE,CAAC,EAEhEZ,KAAK,iBACJtB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKC,SAAS,EAAEC,qBAAM,CAACgC,cAAAA;GACpBb,EAAAA,KAAK,CAACc,GAAG,CAAEC,UAAU,iBACpBrC,KAAA,CAAAC,aAAA,CAACN,WAAW,EAAA;IACV2C,GAAG,EAAE,CAAgBD,aAAAA,EAAAA,UAAU,CAAG,CAAA;AAClCxC,IAAAA,GAAG,EAAEA,GAAI;AACTC,IAAAA,GAAG,EAAEA,GAAI;AACTC,IAAAA,KAAK,EAAEsC,UAAAA;GACR,CACF,CACE,CAEc,CAAC,EAEvBT,WAAW,CAACQ,GAAG,CAAC,CAACG,CAAC,EAAEC,CAAC,kBACpBxC,KAAA,CAAAC,aAAA,CAAC4B,WAAqB,EAAA;AACpB;IACAS,GAAG,EAAE,CAAgBE,aAAAA,EAAAA,CAAC,CAAG,CAAA;IACzBC,OAAO,EAAA,IAAA;AAAA,GAAA,eAEPzC,KAAA,CAAAC,aAAA,CAACI,WAAW,EAAA;AAACE,IAAAA,cAAc,EAAEA,cAAAA;GAAiB,CACzB,CACxB,CACmB,CAAC,CAAA;AAE3B,CAAC;;;;;"}
1
+ {"version":3,"file":"Slider.js","sources":["../../../../src/components/Slider/Slider.tsx"],"sourcesContent":["import React, { type CSSProperties, forwardRef, memo } from 'react'\n\nimport * as SliderPrimitive from '@radix-ui/react-slider'\nimport classNames from 'classnames'\n\nimport { cssDimension } from '~/src/utils/style'\n\nimport { Tooltip } from '~/src/components/Tooltip'\n\nimport { type SliderProps } from './Slider.types'\n\nimport styles from './Slider.module.scss'\n\nexport const SLIDER_TEST_ID = 'bezier-slider'\n\nconst SliderGuide = memo<Record<'min' | 'max' | 'value', number>>(\n function SliderGuide({ min, max, value }) {\n return (\n <div\n className={styles.SliderGuide}\n style={\n {\n '--b-slider-guide-left': `${(value / (max - min)) * 100}%`,\n } as React.CSSProperties\n }\n />\n )\n }\n)\n\n/* NOTE: Props are injected at runtime by `SliderPrimitive.Thumb`. */\nconst SliderThumb = forwardRef<\n HTMLDivElement,\n Pick<SliderProps, 'disableTooltip'> & React.HTMLAttributes<HTMLDivElement>\n>(function SliderThumb({ disableTooltip, ...rest }, forwardedRef) {\n const value = rest?.['aria-valuenow']\n\n if (disableTooltip) {\n return (\n <div\n ref={forwardedRef}\n className={styles.SliderThumb}\n {...rest}\n />\n )\n }\n\n return (\n <Tooltip\n content={value}\n offset={6}\n placement=\"top-center\"\n onPointerDownOutside={(e) => e.preventDefault()}\n >\n <div\n ref={forwardedRef}\n className={styles.SliderThumb}\n {...rest}\n />\n </Tooltip>\n )\n})\n\n/**\n * An input component where the user selects a value from within a given range.\n * The value of the slider is shown in a tooltip, and in some cases you can add a guide scale.\n * @example\n *\n * ```tsx\n * const [value, setValue] = useState([1])\n * // Controlled\n * <Slider\n * value={value}\n * onValueChange={setValue}\n * />\n * // Uncontrolled\n * <Slider defaultValue={[1]} />\n * ```\n */\nexport const Slider = forwardRef<HTMLSpanElement, SliderProps>(function Slider(\n {\n className,\n style,\n width = 36,\n guide,\n defaultValue = [0],\n value,\n disabled = false,\n min = 0,\n max = 10,\n step = 1,\n minStepsBetweenThumbs = 0,\n dir = 'ltr',\n disableTooltip = false,\n ...rest\n },\n forwardedRef\n) {\n const targetValue = value || defaultValue\n\n return (\n <SliderPrimitive.Root\n style={\n {\n '--b-slider-width': cssDimension(width),\n ...style,\n } as CSSProperties\n }\n className={classNames(styles.Slider, className)}\n ref={forwardedRef}\n orientation=\"horizontal\"\n defaultValue={defaultValue}\n value={value}\n disabled={disabled}\n min={min}\n max={max}\n step={step}\n dir={dir}\n minStepsBetweenThumbs={minStepsBetweenThumbs}\n data-testid={SLIDER_TEST_ID}\n {...rest}\n >\n <SliderPrimitive.Track className={styles.SliderPrimitiveTrack}>\n <SliderPrimitive.Range className={styles.SliderPrimitiveRange} />\n\n {guide && (\n <div className={styles.GuideContainer}>\n {guide.map((guideValue) => (\n <SliderGuide\n key={`slider-guide-${guideValue}`}\n min={min}\n max={max}\n value={guideValue}\n />\n ))}\n </div>\n )}\n </SliderPrimitive.Track>\n\n {targetValue.map((_, i) => (\n <SliderPrimitive.Thumb\n // eslint-disable-next-line react/no-array-index-key\n key={`slider-thumb-${i}`}\n asChild\n >\n <SliderThumb disableTooltip={disableTooltip} />\n </SliderPrimitive.Thumb>\n ))}\n </SliderPrimitive.Root>\n )\n})\n"],"names":["SLIDER_TEST_ID","SliderGuide","memo","min","max","value","React","createElement","className","styles","style","SliderThumb","forwardRef","disableTooltip","rest","forwardedRef","Object","assign","ref","Tooltip","content","offset","placement","onPointerDownOutside","e","preventDefault","Slider","width","guide","defaultValue","disabled","step","minStepsBetweenThumbs","dir","targetValue","SliderPrimitive","cssDimension","classNames","orientation","SliderPrimitiveTrack","SliderPrimitiveRange","GuideContainer","map","guideValue","key","_","i","asChild"],"mappings":"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"}
@@ -30,24 +30,25 @@ const SmoothCornersBox = /*#__PURE__*/React.forwardRef(function SmoothCornersBox
30
30
  backgroundImage,
31
31
  ...rest
32
32
  }, forwardedRef) {
33
- const shadowBlurRadius = shadow?.blurRadius ?? 0;
34
- const shadowSpreadRadius = shadow?.spreadRadius ?? 0;
33
+ var _shadow$blurRadius, _shadow$spreadRadius;
34
+ const shadowBlurRadius = (_shadow$blurRadius = shadow === null || shadow === void 0 ? void 0 : shadow.blurRadius) !== null && _shadow$blurRadius !== void 0 ? _shadow$blurRadius : 0;
35
+ const shadowSpreadRadius = (_shadow$spreadRadius = shadow === null || shadow === void 0 ? void 0 : shadow.spreadRadius) !== null && _shadow$spreadRadius !== void 0 ? _shadow$spreadRadius : 0;
35
36
  return /*#__PURE__*/React.createElement("div", Object.assign({}, rest, {
36
37
  ref: forwardedRef,
37
38
  style: {
38
39
  ...style$1,
39
40
  '--b-smooth-corners-box-border-radius': borderRadius,
40
- '--b-smooth-corners-box-shadow-offset-x': style.px(shadow?.offsetX),
41
- '--b-smooth-corners-box-shadow-offset-y': style.px(shadow?.offsetY),
41
+ '--b-smooth-corners-box-shadow-offset-x': style.px(shadow === null || shadow === void 0 ? void 0 : shadow.offsetX),
42
+ '--b-smooth-corners-box-shadow-offset-y': style.px(shadow === null || shadow === void 0 ? void 0 : shadow.offsetY),
42
43
  '--b-smooth-corners-box-shadow-blur-radius': `${shadowBlurRadius}px`,
43
44
  '--b-smooth-corners-box-shadow-spread-radius': `${shadowSpreadRadius}px`,
44
- '--b-smooth-corners-box-shadow-color': style.cssVar(shadow?.color),
45
+ '--b-smooth-corners-box-shadow-color': style.cssVar(shadow === null || shadow === void 0 ? void 0 : shadow.color),
45
46
  /**
46
47
  * NOTE: Calculate in javascript because it cannot access calculated values via CSS calc() in the paint worklet.
47
48
  * @see {@link ~/src/features/SmoothCorners/smoothCornersScript.ts}
48
49
  */
49
50
  '--b-smooth-corners-box-padding': `${Math.max(shadowBlurRadius, shadowSpreadRadius) * 2}px`,
50
- '--b-smooth-corners-box-margin': `${margin ?? 0}px`,
51
+ '--b-smooth-corners-box-margin': `${margin !== null && margin !== void 0 ? margin : 0}px`,
51
52
  '--b-smooth-corners-box-background-color': style.cssVar(backgroundColor),
52
53
  '--b-smooth-corners-box-background-image': style.cssUrl(backgroundImage)
53
54
  },
@@ -1 +1 @@
1
- {"version":3,"file":"SmoothCornersBox.js","sources":["../../../../src/components/SmoothCornersBox/SmoothCornersBox.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport classNames from 'classnames'\n\nimport { cssUrl, cssVar, px } from '~/src/utils/style'\n\nimport { FeatureType, useFeatureFlag } from '~/src/components/FeatureProvider'\n\nimport { type SmoothCornersBoxProps } from './SmoothCornersBox.types'\n\nimport styles from './SmoothCornersBox.module.scss'\n\n/**\n * `SmoothCornersBox` is a simple `div` element with smooth corners.\n * It is available by enabling the `SmoothCornersFeature`.\n * @example\n *\n * ```tsx\n * <AppProvider features={[SmoothCornersFeature]}>\n * <SmoothCornersBox />\n * </AppProvider>\n * ```\n */\nexport const SmoothCornersBox = forwardRef<\n HTMLDivElement,\n SmoothCornersBoxProps\n>(function SmoothCornersBox(\n {\n children,\n style,\n className,\n disabled,\n borderRadius,\n margin,\n shadow,\n backgroundColor,\n backgroundImage,\n ...rest\n },\n forwardedRef\n) {\n const shadowBlurRadius = shadow?.blurRadius ?? 0\n const shadowSpreadRadius = shadow?.spreadRadius ?? 0\n\n return (\n <div\n {...rest}\n ref={forwardedRef}\n style={\n {\n ...style,\n '--b-smooth-corners-box-border-radius': borderRadius,\n '--b-smooth-corners-box-shadow-offset-x': px(shadow?.offsetX),\n '--b-smooth-corners-box-shadow-offset-y': px(shadow?.offsetY),\n '--b-smooth-corners-box-shadow-blur-radius': `${shadowBlurRadius}px`,\n '--b-smooth-corners-box-shadow-spread-radius': `${shadowSpreadRadius}px`,\n '--b-smooth-corners-box-shadow-color': cssVar(shadow?.color),\n /**\n * NOTE: Calculate in javascript because it cannot access calculated values via CSS calc() in the paint worklet.\n * @see {@link ~/src/features/SmoothCorners/smoothCornersScript.ts}\n */\n '--b-smooth-corners-box-padding': `${Math.max(shadowBlurRadius, shadowSpreadRadius) * 2}px`,\n '--b-smooth-corners-box-margin': `${margin ?? 0}px`,\n '--b-smooth-corners-box-background-color': cssVar(backgroundColor),\n '--b-smooth-corners-box-background-image': cssUrl(backgroundImage),\n } as React.CSSProperties\n }\n className={classNames(styles.SmoothCornersBox, className)}\n data-state={\n useFeatureFlag(FeatureType.SmoothCorners) && !disabled\n ? 'enabled'\n : 'disabled'\n }\n >\n {children}\n </div>\n )\n})\n"],"names":["SmoothCornersBox","forwardRef","children","style","className","disabled","borderRadius","margin","shadow","backgroundColor","backgroundImage","rest","forwardedRef","shadowBlurRadius","blurRadius","shadowSpreadRadius","spreadRadius","React","createElement","Object","assign","ref","px","offsetX","offsetY","cssVar","color","Math","max","cssUrl","classNames","styles","useFeatureFlag","FeatureType","SmoothCorners"],"mappings":";;;;;;;;;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACaA,gBAAgB,gBAAGC,gBAAU,CAGxC,SAASD,gBAAgBA,CACzB;EACEE,QAAQ;SACRC,OAAK;EACLC,SAAS;EACTC,QAAQ;EACRC,YAAY;EACZC,MAAM;EACNC,MAAM;EACNC,eAAe;EACfC,eAAe;EACf,GAAGC,IAAAA;AACL,CAAC,EACDC,YAAY,EACZ;AACA,EAAA,MAAMC,gBAAgB,GAAGL,MAAM,EAAEM,UAAU,IAAI,CAAC,CAAA;AAChD,EAAA,MAAMC,kBAAkB,GAAGP,MAAM,EAAEQ,YAAY,IAAI,CAAC,CAAA;EAEpD,oBACEC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAAC,MAAA,CAAAC,MAAA,KACMT,IAAI,EAAA;AACRU,IAAAA,GAAG,EAAET,YAAa;AAClBT,IAAAA,KAAK,EACH;AACE,MAAA,GAAGA,OAAK;AACR,MAAA,sCAAsC,EAAEG,YAAY;AACpD,MAAA,wCAAwC,EAAEgB,QAAE,CAACd,MAAM,EAAEe,OAAO,CAAC;AAC7D,MAAA,wCAAwC,EAAED,QAAE,CAACd,MAAM,EAAEgB,OAAO,CAAC;MAC7D,2CAA2C,EAAE,CAAGX,EAAAA,gBAAgB,CAAI,EAAA,CAAA;MACpE,6CAA6C,EAAE,CAAGE,EAAAA,kBAAkB,CAAI,EAAA,CAAA;AACxE,MAAA,qCAAqC,EAAEU,YAAM,CAACjB,MAAM,EAAEkB,KAAK,CAAC;AAC5D;AACV;AACA;AACA;AACU,MAAA,gCAAgC,EAAE,CAAA,EAAGC,IAAI,CAACC,GAAG,CAACf,gBAAgB,EAAEE,kBAAkB,CAAC,GAAG,CAAC,CAAI,EAAA,CAAA;AAC3F,MAAA,+BAA+B,EAAE,CAAA,EAAGR,MAAM,IAAI,CAAC,CAAI,EAAA,CAAA;AACnD,MAAA,yCAAyC,EAAEkB,YAAM,CAAChB,eAAe,CAAC;MAClE,yCAAyC,EAAEoB,YAAM,CAACnB,eAAe,CAAA;KAEpE;IACDN,SAAS,EAAE0B,aAAU,CAACC,+BAAM,CAAC/B,gBAAgB,EAAEI,SAAS,CAAE;IAC1D,YACE4B,EAAAA,8BAAc,CAACC,iCAAW,CAACC,aAAa,CAAC,IAAI,CAAC7B,QAAQ,GAClD,SAAS,GACT,UAAA;AACL,GAAA,CAAA,EAEAH,QACE,CAAC,CAAA;AAEV,CAAC;;;;"}
1
+ {"version":3,"file":"SmoothCornersBox.js","sources":["../../../../src/components/SmoothCornersBox/SmoothCornersBox.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport classNames from 'classnames'\n\nimport { cssUrl, cssVar, px } from '~/src/utils/style'\n\nimport { FeatureType, useFeatureFlag } from '~/src/components/FeatureProvider'\n\nimport { type SmoothCornersBoxProps } from './SmoothCornersBox.types'\n\nimport styles from './SmoothCornersBox.module.scss'\n\n/**\n * `SmoothCornersBox` is a simple `div` element with smooth corners.\n * It is available by enabling the `SmoothCornersFeature`.\n * @example\n *\n * ```tsx\n * <AppProvider features={[SmoothCornersFeature]}>\n * <SmoothCornersBox />\n * </AppProvider>\n * ```\n */\nexport const SmoothCornersBox = forwardRef<\n HTMLDivElement,\n SmoothCornersBoxProps\n>(function SmoothCornersBox(\n {\n children,\n style,\n className,\n disabled,\n borderRadius,\n margin,\n shadow,\n backgroundColor,\n backgroundImage,\n ...rest\n },\n forwardedRef\n) {\n const shadowBlurRadius = shadow?.blurRadius ?? 0\n const shadowSpreadRadius = shadow?.spreadRadius ?? 0\n\n return (\n <div\n {...rest}\n ref={forwardedRef}\n style={\n {\n ...style,\n '--b-smooth-corners-box-border-radius': borderRadius,\n '--b-smooth-corners-box-shadow-offset-x': px(shadow?.offsetX),\n '--b-smooth-corners-box-shadow-offset-y': px(shadow?.offsetY),\n '--b-smooth-corners-box-shadow-blur-radius': `${shadowBlurRadius}px`,\n '--b-smooth-corners-box-shadow-spread-radius': `${shadowSpreadRadius}px`,\n '--b-smooth-corners-box-shadow-color': cssVar(shadow?.color),\n /**\n * NOTE: Calculate in javascript because it cannot access calculated values via CSS calc() in the paint worklet.\n * @see {@link ~/src/features/SmoothCorners/smoothCornersScript.ts}\n */\n '--b-smooth-corners-box-padding': `${Math.max(shadowBlurRadius, shadowSpreadRadius) * 2}px`,\n '--b-smooth-corners-box-margin': `${margin ?? 0}px`,\n '--b-smooth-corners-box-background-color': cssVar(backgroundColor),\n '--b-smooth-corners-box-background-image': cssUrl(backgroundImage),\n } as React.CSSProperties\n }\n className={classNames(styles.SmoothCornersBox, className)}\n data-state={\n useFeatureFlag(FeatureType.SmoothCorners) && !disabled\n ? 'enabled'\n : 'disabled'\n }\n >\n {children}\n </div>\n )\n})\n"],"names":["SmoothCornersBox","forwardRef","children","style","className","disabled","borderRadius","margin","shadow","backgroundColor","backgroundImage","rest","forwardedRef","_shadow$blurRadius","_shadow$spreadRadius","shadowBlurRadius","blurRadius","shadowSpreadRadius","spreadRadius","React","createElement","Object","assign","ref","px","offsetX","offsetY","cssVar","color","Math","max","cssUrl","classNames","styles","useFeatureFlag","FeatureType","SmoothCorners"],"mappings":";;;;;;;;;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACaA,gBAAgB,gBAAGC,gBAAU,CAGxC,SAASD,gBAAgBA,CACzB;EACEE,QAAQ;SACRC,OAAK;EACLC,SAAS;EACTC,QAAQ;EACRC,YAAY;EACZC,MAAM;EACNC,MAAM;EACNC,eAAe;EACfC,eAAe;EACf,GAAGC,IAAAA;AACL,CAAC,EACDC,YAAY,EACZ;EAAA,IAAAC,kBAAA,EAAAC,oBAAA,CAAA;AACA,EAAA,MAAMC,gBAAgB,GAAAF,CAAAA,kBAAA,GAAGL,MAAM,aAANA,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAANA,MAAM,CAAEQ,UAAU,MAAAH,IAAAA,IAAAA,kBAAA,KAAAA,KAAAA,CAAAA,GAAAA,kBAAA,GAAI,CAAC,CAAA;AAChD,EAAA,MAAMI,kBAAkB,GAAAH,CAAAA,oBAAA,GAAGN,MAAM,aAANA,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAANA,MAAM,CAAEU,YAAY,MAAAJ,IAAAA,IAAAA,oBAAA,KAAAA,KAAAA,CAAAA,GAAAA,oBAAA,GAAI,CAAC,CAAA;EAEpD,oBACEK,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAAC,MAAA,CAAAC,MAAA,KACMX,IAAI,EAAA;AACRY,IAAAA,GAAG,EAAEX,YAAa;AAClBT,IAAAA,KAAK,EACH;AACE,MAAA,GAAGA,OAAK;AACR,MAAA,sCAAsC,EAAEG,YAAY;MACpD,wCAAwC,EAAEkB,QAAE,CAAChB,MAAM,KAAA,IAAA,IAANA,MAAM,KAANA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAM,CAAEiB,OAAO,CAAC;MAC7D,wCAAwC,EAAED,QAAE,CAAChB,MAAM,KAAA,IAAA,IAANA,MAAM,KAANA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAM,CAAEkB,OAAO,CAAC;MAC7D,2CAA2C,EAAE,CAAGX,EAAAA,gBAAgB,CAAI,EAAA,CAAA;MACpE,6CAA6C,EAAE,CAAGE,EAAAA,kBAAkB,CAAI,EAAA,CAAA;MACxE,qCAAqC,EAAEU,YAAM,CAACnB,MAAM,KAAA,IAAA,IAANA,MAAM,KAANA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAM,CAAEoB,KAAK,CAAC;AAC5D;AACV;AACA;AACA;AACU,MAAA,gCAAgC,EAAE,CAAA,EAAGC,IAAI,CAACC,GAAG,CAACf,gBAAgB,EAAEE,kBAAkB,CAAC,GAAG,CAAC,CAAI,EAAA,CAAA;MAC3F,+BAA+B,EAAE,GAAGV,MAAM,KAAA,IAAA,IAANA,MAAM,KAANA,KAAAA,CAAAA,GAAAA,MAAM,GAAI,CAAC,CAAI,EAAA,CAAA;AACnD,MAAA,yCAAyC,EAAEoB,YAAM,CAAClB,eAAe,CAAC;MAClE,yCAAyC,EAAEsB,YAAM,CAACrB,eAAe,CAAA;KAEpE;IACDN,SAAS,EAAE4B,aAAU,CAACC,+BAAM,CAACjC,gBAAgB,EAAEI,SAAS,CAAE;IAC1D,YACE8B,EAAAA,8BAAc,CAACC,iCAAW,CAACC,aAAa,CAAC,IAAI,CAAC/B,QAAQ,GAClD,SAAS,GACT,UAAA;AACL,GAAA,CAAA,EAEAH,QACE,CAAC,CAAA;AAEV,CAAC;;;;"}
@@ -19,7 +19,7 @@ const statusColor = {
19
19
  /**
20
20
  * `Status` is a component to indicate user status.
21
21
  */
22
- const Status = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function Status({
22
+ const Status = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function Status({
23
23
  type,
24
24
  size = 'm',
25
25
  style: style$1,
@@ -1 +1 @@
1
- {"version":3,"file":"Status.js","sources":["../../../../src/components/Status/Status.tsx"],"sourcesContent":["import React, { type CSSProperties, forwardRef, memo } from 'react'\n\nimport { LockIcon, MoonFilledIcon } from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport { type SemanticColor } from '~/src/types/tokens'\nimport { cssVar } from '~/src/utils/style'\n\nimport { Icon } from '~/src/components/Icon'\n\nimport { type StatusProps, type StatusType } from './Status.types'\n\nimport styles from './Status.module.scss'\n\nconst statusTypesWithIcon: Readonly<StatusType[]> = [\n 'online-crescent',\n 'offline-crescent',\n 'lock',\n]\n\nconst statusColor: Readonly<Record<StatusType, SemanticColor>> = {\n online: 'bgtxt-green-normal',\n offline: 'bg-black-dark',\n 'online-crescent': 'bgtxt-green-normal',\n 'offline-crescent': 'bgtxt-yellow-normal',\n lock: 'txt-black-darker',\n}\n\n/**\n * `Status` is a component to indicate user status.\n */\nexport const Status = memo(\n forwardRef<HTMLDivElement, StatusProps>(function Status(\n { type, size = 'm', style, className, ...rest },\n forwardedRef\n ) {\n const withIcon = statusTypesWithIcon.includes(type)\n const backgroundColor = withIcon ? 'bg-white-high' : statusColor[type]\n\n return (\n <div\n ref={forwardedRef}\n style={\n {\n '--b-status-bg-color': cssVar(backgroundColor),\n ...style,\n } as CSSProperties\n }\n className={classNames(styles.Status, styles[`size-${size}`], className)}\n {...rest}\n >\n {withIcon && (\n <Icon\n source={type === 'lock' ? LockIcon : MoonFilledIcon}\n size={size === 'm' ? 'xxxs' : 'xs'}\n color={statusColor[type]}\n className={styles.Icon}\n />\n )}\n </div>\n )\n })\n)\n"],"names":["statusTypesWithIcon","statusColor","online","offline","lock","Status","memo","forwardRef","type","size","style","className","rest","forwardedRef","withIcon","includes","backgroundColor","React","createElement","Object","assign","ref","cssVar","classNames","styles","Icon","source","LockIcon","MoonFilledIcon","color"],"mappings":";;;;;;;;;AAcA,MAAMA,mBAA2C,GAAG,CAClD,iBAAiB,EACjB,kBAAkB,EAClB,MAAM,CACP,CAAA;AAED,MAAMC,WAAwD,GAAG;AAC/DC,EAAAA,MAAM,EAAE,oBAAoB;AAC5BC,EAAAA,OAAO,EAAE,eAAe;AACxB,EAAA,iBAAiB,EAAE,oBAAoB;AACvC,EAAA,kBAAkB,EAAE,qBAAqB;AACzCC,EAAAA,IAAI,EAAE,kBAAA;AACR,CAAC,CAAA;;AAED;AACA;AACA;AACO,MAAMC,MAAM,gBAAGC,UAAI,eACxBC,gBAAU,CAA8B,SAASF,MAAMA,CACrD;EAAEG,IAAI;AAAEC,EAAAA,IAAI,GAAG,GAAG;SAAEC,OAAK;EAAEC,SAAS;EAAE,GAAGC,IAAAA;AAAK,CAAC,EAC/CC,YAAY,EACZ;AACA,EAAA,MAAMC,QAAQ,GAAGd,mBAAmB,CAACe,QAAQ,CAACP,IAAI,CAAC,CAAA;EACnD,MAAMQ,eAAe,GAAGF,QAAQ,GAAG,eAAe,GAAGb,WAAW,CAACO,IAAI,CAAC,CAAA;AAEtE,EAAA,oBACES,KAAA,CAAAC,aAAA,CAAAC,KAAAA,EAAAA,MAAA,CAAAC,MAAA,CAAA;AACEC,IAAAA,GAAG,EAAER,YAAa;AAClBH,IAAAA,KAAK,EACH;AACE,MAAA,qBAAqB,EAAEY,YAAM,CAACN,eAAe,CAAC;MAC9C,GAAGN,OAAAA;KAEN;AACDC,IAAAA,SAAS,EAAEY,aAAU,CAACC,qBAAM,CAACnB,MAAM,EAAEmB,qBAAM,CAAC,CAAQf,KAAAA,EAAAA,IAAI,CAAE,CAAA,CAAC,EAAEE,SAAS,CAAA;GAClEC,EAAAA,IAAI,GAEPE,QAAQ,iBACPG,KAAA,CAAAC,aAAA,CAACO,SAAI,EAAA;AACHC,IAAAA,MAAM,EAAElB,IAAI,KAAK,MAAM,GAAGmB,oBAAQ,GAAGC,0BAAe;AACpDnB,IAAAA,IAAI,EAAEA,IAAI,KAAK,GAAG,GAAG,MAAM,GAAG,IAAK;AACnCoB,IAAAA,KAAK,EAAE5B,WAAW,CAACO,IAAI,CAAE;IACzBG,SAAS,EAAEa,qBAAM,CAACC,IAAAA;AAAK,GACxB,CAEA,CAAC,CAAA;AAEV,CAAC,CACH;;;;"}
1
+ {"version":3,"file":"Status.js","sources":["../../../../src/components/Status/Status.tsx"],"sourcesContent":["import React, { type CSSProperties, forwardRef, memo } from 'react'\n\nimport { LockIcon, MoonFilledIcon } from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport { type SemanticColor } from '~/src/types/tokens'\nimport { cssVar } from '~/src/utils/style'\n\nimport { Icon } from '~/src/components/Icon'\n\nimport { type StatusProps, type StatusType } from './Status.types'\n\nimport styles from './Status.module.scss'\n\nconst statusTypesWithIcon: Readonly<StatusType[]> = [\n 'online-crescent',\n 'offline-crescent',\n 'lock',\n]\n\nconst statusColor: Readonly<Record<StatusType, SemanticColor>> = {\n online: 'bgtxt-green-normal',\n offline: 'bg-black-dark',\n 'online-crescent': 'bgtxt-green-normal',\n 'offline-crescent': 'bgtxt-yellow-normal',\n lock: 'txt-black-darker',\n}\n\n/**\n * `Status` is a component to indicate user status.\n */\nexport const Status = memo(\n forwardRef<HTMLDivElement, StatusProps>(function Status(\n { type, size = 'm', style, className, ...rest },\n forwardedRef\n ) {\n const withIcon = statusTypesWithIcon.includes(type)\n const backgroundColor = withIcon ? 'bg-white-high' : statusColor[type]\n\n return (\n <div\n ref={forwardedRef}\n style={\n {\n '--b-status-bg-color': cssVar(backgroundColor),\n ...style,\n } as CSSProperties\n }\n className={classNames(styles.Status, styles[`size-${size}`], className)}\n {...rest}\n >\n {withIcon && (\n <Icon\n source={type === 'lock' ? LockIcon : MoonFilledIcon}\n size={size === 'm' ? 'xxxs' : 'xs'}\n color={statusColor[type]}\n className={styles.Icon}\n />\n )}\n </div>\n )\n })\n)\n"],"names":["statusTypesWithIcon","statusColor","online","offline","lock","Status","memo","forwardRef","type","size","style","className","rest","forwardedRef","withIcon","includes","backgroundColor","React","createElement","Object","assign","ref","cssVar","classNames","styles","Icon","source","LockIcon","MoonFilledIcon","color"],"mappings":";;;;;;;;;AAcA,MAAMA,mBAA2C,GAAG,CAClD,iBAAiB,EACjB,kBAAkB,EAClB,MAAM,CACP,CAAA;AAED,MAAMC,WAAwD,GAAG;AAC/DC,EAAAA,MAAM,EAAE,oBAAoB;AAC5BC,EAAAA,OAAO,EAAE,eAAe;AACxB,EAAA,iBAAiB,EAAE,oBAAoB;AACvC,EAAA,kBAAkB,EAAE,qBAAqB;AACzCC,EAAAA,IAAI,EAAE,kBAAA;AACR,CAAC,CAAA;;AAED;AACA;AACA;AACO,MAAMC,MAAM,gBAAGC,UAAI,cACxBC,gBAAU,CAA8B,SAASF,MAAMA,CACrD;EAAEG,IAAI;AAAEC,EAAAA,IAAI,GAAG,GAAG;SAAEC,OAAK;EAAEC,SAAS;EAAE,GAAGC,IAAAA;AAAK,CAAC,EAC/CC,YAAY,EACZ;AACA,EAAA,MAAMC,QAAQ,GAAGd,mBAAmB,CAACe,QAAQ,CAACP,IAAI,CAAC,CAAA;EACnD,MAAMQ,eAAe,GAAGF,QAAQ,GAAG,eAAe,GAAGb,WAAW,CAACO,IAAI,CAAC,CAAA;AAEtE,EAAA,oBACES,KAAA,CAAAC,aAAA,CAAAC,KAAAA,EAAAA,MAAA,CAAAC,MAAA,CAAA;AACEC,IAAAA,GAAG,EAAER,YAAa;AAClBH,IAAAA,KAAK,EACH;AACE,MAAA,qBAAqB,EAAEY,YAAM,CAACN,eAAe,CAAC;MAC9C,GAAGN,OAAAA;KAEN;AACDC,IAAAA,SAAS,EAAEY,aAAU,CAACC,qBAAM,CAACnB,MAAM,EAAEmB,qBAAM,CAAC,CAAQf,KAAAA,EAAAA,IAAI,CAAE,CAAA,CAAC,EAAEE,SAAS,CAAA;GAClEC,EAAAA,IAAI,GAEPE,QAAQ,iBACPG,KAAA,CAAAC,aAAA,CAACO,SAAI,EAAA;AACHC,IAAAA,MAAM,EAAElB,IAAI,KAAK,MAAM,GAAGmB,oBAAQ,GAAGC,0BAAe;AACpDnB,IAAAA,IAAI,EAAEA,IAAI,KAAK,GAAG,GAAG,MAAM,GAAG,IAAK;AACnCoB,IAAAA,KAAK,EAAE5B,WAAW,CAACO,IAAI,CAAE;IACzBG,SAAS,EAAEa,qBAAM,CAACC,IAAAA;AAAK,GACxB,CAEA,CAAC,CAAA;AAEV,CAAC,CACH;;;;"}
@@ -23,7 +23,7 @@ const TAG_DELETE_TEST_ID = 'bezier-tag-delete-icon';
23
23
  * </Tag>
24
24
  * ```
25
25
  */
26
- const Tag = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function Tag({
26
+ const Tag = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function Tag({
27
27
  size = 'm',
28
28
  variant = 'default',
29
29
  children,
@@ -1 +1 @@
1
- {"version":3,"file":"Tag.js","sources":["../../../../src/components/Tag/Tag.tsx"],"sourcesContent":["import React, { forwardRef, memo } from 'react'\n\nimport { CancelSmallIcon } from '@channel.io/bezier-icons'\n\nimport { isEmpty, isNil } from '~/src/utils/type'\n\nimport { BaseTagBadge, BaseTagBadgeText } from '~/src/components/BaseTagBadge'\nimport { Icon } from '~/src/components/Icon'\n\nimport { type TagProps } from './Tag.types'\n\nimport styles from './Tag.module.scss'\n\nexport const TAG_TEST_ID = 'bezier-tag'\nexport const TAG_DELETE_TEST_ID = 'bezier-tag-delete-icon'\n\n/**\n * `Tag` is a component for representing tag, which shows close icon when `onDelete` property is specified.\n * @example\n * ```tsx\n * <Tag\n * size=\"m\"\n * variant=\"default\"\n * onDelete={handleDelete}\n * >\n * Payment\n * </Tag>\n * ```\n */\nexport const Tag = memo(\n forwardRef<HTMLDivElement, TagProps>(function Tag(\n { size = 'm', variant = 'default', children, onDelete, ...rest },\n forwardedRef\n ) {\n return (\n <BaseTagBadge\n ref={forwardedRef}\n size={size}\n variant={variant}\n data-testid={TAG_TEST_ID}\n {...rest}\n >\n {!isEmpty(children) && (\n <BaseTagBadgeText\n size={size}\n marginHorizontal={2}\n color=\"txt-black-darkest\"\n >\n {children}\n </BaseTagBadgeText>\n )}\n\n {!isNil(onDelete) && (\n <Icon\n role=\"button\"\n tabIndex={0}\n className={styles.TagDeleteIcon}\n source={CancelSmallIcon}\n size=\"xs\"\n color=\"txt-black-darker\"\n onClick={(e) => {\n e.stopPropagation()\n onDelete(e)\n }}\n data-testid={TAG_DELETE_TEST_ID}\n />\n )}\n </BaseTagBadge>\n )\n })\n)\n"],"names":["TAG_TEST_ID","TAG_DELETE_TEST_ID","Tag","memo","forwardRef","size","variant","children","onDelete","rest","forwardedRef","React","createElement","BaseTagBadge","Object","assign","ref","isEmpty","BaseTagBadgeText","marginHorizontal","color","isNil","Icon","role","tabIndex","className","styles","TagDeleteIcon","source","CancelSmallIcon","onClick","e","stopPropagation"],"mappings":";;;;;;;;;AAaO,MAAMA,WAAW,GAAG,aAAY;AAChC,MAAMC,kBAAkB,GAAG,yBAAwB;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,GAAG,gBAAGC,UAAI,eACrBC,gBAAU,CAA2B,SAASF,GAAGA,CAC/C;AAAEG,EAAAA,IAAI,GAAG,GAAG;AAAEC,EAAAA,OAAO,GAAG,SAAS;EAAEC,QAAQ;EAAEC,QAAQ;EAAE,GAAGC,IAAAA;AAAK,CAAC,EAChEC,YAAY,EACZ;EACA,oBACEC,KAAA,CAAAC,aAAA,CAACC,yBAAY,EAAAC,MAAA,CAAAC,MAAA,CAAA;AACXC,IAAAA,GAAG,EAAEN,YAAa;AAClBL,IAAAA,IAAI,EAAEA,IAAK;AACXC,IAAAA,OAAO,EAAEA,OAAQ;IACjB,aAAaN,EAAAA,WAAAA;AAAY,GAAA,EACrBS,IAAI,CAAA,EAEP,CAACQ,YAAO,CAACV,QAAQ,CAAC,iBACjBI,KAAA,CAAAC,aAAA,CAACM,6BAAgB,EAAA;AACfb,IAAAA,IAAI,EAAEA,IAAK;AACXc,IAAAA,gBAAgB,EAAE,CAAE;AACpBC,IAAAA,KAAK,EAAC,mBAAA;AAAmB,GAAA,EAExBb,QACe,CACnB,EAEA,CAACc,UAAK,CAACb,QAAQ,CAAC,iBACfG,KAAA,CAAAC,aAAA,CAACU,SAAI,EAAA;AACHC,IAAAA,IAAI,EAAC,QAAQ;AACbC,IAAAA,QAAQ,EAAE,CAAE;IACZC,SAAS,EAAEC,kBAAM,CAACC,aAAc;AAChCC,IAAAA,MAAM,EAAEC,2BAAgB;AACxBxB,IAAAA,IAAI,EAAC,IAAI;AACTe,IAAAA,KAAK,EAAC,kBAAkB;IACxBU,OAAO,EAAGC,CAAC,IAAK;MACdA,CAAC,CAACC,eAAe,EAAE,CAAA;MACnBxB,QAAQ,CAACuB,CAAC,CAAC,CAAA;KACX;IACF,aAAa9B,EAAAA,kBAAAA;AAAmB,GACjC,CAES,CAAC,CAAA;AAEnB,CAAC,CACH;;;;;;"}
1
+ {"version":3,"file":"Tag.js","sources":["../../../../src/components/Tag/Tag.tsx"],"sourcesContent":["import React, { forwardRef, memo } from 'react'\n\nimport { CancelSmallIcon } from '@channel.io/bezier-icons'\n\nimport { isEmpty, isNil } from '~/src/utils/type'\n\nimport { BaseTagBadge, BaseTagBadgeText } from '~/src/components/BaseTagBadge'\nimport { Icon } from '~/src/components/Icon'\n\nimport { type TagProps } from './Tag.types'\n\nimport styles from './Tag.module.scss'\n\nexport const TAG_TEST_ID = 'bezier-tag'\nexport const TAG_DELETE_TEST_ID = 'bezier-tag-delete-icon'\n\n/**\n * `Tag` is a component for representing tag, which shows close icon when `onDelete` property is specified.\n * @example\n * ```tsx\n * <Tag\n * size=\"m\"\n * variant=\"default\"\n * onDelete={handleDelete}\n * >\n * Payment\n * </Tag>\n * ```\n */\nexport const Tag = memo(\n forwardRef<HTMLDivElement, TagProps>(function Tag(\n { size = 'm', variant = 'default', children, onDelete, ...rest },\n forwardedRef\n ) {\n return (\n <BaseTagBadge\n ref={forwardedRef}\n size={size}\n variant={variant}\n data-testid={TAG_TEST_ID}\n {...rest}\n >\n {!isEmpty(children) && (\n <BaseTagBadgeText\n size={size}\n marginHorizontal={2}\n color=\"txt-black-darkest\"\n >\n {children}\n </BaseTagBadgeText>\n )}\n\n {!isNil(onDelete) && (\n <Icon\n role=\"button\"\n tabIndex={0}\n className={styles.TagDeleteIcon}\n source={CancelSmallIcon}\n size=\"xs\"\n color=\"txt-black-darker\"\n onClick={(e) => {\n e.stopPropagation()\n onDelete(e)\n }}\n data-testid={TAG_DELETE_TEST_ID}\n />\n )}\n </BaseTagBadge>\n )\n })\n)\n"],"names":["TAG_TEST_ID","TAG_DELETE_TEST_ID","Tag","memo","forwardRef","size","variant","children","onDelete","rest","forwardedRef","React","createElement","BaseTagBadge","Object","assign","ref","isEmpty","BaseTagBadgeText","marginHorizontal","color","isNil","Icon","role","tabIndex","className","styles","TagDeleteIcon","source","CancelSmallIcon","onClick","e","stopPropagation"],"mappings":";;;;;;;;;AAaO,MAAMA,WAAW,GAAG,aAAY;AAChC,MAAMC,kBAAkB,GAAG,yBAAwB;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,GAAG,gBAAGC,UAAI,cACrBC,gBAAU,CAA2B,SAASF,GAAGA,CAC/C;AAAEG,EAAAA,IAAI,GAAG,GAAG;AAAEC,EAAAA,OAAO,GAAG,SAAS;EAAEC,QAAQ;EAAEC,QAAQ;EAAE,GAAGC,IAAAA;AAAK,CAAC,EAChEC,YAAY,EACZ;EACA,oBACEC,KAAA,CAAAC,aAAA,CAACC,yBAAY,EAAAC,MAAA,CAAAC,MAAA,CAAA;AACXC,IAAAA,GAAG,EAAEN,YAAa;AAClBL,IAAAA,IAAI,EAAEA,IAAK;AACXC,IAAAA,OAAO,EAAEA,OAAQ;IACjB,aAAaN,EAAAA,WAAAA;AAAY,GAAA,EACrBS,IAAI,CAAA,EAEP,CAACQ,YAAO,CAACV,QAAQ,CAAC,iBACjBI,KAAA,CAAAC,aAAA,CAACM,6BAAgB,EAAA;AACfb,IAAAA,IAAI,EAAEA,IAAK;AACXc,IAAAA,gBAAgB,EAAE,CAAE;AACpBC,IAAAA,KAAK,EAAC,mBAAA;AAAmB,GAAA,EAExBb,QACe,CACnB,EAEA,CAACc,UAAK,CAACb,QAAQ,CAAC,iBACfG,KAAA,CAAAC,aAAA,CAACU,SAAI,EAAA;AACHC,IAAAA,IAAI,EAAC,QAAQ;AACbC,IAAAA,QAAQ,EAAE,CAAE;IACZC,SAAS,EAAEC,kBAAM,CAACC,aAAc;AAChCC,IAAAA,MAAM,EAAEC,2BAAgB;AACxBxB,IAAAA,IAAI,EAAC,IAAI;AACTe,IAAAA,KAAK,EAAC,kBAAkB;IACxBU,OAAO,EAAGC,CAAC,IAAK;MACdA,CAAC,CAACC,eAAe,EAAE,CAAA;MACnBxB,QAAQ,CAACuB,CAAC,CAAC,CAAA;KACX;IACF,aAAa9B,EAAAA,kBAAAA;AAAmB,GACjC,CAES,CAAC,CAAA;AAEnB,CAAC,CACH;;;;;;"}
@@ -38,10 +38,12 @@ const TextArea = /*#__PURE__*/React.forwardRef(function TextArea({
38
38
  });
39
39
  useIsomorphicLayoutEffect.useIsomorphicLayoutEffect(function initialAutoFocus() {
40
40
  function setSelectionToEnd() {
41
- inputRef.current?.setSelectionRange(inputRef.current?.value.length, inputRef.current?.value.length);
41
+ var _inputRef$current, _inputRef$current2, _inputRef$current3;
42
+ (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || _inputRef$current.setSelectionRange((_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.value.length, (_inputRef$current3 = inputRef.current) === null || _inputRef$current3 === void 0 ? void 0 : _inputRef$current3.value.length);
42
43
  }
43
44
  if (autoFocus) {
44
- inputRef.current?.focus();
45
+ var _inputRef$current4;
46
+ (_inputRef$current4 = inputRef.current) === null || _inputRef$current4 === void 0 || _inputRef$current4.focus();
45
47
  setSelectionToEnd();
46
48
  }
47
49
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -1 +1 @@
1
- {"version":3,"file":"TextArea.js","sources":["../../../../src/components/TextArea/TextArea.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from 'react'\n\nimport classNames from 'classnames'\nimport TextareaAutosize from 'react-textarea-autosize'\n\nimport { useIsomorphicLayoutEffect } from '~/src/hooks/useIsomorphicLayoutEffect'\nimport {\n COMMON_IME_CONTROL_KEYS,\n useKeyboardActionLockerWhileComposing,\n} from '~/src/hooks/useKeyboardActionLockerWhileComposing'\nimport useMergeRefs from '~/src/hooks/useMergeRefs'\n\nimport { useFormFieldProps } from '~/src/components/FormControl'\n\nimport type { TextAreaProps } from './TextArea.types'\n\nimport styles from './TextArea.module.scss'\n\nexport const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\n function TextArea(\n {\n style,\n className,\n minRows = 6,\n maxRows = 6,\n autoFocus = false,\n value = '',\n onKeyDown,\n onKeyUp,\n ...rest\n },\n forwardedRef\n ) {\n const { disabled, readOnly, hasError, ...ownProps } =\n useFormFieldProps(rest)\n\n const inputRef = useRef<HTMLTextAreaElement | null>(null)\n const mergedInputRef = useMergeRefs(inputRef, forwardedRef)\n\n const { handleKeyDown, handleKeyUp } =\n useKeyboardActionLockerWhileComposing({\n keysToLock: COMMON_IME_CONTROL_KEYS,\n onKeyDown,\n onKeyUp,\n })\n\n useIsomorphicLayoutEffect(function initialAutoFocus() {\n function setSelectionToEnd() {\n inputRef.current?.setSelectionRange(\n inputRef.current?.value.length,\n inputRef.current?.value.length\n )\n }\n\n if (autoFocus) {\n inputRef.current?.focus()\n setSelectionToEnd()\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n return (\n <TextareaAutosize\n {...ownProps}\n style={style}\n className={classNames(styles.TextArea, className)}\n ref={mergedInputRef}\n value={value}\n disabled={disabled}\n readOnly={readOnly}\n maxRows={maxRows}\n minRows={minRows}\n data-testid=\"bezier-text-area\"\n onKeyDown={handleKeyDown}\n onKeyUp={handleKeyUp}\n />\n )\n }\n)\n"],"names":["TextArea","forwardRef","style","className","minRows","maxRows","autoFocus","value","onKeyDown","onKeyUp","rest","forwardedRef","disabled","readOnly","hasError","ownProps","useFormFieldProps","inputRef","useRef","mergedInputRef","useMergeRefs","handleKeyDown","handleKeyUp","useKeyboardActionLockerWhileComposing","keysToLock","COMMON_IME_CONTROL_KEYS","useIsomorphicLayoutEffect","initialAutoFocus","setSelectionToEnd","current","setSelectionRange","length","focus","React","createElement","TextareaAutosize","Object","assign","classNames","styles","ref"],"mappings":";;;;;;;;;;;MAkBaA,QAAQ,gBAAGC,gBAAU,CAChC,SAASD,QAAQA,CACf;EACEE,KAAK;EACLC,SAAS;AACTC,EAAAA,OAAO,GAAG,CAAC;AACXC,EAAAA,OAAO,GAAG,CAAC;AACXC,EAAAA,SAAS,GAAG,KAAK;AACjBC,EAAAA,KAAK,GAAG,EAAE;EACVC,SAAS;EACTC,OAAO;EACP,GAAGC,IAAAA;AACL,CAAC,EACDC,YAAY,EACZ;EACA,MAAM;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC,QAAQ;IAAE,GAAGC,QAAAA;AAAS,GAAC,GACjDC,6BAAiB,CAACN,IAAI,CAAC,CAAA;AAEzB,EAAA,MAAMO,QAAQ,GAAGC,YAAM,CAA6B,IAAI,CAAC,CAAA;AACzD,EAAA,MAAMC,cAAc,GAAGC,oBAAY,CAACH,QAAQ,EAAEN,YAAY,CAAC,CAAA;EAE3D,MAAM;IAAEU,aAAa;AAAEC,IAAAA,WAAAA;GAAa,GAClCC,2EAAqC,CAAC;AACpCC,IAAAA,UAAU,EAAEC,6DAAuB;IACnCjB,SAAS;AACTC,IAAAA,OAAAA;AACF,GAAC,CAAC,CAAA;AAEJiB,EAAAA,mDAAyB,CAAC,SAASC,gBAAgBA,GAAG;IACpD,SAASC,iBAAiBA,GAAG;MAC3BX,QAAQ,CAACY,OAAO,EAAEC,iBAAiB,CACjCb,QAAQ,CAACY,OAAO,EAAEtB,KAAK,CAACwB,MAAM,EAC9Bd,QAAQ,CAACY,OAAO,EAAEtB,KAAK,CAACwB,MAC1B,CAAC,CAAA;AACH,KAAA;AAEA,IAAA,IAAIzB,SAAS,EAAE;AACbW,MAAAA,QAAQ,CAACY,OAAO,EAAEG,KAAK,EAAE,CAAA;AACzBJ,MAAAA,iBAAiB,EAAE,CAAA;AACrB,KAAA;AACA;GACD,EAAE,EAAE,CAAC,CAAA;EAEN,oBACEK,KAAA,CAAAC,aAAA,CAACC,iCAAgB,EAAAC,MAAA,CAAAC,MAAA,CAAA,EAAA,EACXtB,QAAQ,EAAA;AACZb,IAAAA,KAAK,EAAEA,KAAM;IACbC,SAAS,EAAEmC,aAAU,CAACC,uBAAM,CAACvC,QAAQ,EAAEG,SAAS,CAAE;AAClDqC,IAAAA,GAAG,EAAErB,cAAe;AACpBZ,IAAAA,KAAK,EAAEA,KAAM;AACbK,IAAAA,QAAQ,EAAEA,QAAS;AACnBC,IAAAA,QAAQ,EAAEA,QAAS;AACnBR,IAAAA,OAAO,EAAEA,OAAQ;AACjBD,IAAAA,OAAO,EAAEA,OAAQ;AACjB,IAAA,aAAA,EAAY,kBAAkB;AAC9BI,IAAAA,SAAS,EAAEa,aAAc;AACzBZ,IAAAA,OAAO,EAAEa,WAAAA;AAAY,GAAA,CACtB,CAAC,CAAA;AAEN,CACF;;;;"}
1
+ {"version":3,"file":"TextArea.js","sources":["../../../../src/components/TextArea/TextArea.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from 'react'\n\nimport classNames from 'classnames'\nimport TextareaAutosize from 'react-textarea-autosize'\n\nimport { useIsomorphicLayoutEffect } from '~/src/hooks/useIsomorphicLayoutEffect'\nimport {\n COMMON_IME_CONTROL_KEYS,\n useKeyboardActionLockerWhileComposing,\n} from '~/src/hooks/useKeyboardActionLockerWhileComposing'\nimport useMergeRefs from '~/src/hooks/useMergeRefs'\n\nimport { useFormFieldProps } from '~/src/components/FormControl'\n\nimport type { TextAreaProps } from './TextArea.types'\n\nimport styles from './TextArea.module.scss'\n\nexport const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\n function TextArea(\n {\n style,\n className,\n minRows = 6,\n maxRows = 6,\n autoFocus = false,\n value = '',\n onKeyDown,\n onKeyUp,\n ...rest\n },\n forwardedRef\n ) {\n const { disabled, readOnly, hasError, ...ownProps } =\n useFormFieldProps(rest)\n\n const inputRef = useRef<HTMLTextAreaElement | null>(null)\n const mergedInputRef = useMergeRefs(inputRef, forwardedRef)\n\n const { handleKeyDown, handleKeyUp } =\n useKeyboardActionLockerWhileComposing({\n keysToLock: COMMON_IME_CONTROL_KEYS,\n onKeyDown,\n onKeyUp,\n })\n\n useIsomorphicLayoutEffect(function initialAutoFocus() {\n function setSelectionToEnd() {\n inputRef.current?.setSelectionRange(\n inputRef.current?.value.length,\n inputRef.current?.value.length\n )\n }\n\n if (autoFocus) {\n inputRef.current?.focus()\n setSelectionToEnd()\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n return (\n <TextareaAutosize\n {...ownProps}\n style={style}\n className={classNames(styles.TextArea, className)}\n ref={mergedInputRef}\n value={value}\n disabled={disabled}\n readOnly={readOnly}\n maxRows={maxRows}\n minRows={minRows}\n data-testid=\"bezier-text-area\"\n onKeyDown={handleKeyDown}\n onKeyUp={handleKeyUp}\n />\n )\n }\n)\n"],"names":["TextArea","forwardRef","style","className","minRows","maxRows","autoFocus","value","onKeyDown","onKeyUp","rest","forwardedRef","disabled","readOnly","hasError","ownProps","useFormFieldProps","inputRef","useRef","mergedInputRef","useMergeRefs","handleKeyDown","handleKeyUp","useKeyboardActionLockerWhileComposing","keysToLock","COMMON_IME_CONTROL_KEYS","useIsomorphicLayoutEffect","initialAutoFocus","setSelectionToEnd","_inputRef$current","_inputRef$current2","_inputRef$current3","current","setSelectionRange","length","_inputRef$current4","focus","React","createElement","TextareaAutosize","Object","assign","classNames","styles","ref"],"mappings":";;;;;;;;;;;MAkBaA,QAAQ,gBAAGC,gBAAU,CAChC,SAASD,QAAQA,CACf;EACEE,KAAK;EACLC,SAAS;AACTC,EAAAA,OAAO,GAAG,CAAC;AACXC,EAAAA,OAAO,GAAG,CAAC;AACXC,EAAAA,SAAS,GAAG,KAAK;AACjBC,EAAAA,KAAK,GAAG,EAAE;EACVC,SAAS;EACTC,OAAO;EACP,GAAGC,IAAAA;AACL,CAAC,EACDC,YAAY,EACZ;EACA,MAAM;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC,QAAQ;IAAE,GAAGC,QAAAA;AAAS,GAAC,GACjDC,6BAAiB,CAACN,IAAI,CAAC,CAAA;AAEzB,EAAA,MAAMO,QAAQ,GAAGC,YAAM,CAA6B,IAAI,CAAC,CAAA;AACzD,EAAA,MAAMC,cAAc,GAAGC,oBAAY,CAACH,QAAQ,EAAEN,YAAY,CAAC,CAAA;EAE3D,MAAM;IAAEU,aAAa;AAAEC,IAAAA,WAAAA;GAAa,GAClCC,2EAAqC,CAAC;AACpCC,IAAAA,UAAU,EAAEC,6DAAuB;IACnCjB,SAAS;AACTC,IAAAA,OAAAA;AACF,GAAC,CAAC,CAAA;AAEJiB,EAAAA,mDAAyB,CAAC,SAASC,gBAAgBA,GAAG;IACpD,SAASC,iBAAiBA,GAAG;AAAA,MAAA,IAAAC,iBAAA,EAAAC,kBAAA,EAAAC,kBAAA,CAAA;AAC3B,MAAA,CAAAF,iBAAA,GAAAZ,QAAQ,CAACe,OAAO,cAAAH,iBAAA,KAAA,KAAA,CAAA,IAAhBA,iBAAA,CAAkBI,iBAAiB,CAAAH,CAAAA,kBAAA,GACjCb,QAAQ,CAACe,OAAO,MAAAF,IAAAA,IAAAA,kBAAA,KAAhBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,kBAAA,CAAkBvB,KAAK,CAAC2B,MAAM,EAAAH,CAAAA,kBAAA,GAC9Bd,QAAQ,CAACe,OAAO,MAAA,IAAA,IAAAD,kBAAA,KAAhBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,kBAAA,CAAkBxB,KAAK,CAAC2B,MAC1B,CAAC,CAAA;AACH,KAAA;AAEA,IAAA,IAAI5B,SAAS,EAAE;AAAA,MAAA,IAAA6B,kBAAA,CAAA;AACb,MAAA,CAAAA,kBAAA,GAAAlB,QAAQ,CAACe,OAAO,MAAA,IAAA,IAAAG,kBAAA,KAAA,KAAA,CAAA,IAAhBA,kBAAA,CAAkBC,KAAK,EAAE,CAAA;AACzBR,MAAAA,iBAAiB,EAAE,CAAA;AACrB,KAAA;AACA;GACD,EAAE,EAAE,CAAC,CAAA;EAEN,oBACES,KAAA,CAAAC,aAAA,CAACC,iCAAgB,EAAAC,MAAA,CAAAC,MAAA,CAAA,EAAA,EACX1B,QAAQ,EAAA;AACZb,IAAAA,KAAK,EAAEA,KAAM;IACbC,SAAS,EAAEuC,aAAU,CAACC,uBAAM,CAAC3C,QAAQ,EAAEG,SAAS,CAAE;AAClDyC,IAAAA,GAAG,EAAEzB,cAAe;AACpBZ,IAAAA,KAAK,EAAEA,KAAM;AACbK,IAAAA,QAAQ,EAAEA,QAAS;AACnBC,IAAAA,QAAQ,EAAEA,QAAS;AACnBR,IAAAA,OAAO,EAAEA,OAAQ;AACjBD,IAAAA,OAAO,EAAEA,OAAQ;AACjB,IAAA,aAAA,EAAY,kBAAkB;AAC9BI,IAAAA,SAAS,EAAEa,aAAc;AACzBZ,IAAAA,OAAO,EAAEa,WAAAA;AAAY,GAAA,CACtB,CAAC,CAAA;AAEN,CACF;;;;"}
@@ -38,11 +38,12 @@ function TextFieldLeftContent({
38
38
  }
39
39
  const Content = (() => {
40
40
  if ('icon' in children) {
41
+ var _children$iconColor;
41
42
  return /*#__PURE__*/React.createElement(Icon.Icon, {
42
43
  className: !type.isNil(children.onClick) ? TextField_module.default.clickable : undefined,
43
44
  source: children.icon,
44
45
  size: "s",
45
- color: children.iconColor ?? 'txt-black-dark',
46
+ color: (_children$iconColor = children.iconColor) !== null && _children$iconColor !== void 0 ? _children$iconColor : 'txt-black-dark',
46
47
  onClick: children.onClick
47
48
  });
48
49
  }
@@ -64,6 +65,7 @@ function TextFieldRightContent({
64
65
  }) {
65
66
  const renderRightItem = React.useCallback((item, key) => {
66
67
  if ('icon' in item) {
68
+ var _item$iconColor;
67
69
  const Comp = !type.isNil(item.onClick) ? BaseButton.BaseButton : 'div';
68
70
  return /*#__PURE__*/React.createElement(Comp, {
69
71
  key: key,
@@ -72,7 +74,7 @@ function TextFieldRightContent({
72
74
  }, /*#__PURE__*/React.createElement(Icon.Icon, {
73
75
  source: item.icon,
74
76
  size: "xs",
75
- color: item.iconColor ?? 'txt-black-dark'
77
+ color: (_item$iconColor = item.iconColor) !== null && _item$iconColor !== void 0 ? _item$iconColor : 'txt-black-dark'
76
78
  }));
77
79
  }
78
80
  return /*#__PURE__*/React.cloneElement(item, {
@@ -119,6 +121,7 @@ const TextField = /*#__PURE__*/React.forwardRef(function TextField({
119
121
  onKeyUp,
120
122
  ...rest
121
123
  }, forwardedRef) {
124
+ var _ref;
122
125
  const {
123
126
  window
124
127
  } = WindowProvider.useWindow();
@@ -134,27 +137,33 @@ const TextField = /*#__PURE__*/React.forwardRef(function TextField({
134
137
  const normalizedValue = type.isNil(value) ? undefined : string.toString(value);
135
138
  const activeInput = !disabled && !readOnly;
136
139
  const activeClear = activeInput && allowClear && !type.isEmpty(normalizedValue);
137
- const size = sizeProps ?? formFieldSize ?? 'm';
140
+ const size = (_ref = sizeProps !== null && sizeProps !== void 0 ? sizeProps : formFieldSize) !== null && _ref !== void 0 ? _ref : 'm';
138
141
  const inputRef = React.useRef(null);
139
142
  const focus = React.useCallback(() => {
140
143
  clearTimeout(focusTimeout.current);
141
144
  focusTimeout.current = window.setTimeout(() => {
142
- inputRef.current?.focus();
145
+ var _inputRef$current;
146
+ (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || _inputRef$current.focus();
143
147
  }, 0);
144
148
  }, [window]);
145
149
  const blur = React.useCallback(() => {
146
150
  clearTimeout(blurTimeout.current);
147
151
  blurTimeout.current = window.setTimeout(() => {
148
- inputRef.current?.blur();
152
+ var _inputRef$current2;
153
+ (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 || _inputRef$current2.blur();
149
154
  }, 0);
150
155
  }, [window]);
151
156
  const setSelectionRange = React.useCallback((start, end, direction) => {
157
+ var _inputRef$current3;
152
158
  if (type$1 && ['number', 'email', 'hidden'].includes(type$1)) {
153
159
  return;
154
160
  }
155
- inputRef.current?.setSelectionRange(start || 0, end || 0, direction || 'none');
161
+ (_inputRef$current3 = inputRef.current) === null || _inputRef$current3 === void 0 || _inputRef$current3.setSelectionRange(start || 0, end || 0, direction || 'none');
156
162
  }, [type$1]);
157
- const getSelectionRange = React.useCallback(() => [inputRef.current?.selectionStart || 0, inputRef.current?.selectionEnd || 0], []);
163
+ const getSelectionRange = React.useCallback(() => {
164
+ var _inputRef$current4, _inputRef$current5;
165
+ return [((_inputRef$current4 = inputRef.current) === null || _inputRef$current4 === void 0 ? void 0 : _inputRef$current4.selectionStart) || 0, ((_inputRef$current5 = inputRef.current) === null || _inputRef$current5 === void 0 ? void 0 : _inputRef$current5.selectionEnd) || 0];
166
+ }, []);
158
167
  const selectAll = React.useCallback(() => {
159
168
  focus();
160
169
  if (inputRef.current) {
@@ -233,11 +242,12 @@ const TextField = /*#__PURE__*/React.forwardRef(function TextField({
233
242
  const handleClear = React.useCallback(() => {
234
243
  const input = inputRef.current;
235
244
  if (activeInput && input) {
236
- const setValue = Object?.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value')?.set;
245
+ var _Object$getOwnPropert;
246
+ const setValue = Object === null || Object === void 0 || (_Object$getOwnPropert = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value')) === null || _Object$getOwnPropert === void 0 ? void 0 : _Object$getOwnPropert.set;
237
247
  const event = new Event('input', {
238
248
  bubbles: true
239
249
  });
240
- setValue?.call(input, '');
250
+ setValue === null || setValue === void 0 || setValue.call(input, '');
241
251
  input.dispatchEvent(event);
242
252
  }
243
253
  }, [activeInput]);
@@ -1 +1 @@
1
- {"version":3,"file":"TextField.js","sources":["../../../../src/components/TextField/TextField.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\n\nimport { CancelCircleFilledIcon } from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\nimport { v4 as uuid } from 'uuid'\n\nimport {\n COMMON_IME_CONTROL_KEYS,\n useKeyboardActionLockerWhileComposing,\n} from '~/src/hooks/useKeyboardActionLockerWhileComposing'\nimport { type FormFieldSize } from '~/src/types/props'\nimport { getFormFieldSizeClassName } from '~/src/types/props-helpers'\nimport { toString } from '~/src/utils/string'\nimport { isArray, isEmpty, isNil } from '~/src/utils/type'\n\nimport { BaseButton } from '~/src/components/BaseButton'\nimport { useFormFieldProps } from '~/src/components/FormControl'\nimport { Icon } from '~/src/components/Icon'\nimport { useWindow } from '~/src/components/WindowProvider'\n\nimport {\n type SelectionRangeDirections,\n type TextFieldItemProps,\n type TextFieldProps,\n type TextFieldRef,\n} from './TextField.types'\n\nimport styles from './TextField.module.scss'\n\nexport const TEXT_INPUT_TEST_ID = 'bezier-text-input'\nexport const TEXT_INPUT_CLEAR_ICON_TEST_ID = 'bezier-text-input-clear-icon'\n\n/**\n * FIXME: This mapping constant was defined for UI consistency,\n * and it should be removed with size attribute\n */\nconst INPUT_LENGTH_BY_SIZE: Record<FormFieldSize, number> = {\n xs: 28,\n m: 36,\n l: 44,\n xl: 54,\n}\n\nfunction TextFieldLeftContent({\n children,\n wrapperStyle,\n wrapperClassName,\n withoutWrapper,\n}: {\n children: TextFieldProps['leftContent']\n wrapperStyle: TextFieldProps['leftWrapperStyle']\n wrapperClassName: TextFieldProps['leftWrapperClassName']\n withoutWrapper: TextFieldProps['withoutLeftContentWrapper']\n}) {\n if (isNil(children)) {\n return null\n }\n\n const Content = (() => {\n if ('icon' in children) {\n return (\n <Icon\n className={!isNil(children.onClick) ? styles.clickable : undefined}\n source={children.icon}\n size=\"s\"\n color={children.iconColor ?? 'txt-black-dark'}\n onClick={children.onClick}\n />\n )\n }\n\n return children\n })()\n\n if (withoutWrapper) {\n return Content\n }\n\n return (\n <div\n style={wrapperStyle}\n className={classNames(styles.LeftContentWrapper, wrapperClassName)}\n >\n {Content}\n </div>\n )\n}\n\nfunction TextFieldRightContent({\n children,\n wrapperStyle,\n wrapperClassName,\n withoutWrapper,\n}: {\n children: TextFieldProps['rightContent']\n wrapperStyle: TextFieldProps['rightWrapperStyle']\n wrapperClassName: TextFieldProps['rightWrapperClassName']\n withoutWrapper: TextFieldProps['withoutRightContentWrapper']\n}) {\n const renderRightItem = useCallback(\n (item: TextFieldItemProps, key?: string) => {\n if ('icon' in item) {\n const Comp = !isNil(item.onClick) ? BaseButton : 'div'\n\n return (\n <Comp\n key={key}\n className={styles.RightItemWrapper}\n onClick={item.onClick}\n >\n <Icon\n source={item.icon}\n size=\"xs\"\n color={item.iconColor ?? 'txt-black-dark'}\n />\n </Comp>\n )\n }\n\n return React.cloneElement(item, { key })\n },\n []\n )\n\n if (isNil(children) || isEmpty(children)) {\n return null\n }\n\n const contents = isArray(children)\n ? children.map((item) => renderRightItem(item, uuid()))\n : renderRightItem(children)\n\n if (withoutWrapper) {\n return <>{contents}</>\n }\n\n return (\n <div\n style={wrapperStyle}\n className={classNames(styles.RightContentWrapper, wrapperClassName)}\n >\n {contents}\n </div>\n )\n}\n\nexport const TextField = forwardRef<TextFieldRef, TextFieldProps>(\n function TextField(\n {\n type,\n size: sizeProps,\n autoFocus,\n autoComplete = 'off',\n variant = 'primary',\n allowClear = false,\n selectAllOnInit = false,\n selectAllOnFocus = false,\n leftContent,\n rightContent,\n withoutLeftContentWrapper = false,\n withoutRightContentWrapper = false,\n style,\n className,\n wrapperStyle,\n wrapperClassName,\n leftWrapperStyle,\n leftWrapperClassName,\n rightWrapperStyle,\n rightWrapperClassName,\n value,\n onFocus,\n onChange,\n onKeyDown,\n onKeyUp,\n ...rest\n },\n forwardedRef\n ) {\n const { window } = useWindow()\n\n const {\n disabled,\n readOnly,\n hasError,\n size: formFieldSize,\n ...ownProps\n } = useFormFieldProps(rest)\n\n const focusTimeout = useRef<ReturnType<Window['setTimeout']>>()\n const blurTimeout = useRef<ReturnType<Window['setTimeout']>>()\n\n const normalizedValue = isNil(value) ? undefined : toString(value)\n const activeInput = !disabled && !readOnly\n const activeClear = activeInput && allowClear && !isEmpty(normalizedValue)\n const size = sizeProps ?? formFieldSize ?? 'm'\n\n const inputRef = useRef<HTMLInputElement | null>(null)\n\n const focus = useCallback(() => {\n clearTimeout(focusTimeout.current)\n focusTimeout.current = window.setTimeout(() => {\n inputRef.current?.focus()\n }, 0)\n }, [window])\n\n const blur = useCallback(() => {\n clearTimeout(blurTimeout.current)\n blurTimeout.current = window.setTimeout(() => {\n inputRef.current?.blur()\n }, 0)\n }, [window])\n\n const setSelectionRange = useCallback(\n (start?: number, end?: number, direction?: SelectionRangeDirections) => {\n if (type && ['number', 'email', 'hidden'].includes(type)) {\n return\n }\n inputRef.current?.setSelectionRange(\n start || 0,\n end || 0,\n direction || 'none'\n )\n },\n [type]\n )\n\n const getSelectionRange = useCallback(\n (): [number, number] => [\n inputRef.current?.selectionStart || 0,\n inputRef.current?.selectionEnd || 0,\n ],\n []\n )\n\n const selectAll = useCallback(() => {\n focus()\n if (inputRef.current) {\n setSelectionRange(0, inputRef.current.value.length, 'backward')\n }\n }, [focus, setSelectionRange])\n\n const unselect = useCallback(() => {\n focus()\n if (inputRef.current) {\n const valueLen = inputRef.current.value.length\n setSelectionRange(valueLen, valueLen)\n }\n }, [focus, setSelectionRange])\n\n const getBoundingClientRect = useCallback((): DOMRect => {\n if (inputRef.current) {\n return inputRef.current.getBoundingClientRect()\n }\n return new DOMRect(undefined, undefined, 0, 0)\n }, [])\n\n const getDOMNode = useCallback(() => inputRef.current, [])\n\n const handle = useMemo(\n (): TextFieldRef => ({\n focus,\n blur,\n setSelectionRange,\n getSelectionRange,\n selectAll,\n unselect,\n getBoundingClientRect,\n getDOMNode,\n }),\n [\n focus,\n blur,\n setSelectionRange,\n getSelectionRange,\n selectAll,\n unselect,\n getBoundingClientRect,\n getDOMNode,\n ]\n )\n\n useImperativeHandle(forwardedRef, () => handle)\n\n useEffect(() => {\n if (autoFocus) {\n focus()\n }\n if (selectAllOnInit) {\n focus()\n selectAll()\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLInputElement>) => {\n if (!activeInput) {\n return\n }\n if (selectAllOnFocus) {\n selectAll()\n }\n if (onFocus) {\n onFocus(event)\n }\n },\n [selectAllOnFocus, selectAll, activeInput, onFocus]\n )\n\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n if (activeInput && onChange) {\n onChange(event)\n }\n },\n [activeInput, onChange]\n )\n\n const {\n handleKeyDown: handleKeyDownWrappedWithComposingLocker,\n handleKeyUp: handleKeyUpWrappedWithComposingLocker,\n } = useKeyboardActionLockerWhileComposing({\n keysToLock: COMMON_IME_CONTROL_KEYS,\n onKeyDown,\n onKeyUp,\n })\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (activeInput && handleKeyDownWrappedWithComposingLocker) {\n handleKeyDownWrappedWithComposingLocker(event)\n }\n },\n [activeInput, handleKeyDownWrappedWithComposingLocker]\n )\n\n const handleKeyUp = useCallback(\n (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (activeInput && handleKeyUpWrappedWithComposingLocker) {\n handleKeyUpWrappedWithComposingLocker(event)\n }\n },\n [activeInput, handleKeyUpWrappedWithComposingLocker]\n )\n\n const handleClear = useCallback(() => {\n const input = inputRef.current\n if (activeInput && input) {\n const setValue = Object?.getOwnPropertyDescriptor(\n HTMLInputElement.prototype,\n 'value'\n )?.set\n const event = new Event('input', { bubbles: true })\n setValue?.call(input, '')\n input.dispatchEvent(event)\n }\n }, [activeInput])\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n style={wrapperStyle}\n className={classNames(\n styles.TextFieldWrapper,\n styles[`variant-${variant}`],\n styles[`size-${size}`],\n getFormFieldSizeClassName(size),\n wrapperClassName\n )}\n data-testid={TEXT_INPUT_TEST_ID}\n onMouseDown={focus}\n >\n <TextFieldLeftContent\n wrapperStyle={leftWrapperStyle}\n wrapperClassName={leftWrapperClassName}\n withoutWrapper={withoutLeftContentWrapper}\n >\n {leftContent}\n </TextFieldLeftContent>\n\n <input\n style={style}\n className={classNames(styles.TextFieldInput, className)}\n ref={inputRef}\n type={type}\n value={normalizedValue}\n /**\n * Invalid size attribute\n * FIXME: https://github.com/channel-io/bezier-react/issues/1053\n */\n size={INPUT_LENGTH_BY_SIZE[size]}\n autoComplete={autoComplete}\n readOnly={readOnly}\n disabled={disabled}\n onFocus={handleFocus}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onKeyUp={handleKeyUp}\n {...ownProps}\n />\n\n {activeClear && (\n <BaseButton\n className={styles.CloseIconWrapper}\n tabIndex={0}\n onClick={handleClear}\n >\n <Icon\n className={styles.CloseIcon}\n data-testid={TEXT_INPUT_CLEAR_ICON_TEST_ID}\n source={CancelCircleFilledIcon}\n size=\"xs\"\n />\n </BaseButton>\n )}\n\n <TextFieldRightContent\n wrapperStyle={rightWrapperStyle}\n withoutWrapper={withoutRightContentWrapper}\n wrapperClassName={rightWrapperClassName}\n >\n {rightContent}\n </TextFieldRightContent>\n </div>\n )\n }\n)\n"],"names":["TEXT_INPUT_TEST_ID","TEXT_INPUT_CLEAR_ICON_TEST_ID","INPUT_LENGTH_BY_SIZE","xs","m","l","xl","TextFieldLeftContent","children","wrapperStyle","wrapperClassName","withoutWrapper","isNil","Content","React","createElement","Icon","className","onClick","styles","clickable","undefined","source","icon","size","color","iconColor","style","classNames","LeftContentWrapper","TextFieldRightContent","renderRightItem","useCallback","item","key","Comp","BaseButton","RightItemWrapper","cloneElement","isEmpty","contents","isArray","map","uuid","Fragment","RightContentWrapper","TextField","forwardRef","type","sizeProps","autoFocus","autoComplete","variant","allowClear","selectAllOnInit","selectAllOnFocus","leftContent","rightContent","withoutLeftContentWrapper","withoutRightContentWrapper","leftWrapperStyle","leftWrapperClassName","rightWrapperStyle","rightWrapperClassName","value","onFocus","onChange","onKeyDown","onKeyUp","rest","forwardedRef","window","useWindow","disabled","readOnly","hasError","formFieldSize","ownProps","useFormFieldProps","focusTimeout","useRef","blurTimeout","normalizedValue","toString","activeInput","activeClear","inputRef","focus","clearTimeout","current","setTimeout","blur","setSelectionRange","start","end","direction","includes","getSelectionRange","selectionStart","selectionEnd","selectAll","length","unselect","valueLen","getBoundingClientRect","DOMRect","getDOMNode","handle","useMemo","useImperativeHandle","useEffect","handleFocus","event","handleChange","handleKeyDown","handleKeyDownWrappedWithComposingLocker","handleKeyUp","handleKeyUpWrappedWithComposingLocker","useKeyboardActionLockerWhileComposing","keysToLock","COMMON_IME_CONTROL_KEYS","handleClear","input","setValue","Object","getOwnPropertyDescriptor","HTMLInputElement","prototype","set","Event","bubbles","call","dispatchEvent","TextFieldWrapper","getFormFieldSizeClassName","onMouseDown","assign","TextFieldInput","ref","CloseIconWrapper","tabIndex","CloseIcon","CancelCircleFilledIcon"],"mappings":";;;;;;;;;;;;;;;;AAoCO,MAAMA,kBAAkB,GAAG,oBAAmB;AAC9C,MAAMC,6BAA6B,GAAG,+BAA8B;;AAE3E;AACA;AACA;AACA;AACA,MAAMC,oBAAmD,GAAG;AAC1DC,EAAAA,EAAE,EAAE,EAAE;AACNC,EAAAA,CAAC,EAAE,EAAE;AACLC,EAAAA,CAAC,EAAE,EAAE;AACLC,EAAAA,EAAE,EAAE,EAAA;AACN,CAAC,CAAA;AAED,SAASC,oBAAoBA,CAAC;EAC5BC,QAAQ;EACRC,YAAY;EACZC,gBAAgB;AAChBC,EAAAA,cAAAA;AAMF,CAAC,EAAE;AACD,EAAA,IAAIC,UAAK,CAACJ,QAAQ,CAAC,EAAE;AACnB,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;EAEA,MAAMK,OAAO,GAAG,CAAC,MAAM;IACrB,IAAI,MAAM,IAAIL,QAAQ,EAAE;AACtB,MAAA,oBACEM,KAAA,CAAAC,aAAA,CAACC,SAAI,EAAA;AACHC,QAAAA,SAAS,EAAE,CAACL,UAAK,CAACJ,QAAQ,CAACU,OAAO,CAAC,GAAGC,wBAAM,CAACC,SAAS,GAAGC,SAAU;QACnEC,MAAM,EAAEd,QAAQ,CAACe,IAAK;AACtBC,QAAAA,IAAI,EAAC,GAAG;AACRC,QAAAA,KAAK,EAAEjB,QAAQ,CAACkB,SAAS,IAAI,gBAAiB;QAC9CR,OAAO,EAAEV,QAAQ,CAACU,OAAAA;AAAQ,OAC3B,CAAC,CAAA;AAEN,KAAA;AAEA,IAAA,OAAOV,QAAQ,CAAA;AACjB,GAAC,GAAG,CAAA;AAEJ,EAAA,IAAIG,cAAc,EAAE;AAClB,IAAA,OAAOE,OAAO,CAAA;AAChB,GAAA;EAEA,oBACEC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACEY,IAAAA,KAAK,EAAElB,YAAa;AACpBQ,IAAAA,SAAS,EAAEW,aAAU,CAACT,wBAAM,CAACU,kBAAkB,EAAEnB,gBAAgB,CAAA;AAAE,GAAA,EAElEG,OACE,CAAC,CAAA;AAEV,CAAA;AAEA,SAASiB,qBAAqBA,CAAC;EAC7BtB,QAAQ;EACRC,YAAY;EACZC,gBAAgB;AAChBC,EAAAA,cAAAA;AAMF,CAAC,EAAE;EACD,MAAMoB,eAAe,GAAGC,iBAAW,CACjC,CAACC,IAAwB,EAAEC,GAAY,KAAK;IAC1C,IAAI,MAAM,IAAID,IAAI,EAAE;AAClB,MAAA,MAAME,IAAI,GAAG,CAACvB,UAAK,CAACqB,IAAI,CAACf,OAAO,CAAC,GAAGkB,qBAAU,GAAG,KAAK,CAAA;AAEtD,MAAA,oBACEtB,KAAA,CAAAC,aAAA,CAACoB,IAAI,EAAA;AACHD,QAAAA,GAAG,EAAEA,GAAI;QACTjB,SAAS,EAAEE,wBAAM,CAACkB,gBAAiB;QACnCnB,OAAO,EAAEe,IAAI,CAACf,OAAAA;AAAQ,OAAA,eAEtBJ,KAAA,CAAAC,aAAA,CAACC,SAAI,EAAA;QACHM,MAAM,EAAEW,IAAI,CAACV,IAAK;AAClBC,QAAAA,IAAI,EAAC,IAAI;AACTC,QAAAA,KAAK,EAAEQ,IAAI,CAACP,SAAS,IAAI,gBAAA;AAAiB,OAC3C,CACG,CAAC,CAAA;AAEX,KAAA;AAEA,IAAA,oBAAOZ,KAAK,CAACwB,YAAY,CAACL,IAAI,EAAE;AAAEC,MAAAA,GAAAA;AAAI,KAAC,CAAC,CAAA;GACzC,EACD,EACF,CAAC,CAAA;EAED,IAAItB,UAAK,CAACJ,QAAQ,CAAC,IAAI+B,YAAO,CAAC/B,QAAQ,CAAC,EAAE;AACxC,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;EAEA,MAAMgC,QAAQ,GAAGC,YAAO,CAACjC,QAAQ,CAAC,GAC9BA,QAAQ,CAACkC,GAAG,CAAET,IAAI,IAAKF,eAAe,CAACE,IAAI,EAAEU,UAAI,EAAE,CAAC,CAAC,GACrDZ,eAAe,CAACvB,QAAQ,CAAC,CAAA;AAE7B,EAAA,IAAIG,cAAc,EAAE;IAClB,oBAAOG,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA8B,QAAA,EAAGJ,IAAAA,EAAAA,QAAW,CAAC,CAAA;AACxB,GAAA;EAEA,oBACE1B,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACEY,IAAAA,KAAK,EAAElB,YAAa;AACpBQ,IAAAA,SAAS,EAAEW,aAAU,CAACT,wBAAM,CAAC0B,mBAAmB,EAAEnC,gBAAgB,CAAA;AAAE,GAAA,EAEnE8B,QACE,CAAC,CAAA;AAEV,CAAA;MAEaM,SAAS,gBAAGC,gBAAU,CACjC,SAASD,SAASA,CAChB;QACEE,MAAI;AACJxB,EAAAA,IAAI,EAAEyB,SAAS;EACfC,SAAS;AACTC,EAAAA,YAAY,GAAG,KAAK;AACpBC,EAAAA,OAAO,GAAG,SAAS;AACnBC,EAAAA,UAAU,GAAG,KAAK;AAClBC,EAAAA,eAAe,GAAG,KAAK;AACvBC,EAAAA,gBAAgB,GAAG,KAAK;EACxBC,WAAW;EACXC,YAAY;AACZC,EAAAA,yBAAyB,GAAG,KAAK;AACjCC,EAAAA,0BAA0B,GAAG,KAAK;EAClChC,KAAK;EACLV,SAAS;EACTR,YAAY;EACZC,gBAAgB;EAChBkD,gBAAgB;EAChBC,oBAAoB;EACpBC,iBAAiB;EACjBC,qBAAqB;EACrBC,KAAK;EACLC,OAAO;EACPC,QAAQ;EACRC,SAAS;EACTC,OAAO;EACP,GAAGC,IAAAA;AACL,CAAC,EACDC,YAAY,EACZ;EACA,MAAM;AAAEC,IAAAA,MAAAA;GAAQ,GAAGC,wBAAS,EAAE,CAAA;EAE9B,MAAM;IACJC,QAAQ;IACRC,QAAQ;IACRC,QAAQ;AACRnD,IAAAA,IAAI,EAAEoD,aAAa;IACnB,GAAGC,QAAAA;AACL,GAAC,GAAGC,6BAAiB,CAACT,IAAI,CAAC,CAAA;AAE3B,EAAA,MAAMU,YAAY,GAAGC,YAAM,EAAoC,CAAA;AAC/D,EAAA,MAAMC,WAAW,GAAGD,YAAM,EAAoC,CAAA;AAE9D,EAAA,MAAME,eAAe,GAAGtE,UAAK,CAACoD,KAAK,CAAC,GAAG3C,SAAS,GAAG8D,eAAQ,CAACnB,KAAK,CAAC,CAAA;AAClE,EAAA,MAAMoB,WAAW,GAAG,CAACX,QAAQ,IAAI,CAACC,QAAQ,CAAA;EAC1C,MAAMW,WAAW,GAAGD,WAAW,IAAI/B,UAAU,IAAI,CAACd,YAAO,CAAC2C,eAAe,CAAC,CAAA;AAC1E,EAAA,MAAM1D,IAAI,GAAGyB,SAAS,IAAI2B,aAAa,IAAI,GAAG,CAAA;AAE9C,EAAA,MAAMU,QAAQ,GAAGN,YAAM,CAA0B,IAAI,CAAC,CAAA;AAEtD,EAAA,MAAMO,KAAK,GAAGvD,iBAAW,CAAC,MAAM;AAC9BwD,IAAAA,YAAY,CAACT,YAAY,CAACU,OAAO,CAAC,CAAA;AAClCV,IAAAA,YAAY,CAACU,OAAO,GAAGlB,MAAM,CAACmB,UAAU,CAAC,MAAM;AAC7CJ,MAAAA,QAAQ,CAACG,OAAO,EAAEF,KAAK,EAAE,CAAA;KAC1B,EAAE,CAAC,CAAC,CAAA;AACP,GAAC,EAAE,CAAChB,MAAM,CAAC,CAAC,CAAA;AAEZ,EAAA,MAAMoB,IAAI,GAAG3D,iBAAW,CAAC,MAAM;AAC7BwD,IAAAA,YAAY,CAACP,WAAW,CAACQ,OAAO,CAAC,CAAA;AACjCR,IAAAA,WAAW,CAACQ,OAAO,GAAGlB,MAAM,CAACmB,UAAU,CAAC,MAAM;AAC5CJ,MAAAA,QAAQ,CAACG,OAAO,EAAEE,IAAI,EAAE,CAAA;KACzB,EAAE,CAAC,CAAC,CAAA;AACP,GAAC,EAAE,CAACpB,MAAM,CAAC,CAAC,CAAA;EAEZ,MAAMqB,iBAAiB,GAAG5D,iBAAW,CACnC,CAAC6D,KAAc,EAAEC,GAAY,EAAEC,SAAoC,KAAK;AACtE,IAAA,IAAI/C,MAAI,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAACgD,QAAQ,CAAChD,MAAI,CAAC,EAAE;AACxD,MAAA,OAAA;AACF,KAAA;AACAsC,IAAAA,QAAQ,CAACG,OAAO,EAAEG,iBAAiB,CACjCC,KAAK,IAAI,CAAC,EACVC,GAAG,IAAI,CAAC,EACRC,SAAS,IAAI,MACf,CAAC,CAAA;AACH,GAAC,EACD,CAAC/C,MAAI,CACP,CAAC,CAAA;EAED,MAAMiD,iBAAiB,GAAGjE,iBAAW,CACnC,MAAwB,CACtBsD,QAAQ,CAACG,OAAO,EAAES,cAAc,IAAI,CAAC,EACrCZ,QAAQ,CAACG,OAAO,EAAEU,YAAY,IAAI,CAAC,CACpC,EACD,EACF,CAAC,CAAA;AAED,EAAA,MAAMC,SAAS,GAAGpE,iBAAW,CAAC,MAAM;AAClCuD,IAAAA,KAAK,EAAE,CAAA;IACP,IAAID,QAAQ,CAACG,OAAO,EAAE;AACpBG,MAAAA,iBAAiB,CAAC,CAAC,EAAEN,QAAQ,CAACG,OAAO,CAACzB,KAAK,CAACqC,MAAM,EAAE,UAAU,CAAC,CAAA;AACjE,KAAA;AACF,GAAC,EAAE,CAACd,KAAK,EAAEK,iBAAiB,CAAC,CAAC,CAAA;AAE9B,EAAA,MAAMU,QAAQ,GAAGtE,iBAAW,CAAC,MAAM;AACjCuD,IAAAA,KAAK,EAAE,CAAA;IACP,IAAID,QAAQ,CAACG,OAAO,EAAE;MACpB,MAAMc,QAAQ,GAAGjB,QAAQ,CAACG,OAAO,CAACzB,KAAK,CAACqC,MAAM,CAAA;AAC9CT,MAAAA,iBAAiB,CAACW,QAAQ,EAAEA,QAAQ,CAAC,CAAA;AACvC,KAAA;AACF,GAAC,EAAE,CAAChB,KAAK,EAAEK,iBAAiB,CAAC,CAAC,CAAA;AAE9B,EAAA,MAAMY,qBAAqB,GAAGxE,iBAAW,CAAC,MAAe;IACvD,IAAIsD,QAAQ,CAACG,OAAO,EAAE;AACpB,MAAA,OAAOH,QAAQ,CAACG,OAAO,CAACe,qBAAqB,EAAE,CAAA;AACjD,KAAA;IACA,OAAO,IAAIC,OAAO,CAACpF,SAAS,EAAEA,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;GAC/C,EAAE,EAAE,CAAC,CAAA;EAEN,MAAMqF,UAAU,GAAG1E,iBAAW,CAAC,MAAMsD,QAAQ,CAACG,OAAO,EAAE,EAAE,CAAC,CAAA;AAE1D,EAAA,MAAMkB,MAAM,GAAGC,aAAO,CACpB,OAAqB;IACnBrB,KAAK;IACLI,IAAI;IACJC,iBAAiB;IACjBK,iBAAiB;IACjBG,SAAS;IACTE,QAAQ;IACRE,qBAAqB;AACrBE,IAAAA,UAAAA;AACF,GAAC,CAAC,EACF,CACEnB,KAAK,EACLI,IAAI,EACJC,iBAAiB,EACjBK,iBAAiB,EACjBG,SAAS,EACTE,QAAQ,EACRE,qBAAqB,EACrBE,UAAU,CAEd,CAAC,CAAA;AAEDG,EAAAA,yBAAmB,CAACvC,YAAY,EAAE,MAAMqC,MAAM,CAAC,CAAA;AAE/CG,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,IAAI5D,SAAS,EAAE;AACbqC,MAAAA,KAAK,EAAE,CAAA;AACT,KAAA;AACA,IAAA,IAAIjC,eAAe,EAAE;AACnBiC,MAAAA,KAAK,EAAE,CAAA;AACPa,MAAAA,SAAS,EAAE,CAAA;AACb,KAAA;AACA;GACD,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAMW,WAAW,GAAG/E,iBAAW,CAC5BgF,KAAyC,IAAK;IAC7C,IAAI,CAAC5B,WAAW,EAAE;AAChB,MAAA,OAAA;AACF,KAAA;AACA,IAAA,IAAI7B,gBAAgB,EAAE;AACpB6C,MAAAA,SAAS,EAAE,CAAA;AACb,KAAA;AACA,IAAA,IAAInC,OAAO,EAAE;MACXA,OAAO,CAAC+C,KAAK,CAAC,CAAA;AAChB,KAAA;GACD,EACD,CAACzD,gBAAgB,EAAE6C,SAAS,EAAEhB,WAAW,EAAEnB,OAAO,CACpD,CAAC,CAAA;AAED,EAAA,MAAMgD,YAAY,GAAGjF,iBAAW,CAC7BgF,KAA0C,IAAK;IAC9C,IAAI5B,WAAW,IAAIlB,QAAQ,EAAE;MAC3BA,QAAQ,CAAC8C,KAAK,CAAC,CAAA;AACjB,KAAA;AACF,GAAC,EACD,CAAC5B,WAAW,EAAElB,QAAQ,CACxB,CAAC,CAAA;EAED,MAAM;AACJgD,IAAAA,aAAa,EAAEC,uCAAuC;AACtDC,IAAAA,WAAW,EAAEC,qCAAAA;GACd,GAAGC,2EAAqC,CAAC;AACxCC,IAAAA,UAAU,EAAEC,6DAAuB;IACnCrD,SAAS;AACTC,IAAAA,OAAAA;AACF,GAAC,CAAC,CAAA;AAEF,EAAA,MAAM8C,aAAa,GAAGlF,iBAAW,CAC9BgF,KAA4C,IAAK;IAChD,IAAI5B,WAAW,IAAI+B,uCAAuC,EAAE;MAC1DA,uCAAuC,CAACH,KAAK,CAAC,CAAA;AAChD,KAAA;AACF,GAAC,EACD,CAAC5B,WAAW,EAAE+B,uCAAuC,CACvD,CAAC,CAAA;AAED,EAAA,MAAMC,WAAW,GAAGpF,iBAAW,CAC5BgF,KAA4C,IAAK;IAChD,IAAI5B,WAAW,IAAIiC,qCAAqC,EAAE;MACxDA,qCAAqC,CAACL,KAAK,CAAC,CAAA;AAC9C,KAAA;AACF,GAAC,EACD,CAAC5B,WAAW,EAAEiC,qCAAqC,CACrD,CAAC,CAAA;AAED,EAAA,MAAMI,WAAW,GAAGzF,iBAAW,CAAC,MAAM;AACpC,IAAA,MAAM0F,KAAK,GAAGpC,QAAQ,CAACG,OAAO,CAAA;IAC9B,IAAIL,WAAW,IAAIsC,KAAK,EAAE;AACxB,MAAA,MAAMC,QAAQ,GAAGC,MAAM,EAAEC,wBAAwB,CAC/CC,gBAAgB,CAACC,SAAS,EAC1B,OACF,CAAC,EAAEC,GAAG,CAAA;AACN,MAAA,MAAMhB,KAAK,GAAG,IAAIiB,KAAK,CAAC,OAAO,EAAE;AAAEC,QAAAA,OAAO,EAAE,IAAA;AAAK,OAAC,CAAC,CAAA;AACnDP,MAAAA,QAAQ,EAAEQ,IAAI,CAACT,KAAK,EAAE,EAAE,CAAC,CAAA;AACzBA,MAAAA,KAAK,CAACU,aAAa,CAACpB,KAAK,CAAC,CAAA;AAC5B,KAAA;AACF,GAAC,EAAE,CAAC5B,WAAW,CAAC,CAAC,CAAA;AAEjB,EAAA;AAAA;AACE;AACAtE,IAAAA,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACEY,MAAAA,KAAK,EAAElB,YAAa;MACpBQ,SAAS,EAAEW,aAAU,CACnBT,wBAAM,CAACkH,gBAAgB,EACvBlH,wBAAM,CAAC,CAAWiC,QAAAA,EAAAA,OAAO,CAAE,CAAA,CAAC,EAC5BjC,wBAAM,CAAC,CAAA,KAAA,EAAQK,IAAI,CAAA,CAAE,CAAC,EACtB8G,sCAAyB,CAAC9G,IAAI,CAAC,EAC/Bd,gBACF,CAAE;AACF,MAAA,aAAA,EAAaV,kBAAmB;AAChCuI,MAAAA,WAAW,EAAEhD,KAAAA;AAAM,KAAA,eAEnBzE,KAAA,CAAAC,aAAA,CAACR,oBAAoB,EAAA;AACnBE,MAAAA,YAAY,EAAEmD,gBAAiB;AAC/BlD,MAAAA,gBAAgB,EAAEmD,oBAAqB;AACvClD,MAAAA,cAAc,EAAE+C,yBAAAA;KAEfF,EAAAA,WACmB,CAAC,eAEvB1C,KAAA,CAAAC,aAAA,CAAA,OAAA,EAAA6G,MAAA,CAAAY,MAAA,CAAA;AACE7G,MAAAA,KAAK,EAAEA,KAAM;MACbV,SAAS,EAAEW,aAAU,CAACT,wBAAM,CAACsH,cAAc,EAAExH,SAAS,CAAE;AACxDyH,MAAAA,GAAG,EAAEpD,QAAS;AACdtC,MAAAA,IAAI,EAAEA,MAAK;AACXgB,MAAAA,KAAK,EAAEkB,eAAAA;AACP;AACV;AACA;AACA;AACU1D,MAAAA,IAAI,EAAEtB,oBAAoB,CAACsB,IAAI,CAAE;AACjC2B,MAAAA,YAAY,EAAEA,YAAa;AAC3BuB,MAAAA,QAAQ,EAAEA,QAAS;AACnBD,MAAAA,QAAQ,EAAEA,QAAS;AACnBR,MAAAA,OAAO,EAAE8C,WAAY;AACrB7C,MAAAA,QAAQ,EAAE+C,YAAa;AACvB9C,MAAAA,SAAS,EAAE+C,aAAc;AACzB9C,MAAAA,OAAO,EAAEgD,WAAAA;KACLvC,EAAAA,QAAQ,CACb,CAAC,EAEDQ,WAAW,iBACVvE,KAAA,CAAAC,aAAA,CAACqB,qBAAU,EAAA;MACTnB,SAAS,EAAEE,wBAAM,CAACwH,gBAAiB;AACnCC,MAAAA,QAAQ,EAAE,CAAE;AACZ1H,MAAAA,OAAO,EAAEuG,WAAAA;AAAY,KAAA,eAErB3G,KAAA,CAAAC,aAAA,CAACC,SAAI,EAAA;MACHC,SAAS,EAAEE,wBAAM,CAAC0H,SAAU;AAC5B,MAAA,aAAA,EAAa5I,6BAA8B;AAC3CqB,MAAAA,MAAM,EAAEwH,kCAAuB;AAC/BtH,MAAAA,IAAI,EAAC,IAAA;AAAI,KACV,CACS,CACb,eAEDV,KAAA,CAAAC,aAAA,CAACe,qBAAqB,EAAA;AACpBrB,MAAAA,YAAY,EAAEqD,iBAAkB;AAChCnD,MAAAA,cAAc,EAAEgD,0BAA2B;AAC3CjD,MAAAA,gBAAgB,EAAEqD,qBAAAA;AAAsB,KAAA,EAEvCN,YACoB,CACpB,CAAA;AAAC,IAAA;AAEV,CACF;;;;;;"}
1
+ {"version":3,"file":"TextField.js","sources":["../../../../src/components/TextField/TextField.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\n\nimport { CancelCircleFilledIcon } from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\nimport { v4 as uuid } from 'uuid'\n\nimport {\n COMMON_IME_CONTROL_KEYS,\n useKeyboardActionLockerWhileComposing,\n} from '~/src/hooks/useKeyboardActionLockerWhileComposing'\nimport { type FormFieldSize } from '~/src/types/props'\nimport { getFormFieldSizeClassName } from '~/src/types/props-helpers'\nimport { toString } from '~/src/utils/string'\nimport { isArray, isEmpty, isNil } from '~/src/utils/type'\n\nimport { BaseButton } from '~/src/components/BaseButton'\nimport { useFormFieldProps } from '~/src/components/FormControl'\nimport { Icon } from '~/src/components/Icon'\nimport { useWindow } from '~/src/components/WindowProvider'\n\nimport {\n type SelectionRangeDirections,\n type TextFieldItemProps,\n type TextFieldProps,\n type TextFieldRef,\n} from './TextField.types'\n\nimport styles from './TextField.module.scss'\n\nexport const TEXT_INPUT_TEST_ID = 'bezier-text-input'\nexport const TEXT_INPUT_CLEAR_ICON_TEST_ID = 'bezier-text-input-clear-icon'\n\n/**\n * FIXME: This mapping constant was defined for UI consistency,\n * and it should be removed with size attribute\n */\nconst INPUT_LENGTH_BY_SIZE: Record<FormFieldSize, number> = {\n xs: 28,\n m: 36,\n l: 44,\n xl: 54,\n}\n\nfunction TextFieldLeftContent({\n children,\n wrapperStyle,\n wrapperClassName,\n withoutWrapper,\n}: {\n children: TextFieldProps['leftContent']\n wrapperStyle: TextFieldProps['leftWrapperStyle']\n wrapperClassName: TextFieldProps['leftWrapperClassName']\n withoutWrapper: TextFieldProps['withoutLeftContentWrapper']\n}) {\n if (isNil(children)) {\n return null\n }\n\n const Content = (() => {\n if ('icon' in children) {\n return (\n <Icon\n className={!isNil(children.onClick) ? styles.clickable : undefined}\n source={children.icon}\n size=\"s\"\n color={children.iconColor ?? 'txt-black-dark'}\n onClick={children.onClick}\n />\n )\n }\n\n return children\n })()\n\n if (withoutWrapper) {\n return Content\n }\n\n return (\n <div\n style={wrapperStyle}\n className={classNames(styles.LeftContentWrapper, wrapperClassName)}\n >\n {Content}\n </div>\n )\n}\n\nfunction TextFieldRightContent({\n children,\n wrapperStyle,\n wrapperClassName,\n withoutWrapper,\n}: {\n children: TextFieldProps['rightContent']\n wrapperStyle: TextFieldProps['rightWrapperStyle']\n wrapperClassName: TextFieldProps['rightWrapperClassName']\n withoutWrapper: TextFieldProps['withoutRightContentWrapper']\n}) {\n const renderRightItem = useCallback(\n (item: TextFieldItemProps, key?: string) => {\n if ('icon' in item) {\n const Comp = !isNil(item.onClick) ? BaseButton : 'div'\n\n return (\n <Comp\n key={key}\n className={styles.RightItemWrapper}\n onClick={item.onClick}\n >\n <Icon\n source={item.icon}\n size=\"xs\"\n color={item.iconColor ?? 'txt-black-dark'}\n />\n </Comp>\n )\n }\n\n return React.cloneElement(item, { key })\n },\n []\n )\n\n if (isNil(children) || isEmpty(children)) {\n return null\n }\n\n const contents = isArray(children)\n ? children.map((item) => renderRightItem(item, uuid()))\n : renderRightItem(children)\n\n if (withoutWrapper) {\n return <>{contents}</>\n }\n\n return (\n <div\n style={wrapperStyle}\n className={classNames(styles.RightContentWrapper, wrapperClassName)}\n >\n {contents}\n </div>\n )\n}\n\nexport const TextField = forwardRef<TextFieldRef, TextFieldProps>(\n function TextField(\n {\n type,\n size: sizeProps,\n autoFocus,\n autoComplete = 'off',\n variant = 'primary',\n allowClear = false,\n selectAllOnInit = false,\n selectAllOnFocus = false,\n leftContent,\n rightContent,\n withoutLeftContentWrapper = false,\n withoutRightContentWrapper = false,\n style,\n className,\n wrapperStyle,\n wrapperClassName,\n leftWrapperStyle,\n leftWrapperClassName,\n rightWrapperStyle,\n rightWrapperClassName,\n value,\n onFocus,\n onChange,\n onKeyDown,\n onKeyUp,\n ...rest\n },\n forwardedRef\n ) {\n const { window } = useWindow()\n\n const {\n disabled,\n readOnly,\n hasError,\n size: formFieldSize,\n ...ownProps\n } = useFormFieldProps(rest)\n\n const focusTimeout = useRef<ReturnType<Window['setTimeout']>>()\n const blurTimeout = useRef<ReturnType<Window['setTimeout']>>()\n\n const normalizedValue = isNil(value) ? undefined : toString(value)\n const activeInput = !disabled && !readOnly\n const activeClear = activeInput && allowClear && !isEmpty(normalizedValue)\n const size = sizeProps ?? formFieldSize ?? 'm'\n\n const inputRef = useRef<HTMLInputElement | null>(null)\n\n const focus = useCallback(() => {\n clearTimeout(focusTimeout.current)\n focusTimeout.current = window.setTimeout(() => {\n inputRef.current?.focus()\n }, 0)\n }, [window])\n\n const blur = useCallback(() => {\n clearTimeout(blurTimeout.current)\n blurTimeout.current = window.setTimeout(() => {\n inputRef.current?.blur()\n }, 0)\n }, [window])\n\n const setSelectionRange = useCallback(\n (start?: number, end?: number, direction?: SelectionRangeDirections) => {\n if (type && ['number', 'email', 'hidden'].includes(type)) {\n return\n }\n inputRef.current?.setSelectionRange(\n start || 0,\n end || 0,\n direction || 'none'\n )\n },\n [type]\n )\n\n const getSelectionRange = useCallback(\n (): [number, number] => [\n inputRef.current?.selectionStart || 0,\n inputRef.current?.selectionEnd || 0,\n ],\n []\n )\n\n const selectAll = useCallback(() => {\n focus()\n if (inputRef.current) {\n setSelectionRange(0, inputRef.current.value.length, 'backward')\n }\n }, [focus, setSelectionRange])\n\n const unselect = useCallback(() => {\n focus()\n if (inputRef.current) {\n const valueLen = inputRef.current.value.length\n setSelectionRange(valueLen, valueLen)\n }\n }, [focus, setSelectionRange])\n\n const getBoundingClientRect = useCallback((): DOMRect => {\n if (inputRef.current) {\n return inputRef.current.getBoundingClientRect()\n }\n return new DOMRect(undefined, undefined, 0, 0)\n }, [])\n\n const getDOMNode = useCallback(() => inputRef.current, [])\n\n const handle = useMemo(\n (): TextFieldRef => ({\n focus,\n blur,\n setSelectionRange,\n getSelectionRange,\n selectAll,\n unselect,\n getBoundingClientRect,\n getDOMNode,\n }),\n [\n focus,\n blur,\n setSelectionRange,\n getSelectionRange,\n selectAll,\n unselect,\n getBoundingClientRect,\n getDOMNode,\n ]\n )\n\n useImperativeHandle(forwardedRef, () => handle)\n\n useEffect(() => {\n if (autoFocus) {\n focus()\n }\n if (selectAllOnInit) {\n focus()\n selectAll()\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLInputElement>) => {\n if (!activeInput) {\n return\n }\n if (selectAllOnFocus) {\n selectAll()\n }\n if (onFocus) {\n onFocus(event)\n }\n },\n [selectAllOnFocus, selectAll, activeInput, onFocus]\n )\n\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n if (activeInput && onChange) {\n onChange(event)\n }\n },\n [activeInput, onChange]\n )\n\n const {\n handleKeyDown: handleKeyDownWrappedWithComposingLocker,\n handleKeyUp: handleKeyUpWrappedWithComposingLocker,\n } = useKeyboardActionLockerWhileComposing({\n keysToLock: COMMON_IME_CONTROL_KEYS,\n onKeyDown,\n onKeyUp,\n })\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (activeInput && handleKeyDownWrappedWithComposingLocker) {\n handleKeyDownWrappedWithComposingLocker(event)\n }\n },\n [activeInput, handleKeyDownWrappedWithComposingLocker]\n )\n\n const handleKeyUp = useCallback(\n (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (activeInput && handleKeyUpWrappedWithComposingLocker) {\n handleKeyUpWrappedWithComposingLocker(event)\n }\n },\n [activeInput, handleKeyUpWrappedWithComposingLocker]\n )\n\n const handleClear = useCallback(() => {\n const input = inputRef.current\n if (activeInput && input) {\n const setValue = Object?.getOwnPropertyDescriptor(\n HTMLInputElement.prototype,\n 'value'\n )?.set\n const event = new Event('input', { bubbles: true })\n setValue?.call(input, '')\n input.dispatchEvent(event)\n }\n }, [activeInput])\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n style={wrapperStyle}\n className={classNames(\n styles.TextFieldWrapper,\n styles[`variant-${variant}`],\n styles[`size-${size}`],\n getFormFieldSizeClassName(size),\n wrapperClassName\n )}\n data-testid={TEXT_INPUT_TEST_ID}\n onMouseDown={focus}\n >\n <TextFieldLeftContent\n wrapperStyle={leftWrapperStyle}\n wrapperClassName={leftWrapperClassName}\n withoutWrapper={withoutLeftContentWrapper}\n >\n {leftContent}\n </TextFieldLeftContent>\n\n <input\n style={style}\n className={classNames(styles.TextFieldInput, className)}\n ref={inputRef}\n type={type}\n value={normalizedValue}\n /**\n * Invalid size attribute\n * FIXME: https://github.com/channel-io/bezier-react/issues/1053\n */\n size={INPUT_LENGTH_BY_SIZE[size]}\n autoComplete={autoComplete}\n readOnly={readOnly}\n disabled={disabled}\n onFocus={handleFocus}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onKeyUp={handleKeyUp}\n {...ownProps}\n />\n\n {activeClear && (\n <BaseButton\n className={styles.CloseIconWrapper}\n tabIndex={0}\n onClick={handleClear}\n >\n <Icon\n className={styles.CloseIcon}\n data-testid={TEXT_INPUT_CLEAR_ICON_TEST_ID}\n source={CancelCircleFilledIcon}\n size=\"xs\"\n />\n </BaseButton>\n )}\n\n <TextFieldRightContent\n wrapperStyle={rightWrapperStyle}\n withoutWrapper={withoutRightContentWrapper}\n wrapperClassName={rightWrapperClassName}\n >\n {rightContent}\n </TextFieldRightContent>\n </div>\n )\n }\n)\n"],"names":["TEXT_INPUT_TEST_ID","TEXT_INPUT_CLEAR_ICON_TEST_ID","INPUT_LENGTH_BY_SIZE","xs","m","l","xl","TextFieldLeftContent","children","wrapperStyle","wrapperClassName","withoutWrapper","isNil","Content","_children$iconColor","React","createElement","Icon","className","onClick","styles","clickable","undefined","source","icon","size","color","iconColor","style","classNames","LeftContentWrapper","TextFieldRightContent","renderRightItem","useCallback","item","key","_item$iconColor","Comp","BaseButton","RightItemWrapper","cloneElement","isEmpty","contents","isArray","map","uuid","Fragment","RightContentWrapper","TextField","forwardRef","type","sizeProps","autoFocus","autoComplete","variant","allowClear","selectAllOnInit","selectAllOnFocus","leftContent","rightContent","withoutLeftContentWrapper","withoutRightContentWrapper","leftWrapperStyle","leftWrapperClassName","rightWrapperStyle","rightWrapperClassName","value","onFocus","onChange","onKeyDown","onKeyUp","rest","forwardedRef","_ref","window","useWindow","disabled","readOnly","hasError","formFieldSize","ownProps","useFormFieldProps","focusTimeout","useRef","blurTimeout","normalizedValue","toString","activeInput","activeClear","inputRef","focus","clearTimeout","current","setTimeout","_inputRef$current","blur","_inputRef$current2","setSelectionRange","start","end","direction","_inputRef$current3","includes","getSelectionRange","_inputRef$current4","_inputRef$current5","selectionStart","selectionEnd","selectAll","length","unselect","valueLen","getBoundingClientRect","DOMRect","getDOMNode","handle","useMemo","useImperativeHandle","useEffect","handleFocus","event","handleChange","handleKeyDown","handleKeyDownWrappedWithComposingLocker","handleKeyUp","handleKeyUpWrappedWithComposingLocker","useKeyboardActionLockerWhileComposing","keysToLock","COMMON_IME_CONTROL_KEYS","handleClear","input","_Object$getOwnPropert","setValue","Object","getOwnPropertyDescriptor","HTMLInputElement","prototype","set","Event","bubbles","call","dispatchEvent","TextFieldWrapper","getFormFieldSizeClassName","onMouseDown","assign","TextFieldInput","ref","CloseIconWrapper","tabIndex","CloseIcon","CancelCircleFilledIcon"],"mappings":"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"}
@@ -60,13 +60,13 @@ function Toast({
60
60
  } = WindowProvider.useWindow();
61
61
  const dismissTimer = React.useRef();
62
62
  const [isSlidingOut, setIsSlidingOut] = React.useState(false);
63
- const className = index.default(Toast_module.default.ToastElement, zIndex && propsHelpers.getZIndexClassName(zIndex), placement && Toast_module.default[`placement-${placement}`], isSlidingOut && Toast_module.default['slide-out']);
63
+ const className = index.default(Toast_module.default.ToastElement, propsHelpers.getZIndexClassName(zIndex), placement && Toast_module.default[`placement-${placement}`], isSlidingOut && Toast_module.default['slide-out']);
64
64
  const runSlideOutAnimation = React.useCallback(() => {
65
65
  setIsSlidingOut(true);
66
66
  }, []);
67
67
  const handleAnimationEnd = React.useCallback(event => {
68
68
  if (event.animationName === Toast_module.default['slide-out-left'] || event.animationName === Toast_module.default['slide-out-right']) {
69
- onDismiss?.();
69
+ onDismiss === null || onDismiss === void 0 || onDismiss();
70
70
  }
71
71
  }, [onDismiss]);
72
72
  React.useEffect(function startDismissTimer() {
@@ -89,9 +89,9 @@ function Toast({
89
89
  onAnimationEnd: handleAnimationEnd,
90
90
  "aria-hidden": aria.ariaAttr(isSlidingOut)
91
91
  }, /*#__PURE__*/React.createElement("div", {
92
- className: index.default(Toast_module.default.IconWrapper, Toast_module.default[`appearance-${appearanceProp ?? appearance}`])
92
+ className: index.default(Toast_module.default.IconWrapper, Toast_module.default[`appearance-${appearanceProp !== null && appearanceProp !== void 0 ? appearanceProp : appearance}`])
93
93
  }, /*#__PURE__*/React.createElement(Icon.Icon, {
94
- source: iconProp ?? icon,
94
+ source: iconProp !== null && iconProp !== void 0 ? iconProp : icon,
95
95
  size: "s"
96
96
  })), /*#__PURE__*/React.createElement("div", {
97
97
  className: Toast_module.default.Content
@@ -129,6 +129,7 @@ const DEFAULT_OFFSET = {
129
129
  function ToastProvider({
130
130
  autoDismissTimeout = 3000,
131
131
  container: givenContainer,
132
+ zIndex = 'toast',
132
133
  offset = DEFAULT_OFFSET,
133
134
  children = []
134
135
  }) {
@@ -140,29 +141,32 @@ function ToastProvider({
140
141
  rightToasts,
141
142
  dismiss
142
143
  } = toastContextValue;
143
- const container = givenContainer ?? rootElement;
144
- const createContainer = React.useCallback((placement, toasts) => /*#__PURE__*/React.createElement(ThemeProvider.InvertedThemeProvider, {
145
- key: placement
146
- }, /*#__PURE__*/React.createElement("div", {
147
- style: {
148
- bottom: style.px(offset?.bottom ?? DEFAULT_OFFSET.bottom),
149
- ...(placement === 'bottom-right' ? {
150
- right: style.px(offset?.right ?? DEFAULT_OFFSET.right)
151
- } : {
152
- left: style.px(offset?.left ?? DEFAULT_OFFSET.left)
153
- })
154
- },
155
- className: Toast_module.default.ToastContainer
156
- }, toasts.map(({
157
- id,
158
- onDismiss,
159
- ...rest
160
- }) => /*#__PURE__*/React.createElement(Toast, Object.assign({}, rest, {
161
- key: id,
162
- placement: placement,
163
- autoDismissTimeout: autoDismissTimeout,
164
- onDismiss: () => dismiss(id, onDismiss)
165
- }))))), [autoDismissTimeout, dismiss, offset]);
144
+ const container = givenContainer !== null && givenContainer !== void 0 ? givenContainer : rootElement;
145
+ const createContainer = React.useCallback((placement, toasts) => {
146
+ var _offset$bottom, _offset$right, _offset$left;
147
+ return /*#__PURE__*/React.createElement(ThemeProvider.InvertedThemeProvider, {
148
+ key: placement
149
+ }, /*#__PURE__*/React.createElement("div", {
150
+ style: {
151
+ bottom: style.px((_offset$bottom = offset === null || offset === void 0 ? void 0 : offset.bottom) !== null && _offset$bottom !== void 0 ? _offset$bottom : DEFAULT_OFFSET.bottom),
152
+ ...(placement === 'bottom-right' ? {
153
+ right: style.px((_offset$right = offset === null || offset === void 0 ? void 0 : offset.right) !== null && _offset$right !== void 0 ? _offset$right : DEFAULT_OFFSET.right)
154
+ } : {
155
+ left: style.px((_offset$left = offset === null || offset === void 0 ? void 0 : offset.left) !== null && _offset$left !== void 0 ? _offset$left : DEFAULT_OFFSET.left)
156
+ })
157
+ },
158
+ className: index.default(Toast_module.default.ToastContainer, propsHelpers.getZIndexClassName(zIndex))
159
+ }, toasts.map(({
160
+ id,
161
+ onDismiss,
162
+ ...rest
163
+ }) => /*#__PURE__*/React.createElement(Toast, Object.assign({}, rest, {
164
+ key: id,
165
+ placement: placement,
166
+ autoDismissTimeout: autoDismissTimeout,
167
+ onDismiss: () => dismiss(id, onDismiss)
168
+ })))));
169
+ }, [autoDismissTimeout, dismiss, offset, zIndex]);
166
170
  return /*#__PURE__*/React.createElement(ToastContextProvider, {
167
171
  value: toastContextValue
168
172
  }, children, isMounted && /*#__PURE__*/ReactDOM.createPortal([createContainer('bottom-left', leftToasts), createContainer('bottom-right', rightToasts)], container));
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.js","sources":["../../../../src/components/Toast/Toast.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport {\n CancelIcon,\n CheckCircleFilledIcon,\n ErrorTriangleFilledIcon,\n InfoFilledIcon,\n WifiIcon,\n WifiOffIcon,\n} from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport useIsMounted from '~/src/hooks/useIsMounted'\nimport { getZIndexClassName } from '~/src/types/props-helpers'\nimport { ariaAttr } from '~/src/utils/aria'\nimport { noop } from '~/src/utils/function'\nimport { createContext } from '~/src/utils/react'\nimport { px } from '~/src/utils/style'\nimport { isString } from '~/src/utils/type'\n\nimport { BaseButton } from '~/src/components/BaseButton'\nimport { Icon } from '~/src/components/Icon'\nimport { Text } from '~/src/components/Text'\nimport { InvertedThemeProvider } from '~/src/components/ThemeProvider'\nimport { useRootElement, useWindow } from '~/src/components/WindowProvider'\n\nimport {\n type ToastContextValue,\n type ToastPlacement,\n type ToastPreset,\n type ToastProps,\n type ToastProviderProps,\n type ToastType,\n} from './Toast.types'\nimport useToastProviderValues from './useToastContextValues'\n\nimport styles from './Toast.module.scss'\n\nfunction getToastPreset(preset: ToastPreset) {\n return {\n success: {\n icon: CheckCircleFilledIcon,\n appearance: 'success',\n },\n error: {\n icon: ErrorTriangleFilledIcon,\n appearance: 'error',\n },\n offline: {\n icon: WifiOffIcon,\n appearance: 'warning',\n },\n online: {\n icon: WifiIcon,\n appearance: 'success',\n },\n default: {\n icon: InfoFilledIcon,\n appearance: 'info',\n },\n }[preset]\n}\n\nexport function Toast({\n placement,\n appearance: appearanceProp,\n preset = 'default',\n icon: iconProp,\n content,\n zIndex = 'toast',\n autoDismiss = true,\n autoDismissTimeout,\n version = 0,\n onDismiss,\n}: ToastProps) {\n const { window } = useWindow()\n\n const dismissTimer = useRef<ReturnType<Window['setTimeout']>>()\n\n const [isSlidingOut, setIsSlidingOut] = useState(false)\n\n const className = classNames(\n styles.ToastElement,\n zIndex && getZIndexClassName(zIndex),\n placement && styles[`placement-${placement}`],\n isSlidingOut && styles['slide-out']\n )\n\n const runSlideOutAnimation = useCallback(() => {\n setIsSlidingOut(true)\n }, [])\n\n const handleAnimationEnd = useCallback<React.AnimationEventHandler>(\n (event) => {\n if (\n event.animationName === styles['slide-out-left'] ||\n event.animationName === styles['slide-out-right']\n ) {\n onDismiss?.()\n }\n },\n [onDismiss]\n )\n\n useEffect(\n function startDismissTimer() {\n if (autoDismiss) {\n dismissTimer.current = window.setTimeout(\n runSlideOutAnimation,\n autoDismissTimeout\n )\n }\n\n return function cleanup() {\n if (dismissTimer.current != null) {\n clearTimeout(dismissTimer.current)\n }\n }\n },\n [autoDismiss, autoDismissTimeout, runSlideOutAnimation, window, version]\n )\n\n const { appearance, icon } = getToastPreset(preset)\n\n return (\n <div\n role=\"status\"\n className={className}\n onAnimationEnd={handleAnimationEnd}\n aria-hidden={ariaAttr(isSlidingOut)}\n >\n <div\n className={classNames(\n styles.IconWrapper,\n styles[`appearance-${appearanceProp ?? appearance}`]\n )}\n >\n <Icon\n source={iconProp ?? icon}\n size=\"s\"\n />\n </div>\n\n <div className={styles.Content}>\n <Text\n className={styles.EllipsisableContent}\n typo=\"14\"\n color=\"txt-black-darkest\"\n truncated={5}\n >\n {isString(content)\n ? content.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 : content}\n </Text>\n </div>\n\n <BaseButton\n className={styles.Close}\n onClick={runSlideOutAnimation}\n >\n <Icon\n source={CancelIcon}\n size=\"xs\"\n />\n </BaseButton>\n </div>\n )\n}\n\nconst [ToastContextProvider, useToastContext] =\n createContext<ToastContextValue>({\n add: () => '',\n update: () => '',\n remove: noop,\n removeAll: noop,\n leftToasts: [],\n rightToasts: [],\n })\n\nconst DEFAULT_OFFSET = {\n left: 0,\n right: 0,\n bottom: 0,\n}\n\nexport function ToastProvider({\n autoDismissTimeout = 3000,\n container: givenContainer,\n offset = DEFAULT_OFFSET,\n children = [],\n}: ToastProviderProps) {\n const rootElement = useRootElement()\n const isMounted = useIsMounted()\n\n const toastContextValue = useToastProviderValues()\n const { leftToasts, rightToasts, dismiss } = toastContextValue\n const container = givenContainer ?? rootElement\n\n const createContainer = useCallback(\n (placement: ToastPlacement, toasts: ToastType[]) => (\n <InvertedThemeProvider key={placement}>\n <div\n style={{\n bottom: px(offset?.bottom ?? DEFAULT_OFFSET.bottom),\n ...(placement === 'bottom-right'\n ? { right: px(offset?.right ?? DEFAULT_OFFSET.right) }\n : { left: px(offset?.left ?? DEFAULT_OFFSET.left) }),\n }}\n className={styles.ToastContainer}\n >\n {toasts.map(({ id, onDismiss, ...rest }) => (\n <Toast\n {...rest}\n key={id}\n placement={placement}\n autoDismissTimeout={autoDismissTimeout}\n onDismiss={() => dismiss(id, onDismiss)}\n />\n ))}\n </div>\n </InvertedThemeProvider>\n ),\n [autoDismissTimeout, dismiss, offset]\n )\n\n return (\n <ToastContextProvider value={toastContextValue}>\n {children}\n {isMounted &&\n createPortal(\n [\n createContainer('bottom-left', leftToasts),\n createContainer('bottom-right', rightToasts),\n ],\n container\n )}\n </ToastContextProvider>\n )\n}\n\nexport function useToast() {\n const context = useToastContext()\n\n if (!context) {\n throw Error(\"'useToast' must be used within 'ToastProvider'\")\n }\n\n return {\n addToast: context.add,\n updateToast: context.update,\n removeToast: context.remove,\n removeAllToasts: context.removeAll,\n leftToasts: context.leftToasts,\n rightToasts: context.rightToasts,\n }\n}\n"],"names":["getToastPreset","preset","success","icon","CheckCircleFilledIcon","appearance","error","ErrorTriangleFilledIcon","offline","WifiOffIcon","online","WifiIcon","default","InfoFilledIcon","Toast","placement","appearanceProp","iconProp","content","zIndex","autoDismiss","autoDismissTimeout","version","onDismiss","window","useWindow","dismissTimer","useRef","isSlidingOut","setIsSlidingOut","useState","className","classNames","styles","ToastElement","getZIndexClassName","runSlideOutAnimation","useCallback","handleAnimationEnd","event","animationName","useEffect","startDismissTimer","current","setTimeout","cleanup","clearTimeout","React","createElement","role","onAnimationEnd","ariaAttr","IconWrapper","Icon","source","size","Content","Text","EllipsisableContent","typo","color","truncated","isString","split","map","str","index","Fragment","key","BaseButton","Close","onClick","CancelIcon","ToastContextProvider","useToastContext","createContext","add","update","remove","noop","removeAll","leftToasts","rightToasts","DEFAULT_OFFSET","left","right","bottom","ToastProvider","container","givenContainer","offset","children","rootElement","useRootElement","isMounted","useIsMounted","toastContextValue","useToastProviderValues","dismiss","createContainer","toasts","InvertedThemeProvider","style","px","ToastContainer","id","rest","Object","assign","value","createPortal","useToast","context","Error","addToast","updateToast","removeToast","removeAllToasts"],"mappings":"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"}
1
+ {"version":3,"file":"Toast.js","sources":["../../../../src/components/Toast/Toast.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport {\n CancelIcon,\n CheckCircleFilledIcon,\n ErrorTriangleFilledIcon,\n InfoFilledIcon,\n WifiIcon,\n WifiOffIcon,\n} from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport useIsMounted from '~/src/hooks/useIsMounted'\nimport { getZIndexClassName } from '~/src/types/props-helpers'\nimport { ariaAttr } from '~/src/utils/aria'\nimport { noop } from '~/src/utils/function'\nimport { createContext } from '~/src/utils/react'\nimport { px } from '~/src/utils/style'\nimport { isString } from '~/src/utils/type'\n\nimport { BaseButton } from '~/src/components/BaseButton'\nimport { Icon } from '~/src/components/Icon'\nimport { Text } from '~/src/components/Text'\nimport { InvertedThemeProvider } from '~/src/components/ThemeProvider'\nimport { useRootElement, useWindow } from '~/src/components/WindowProvider'\n\nimport {\n type ToastContextValue,\n type ToastPlacement,\n type ToastPreset,\n type ToastProps,\n type ToastProviderProps,\n type ToastType,\n} from './Toast.types'\nimport useToastProviderValues from './useToastContextValues'\n\nimport styles from './Toast.module.scss'\n\nfunction getToastPreset(preset: ToastPreset) {\n return {\n success: {\n icon: CheckCircleFilledIcon,\n appearance: 'success',\n },\n error: {\n icon: ErrorTriangleFilledIcon,\n appearance: 'error',\n },\n offline: {\n icon: WifiOffIcon,\n appearance: 'warning',\n },\n online: {\n icon: WifiIcon,\n appearance: 'success',\n },\n default: {\n icon: InfoFilledIcon,\n appearance: 'info',\n },\n }[preset]\n}\n\nexport function Toast({\n placement,\n appearance: appearanceProp,\n preset = 'default',\n icon: iconProp,\n content,\n zIndex = 'toast',\n autoDismiss = true,\n autoDismissTimeout,\n version = 0,\n onDismiss,\n}: ToastProps) {\n const { window } = useWindow()\n\n const dismissTimer = useRef<ReturnType<Window['setTimeout']>>()\n\n const [isSlidingOut, setIsSlidingOut] = useState(false)\n\n const className = classNames(\n styles.ToastElement,\n getZIndexClassName(zIndex),\n placement && styles[`placement-${placement}`],\n isSlidingOut && styles['slide-out']\n )\n\n const runSlideOutAnimation = useCallback(() => {\n setIsSlidingOut(true)\n }, [])\n\n const handleAnimationEnd = useCallback<React.AnimationEventHandler>(\n (event) => {\n if (\n event.animationName === styles['slide-out-left'] ||\n event.animationName === styles['slide-out-right']\n ) {\n onDismiss?.()\n }\n },\n [onDismiss]\n )\n\n useEffect(\n function startDismissTimer() {\n if (autoDismiss) {\n dismissTimer.current = window.setTimeout(\n runSlideOutAnimation,\n autoDismissTimeout\n )\n }\n\n return function cleanup() {\n if (dismissTimer.current != null) {\n clearTimeout(dismissTimer.current)\n }\n }\n },\n [autoDismiss, autoDismissTimeout, runSlideOutAnimation, window, version]\n )\n\n const { appearance, icon } = getToastPreset(preset)\n\n return (\n <div\n role=\"status\"\n className={className}\n onAnimationEnd={handleAnimationEnd}\n aria-hidden={ariaAttr(isSlidingOut)}\n >\n <div\n className={classNames(\n styles.IconWrapper,\n styles[`appearance-${appearanceProp ?? appearance}`]\n )}\n >\n <Icon\n source={iconProp ?? icon}\n size=\"s\"\n />\n </div>\n\n <div className={styles.Content}>\n <Text\n className={styles.EllipsisableContent}\n typo=\"14\"\n color=\"txt-black-darkest\"\n truncated={5}\n >\n {isString(content)\n ? content.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 : content}\n </Text>\n </div>\n\n <BaseButton\n className={styles.Close}\n onClick={runSlideOutAnimation}\n >\n <Icon\n source={CancelIcon}\n size=\"xs\"\n />\n </BaseButton>\n </div>\n )\n}\n\nconst [ToastContextProvider, useToastContext] =\n createContext<ToastContextValue>({\n add: () => '',\n update: () => '',\n remove: noop,\n removeAll: noop,\n leftToasts: [],\n rightToasts: [],\n })\n\nconst DEFAULT_OFFSET = {\n left: 0,\n right: 0,\n bottom: 0,\n}\n\nexport function ToastProvider({\n autoDismissTimeout = 3000,\n container: givenContainer,\n zIndex = 'toast',\n offset = DEFAULT_OFFSET,\n children = [],\n}: ToastProviderProps) {\n const rootElement = useRootElement()\n const isMounted = useIsMounted()\n\n const toastContextValue = useToastProviderValues()\n const { leftToasts, rightToasts, dismiss } = toastContextValue\n const container = givenContainer ?? rootElement\n\n const createContainer = useCallback(\n (placement: ToastPlacement, toasts: ToastType[]) => (\n <InvertedThemeProvider key={placement}>\n <div\n style={{\n bottom: px(offset?.bottom ?? DEFAULT_OFFSET.bottom),\n ...(placement === 'bottom-right'\n ? { right: px(offset?.right ?? DEFAULT_OFFSET.right) }\n : { left: px(offset?.left ?? DEFAULT_OFFSET.left) }),\n }}\n className={classNames(\n styles.ToastContainer,\n getZIndexClassName(zIndex)\n )}\n >\n {toasts.map(({ id, onDismiss, ...rest }) => (\n <Toast\n {...rest}\n key={id}\n placement={placement}\n autoDismissTimeout={autoDismissTimeout}\n onDismiss={() => dismiss(id, onDismiss)}\n />\n ))}\n </div>\n </InvertedThemeProvider>\n ),\n [autoDismissTimeout, dismiss, offset, zIndex]\n )\n\n return (\n <ToastContextProvider value={toastContextValue}>\n {children}\n {isMounted &&\n createPortal(\n [\n createContainer('bottom-left', leftToasts),\n createContainer('bottom-right', rightToasts),\n ],\n container\n )}\n </ToastContextProvider>\n )\n}\n\nexport function useToast() {\n const context = useToastContext()\n\n if (!context) {\n throw Error(\"'useToast' must be used within 'ToastProvider'\")\n }\n\n return {\n addToast: context.add,\n updateToast: context.update,\n removeToast: context.remove,\n removeAllToasts: context.removeAll,\n leftToasts: context.leftToasts,\n rightToasts: context.rightToasts,\n }\n}\n"],"names":["getToastPreset","preset","success","icon","CheckCircleFilledIcon","appearance","error","ErrorTriangleFilledIcon","offline","WifiOffIcon","online","WifiIcon","default","InfoFilledIcon","Toast","placement","appearanceProp","iconProp","content","zIndex","autoDismiss","autoDismissTimeout","version","onDismiss","window","useWindow","dismissTimer","useRef","isSlidingOut","setIsSlidingOut","useState","className","classNames","styles","ToastElement","getZIndexClassName","runSlideOutAnimation","useCallback","handleAnimationEnd","event","animationName","useEffect","startDismissTimer","current","setTimeout","cleanup","clearTimeout","React","createElement","role","onAnimationEnd","ariaAttr","IconWrapper","Icon","source","size","Content","Text","EllipsisableContent","typo","color","truncated","isString","split","map","str","index","Fragment","key","BaseButton","Close","onClick","CancelIcon","ToastContextProvider","useToastContext","createContext","add","update","remove","noop","removeAll","leftToasts","rightToasts","DEFAULT_OFFSET","left","right","bottom","ToastProvider","container","givenContainer","offset","children","rootElement","useRootElement","isMounted","useIsMounted","toastContextValue","useToastProviderValues","dismiss","createContainer","toasts","_offset$bottom","_offset$right","_offset$left","InvertedThemeProvider","style","px","ToastContainer","id","rest","Object","assign","value","createPortal","useToast","context","Error","addToast","updateToast","removeToast","removeAllToasts"],"mappings":"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"}