@channel.io/bezier-react 1.17.0 → 1.17.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 (91) hide show
  1. package/README.md +11 -2
  2. package/dist/cjs/components/Forms/Inputs/TextField/TextField.js +6 -3
  3. package/dist/cjs/components/Forms/Inputs/TextField/TextField.js.map +1 -1
  4. package/dist/cjs/components/TagBadge/Tag/Tag.js +7 -1
  5. package/dist/cjs/components/TagBadge/Tag/Tag.js.map +1 -1
  6. package/dist/cjs/node_modules/@radix-ui/react-dismissable-layer/dist/index.js +4 -1
  7. package/dist/cjs/node_modules/@radix-ui/react-dismissable-layer/dist/index.js.map +1 -1
  8. package/dist/cjs/node_modules/@radix-ui/react-focus-scope/dist/index.js +2 -5
  9. package/dist/cjs/node_modules/@radix-ui/react-focus-scope/dist/index.js.map +1 -1
  10. package/dist/cjs/node_modules/@radix-ui/react-popper/dist/index.js +10 -3
  11. package/dist/cjs/node_modules/@radix-ui/react-popper/dist/index.js.map +1 -1
  12. package/dist/esm/components/Forms/Inputs/TextField/TextField.mjs +6 -4
  13. package/dist/esm/components/Forms/Inputs/TextField/TextField.mjs.map +1 -1
  14. package/dist/esm/components/TagBadge/Tag/Tag.mjs +7 -2
  15. package/dist/esm/components/TagBadge/Tag/Tag.mjs.map +1 -1
  16. package/dist/esm/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs +4 -1
  17. package/dist/esm/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs.map +1 -1
  18. package/dist/esm/node_modules/@radix-ui/react-focus-scope/dist/index.mjs +2 -5
  19. package/dist/esm/node_modules/@radix-ui/react-focus-scope/dist/index.mjs.map +1 -1
  20. package/dist/esm/node_modules/@radix-ui/react-popper/dist/index.mjs +10 -3
  21. package/dist/esm/node_modules/@radix-ui/react-popper/dist/index.mjs.map +1 -1
  22. package/dist/types/components/Forms/Inputs/TextField/TextField.d.ts +1 -0
  23. package/dist/types/components/Forms/Inputs/TextField/TextField.d.ts.map +1 -1
  24. package/dist/types/components/TagBadge/Tag/Tag.d.ts +1 -0
  25. package/dist/types/components/TagBadge/Tag/Tag.d.ts.map +1 -1
  26. package/package.json +13 -13
  27. package/src/components/AlphaCenter/AlphaCenter.stories.tsx +13 -14
  28. package/src/components/AlphaSmoothCornersBox/AlphaSmoothCornersBox.stories.tsx +24 -21
  29. package/src/components/AlphaStack/AlphaStack.stories.tsx +24 -18
  30. package/src/components/Avatars/Avatar/Avatar.stories.tsx +33 -28
  31. package/src/components/Avatars/AvatarGroup/AvatarGroup.stories.tsx +18 -20
  32. package/src/components/Avatars/Avatars.stories.tsx +215 -238
  33. package/src/components/Avatars/CheckableAvatar/CheckableAvatar.stories.tsx +22 -23
  34. package/src/components/Banner/Banner.stories.tsx +147 -139
  35. package/src/components/Button/Button.stories.tsx +450 -395
  36. package/src/components/ButtonGroup/ButtonGroup.stories.tsx +14 -19
  37. package/src/components/Divider/Divider.stories.tsx +24 -20
  38. package/src/components/Emoji/Emoji.stories.tsx +25 -27
  39. package/src/components/Forms/Checkbox/Checkbox.stories.tsx +35 -33
  40. package/src/components/Forms/FormControl/FormControl.stories.tsx +38 -33
  41. package/src/components/Forms/FormGroup/FormGroup.stories.tsx +14 -16
  42. package/src/components/Forms/FormHelperText/FormHelperText.stories.tsx +20 -18
  43. package/src/components/Forms/FormLabel/FormLabel.stories.tsx +10 -16
  44. package/src/components/Forms/Inputs/Select/Select.stories.tsx +26 -22
  45. package/src/components/Forms/Inputs/TextArea/TextArea.stories.tsx +27 -26
  46. package/src/components/Forms/Inputs/TextField/TextField.stories.tsx +34 -34
  47. package/src/components/Forms/Inputs/TextField/TextField.test.tsx +60 -2
  48. package/src/components/Forms/Inputs/TextField/TextField.tsx +4 -3
  49. package/src/components/Forms/RadioGroup/RadioGroup.stories.tsx +16 -17
  50. package/src/components/Forms/SegmentedControl/SegmentedControl.stories.tsx +20 -25
  51. package/src/components/Forms/Slider/Slider.stories.tsx +16 -26
  52. package/src/components/Forms/Switch/Switch.stories.tsx +24 -20
  53. package/src/components/Help/Help.stories.tsx +8 -15
  54. package/src/components/Icon/Icon.stories.tsx +112 -115
  55. package/src/components/KeyValueListItem/KeyValueListItem.stories.tsx +25 -16
  56. package/src/components/LegacyRadio/LegacyRadio.stories.tsx +42 -50
  57. package/src/components/LegacySegmentedControl/LegacySegmentedControl.stories.tsx +30 -20
  58. package/src/components/LegacyTooltip/LegacyTooltip.stories.tsx +36 -40
  59. package/src/components/ListItem/ListItem.stories.tsx +57 -53
  60. package/src/components/ListMenuTitle/ListMenuTitle.stories.tsx +17 -14
  61. package/src/components/Modals/ConfirmModal/ConfirmModal.stories.tsx +23 -27
  62. package/src/components/Modals/Modal/Modal.stories.tsx +27 -33
  63. package/src/components/Navigator/NavGroup/NavGroup.stories.tsx +18 -16
  64. package/src/components/Navigator/NavItem/NavItem.stories.tsx +23 -17
  65. package/src/components/OutlineItem/OutlineItem.stories.tsx +15 -16
  66. package/src/components/Overlay/Overlay.stories.tsx +58 -49
  67. package/src/components/ProgressBar/ProgressBar.stories.tsx +201 -242
  68. package/src/components/SectionLabel/SectionLabel.stories.tsx +23 -21
  69. package/src/components/Spinner/Spinner.stories.tsx +18 -18
  70. package/src/components/Stack/Stack.stories.tsx +356 -410
  71. package/src/components/Status/Status.stories.tsx +14 -13
  72. package/src/components/Tabs/Tabs.stories.tsx +29 -33
  73. package/src/components/TagBadge/Badge/Badge.stories.tsx +18 -22
  74. package/src/components/TagBadge/Tag/Tag.stories.tsx +21 -21
  75. package/src/components/TagBadge/Tag/Tag.test.tsx +35 -0
  76. package/src/components/TagBadge/Tag/Tag.tsx +7 -2
  77. package/src/components/TagBadge/TagBadge.stories.tsx +102 -67
  78. package/src/components/TagBadge/TagBadgeCommon/TagBadgeText/TagBadgeText.stories.tsx +15 -17
  79. package/src/components/Text/Text.stories.tsx +47 -44
  80. package/src/components/Toast/Toast.stories.tsx +56 -62
  81. package/src/components/Tooltip/Tooltip.stories.tsx +29 -35
  82. package/src/foundation/Border/Border.stories.tsx +17 -16
  83. package/src/foundation/Colors/Palette/Palette.stories.tsx +7 -6
  84. package/src/foundation/Colors/Theme/Theme.stories.tsx +21 -15
  85. package/src/foundation/Elevation/Elevation.stories.tsx +22 -19
  86. package/src/foundation/Rounding/Rounding.stories.tsx +24 -21
  87. package/src/foundation/Spacing/Spacing.stories.tsx +9 -8
  88. package/src/foundation/Transition/Transition.stories.tsx +28 -30
  89. package/src/foundation/Typography.stories.tsx +45 -36
  90. package/src/providers/BezierProvider.stories.tsx +13 -15
  91. package/src/stories/ComponentConvention/Stories.stories.mdx +2 -2
package/README.md CHANGED
@@ -7,13 +7,22 @@ Bezier React is a React components library that implements Bezier design system.
7
7
  ### npm
8
8
 
9
9
  ```bash
10
- npm i @channel.io/bezier-react styled-components
10
+ npm i @channel.io/bezier-react styled-components@5
11
+ npm i -D @types/styled-components@5
11
12
  ```
12
13
 
13
14
  ### yarn
14
15
 
15
16
  ```bash
16
- yarn add @channel.io/bezier-react styled-components
17
+ yarn add @channel.io/bezier-react styled-components@5
18
+ yarn add -D @types/styled-components@5
19
+ ```
20
+
21
+ ### pnpm
22
+
23
+ ```bash
24
+ pnpm install @channel.io/bezier-react styled-components@5
25
+ pnpm install -D @types/styled-components@5
17
26
  ```
18
27
 
19
28
  **bezier-react has [styled-components](https://styled-components.com/) as peer dependency** so don't forget to install it.
@@ -18,6 +18,7 @@ var Icon = require('../../../Icon/Icon.js');
18
18
  var v4 = require('../../../../node_modules/uuid/dist/esm-browser/v4.js');
19
19
 
20
20
  const TEXT_INPUT_TEST_ID = 'bezier-react-text-input';
21
+ const TEXT_INPUT_CLEAR_ICON_TEST_ID = 'bezier-react-text-input-clear-icon';
21
22
  function TextFieldComponent({
22
23
  name,
23
24
  type,
@@ -70,7 +71,7 @@ function TextFieldComponent({
70
71
  const blurTimeout = React.useRef();
71
72
  const normalizedValue = React.useMemo(() => typeUtils.isNil(value) ? undefined : stringUtils.toString(value), [value]);
72
73
  const activeInput = !disabled && !readOnly;
73
- const activeClear = activeInput && allowClear;
74
+ const activeClear = activeInput && allowClear && !typeUtils.isEmpty(normalizedValue);
74
75
  const inputRef = React.useRef(null);
75
76
  const focus = React.useCallback(() => {
76
77
  clearTimeout(focusTimeout.current);
@@ -239,10 +240,11 @@ function TextFieldComponent({
239
240
  }, [rightContent, withoutRightContentWrapper, rightWrapperClassName, rightWrapperInterpolation, renderRightItem]);
240
241
  const ClearComponent = React.useMemo(() => /*#__PURE__*/React.createElement(TextField_styled.default.ClearIconWrapper, {
241
242
  onClick: handleClear
242
- }, normalizedValue && normalizedValue.length > 0 && (focused || hovered) && /*#__PURE__*/React.createElement(Icon.Icon, {
243
+ }, (focused || hovered) && /*#__PURE__*/React.createElement(Icon.Icon, {
244
+ testId: TEXT_INPUT_CLEAR_ICON_TEST_ID,
243
245
  source: bezierIcons.CancelCircleFilledIcon,
244
246
  size: Icon_types.IconSize.XS
245
- })), [focused, handleClear, hovered, normalizedValue]);
247
+ })), [focused, handleClear, hovered]);
246
248
  return /*#__PURE__*/React.createElement(TextField_styled.default.Wrapper, {
247
249
  className: wrapperClassName,
248
250
  variant: variant,
@@ -277,6 +279,7 @@ function TextFieldComponent({
277
279
  }
278
280
  var TextField = /*#__PURE__*/React.forwardRef(TextFieldComponent);
279
281
 
282
+ exports.TEXT_INPUT_CLEAR_ICON_TEST_ID = TEXT_INPUT_CLEAR_ICON_TEST_ID;
280
283
  exports.TEXT_INPUT_TEST_ID = TEXT_INPUT_TEST_ID;
281
284
  exports.default = TextField;
282
285
  //# sourceMappingURL=TextField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TextField.js","sources":["../../../../../../src/components/Forms/Inputs/TextField/TextField.tsx"],"sourcesContent":["import React, {\n type Ref,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport { CancelCircleFilledIcon } from '@channel.io/bezier-icons'\nimport { v4 as uuid } from 'uuid'\n\nimport { window } from '~/src/utils/domUtils'\nimport { toString } from '~/src/utils/stringUtils'\nimport {\n isArray,\n isEmpty,\n isNil,\n} from '~/src/utils/typeUtils'\n\nimport { COMMON_IME_CONTROL_KEYS } from '~/src/components/Forms/Inputs/constants/CommonImeControlKeys'\nimport useFormFieldProps from '~/src/components/Forms/useFormFieldProps'\nimport useKeyboardActionLockerWhileComposing from '~/src/components/Forms/useKeyboardActionLockerWhileComposing'\nimport {\n Icon,\n IconSize,\n} from '~/src/components/Icon'\n\nimport {\n type SelectionRangeDirections,\n type TextFieldItemProps,\n type TextFieldProps,\n type TextFieldRef,\n TextFieldSize,\n TextFieldType,\n TextFieldVariant,\n} from './TextField.types'\nimport {\n getProperTextFieldBgColor,\n getProperTextFieldBorderRadius,\n} from './TextFieldUtils'\n\nimport Styled from './TextField.styled'\n\nexport const TEXT_INPUT_TEST_ID = 'bezier-react-text-input'\n\nfunction TextFieldComponent({\n name,\n type,\n size = TextFieldSize.M,\n testId = TEXT_INPUT_TEST_ID,\n autoFocus,\n autoComplete = 'off',\n variant = TextFieldVariant.Primary,\n allowClear = false,\n selectAllOnInit = false,\n selectAllOnFocus = false,\n leftContent,\n rightContent,\n withoutLeftContentWrapper = false,\n withoutRightContentWrapper = false,\n inputClassName,\n inputInterpolation,\n wrapperClassName,\n wrapperInterpolation,\n leftWrapperClassName,\n leftWrapperInterpolation,\n rightWrapperClassName,\n rightWrapperInterpolation,\n value,\n onBlur,\n onFocus,\n onChange,\n onKeyDown,\n onKeyUp,\n ...rest\n}: TextFieldProps,\nforwardedRef: Ref<TextFieldRef>,\n) {\n const {\n disabled,\n readOnly,\n hasError,\n ...ownProps\n } = useFormFieldProps(rest)\n\n const [focused, setFocused] = useState(false)\n const [hovered, setHovered] = useState(false)\n\n const wrapperBgColorSemanticName = useMemo(() => (\n getProperTextFieldBgColor({\n variant,\n focused,\n hasError,\n readOnly,\n })\n ), [\n variant,\n focused,\n hasError,\n readOnly,\n ])\n\n const wrapperBorderRadius = useMemo(() => (\n getProperTextFieldBorderRadius({\n size,\n })\n ), [size])\n\n const focusTimeout = useRef<ReturnType<Window['setTimeout']>>()\n const blurTimeout = useRef<ReturnType<Window['setTimeout']>>()\n\n const normalizedValue = useMemo(() => (\n isNil(value) ? undefined : toString(value)\n ), [value])\n\n const activeInput = !disabled && !readOnly\n const activeClear = activeInput && allowClear\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 }, [])\n\n const blur = useCallback(() => {\n clearTimeout(blurTimeout.current)\n blurTimeout.current = window.setTimeout(() => {\n inputRef.current?.blur()\n }, 0)\n }, [])\n\n const setSelectionRange = useCallback((start?: number, end?: number, direction?: SelectionRangeDirections) => {\n if (type && [TextFieldType.Number, TextFieldType.Email, TextFieldType.Hidden].includes(type)) { return }\n inputRef.current?.setSelectionRange(start || 0, end || 0, direction || 'none')\n }, [type])\n\n const getSelectionRange = useCallback((): [number, number] =>\n [inputRef.current?.selectionStart || 0, inputRef.current?.selectionEnd || 0], [])\n\n const selectAll = useCallback(() => {\n focus()\n if (inputRef.current) {\n setSelectionRange(0, inputRef.current.value.length, 'backward')\n }\n }, [\n focus,\n setSelectionRange,\n ])\n\n const unselect = useCallback(() => {\n focus()\n if (inputRef.current) {\n const valueLen = inputRef.current.value.length\n setSelectionRange(valueLen, valueLen)\n }\n }, [\n focus,\n setSelectionRange,\n ])\n\n const getBoundingClientRect = useCallback((): DOMRect => {\n if (inputRef.current) { return inputRef.current.getBoundingClientRect() }\n return new DOMRect(undefined, undefined, 0, 0)\n }, [])\n\n const getDOMNode = useCallback(() => inputRef.current, [])\n\n const handle = useMemo((): TextFieldRef => ({\n focus,\n blur,\n setSelectionRange,\n getSelectionRange,\n selectAll,\n unselect,\n getBoundingClientRect,\n getDOMNode,\n }), [\n focus,\n blur,\n setSelectionRange,\n getSelectionRange,\n selectAll,\n unselect,\n getBoundingClientRect,\n getDOMNode,\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((event: React.FocusEvent<HTMLInputElement>) => {\n if (activeInput) {\n setFocused(true)\n if (selectAllOnFocus) { selectAll() }\n if (onFocus) { onFocus(event) }\n }\n }, [\n selectAllOnFocus,\n selectAll,\n activeInput,\n onFocus,\n ])\n\n const handleBlur = useCallback((event: React.FocusEvent<HTMLInputElement>) => {\n setFocused(false)\n if (onBlur) { onBlur(event) }\n }, [onBlur])\n\n const handleChange = useCallback((event: React.ChangeEvent<HTMLInputElement>) => {\n if (activeInput && onChange) {\n onChange(event)\n }\n }, [\n activeInput,\n 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((event: React.KeyboardEvent<HTMLInputElement>) => {\n if (activeInput && handleKeyDownWrappedWithComposingLocker) {\n handleKeyDownWrappedWithComposingLocker(event)\n }\n }, [\n activeInput,\n handleKeyDownWrappedWithComposingLocker,\n ])\n\n const handleKeyUp = useCallback((event: React.KeyboardEvent<HTMLInputElement>) => {\n if (activeInput && handleKeyUpWrappedWithComposingLocker) {\n handleKeyUpWrappedWithComposingLocker(event)\n }\n }, [\n activeInput,\n handleKeyUpWrappedWithComposingLocker,\n ])\n\n const handleClear = useCallback(() => {\n const input = inputRef.current\n if (activeInput && input) {\n const setValue = Object?.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value')?.set\n const event = new Event('input', { bubbles: true })\n setValue?.call(input, '')\n input.dispatchEvent(event)\n }\n }, [activeInput])\n\n const renderLeftItem = useCallback((item: TextFieldItemProps) => {\n if ('icon' in item) {\n return (\n <Styled.LeftIcon\n source={item.icon}\n size={IconSize.S}\n color={item.iconColor ?? 'txt-black-dark'}\n clickable={!isNil(item.onClick)}\n onClick={item.onClick}\n />\n )\n }\n\n return item\n }, [])\n\n const LeftComponent = useMemo(() => {\n if (isNil(leftContent)) {\n return null\n }\n\n const item = renderLeftItem(leftContent)\n\n if (withoutLeftContentWrapper) { return item }\n\n return (\n <Styled.LeftContentWrapper\n className={leftWrapperClassName}\n interpolation={leftWrapperInterpolation}\n >\n { item }\n </Styled.LeftContentWrapper>\n )\n }, [\n leftContent,\n withoutLeftContentWrapper,\n leftWrapperClassName,\n leftWrapperInterpolation,\n renderLeftItem,\n ])\n\n const renderRightItem = useCallback((item: TextFieldItemProps, key?: string) => {\n if ('icon' in item) {\n return (\n <Styled.RightItemWrapper\n key={key}\n clickable={!isNil(item.onClick)}\n onClick={item.onClick}\n >\n <Icon\n source={item.icon}\n size={IconSize.XS}\n color={item.iconColor ?? 'txt-black-dark'}\n />\n </Styled.RightItemWrapper>\n )\n }\n\n return React.cloneElement(\n item, { key },\n )\n }, [])\n\n const RightComponent = useMemo(() => {\n if (isNil(rightContent) || isEmpty(rightContent)) {\n return null\n }\n\n const items = isArray(rightContent)\n ? rightContent.map((item) => renderRightItem(item, uuid()))\n : renderRightItem(rightContent)\n\n if (withoutRightContentWrapper) { return items }\n\n return (\n <Styled.RightContentWrapper\n className={rightWrapperClassName}\n interpolation={rightWrapperInterpolation}\n >\n { items }\n </Styled.RightContentWrapper>\n )\n }, [\n rightContent,\n withoutRightContentWrapper,\n rightWrapperClassName,\n rightWrapperInterpolation,\n renderRightItem,\n ])\n\n const ClearComponent = useMemo(() => (\n <Styled.ClearIconWrapper\n onClick={handleClear}\n >\n {\n normalizedValue && normalizedValue.length > 0 && (focused || hovered) && (\n <Icon\n source={CancelCircleFilledIcon}\n size={IconSize.XS}\n />\n )\n }\n </Styled.ClearIconWrapper>\n ), [\n focused,\n handleClear,\n hovered,\n normalizedValue,\n ])\n\n return (\n <Styled.Wrapper\n className={wrapperClassName}\n variant={variant}\n size={size}\n bgColor={wrapperBgColorSemanticName}\n borderRadius={wrapperBorderRadius}\n hasError={hasError}\n disabled={disabled}\n focused={focused}\n interpolation={wrapperInterpolation}\n data-testid={testId}\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n onMouseDown={focus}\n >\n { LeftComponent }\n <Styled.Input\n type={type}\n className={inputClassName}\n interpolation={inputInterpolation}\n ref={inputRef}\n value={normalizedValue}\n name={name}\n size={size}\n autoComplete={autoComplete}\n readOnly={readOnly}\n disabled={disabled}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onKeyUp={handleKeyUp}\n {...ownProps}\n />\n { activeClear && ClearComponent }\n { RightComponent }\n </Styled.Wrapper>\n )\n}\n\nexport default forwardRef(TextFieldComponent)\n"],"names":["TEXT_INPUT_TEST_ID","TextFieldComponent","name","type","size","TextFieldSize","M","testId","autoFocus","autoComplete","variant","TextFieldVariant","Primary","allowClear","selectAllOnInit","selectAllOnFocus","leftContent","rightContent","withoutLeftContentWrapper","withoutRightContentWrapper","inputClassName","inputInterpolation","wrapperClassName","wrapperInterpolation","leftWrapperClassName","leftWrapperInterpolation","rightWrapperClassName","rightWrapperInterpolation","value","onBlur","onFocus","onChange","onKeyDown","onKeyUp","rest","forwardedRef","disabled","readOnly","hasError","ownProps","useFormFieldProps","focused","setFocused","useState","hovered","setHovered","wrapperBgColorSemanticName","useMemo","getProperTextFieldBgColor","wrapperBorderRadius","getProperTextFieldBorderRadius","focusTimeout","useRef","blurTimeout","normalizedValue","isNil","undefined","toString","activeInput","activeClear","inputRef","focus","useCallback","clearTimeout","current","window","setTimeout","blur","setSelectionRange","start","end","direction","TextFieldType","Number","Email","Hidden","includes","getSelectionRange","selectionStart","selectionEnd","selectAll","length","unselect","valueLen","getBoundingClientRect","DOMRect","getDOMNode","handle","useImperativeHandle","useEffect","handleFocus","event","handleBlur","handleChange","handleKeyDown","handleKeyDownWrappedWithComposingLocker","handleKeyUp","handleKeyUpWrappedWithComposingLocker","useKeyboardActionLockerWhileComposing","keysToLock","COMMON_IME_CONTROL_KEYS","handleClear","input","setValue","Object","getOwnPropertyDescriptor","HTMLInputElement","prototype","set","Event","bubbles","call","dispatchEvent","renderLeftItem","item","React","createElement","Styled","LeftIcon","source","icon","IconSize","S","color","iconColor","clickable","onClick","LeftComponent","LeftContentWrapper","className","interpolation","renderRightItem","key","RightItemWrapper","Icon","XS","cloneElement","RightComponent","isEmpty","items","isArray","map","uuid","RightContentWrapper","ClearComponent","ClearIconWrapper","CancelCircleFilledIcon","Wrapper","bgColor","borderRadius","onMouseEnter","onMouseLeave","onMouseDown","Input","assign","ref","forwardRef"],"mappings":"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"}
1
+ {"version":3,"file":"TextField.js","sources":["../../../../../../src/components/Forms/Inputs/TextField/TextField.tsx"],"sourcesContent":["import React, {\n type Ref,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport { CancelCircleFilledIcon } from '@channel.io/bezier-icons'\nimport { v4 as uuid } from 'uuid'\n\nimport { window } from '~/src/utils/domUtils'\nimport { toString } from '~/src/utils/stringUtils'\nimport {\n isArray,\n isEmpty,\n isNil,\n} from '~/src/utils/typeUtils'\n\nimport { COMMON_IME_CONTROL_KEYS } from '~/src/components/Forms/Inputs/constants/CommonImeControlKeys'\nimport useFormFieldProps from '~/src/components/Forms/useFormFieldProps'\nimport useKeyboardActionLockerWhileComposing from '~/src/components/Forms/useKeyboardActionLockerWhileComposing'\nimport {\n Icon,\n IconSize,\n} from '~/src/components/Icon'\n\nimport {\n type SelectionRangeDirections,\n type TextFieldItemProps,\n type TextFieldProps,\n type TextFieldRef,\n TextFieldSize,\n TextFieldType,\n TextFieldVariant,\n} from './TextField.types'\nimport {\n getProperTextFieldBgColor,\n getProperTextFieldBorderRadius,\n} from './TextFieldUtils'\n\nimport Styled from './TextField.styled'\n\nexport const TEXT_INPUT_TEST_ID = 'bezier-react-text-input'\nexport const TEXT_INPUT_CLEAR_ICON_TEST_ID = 'bezier-react-text-input-clear-icon'\n\nfunction TextFieldComponent({\n name,\n type,\n size = TextFieldSize.M,\n testId = TEXT_INPUT_TEST_ID,\n autoFocus,\n autoComplete = 'off',\n variant = TextFieldVariant.Primary,\n allowClear = false,\n selectAllOnInit = false,\n selectAllOnFocus = false,\n leftContent,\n rightContent,\n withoutLeftContentWrapper = false,\n withoutRightContentWrapper = false,\n inputClassName,\n inputInterpolation,\n wrapperClassName,\n wrapperInterpolation,\n leftWrapperClassName,\n leftWrapperInterpolation,\n rightWrapperClassName,\n rightWrapperInterpolation,\n value,\n onBlur,\n onFocus,\n onChange,\n onKeyDown,\n onKeyUp,\n ...rest\n}: TextFieldProps,\nforwardedRef: Ref<TextFieldRef>,\n) {\n const {\n disabled,\n readOnly,\n hasError,\n ...ownProps\n } = useFormFieldProps(rest)\n\n const [focused, setFocused] = useState(false)\n const [hovered, setHovered] = useState(false)\n\n const wrapperBgColorSemanticName = useMemo(() => (\n getProperTextFieldBgColor({\n variant,\n focused,\n hasError,\n readOnly,\n })\n ), [\n variant,\n focused,\n hasError,\n readOnly,\n ])\n\n const wrapperBorderRadius = useMemo(() => (\n getProperTextFieldBorderRadius({\n size,\n })\n ), [size])\n\n const focusTimeout = useRef<ReturnType<Window['setTimeout']>>()\n const blurTimeout = useRef<ReturnType<Window['setTimeout']>>()\n\n const normalizedValue = useMemo(() => (\n isNil(value) ? undefined : toString(value)\n ), [value])\n\n const activeInput = !disabled && !readOnly\n const activeClear = activeInput && allowClear && !isEmpty(normalizedValue)\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 }, [])\n\n const blur = useCallback(() => {\n clearTimeout(blurTimeout.current)\n blurTimeout.current = window.setTimeout(() => {\n inputRef.current?.blur()\n }, 0)\n }, [])\n\n const setSelectionRange = useCallback((start?: number, end?: number, direction?: SelectionRangeDirections) => {\n if (type && [TextFieldType.Number, TextFieldType.Email, TextFieldType.Hidden].includes(type)) { return }\n inputRef.current?.setSelectionRange(start || 0, end || 0, direction || 'none')\n }, [type])\n\n const getSelectionRange = useCallback((): [number, number] =>\n [inputRef.current?.selectionStart || 0, inputRef.current?.selectionEnd || 0], [])\n\n const selectAll = useCallback(() => {\n focus()\n if (inputRef.current) {\n setSelectionRange(0, inputRef.current.value.length, 'backward')\n }\n }, [\n focus,\n setSelectionRange,\n ])\n\n const unselect = useCallback(() => {\n focus()\n if (inputRef.current) {\n const valueLen = inputRef.current.value.length\n setSelectionRange(valueLen, valueLen)\n }\n }, [\n focus,\n setSelectionRange,\n ])\n\n const getBoundingClientRect = useCallback((): DOMRect => {\n if (inputRef.current) { return inputRef.current.getBoundingClientRect() }\n return new DOMRect(undefined, undefined, 0, 0)\n }, [])\n\n const getDOMNode = useCallback(() => inputRef.current, [])\n\n const handle = useMemo((): TextFieldRef => ({\n focus,\n blur,\n setSelectionRange,\n getSelectionRange,\n selectAll,\n unselect,\n getBoundingClientRect,\n getDOMNode,\n }), [\n focus,\n blur,\n setSelectionRange,\n getSelectionRange,\n selectAll,\n unselect,\n getBoundingClientRect,\n getDOMNode,\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((event: React.FocusEvent<HTMLInputElement>) => {\n if (activeInput) {\n setFocused(true)\n if (selectAllOnFocus) { selectAll() }\n if (onFocus) { onFocus(event) }\n }\n }, [\n selectAllOnFocus,\n selectAll,\n activeInput,\n onFocus,\n ])\n\n const handleBlur = useCallback((event: React.FocusEvent<HTMLInputElement>) => {\n setFocused(false)\n if (onBlur) { onBlur(event) }\n }, [onBlur])\n\n const handleChange = useCallback((event: React.ChangeEvent<HTMLInputElement>) => {\n if (activeInput && onChange) {\n onChange(event)\n }\n }, [\n activeInput,\n 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((event: React.KeyboardEvent<HTMLInputElement>) => {\n if (activeInput && handleKeyDownWrappedWithComposingLocker) {\n handleKeyDownWrappedWithComposingLocker(event)\n }\n }, [\n activeInput,\n handleKeyDownWrappedWithComposingLocker,\n ])\n\n const handleKeyUp = useCallback((event: React.KeyboardEvent<HTMLInputElement>) => {\n if (activeInput && handleKeyUpWrappedWithComposingLocker) {\n handleKeyUpWrappedWithComposingLocker(event)\n }\n }, [\n activeInput,\n handleKeyUpWrappedWithComposingLocker,\n ])\n\n const handleClear = useCallback(() => {\n const input = inputRef.current\n if (activeInput && input) {\n const setValue = Object?.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value')?.set\n const event = new Event('input', { bubbles: true })\n setValue?.call(input, '')\n input.dispatchEvent(event)\n }\n }, [activeInput])\n\n const renderLeftItem = useCallback((item: TextFieldItemProps) => {\n if ('icon' in item) {\n return (\n <Styled.LeftIcon\n source={item.icon}\n size={IconSize.S}\n color={item.iconColor ?? 'txt-black-dark'}\n clickable={!isNil(item.onClick)}\n onClick={item.onClick}\n />\n )\n }\n\n return item\n }, [])\n\n const LeftComponent = useMemo(() => {\n if (isNil(leftContent)) {\n return null\n }\n\n const item = renderLeftItem(leftContent)\n\n if (withoutLeftContentWrapper) { return item }\n\n return (\n <Styled.LeftContentWrapper\n className={leftWrapperClassName}\n interpolation={leftWrapperInterpolation}\n >\n { item }\n </Styled.LeftContentWrapper>\n )\n }, [\n leftContent,\n withoutLeftContentWrapper,\n leftWrapperClassName,\n leftWrapperInterpolation,\n renderLeftItem,\n ])\n\n const renderRightItem = useCallback((item: TextFieldItemProps, key?: string) => {\n if ('icon' in item) {\n return (\n <Styled.RightItemWrapper\n key={key}\n clickable={!isNil(item.onClick)}\n onClick={item.onClick}\n >\n <Icon\n source={item.icon}\n size={IconSize.XS}\n color={item.iconColor ?? 'txt-black-dark'}\n />\n </Styled.RightItemWrapper>\n )\n }\n\n return React.cloneElement(\n item, { key },\n )\n }, [])\n\n const RightComponent = useMemo(() => {\n if (isNil(rightContent) || isEmpty(rightContent)) {\n return null\n }\n\n const items = isArray(rightContent)\n ? rightContent.map((item) => renderRightItem(item, uuid()))\n : renderRightItem(rightContent)\n\n if (withoutRightContentWrapper) { return items }\n\n return (\n <Styled.RightContentWrapper\n className={rightWrapperClassName}\n interpolation={rightWrapperInterpolation}\n >\n { items }\n </Styled.RightContentWrapper>\n )\n }, [\n rightContent,\n withoutRightContentWrapper,\n rightWrapperClassName,\n rightWrapperInterpolation,\n renderRightItem,\n ])\n\n const ClearComponent = useMemo(() => (\n <Styled.ClearIconWrapper\n onClick={handleClear}\n >\n {\n (focused || hovered) && (\n <Icon\n testId={TEXT_INPUT_CLEAR_ICON_TEST_ID}\n source={CancelCircleFilledIcon}\n size={IconSize.XS}\n />\n )\n }\n </Styled.ClearIconWrapper>\n ), [\n focused,\n handleClear,\n hovered,\n ])\n\n return (\n <Styled.Wrapper\n className={wrapperClassName}\n variant={variant}\n size={size}\n bgColor={wrapperBgColorSemanticName}\n borderRadius={wrapperBorderRadius}\n hasError={hasError}\n disabled={disabled}\n focused={focused}\n interpolation={wrapperInterpolation}\n data-testid={testId}\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n onMouseDown={focus}\n >\n { LeftComponent }\n <Styled.Input\n type={type}\n className={inputClassName}\n interpolation={inputInterpolation}\n ref={inputRef}\n value={normalizedValue}\n name={name}\n size={size}\n autoComplete={autoComplete}\n readOnly={readOnly}\n disabled={disabled}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onKeyUp={handleKeyUp}\n {...ownProps}\n />\n { activeClear && ClearComponent }\n { RightComponent }\n </Styled.Wrapper>\n )\n}\n\nexport default forwardRef(TextFieldComponent)\n"],"names":["TEXT_INPUT_TEST_ID","TEXT_INPUT_CLEAR_ICON_TEST_ID","TextFieldComponent","name","type","size","TextFieldSize","M","testId","autoFocus","autoComplete","variant","TextFieldVariant","Primary","allowClear","selectAllOnInit","selectAllOnFocus","leftContent","rightContent","withoutLeftContentWrapper","withoutRightContentWrapper","inputClassName","inputInterpolation","wrapperClassName","wrapperInterpolation","leftWrapperClassName","leftWrapperInterpolation","rightWrapperClassName","rightWrapperInterpolation","value","onBlur","onFocus","onChange","onKeyDown","onKeyUp","rest","forwardedRef","disabled","readOnly","hasError","ownProps","useFormFieldProps","focused","setFocused","useState","hovered","setHovered","wrapperBgColorSemanticName","useMemo","getProperTextFieldBgColor","wrapperBorderRadius","getProperTextFieldBorderRadius","focusTimeout","useRef","blurTimeout","normalizedValue","isNil","undefined","toString","activeInput","activeClear","isEmpty","inputRef","focus","useCallback","clearTimeout","current","window","setTimeout","blur","setSelectionRange","start","end","direction","TextFieldType","Number","Email","Hidden","includes","getSelectionRange","selectionStart","selectionEnd","selectAll","length","unselect","valueLen","getBoundingClientRect","DOMRect","getDOMNode","handle","useImperativeHandle","useEffect","handleFocus","event","handleBlur","handleChange","handleKeyDown","handleKeyDownWrappedWithComposingLocker","handleKeyUp","handleKeyUpWrappedWithComposingLocker","useKeyboardActionLockerWhileComposing","keysToLock","COMMON_IME_CONTROL_KEYS","handleClear","input","setValue","Object","getOwnPropertyDescriptor","HTMLInputElement","prototype","set","Event","bubbles","call","dispatchEvent","renderLeftItem","item","React","createElement","Styled","LeftIcon","source","icon","IconSize","S","color","iconColor","clickable","onClick","LeftComponent","LeftContentWrapper","className","interpolation","renderRightItem","key","RightItemWrapper","Icon","XS","cloneElement","RightComponent","items","isArray","map","uuid","RightContentWrapper","ClearComponent","ClearIconWrapper","CancelCircleFilledIcon","Wrapper","bgColor","borderRadius","onMouseEnter","onMouseLeave","onMouseDown","Input","assign","ref","forwardRef"],"mappings":"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"}
@@ -13,6 +13,7 @@ var TagBadgeVariant = require('../TagBadgeCommon/constants/TagBadgeVariant.js');
13
13
 
14
14
  // TODO: 테스트 코드 작성
15
15
  const TAG_TEST_ID = 'bezier-react-tag';
16
+ const TAG_DELETE_TEST_ID = 'bezier-react-tag-delete-icon';
16
17
  const Tag = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function Tag({
17
18
  size = TagBadgeSize.default.M,
18
19
  variant = TagBadgeVariant.default.Default,
@@ -30,8 +31,12 @@ const Tag = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function Tag(
30
31
  const CloseIconComponent = React.useMemo(() => !typeUtils.isNil(onDelete) && /*#__PURE__*/React.createElement(Tag_styled.default.CloseIcon, {
31
32
  source: bezierIcons.CancelSmallIcon,
32
33
  size: TagBadgeStyle.TAG_BADGE_ICON_SIZE,
34
+ testId: TAG_DELETE_TEST_ID,
33
35
  color: "txt-black-darker",
34
- onClick: onDelete
36
+ onClick: e => {
37
+ e.stopPropagation();
38
+ onDelete(e);
39
+ }
35
40
  }), [onDelete]);
36
41
  return /*#__PURE__*/React.createElement(TagBadge_styled.default.Wrapper, Object.assign({}, props, {
37
42
  ref: forwardedRef,
@@ -47,6 +52,7 @@ const Tag = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function Tag(
47
52
  }, children), CloseIconComponent);
48
53
  }));
49
54
 
55
+ exports.TAG_DELETE_TEST_ID = TAG_DELETE_TEST_ID;
50
56
  exports.TAG_TEST_ID = TAG_TEST_ID;
51
57
  exports.Tag = Tag;
52
58
  //# sourceMappingURL=Tag.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tag.js","sources":["../../../../../src/components/TagBadge/Tag/Tag.tsx"],"sourcesContent":["import React, {\n forwardRef,\n memo,\n useMemo,\n} from 'react'\n\nimport { CancelSmallIcon } from '@channel.io/bezier-icons'\n\nimport {\n isEmpty,\n isNil,\n} from '~/src/utils/typeUtils'\n\nimport {\n TAG_BADGE_ICON_SIZE,\n TAG_TEXT_HORIZONTAL_PADDING,\n TagBadgeSize,\n TagBadgeStyled,\n TagBadgeText,\n TagBadgeVariant,\n getProperTagBadgeBgColor,\n getProperTagBadgePadding,\n getProperTagBadgeRounding,\n getProperTagBadgeTypo,\n} from '~/src/components/TagBadge/TagBadgeCommon'\n\nimport type TagProps from './Tag.types'\n\nimport Styled from './Tag.styled'\n\n// TODO: 테스트 코드 작성\nexport const TAG_TEST_ID = 'bezier-react-tag'\n\nexport const Tag = memo(forwardRef<HTMLDivElement, TagProps>(function Tag({\n size = TagBadgeSize.M,\n variant = TagBadgeVariant.Default,\n color: givenColor,\n children,\n // Handlers\n onDelete,\n className,\n interpolation,\n testId = TAG_TEST_ID,\n ...props\n}, forwardedRef) {\n const hasChildren = useMemo(() => !isEmpty(children), [children])\n\n const bgSemanticName = useMemo(() => (\n givenColor || getProperTagBadgeBgColor(variant)\n ), [\n givenColor,\n variant,\n ])\n\n const CloseIconComponent = useMemo(() => !isNil(onDelete) && (\n <Styled.CloseIcon\n source={CancelSmallIcon}\n size={TAG_BADGE_ICON_SIZE}\n color=\"txt-black-darker\"\n onClick={onDelete}\n />\n ), [onDelete])\n\n return (\n <TagBadgeStyled.Wrapper\n {...props}\n ref={forwardedRef}\n className={className}\n interpolation={interpolation}\n data-testid={testId}\n horizontalPadding={getProperTagBadgePadding(size)}\n rounding={getProperTagBadgeRounding(size)}\n bgColor={bgSemanticName}\n >\n { hasChildren && (\n <TagBadgeText\n horizontalPadding={TAG_TEXT_HORIZONTAL_PADDING}\n typo={getProperTagBadgeTypo(size)}\n >\n { children }\n </TagBadgeText>\n ) }\n\n { CloseIconComponent }\n </TagBadgeStyled.Wrapper>\n )\n}))\n"],"names":["TAG_TEST_ID","Tag","memo","forwardRef","size","TagBadgeSize","M","variant","TagBadgeVariant","Default","color","givenColor","children","onDelete","className","interpolation","testId","props","forwardedRef","hasChildren","useMemo","isEmpty","bgSemanticName","getProperTagBadgeBgColor","CloseIconComponent","isNil","React","createElement","Styled","CloseIcon","source","CancelSmallIcon","TAG_BADGE_ICON_SIZE","onClick","TagBadgeStyled","Wrapper","Object","assign","ref","horizontalPadding","getProperTagBadgePadding","rounding","getProperTagBadgeRounding","bgColor","TagBadgeText","TAG_TEXT_HORIZONTAL_PADDING","typo","getProperTagBadgeTypo"],"mappings":";;;;;;;;;;;;;AA8BA;AACO,MAAMA,WAAW,GAAG,mBAAkB;AAEtC,MAAMC,GAAG,gBAAGC,UAAI,eAACC,gBAAU,CAA2B,SAASF,GAAGA,CAAC;EACxEG,IAAI,GAAGC,oBAAY,CAACC,CAAC;EACrBC,OAAO,GAAGC,uBAAe,CAACC,OAAO;AACjCC,EAAAA,KAAK,EAAEC,UAAU;EACjBC,QAAQ;AACR;EACAC,QAAQ;EACRC,SAAS;EACTC,aAAa;AACbC,EAAAA,MAAM,GAAGhB,WAAW;EACpB,GAAGiB,KAAAA;AACL,CAAC,EAAEC,YAAY,EAAE;AACf,EAAA,MAAMC,WAAW,GAAGC,aAAO,CAAC,MAAM,CAACC,iBAAO,CAACT,QAAQ,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC,CAAA;AAEjE,EAAA,MAAMU,cAAc,GAAGF,aAAO,CAAC,MAC7BT,UAAU,IAAIY,8BAAwB,CAAChB,OAAO,CAC/C,EAAE,CACDI,UAAU,EACVJ,OAAO,CACR,CAAC,CAAA;AAEF,EAAA,MAAMiB,kBAAkB,GAAGJ,aAAO,CAAC,MAAM,CAACK,eAAK,CAACZ,QAAQ,CAAC,iBACvDa,KAAA,CAAAC,aAAA,CAACC,kBAAM,CAACC,SAAS,EAAA;AACfC,IAAAA,MAAM,EAAEC,2BAAgB;AACxB3B,IAAAA,IAAI,EAAE4B,iCAAoB;AAC1BtB,IAAAA,KAAK,EAAC,kBAAkB;AACxBuB,IAAAA,OAAO,EAAEpB,QAAAA;AAAS,GACnB,CACF,EAAE,CAACA,QAAQ,CAAC,CAAC,CAAA;AAEd,EAAA,oBACEa,KAAA,CAAAC,aAAA,CAACO,uBAAc,CAACC,OAAO,EAAAC,MAAA,CAAAC,MAAA,CAAA,EAAA,EACjBpB,KAAK,EAAA;AACTqB,IAAAA,GAAG,EAAEpB,YAAa;AAClBJ,IAAAA,SAAS,EAAEA,SAAU;AACrBC,IAAAA,aAAa,EAAEA,aAAc;AAC7B,IAAA,aAAA,EAAaC,MAAO;AACpBuB,IAAAA,iBAAiB,EAAEC,8BAAwB,CAACpC,IAAI,CAAE;AAClDqC,IAAAA,QAAQ,EAAEC,+BAAyB,CAACtC,IAAI,CAAE;AAC1CuC,IAAAA,OAAO,EAAErB,cAAAA;AAAe,GAAA,CAAA,EAEtBH,WAAW,iBACXO,KAAA,CAAAC,aAAA,CAACiB,oBAAY,EAAA;AACXL,IAAAA,iBAAiB,EAAEM,yCAA4B;IAC/CC,IAAI,EAAEC,2BAAqB,CAAC3C,IAAI,CAAA;AAAE,GAAA,EAE9BQ,QACQ,CACf,EAECY,kBACoB,CAAC,CAAA;AAE7B,CAAC,CAAC;;;;;"}
1
+ {"version":3,"file":"Tag.js","sources":["../../../../../src/components/TagBadge/Tag/Tag.tsx"],"sourcesContent":["import React, {\n forwardRef,\n memo,\n useMemo,\n} from 'react'\n\nimport { CancelSmallIcon } from '@channel.io/bezier-icons'\n\nimport {\n isEmpty,\n isNil,\n} from '~/src/utils/typeUtils'\n\nimport {\n TAG_BADGE_ICON_SIZE,\n TAG_TEXT_HORIZONTAL_PADDING,\n TagBadgeSize,\n TagBadgeStyled,\n TagBadgeText,\n TagBadgeVariant,\n getProperTagBadgeBgColor,\n getProperTagBadgePadding,\n getProperTagBadgeRounding,\n getProperTagBadgeTypo,\n} from '~/src/components/TagBadge/TagBadgeCommon'\n\nimport type TagProps from './Tag.types'\n\nimport Styled from './Tag.styled'\n\n// TODO: 테스트 코드 작성\nexport const TAG_TEST_ID = 'bezier-react-tag'\nexport const TAG_DELETE_TEST_ID = 'bezier-react-tag-delete-icon'\n\nexport const Tag = memo(forwardRef<HTMLDivElement, TagProps>(function Tag({\n size = TagBadgeSize.M,\n variant = TagBadgeVariant.Default,\n color: givenColor,\n children,\n // Handlers\n onDelete,\n className,\n interpolation,\n testId = TAG_TEST_ID,\n ...props\n}, forwardedRef) {\n const hasChildren = useMemo(() => !isEmpty(children), [children])\n\n const bgSemanticName = useMemo(() => (\n givenColor || getProperTagBadgeBgColor(variant)\n ), [\n givenColor,\n variant,\n ])\n\n const CloseIconComponent = useMemo(() => !isNil(onDelete) && (\n <Styled.CloseIcon\n source={CancelSmallIcon}\n size={TAG_BADGE_ICON_SIZE}\n testId={TAG_DELETE_TEST_ID}\n color=\"txt-black-darker\"\n onClick={(e) => {\n e.stopPropagation()\n onDelete(e)\n }}\n />\n ), [onDelete])\n\n return (\n <TagBadgeStyled.Wrapper\n {...props}\n ref={forwardedRef}\n className={className}\n interpolation={interpolation}\n data-testid={testId}\n horizontalPadding={getProperTagBadgePadding(size)}\n rounding={getProperTagBadgeRounding(size)}\n bgColor={bgSemanticName}\n >\n { hasChildren && (\n <TagBadgeText\n horizontalPadding={TAG_TEXT_HORIZONTAL_PADDING}\n typo={getProperTagBadgeTypo(size)}\n >\n { children }\n </TagBadgeText>\n ) }\n\n { CloseIconComponent }\n </TagBadgeStyled.Wrapper>\n )\n}))\n"],"names":["TAG_TEST_ID","TAG_DELETE_TEST_ID","Tag","memo","forwardRef","size","TagBadgeSize","M","variant","TagBadgeVariant","Default","color","givenColor","children","onDelete","className","interpolation","testId","props","forwardedRef","hasChildren","useMemo","isEmpty","bgSemanticName","getProperTagBadgeBgColor","CloseIconComponent","isNil","React","createElement","Styled","CloseIcon","source","CancelSmallIcon","TAG_BADGE_ICON_SIZE","onClick","e","stopPropagation","TagBadgeStyled","Wrapper","Object","assign","ref","horizontalPadding","getProperTagBadgePadding","rounding","getProperTagBadgeRounding","bgColor","TagBadgeText","TAG_TEXT_HORIZONTAL_PADDING","typo","getProperTagBadgeTypo"],"mappings":";;;;;;;;;;;;;AA8BA;AACO,MAAMA,WAAW,GAAG,mBAAkB;AACtC,MAAMC,kBAAkB,GAAG,+BAA8B;AAEzD,MAAMC,GAAG,gBAAGC,UAAI,eAACC,gBAAU,CAA2B,SAASF,GAAGA,CAAC;EACxEG,IAAI,GAAGC,oBAAY,CAACC,CAAC;EACrBC,OAAO,GAAGC,uBAAe,CAACC,OAAO;AACjCC,EAAAA,KAAK,EAAEC,UAAU;EACjBC,QAAQ;AACR;EACAC,QAAQ;EACRC,SAAS;EACTC,aAAa;AACbC,EAAAA,MAAM,GAAGjB,WAAW;EACpB,GAAGkB,KAAAA;AACL,CAAC,EAAEC,YAAY,EAAE;AACf,EAAA,MAAMC,WAAW,GAAGC,aAAO,CAAC,MAAM,CAACC,iBAAO,CAACT,QAAQ,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC,CAAA;AAEjE,EAAA,MAAMU,cAAc,GAAGF,aAAO,CAAC,MAC7BT,UAAU,IAAIY,8BAAwB,CAAChB,OAAO,CAC/C,EAAE,CACDI,UAAU,EACVJ,OAAO,CACR,CAAC,CAAA;AAEF,EAAA,MAAMiB,kBAAkB,GAAGJ,aAAO,CAAC,MAAM,CAACK,eAAK,CAACZ,QAAQ,CAAC,iBACvDa,KAAA,CAAAC,aAAA,CAACC,kBAAM,CAACC,SAAS,EAAA;AACfC,IAAAA,MAAM,EAAEC,2BAAgB;AACxB3B,IAAAA,IAAI,EAAE4B,iCAAoB;AAC1BhB,IAAAA,MAAM,EAAEhB,kBAAmB;AAC3BU,IAAAA,KAAK,EAAC,kBAAkB;IACxBuB,OAAO,EAAGC,CAAC,IAAK;MACdA,CAAC,CAACC,eAAe,EAAE,CAAA;MACnBtB,QAAQ,CAACqB,CAAC,CAAC,CAAA;AACb,KAAA;AAAE,GACH,CACF,EAAE,CAACrB,QAAQ,CAAC,CAAC,CAAA;AAEd,EAAA,oBACEa,KAAA,CAAAC,aAAA,CAACS,uBAAc,CAACC,OAAO,EAAAC,MAAA,CAAAC,MAAA,CAAA,EAAA,EACjBtB,KAAK,EAAA;AACTuB,IAAAA,GAAG,EAAEtB,YAAa;AAClBJ,IAAAA,SAAS,EAAEA,SAAU;AACrBC,IAAAA,aAAa,EAAEA,aAAc;AAC7B,IAAA,aAAA,EAAaC,MAAO;AACpByB,IAAAA,iBAAiB,EAAEC,8BAAwB,CAACtC,IAAI,CAAE;AAClDuC,IAAAA,QAAQ,EAAEC,+BAAyB,CAACxC,IAAI,CAAE;AAC1CyC,IAAAA,OAAO,EAAEvB,cAAAA;AAAe,GAAA,CAAA,EAEtBH,WAAW,iBACXO,KAAA,CAAAC,aAAA,CAACmB,oBAAY,EAAA;AACXL,IAAAA,iBAAiB,EAAEM,yCAA4B;IAC/CC,IAAI,EAAEC,2BAAqB,CAAC7C,IAAI,CAAA;AAAE,GAAA,EAEhCQ,QACU,CACf,EAECY,kBACoB,CAAC,CAAA;AAE7B,CAAC,CAAC;;;;;;"}
@@ -148,7 +148,10 @@ function $5cb92bef7577960e$var$usePointerDownOutside(onPointerDownOutside, owner
148
148
  once: true
149
149
  });
150
150
  } else handleAndDispatchPointerDownOutsideEvent();
151
- }
151
+ } else
152
+ // We need to remove the event listener in case the outside click has been canceled.
153
+ // See: https://github.com/radix-ui/primitives/issues/2171
154
+ ownerDocument.removeEventListener('click', handleClickRef.current);
152
155
  isPointerInsideReactTreeRef.current = false;
153
156
  };
154
157
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -65,11 +65,8 @@ const $d3863c46a17e8a28$export$20e40289641fbbb6 = /*#__PURE__*/React.forwardRef(
65
65
  // to keep focus trapped correctly.
66
66
  function handleMutations(mutations) {
67
67
  const focusedElement = document.activeElement;
68
- for (const mutation of mutations) {
69
- if (mutation.removedNodes.length > 0) {
70
- if (!(container1 !== null && container1 !== void 0 && container1.contains(focusedElement))) $d3863c46a17e8a28$var$focus(container1);
71
- }
72
- }
68
+ if (focusedElement !== document.body) return;
69
+ for (const mutation of mutations) if (mutation.removedNodes.length > 0) $d3863c46a17e8a28$var$focus(container1);
73
70
  }
74
71
  document.addEventListener('focusin', handleFocusIn);
75
72
  document.addEventListener('focusout', handleFocusOut);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -67,11 +67,12 @@ const $cf1ac5d9fe0e8206$export$bc4ae5855d3c4fc = /*#__PURE__*/React.forwardRef((
67
67
  align = 'center',
68
68
  alignOffset = 0,
69
69
  arrowPadding = 0,
70
+ avoidCollisions = true,
70
71
  collisionBoundary = [],
71
72
  collisionPadding: collisionPaddingProp = 0,
72
73
  sticky = 'partial',
73
74
  hideWhenDetached = false,
74
- avoidCollisions = true,
75
+ updatePositionStrategy = 'optimized',
75
76
  onPlaced: onPlaced,
76
77
  ...contentProps
77
78
  } = props;
@@ -108,7 +109,12 @@ const $cf1ac5d9fe0e8206$export$bc4ae5855d3c4fc = /*#__PURE__*/React.forwardRef((
108
109
  // default to `fixed` strategy so users don't have to pick and we also avoid focus scroll issues
109
110
  strategy: 'fixed',
110
111
  placement: desiredPlacement,
111
- whileElementsMounted: floatingUi_dom.autoUpdate,
112
+ whileElementsMounted: (...args) => {
113
+ const cleanup = floatingUi_dom.autoUpdate(...args, {
114
+ animationFrame: updatePositionStrategy === 'always'
115
+ });
116
+ return cleanup;
117
+ },
112
118
  elements: {
113
119
  reference: context.anchor
114
120
  },
@@ -147,7 +153,8 @@ const $cf1ac5d9fe0e8206$export$bc4ae5855d3c4fc = /*#__PURE__*/React.forwardRef((
147
153
  arrowWidth: arrowWidth,
148
154
  arrowHeight: arrowHeight
149
155
  }), hideWhenDetached && floatingUi_core.hide({
150
- strategy: 'referenceHidden'
156
+ strategy: 'referenceHidden',
157
+ ...detectOverflowOptions
151
158
  })]
152
159
  });
153
160
  const [placedSide, placedAlign] = $cf1ac5d9fe0e8206$var$getSideAndAlignFromPlacement(placement);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -14,6 +14,7 @@ import { Icon } from '../../../Icon/Icon.mjs';
14
14
  import v4 from '../../../../node_modules/uuid/dist/esm-browser/v4.mjs';
15
15
 
16
16
  const TEXT_INPUT_TEST_ID = 'bezier-react-text-input';
17
+ const TEXT_INPUT_CLEAR_ICON_TEST_ID = 'bezier-react-text-input-clear-icon';
17
18
  function TextFieldComponent({
18
19
  name,
19
20
  type,
@@ -66,7 +67,7 @@ function TextFieldComponent({
66
67
  const blurTimeout = useRef();
67
68
  const normalizedValue = useMemo(() => isNil(value) ? undefined : toString(value), [value]);
68
69
  const activeInput = !disabled && !readOnly;
69
- const activeClear = activeInput && allowClear;
70
+ const activeClear = activeInput && allowClear && !isEmpty(normalizedValue);
70
71
  const inputRef = useRef(null);
71
72
  const focus = useCallback(() => {
72
73
  clearTimeout(focusTimeout.current);
@@ -235,10 +236,11 @@ function TextFieldComponent({
235
236
  }, [rightContent, withoutRightContentWrapper, rightWrapperClassName, rightWrapperInterpolation, renderRightItem]);
236
237
  const ClearComponent = useMemo(() => /*#__PURE__*/React__default.createElement(Styled.ClearIconWrapper, {
237
238
  onClick: handleClear
238
- }, normalizedValue && normalizedValue.length > 0 && (focused || hovered) && /*#__PURE__*/React__default.createElement(Icon, {
239
+ }, (focused || hovered) && /*#__PURE__*/React__default.createElement(Icon, {
240
+ testId: TEXT_INPUT_CLEAR_ICON_TEST_ID,
239
241
  source: CancelCircleFilledIcon,
240
242
  size: IconSize.XS
241
- })), [focused, handleClear, hovered, normalizedValue]);
243
+ })), [focused, handleClear, hovered]);
242
244
  return /*#__PURE__*/React__default.createElement(Styled.Wrapper, {
243
245
  className: wrapperClassName,
244
246
  variant: variant,
@@ -273,5 +275,5 @@ function TextFieldComponent({
273
275
  }
274
276
  var TextField = /*#__PURE__*/forwardRef(TextFieldComponent);
275
277
 
276
- export { TEXT_INPUT_TEST_ID, TextField as default };
278
+ export { TEXT_INPUT_CLEAR_ICON_TEST_ID, TEXT_INPUT_TEST_ID, TextField as default };
277
279
  //# sourceMappingURL=TextField.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"TextField.mjs","sources":["../../../../../../src/components/Forms/Inputs/TextField/TextField.tsx"],"sourcesContent":["import React, {\n type Ref,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport { CancelCircleFilledIcon } from '@channel.io/bezier-icons'\nimport { v4 as uuid } from 'uuid'\n\nimport { window } from '~/src/utils/domUtils'\nimport { toString } from '~/src/utils/stringUtils'\nimport {\n isArray,\n isEmpty,\n isNil,\n} from '~/src/utils/typeUtils'\n\nimport { COMMON_IME_CONTROL_KEYS } from '~/src/components/Forms/Inputs/constants/CommonImeControlKeys'\nimport useFormFieldProps from '~/src/components/Forms/useFormFieldProps'\nimport useKeyboardActionLockerWhileComposing from '~/src/components/Forms/useKeyboardActionLockerWhileComposing'\nimport {\n Icon,\n IconSize,\n} from '~/src/components/Icon'\n\nimport {\n type SelectionRangeDirections,\n type TextFieldItemProps,\n type TextFieldProps,\n type TextFieldRef,\n TextFieldSize,\n TextFieldType,\n TextFieldVariant,\n} from './TextField.types'\nimport {\n getProperTextFieldBgColor,\n getProperTextFieldBorderRadius,\n} from './TextFieldUtils'\n\nimport Styled from './TextField.styled'\n\nexport const TEXT_INPUT_TEST_ID = 'bezier-react-text-input'\n\nfunction TextFieldComponent({\n name,\n type,\n size = TextFieldSize.M,\n testId = TEXT_INPUT_TEST_ID,\n autoFocus,\n autoComplete = 'off',\n variant = TextFieldVariant.Primary,\n allowClear = false,\n selectAllOnInit = false,\n selectAllOnFocus = false,\n leftContent,\n rightContent,\n withoutLeftContentWrapper = false,\n withoutRightContentWrapper = false,\n inputClassName,\n inputInterpolation,\n wrapperClassName,\n wrapperInterpolation,\n leftWrapperClassName,\n leftWrapperInterpolation,\n rightWrapperClassName,\n rightWrapperInterpolation,\n value,\n onBlur,\n onFocus,\n onChange,\n onKeyDown,\n onKeyUp,\n ...rest\n}: TextFieldProps,\nforwardedRef: Ref<TextFieldRef>,\n) {\n const {\n disabled,\n readOnly,\n hasError,\n ...ownProps\n } = useFormFieldProps(rest)\n\n const [focused, setFocused] = useState(false)\n const [hovered, setHovered] = useState(false)\n\n const wrapperBgColorSemanticName = useMemo(() => (\n getProperTextFieldBgColor({\n variant,\n focused,\n hasError,\n readOnly,\n })\n ), [\n variant,\n focused,\n hasError,\n readOnly,\n ])\n\n const wrapperBorderRadius = useMemo(() => (\n getProperTextFieldBorderRadius({\n size,\n })\n ), [size])\n\n const focusTimeout = useRef<ReturnType<Window['setTimeout']>>()\n const blurTimeout = useRef<ReturnType<Window['setTimeout']>>()\n\n const normalizedValue = useMemo(() => (\n isNil(value) ? undefined : toString(value)\n ), [value])\n\n const activeInput = !disabled && !readOnly\n const activeClear = activeInput && allowClear\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 }, [])\n\n const blur = useCallback(() => {\n clearTimeout(blurTimeout.current)\n blurTimeout.current = window.setTimeout(() => {\n inputRef.current?.blur()\n }, 0)\n }, [])\n\n const setSelectionRange = useCallback((start?: number, end?: number, direction?: SelectionRangeDirections) => {\n if (type && [TextFieldType.Number, TextFieldType.Email, TextFieldType.Hidden].includes(type)) { return }\n inputRef.current?.setSelectionRange(start || 0, end || 0, direction || 'none')\n }, [type])\n\n const getSelectionRange = useCallback((): [number, number] =>\n [inputRef.current?.selectionStart || 0, inputRef.current?.selectionEnd || 0], [])\n\n const selectAll = useCallback(() => {\n focus()\n if (inputRef.current) {\n setSelectionRange(0, inputRef.current.value.length, 'backward')\n }\n }, [\n focus,\n setSelectionRange,\n ])\n\n const unselect = useCallback(() => {\n focus()\n if (inputRef.current) {\n const valueLen = inputRef.current.value.length\n setSelectionRange(valueLen, valueLen)\n }\n }, [\n focus,\n setSelectionRange,\n ])\n\n const getBoundingClientRect = useCallback((): DOMRect => {\n if (inputRef.current) { return inputRef.current.getBoundingClientRect() }\n return new DOMRect(undefined, undefined, 0, 0)\n }, [])\n\n const getDOMNode = useCallback(() => inputRef.current, [])\n\n const handle = useMemo((): TextFieldRef => ({\n focus,\n blur,\n setSelectionRange,\n getSelectionRange,\n selectAll,\n unselect,\n getBoundingClientRect,\n getDOMNode,\n }), [\n focus,\n blur,\n setSelectionRange,\n getSelectionRange,\n selectAll,\n unselect,\n getBoundingClientRect,\n getDOMNode,\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((event: React.FocusEvent<HTMLInputElement>) => {\n if (activeInput) {\n setFocused(true)\n if (selectAllOnFocus) { selectAll() }\n if (onFocus) { onFocus(event) }\n }\n }, [\n selectAllOnFocus,\n selectAll,\n activeInput,\n onFocus,\n ])\n\n const handleBlur = useCallback((event: React.FocusEvent<HTMLInputElement>) => {\n setFocused(false)\n if (onBlur) { onBlur(event) }\n }, [onBlur])\n\n const handleChange = useCallback((event: React.ChangeEvent<HTMLInputElement>) => {\n if (activeInput && onChange) {\n onChange(event)\n }\n }, [\n activeInput,\n 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((event: React.KeyboardEvent<HTMLInputElement>) => {\n if (activeInput && handleKeyDownWrappedWithComposingLocker) {\n handleKeyDownWrappedWithComposingLocker(event)\n }\n }, [\n activeInput,\n handleKeyDownWrappedWithComposingLocker,\n ])\n\n const handleKeyUp = useCallback((event: React.KeyboardEvent<HTMLInputElement>) => {\n if (activeInput && handleKeyUpWrappedWithComposingLocker) {\n handleKeyUpWrappedWithComposingLocker(event)\n }\n }, [\n activeInput,\n handleKeyUpWrappedWithComposingLocker,\n ])\n\n const handleClear = useCallback(() => {\n const input = inputRef.current\n if (activeInput && input) {\n const setValue = Object?.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value')?.set\n const event = new Event('input', { bubbles: true })\n setValue?.call(input, '')\n input.dispatchEvent(event)\n }\n }, [activeInput])\n\n const renderLeftItem = useCallback((item: TextFieldItemProps) => {\n if ('icon' in item) {\n return (\n <Styled.LeftIcon\n source={item.icon}\n size={IconSize.S}\n color={item.iconColor ?? 'txt-black-dark'}\n clickable={!isNil(item.onClick)}\n onClick={item.onClick}\n />\n )\n }\n\n return item\n }, [])\n\n const LeftComponent = useMemo(() => {\n if (isNil(leftContent)) {\n return null\n }\n\n const item = renderLeftItem(leftContent)\n\n if (withoutLeftContentWrapper) { return item }\n\n return (\n <Styled.LeftContentWrapper\n className={leftWrapperClassName}\n interpolation={leftWrapperInterpolation}\n >\n { item }\n </Styled.LeftContentWrapper>\n )\n }, [\n leftContent,\n withoutLeftContentWrapper,\n leftWrapperClassName,\n leftWrapperInterpolation,\n renderLeftItem,\n ])\n\n const renderRightItem = useCallback((item: TextFieldItemProps, key?: string) => {\n if ('icon' in item) {\n return (\n <Styled.RightItemWrapper\n key={key}\n clickable={!isNil(item.onClick)}\n onClick={item.onClick}\n >\n <Icon\n source={item.icon}\n size={IconSize.XS}\n color={item.iconColor ?? 'txt-black-dark'}\n />\n </Styled.RightItemWrapper>\n )\n }\n\n return React.cloneElement(\n item, { key },\n )\n }, [])\n\n const RightComponent = useMemo(() => {\n if (isNil(rightContent) || isEmpty(rightContent)) {\n return null\n }\n\n const items = isArray(rightContent)\n ? rightContent.map((item) => renderRightItem(item, uuid()))\n : renderRightItem(rightContent)\n\n if (withoutRightContentWrapper) { return items }\n\n return (\n <Styled.RightContentWrapper\n className={rightWrapperClassName}\n interpolation={rightWrapperInterpolation}\n >\n { items }\n </Styled.RightContentWrapper>\n )\n }, [\n rightContent,\n withoutRightContentWrapper,\n rightWrapperClassName,\n rightWrapperInterpolation,\n renderRightItem,\n ])\n\n const ClearComponent = useMemo(() => (\n <Styled.ClearIconWrapper\n onClick={handleClear}\n >\n {\n normalizedValue && normalizedValue.length > 0 && (focused || hovered) && (\n <Icon\n source={CancelCircleFilledIcon}\n size={IconSize.XS}\n />\n )\n }\n </Styled.ClearIconWrapper>\n ), [\n focused,\n handleClear,\n hovered,\n normalizedValue,\n ])\n\n return (\n <Styled.Wrapper\n className={wrapperClassName}\n variant={variant}\n size={size}\n bgColor={wrapperBgColorSemanticName}\n borderRadius={wrapperBorderRadius}\n hasError={hasError}\n disabled={disabled}\n focused={focused}\n interpolation={wrapperInterpolation}\n data-testid={testId}\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n onMouseDown={focus}\n >\n { LeftComponent }\n <Styled.Input\n type={type}\n className={inputClassName}\n interpolation={inputInterpolation}\n ref={inputRef}\n value={normalizedValue}\n name={name}\n size={size}\n autoComplete={autoComplete}\n readOnly={readOnly}\n disabled={disabled}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onKeyUp={handleKeyUp}\n {...ownProps}\n />\n { activeClear && ClearComponent }\n { RightComponent }\n </Styled.Wrapper>\n )\n}\n\nexport default forwardRef(TextFieldComponent)\n"],"names":["TEXT_INPUT_TEST_ID","TextFieldComponent","name","type","size","TextFieldSize","M","testId","autoFocus","autoComplete","variant","TextFieldVariant","Primary","allowClear","selectAllOnInit","selectAllOnFocus","leftContent","rightContent","withoutLeftContentWrapper","withoutRightContentWrapper","inputClassName","inputInterpolation","wrapperClassName","wrapperInterpolation","leftWrapperClassName","leftWrapperInterpolation","rightWrapperClassName","rightWrapperInterpolation","value","onBlur","onFocus","onChange","onKeyDown","onKeyUp","rest","forwardedRef","disabled","readOnly","hasError","ownProps","useFormFieldProps","focused","setFocused","useState","hovered","setHovered","wrapperBgColorSemanticName","useMemo","getProperTextFieldBgColor","wrapperBorderRadius","getProperTextFieldBorderRadius","focusTimeout","useRef","blurTimeout","normalizedValue","isNil","undefined","toString","activeInput","activeClear","inputRef","focus","useCallback","clearTimeout","current","window","setTimeout","blur","setSelectionRange","start","end","direction","TextFieldType","Number","Email","Hidden","includes","getSelectionRange","selectionStart","selectionEnd","selectAll","length","unselect","valueLen","getBoundingClientRect","DOMRect","getDOMNode","handle","useImperativeHandle","useEffect","handleFocus","event","handleBlur","handleChange","handleKeyDown","handleKeyDownWrappedWithComposingLocker","handleKeyUp","handleKeyUpWrappedWithComposingLocker","useKeyboardActionLockerWhileComposing","keysToLock","COMMON_IME_CONTROL_KEYS","handleClear","input","setValue","Object","getOwnPropertyDescriptor","HTMLInputElement","prototype","set","Event","bubbles","call","dispatchEvent","renderLeftItem","item","React","createElement","Styled","LeftIcon","source","icon","IconSize","S","color","iconColor","clickable","onClick","LeftComponent","LeftContentWrapper","className","interpolation","renderRightItem","key","RightItemWrapper","Icon","XS","cloneElement","RightComponent","isEmpty","items","isArray","map","uuid","RightContentWrapper","ClearComponent","ClearIconWrapper","CancelCircleFilledIcon","Wrapper","bgColor","borderRadius","onMouseEnter","onMouseLeave","onMouseDown","Input","assign","ref","forwardRef"],"mappings":";;;;;;;;;;;;;;;AA8CO,MAAMA,kBAAkB,GAAG,0BAAyB;AAE3D,SAASC,kBAAkBA,CAAC;EAC1BC,IAAI;EACJC,IAAI;EACJC,IAAI,GAAGC,aAAa,CAACC,CAAC;AACtBC,EAAAA,MAAM,GAAGP,kBAAkB;EAC3BQ,SAAS;AACTC,EAAAA,YAAY,GAAG,KAAK;EACpBC,OAAO,GAAGC,gBAAgB,CAACC,OAAO;AAClCC,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;EAClCC,cAAc;EACdC,kBAAkB;EAClBC,gBAAgB;EAChBC,oBAAoB;EACpBC,oBAAoB;EACpBC,wBAAwB;EACxBC,qBAAqB;EACrBC,yBAAyB;EACzBC,KAAK;EACLC,MAAM;EACNC,OAAO;EACPC,QAAQ;EACRC,SAAS;EACTC,OAAO;EACP,GAAGC,IAAAA;AACW,CAAC,EACjBC,YAA+B,EAC7B;EACA,MAAM;IACJC,QAAQ;IACRC,QAAQ;IACRC,QAAQ;IACR,GAAGC,QAAAA;AACL,GAAC,GAAGC,iBAAiB,CAACN,IAAI,CAAC,CAAA;EAE3B,MAAM,CAACO,OAAO,EAAEC,UAAU,CAAC,GAAGC,QAAQ,CAAC,KAAK,CAAC,CAAA;EAC7C,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAGF,QAAQ,CAAC,KAAK,CAAC,CAAA;AAE7C,EAAA,MAAMG,0BAA0B,GAAGC,OAAO,CAAC,MACzCC,yBAAyB,CAAC;IACxBtC,OAAO;IACP+B,OAAO;IACPH,QAAQ;AACRD,IAAAA,QAAAA;GACD,CACF,EAAE,CACD3B,OAAO,EACP+B,OAAO,EACPH,QAAQ,EACRD,QAAQ,CACT,CAAC,CAAA;AAEF,EAAA,MAAMY,mBAAmB,GAAGF,OAAO,CAAC,MAClCG,8BAA8B,CAAC;AAC7B9C,IAAAA,IAAAA;AACF,GAAC,CACF,EAAE,CAACA,IAAI,CAAC,CAAC,CAAA;AAEV,EAAA,MAAM+C,YAAY,GAAGC,MAAM,EAAoC,CAAA;AAC/D,EAAA,MAAMC,WAAW,GAAGD,MAAM,EAAoC,CAAA;EAE9D,MAAME,eAAe,GAAGP,OAAO,CAAC,MAC9BQ,KAAK,CAAC3B,KAAK,CAAC,GAAG4B,SAAS,GAAGC,QAAQ,CAAC7B,KAAK,CAC1C,EAAE,CAACA,KAAK,CAAC,CAAC,CAAA;AAEX,EAAA,MAAM8B,WAAW,GAAG,CAACtB,QAAQ,IAAI,CAACC,QAAQ,CAAA;AAC1C,EAAA,MAAMsB,WAAW,GAAGD,WAAW,IAAI7C,UAAU,CAAA;AAE7C,EAAA,MAAM+C,QAAQ,GAAGR,MAAM,CAA0B,IAAI,CAAC,CAAA;AAEtD,EAAA,MAAMS,KAAK,GAAGC,WAAW,CAAC,MAAM;AAC9BC,IAAAA,YAAY,CAACZ,YAAY,CAACa,OAAO,CAAC,CAAA;AAClCb,IAAAA,YAAY,CAACa,OAAO,GAAGC,MAAM,CAACC,UAAU,CAAC,MAAM;AAC7CN,MAAAA,QAAQ,CAACI,OAAO,EAAEH,KAAK,EAAE,CAAA;KAC1B,EAAE,CAAC,CAAC,CAAA;GACN,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAMM,IAAI,GAAGL,WAAW,CAAC,MAAM;AAC7BC,IAAAA,YAAY,CAACV,WAAW,CAACW,OAAO,CAAC,CAAA;AACjCX,IAAAA,WAAW,CAACW,OAAO,GAAGC,MAAM,CAACC,UAAU,CAAC,MAAM;AAC5CN,MAAAA,QAAQ,CAACI,OAAO,EAAEG,IAAI,EAAE,CAAA;KACzB,EAAE,CAAC,CAAC,CAAA;GACN,EAAE,EAAE,CAAC,CAAA;EAEN,MAAMC,iBAAiB,GAAGN,WAAW,CAAC,CAACO,KAAc,EAAEC,GAAY,EAAEC,SAAoC,KAAK;IAC5G,IAAIpE,IAAI,IAAI,CAACqE,aAAa,CAACC,MAAM,EAAED,aAAa,CAACE,KAAK,EAAEF,aAAa,CAACG,MAAM,CAAC,CAACC,QAAQ,CAACzE,IAAI,CAAC,EAAE;AAAE,MAAA,OAAA;AAAO,KAAA;AACvGyD,IAAAA,QAAQ,CAACI,OAAO,EAAEI,iBAAiB,CAACC,KAAK,IAAI,CAAC,EAAEC,GAAG,IAAI,CAAC,EAAEC,SAAS,IAAI,MAAM,CAAC,CAAA;AAChF,GAAC,EAAE,CAACpE,IAAI,CAAC,CAAC,CAAA;EAEV,MAAM0E,iBAAiB,GAAGf,WAAW,CAAC,MACpC,CAACF,QAAQ,CAACI,OAAO,EAAEc,cAAc,IAAI,CAAC,EAAElB,QAAQ,CAACI,OAAO,EAAEe,YAAY,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;AAEnF,EAAA,MAAMC,SAAS,GAAGlB,WAAW,CAAC,MAAM;AAClCD,IAAAA,KAAK,EAAE,CAAA;IACP,IAAID,QAAQ,CAACI,OAAO,EAAE;AACpBI,MAAAA,iBAAiB,CAAC,CAAC,EAAER,QAAQ,CAACI,OAAO,CAACpC,KAAK,CAACqD,MAAM,EAAE,UAAU,CAAC,CAAA;AACjE,KAAA;AACF,GAAC,EAAE,CACDpB,KAAK,EACLO,iBAAiB,CAClB,CAAC,CAAA;AAEF,EAAA,MAAMc,QAAQ,GAAGpB,WAAW,CAAC,MAAM;AACjCD,IAAAA,KAAK,EAAE,CAAA;IACP,IAAID,QAAQ,CAACI,OAAO,EAAE;MACpB,MAAMmB,QAAQ,GAAGvB,QAAQ,CAACI,OAAO,CAACpC,KAAK,CAACqD,MAAM,CAAA;AAC9Cb,MAAAA,iBAAiB,CAACe,QAAQ,EAAEA,QAAQ,CAAC,CAAA;AACvC,KAAA;AACF,GAAC,EAAE,CACDtB,KAAK,EACLO,iBAAiB,CAClB,CAAC,CAAA;AAEF,EAAA,MAAMgB,qBAAqB,GAAGtB,WAAW,CAAC,MAAe;IACvD,IAAIF,QAAQ,CAACI,OAAO,EAAE;AAAE,MAAA,OAAOJ,QAAQ,CAACI,OAAO,CAACoB,qBAAqB,EAAE,CAAA;AAAC,KAAA;IACxE,OAAO,IAAIC,OAAO,CAAC7B,SAAS,EAAEA,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;GAC/C,EAAE,EAAE,CAAC,CAAA;EAEN,MAAM8B,UAAU,GAAGxB,WAAW,CAAC,MAAMF,QAAQ,CAACI,OAAO,EAAE,EAAE,CAAC,CAAA;AAE1D,EAAA,MAAMuB,MAAM,GAAGxC,OAAO,CAAC,OAAqB;IAC1Cc,KAAK;IACLM,IAAI;IACJC,iBAAiB;IACjBS,iBAAiB;IACjBG,SAAS;IACTE,QAAQ;IACRE,qBAAqB;AACrBE,IAAAA,UAAAA;AACF,GAAC,CAAC,EAAE,CACFzB,KAAK,EACLM,IAAI,EACJC,iBAAiB,EACjBS,iBAAiB,EACjBG,SAAS,EACTE,QAAQ,EACRE,qBAAqB,EACrBE,UAAU,CACX,CAAC,CAAA;AAEFE,EAAAA,mBAAmB,CAACrD,YAAY,EAAE,MAAMoD,MAAM,CAAC,CAAA;AAE/CE,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIjF,SAAS,EAAE;AACbqD,MAAAA,KAAK,EAAE,CAAA;AACT,KAAA;AACA,IAAA,IAAI/C,eAAe,EAAE;AACnB+C,MAAAA,KAAK,EAAE,CAAA;AACPmB,MAAAA,SAAS,EAAE,CAAA;AACb,KAAA;AACF;GACC,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAMU,WAAW,GAAG5B,WAAW,CAAE6B,KAAyC,IAAK;AAC7E,IAAA,IAAIjC,WAAW,EAAE;MACfhB,UAAU,CAAC,IAAI,CAAC,CAAA;AAChB,MAAA,IAAI3B,gBAAgB,EAAE;AAAEiE,QAAAA,SAAS,EAAE,CAAA;AAAC,OAAA;AACpC,MAAA,IAAIlD,OAAO,EAAE;QAAEA,OAAO,CAAC6D,KAAK,CAAC,CAAA;AAAC,OAAA;AAChC,KAAA;GACD,EAAE,CACD5E,gBAAgB,EAChBiE,SAAS,EACTtB,WAAW,EACX5B,OAAO,CACR,CAAC,CAAA;AAEF,EAAA,MAAM8D,UAAU,GAAG9B,WAAW,CAAE6B,KAAyC,IAAK;IAC5EjD,UAAU,CAAC,KAAK,CAAC,CAAA;AACjB,IAAA,IAAIb,MAAM,EAAE;MAAEA,MAAM,CAAC8D,KAAK,CAAC,CAAA;AAAC,KAAA;AAC9B,GAAC,EAAE,CAAC9D,MAAM,CAAC,CAAC,CAAA;AAEZ,EAAA,MAAMgE,YAAY,GAAG/B,WAAW,CAAE6B,KAA0C,IAAK;IAC/E,IAAIjC,WAAW,IAAI3B,QAAQ,EAAE;MAC3BA,QAAQ,CAAC4D,KAAK,CAAC,CAAA;AACjB,KAAA;AACF,GAAC,EAAE,CACDjC,WAAW,EACX3B,QAAQ,CACT,CAAC,CAAA;EAEF,MAAM;AACJ+D,IAAAA,aAAa,EAAEC,uCAAuC;AACtDC,IAAAA,WAAW,EAAEC,qCAAAA;GACd,GAAGC,qCAAqC,CAAC;AACxCC,IAAAA,UAAU,EAAEC,uBAAuB;IACnCpE,SAAS;AACTC,IAAAA,OAAAA;AACF,GAAC,CAAC,CAAA;AAEF,EAAA,MAAM6D,aAAa,GAAGhC,WAAW,CAAE6B,KAA4C,IAAK;IAClF,IAAIjC,WAAW,IAAIqC,uCAAuC,EAAE;MAC1DA,uCAAuC,CAACJ,KAAK,CAAC,CAAA;AAChD,KAAA;AACF,GAAC,EAAE,CACDjC,WAAW,EACXqC,uCAAuC,CACxC,CAAC,CAAA;AAEF,EAAA,MAAMC,WAAW,GAAGlC,WAAW,CAAE6B,KAA4C,IAAK;IAChF,IAAIjC,WAAW,IAAIuC,qCAAqC,EAAE;MACxDA,qCAAqC,CAACN,KAAK,CAAC,CAAA;AAC9C,KAAA;AACF,GAAC,EAAE,CACDjC,WAAW,EACXuC,qCAAqC,CACtC,CAAC,CAAA;AAEF,EAAA,MAAMI,WAAW,GAAGvC,WAAW,CAAC,MAAM;AACpC,IAAA,MAAMwC,KAAK,GAAG1C,QAAQ,CAACI,OAAO,CAAA;IAC9B,IAAIN,WAAW,IAAI4C,KAAK,EAAE;AACxB,MAAA,MAAMC,QAAQ,GAAGC,MAAM,EAAEC,wBAAwB,CAACC,gBAAgB,CAACC,SAAS,EAAE,OAAO,CAAC,EAAEC,GAAG,CAAA;AAC3F,MAAA,MAAMjB,KAAK,GAAG,IAAIkB,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,CAACrB,KAAK,CAAC,CAAA;AAC5B,KAAA;AACF,GAAC,EAAE,CAACjC,WAAW,CAAC,CAAC,CAAA;AAEjB,EAAA,MAAMuD,cAAc,GAAGnD,WAAW,CAAEoD,IAAwB,IAAK;IAC/D,IAAI,MAAM,IAAIA,IAAI,EAAE;AAClB,MAAA,oBACEC,cAAA,CAAAC,aAAA,CAACC,MAAM,CAACC,QAAQ,EAAA;QACdC,MAAM,EAAEL,IAAI,CAACM,IAAK;QAClBpH,IAAI,EAAEqH,QAAQ,CAACC,CAAE;AACjBC,QAAAA,KAAK,EAAET,IAAI,CAACU,SAAS,IAAI,gBAAiB;AAC1CC,QAAAA,SAAS,EAAE,CAACtE,KAAK,CAAC2D,IAAI,CAACY,OAAO,CAAE;QAChCA,OAAO,EAAEZ,IAAI,CAACY,OAAAA;AAAQ,OACvB,CAAC,CAAA;AAEN,KAAA;AAEA,IAAA,OAAOZ,IAAI,CAAA;GACZ,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAMa,aAAa,GAAGhF,OAAO,CAAC,MAAM;AAClC,IAAA,IAAIQ,KAAK,CAACvC,WAAW,CAAC,EAAE;AACtB,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AAEA,IAAA,MAAMkG,IAAI,GAAGD,cAAc,CAACjG,WAAW,CAAC,CAAA;AAExC,IAAA,IAAIE,yBAAyB,EAAE;AAAE,MAAA,OAAOgG,IAAI,CAAA;AAAC,KAAA;AAE7C,IAAA,oBACEC,cAAA,CAAAC,aAAA,CAACC,MAAM,CAACW,kBAAkB,EAAA;AACxBC,MAAAA,SAAS,EAAEzG,oBAAqB;AAChC0G,MAAAA,aAAa,EAAEzG,wBAAAA;AAAyB,KAAA,EAEtCyF,IACuB,CAAC,CAAA;AAEhC,GAAC,EAAE,CACDlG,WAAW,EACXE,yBAAyB,EACzBM,oBAAoB,EACpBC,wBAAwB,EACxBwF,cAAc,CACf,CAAC,CAAA;EAEF,MAAMkB,eAAe,GAAGrE,WAAW,CAAC,CAACoD,IAAwB,EAAEkB,GAAY,KAAK;IAC9E,IAAI,MAAM,IAAIlB,IAAI,EAAE;AAClB,MAAA,oBACEC,cAAA,CAAAC,aAAA,CAACC,MAAM,CAACgB,gBAAgB,EAAA;AACtBD,QAAAA,GAAG,EAAEA,GAAI;AACTP,QAAAA,SAAS,EAAE,CAACtE,KAAK,CAAC2D,IAAI,CAACY,OAAO,CAAE;QAChCA,OAAO,EAAEZ,IAAI,CAACY,OAAAA;AAAQ,OAAA,eAEtBX,cAAA,CAAAC,aAAA,CAACkB,IAAI,EAAA;QACHf,MAAM,EAAEL,IAAI,CAACM,IAAK;QAClBpH,IAAI,EAAEqH,QAAQ,CAACc,EAAG;AAClBZ,QAAAA,KAAK,EAAET,IAAI,CAACU,SAAS,IAAI,gBAAA;AAAiB,OAC3C,CACsB,CAAC,CAAA;AAE9B,KAAA;AAEA,IAAA,oBAAOT,cAAK,CAACqB,YAAY,CACvBtB,IAAI,EAAE;AAAEkB,MAAAA,GAAAA;AAAI,KACd,CAAC,CAAA;GACF,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAMK,cAAc,GAAG1F,OAAO,CAAC,MAAM;IACnC,IAAIQ,KAAK,CAACtC,YAAY,CAAC,IAAIyH,OAAO,CAACzH,YAAY,CAAC,EAAE;AAChD,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;IAEA,MAAM0H,KAAK,GAAGC,OAAO,CAAC3H,YAAY,CAAC,GAC/BA,YAAY,CAAC4H,GAAG,CAAE3B,IAAI,IAAKiB,eAAe,CAACjB,IAAI,EAAE4B,EAAI,EAAE,CAAC,CAAC,GACzDX,eAAe,CAAClH,YAAY,CAAC,CAAA;AAEjC,IAAA,IAAIE,0BAA0B,EAAE;AAAE,MAAA,OAAOwH,KAAK,CAAA;AAAC,KAAA;AAE/C,IAAA,oBACExB,cAAA,CAAAC,aAAA,CAACC,MAAM,CAAC0B,mBAAmB,EAAA;AACzBd,MAAAA,SAAS,EAAEvG,qBAAsB;AACjCwG,MAAAA,aAAa,EAAEvG,yBAAAA;AAA0B,KAAA,EAEvCgH,KACwB,CAAC,CAAA;AAEjC,GAAC,EAAE,CACD1H,YAAY,EACZE,0BAA0B,EAC1BO,qBAAqB,EACrBC,yBAAyB,EACzBwG,eAAe,CAChB,CAAC,CAAA;EAEF,MAAMa,cAAc,GAAGjG,OAAO,CAAC,mBAC7BoE,cAAA,CAAAC,aAAA,CAACC,MAAM,CAAC4B,gBAAgB,EAAA;AACtBnB,IAAAA,OAAO,EAAEzB,WAAAA;AAAY,GAAA,EAGnB/C,eAAe,IAAIA,eAAe,CAAC2B,MAAM,GAAG,CAAC,KAAKxC,OAAO,IAAIG,OAAO,CAAC,iBACnEuE,cAAA,CAAAC,aAAA,CAACkB,IAAI,EAAA;AACHf,IAAAA,MAAM,EAAE2B,sBAAuB;IAC/B9I,IAAI,EAAEqH,QAAQ,CAACc,EAAAA;AAAG,GACnB,CAGkB,CAC1B,EAAE,CACD9F,OAAO,EACP4D,WAAW,EACXzD,OAAO,EACPU,eAAe,CAChB,CAAC,CAAA;AAEF,EAAA,oBACE6D,cAAA,CAAAC,aAAA,CAACC,MAAM,CAAC8B,OAAO,EAAA;AACblB,IAAAA,SAAS,EAAE3G,gBAAiB;AAC5BZ,IAAAA,OAAO,EAAEA,OAAQ;AACjBN,IAAAA,IAAI,EAAEA,IAAK;AACXgJ,IAAAA,OAAO,EAAEtG,0BAA2B;AACpCuG,IAAAA,YAAY,EAAEpG,mBAAoB;AAClCX,IAAAA,QAAQ,EAAEA,QAAS;AACnBF,IAAAA,QAAQ,EAAEA,QAAS;AACnBK,IAAAA,OAAO,EAAEA,OAAQ;AACjByF,IAAAA,aAAa,EAAE3G,oBAAqB;AACpC,IAAA,aAAA,EAAahB,MAAO;AACpB+I,IAAAA,YAAY,EAAEA,MAAMzG,UAAU,CAAC,IAAI,CAAE;AACrC0G,IAAAA,YAAY,EAAEA,MAAM1G,UAAU,CAAC,KAAK,CAAE;AACtC2G,IAAAA,WAAW,EAAE3F,KAAAA;AAAM,GAAA,EAEjBkE,aAAa,eACfZ,cAAA,CAAAC,aAAA,CAACC,MAAM,CAACoC,KAAK,EAAAjD,MAAA,CAAAkD,MAAA,CAAA;AACXvJ,IAAAA,IAAI,EAAEA,IAAK;AACX8H,IAAAA,SAAS,EAAE7G,cAAe;AAC1B8G,IAAAA,aAAa,EAAE7G,kBAAmB;AAClCsI,IAAAA,GAAG,EAAE/F,QAAS;AACdhC,IAAAA,KAAK,EAAE0B,eAAgB;AACvBpD,IAAAA,IAAI,EAAEA,IAAK;AACXE,IAAAA,IAAI,EAAEA,IAAK;AACXK,IAAAA,YAAY,EAAEA,YAAa;AAC3B4B,IAAAA,QAAQ,EAAEA,QAAS;AACnBD,IAAAA,QAAQ,EAAEA,QAAS;AACnBN,IAAAA,OAAO,EAAE4D,WAAY;AACrB7D,IAAAA,MAAM,EAAE+D,UAAW;AACnB7D,IAAAA,QAAQ,EAAE8D,YAAa;AACvB7D,IAAAA,SAAS,EAAE8D,aAAc;AACzB7D,IAAAA,OAAO,EAAE+D,WAAAA;GACLzD,EAAAA,QAAQ,CACb,CAAC,EACAoB,WAAW,IAAIqF,cAAc,EAC7BP,cACY,CAAC,CAAA;AAErB,CAAA;AAEA,gBAAemB,aAAAA,UAAU,CAAC3J,kBAAkB,CAAC;;;;"}
1
+ {"version":3,"file":"TextField.mjs","sources":["../../../../../../src/components/Forms/Inputs/TextField/TextField.tsx"],"sourcesContent":["import React, {\n type Ref,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport { CancelCircleFilledIcon } from '@channel.io/bezier-icons'\nimport { v4 as uuid } from 'uuid'\n\nimport { window } from '~/src/utils/domUtils'\nimport { toString } from '~/src/utils/stringUtils'\nimport {\n isArray,\n isEmpty,\n isNil,\n} from '~/src/utils/typeUtils'\n\nimport { COMMON_IME_CONTROL_KEYS } from '~/src/components/Forms/Inputs/constants/CommonImeControlKeys'\nimport useFormFieldProps from '~/src/components/Forms/useFormFieldProps'\nimport useKeyboardActionLockerWhileComposing from '~/src/components/Forms/useKeyboardActionLockerWhileComposing'\nimport {\n Icon,\n IconSize,\n} from '~/src/components/Icon'\n\nimport {\n type SelectionRangeDirections,\n type TextFieldItemProps,\n type TextFieldProps,\n type TextFieldRef,\n TextFieldSize,\n TextFieldType,\n TextFieldVariant,\n} from './TextField.types'\nimport {\n getProperTextFieldBgColor,\n getProperTextFieldBorderRadius,\n} from './TextFieldUtils'\n\nimport Styled from './TextField.styled'\n\nexport const TEXT_INPUT_TEST_ID = 'bezier-react-text-input'\nexport const TEXT_INPUT_CLEAR_ICON_TEST_ID = 'bezier-react-text-input-clear-icon'\n\nfunction TextFieldComponent({\n name,\n type,\n size = TextFieldSize.M,\n testId = TEXT_INPUT_TEST_ID,\n autoFocus,\n autoComplete = 'off',\n variant = TextFieldVariant.Primary,\n allowClear = false,\n selectAllOnInit = false,\n selectAllOnFocus = false,\n leftContent,\n rightContent,\n withoutLeftContentWrapper = false,\n withoutRightContentWrapper = false,\n inputClassName,\n inputInterpolation,\n wrapperClassName,\n wrapperInterpolation,\n leftWrapperClassName,\n leftWrapperInterpolation,\n rightWrapperClassName,\n rightWrapperInterpolation,\n value,\n onBlur,\n onFocus,\n onChange,\n onKeyDown,\n onKeyUp,\n ...rest\n}: TextFieldProps,\nforwardedRef: Ref<TextFieldRef>,\n) {\n const {\n disabled,\n readOnly,\n hasError,\n ...ownProps\n } = useFormFieldProps(rest)\n\n const [focused, setFocused] = useState(false)\n const [hovered, setHovered] = useState(false)\n\n const wrapperBgColorSemanticName = useMemo(() => (\n getProperTextFieldBgColor({\n variant,\n focused,\n hasError,\n readOnly,\n })\n ), [\n variant,\n focused,\n hasError,\n readOnly,\n ])\n\n const wrapperBorderRadius = useMemo(() => (\n getProperTextFieldBorderRadius({\n size,\n })\n ), [size])\n\n const focusTimeout = useRef<ReturnType<Window['setTimeout']>>()\n const blurTimeout = useRef<ReturnType<Window['setTimeout']>>()\n\n const normalizedValue = useMemo(() => (\n isNil(value) ? undefined : toString(value)\n ), [value])\n\n const activeInput = !disabled && !readOnly\n const activeClear = activeInput && allowClear && !isEmpty(normalizedValue)\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 }, [])\n\n const blur = useCallback(() => {\n clearTimeout(blurTimeout.current)\n blurTimeout.current = window.setTimeout(() => {\n inputRef.current?.blur()\n }, 0)\n }, [])\n\n const setSelectionRange = useCallback((start?: number, end?: number, direction?: SelectionRangeDirections) => {\n if (type && [TextFieldType.Number, TextFieldType.Email, TextFieldType.Hidden].includes(type)) { return }\n inputRef.current?.setSelectionRange(start || 0, end || 0, direction || 'none')\n }, [type])\n\n const getSelectionRange = useCallback((): [number, number] =>\n [inputRef.current?.selectionStart || 0, inputRef.current?.selectionEnd || 0], [])\n\n const selectAll = useCallback(() => {\n focus()\n if (inputRef.current) {\n setSelectionRange(0, inputRef.current.value.length, 'backward')\n }\n }, [\n focus,\n setSelectionRange,\n ])\n\n const unselect = useCallback(() => {\n focus()\n if (inputRef.current) {\n const valueLen = inputRef.current.value.length\n setSelectionRange(valueLen, valueLen)\n }\n }, [\n focus,\n setSelectionRange,\n ])\n\n const getBoundingClientRect = useCallback((): DOMRect => {\n if (inputRef.current) { return inputRef.current.getBoundingClientRect() }\n return new DOMRect(undefined, undefined, 0, 0)\n }, [])\n\n const getDOMNode = useCallback(() => inputRef.current, [])\n\n const handle = useMemo((): TextFieldRef => ({\n focus,\n blur,\n setSelectionRange,\n getSelectionRange,\n selectAll,\n unselect,\n getBoundingClientRect,\n getDOMNode,\n }), [\n focus,\n blur,\n setSelectionRange,\n getSelectionRange,\n selectAll,\n unselect,\n getBoundingClientRect,\n getDOMNode,\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((event: React.FocusEvent<HTMLInputElement>) => {\n if (activeInput) {\n setFocused(true)\n if (selectAllOnFocus) { selectAll() }\n if (onFocus) { onFocus(event) }\n }\n }, [\n selectAllOnFocus,\n selectAll,\n activeInput,\n onFocus,\n ])\n\n const handleBlur = useCallback((event: React.FocusEvent<HTMLInputElement>) => {\n setFocused(false)\n if (onBlur) { onBlur(event) }\n }, [onBlur])\n\n const handleChange = useCallback((event: React.ChangeEvent<HTMLInputElement>) => {\n if (activeInput && onChange) {\n onChange(event)\n }\n }, [\n activeInput,\n 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((event: React.KeyboardEvent<HTMLInputElement>) => {\n if (activeInput && handleKeyDownWrappedWithComposingLocker) {\n handleKeyDownWrappedWithComposingLocker(event)\n }\n }, [\n activeInput,\n handleKeyDownWrappedWithComposingLocker,\n ])\n\n const handleKeyUp = useCallback((event: React.KeyboardEvent<HTMLInputElement>) => {\n if (activeInput && handleKeyUpWrappedWithComposingLocker) {\n handleKeyUpWrappedWithComposingLocker(event)\n }\n }, [\n activeInput,\n handleKeyUpWrappedWithComposingLocker,\n ])\n\n const handleClear = useCallback(() => {\n const input = inputRef.current\n if (activeInput && input) {\n const setValue = Object?.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value')?.set\n const event = new Event('input', { bubbles: true })\n setValue?.call(input, '')\n input.dispatchEvent(event)\n }\n }, [activeInput])\n\n const renderLeftItem = useCallback((item: TextFieldItemProps) => {\n if ('icon' in item) {\n return (\n <Styled.LeftIcon\n source={item.icon}\n size={IconSize.S}\n color={item.iconColor ?? 'txt-black-dark'}\n clickable={!isNil(item.onClick)}\n onClick={item.onClick}\n />\n )\n }\n\n return item\n }, [])\n\n const LeftComponent = useMemo(() => {\n if (isNil(leftContent)) {\n return null\n }\n\n const item = renderLeftItem(leftContent)\n\n if (withoutLeftContentWrapper) { return item }\n\n return (\n <Styled.LeftContentWrapper\n className={leftWrapperClassName}\n interpolation={leftWrapperInterpolation}\n >\n { item }\n </Styled.LeftContentWrapper>\n )\n }, [\n leftContent,\n withoutLeftContentWrapper,\n leftWrapperClassName,\n leftWrapperInterpolation,\n renderLeftItem,\n ])\n\n const renderRightItem = useCallback((item: TextFieldItemProps, key?: string) => {\n if ('icon' in item) {\n return (\n <Styled.RightItemWrapper\n key={key}\n clickable={!isNil(item.onClick)}\n onClick={item.onClick}\n >\n <Icon\n source={item.icon}\n size={IconSize.XS}\n color={item.iconColor ?? 'txt-black-dark'}\n />\n </Styled.RightItemWrapper>\n )\n }\n\n return React.cloneElement(\n item, { key },\n )\n }, [])\n\n const RightComponent = useMemo(() => {\n if (isNil(rightContent) || isEmpty(rightContent)) {\n return null\n }\n\n const items = isArray(rightContent)\n ? rightContent.map((item) => renderRightItem(item, uuid()))\n : renderRightItem(rightContent)\n\n if (withoutRightContentWrapper) { return items }\n\n return (\n <Styled.RightContentWrapper\n className={rightWrapperClassName}\n interpolation={rightWrapperInterpolation}\n >\n { items }\n </Styled.RightContentWrapper>\n )\n }, [\n rightContent,\n withoutRightContentWrapper,\n rightWrapperClassName,\n rightWrapperInterpolation,\n renderRightItem,\n ])\n\n const ClearComponent = useMemo(() => (\n <Styled.ClearIconWrapper\n onClick={handleClear}\n >\n {\n (focused || hovered) && (\n <Icon\n testId={TEXT_INPUT_CLEAR_ICON_TEST_ID}\n source={CancelCircleFilledIcon}\n size={IconSize.XS}\n />\n )\n }\n </Styled.ClearIconWrapper>\n ), [\n focused,\n handleClear,\n hovered,\n ])\n\n return (\n <Styled.Wrapper\n className={wrapperClassName}\n variant={variant}\n size={size}\n bgColor={wrapperBgColorSemanticName}\n borderRadius={wrapperBorderRadius}\n hasError={hasError}\n disabled={disabled}\n focused={focused}\n interpolation={wrapperInterpolation}\n data-testid={testId}\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n onMouseDown={focus}\n >\n { LeftComponent }\n <Styled.Input\n type={type}\n className={inputClassName}\n interpolation={inputInterpolation}\n ref={inputRef}\n value={normalizedValue}\n name={name}\n size={size}\n autoComplete={autoComplete}\n readOnly={readOnly}\n disabled={disabled}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onKeyUp={handleKeyUp}\n {...ownProps}\n />\n { activeClear && ClearComponent }\n { RightComponent }\n </Styled.Wrapper>\n )\n}\n\nexport default forwardRef(TextFieldComponent)\n"],"names":["TEXT_INPUT_TEST_ID","TEXT_INPUT_CLEAR_ICON_TEST_ID","TextFieldComponent","name","type","size","TextFieldSize","M","testId","autoFocus","autoComplete","variant","TextFieldVariant","Primary","allowClear","selectAllOnInit","selectAllOnFocus","leftContent","rightContent","withoutLeftContentWrapper","withoutRightContentWrapper","inputClassName","inputInterpolation","wrapperClassName","wrapperInterpolation","leftWrapperClassName","leftWrapperInterpolation","rightWrapperClassName","rightWrapperInterpolation","value","onBlur","onFocus","onChange","onKeyDown","onKeyUp","rest","forwardedRef","disabled","readOnly","hasError","ownProps","useFormFieldProps","focused","setFocused","useState","hovered","setHovered","wrapperBgColorSemanticName","useMemo","getProperTextFieldBgColor","wrapperBorderRadius","getProperTextFieldBorderRadius","focusTimeout","useRef","blurTimeout","normalizedValue","isNil","undefined","toString","activeInput","activeClear","isEmpty","inputRef","focus","useCallback","clearTimeout","current","window","setTimeout","blur","setSelectionRange","start","end","direction","TextFieldType","Number","Email","Hidden","includes","getSelectionRange","selectionStart","selectionEnd","selectAll","length","unselect","valueLen","getBoundingClientRect","DOMRect","getDOMNode","handle","useImperativeHandle","useEffect","handleFocus","event","handleBlur","handleChange","handleKeyDown","handleKeyDownWrappedWithComposingLocker","handleKeyUp","handleKeyUpWrappedWithComposingLocker","useKeyboardActionLockerWhileComposing","keysToLock","COMMON_IME_CONTROL_KEYS","handleClear","input","setValue","Object","getOwnPropertyDescriptor","HTMLInputElement","prototype","set","Event","bubbles","call","dispatchEvent","renderLeftItem","item","React","createElement","Styled","LeftIcon","source","icon","IconSize","S","color","iconColor","clickable","onClick","LeftComponent","LeftContentWrapper","className","interpolation","renderRightItem","key","RightItemWrapper","Icon","XS","cloneElement","RightComponent","items","isArray","map","uuid","RightContentWrapper","ClearComponent","ClearIconWrapper","CancelCircleFilledIcon","Wrapper","bgColor","borderRadius","onMouseEnter","onMouseLeave","onMouseDown","Input","assign","ref","forwardRef"],"mappings":"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"}
@@ -11,6 +11,7 @@ import TagBadgeVariant from '../TagBadgeCommon/constants/TagBadgeVariant.mjs';
11
11
 
12
12
  // TODO: 테스트 코드 작성
13
13
  const TAG_TEST_ID = 'bezier-react-tag';
14
+ const TAG_DELETE_TEST_ID = 'bezier-react-tag-delete-icon';
14
15
  const Tag = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function Tag({
15
16
  size = TagBadgeSize.M,
16
17
  variant = TagBadgeVariant.Default,
@@ -28,8 +29,12 @@ const Tag = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function Tag({
28
29
  const CloseIconComponent = useMemo(() => !isNil(onDelete) && /*#__PURE__*/React__default.createElement(Styled.CloseIcon, {
29
30
  source: CancelSmallIcon,
30
31
  size: TAG_BADGE_ICON_SIZE,
32
+ testId: TAG_DELETE_TEST_ID,
31
33
  color: "txt-black-darker",
32
- onClick: onDelete
34
+ onClick: e => {
35
+ e.stopPropagation();
36
+ onDelete(e);
37
+ }
33
38
  }), [onDelete]);
34
39
  return /*#__PURE__*/React__default.createElement(TagBadgeStyled.Wrapper, Object.assign({}, props, {
35
40
  ref: forwardedRef,
@@ -45,5 +50,5 @@ const Tag = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function Tag({
45
50
  }, children), CloseIconComponent);
46
51
  }));
47
52
 
48
- export { TAG_TEST_ID, Tag };
53
+ export { TAG_DELETE_TEST_ID, TAG_TEST_ID, Tag };
49
54
  //# sourceMappingURL=Tag.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tag.mjs","sources":["../../../../../src/components/TagBadge/Tag/Tag.tsx"],"sourcesContent":["import React, {\n forwardRef,\n memo,\n useMemo,\n} from 'react'\n\nimport { CancelSmallIcon } from '@channel.io/bezier-icons'\n\nimport {\n isEmpty,\n isNil,\n} from '~/src/utils/typeUtils'\n\nimport {\n TAG_BADGE_ICON_SIZE,\n TAG_TEXT_HORIZONTAL_PADDING,\n TagBadgeSize,\n TagBadgeStyled,\n TagBadgeText,\n TagBadgeVariant,\n getProperTagBadgeBgColor,\n getProperTagBadgePadding,\n getProperTagBadgeRounding,\n getProperTagBadgeTypo,\n} from '~/src/components/TagBadge/TagBadgeCommon'\n\nimport type TagProps from './Tag.types'\n\nimport Styled from './Tag.styled'\n\n// TODO: 테스트 코드 작성\nexport const TAG_TEST_ID = 'bezier-react-tag'\n\nexport const Tag = memo(forwardRef<HTMLDivElement, TagProps>(function Tag({\n size = TagBadgeSize.M,\n variant = TagBadgeVariant.Default,\n color: givenColor,\n children,\n // Handlers\n onDelete,\n className,\n interpolation,\n testId = TAG_TEST_ID,\n ...props\n}, forwardedRef) {\n const hasChildren = useMemo(() => !isEmpty(children), [children])\n\n const bgSemanticName = useMemo(() => (\n givenColor || getProperTagBadgeBgColor(variant)\n ), [\n givenColor,\n variant,\n ])\n\n const CloseIconComponent = useMemo(() => !isNil(onDelete) && (\n <Styled.CloseIcon\n source={CancelSmallIcon}\n size={TAG_BADGE_ICON_SIZE}\n color=\"txt-black-darker\"\n onClick={onDelete}\n />\n ), [onDelete])\n\n return (\n <TagBadgeStyled.Wrapper\n {...props}\n ref={forwardedRef}\n className={className}\n interpolation={interpolation}\n data-testid={testId}\n horizontalPadding={getProperTagBadgePadding(size)}\n rounding={getProperTagBadgeRounding(size)}\n bgColor={bgSemanticName}\n >\n { hasChildren && (\n <TagBadgeText\n horizontalPadding={TAG_TEXT_HORIZONTAL_PADDING}\n typo={getProperTagBadgeTypo(size)}\n >\n { children }\n </TagBadgeText>\n ) }\n\n { CloseIconComponent }\n </TagBadgeStyled.Wrapper>\n )\n}))\n"],"names":["TAG_TEST_ID","Tag","memo","forwardRef","size","TagBadgeSize","M","variant","TagBadgeVariant","Default","color","givenColor","children","onDelete","className","interpolation","testId","props","forwardedRef","hasChildren","useMemo","isEmpty","bgSemanticName","getProperTagBadgeBgColor","CloseIconComponent","isNil","React","createElement","Styled","CloseIcon","source","CancelSmallIcon","TAG_BADGE_ICON_SIZE","onClick","TagBadgeStyled","Wrapper","Object","assign","ref","horizontalPadding","getProperTagBadgePadding","rounding","getProperTagBadgeRounding","bgColor","TagBadgeText","TAG_TEXT_HORIZONTAL_PADDING","typo","getProperTagBadgeTypo"],"mappings":";;;;;;;;;;;AA8BA;AACO,MAAMA,WAAW,GAAG,mBAAkB;AAEtC,MAAMC,GAAG,gBAAGC,IAAI,eAACC,UAAU,CAA2B,SAASF,GAAGA,CAAC;EACxEG,IAAI,GAAGC,YAAY,CAACC,CAAC;EACrBC,OAAO,GAAGC,eAAe,CAACC,OAAO;AACjCC,EAAAA,KAAK,EAAEC,UAAU;EACjBC,QAAQ;AACR;EACAC,QAAQ;EACRC,SAAS;EACTC,aAAa;AACbC,EAAAA,MAAM,GAAGhB,WAAW;EACpB,GAAGiB,KAAAA;AACL,CAAC,EAAEC,YAAY,EAAE;AACf,EAAA,MAAMC,WAAW,GAAGC,OAAO,CAAC,MAAM,CAACC,OAAO,CAACT,QAAQ,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC,CAAA;AAEjE,EAAA,MAAMU,cAAc,GAAGF,OAAO,CAAC,MAC7BT,UAAU,IAAIY,wBAAwB,CAAChB,OAAO,CAC/C,EAAE,CACDI,UAAU,EACVJ,OAAO,CACR,CAAC,CAAA;AAEF,EAAA,MAAMiB,kBAAkB,GAAGJ,OAAO,CAAC,MAAM,CAACK,KAAK,CAACZ,QAAQ,CAAC,iBACvDa,cAAA,CAAAC,aAAA,CAACC,MAAM,CAACC,SAAS,EAAA;AACfC,IAAAA,MAAM,EAAEC,eAAgB;AACxB3B,IAAAA,IAAI,EAAE4B,mBAAoB;AAC1BtB,IAAAA,KAAK,EAAC,kBAAkB;AACxBuB,IAAAA,OAAO,EAAEpB,QAAAA;AAAS,GACnB,CACF,EAAE,CAACA,QAAQ,CAAC,CAAC,CAAA;AAEd,EAAA,oBACEa,cAAA,CAAAC,aAAA,CAACO,cAAc,CAACC,OAAO,EAAAC,MAAA,CAAAC,MAAA,CAAA,EAAA,EACjBpB,KAAK,EAAA;AACTqB,IAAAA,GAAG,EAAEpB,YAAa;AAClBJ,IAAAA,SAAS,EAAEA,SAAU;AACrBC,IAAAA,aAAa,EAAEA,aAAc;AAC7B,IAAA,aAAA,EAAaC,MAAO;AACpBuB,IAAAA,iBAAiB,EAAEC,wBAAwB,CAACpC,IAAI,CAAE;AAClDqC,IAAAA,QAAQ,EAAEC,yBAAyB,CAACtC,IAAI,CAAE;AAC1CuC,IAAAA,OAAO,EAAErB,cAAAA;AAAe,GAAA,CAAA,EAEtBH,WAAW,iBACXO,cAAA,CAAAC,aAAA,CAACiB,YAAY,EAAA;AACXL,IAAAA,iBAAiB,EAAEM,2BAA4B;IAC/CC,IAAI,EAAEC,qBAAqB,CAAC3C,IAAI,CAAA;AAAE,GAAA,EAE9BQ,QACQ,CACf,EAECY,kBACoB,CAAC,CAAA;AAE7B,CAAC,CAAC;;;;"}
1
+ {"version":3,"file":"Tag.mjs","sources":["../../../../../src/components/TagBadge/Tag/Tag.tsx"],"sourcesContent":["import React, {\n forwardRef,\n memo,\n useMemo,\n} from 'react'\n\nimport { CancelSmallIcon } from '@channel.io/bezier-icons'\n\nimport {\n isEmpty,\n isNil,\n} from '~/src/utils/typeUtils'\n\nimport {\n TAG_BADGE_ICON_SIZE,\n TAG_TEXT_HORIZONTAL_PADDING,\n TagBadgeSize,\n TagBadgeStyled,\n TagBadgeText,\n TagBadgeVariant,\n getProperTagBadgeBgColor,\n getProperTagBadgePadding,\n getProperTagBadgeRounding,\n getProperTagBadgeTypo,\n} from '~/src/components/TagBadge/TagBadgeCommon'\n\nimport type TagProps from './Tag.types'\n\nimport Styled from './Tag.styled'\n\n// TODO: 테스트 코드 작성\nexport const TAG_TEST_ID = 'bezier-react-tag'\nexport const TAG_DELETE_TEST_ID = 'bezier-react-tag-delete-icon'\n\nexport const Tag = memo(forwardRef<HTMLDivElement, TagProps>(function Tag({\n size = TagBadgeSize.M,\n variant = TagBadgeVariant.Default,\n color: givenColor,\n children,\n // Handlers\n onDelete,\n className,\n interpolation,\n testId = TAG_TEST_ID,\n ...props\n}, forwardedRef) {\n const hasChildren = useMemo(() => !isEmpty(children), [children])\n\n const bgSemanticName = useMemo(() => (\n givenColor || getProperTagBadgeBgColor(variant)\n ), [\n givenColor,\n variant,\n ])\n\n const CloseIconComponent = useMemo(() => !isNil(onDelete) && (\n <Styled.CloseIcon\n source={CancelSmallIcon}\n size={TAG_BADGE_ICON_SIZE}\n testId={TAG_DELETE_TEST_ID}\n color=\"txt-black-darker\"\n onClick={(e) => {\n e.stopPropagation()\n onDelete(e)\n }}\n />\n ), [onDelete])\n\n return (\n <TagBadgeStyled.Wrapper\n {...props}\n ref={forwardedRef}\n className={className}\n interpolation={interpolation}\n data-testid={testId}\n horizontalPadding={getProperTagBadgePadding(size)}\n rounding={getProperTagBadgeRounding(size)}\n bgColor={bgSemanticName}\n >\n { hasChildren && (\n <TagBadgeText\n horizontalPadding={TAG_TEXT_HORIZONTAL_PADDING}\n typo={getProperTagBadgeTypo(size)}\n >\n { children }\n </TagBadgeText>\n ) }\n\n { CloseIconComponent }\n </TagBadgeStyled.Wrapper>\n )\n}))\n"],"names":["TAG_TEST_ID","TAG_DELETE_TEST_ID","Tag","memo","forwardRef","size","TagBadgeSize","M","variant","TagBadgeVariant","Default","color","givenColor","children","onDelete","className","interpolation","testId","props","forwardedRef","hasChildren","useMemo","isEmpty","bgSemanticName","getProperTagBadgeBgColor","CloseIconComponent","isNil","React","createElement","Styled","CloseIcon","source","CancelSmallIcon","TAG_BADGE_ICON_SIZE","onClick","e","stopPropagation","TagBadgeStyled","Wrapper","Object","assign","ref","horizontalPadding","getProperTagBadgePadding","rounding","getProperTagBadgeRounding","bgColor","TagBadgeText","TAG_TEXT_HORIZONTAL_PADDING","typo","getProperTagBadgeTypo"],"mappings":";;;;;;;;;;;AA8BA;AACO,MAAMA,WAAW,GAAG,mBAAkB;AACtC,MAAMC,kBAAkB,GAAG,+BAA8B;AAEzD,MAAMC,GAAG,gBAAGC,IAAI,eAACC,UAAU,CAA2B,SAASF,GAAGA,CAAC;EACxEG,IAAI,GAAGC,YAAY,CAACC,CAAC;EACrBC,OAAO,GAAGC,eAAe,CAACC,OAAO;AACjCC,EAAAA,KAAK,EAAEC,UAAU;EACjBC,QAAQ;AACR;EACAC,QAAQ;EACRC,SAAS;EACTC,aAAa;AACbC,EAAAA,MAAM,GAAGjB,WAAW;EACpB,GAAGkB,KAAAA;AACL,CAAC,EAAEC,YAAY,EAAE;AACf,EAAA,MAAMC,WAAW,GAAGC,OAAO,CAAC,MAAM,CAACC,OAAO,CAACT,QAAQ,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC,CAAA;AAEjE,EAAA,MAAMU,cAAc,GAAGF,OAAO,CAAC,MAC7BT,UAAU,IAAIY,wBAAwB,CAAChB,OAAO,CAC/C,EAAE,CACDI,UAAU,EACVJ,OAAO,CACR,CAAC,CAAA;AAEF,EAAA,MAAMiB,kBAAkB,GAAGJ,OAAO,CAAC,MAAM,CAACK,KAAK,CAACZ,QAAQ,CAAC,iBACvDa,cAAA,CAAAC,aAAA,CAACC,MAAM,CAACC,SAAS,EAAA;AACfC,IAAAA,MAAM,EAAEC,eAAgB;AACxB3B,IAAAA,IAAI,EAAE4B,mBAAoB;AAC1BhB,IAAAA,MAAM,EAAEhB,kBAAmB;AAC3BU,IAAAA,KAAK,EAAC,kBAAkB;IACxBuB,OAAO,EAAGC,CAAC,IAAK;MACdA,CAAC,CAACC,eAAe,EAAE,CAAA;MACnBtB,QAAQ,CAACqB,CAAC,CAAC,CAAA;AACb,KAAA;AAAE,GACH,CACF,EAAE,CAACrB,QAAQ,CAAC,CAAC,CAAA;AAEd,EAAA,oBACEa,cAAA,CAAAC,aAAA,CAACS,cAAc,CAACC,OAAO,EAAAC,MAAA,CAAAC,MAAA,CAAA,EAAA,EACjBtB,KAAK,EAAA;AACTuB,IAAAA,GAAG,EAAEtB,YAAa;AAClBJ,IAAAA,SAAS,EAAEA,SAAU;AACrBC,IAAAA,aAAa,EAAEA,aAAc;AAC7B,IAAA,aAAA,EAAaC,MAAO;AACpByB,IAAAA,iBAAiB,EAAEC,wBAAwB,CAACtC,IAAI,CAAE;AAClDuC,IAAAA,QAAQ,EAAEC,yBAAyB,CAACxC,IAAI,CAAE;AAC1CyC,IAAAA,OAAO,EAAEvB,cAAAA;AAAe,GAAA,CAAA,EAEtBH,WAAW,iBACXO,cAAA,CAAAC,aAAA,CAACmB,YAAY,EAAA;AACXL,IAAAA,iBAAiB,EAAEM,2BAA4B;IAC/CC,IAAI,EAAEC,qBAAqB,CAAC7C,IAAI,CAAA;AAAE,GAAA,EAEhCQ,QACU,CACf,EAECY,kBACoB,CAAC,CAAA;AAE7B,CAAC,CAAC;;;;"}
@@ -146,7 +146,10 @@ function $5cb92bef7577960e$var$usePointerDownOutside(onPointerDownOutside, owner
146
146
  once: true
147
147
  });
148
148
  } else handleAndDispatchPointerDownOutsideEvent();
149
- }
149
+ } else
150
+ // We need to remove the event listener in case the outside click has been canceled.
151
+ // See: https://github.com/radix-ui/primitives/issues/2171
152
+ ownerDocument.removeEventListener('click', handleClickRef.current);
150
153
  isPointerInsideReactTreeRef.current = false;
151
154
  };
152
155
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -63,11 +63,8 @@ const $d3863c46a17e8a28$export$20e40289641fbbb6 = /*#__PURE__*/forwardRef((props
63
63
  // to keep focus trapped correctly.
64
64
  function handleMutations(mutations) {
65
65
  const focusedElement = document.activeElement;
66
- for (const mutation of mutations) {
67
- if (mutation.removedNodes.length > 0) {
68
- if (!(container1 !== null && container1 !== void 0 && container1.contains(focusedElement))) $d3863c46a17e8a28$var$focus(container1);
69
- }
70
- }
66
+ if (focusedElement !== document.body) return;
67
+ for (const mutation of mutations) if (mutation.removedNodes.length > 0) $d3863c46a17e8a28$var$focus(container1);
71
68
  }
72
69
  document.addEventListener('focusin', handleFocusIn);
73
70
  document.addEventListener('focusout', handleFocusOut);
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}