@channel.io/bezier-react 2.0.9 → 2.1.0

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.
@@ -33,6 +33,7 @@ const Select = /*#__PURE__*/React.forwardRef(function Select({
33
33
  dropdownMarginY = 6,
34
34
  dropdownZIndex = 'overlay',
35
35
  dropdownPosition = 'bottom-left',
36
+ dropdownKeepInContainer = false,
36
37
  onClickTrigger,
37
38
  onHideDropdown,
38
39
  ...rest
@@ -112,6 +113,7 @@ const Select = /*#__PURE__*/React.forwardRef(function Select({
112
113
  target: triggerRef.current,
113
114
  container: dropdownContainer || containerRef.current,
114
115
  position: dropdownPosition,
116
+ keepInContainer: dropdownKeepInContainer,
115
117
  "data-testid": SELECT_DROPDOWN_TEST_ID,
116
118
  onHide: handleHideDropdown
117
119
  }, children));
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","sources":["../../../../src/components/Select/Select.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {\n ChevronDownIcon,\n ChevronUpIcon,\n isBezierIcon,\n} from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport {\n getFormFieldSizeClassName,\n getZIndexClassName,\n} from '~/src/types/props-helpers'\nimport { isEmpty } from '~/src/utils/type'\n\nimport { BaseButton } from '~/src/components/BaseButton'\nimport { useFormFieldProps } from '~/src/components/FormControl'\nimport { Icon } from '~/src/components/Icon'\nimport { Overlay } from '~/src/components/Overlay'\nimport { Text } from '~/src/components/Text'\n\nimport { type SelectProps, type SelectRef } from './Select.types'\n\nimport styles from './Select.module.scss'\n\nexport const SELECT_DROPDOWN_TEST_ID = 'bezier-select-dropdown'\n\nexport const Select = forwardRef<SelectRef, SelectProps>(function Select(\n {\n children,\n style,\n className,\n size: sizeProps,\n defaultFocus = false,\n placeholder = '',\n leftContent,\n rightContent,\n iconColor = 'txt-black-dark',\n text,\n textColor = 'txt-black-darkest',\n withoutChevron = false,\n dropdownStyle,\n dropdownClassName,\n dropdownContainer,\n dropdownMarginX,\n dropdownMarginY = 6,\n dropdownZIndex = 'overlay',\n dropdownPosition = 'bottom-left',\n onClickTrigger,\n onHideDropdown,\n ...rest\n },\n forwardedRef\n) {\n const {\n disabled,\n readOnly,\n hasError,\n size: formFieldSize,\n ...ownProps\n } = useFormFieldProps(rest)\n\n const containerRef = useRef<HTMLDivElement>(null)\n const triggerRef = useRef<HTMLButtonElement>(null)\n\n const size = sizeProps ?? formFieldSize ?? 'm'\n\n const [isDropdownOpened, setIsDropdownOpened] = useState(false)\n\n const handleClickTrigger = useCallback(\n (event: React.MouseEvent) => {\n if (!disabled && !readOnly) {\n setIsDropdownOpened((prevState) => !prevState)\n onClickTrigger?.(event)\n }\n },\n [disabled, readOnly, onClickTrigger]\n )\n\n const handleHideDropdown = useCallback(() => {\n setIsDropdownOpened(false)\n onHideDropdown?.()\n }, [onHideDropdown])\n\n const getDOMNode = useCallback(() => triggerRef.current, [])\n\n const handle = useMemo(\n (): SelectRef => ({\n handleClickTrigger,\n handleHideDropdown,\n getDOMNode,\n }),\n [handleClickTrigger, handleHideDropdown, getDOMNode]\n )\n\n useEffect(\n function handleDefaultFocus() {\n if (defaultFocus && !disabled && !readOnly) {\n setIsDropdownOpened(true)\n }\n },\n [defaultFocus, disabled, readOnly]\n )\n\n useImperativeHandle(forwardedRef, () => handle)\n\n const hasContent = !isEmpty(text)\n\n return (\n <div\n style={style}\n className={classNames(styles.SelectContainer, className)}\n ref={containerRef}\n >\n <BaseButton\n className={classNames(\n styles.SelectTrigger,\n getFormFieldSizeClassName(size),\n hasError && styles.invalid,\n readOnly && styles.readonly,\n isDropdownOpened && styles.active\n )}\n ref={triggerRef}\n disabled={disabled}\n onClick={handleClickTrigger}\n {...ownProps}\n >\n <div className={styles.SelectMainContent}>\n {isBezierIcon(leftContent) ? (\n <Icon\n source={leftContent}\n size=\"xs\"\n marginRight={6}\n color={iconColor}\n />\n ) : (\n leftContent\n )}\n\n <Text\n data-testid=\"bezier-select-trigger-text\"\n typo=\"14\"\n truncated\n color={hasContent ? textColor : 'txt-black-dark'}\n >\n {hasContent ? text : placeholder}\n </Text>\n\n {isBezierIcon(rightContent) ? (\n <Icon\n source={rightContent}\n size=\"xs\"\n marginRight={6}\n color={iconColor}\n />\n ) : (\n rightContent\n )}\n </div>\n\n {!withoutChevron && (\n <Icon\n source={isDropdownOpened ? ChevronUpIcon : ChevronDownIcon}\n size=\"xs\"\n color={readOnly ? 'txt-black-dark' : 'txt-black-darker'}\n marginLeft={6}\n />\n )}\n </BaseButton>\n\n <Overlay\n style={dropdownStyle}\n className={classNames(\n styles.SelectDropdown,\n getZIndexClassName(dropdownZIndex),\n dropdownClassName\n )}\n withTransition\n show={isDropdownOpened && !disabled}\n marginX={dropdownMarginX}\n marginY={dropdownMarginY}\n target={triggerRef.current}\n container={dropdownContainer || containerRef.current}\n position={dropdownPosition}\n data-testid={SELECT_DROPDOWN_TEST_ID}\n onHide={handleHideDropdown}\n >\n {children}\n </Overlay>\n </div>\n )\n})\n"],"names":["SELECT_DROPDOWN_TEST_ID","Select","forwardRef","children","style","className","size","sizeProps","defaultFocus","placeholder","leftContent","rightContent","iconColor","text","textColor","withoutChevron","dropdownStyle","dropdownClassName","dropdownContainer","dropdownMarginX","dropdownMarginY","dropdownZIndex","dropdownPosition","onClickTrigger","onHideDropdown","rest","forwardedRef","disabled","readOnly","hasError","formFieldSize","ownProps","useFormFieldProps","containerRef","useRef","triggerRef","isDropdownOpened","setIsDropdownOpened","useState","handleClickTrigger","useCallback","event","prevState","handleHideDropdown","getDOMNode","current","handle","useMemo","useEffect","handleDefaultFocus","useImperativeHandle","hasContent","isEmpty","React","createElement","classNames","styles","SelectContainer","ref","BaseButton","Object","assign","SelectTrigger","getFormFieldSizeClassName","invalid","readonly","active","onClick","SelectMainContent","isBezierIcon","Icon","source","marginRight","color","Text","typo","truncated","ChevronUpIcon","ChevronDownIcon","marginLeft","Overlay","SelectDropdown","getZIndexClassName","withTransition","show","marginX","marginY","target","container","position","onHide"],"mappings":"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"}
1
+ {"version":3,"file":"Select.js","sources":["../../../../src/components/Select/Select.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {\n ChevronDownIcon,\n ChevronUpIcon,\n isBezierIcon,\n} from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport {\n getFormFieldSizeClassName,\n getZIndexClassName,\n} from '~/src/types/props-helpers'\nimport { isEmpty } from '~/src/utils/type'\n\nimport { BaseButton } from '~/src/components/BaseButton'\nimport { useFormFieldProps } from '~/src/components/FormControl'\nimport { Icon } from '~/src/components/Icon'\nimport { Overlay } from '~/src/components/Overlay'\nimport { Text } from '~/src/components/Text'\n\nimport { type SelectProps, type SelectRef } from './Select.types'\n\nimport styles from './Select.module.scss'\n\nexport const SELECT_DROPDOWN_TEST_ID = 'bezier-select-dropdown'\n\nexport const Select = forwardRef<SelectRef, SelectProps>(function Select(\n {\n children,\n style,\n className,\n size: sizeProps,\n defaultFocus = false,\n placeholder = '',\n leftContent,\n rightContent,\n iconColor = 'txt-black-dark',\n text,\n textColor = 'txt-black-darkest',\n withoutChevron = false,\n dropdownStyle,\n dropdownClassName,\n dropdownContainer,\n dropdownMarginX,\n dropdownMarginY = 6,\n dropdownZIndex = 'overlay',\n dropdownPosition = 'bottom-left',\n dropdownKeepInContainer = false,\n onClickTrigger,\n onHideDropdown,\n ...rest\n },\n forwardedRef\n) {\n const {\n disabled,\n readOnly,\n hasError,\n size: formFieldSize,\n ...ownProps\n } = useFormFieldProps(rest)\n\n const containerRef = useRef<HTMLDivElement>(null)\n const triggerRef = useRef<HTMLButtonElement>(null)\n\n const size = sizeProps ?? formFieldSize ?? 'm'\n\n const [isDropdownOpened, setIsDropdownOpened] = useState(false)\n\n const handleClickTrigger = useCallback(\n (event: React.MouseEvent) => {\n if (!disabled && !readOnly) {\n setIsDropdownOpened((prevState) => !prevState)\n onClickTrigger?.(event)\n }\n },\n [disabled, readOnly, onClickTrigger]\n )\n\n const handleHideDropdown = useCallback(() => {\n setIsDropdownOpened(false)\n onHideDropdown?.()\n }, [onHideDropdown])\n\n const getDOMNode = useCallback(() => triggerRef.current, [])\n\n const handle = useMemo(\n (): SelectRef => ({\n handleClickTrigger,\n handleHideDropdown,\n getDOMNode,\n }),\n [handleClickTrigger, handleHideDropdown, getDOMNode]\n )\n\n useEffect(\n function handleDefaultFocus() {\n if (defaultFocus && !disabled && !readOnly) {\n setIsDropdownOpened(true)\n }\n },\n [defaultFocus, disabled, readOnly]\n )\n\n useImperativeHandle(forwardedRef, () => handle)\n\n const hasContent = !isEmpty(text)\n\n return (\n <div\n style={style}\n className={classNames(styles.SelectContainer, className)}\n ref={containerRef}\n >\n <BaseButton\n className={classNames(\n styles.SelectTrigger,\n getFormFieldSizeClassName(size),\n hasError && styles.invalid,\n readOnly && styles.readonly,\n isDropdownOpened && styles.active\n )}\n ref={triggerRef}\n disabled={disabled}\n onClick={handleClickTrigger}\n {...ownProps}\n >\n <div className={styles.SelectMainContent}>\n {isBezierIcon(leftContent) ? (\n <Icon\n source={leftContent}\n size=\"xs\"\n marginRight={6}\n color={iconColor}\n />\n ) : (\n leftContent\n )}\n\n <Text\n data-testid=\"bezier-select-trigger-text\"\n typo=\"14\"\n truncated\n color={hasContent ? textColor : 'txt-black-dark'}\n >\n {hasContent ? text : placeholder}\n </Text>\n\n {isBezierIcon(rightContent) ? (\n <Icon\n source={rightContent}\n size=\"xs\"\n marginRight={6}\n color={iconColor}\n />\n ) : (\n rightContent\n )}\n </div>\n\n {!withoutChevron && (\n <Icon\n source={isDropdownOpened ? ChevronUpIcon : ChevronDownIcon}\n size=\"xs\"\n color={readOnly ? 'txt-black-dark' : 'txt-black-darker'}\n marginLeft={6}\n />\n )}\n </BaseButton>\n\n <Overlay\n style={dropdownStyle}\n className={classNames(\n styles.SelectDropdown,\n getZIndexClassName(dropdownZIndex),\n dropdownClassName\n )}\n withTransition\n show={isDropdownOpened && !disabled}\n marginX={dropdownMarginX}\n marginY={dropdownMarginY}\n target={triggerRef.current}\n container={dropdownContainer || containerRef.current}\n position={dropdownPosition}\n keepInContainer={dropdownKeepInContainer}\n data-testid={SELECT_DROPDOWN_TEST_ID}\n onHide={handleHideDropdown}\n >\n {children}\n </Overlay>\n </div>\n )\n})\n"],"names":["SELECT_DROPDOWN_TEST_ID","Select","forwardRef","children","style","className","size","sizeProps","defaultFocus","placeholder","leftContent","rightContent","iconColor","text","textColor","withoutChevron","dropdownStyle","dropdownClassName","dropdownContainer","dropdownMarginX","dropdownMarginY","dropdownZIndex","dropdownPosition","dropdownKeepInContainer","onClickTrigger","onHideDropdown","rest","forwardedRef","disabled","readOnly","hasError","formFieldSize","ownProps","useFormFieldProps","containerRef","useRef","triggerRef","isDropdownOpened","setIsDropdownOpened","useState","handleClickTrigger","useCallback","event","prevState","handleHideDropdown","getDOMNode","current","handle","useMemo","useEffect","handleDefaultFocus","useImperativeHandle","hasContent","isEmpty","React","createElement","classNames","styles","SelectContainer","ref","BaseButton","Object","assign","SelectTrigger","getFormFieldSizeClassName","invalid","readonly","active","onClick","SelectMainContent","isBezierIcon","Icon","source","marginRight","color","Text","typo","truncated","ChevronUpIcon","ChevronDownIcon","marginLeft","Overlay","SelectDropdown","getZIndexClassName","withTransition","show","marginX","marginY","target","container","position","keepInContainer","onHide"],"mappings":"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"}
@@ -31,6 +31,7 @@ const Select = /*#__PURE__*/forwardRef(function Select({
31
31
  dropdownMarginY = 6,
32
32
  dropdownZIndex = 'overlay',
33
33
  dropdownPosition = 'bottom-left',
34
+ dropdownKeepInContainer = false,
34
35
  onClickTrigger,
35
36
  onHideDropdown,
36
37
  ...rest
@@ -110,6 +111,7 @@ const Select = /*#__PURE__*/forwardRef(function Select({
110
111
  target: triggerRef.current,
111
112
  container: dropdownContainer || containerRef.current,
112
113
  position: dropdownPosition,
114
+ keepInContainer: dropdownKeepInContainer,
113
115
  "data-testid": SELECT_DROPDOWN_TEST_ID,
114
116
  onHide: handleHideDropdown
115
117
  }, children));
@@ -1 +1 @@
1
- {"version":3,"file":"Select.mjs","sources":["../../../../src/components/Select/Select.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {\n ChevronDownIcon,\n ChevronUpIcon,\n isBezierIcon,\n} from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport {\n getFormFieldSizeClassName,\n getZIndexClassName,\n} from '~/src/types/props-helpers'\nimport { isEmpty } from '~/src/utils/type'\n\nimport { BaseButton } from '~/src/components/BaseButton'\nimport { useFormFieldProps } from '~/src/components/FormControl'\nimport { Icon } from '~/src/components/Icon'\nimport { Overlay } from '~/src/components/Overlay'\nimport { Text } from '~/src/components/Text'\n\nimport { type SelectProps, type SelectRef } from './Select.types'\n\nimport styles from './Select.module.scss'\n\nexport const SELECT_DROPDOWN_TEST_ID = 'bezier-select-dropdown'\n\nexport const Select = forwardRef<SelectRef, SelectProps>(function Select(\n {\n children,\n style,\n className,\n size: sizeProps,\n defaultFocus = false,\n placeholder = '',\n leftContent,\n rightContent,\n iconColor = 'txt-black-dark',\n text,\n textColor = 'txt-black-darkest',\n withoutChevron = false,\n dropdownStyle,\n dropdownClassName,\n dropdownContainer,\n dropdownMarginX,\n dropdownMarginY = 6,\n dropdownZIndex = 'overlay',\n dropdownPosition = 'bottom-left',\n onClickTrigger,\n onHideDropdown,\n ...rest\n },\n forwardedRef\n) {\n const {\n disabled,\n readOnly,\n hasError,\n size: formFieldSize,\n ...ownProps\n } = useFormFieldProps(rest)\n\n const containerRef = useRef<HTMLDivElement>(null)\n const triggerRef = useRef<HTMLButtonElement>(null)\n\n const size = sizeProps ?? formFieldSize ?? 'm'\n\n const [isDropdownOpened, setIsDropdownOpened] = useState(false)\n\n const handleClickTrigger = useCallback(\n (event: React.MouseEvent) => {\n if (!disabled && !readOnly) {\n setIsDropdownOpened((prevState) => !prevState)\n onClickTrigger?.(event)\n }\n },\n [disabled, readOnly, onClickTrigger]\n )\n\n const handleHideDropdown = useCallback(() => {\n setIsDropdownOpened(false)\n onHideDropdown?.()\n }, [onHideDropdown])\n\n const getDOMNode = useCallback(() => triggerRef.current, [])\n\n const handle = useMemo(\n (): SelectRef => ({\n handleClickTrigger,\n handleHideDropdown,\n getDOMNode,\n }),\n [handleClickTrigger, handleHideDropdown, getDOMNode]\n )\n\n useEffect(\n function handleDefaultFocus() {\n if (defaultFocus && !disabled && !readOnly) {\n setIsDropdownOpened(true)\n }\n },\n [defaultFocus, disabled, readOnly]\n )\n\n useImperativeHandle(forwardedRef, () => handle)\n\n const hasContent = !isEmpty(text)\n\n return (\n <div\n style={style}\n className={classNames(styles.SelectContainer, className)}\n ref={containerRef}\n >\n <BaseButton\n className={classNames(\n styles.SelectTrigger,\n getFormFieldSizeClassName(size),\n hasError && styles.invalid,\n readOnly && styles.readonly,\n isDropdownOpened && styles.active\n )}\n ref={triggerRef}\n disabled={disabled}\n onClick={handleClickTrigger}\n {...ownProps}\n >\n <div className={styles.SelectMainContent}>\n {isBezierIcon(leftContent) ? (\n <Icon\n source={leftContent}\n size=\"xs\"\n marginRight={6}\n color={iconColor}\n />\n ) : (\n leftContent\n )}\n\n <Text\n data-testid=\"bezier-select-trigger-text\"\n typo=\"14\"\n truncated\n color={hasContent ? textColor : 'txt-black-dark'}\n >\n {hasContent ? text : placeholder}\n </Text>\n\n {isBezierIcon(rightContent) ? (\n <Icon\n source={rightContent}\n size=\"xs\"\n marginRight={6}\n color={iconColor}\n />\n ) : (\n rightContent\n )}\n </div>\n\n {!withoutChevron && (\n <Icon\n source={isDropdownOpened ? ChevronUpIcon : ChevronDownIcon}\n size=\"xs\"\n color={readOnly ? 'txt-black-dark' : 'txt-black-darker'}\n marginLeft={6}\n />\n )}\n </BaseButton>\n\n <Overlay\n style={dropdownStyle}\n className={classNames(\n styles.SelectDropdown,\n getZIndexClassName(dropdownZIndex),\n dropdownClassName\n )}\n withTransition\n show={isDropdownOpened && !disabled}\n marginX={dropdownMarginX}\n marginY={dropdownMarginY}\n target={triggerRef.current}\n container={dropdownContainer || containerRef.current}\n position={dropdownPosition}\n data-testid={SELECT_DROPDOWN_TEST_ID}\n onHide={handleHideDropdown}\n >\n {children}\n </Overlay>\n </div>\n )\n})\n"],"names":["SELECT_DROPDOWN_TEST_ID","Select","forwardRef","children","style","className","size","sizeProps","defaultFocus","placeholder","leftContent","rightContent","iconColor","text","textColor","withoutChevron","dropdownStyle","dropdownClassName","dropdownContainer","dropdownMarginX","dropdownMarginY","dropdownZIndex","dropdownPosition","onClickTrigger","onHideDropdown","rest","forwardedRef","disabled","readOnly","hasError","formFieldSize","ownProps","useFormFieldProps","containerRef","useRef","triggerRef","isDropdownOpened","setIsDropdownOpened","useState","handleClickTrigger","useCallback","event","prevState","handleHideDropdown","getDOMNode","current","handle","useMemo","useEffect","handleDefaultFocus","useImperativeHandle","hasContent","isEmpty","React","createElement","classNames","styles","SelectContainer","ref","BaseButton","Object","assign","SelectTrigger","getFormFieldSizeClassName","invalid","readonly","active","onClick","SelectMainContent","isBezierIcon","Icon","source","marginRight","color","Text","typo","truncated","ChevronUpIcon","ChevronDownIcon","marginLeft","Overlay","SelectDropdown","getZIndexClassName","withTransition","show","marginX","marginY","target","container","position","onHide"],"mappings":"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"}
1
+ {"version":3,"file":"Select.mjs","sources":["../../../../src/components/Select/Select.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {\n ChevronDownIcon,\n ChevronUpIcon,\n isBezierIcon,\n} from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport {\n getFormFieldSizeClassName,\n getZIndexClassName,\n} from '~/src/types/props-helpers'\nimport { isEmpty } from '~/src/utils/type'\n\nimport { BaseButton } from '~/src/components/BaseButton'\nimport { useFormFieldProps } from '~/src/components/FormControl'\nimport { Icon } from '~/src/components/Icon'\nimport { Overlay } from '~/src/components/Overlay'\nimport { Text } from '~/src/components/Text'\n\nimport { type SelectProps, type SelectRef } from './Select.types'\n\nimport styles from './Select.module.scss'\n\nexport const SELECT_DROPDOWN_TEST_ID = 'bezier-select-dropdown'\n\nexport const Select = forwardRef<SelectRef, SelectProps>(function Select(\n {\n children,\n style,\n className,\n size: sizeProps,\n defaultFocus = false,\n placeholder = '',\n leftContent,\n rightContent,\n iconColor = 'txt-black-dark',\n text,\n textColor = 'txt-black-darkest',\n withoutChevron = false,\n dropdownStyle,\n dropdownClassName,\n dropdownContainer,\n dropdownMarginX,\n dropdownMarginY = 6,\n dropdownZIndex = 'overlay',\n dropdownPosition = 'bottom-left',\n dropdownKeepInContainer = false,\n onClickTrigger,\n onHideDropdown,\n ...rest\n },\n forwardedRef\n) {\n const {\n disabled,\n readOnly,\n hasError,\n size: formFieldSize,\n ...ownProps\n } = useFormFieldProps(rest)\n\n const containerRef = useRef<HTMLDivElement>(null)\n const triggerRef = useRef<HTMLButtonElement>(null)\n\n const size = sizeProps ?? formFieldSize ?? 'm'\n\n const [isDropdownOpened, setIsDropdownOpened] = useState(false)\n\n const handleClickTrigger = useCallback(\n (event: React.MouseEvent) => {\n if (!disabled && !readOnly) {\n setIsDropdownOpened((prevState) => !prevState)\n onClickTrigger?.(event)\n }\n },\n [disabled, readOnly, onClickTrigger]\n )\n\n const handleHideDropdown = useCallback(() => {\n setIsDropdownOpened(false)\n onHideDropdown?.()\n }, [onHideDropdown])\n\n const getDOMNode = useCallback(() => triggerRef.current, [])\n\n const handle = useMemo(\n (): SelectRef => ({\n handleClickTrigger,\n handleHideDropdown,\n getDOMNode,\n }),\n [handleClickTrigger, handleHideDropdown, getDOMNode]\n )\n\n useEffect(\n function handleDefaultFocus() {\n if (defaultFocus && !disabled && !readOnly) {\n setIsDropdownOpened(true)\n }\n },\n [defaultFocus, disabled, readOnly]\n )\n\n useImperativeHandle(forwardedRef, () => handle)\n\n const hasContent = !isEmpty(text)\n\n return (\n <div\n style={style}\n className={classNames(styles.SelectContainer, className)}\n ref={containerRef}\n >\n <BaseButton\n className={classNames(\n styles.SelectTrigger,\n getFormFieldSizeClassName(size),\n hasError && styles.invalid,\n readOnly && styles.readonly,\n isDropdownOpened && styles.active\n )}\n ref={triggerRef}\n disabled={disabled}\n onClick={handleClickTrigger}\n {...ownProps}\n >\n <div className={styles.SelectMainContent}>\n {isBezierIcon(leftContent) ? (\n <Icon\n source={leftContent}\n size=\"xs\"\n marginRight={6}\n color={iconColor}\n />\n ) : (\n leftContent\n )}\n\n <Text\n data-testid=\"bezier-select-trigger-text\"\n typo=\"14\"\n truncated\n color={hasContent ? textColor : 'txt-black-dark'}\n >\n {hasContent ? text : placeholder}\n </Text>\n\n {isBezierIcon(rightContent) ? (\n <Icon\n source={rightContent}\n size=\"xs\"\n marginRight={6}\n color={iconColor}\n />\n ) : (\n rightContent\n )}\n </div>\n\n {!withoutChevron && (\n <Icon\n source={isDropdownOpened ? ChevronUpIcon : ChevronDownIcon}\n size=\"xs\"\n color={readOnly ? 'txt-black-dark' : 'txt-black-darker'}\n marginLeft={6}\n />\n )}\n </BaseButton>\n\n <Overlay\n style={dropdownStyle}\n className={classNames(\n styles.SelectDropdown,\n getZIndexClassName(dropdownZIndex),\n dropdownClassName\n )}\n withTransition\n show={isDropdownOpened && !disabled}\n marginX={dropdownMarginX}\n marginY={dropdownMarginY}\n target={triggerRef.current}\n container={dropdownContainer || containerRef.current}\n position={dropdownPosition}\n keepInContainer={dropdownKeepInContainer}\n data-testid={SELECT_DROPDOWN_TEST_ID}\n onHide={handleHideDropdown}\n >\n {children}\n </Overlay>\n </div>\n )\n})\n"],"names":["SELECT_DROPDOWN_TEST_ID","Select","forwardRef","children","style","className","size","sizeProps","defaultFocus","placeholder","leftContent","rightContent","iconColor","text","textColor","withoutChevron","dropdownStyle","dropdownClassName","dropdownContainer","dropdownMarginX","dropdownMarginY","dropdownZIndex","dropdownPosition","dropdownKeepInContainer","onClickTrigger","onHideDropdown","rest","forwardedRef","disabled","readOnly","hasError","formFieldSize","ownProps","useFormFieldProps","containerRef","useRef","triggerRef","isDropdownOpened","setIsDropdownOpened","useState","handleClickTrigger","useCallback","event","prevState","handleHideDropdown","getDOMNode","current","handle","useMemo","useEffect","handleDefaultFocus","useImperativeHandle","hasContent","isEmpty","React","createElement","classNames","styles","SelectContainer","ref","BaseButton","Object","assign","SelectTrigger","getFormFieldSizeClassName","invalid","readonly","active","onClick","SelectMainContent","isBezierIcon","Icon","source","marginRight","color","Text","typo","truncated","ChevronUpIcon","ChevronDownIcon","marginLeft","Overlay","SelectDropdown","getZIndexClassName","withTransition","show","marginX","marginY","target","container","position","keepInContainer","onHide"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAA;AAqBd,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAIjE,eAAO,MAAM,uBAAuB,2BAA2B,CAAA;AAE/D,eAAO,MAAM,MAAM,+EAoKjB,CAAA"}
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAA;AAqBd,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAIjE,eAAO,MAAM,uBAAuB,2BAA2B,CAAA;AAE/D,eAAO,MAAM,MAAM,+EAsKjB,CAAA"}
@@ -18,6 +18,7 @@ interface SelectOwnProps {
18
18
  dropdownMarginY?: OverlayProps['marginY'];
19
19
  dropdownZIndex?: ZIndex;
20
20
  dropdownPosition?: OverlayProps['position'];
21
+ dropdownKeepInContainer?: OverlayProps['keepInContainer'];
21
22
  onClickTrigger?: React.MouseEventHandler;
22
23
  onHideDropdown?: () => void;
23
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Select.types.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/Select.types.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAE1D,OAAO,KAAK,EACV,oBAAoB,EACpB,+BAA+B,EAC/B,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,SAAS,EACV,0BAAyB;AAC1B,OAAO,EAAE,KAAK,MAAM,EAAE,2BAA0B;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAgC;AAE5D,MAAM,WAAW,SAAS;IACxB,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,GAAG,IAAI,CAAA;IACjD,kBAAkB,IAAI,IAAI,CAAA;IAC1B,UAAU,IAAI,OAAO,GAAG,IAAI,GAAG,IAAI,CAAA;CACpC;AAED,UAAU,cAAc;IACtB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,iBAAiB,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IACtC,eAAe,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAA;IACzC,eAAe,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAA;IACzC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gBAAgB,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAA;IAC3C,cAAc,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAA;IACxC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;CAC5B;AAED,MAAM,WAAW,WACf,SAAQ,oBAAoB,CAAC,QAAQ,CAAC,EACpC,aAAa,EACb,cAAc,EACd,SAAS,CAAC,aAAa,CAAC,EACxB,gBAAgB,CACd,UAAU,GAAG,KAAK,CAAC,SAAS,EAC5B,UAAU,GAAG,KAAK,CAAC,SAAS,CAC7B,EACD,+BAA+B,CAAC,UAAU,CAAC,EAC3C,oBAAoB,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACtC,cAAc;CAAG"}
1
+ {"version":3,"file":"Select.types.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/Select.types.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAE1D,OAAO,KAAK,EACV,oBAAoB,EACpB,+BAA+B,EAC/B,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,SAAS,EACV,0BAAyB;AAC1B,OAAO,EAAE,KAAK,MAAM,EAAE,2BAA0B;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAgC;AAE5D,MAAM,WAAW,SAAS;IACxB,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,GAAG,IAAI,CAAA;IACjD,kBAAkB,IAAI,IAAI,CAAA;IAC1B,UAAU,IAAI,OAAO,GAAG,IAAI,GAAG,IAAI,CAAA;CACpC;AAED,UAAU,cAAc;IACtB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,iBAAiB,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IACtC,eAAe,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAA;IACzC,eAAe,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAA;IACzC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gBAAgB,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAA;IAC3C,uBAAuB,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC,CAAA;IACzD,cAAc,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAA;IACxC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;CAC5B;AAED,MAAM,WAAW,WACf,SAAQ,oBAAoB,CAAC,QAAQ,CAAC,EACpC,aAAa,EACb,cAAc,EACd,SAAS,CAAC,aAAa,CAAC,EACxB,gBAAgB,CACd,UAAU,GAAG,KAAK,CAAC,SAAS,EAC5B,UAAU,GAAG,KAAK,CAAC,SAAS,CAC7B,EACD,+BAA+B,CAAC,UAAU,CAAC,EAC3C,oBAAoB,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACtC,cAAc;CAAG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@channel.io/bezier-react",
3
- "version": "2.0.9",
3
+ "version": "2.1.0",
4
4
  "description": "React components library that implements Bezier design system.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -63,7 +63,7 @@
63
63
  "@babel/preset-env": "^7.23.9",
64
64
  "@babel/preset-react": "^7.23.3",
65
65
  "@babel/preset-typescript": "^7.23.3",
66
- "@channel.io/bezier-icons": "0.27.0",
66
+ "@channel.io/bezier-icons": "0.28.0",
67
67
  "@rollup/plugin-alias": "^5.1.0",
68
68
  "@rollup/plugin-babel": "^6.0.4",
69
69
  "@rollup/plugin-commonjs": "^25.0.7",
@@ -54,6 +54,7 @@ export const Select = forwardRef<SelectRef, SelectProps>(function Select(
54
54
  dropdownMarginY = 6,
55
55
  dropdownZIndex = 'overlay',
56
56
  dropdownPosition = 'bottom-left',
57
+ dropdownKeepInContainer = false,
57
58
  onClickTrigger,
58
59
  onHideDropdown,
59
60
  ...rest
@@ -190,6 +191,7 @@ export const Select = forwardRef<SelectRef, SelectProps>(function Select(
190
191
  target={triggerRef.current}
191
192
  container={dropdownContainer || containerRef.current}
192
193
  position={dropdownPosition}
194
+ keepInContainer={dropdownKeepInContainer}
193
195
  data-testid={SELECT_DROPDOWN_TEST_ID}
194
196
  onHide={handleHideDropdown}
195
197
  >
@@ -30,6 +30,7 @@ interface SelectOwnProps {
30
30
  dropdownMarginY?: OverlayProps['marginY']
31
31
  dropdownZIndex?: ZIndex
32
32
  dropdownPosition?: OverlayProps['position']
33
+ dropdownKeepInContainer?: OverlayProps['keepInContainer']
33
34
  onClickTrigger?: React.MouseEventHandler
34
35
  onHideDropdown?: () => void
35
36
  }