@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.
- package/README.md +11 -2
- package/dist/cjs/components/Forms/Inputs/TextField/TextField.js +6 -3
- package/dist/cjs/components/Forms/Inputs/TextField/TextField.js.map +1 -1
- package/dist/cjs/components/TagBadge/Tag/Tag.js +7 -1
- package/dist/cjs/components/TagBadge/Tag/Tag.js.map +1 -1
- package/dist/cjs/node_modules/@radix-ui/react-dismissable-layer/dist/index.js +4 -1
- package/dist/cjs/node_modules/@radix-ui/react-dismissable-layer/dist/index.js.map +1 -1
- package/dist/cjs/node_modules/@radix-ui/react-focus-scope/dist/index.js +2 -5
- package/dist/cjs/node_modules/@radix-ui/react-focus-scope/dist/index.js.map +1 -1
- package/dist/cjs/node_modules/@radix-ui/react-popper/dist/index.js +10 -3
- package/dist/cjs/node_modules/@radix-ui/react-popper/dist/index.js.map +1 -1
- package/dist/esm/components/Forms/Inputs/TextField/TextField.mjs +6 -4
- package/dist/esm/components/Forms/Inputs/TextField/TextField.mjs.map +1 -1
- package/dist/esm/components/TagBadge/Tag/Tag.mjs +7 -2
- package/dist/esm/components/TagBadge/Tag/Tag.mjs.map +1 -1
- package/dist/esm/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs +4 -1
- package/dist/esm/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs.map +1 -1
- package/dist/esm/node_modules/@radix-ui/react-focus-scope/dist/index.mjs +2 -5
- package/dist/esm/node_modules/@radix-ui/react-focus-scope/dist/index.mjs.map +1 -1
- package/dist/esm/node_modules/@radix-ui/react-popper/dist/index.mjs +10 -3
- package/dist/esm/node_modules/@radix-ui/react-popper/dist/index.mjs.map +1 -1
- package/dist/types/components/Forms/Inputs/TextField/TextField.d.ts +1 -0
- package/dist/types/components/Forms/Inputs/TextField/TextField.d.ts.map +1 -1
- package/dist/types/components/TagBadge/Tag/Tag.d.ts +1 -0
- package/dist/types/components/TagBadge/Tag/Tag.d.ts.map +1 -1
- package/package.json +13 -13
- package/src/components/AlphaCenter/AlphaCenter.stories.tsx +13 -14
- package/src/components/AlphaSmoothCornersBox/AlphaSmoothCornersBox.stories.tsx +24 -21
- package/src/components/AlphaStack/AlphaStack.stories.tsx +24 -18
- package/src/components/Avatars/Avatar/Avatar.stories.tsx +33 -28
- package/src/components/Avatars/AvatarGroup/AvatarGroup.stories.tsx +18 -20
- package/src/components/Avatars/Avatars.stories.tsx +215 -238
- package/src/components/Avatars/CheckableAvatar/CheckableAvatar.stories.tsx +22 -23
- package/src/components/Banner/Banner.stories.tsx +147 -139
- package/src/components/Button/Button.stories.tsx +450 -395
- package/src/components/ButtonGroup/ButtonGroup.stories.tsx +14 -19
- package/src/components/Divider/Divider.stories.tsx +24 -20
- package/src/components/Emoji/Emoji.stories.tsx +25 -27
- package/src/components/Forms/Checkbox/Checkbox.stories.tsx +35 -33
- package/src/components/Forms/FormControl/FormControl.stories.tsx +38 -33
- package/src/components/Forms/FormGroup/FormGroup.stories.tsx +14 -16
- package/src/components/Forms/FormHelperText/FormHelperText.stories.tsx +20 -18
- package/src/components/Forms/FormLabel/FormLabel.stories.tsx +10 -16
- package/src/components/Forms/Inputs/Select/Select.stories.tsx +26 -22
- package/src/components/Forms/Inputs/TextArea/TextArea.stories.tsx +27 -26
- package/src/components/Forms/Inputs/TextField/TextField.stories.tsx +34 -34
- package/src/components/Forms/Inputs/TextField/TextField.test.tsx +60 -2
- package/src/components/Forms/Inputs/TextField/TextField.tsx +4 -3
- package/src/components/Forms/RadioGroup/RadioGroup.stories.tsx +16 -17
- package/src/components/Forms/SegmentedControl/SegmentedControl.stories.tsx +20 -25
- package/src/components/Forms/Slider/Slider.stories.tsx +16 -26
- package/src/components/Forms/Switch/Switch.stories.tsx +24 -20
- package/src/components/Help/Help.stories.tsx +8 -15
- package/src/components/Icon/Icon.stories.tsx +112 -115
- package/src/components/KeyValueListItem/KeyValueListItem.stories.tsx +25 -16
- package/src/components/LegacyRadio/LegacyRadio.stories.tsx +42 -50
- package/src/components/LegacySegmentedControl/LegacySegmentedControl.stories.tsx +30 -20
- package/src/components/LegacyTooltip/LegacyTooltip.stories.tsx +36 -40
- package/src/components/ListItem/ListItem.stories.tsx +57 -53
- package/src/components/ListMenuTitle/ListMenuTitle.stories.tsx +17 -14
- package/src/components/Modals/ConfirmModal/ConfirmModal.stories.tsx +23 -27
- package/src/components/Modals/Modal/Modal.stories.tsx +27 -33
- package/src/components/Navigator/NavGroup/NavGroup.stories.tsx +18 -16
- package/src/components/Navigator/NavItem/NavItem.stories.tsx +23 -17
- package/src/components/OutlineItem/OutlineItem.stories.tsx +15 -16
- package/src/components/Overlay/Overlay.stories.tsx +58 -49
- package/src/components/ProgressBar/ProgressBar.stories.tsx +201 -242
- package/src/components/SectionLabel/SectionLabel.stories.tsx +23 -21
- package/src/components/Spinner/Spinner.stories.tsx +18 -18
- package/src/components/Stack/Stack.stories.tsx +356 -410
- package/src/components/Status/Status.stories.tsx +14 -13
- package/src/components/Tabs/Tabs.stories.tsx +29 -33
- package/src/components/TagBadge/Badge/Badge.stories.tsx +18 -22
- package/src/components/TagBadge/Tag/Tag.stories.tsx +21 -21
- package/src/components/TagBadge/Tag/Tag.test.tsx +35 -0
- package/src/components/TagBadge/Tag/Tag.tsx +7 -2
- package/src/components/TagBadge/TagBadge.stories.tsx +102 -67
- package/src/components/TagBadge/TagBadgeCommon/TagBadgeText/TagBadgeText.stories.tsx +15 -17
- package/src/components/Text/Text.stories.tsx +47 -44
- package/src/components/Toast/Toast.stories.tsx +56 -62
- package/src/components/Tooltip/Tooltip.stories.tsx +29 -35
- package/src/foundation/Border/Border.stories.tsx +17 -16
- package/src/foundation/Colors/Palette/Palette.stories.tsx +7 -6
- package/src/foundation/Colors/Theme/Theme.stories.tsx +21 -15
- package/src/foundation/Elevation/Elevation.stories.tsx +22 -19
- package/src/foundation/Rounding/Rounding.stories.tsx +24 -21
- package/src/foundation/Spacing/Spacing.stories.tsx +9 -8
- package/src/foundation/Transition/Transition.stories.tsx +28 -30
- package/src/foundation/Typography.stories.tsx +45 -36
- package/src/providers/BezierProvider.stories.tsx +13 -15
- 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
|
-
},
|
|
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
|
|
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:
|
|
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
|
|
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
|
-
|
|
69
|
-
|
|
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
|
-
|
|
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:
|
|
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
|
-
},
|
|
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
|
|
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":"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"}
|
|
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:
|
|
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
|
|
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
|
-
|
|
67
|
-
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|