@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.
Files changed (156) hide show
  1. package/dist/cjs/components/AlphaAvatar/Avatar.js +0 -2
  2. package/dist/cjs/components/AlphaAvatar/Avatar.js.map +1 -1
  3. package/dist/cjs/components/Avatar/Avatar.js +0 -2
  4. package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
  5. package/dist/cjs/components/Badge/Badge.js +0 -1
  6. package/dist/cjs/components/Badge/Badge.js.map +1 -1
  7. package/dist/cjs/components/Banner/Banner.js +1 -1
  8. package/dist/cjs/components/Banner/Banner.js.map +1 -1
  9. package/dist/cjs/components/Button/Button.js +1 -1
  10. package/dist/cjs/components/Button/Button.js.map +1 -1
  11. package/dist/cjs/components/Checkbox/Checkbox.js +2 -0
  12. package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
  13. package/dist/cjs/components/Divider/Divider.js +1 -1
  14. package/dist/cjs/components/Divider/Divider.js.map +1 -1
  15. package/dist/cjs/components/Emoji/Emoji.js +0 -1
  16. package/dist/cjs/components/Emoji/Emoji.js.map +1 -1
  17. package/dist/cjs/components/FormControl/FormControl.js +0 -1
  18. package/dist/cjs/components/FormControl/FormControl.js.map +1 -1
  19. package/dist/cjs/components/FormHelperText/FormHelperText.js +4 -2
  20. package/dist/cjs/components/FormHelperText/FormHelperText.js.map +1 -1
  21. package/dist/cjs/components/NavGroup/NavGroup.js +4 -2
  22. package/dist/cjs/components/NavGroup/NavGroup.js.map +1 -1
  23. package/dist/cjs/components/NavItem/NavItem.js +4 -2
  24. package/dist/cjs/components/NavItem/NavItem.js.map +1 -1
  25. package/dist/cjs/components/SectionLabel/SectionLabel.js +2 -2
  26. package/dist/cjs/components/SectionLabel/SectionLabel.js.map +1 -1
  27. package/dist/cjs/components/Switch/Switch.js +0 -1
  28. package/dist/cjs/components/Switch/Switch.js.map +1 -1
  29. package/dist/cjs/components/Tag/Tag.js +5 -2
  30. package/dist/cjs/components/Tag/Tag.js.map +1 -1
  31. package/dist/cjs/components/TextField/TextField.js +5 -2
  32. package/dist/cjs/components/TextField/TextField.js.map +1 -1
  33. package/dist/cjs/utils/assert.js +12 -3
  34. package/dist/cjs/utils/assert.js.map +1 -1
  35. package/dist/esm/components/AlphaAvatar/Avatar.mjs +1 -1
  36. package/dist/esm/components/AlphaAvatar/Avatar.mjs.map +1 -1
  37. package/dist/esm/components/Avatar/Avatar.mjs +1 -1
  38. package/dist/esm/components/Avatar/Avatar.mjs.map +1 -1
  39. package/dist/esm/components/Badge/Badge.mjs +1 -1
  40. package/dist/esm/components/Badge/Badge.mjs.map +1 -1
  41. package/dist/esm/components/Banner/Banner.mjs +1 -1
  42. package/dist/esm/components/Banner/Banner.mjs.map +1 -1
  43. package/dist/esm/components/Button/Button.mjs +1 -1
  44. package/dist/esm/components/Button/Button.mjs.map +1 -1
  45. package/dist/esm/components/Checkbox/Checkbox.mjs +2 -0
  46. package/dist/esm/components/Checkbox/Checkbox.mjs.map +1 -1
  47. package/dist/esm/components/Divider/Divider.mjs +2 -1
  48. package/dist/esm/components/Divider/Divider.mjs.map +1 -1
  49. package/dist/esm/components/Emoji/Emoji.mjs +1 -1
  50. package/dist/esm/components/Emoji/Emoji.mjs.map +1 -1
  51. package/dist/esm/components/FormControl/FormControl.mjs +1 -1
  52. package/dist/esm/components/FormControl/FormControl.mjs.map +1 -1
  53. package/dist/esm/components/FormHelperText/FormHelperText.mjs +5 -1
  54. package/dist/esm/components/FormHelperText/FormHelperText.mjs.map +1 -1
  55. package/dist/esm/components/NavGroup/NavGroup.mjs +5 -1
  56. package/dist/esm/components/NavGroup/NavGroup.mjs.map +1 -1
  57. package/dist/esm/components/NavItem/NavItem.mjs +5 -1
  58. package/dist/esm/components/NavItem/NavItem.mjs.map +1 -1
  59. package/dist/esm/components/SectionLabel/SectionLabel.mjs +2 -2
  60. package/dist/esm/components/SectionLabel/SectionLabel.mjs.map +1 -1
  61. package/dist/esm/components/Switch/Switch.mjs +1 -1
  62. package/dist/esm/components/Switch/Switch.mjs.map +1 -1
  63. package/dist/esm/components/Tag/Tag.mjs +6 -1
  64. package/dist/esm/components/Tag/Tag.mjs.map +1 -1
  65. package/dist/esm/components/TextField/TextField.mjs +6 -1
  66. package/dist/esm/components/TextField/TextField.mjs.map +1 -1
  67. package/dist/esm/utils/assert.mjs +12 -3
  68. package/dist/esm/utils/assert.mjs.map +1 -1
  69. package/dist/types/components/AlphaAvatar/Avatar.d.ts +0 -2
  70. package/dist/types/components/AlphaAvatar/Avatar.d.ts.map +1 -1
  71. package/dist/types/components/Avatar/Avatar.d.ts +0 -2
  72. package/dist/types/components/Avatar/Avatar.d.ts.map +1 -1
  73. package/dist/types/components/Badge/Badge.d.ts +0 -1
  74. package/dist/types/components/Badge/Badge.d.ts.map +1 -1
  75. package/dist/types/components/Banner/Banner.d.ts.map +1 -1
  76. package/dist/types/components/Button/Button.d.ts.map +1 -1
  77. package/dist/types/components/Checkbox/Checkbox.d.ts +2 -1
  78. package/dist/types/components/Checkbox/Checkbox.d.ts.map +1 -1
  79. package/dist/types/components/Divider/Divider.d.ts +0 -1
  80. package/dist/types/components/Divider/Divider.d.ts.map +1 -1
  81. package/dist/types/components/Emoji/Emoji.d.ts +0 -1
  82. package/dist/types/components/Emoji/Emoji.d.ts.map +1 -1
  83. package/dist/types/components/FormControl/FormControl.d.ts +0 -1
  84. package/dist/types/components/FormControl/FormControl.d.ts.map +1 -1
  85. package/dist/types/components/FormHelperText/FormHelperText.d.ts +0 -2
  86. package/dist/types/components/FormHelperText/FormHelperText.d.ts.map +1 -1
  87. package/dist/types/components/NavGroup/NavGroup.d.ts +0 -2
  88. package/dist/types/components/NavGroup/NavGroup.d.ts.map +1 -1
  89. package/dist/types/components/NavItem/NavItem.d.ts +0 -2
  90. package/dist/types/components/NavItem/NavItem.d.ts.map +1 -1
  91. package/dist/types/components/SectionLabel/SectionLabel.d.ts.map +1 -1
  92. package/dist/types/components/Switch/Switch.d.ts +0 -1
  93. package/dist/types/components/Switch/Switch.d.ts.map +1 -1
  94. package/dist/types/components/Tag/Tag.d.ts +0 -2
  95. package/dist/types/components/Tag/Tag.d.ts.map +1 -1
  96. package/dist/types/components/TextField/TextField.d.ts +0 -2
  97. package/dist/types/components/TextField/TextField.d.ts.map +1 -1
  98. package/dist/types/utils/assert.d.ts +1 -0
  99. package/dist/types/utils/assert.d.ts.map +1 -1
  100. package/package.json +2 -3
  101. package/src/components/AlphaAvatar/Avatar.test.tsx +1 -71
  102. package/src/components/AlphaAvatar/Avatar.tsx +2 -2
  103. package/src/components/AlphaAvatarGroup/AvatarGroup.test.tsx +0 -12
  104. package/src/components/Avatar/Avatar.test.tsx +1 -71
  105. package/src/components/Avatar/Avatar.tsx +2 -2
  106. package/src/components/AvatarGroup/AvatarGroup.test.tsx +0 -12
  107. package/src/components/Badge/Badge.tsx +2 -2
  108. package/src/components/Banner/Banner.tsx +2 -1
  109. package/src/components/Button/Button.tsx +2 -1
  110. package/src/components/Checkbox/Checkbox.tsx +6 -1
  111. package/src/components/Divider/Divider.test.tsx +11 -12
  112. package/src/components/Divider/Divider.tsx +5 -1
  113. package/src/components/Emoji/Emoji.tsx +4 -1
  114. package/src/components/FormControl/FormControl.test.tsx +1 -39
  115. package/src/components/FormControl/FormControl.tsx +1 -1
  116. package/src/components/FormHelperText/FormHelperText.test.tsx +11 -30
  117. package/src/components/FormHelperText/FormHelperText.tsx +9 -2
  118. package/src/components/FormLabel/FormLabel.test.tsx +0 -7
  119. package/src/components/Help/Help.test.tsx +0 -14
  120. package/src/components/LegacyTooltip/LegacyTooltip.test.tsx +0 -12
  121. package/src/components/Modal/Modal.test.tsx +8 -1
  122. package/src/components/NavGroup/NavGroup.tsx +9 -2
  123. package/src/components/NavItem/NavItem.tsx +9 -2
  124. package/src/components/SectionLabel/SectionLabel.tsx +4 -2
  125. package/src/components/Slider/Slider.test.tsx +1 -8
  126. package/src/components/SmoothCornersBox/SmoothCornersBox.test.tsx +0 -5
  127. package/src/components/Switch/Switch.test.tsx +17 -17
  128. package/src/components/Switch/Switch.tsx +4 -1
  129. package/src/components/Tag/Tag.test.tsx +11 -15
  130. package/src/components/Tag/Tag.tsx +10 -2
  131. package/src/components/TextField/TextField.test.tsx +5 -5
  132. package/src/components/TextField/TextField.tsx +10 -2
  133. package/src/utils/assert.test.ts +43 -0
  134. package/src/utils/assert.ts +15 -3
  135. package/src/components/AlphaAvatar/__snapshots__/Avatar.test.tsx.snap +0 -93
  136. package/src/components/AlphaAvatarGroup/__snapshots__/AvatarGroup.test.tsx.snap +0 -215
  137. package/src/components/Avatar/__snapshots__/Avatar.test.tsx.snap +0 -93
  138. package/src/components/AvatarGroup/__snapshots__/AvatarGroup.test.tsx.snap +0 -215
  139. package/src/components/Badge/Badge.test.tsx +0 -27
  140. package/src/components/Badge/__snapshots__/Badge.test.tsx.snap +0 -8
  141. package/src/components/Emoji/Emoji.test.tsx +0 -32
  142. package/src/components/Emoji/__snapshots__/Emoji.test.tsx.snap +0 -11
  143. package/src/components/FormControl/__snapshots__/FormControl.test.tsx.snap +0 -249
  144. package/src/components/FormGroup/FormGroup.test.tsx +0 -24
  145. package/src/components/FormGroup/__snapshots__/FormGroup.test.tsx.snap +0 -10
  146. package/src/components/FormHelperText/__snapshots__/FormHelperText.test.tsx.snap +0 -24
  147. package/src/components/FormLabel/__snapshots__/FormLabel.test.tsx.snap +0 -11
  148. package/src/components/Help/__snapshots__/Help.test.tsx.snap +0 -21
  149. package/src/components/LegacyTooltip/__snapshots__/LegacyTooltip.test.tsx.snap +0 -37
  150. package/src/components/NavGroup/NavGroup.test.tsx +0 -75
  151. package/src/components/NavGroup/__snapshots__/NavGroup.test.tsx.snap +0 -121
  152. package/src/components/NavItem/NavItem.test.tsx +0 -66
  153. package/src/components/NavItem/__snapshots__/NavItem.test.tsx.snap +0 -75
  154. package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +0 -50
  155. package/src/components/SmoothCornersBox/__snapshots__/SmoothCornersBox.test.tsx.snap +0 -11
  156. 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
- function warn(message) {
4
+ const devWarningScopes = new Set();
5
+ function warn(message, scope) {
5
6
  if (isDev()) {
6
- // eslint-disable-next-line no-console
7
- console.warn(message);
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;AAEO,SAASC,IAAIA,CAACC,OAAe,EAAE;EACpC,IAAIL,KAAK,EAAE,EAAE;AACX;AACAM,IAAAA,OAAO,CAACF,IAAI,CAACC,OAAO,CAAC;AACvB;AACF;AAEO,MAAME,kBAAkB,SAASC,KAAK,CAAC;EAC5CC,WAAWA,CAACJ,OAAgB,EAAE;AAC5B,IAAA,KAAK,EAAE;IAEP,IAAI,CAACK,IAAI,GAAG,oBAAoB;IAChC,IAAI,CAACL,OAAO,GAAGA,OAAO,aAAPA,OAAO,KAAA,KAAA,CAAA,GAAPA,OAAO,GAAI,kBAAkB;AAC9C;AACF;AAEO,SAASM,MAAMA,CACpBC,SAAkB,EAClBP,OAAgB,EACG;AACnB,EAAA,IAAIO,SAAS,EAAE;AACb,IAAA;AACF;EAEA,IAAIZ,KAAK,EAAE,EAAE;AACX,IAAA,MAAM,IAAIO,kBAAkB,CAACF,OAAO,CAAC;AACvC;AACF;;;;"}
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;AAC7D,eAAO,MAAM,cAAc,kBAAkB,CAAA;AAC7C,eAAO,MAAM,sBAAsB,0BAA0B,CAAA;AAE7D;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,wGAuFjB,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;AAC7D,eAAO,MAAM,cAAc,kBAAkB,CAAA;AAC7C,eAAO,MAAM,sBAAsB,0BAA0B,CAAA;AAE7D;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,wGA+FjB,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,5 +1,4 @@
1
1
  import { type BadgeProps } from './Badge.types';
2
- export declare const BADGE_TEST_ID = "bezier-badge";
3
2
  /**
4
3
  * `Badge` is a component for representing badge, which consists of text and icon.
5
4
  * @example
@@ -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;AAE/C,eAAO,MAAM,aAAa,iBAAiB,CAAA;AAE3C;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,KAAK,kGAgCjB,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,wGAuFjB,CAAA"}
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;AAuE7C,eAAO,MAAM,MAAM,2GA8ElB,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
- }) => ReturnType<typeof CheckboxImpl<Checked>>;
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,UAAU,CAAC,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC,CAAA"}
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,5 +1,4 @@
1
1
  import { type DividerProps } from './Divider.types';
2
- export declare const DIVIDER_TEST_ID = "bezier-divider";
3
2
  /**
4
3
  * `Divider` is a component to visually or semantically separate content.
5
4
  * @example
@@ -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;AAInD,eAAO,MAAM,eAAe,mBAAmB,CAAA;AAE/C;;;;;;;;;GASG;AACH,eAAO,MAAM,OAAO,yGAoCnB,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,5 +1,4 @@
1
1
  import { type EmojiProps } from './Emoji.types';
2
- export declare const EMOJI_TEST_ID = "bezier-emoji";
3
2
  /**
4
3
  * `Emoji` is a component for representing emoji with variant size.
5
4
  * @example
@@ -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;AAI/C,eAAO,MAAM,aAAa,iBAAiB,CAAA;AAM3C;;;;;;;;;GASG;AACH,eAAO,MAAM,KAAK,uGAwBhB,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;AAEhC,eAAO,MAAM,oBAAoB,wBAAwB,CAAA;AAiCzD,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
+ {"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;AAI/B,eAAO,MAAM,wBAAwB,4BAA4B,CAAA;AACjE,eAAO,MAAM,0BAA0B,8BAA8B,CAAA;AAiDrE;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,cAAc,iHAgB1B,CAAA;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,gBAAgB,mHAkB3B,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;AAIrD,eAAO,MAAM,iBAAiB,qBAAqB,CAAA;AACnD,eAAO,MAAM,2BAA2B,+BAA+B,CAAA;AAEvE,eAAO,MAAM,QAAQ,yFA2FpB,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;AAInD,eAAO,MAAM,gBAAgB,oBAAoB,CAAA;AACjD,eAAO,MAAM,0BAA0B,8BAA8B,CAAA;AAErE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,OAAO,wFAkEnB,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;AAwE7B,eAAO,MAAM,YAAY,2GAwExB,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,5 +1,4 @@
1
1
  import { type SwitchProps } from './Switch.types';
2
- export declare const SWITCH_TEST_ID = "bezier-switch";
3
2
  /**
4
3
  * `Switch` is an input component where user can toggle checked state of the element.
5
4
  * @example
@@ -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;AAIjD,eAAO,MAAM,cAAc,kBAAkB,CAAA;AAE7C;;;;;;;;;GASG;AACH,eAAO,MAAM,MAAM,2GAyClB,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;AAI3C,eAAO,MAAM,WAAW,eAAe,CAAA;AACvC,eAAO,MAAM,kBAAkB,2BAA2B,CAAA;AAE1D;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,GAAG,gGAyCf,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;AAI1B,eAAO,MAAM,kBAAkB,sBAAsB,CAAA;AACrD,eAAO,MAAM,6BAA6B,iCAAiC,CAAA;AAoH3E,eAAO,MAAM,SAAS,qFAwRrB,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,5 +1,6 @@
1
1
  export declare function isDev(): boolean;
2
2
  export declare function warn(message: string): void;
3
+ export declare function warn(message: string, scope: string): void;
3
4
  export declare class AssertionException extends Error {
4
5
  constructor(message?: string);
5
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../../src/utils/assert.ts"],"names":[],"mappings":"AAAA,wBAAgB,KAAK,YAEpB;AAED,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,QAKnC;AAED,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"}
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",
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.43.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
- export const AVATAR_TEST_ID = 'bezier-avatar'
58
- export const STATUS_WRAPPER_TEST_ID = 'bezier-status-wrapper'
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')