@channel.io/bezier-react 3.1.3 → 3.1.5
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/dist/cjs/components/AlphaAvatar/Avatar.js +0 -2
- package/dist/cjs/components/AlphaAvatar/Avatar.js.map +1 -1
- package/dist/cjs/components/Avatar/Avatar.js +0 -2
- package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
- package/dist/cjs/components/Badge/Badge.js +0 -1
- package/dist/cjs/components/Badge/Badge.js.map +1 -1
- package/dist/cjs/components/Banner/Banner.js +1 -1
- package/dist/cjs/components/Banner/Banner.js.map +1 -1
- package/dist/cjs/components/Button/Button.js +1 -1
- package/dist/cjs/components/Button/Button.js.map +1 -1
- package/dist/cjs/components/Checkbox/Checkbox.js +2 -0
- package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/cjs/components/Divider/Divider.js +1 -1
- package/dist/cjs/components/Divider/Divider.js.map +1 -1
- package/dist/cjs/components/Emoji/Emoji.js +0 -1
- package/dist/cjs/components/Emoji/Emoji.js.map +1 -1
- package/dist/cjs/components/FormControl/FormControl.js +0 -1
- package/dist/cjs/components/FormControl/FormControl.js.map +1 -1
- package/dist/cjs/components/FormHelperText/FormHelperText.js +4 -2
- package/dist/cjs/components/FormHelperText/FormHelperText.js.map +1 -1
- package/dist/cjs/components/NavGroup/NavGroup.js +4 -2
- package/dist/cjs/components/NavGroup/NavGroup.js.map +1 -1
- package/dist/cjs/components/NavItem/NavItem.js +4 -2
- package/dist/cjs/components/NavItem/NavItem.js.map +1 -1
- package/dist/cjs/components/SectionLabel/SectionLabel.js +2 -2
- package/dist/cjs/components/SectionLabel/SectionLabel.js.map +1 -1
- package/dist/cjs/components/Switch/Switch.js +0 -1
- package/dist/cjs/components/Switch/Switch.js.map +1 -1
- package/dist/cjs/components/Tag/Tag.js +5 -2
- package/dist/cjs/components/Tag/Tag.js.map +1 -1
- package/dist/cjs/components/TextField/TextField.js +5 -2
- package/dist/cjs/components/TextField/TextField.js.map +1 -1
- package/dist/cjs/utils/assert.js +12 -3
- package/dist/cjs/utils/assert.js.map +1 -1
- package/dist/esm/components/AlphaAvatar/Avatar.mjs +1 -1
- package/dist/esm/components/AlphaAvatar/Avatar.mjs.map +1 -1
- package/dist/esm/components/Avatar/Avatar.mjs +1 -1
- package/dist/esm/components/Avatar/Avatar.mjs.map +1 -1
- package/dist/esm/components/Badge/Badge.mjs +1 -1
- package/dist/esm/components/Badge/Badge.mjs.map +1 -1
- package/dist/esm/components/Banner/Banner.mjs +1 -1
- package/dist/esm/components/Banner/Banner.mjs.map +1 -1
- package/dist/esm/components/Button/Button.mjs +1 -1
- package/dist/esm/components/Button/Button.mjs.map +1 -1
- package/dist/esm/components/Checkbox/Checkbox.mjs +2 -0
- package/dist/esm/components/Checkbox/Checkbox.mjs.map +1 -1
- package/dist/esm/components/Divider/Divider.mjs +2 -1
- package/dist/esm/components/Divider/Divider.mjs.map +1 -1
- package/dist/esm/components/Emoji/Emoji.mjs +1 -1
- package/dist/esm/components/Emoji/Emoji.mjs.map +1 -1
- package/dist/esm/components/FormControl/FormControl.mjs +1 -1
- package/dist/esm/components/FormControl/FormControl.mjs.map +1 -1
- package/dist/esm/components/FormHelperText/FormHelperText.mjs +5 -1
- package/dist/esm/components/FormHelperText/FormHelperText.mjs.map +1 -1
- package/dist/esm/components/NavGroup/NavGroup.mjs +5 -1
- package/dist/esm/components/NavGroup/NavGroup.mjs.map +1 -1
- package/dist/esm/components/NavItem/NavItem.mjs +5 -1
- package/dist/esm/components/NavItem/NavItem.mjs.map +1 -1
- package/dist/esm/components/SectionLabel/SectionLabel.mjs +2 -2
- package/dist/esm/components/SectionLabel/SectionLabel.mjs.map +1 -1
- package/dist/esm/components/Switch/Switch.mjs +1 -1
- package/dist/esm/components/Switch/Switch.mjs.map +1 -1
- package/dist/esm/components/Tag/Tag.mjs +6 -1
- package/dist/esm/components/Tag/Tag.mjs.map +1 -1
- package/dist/esm/components/TextField/TextField.mjs +6 -1
- package/dist/esm/components/TextField/TextField.mjs.map +1 -1
- package/dist/esm/utils/assert.mjs +12 -3
- package/dist/esm/utils/assert.mjs.map +1 -1
- package/dist/types/components/AlphaAvatar/Avatar.d.ts +0 -2
- package/dist/types/components/AlphaAvatar/Avatar.d.ts.map +1 -1
- package/dist/types/components/Avatar/Avatar.d.ts +0 -2
- package/dist/types/components/Avatar/Avatar.d.ts.map +1 -1
- package/dist/types/components/Badge/Badge.d.ts +0 -1
- package/dist/types/components/Badge/Badge.d.ts.map +1 -1
- package/dist/types/components/Banner/Banner.d.ts.map +1 -1
- package/dist/types/components/Button/Button.d.ts.map +1 -1
- package/dist/types/components/Checkbox/Checkbox.d.ts +2 -1
- package/dist/types/components/Checkbox/Checkbox.d.ts.map +1 -1
- package/dist/types/components/Divider/Divider.d.ts +0 -1
- package/dist/types/components/Divider/Divider.d.ts.map +1 -1
- package/dist/types/components/Emoji/Emoji.d.ts +0 -1
- package/dist/types/components/Emoji/Emoji.d.ts.map +1 -1
- package/dist/types/components/FormControl/FormControl.d.ts +0 -1
- package/dist/types/components/FormControl/FormControl.d.ts.map +1 -1
- package/dist/types/components/FormHelperText/FormHelperText.d.ts +0 -2
- package/dist/types/components/FormHelperText/FormHelperText.d.ts.map +1 -1
- package/dist/types/components/NavGroup/NavGroup.d.ts +0 -2
- package/dist/types/components/NavGroup/NavGroup.d.ts.map +1 -1
- package/dist/types/components/NavItem/NavItem.d.ts +0 -2
- package/dist/types/components/NavItem/NavItem.d.ts.map +1 -1
- package/dist/types/components/SectionLabel/SectionLabel.d.ts.map +1 -1
- package/dist/types/components/Switch/Switch.d.ts +0 -1
- package/dist/types/components/Switch/Switch.d.ts.map +1 -1
- package/dist/types/components/Tag/Tag.d.ts +0 -2
- package/dist/types/components/Tag/Tag.d.ts.map +1 -1
- package/dist/types/components/TextField/TextField.d.ts +0 -2
- package/dist/types/components/TextField/TextField.d.ts.map +1 -1
- package/dist/types/utils/assert.d.ts +1 -0
- package/dist/types/utils/assert.d.ts.map +1 -1
- package/package.json +2 -3
- package/src/components/AlphaAvatar/Avatar.test.tsx +1 -71
- package/src/components/AlphaAvatar/Avatar.tsx +2 -2
- package/src/components/AlphaAvatarGroup/AvatarGroup.test.tsx +0 -12
- package/src/components/Avatar/Avatar.test.tsx +1 -71
- package/src/components/Avatar/Avatar.tsx +2 -2
- package/src/components/AvatarGroup/AvatarGroup.test.tsx +0 -12
- package/src/components/Badge/Badge.tsx +2 -2
- package/src/components/Banner/Banner.tsx +2 -1
- package/src/components/Button/Button.tsx +2 -1
- package/src/components/Checkbox/Checkbox.tsx +6 -1
- package/src/components/Divider/Divider.test.tsx +11 -12
- package/src/components/Divider/Divider.tsx +5 -1
- package/src/components/Emoji/Emoji.tsx +4 -1
- package/src/components/FormControl/FormControl.test.tsx +1 -39
- package/src/components/FormControl/FormControl.tsx +1 -1
- package/src/components/FormHelperText/FormHelperText.test.tsx +11 -30
- package/src/components/FormHelperText/FormHelperText.tsx +9 -2
- package/src/components/FormLabel/FormLabel.test.tsx +0 -7
- package/src/components/Help/Help.test.tsx +0 -14
- package/src/components/LegacyTooltip/LegacyTooltip.test.tsx +0 -12
- package/src/components/Modal/Modal.test.tsx +8 -1
- package/src/components/NavGroup/NavGroup.tsx +9 -2
- package/src/components/NavItem/NavItem.tsx +9 -2
- package/src/components/SectionLabel/SectionLabel.tsx +4 -2
- package/src/components/Slider/Slider.test.tsx +1 -8
- package/src/components/SmoothCornersBox/SmoothCornersBox.test.tsx +0 -5
- package/src/components/Switch/Switch.test.tsx +17 -17
- package/src/components/Switch/Switch.tsx +4 -1
- package/src/components/Tag/Tag.test.tsx +11 -15
- package/src/components/Tag/Tag.tsx +10 -2
- package/src/components/TextField/TextField.test.tsx +5 -5
- package/src/components/TextField/TextField.tsx +10 -2
- package/src/utils/assert.test.ts +43 -0
- package/src/utils/assert.ts +15 -3
- package/src/components/AlphaAvatar/__snapshots__/Avatar.test.tsx.snap +0 -93
- package/src/components/AlphaAvatarGroup/__snapshots__/AvatarGroup.test.tsx.snap +0 -215
- package/src/components/Avatar/__snapshots__/Avatar.test.tsx.snap +0 -93
- package/src/components/AvatarGroup/__snapshots__/AvatarGroup.test.tsx.snap +0 -215
- package/src/components/Badge/Badge.test.tsx +0 -27
- package/src/components/Badge/__snapshots__/Badge.test.tsx.snap +0 -8
- package/src/components/Emoji/Emoji.test.tsx +0 -32
- package/src/components/Emoji/__snapshots__/Emoji.test.tsx.snap +0 -11
- package/src/components/FormControl/__snapshots__/FormControl.test.tsx.snap +0 -249
- package/src/components/FormGroup/FormGroup.test.tsx +0 -24
- package/src/components/FormGroup/__snapshots__/FormGroup.test.tsx.snap +0 -10
- package/src/components/FormHelperText/__snapshots__/FormHelperText.test.tsx.snap +0 -24
- package/src/components/FormLabel/__snapshots__/FormLabel.test.tsx.snap +0 -11
- package/src/components/Help/__snapshots__/Help.test.tsx.snap +0 -21
- package/src/components/LegacyTooltip/__snapshots__/LegacyTooltip.test.tsx.snap +0 -37
- package/src/components/NavGroup/NavGroup.test.tsx +0 -75
- package/src/components/NavGroup/__snapshots__/NavGroup.test.tsx.snap +0 -121
- package/src/components/NavItem/NavItem.test.tsx +0 -66
- package/src/components/NavItem/__snapshots__/NavItem.test.tsx.snap +0 -75
- package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +0 -50
- package/src/components/SmoothCornersBox/__snapshots__/SmoothCornersBox.test.tsx.snap +0 -11
- package/src/components/Tag/__snapshots__/Tag.test.tsx.snap +0 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextField.mjs","sources":["../../../../src/components/TextField/TextField.tsx"],"sourcesContent":["'use client'\n\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\nimport * as React from 'react'\n\nimport { CancelCircleFilledIcon } from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\nimport { v4 as uuid } from 'uuid'\n\nimport {\n COMMON_IME_CONTROL_KEYS,\n useKeyboardActionLockerWhileComposing,\n} from '~/src/hooks/useKeyboardActionLockerWhileComposing'\nimport { type FormFieldSize } from '~/src/types/props'\nimport { getFormFieldSizeClassName } from '~/src/types/props-helpers'\nimport { toString } from '~/src/utils/string'\nimport { isArray, isEmpty, isNil } from '~/src/utils/type'\n\nimport { BaseButton } from '~/src/components/BaseButton'\nimport { useFormFieldProps } from '~/src/components/FormControl'\nimport { Icon } from '~/src/components/Icon'\nimport { useWindow } from '~/src/components/WindowProvider'\n\nimport {\n type SelectionRangeDirections,\n type TextFieldItemProps,\n type TextFieldProps,\n type TextFieldRef,\n} from './TextField.types'\n\nimport styles from './TextField.module.scss'\n\nexport const TEXT_INPUT_TEST_ID = 'bezier-text-input'\nexport const TEXT_INPUT_CLEAR_ICON_TEST_ID = 'bezier-text-input-clear-icon'\n\n/**\n * FIXME: This mapping constant was defined for UI consistency,\n * and it should be removed with size attribute\n */\nconst INPUT_LENGTH_BY_SIZE: Record<FormFieldSize, number> = {\n xs: 28,\n m: 36,\n l: 44,\n xl: 54,\n}\n\nfunction TextFieldLeftContent({\n children,\n wrapperStyle,\n wrapperClassName,\n withoutWrapper,\n}: {\n children: TextFieldProps['leftContent']\n wrapperStyle: TextFieldProps['leftWrapperStyle']\n wrapperClassName: TextFieldProps['leftWrapperClassName']\n withoutWrapper: TextFieldProps['withoutLeftContentWrapper']\n}) {\n if (isNil(children)) {\n return null\n }\n\n const Content = (() => {\n if ('icon' in children) {\n return (\n <Icon\n className={!isNil(children.onClick) ? styles.clickable : undefined}\n source={children.icon}\n size=\"s\"\n color={children.iconColor ?? 'txt-black-dark'}\n onClick={children.onClick}\n />\n )\n }\n\n return children\n })()\n\n if (withoutWrapper) {\n return Content\n }\n\n return (\n <div\n style={wrapperStyle}\n className={classNames(styles.LeftContentWrapper, wrapperClassName)}\n >\n {Content}\n </div>\n )\n}\n\nfunction TextFieldRightContent({\n children,\n wrapperStyle,\n wrapperClassName,\n withoutWrapper,\n}: {\n children: TextFieldProps['rightContent']\n wrapperStyle: TextFieldProps['rightWrapperStyle']\n wrapperClassName: TextFieldProps['rightWrapperClassName']\n withoutWrapper: TextFieldProps['withoutRightContentWrapper']\n}) {\n const renderRightItem = useCallback(\n (item: TextFieldItemProps, key?: string) => {\n if ('icon' in item) {\n const Comp = !isNil(item.onClick) ? BaseButton : 'div'\n\n return (\n <Comp\n key={key}\n className={styles.RightItemWrapper}\n onClick={item.onClick}\n >\n <Icon\n source={item.icon}\n size=\"xs\"\n color={item.iconColor ?? 'txt-black-dark'}\n />\n </Comp>\n )\n }\n\n return React.cloneElement(item, { key })\n },\n []\n )\n\n if (isNil(children) || isEmpty(children)) {\n return null\n }\n\n const contents = isArray(children)\n ? children.map((item) => renderRightItem(item, uuid()))\n : renderRightItem(children)\n\n if (withoutWrapper) {\n return <>{contents}</>\n }\n\n return (\n <div\n style={wrapperStyle}\n className={classNames(styles.RightContentWrapper, wrapperClassName)}\n >\n {contents}\n </div>\n )\n}\n\nexport const TextField = forwardRef<TextFieldRef, TextFieldProps>(\n function TextField(\n {\n type,\n size: sizeProps,\n autoFocus,\n autoComplete = 'off',\n variant = 'primary',\n allowClear = false,\n selectAllOnInit = false,\n selectAllOnFocus = false,\n leftContent,\n rightContent,\n withoutLeftContentWrapper = false,\n withoutRightContentWrapper = false,\n style,\n className,\n wrapperStyle,\n wrapperClassName,\n leftWrapperStyle,\n leftWrapperClassName,\n rightWrapperStyle,\n rightWrapperClassName,\n value,\n onFocus,\n onChange,\n onKeyDown,\n onKeyUp,\n ...rest\n },\n forwardedRef\n ) {\n const { window } = useWindow()\n\n const {\n disabled,\n readOnly,\n hasError,\n size: formFieldSize,\n ...ownProps\n } = useFormFieldProps(rest)\n\n const focusTimeout = useRef<ReturnType<Window['setTimeout']>>(undefined)\n const blurTimeout = useRef<ReturnType<Window['setTimeout']>>(undefined)\n\n const normalizedValue = isNil(value) ? undefined : toString(value)\n const activeInput = !disabled && !readOnly\n const activeClear = activeInput && allowClear && !isEmpty(normalizedValue)\n const size = sizeProps ?? formFieldSize ?? 'm'\n\n const inputRef = useRef<HTMLInputElement | null>(null)\n\n const focus = useCallback(() => {\n clearTimeout(focusTimeout.current)\n focusTimeout.current = window.setTimeout(() => {\n inputRef.current?.focus()\n }, 0)\n }, [window])\n\n const blur = useCallback(() => {\n clearTimeout(blurTimeout.current)\n blurTimeout.current = window.setTimeout(() => {\n inputRef.current?.blur()\n }, 0)\n }, [window])\n\n const setSelectionRange = useCallback(\n (start?: number, end?: number, direction?: SelectionRangeDirections) => {\n if (type && ['number', 'email', 'hidden'].includes(type)) {\n return\n }\n inputRef.current?.setSelectionRange(\n start || 0,\n end || 0,\n direction || 'none'\n )\n },\n [type]\n )\n\n const getSelectionRange = useCallback(\n (): [number, number] => [\n inputRef.current?.selectionStart || 0,\n inputRef.current?.selectionEnd || 0,\n ],\n []\n )\n\n const selectAll = useCallback(() => {\n focus()\n if (inputRef.current) {\n setSelectionRange(0, inputRef.current.value.length, 'backward')\n }\n }, [focus, setSelectionRange])\n\n const unselect = useCallback(() => {\n focus()\n if (inputRef.current) {\n const valueLen = inputRef.current.value.length\n setSelectionRange(valueLen, valueLen)\n }\n }, [focus, setSelectionRange])\n\n const getBoundingClientRect = useCallback((): DOMRect => {\n if (inputRef.current) {\n return inputRef.current.getBoundingClientRect()\n }\n return new DOMRect(undefined, undefined, 0, 0)\n }, [])\n\n const getDOMNode = useCallback(() => inputRef.current, [])\n\n const handle = useMemo(\n (): TextFieldRef => ({\n focus,\n blur,\n setSelectionRange,\n getSelectionRange,\n selectAll,\n unselect,\n getBoundingClientRect,\n getDOMNode,\n }),\n [\n focus,\n blur,\n setSelectionRange,\n getSelectionRange,\n selectAll,\n unselect,\n getBoundingClientRect,\n getDOMNode,\n ]\n )\n\n useImperativeHandle(forwardedRef, () => handle)\n\n useEffect(() => {\n if (autoFocus) {\n focus()\n }\n if (selectAllOnInit) {\n focus()\n selectAll()\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLInputElement>) => {\n if (!activeInput) {\n return\n }\n if (selectAllOnFocus) {\n selectAll()\n }\n if (onFocus) {\n onFocus(event)\n }\n },\n [selectAllOnFocus, selectAll, activeInput, onFocus]\n )\n\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n if (activeInput && onChange) {\n onChange(event)\n }\n },\n [activeInput, onChange]\n )\n\n const {\n handleKeyDown: handleKeyDownWrappedWithComposingLocker,\n handleKeyUp: handleKeyUpWrappedWithComposingLocker,\n } = useKeyboardActionLockerWhileComposing({\n keysToLock: COMMON_IME_CONTROL_KEYS,\n onKeyDown,\n onKeyUp,\n })\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (activeInput && handleKeyDownWrappedWithComposingLocker) {\n handleKeyDownWrappedWithComposingLocker(event)\n }\n },\n [activeInput, handleKeyDownWrappedWithComposingLocker]\n )\n\n const handleKeyUp = useCallback(\n (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (activeInput && handleKeyUpWrappedWithComposingLocker) {\n handleKeyUpWrappedWithComposingLocker(event)\n }\n },\n [activeInput, handleKeyUpWrappedWithComposingLocker]\n )\n\n const handleClear = useCallback(() => {\n const input = inputRef.current\n if (activeInput && input) {\n const setValue = Object?.getOwnPropertyDescriptor(\n HTMLInputElement.prototype,\n 'value'\n )?.set\n const event = new Event('input', { bubbles: true })\n setValue?.call(input, '')\n input.dispatchEvent(event)\n }\n }, [activeInput])\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n style={wrapperStyle}\n className={classNames(\n styles.TextFieldWrapper,\n styles[`variant-${variant}`],\n styles[`size-${size}`],\n getFormFieldSizeClassName(size),\n wrapperClassName\n )}\n data-testid={TEXT_INPUT_TEST_ID}\n onMouseDown={focus}\n >\n <TextFieldLeftContent\n wrapperStyle={leftWrapperStyle}\n wrapperClassName={leftWrapperClassName}\n withoutWrapper={withoutLeftContentWrapper}\n >\n {leftContent}\n </TextFieldLeftContent>\n\n <input\n style={style}\n className={classNames(styles.TextFieldInput, className)}\n ref={inputRef}\n type={type}\n value={normalizedValue}\n /**\n * Invalid size attribute\n * FIXME: https://github.com/channel-io/bezier-react/issues/1053\n */\n size={INPUT_LENGTH_BY_SIZE[size]}\n autoComplete={autoComplete}\n readOnly={readOnly}\n disabled={disabled}\n onFocus={handleFocus}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onKeyUp={handleKeyUp}\n {...ownProps}\n />\n\n {activeClear && (\n <BaseButton\n className={styles.CloseIconWrapper}\n tabIndex={0}\n onClick={handleClear}\n >\n <Icon\n className={styles.CloseIcon}\n data-testid={TEXT_INPUT_CLEAR_ICON_TEST_ID}\n source={CancelCircleFilledIcon}\n size=\"xs\"\n />\n </BaseButton>\n )}\n\n <TextFieldRightContent\n wrapperStyle={rightWrapperStyle}\n withoutWrapper={withoutRightContentWrapper}\n wrapperClassName={rightWrapperClassName}\n >\n {rightContent}\n </TextFieldRightContent>\n </div>\n )\n }\n)\n"],"names":["TEXT_INPUT_TEST_ID","TEXT_INPUT_CLEAR_ICON_TEST_ID","INPUT_LENGTH_BY_SIZE","xs","m","l","xl","TextFieldLeftContent","children","wrapperStyle","wrapperClassName","withoutWrapper","isNil","Content","_children$iconColor","_jsx","Icon","className","onClick","styles","clickable","undefined","source","icon","size","color","iconColor","style","classNames","LeftContentWrapper","TextFieldRightContent","renderRightItem","useCallback","item","key","_item$iconColor","Comp","BaseButton","RightItemWrapper","React","cloneElement","isEmpty","contents","isArray","map","uuid","_Fragment","RightContentWrapper","TextField","forwardRef","type","sizeProps","autoFocus","autoComplete","variant","allowClear","selectAllOnInit","selectAllOnFocus","leftContent","rightContent","withoutLeftContentWrapper","withoutRightContentWrapper","leftWrapperStyle","leftWrapperClassName","rightWrapperStyle","rightWrapperClassName","value","onFocus","onChange","onKeyDown","onKeyUp","rest","forwardedRef","_ref","window","useWindow","disabled","readOnly","hasError","formFieldSize","ownProps","useFormFieldProps","focusTimeout","useRef","blurTimeout","normalizedValue","toString","activeInput","activeClear","inputRef","focus","clearTimeout","current","setTimeout","_inputRef$current","blur","_inputRef$current2","setSelectionRange","start","end","direction","_inputRef$current3","includes","getSelectionRange","_inputRef$current4","_inputRef$current5","selectionStart","selectionEnd","selectAll","length","unselect","valueLen","getBoundingClientRect","DOMRect","getDOMNode","handle","useMemo","useImperativeHandle","useEffect","handleFocus","event","handleChange","handleKeyDown","handleKeyDownWrappedWithComposingLocker","handleKeyUp","handleKeyUpWrappedWithComposingLocker","useKeyboardActionLockerWhileComposing","keysToLock","COMMON_IME_CONTROL_KEYS","handleClear","input","_Object$getOwnPropert","setValue","Object","getOwnPropertyDescriptor","HTMLInputElement","prototype","set","Event","bubbles","call","dispatchEvent","_jsxs","TextFieldWrapper","getFormFieldSizeClassName","onMouseDown","TextFieldInput","ref","CloseIconWrapper","tabIndex","CloseIcon","CancelCircleFilledIcon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TextField.mjs","sources":["../../../../src/components/TextField/TextField.tsx"],"sourcesContent":["'use client'\n\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\nimport * as React from 'react'\n\nimport { CancelCircleFilledIcon } from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\nimport { v4 as uuid } from 'uuid'\n\nimport {\n COMMON_IME_CONTROL_KEYS,\n useKeyboardActionLockerWhileComposing,\n} from '~/src/hooks/useKeyboardActionLockerWhileComposing'\nimport { type FormFieldSize } from '~/src/types/props'\nimport { getFormFieldSizeClassName } from '~/src/types/props-helpers'\nimport { toString } from '~/src/utils/string'\nimport { isArray, isEmpty, isNil } from '~/src/utils/type'\n\nimport { BaseButton } from '~/src/components/BaseButton'\nimport { useFormFieldProps } from '~/src/components/FormControl'\nimport { Icon } from '~/src/components/Icon'\nimport { useWindow } from '~/src/components/WindowProvider'\n\nimport {\n type SelectionRangeDirections,\n type TextFieldItemProps,\n type TextFieldProps,\n type TextFieldRef,\n} from './TextField.types'\n\nimport styles from './TextField.module.scss'\n\n/**\n * @deprecated\n */\nconst TEXT_INPUT_TEST_ID = 'bezier-text-input'\n\n/**\n * @deprecated\n */\nconst TEXT_INPUT_CLEAR_ICON_TEST_ID = 'bezier-text-input-clear-icon'\n\n/**\n * FIXME: This mapping constant was defined for UI consistency,\n * and it should be removed with size attribute\n */\nconst INPUT_LENGTH_BY_SIZE: Record<FormFieldSize, number> = {\n xs: 28,\n m: 36,\n l: 44,\n xl: 54,\n}\n\nfunction TextFieldLeftContent({\n children,\n wrapperStyle,\n wrapperClassName,\n withoutWrapper,\n}: {\n children: TextFieldProps['leftContent']\n wrapperStyle: TextFieldProps['leftWrapperStyle']\n wrapperClassName: TextFieldProps['leftWrapperClassName']\n withoutWrapper: TextFieldProps['withoutLeftContentWrapper']\n}) {\n if (isNil(children)) {\n return null\n }\n\n const Content = (() => {\n if ('icon' in children) {\n return (\n <Icon\n className={!isNil(children.onClick) ? styles.clickable : undefined}\n source={children.icon}\n size=\"s\"\n color={children.iconColor ?? 'txt-black-dark'}\n onClick={children.onClick}\n />\n )\n }\n\n return children\n })()\n\n if (withoutWrapper) {\n return Content\n }\n\n return (\n <div\n style={wrapperStyle}\n className={classNames(styles.LeftContentWrapper, wrapperClassName)}\n >\n {Content}\n </div>\n )\n}\n\nfunction TextFieldRightContent({\n children,\n wrapperStyle,\n wrapperClassName,\n withoutWrapper,\n}: {\n children: TextFieldProps['rightContent']\n wrapperStyle: TextFieldProps['rightWrapperStyle']\n wrapperClassName: TextFieldProps['rightWrapperClassName']\n withoutWrapper: TextFieldProps['withoutRightContentWrapper']\n}) {\n const renderRightItem = useCallback(\n (item: TextFieldItemProps, key?: string) => {\n if ('icon' in item) {\n const Comp = !isNil(item.onClick) ? BaseButton : 'div'\n\n return (\n <Comp\n key={key}\n className={styles.RightItemWrapper}\n onClick={item.onClick}\n >\n <Icon\n source={item.icon}\n size=\"xs\"\n color={item.iconColor ?? 'txt-black-dark'}\n />\n </Comp>\n )\n }\n\n return React.cloneElement(item, { key })\n },\n []\n )\n\n if (isNil(children) || isEmpty(children)) {\n return null\n }\n\n const contents = isArray(children)\n ? children.map((item) => renderRightItem(item, uuid()))\n : renderRightItem(children)\n\n if (withoutWrapper) {\n return <>{contents}</>\n }\n\n return (\n <div\n style={wrapperStyle}\n className={classNames(styles.RightContentWrapper, wrapperClassName)}\n >\n {contents}\n </div>\n )\n}\n\nexport const TextField = forwardRef<TextFieldRef, TextFieldProps>(\n function TextField(\n {\n type,\n size: sizeProps,\n autoFocus,\n autoComplete = 'off',\n variant = 'primary',\n allowClear = false,\n selectAllOnInit = false,\n selectAllOnFocus = false,\n leftContent,\n rightContent,\n withoutLeftContentWrapper = false,\n withoutRightContentWrapper = false,\n style,\n className,\n wrapperStyle,\n wrapperClassName,\n leftWrapperStyle,\n leftWrapperClassName,\n rightWrapperStyle,\n rightWrapperClassName,\n value,\n onFocus,\n onChange,\n onKeyDown,\n onKeyUp,\n ...rest\n },\n forwardedRef\n ) {\n const { window } = useWindow()\n\n const {\n disabled,\n readOnly,\n hasError,\n size: formFieldSize,\n ...ownProps\n } = useFormFieldProps(rest)\n\n const focusTimeout = useRef<ReturnType<Window['setTimeout']>>(undefined)\n const blurTimeout = useRef<ReturnType<Window['setTimeout']>>(undefined)\n\n const normalizedValue = isNil(value) ? undefined : toString(value)\n const activeInput = !disabled && !readOnly\n const activeClear = activeInput && allowClear && !isEmpty(normalizedValue)\n const size = sizeProps ?? formFieldSize ?? 'm'\n\n const inputRef = useRef<HTMLInputElement | null>(null)\n\n const focus = useCallback(() => {\n clearTimeout(focusTimeout.current)\n focusTimeout.current = window.setTimeout(() => {\n inputRef.current?.focus()\n }, 0)\n }, [window])\n\n const blur = useCallback(() => {\n clearTimeout(blurTimeout.current)\n blurTimeout.current = window.setTimeout(() => {\n inputRef.current?.blur()\n }, 0)\n }, [window])\n\n const setSelectionRange = useCallback(\n (start?: number, end?: number, direction?: SelectionRangeDirections) => {\n if (type && ['number', 'email', 'hidden'].includes(type)) {\n return\n }\n inputRef.current?.setSelectionRange(\n start || 0,\n end || 0,\n direction || 'none'\n )\n },\n [type]\n )\n\n const getSelectionRange = useCallback(\n (): [number, number] => [\n inputRef.current?.selectionStart || 0,\n inputRef.current?.selectionEnd || 0,\n ],\n []\n )\n\n const selectAll = useCallback(() => {\n focus()\n if (inputRef.current) {\n setSelectionRange(0, inputRef.current.value.length, 'backward')\n }\n }, [focus, setSelectionRange])\n\n const unselect = useCallback(() => {\n focus()\n if (inputRef.current) {\n const valueLen = inputRef.current.value.length\n setSelectionRange(valueLen, valueLen)\n }\n }, [focus, setSelectionRange])\n\n const getBoundingClientRect = useCallback((): DOMRect => {\n if (inputRef.current) {\n return inputRef.current.getBoundingClientRect()\n }\n return new DOMRect(undefined, undefined, 0, 0)\n }, [])\n\n const getDOMNode = useCallback(() => inputRef.current, [])\n\n const handle = useMemo(\n (): TextFieldRef => ({\n focus,\n blur,\n setSelectionRange,\n getSelectionRange,\n selectAll,\n unselect,\n getBoundingClientRect,\n getDOMNode,\n }),\n [\n focus,\n blur,\n setSelectionRange,\n getSelectionRange,\n selectAll,\n unselect,\n getBoundingClientRect,\n getDOMNode,\n ]\n )\n\n useImperativeHandle(forwardedRef, () => handle)\n\n useEffect(() => {\n if (autoFocus) {\n focus()\n }\n if (selectAllOnInit) {\n focus()\n selectAll()\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLInputElement>) => {\n if (!activeInput) {\n return\n }\n if (selectAllOnFocus) {\n selectAll()\n }\n if (onFocus) {\n onFocus(event)\n }\n },\n [selectAllOnFocus, selectAll, activeInput, onFocus]\n )\n\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n if (activeInput && onChange) {\n onChange(event)\n }\n },\n [activeInput, onChange]\n )\n\n const {\n handleKeyDown: handleKeyDownWrappedWithComposingLocker,\n handleKeyUp: handleKeyUpWrappedWithComposingLocker,\n } = useKeyboardActionLockerWhileComposing({\n keysToLock: COMMON_IME_CONTROL_KEYS,\n onKeyDown,\n onKeyUp,\n })\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (activeInput && handleKeyDownWrappedWithComposingLocker) {\n handleKeyDownWrappedWithComposingLocker(event)\n }\n },\n [activeInput, handleKeyDownWrappedWithComposingLocker]\n )\n\n const handleKeyUp = useCallback(\n (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (activeInput && handleKeyUpWrappedWithComposingLocker) {\n handleKeyUpWrappedWithComposingLocker(event)\n }\n },\n [activeInput, handleKeyUpWrappedWithComposingLocker]\n )\n\n const handleClear = useCallback(() => {\n const input = inputRef.current\n if (activeInput && input) {\n const setValue = Object?.getOwnPropertyDescriptor(\n HTMLInputElement.prototype,\n 'value'\n )?.set\n const event = new Event('input', { bubbles: true })\n setValue?.call(input, '')\n input.dispatchEvent(event)\n }\n }, [activeInput])\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n style={wrapperStyle}\n className={classNames(\n styles.TextFieldWrapper,\n styles[`variant-${variant}`],\n styles[`size-${size}`],\n getFormFieldSizeClassName(size),\n wrapperClassName\n )}\n data-testid={TEXT_INPUT_TEST_ID}\n onMouseDown={focus}\n >\n <TextFieldLeftContent\n wrapperStyle={leftWrapperStyle}\n wrapperClassName={leftWrapperClassName}\n withoutWrapper={withoutLeftContentWrapper}\n >\n {leftContent}\n </TextFieldLeftContent>\n\n <input\n style={style}\n className={classNames(styles.TextFieldInput, className)}\n ref={inputRef}\n type={type}\n value={normalizedValue}\n /**\n * Invalid size attribute\n * FIXME: https://github.com/channel-io/bezier-react/issues/1053\n */\n size={INPUT_LENGTH_BY_SIZE[size]}\n autoComplete={autoComplete}\n readOnly={readOnly}\n disabled={disabled}\n onFocus={handleFocus}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onKeyUp={handleKeyUp}\n {...ownProps}\n />\n\n {activeClear && (\n <BaseButton\n className={styles.CloseIconWrapper}\n tabIndex={0}\n onClick={handleClear}\n aria-label=\"Clear input\"\n >\n <Icon\n className={styles.CloseIcon}\n data-testid={TEXT_INPUT_CLEAR_ICON_TEST_ID}\n source={CancelCircleFilledIcon}\n size=\"xs\"\n />\n </BaseButton>\n )}\n\n <TextFieldRightContent\n wrapperStyle={rightWrapperStyle}\n withoutWrapper={withoutRightContentWrapper}\n wrapperClassName={rightWrapperClassName}\n >\n {rightContent}\n </TextFieldRightContent>\n </div>\n )\n }\n)\n"],"names":["TEXT_INPUT_TEST_ID","TEXT_INPUT_CLEAR_ICON_TEST_ID","INPUT_LENGTH_BY_SIZE","xs","m","l","xl","TextFieldLeftContent","children","wrapperStyle","wrapperClassName","withoutWrapper","isNil","Content","_children$iconColor","_jsx","Icon","className","onClick","styles","clickable","undefined","source","icon","size","color","iconColor","style","classNames","LeftContentWrapper","TextFieldRightContent","renderRightItem","useCallback","item","key","_item$iconColor","Comp","BaseButton","RightItemWrapper","React","cloneElement","isEmpty","contents","isArray","map","uuid","_Fragment","RightContentWrapper","TextField","forwardRef","type","sizeProps","autoFocus","autoComplete","variant","allowClear","selectAllOnInit","selectAllOnFocus","leftContent","rightContent","withoutLeftContentWrapper","withoutRightContentWrapper","leftWrapperStyle","leftWrapperClassName","rightWrapperStyle","rightWrapperClassName","value","onFocus","onChange","onKeyDown","onKeyUp","rest","forwardedRef","_ref","window","useWindow","disabled","readOnly","hasError","formFieldSize","ownProps","useFormFieldProps","focusTimeout","useRef","blurTimeout","normalizedValue","toString","activeInput","activeClear","inputRef","focus","clearTimeout","current","setTimeout","_inputRef$current","blur","_inputRef$current2","setSelectionRange","start","end","direction","_inputRef$current3","includes","getSelectionRange","_inputRef$current4","_inputRef$current5","selectionStart","selectionEnd","selectAll","length","unselect","valueLen","getBoundingClientRect","DOMRect","getDOMNode","handle","useMemo","useImperativeHandle","useEffect","handleFocus","event","handleChange","handleKeyDown","handleKeyDownWrappedWithComposingLocker","handleKeyUp","handleKeyUpWrappedWithComposingLocker","useKeyboardActionLockerWhileComposing","keysToLock","COMMON_IME_CONTROL_KEYS","handleClear","input","_Object$getOwnPropert","setValue","Object","getOwnPropertyDescriptor","HTMLInputElement","prototype","set","Event","bubbles","call","dispatchEvent","_jsxs","TextFieldWrapper","getFormFieldSizeClassName","onMouseDown","TextFieldInput","ref","CloseIconWrapper","tabIndex","CloseIcon","CancelCircleFilledIcon"],"mappings":"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"}
|
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
function isDev() {
|
|
2
2
|
return process.env.NODE_ENV !== 'production';
|
|
3
3
|
}
|
|
4
|
-
|
|
4
|
+
const devWarningScopes = new Set();
|
|
5
|
+
function warn(message, scope) {
|
|
5
6
|
if (isDev()) {
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
if (scope) {
|
|
8
|
+
if (!devWarningScopes.has(scope)) {
|
|
9
|
+
devWarningScopes.add(scope);
|
|
10
|
+
// eslint-disable-next-line no-console
|
|
11
|
+
console.warn(message);
|
|
12
|
+
}
|
|
13
|
+
} else {
|
|
14
|
+
// eslint-disable-next-line no-console
|
|
15
|
+
console.warn(message);
|
|
16
|
+
}
|
|
8
17
|
}
|
|
9
18
|
}
|
|
10
19
|
class AssertionException extends Error {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assert.mjs","sources":["../../../src/utils/assert.ts"],"sourcesContent":["export function isDev() {\n return process.env.NODE_ENV !== 'production'\n}\n\nexport function warn(message: string) {\n if (isDev()) {\n // eslint-disable-next-line no-console\n console.warn(message)\n }\n}\n\nexport class AssertionException extends Error {\n constructor(message?: string) {\n super()\n\n this.name = 'AssertionException'\n this.message = message ?? 'assertion failed'\n }\n}\n\nexport function assert(\n predicate: boolean,\n message?: string\n): asserts predicate {\n if (predicate) {\n return\n }\n\n if (isDev()) {\n throw new AssertionException(message)\n }\n}\n"],"names":["isDev","process","env","NODE_ENV","warn","message","console","AssertionException","Error","constructor","name","assert","predicate"],"mappings":"AAAO,SAASA,KAAKA,GAAG;AACtB,EAAA,OAAOC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY;AAC9C;
|
|
1
|
+
{"version":3,"file":"assert.mjs","sources":["../../../src/utils/assert.ts"],"sourcesContent":["export function isDev() {\n return process.env.NODE_ENV !== 'production'\n}\n\nconst devWarningScopes = new Set<string>()\n\nexport function warn(message: string): void\nexport function warn(message: string, scope: string): void\nexport function warn(message: string, scope?: string) {\n if (isDev()) {\n if (scope) {\n if (!devWarningScopes.has(scope)) {\n devWarningScopes.add(scope)\n // eslint-disable-next-line no-console\n console.warn(message)\n }\n } else {\n // eslint-disable-next-line no-console\n console.warn(message)\n }\n }\n}\n\nexport class AssertionException extends Error {\n constructor(message?: string) {\n super()\n\n this.name = 'AssertionException'\n this.message = message ?? 'assertion failed'\n }\n}\n\nexport function assert(\n predicate: boolean,\n message?: string\n): asserts predicate {\n if (predicate) {\n return\n }\n\n if (isDev()) {\n throw new AssertionException(message)\n }\n}\n"],"names":["isDev","process","env","NODE_ENV","devWarningScopes","Set","warn","message","scope","has","add","console","AssertionException","Error","constructor","name","assert","predicate"],"mappings":"AAAO,SAASA,KAAKA,GAAG;AACtB,EAAA,OAAOC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY;AAC9C;AAEA,MAAMC,gBAAgB,GAAG,IAAIC,GAAG,EAAU;AAInC,SAASC,IAAIA,CAACC,OAAe,EAAEC,KAAc,EAAE;EACpD,IAAIR,KAAK,EAAE,EAAE;AACX,IAAA,IAAIQ,KAAK,EAAE;AACT,MAAA,IAAI,CAACJ,gBAAgB,CAACK,GAAG,CAACD,KAAK,CAAC,EAAE;AAChCJ,QAAAA,gBAAgB,CAACM,GAAG,CAACF,KAAK,CAAC;AAC3B;AACAG,QAAAA,OAAO,CAACL,IAAI,CAACC,OAAO,CAAC;AACvB;AACF,KAAC,MAAM;AACL;AACAI,MAAAA,OAAO,CAACL,IAAI,CAACC,OAAO,CAAC;AACvB;AACF;AACF;AAEO,MAAMK,kBAAkB,SAASC,KAAK,CAAC;EAC5CC,WAAWA,CAACP,OAAgB,EAAE;AAC5B,IAAA,KAAK,EAAE;IAEP,IAAI,CAACQ,IAAI,GAAG,oBAAoB;IAChC,IAAI,CAACR,OAAO,GAAGA,OAAO,aAAPA,OAAO,KAAA,KAAA,CAAA,GAAPA,OAAO,GAAI,kBAAkB;AAC9C;AACF;AAEO,SAASS,MAAMA,CACpBC,SAAkB,EAClBV,OAAgB,EACG;AACnB,EAAA,IAAIU,SAAS,EAAE;AACb,IAAA;AACF;EAEA,IAAIjB,KAAK,EAAE,EAAE;AACX,IAAA,MAAM,IAAIY,kBAAkB,CAACL,OAAO,CAAC;AACvC;AACF;;;;"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import type { AvatarProps } from './Avatar.types';
|
|
2
2
|
export declare function useAvatarRadiusToken(): "42%";
|
|
3
3
|
export declare const AVATAR_WRAPPER_TEST_ID = "bezier-avatar-wrapper";
|
|
4
|
-
export declare const AVATAR_TEST_ID = "bezier-avatar";
|
|
5
|
-
export declare const STATUS_WRAPPER_TEST_ID = "bezier-status-wrapper";
|
|
6
4
|
/**
|
|
7
5
|
* `Avatar` is a component for representing some profile image.
|
|
8
6
|
* @example
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../../src/components/AlphaAvatar/Avatar.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,WAAW,EAAc,MAAM,gBAAgB,CAAA;AAkC7D,wBAAgB,oBAAoB,UAGnC;AAED,eAAO,MAAM,sBAAsB,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../../src/components/AlphaAvatar/Avatar.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,WAAW,EAAc,MAAM,gBAAgB,CAAA;AAkC7D,wBAAgB,oBAAoB,UAGnC;AAED,eAAO,MAAM,sBAAsB,0BAA0B,CAAA;AAI7D;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,wGAuFjB,CAAA"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import type { AvatarProps } from './Avatar.types';
|
|
2
2
|
export declare function useAvatarRadiusToken(): "42%";
|
|
3
3
|
export declare const AVATAR_WRAPPER_TEST_ID = "bezier-avatar-wrapper";
|
|
4
|
-
export declare const AVATAR_TEST_ID = "bezier-avatar";
|
|
5
|
-
export declare const STATUS_WRAPPER_TEST_ID = "bezier-status-wrapper";
|
|
6
4
|
/**
|
|
7
5
|
* `Avatar` is a component for representing some profile image.
|
|
8
6
|
* @example
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../../src/components/Avatar/Avatar.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAWjD,wBAAgB,oBAAoB,UAEnC;AAED,eAAO,MAAM,sBAAsB,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../../src/components/Avatar/Avatar.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAWjD,wBAAgB,oBAAoB,UAEnC;AAED,eAAO,MAAM,sBAAsB,0BAA0B,CAAA;AAI7D;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,wGA+FjB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../../../src/components/Badge/Badge.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../../../src/components/Badge/Badge.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAA;AAI/C;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,KAAK,kGAgCjB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Banner.d.ts","sourceRoot":"","sources":["../../../../src/components/Banner/Banner.tsx"],"names":[],"mappings":"AAeA,OAAO,EACL,KAAK,WAAW,EAGjB,MAAM,gBAAgB,CAAA;AA8BvB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"Banner.d.ts","sourceRoot":"","sources":["../../../../src/components/Banner/Banner.tsx"],"names":[],"mappings":"AAeA,OAAO,EACL,KAAK,WAAW,EAGjB,MAAM,gBAAgB,CAAA;AA8BvB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,MAAM,wGAwFjB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../../src/components/Button/Button.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,WAAW,EAA2B,MAAM,gBAAgB,CAAA;AAI1E,eAAO,MAAM,cAAc,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../../src/components/Button/Button.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,WAAW,EAA2B,MAAM,gBAAgB,CAAA;AAI1E,eAAO,MAAM,cAAc,kBAAkB,CAAA;AAwE7C,eAAO,MAAM,MAAM,2GA8ElB,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { type CheckboxProps, type CheckedState } from './Checkbox.types';
|
|
3
3
|
declare function CheckboxImpl<Checked extends CheckedState>({ children, className, checked, id: idProp, ...rest }: CheckboxProps<Checked>, forwardedRef: React.Ref<HTMLButtonElement>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
type ReturnTypeOfCheckboxImpl<Checked extends CheckedState> = ReturnType<typeof CheckboxImpl<Checked>>;
|
|
4
5
|
/**
|
|
5
6
|
* `Checkbox` is a control that allows the user to toggle between checked and not checked.
|
|
6
7
|
* It can be used with labels or standalone.
|
|
@@ -30,6 +31,6 @@ declare function CheckboxImpl<Checked extends CheckedState>({ children, classNam
|
|
|
30
31
|
*/
|
|
31
32
|
export declare const Checkbox: <Checked extends CheckedState>(props: CheckboxProps<Checked> & {
|
|
32
33
|
ref?: React.ForwardedRef<HTMLButtonElement>;
|
|
33
|
-
}) =>
|
|
34
|
+
}) => ReturnTypeOfCheckboxImpl<Checked>;
|
|
34
35
|
export {};
|
|
35
36
|
//# sourceMappingURL=Checkbox.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../../src/components/Checkbox/Checkbox.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAc9B,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAA;AA+BxE,iBAAS,YAAY,CAAC,OAAO,SAAS,YAAY,EAChD,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,aAAa,CAAC,OAAO,CAAC,EAC7E,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,2CAiD3C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,QAAQ,EAA+B,CAClD,OAAO,SAAS,YAAY,EAE5B,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG;IAC9B,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAA;CAC5C,KACE,
|
|
1
|
+
{"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../../src/components/Checkbox/Checkbox.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAc9B,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAA;AA+BxE,iBAAS,YAAY,CAAC,OAAO,SAAS,YAAY,EAChD,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,aAAa,CAAC,OAAO,CAAC,EAC7E,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,2CAiD3C;AAGD,KAAK,wBAAwB,CAAC,OAAO,SAAS,YAAY,IAAI,UAAU,CACtE,OAAO,YAAY,CAAC,OAAO,CAAC,CAC7B,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,QAAQ,EAA+B,CAClD,OAAO,SAAS,YAAY,EAE5B,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG;IAC9B,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAA;CAC5C,KACE,wBAAwB,CAAC,OAAO,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Divider.d.ts","sourceRoot":"","sources":["../../../../src/components/Divider/Divider.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"Divider.d.ts","sourceRoot":"","sources":["../../../../src/components/Divider/Divider.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAA;AASnD;;;;;;;;;GASG;AACH,eAAO,MAAM,OAAO,yGAqCnB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Emoji.d.ts","sourceRoot":"","sources":["../../../../src/components/Emoji/Emoji.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"Emoji.d.ts","sourceRoot":"","sources":["../../../../src/components/Emoji/Emoji.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAA;AAa/C;;;;;;;;;GASG;AACH,eAAO,MAAM,KAAK,uGAwBhB,CAAA"}
|
|
@@ -3,7 +3,6 @@ import { type FormFieldProps, type FormFieldSize, type SizeProps } from "../../t
|
|
|
3
3
|
import { type FormControlContextValue, type FormControlProps } from './FormControl.types';
|
|
4
4
|
declare const useFormControlContext: () => FormControlContextValue | undefined;
|
|
5
5
|
export { useFormControlContext };
|
|
6
|
-
export declare const FORM_CONTROL_TEST_ID = "bezier-form-control";
|
|
7
6
|
export declare const FormControl: React.ForwardRefExoticComponent<FormControlProps & React.RefAttributes<HTMLElement>>;
|
|
8
7
|
export declare function useFormFieldProps<Props extends FormFieldProps & SizeProps<FormFieldSize>>(props?: Props): ({
|
|
9
8
|
'aria-disabled': boolean | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormControl.d.ts","sourceRoot":"","sources":["../../../../src/components/FormControl/FormControl.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,SAAS,EACf,0BAAyB;AAQ1B,OAAO,EAIL,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EAItB,MAAM,qBAAqB,CAAA;AAI5B,QAAA,MAAmC,qBAAqB,2CAE5C,CAAA;AAEZ,OAAO,EAAE,qBAAqB,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"FormControl.d.ts","sourceRoot":"","sources":["../../../../src/components/FormControl/FormControl.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,SAAS,EACf,0BAAyB;AAQ1B,OAAO,EAIL,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EAItB,MAAM,qBAAqB,CAAA;AAI5B,QAAA,MAAmC,qBAAqB,2CAE5C,CAAA;AAEZ,OAAO,EAAE,qBAAqB,EAAE,CAAA;AAmChC,eAAO,MAAM,WAAW,sFAuKvB,CAAA;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,SAAS,cAAc,GAAG,SAAS,CAAC,aAAa,CAAC,EACvD,KAAK,CAAC,EAAE,KAAK,GA6BY;;;;;;;;;;;;;;;;;;;;;MAAwB,KAAK,CACvD"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import type { FormErrorMessageProps, FormHelperTextProps } from './FormHelperText.types';
|
|
2
|
-
export declare const FORM_HELPER_TEXT_TEST_ID = "bezier-form-helper-text";
|
|
3
|
-
export declare const FORM_ERROR_MESSAGE_TEST_ID = "bezier-form-error-message";
|
|
4
2
|
/**
|
|
5
3
|
* `FormHelperText` is a component to show the description of the input element.
|
|
6
4
|
* `FormControl` component can handle its layout by `position` props.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormHelperText.d.ts","sourceRoot":"","sources":["../../../../src/components/FormHelperText/FormHelperText.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAEV,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"FormHelperText.d.ts","sourceRoot":"","sources":["../../../../src/components/FormHelperText/FormHelperText.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAEV,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,wBAAwB,CAAA;AA6D/B;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,cAAc,iHAgB1B,CAAA;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,gBAAgB,mHAkB3B,CAAA"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import type { NavGroupProps } from './NavGroup.types';
|
|
3
|
-
export declare const NAV_GROUP_TEST_ID = "bezier-nav-group";
|
|
4
|
-
export declare const NAV_GROUP_LEFT_ICON_TEST_ID = "bezier-nav-group-left-icon";
|
|
5
3
|
export declare const NavGroup: React.ForwardRefExoticComponent<NavGroupProps & React.RefAttributes<HTMLButtonElement>>;
|
|
6
4
|
//# sourceMappingURL=NavGroup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavGroup.d.ts","sourceRoot":"","sources":["../../../../src/components/NavGroup/NavGroup.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAiB9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"NavGroup.d.ts","sourceRoot":"","sources":["../../../../src/components/NavGroup/NavGroup.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAiB9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAcrD,eAAO,MAAM,QAAQ,yFA2FpB,CAAA"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import type { NavItemProps } from './NavItem.types';
|
|
3
|
-
export declare const NAV_ITEM_TEST_ID = "bezier-nav-item";
|
|
4
|
-
export declare const NAV_ITEM_LEFT_ICON_TEST_ID = "bezier-nav-item-left-icon";
|
|
5
3
|
/**
|
|
6
4
|
* `NavItem` is a component for an item where you can navigate to another link.
|
|
7
5
|
* @example
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavItem.d.ts","sourceRoot":"","sources":["../../../../src/components/NavItem/NavItem.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAO9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"NavItem.d.ts","sourceRoot":"","sources":["../../../../src/components/NavItem/NavItem.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAO9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAcnD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,OAAO,wFAkEnB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SectionLabel.d.ts","sourceRoot":"","sources":["../../../../src/components/SectionLabel/SectionLabel.tsx"],"names":[],"mappings":"AAwBA,OAAO,EAGL,KAAK,iBAAiB,EAEvB,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"SectionLabel.d.ts","sourceRoot":"","sources":["../../../../src/components/SectionLabel/SectionLabel.tsx"],"names":[],"mappings":"AAwBA,OAAO,EAGL,KAAK,iBAAiB,EAEvB,MAAM,sBAAsB,CAAA;AA0E7B,eAAO,MAAM,YAAY,2GAwExB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../../../../src/components/Switch/Switch.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../../../../src/components/Switch/Switch.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAA;AASjD;;;;;;;;;GASG;AACH,eAAO,MAAM,MAAM,2GAyClB,CAAA"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { type TagProps } from './Tag.types';
|
|
2
|
-
export declare const TAG_TEST_ID = "bezier-tag";
|
|
3
|
-
export declare const TAG_DELETE_TEST_ID = "bezier-tag-delete-icon";
|
|
4
2
|
/**
|
|
5
3
|
* `Tag` is a component for representing tag, which shows close icon when `onDelete` property is specified.
|
|
6
4
|
* @example
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tag.d.ts","sourceRoot":"","sources":["../../../../src/components/Tag/Tag.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"Tag.d.ts","sourceRoot":"","sources":["../../../../src/components/Tag/Tag.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAA;AAc3C;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,GAAG,gGA0Cf,CAAA"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { type TextFieldProps, type TextFieldRef } from './TextField.types';
|
|
3
|
-
export declare const TEXT_INPUT_TEST_ID = "bezier-text-input";
|
|
4
|
-
export declare const TEXT_INPUT_CLEAR_ICON_TEST_ID = "bezier-text-input-clear-icon";
|
|
5
3
|
export declare const TextField: React.ForwardRefExoticComponent<TextFieldProps & React.RefAttributes<TextFieldRef>>;
|
|
6
4
|
//# sourceMappingURL=TextField.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextField.d.ts","sourceRoot":"","sources":["../../../../src/components/TextField/TextField.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAoB9B,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"TextField.d.ts","sourceRoot":"","sources":["../../../../src/components/TextField/TextField.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAoB9B,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAA;AAgI1B,eAAO,MAAM,SAAS,qFAyRrB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../../src/utils/assert.ts"],"names":[],"mappings":"AAAA,wBAAgB,KAAK,YAEpB;
|
|
1
|
+
{"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../../src/utils/assert.ts"],"names":[],"mappings":"AAAA,wBAAgB,KAAK,YAEpB;AAID,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;AAC3C,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;AAgB1D,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,CAAC,EAAE,MAAM;CAM7B;AAED,wBAAgB,MAAM,CACpB,SAAS,EAAE,OAAO,EAClB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,SAAS,CAQnB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@channel.io/bezier-react",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.5",
|
|
4
4
|
"description": "React components library that implements Bezier design system.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -41,7 +41,6 @@
|
|
|
41
41
|
"typecheck": "tsc --noEmit",
|
|
42
42
|
"test": "jest --coverage",
|
|
43
43
|
"test:watch": "jest --watch",
|
|
44
|
-
"update-snapshot": "jest --updateSnapshot",
|
|
45
44
|
"clean": "run-s 'clean:*'",
|
|
46
45
|
"clean:build": "rm -rf dist",
|
|
47
46
|
"clean:cache": "rm -rf node_modules .turbo .eslintcache .stylelintcache tsconfig.tsbuildinfo coverage .jestcache",
|
|
@@ -64,7 +63,7 @@
|
|
|
64
63
|
"@babel/preset-env": "^7.26.0",
|
|
65
64
|
"@babel/preset-react": "^7.26.3",
|
|
66
65
|
"@babel/preset-typescript": "^7.26.0",
|
|
67
|
-
"@channel.io/bezier-icons": "0.
|
|
66
|
+
"@channel.io/bezier-icons": "0.45.0",
|
|
68
67
|
"@chromatic-com/storybook": "^3.2.2",
|
|
69
68
|
"@figma/code-connect": "^1.2.4",
|
|
70
69
|
"@rollup/plugin-alias": "^5.1.1",
|
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
import { render } from '~/src/utils/test'
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
AVATAR_TEST_ID,
|
|
5
|
-
AVATAR_WRAPPER_TEST_ID,
|
|
6
|
-
Avatar,
|
|
7
|
-
STATUS_WRAPPER_TEST_ID,
|
|
8
|
-
} from './Avatar'
|
|
3
|
+
import { AVATAR_WRAPPER_TEST_ID, Avatar } from './Avatar'
|
|
9
4
|
import type { AvatarProps } from './Avatar.types'
|
|
10
5
|
|
|
11
6
|
describe('Avatar >', () => {
|
|
@@ -35,75 +30,10 @@ describe('Avatar >', () => {
|
|
|
35
30
|
/>
|
|
36
31
|
)
|
|
37
32
|
|
|
38
|
-
it('Snapshot', () => {
|
|
39
|
-
const { getByTestId } = renderAvatar()
|
|
40
|
-
const img = getByTestId(AVATAR_TEST_ID)
|
|
41
|
-
|
|
42
|
-
expect(img).toMatchSnapshot()
|
|
43
|
-
})
|
|
44
|
-
|
|
45
33
|
it('renders disabled style', () => {
|
|
46
34
|
const { getByTestId } = renderAvatar({ disabled: true })
|
|
47
35
|
const wrapper = getByTestId(AVATAR_WRAPPER_TEST_ID)
|
|
48
36
|
|
|
49
37
|
expect(wrapper).toHaveStyle('opacity: var(--opacity-disabled)')
|
|
50
38
|
})
|
|
51
|
-
|
|
52
|
-
it('renders border style', () => {
|
|
53
|
-
const { getByTestId } = renderAvatar({ showBorder: true })
|
|
54
|
-
const img = getByTestId(AVATAR_TEST_ID)
|
|
55
|
-
|
|
56
|
-
// NOTE(@ed): psuedo element 스타일 테스트가 어려워, 스냅샷 테스트로 대체
|
|
57
|
-
expect(img).toMatchSnapshot()
|
|
58
|
-
})
|
|
59
|
-
|
|
60
|
-
it('should have right -2px, bottom -2px style on StatusWrapper', () => {
|
|
61
|
-
const { getByTestId } = renderAvatar({ status: 'online' })
|
|
62
|
-
const statusWrapper = getByTestId(STATUS_WRAPPER_TEST_ID)
|
|
63
|
-
|
|
64
|
-
expect(statusWrapper).toMatchSnapshot()
|
|
65
|
-
})
|
|
66
|
-
|
|
67
|
-
it('should have right 2px, bottom 2px style on StatusWrapper when show border', () => {
|
|
68
|
-
const { getByTestId } = renderAvatar({ status: 'online', showBorder: true })
|
|
69
|
-
const statusWrapper = getByTestId(STATUS_WRAPPER_TEST_ID)
|
|
70
|
-
|
|
71
|
-
expect(statusWrapper).toMatchSnapshot()
|
|
72
|
-
})
|
|
73
|
-
|
|
74
|
-
it('should have right 4px, bottom 4px style on StatusWrapper when size grater then 72', () => {
|
|
75
|
-
const { getByTestId } = renderAvatar({ status: 'online', size: '72' })
|
|
76
|
-
const statusWrapper = getByTestId(STATUS_WRAPPER_TEST_ID)
|
|
77
|
-
|
|
78
|
-
expect(statusWrapper).toMatchSnapshot()
|
|
79
|
-
})
|
|
80
|
-
|
|
81
|
-
it('should have right 8px, bottom 8px style on StatusWrapper when size grater then 72 and show border', () => {
|
|
82
|
-
const { getByTestId } = renderAvatar({
|
|
83
|
-
status: 'online',
|
|
84
|
-
size: '72',
|
|
85
|
-
showBorder: true,
|
|
86
|
-
})
|
|
87
|
-
const statusWrapper = getByTestId(STATUS_WRAPPER_TEST_ID)
|
|
88
|
-
|
|
89
|
-
expect(statusWrapper).toMatchSnapshot()
|
|
90
|
-
})
|
|
91
|
-
|
|
92
|
-
it('should have right 4px, bottom 4px style on StatusWrapper when size grater then 90', () => {
|
|
93
|
-
const { getByTestId } = renderAvatar({ status: 'online', size: '90' })
|
|
94
|
-
const statusWrapper = getByTestId(STATUS_WRAPPER_TEST_ID)
|
|
95
|
-
|
|
96
|
-
expect(statusWrapper).toMatchSnapshot()
|
|
97
|
-
})
|
|
98
|
-
|
|
99
|
-
it('should have right 8px, bottom 8px style on StatusWrapper when size grater then 90 and show border', () => {
|
|
100
|
-
const { getByTestId } = renderAvatar({
|
|
101
|
-
status: 'online',
|
|
102
|
-
size: '90',
|
|
103
|
-
showBorder: true,
|
|
104
|
-
})
|
|
105
|
-
const statusWrapper = getByTestId(STATUS_WRAPPER_TEST_ID)
|
|
106
|
-
|
|
107
|
-
expect(statusWrapper).toMatchSnapshot()
|
|
108
|
-
})
|
|
109
39
|
})
|
|
@@ -54,8 +54,8 @@ export function useAvatarRadiusToken() {
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
export const AVATAR_WRAPPER_TEST_ID = 'bezier-avatar-wrapper'
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
const AVATAR_TEST_ID = 'bezier-avatar'
|
|
58
|
+
const STATUS_WRAPPER_TEST_ID = 'bezier-status-wrapper'
|
|
59
59
|
|
|
60
60
|
/**
|
|
61
61
|
* `Avatar` is a component for representing some profile image.
|
|
@@ -44,12 +44,6 @@ describe('AvatarGroup', () => {
|
|
|
44
44
|
props.ellipsisType = 'icon'
|
|
45
45
|
})
|
|
46
46
|
|
|
47
|
-
it('Snapshot', () => {
|
|
48
|
-
const { getByRole } = renderComponent()
|
|
49
|
-
const rendered = getByRole('group')
|
|
50
|
-
expect(rendered).toMatchSnapshot()
|
|
51
|
-
})
|
|
52
|
-
|
|
53
47
|
it('should render ellipsis icon when avatar count is more than max', () => {
|
|
54
48
|
const { getByTestId } = renderComponent()
|
|
55
49
|
const rendered = getByTestId(AVATAR_GROUP_ELLIPSIS_ICON_TEST_ID)
|
|
@@ -69,12 +63,6 @@ describe('AvatarGroup', () => {
|
|
|
69
63
|
props.ellipsisType = 'count'
|
|
70
64
|
})
|
|
71
65
|
|
|
72
|
-
it('Snapshot', () => {
|
|
73
|
-
const { getByRole } = renderComponent()
|
|
74
|
-
const rendered = getByRole('group')
|
|
75
|
-
expect(rendered).toMatchSnapshot()
|
|
76
|
-
})
|
|
77
|
-
|
|
78
66
|
it('should render ellipsis count when avatar count is more than max', () => {
|
|
79
67
|
const { getByText } = renderComponent()
|
|
80
68
|
const rendered = getByText('+1')
|