@os-design/core 1.0.236 → 1.0.238

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_react","require","_styled","_interopRequireDefault","_icons","_media","_styles","_theming","_utils","_react2","_interopRequireWildcard","_reactWindow","_Button","_Input","_InputSearch","_useRWLoadNext","_Menu","_MenuItem","_Tag","_defaultLocale","_excluded","_excluded2","_excluded3","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","_templateObject11","_templateObject12","_templateObject13","_templateObject14","_templateObject15","_templateObject16","_templateObject17","_templateObject18","_templateObject19","_templateObject20","_templateObject21","_templateObject22","_templateObject23","_templateObject24","_templateObject25","_templateObject26","_templateObject27","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","iter","iterator","Array","from","isArray","_arrayLikeToArray","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","minLen","toString","slice","constructor","name","test","len","arr2","l","f","next","done","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","_taggedTemplateLiteral","strings","raw","freeze","selectContainerPaddingStyles","p","paddingVertical","theme","baseHeight","selectToggleListItemHeight","css","selectContainerOpenedStyles","opened","unbordered","clr","inputFocusColorBorder","inputFocusColorShadow","selectContainerUnborderedStyles","transitionStyles","selectContainerUnborderedHoverStyles","disabled","buttonGhostColorBgHover","SelectContainer","exports","styled","InputContainer","omitEmotionProps","SelectMenu","Menu","m","min","xs","width","NotFound","div","menuItemHeight","inputPaddingHorizontal","selectNotFoundColorText","InputSearchContainer","menuPaddingVertical","ToggleContainer","toggleContentNotHasLeftStyles","hasLeft","toggleContentNotHasRightStyles","hasRight","ToggleContent","ellipsisStyles","Placeholder","span","inputColorPlaceholder","titleUnborderedStyles","concat","colorPrimary","titleDisabledStyles","inputDisabledColorText","Title","colorText","ToggleListItem","Tag","ToggleList","selectToggleListItemGap","DeleteButton","button","resetButtonStyles","selectToggleDeleteButtonColorIcon","selectToggleDeleteButtonColorIconHover","toggleIconUnborderedStyles","ToggleIconContainer","selectColorIcon","ClearIcon","CloseCircle","Addon","ToggleLeftAddon","inputAddonPaddingHorizontal","hasPadding","ToggleRightAddon","Select","forwardRef","_ref","ref","_ref$options","options","_ref$initSelectedOpti","initSelectedOptions","left","_ref$leftHasPadding","leftHasPadding","right","_ref$rightHasPadding","rightHasPadding","placeholder","_ref$searchVisible","searchVisible","_ref$searchProps","searchProps","_ref$notFoundText","notFoundText","_ref$unbordered","_ref$loading","loading","_ref$disabled","_ref$autoFocus","autoFocus","_ref$autoOpen","autoOpen","_ref$clearVisible","clearVisible","_ref$threshold","threshold","_ref$visibleCount","visibleCount","_ref$overscanCount","overscanCount","_ref$multiple","multiple","_ref$maxSelectedItems","maxSelectedItems","_ref$locale","locale","defaultLocale","defaultValue","onChange","_ref$onLoadNext","onLoadNext","_ref$onClose","onClose","_ref$onBlur","onBlur","size","placement","rest","_useForwardedRef","useForwardedRef","_useForwardedRef2","containerRef","mergedContainerRef","_useState","useState","_useState2","setWidth","_useState3","_useState4","setOpened","_useForwardedState","useForwardedState","_useForwardedState2","forwardedValue","setForwardedValue","useEffect","_containerRef$current","current","focus","onCloseRef","useRef","initRef","resizeHandler","useCallback","window","requestAnimationFrame","nextWidth","getBoundingClientRect","useBrowserLayoutEffect","useResizeObserver","useEvent","setAttribute","listBoxId","useMemo","Math","random","blurHandler","onDelete","v","item","prevSelectedOptions","selectedOptions","values","items","map","option","find","title","toggleContent","createElement","_ref2","onClick","stopPropagation","onKeyDown","deleteLabel","Close","toggleShowClearButton","toggleOnClear","toggleRightValue","Loading","type","wide","clearLabel","Up","Down","toggleRightHasPaddingValue","onSelect","includes","windowSize","useSize","isMinXs","useIsMinWidth","fontSize","useFontSize","document","body","_useTheme","useTheme","scaleFactor","s","sizes","replace","paddingBottom","paddingEm","modalBodyPaddingVertical","paddingTop","searchInputHeight","itemSize","height","maxHeight","modalHeaderHeight","curHeight","count","scrollHandler","useRWLoadNext","itemCount","InnerElement","_ref3","style","innerElementRest","parseFloat","role","id","listItemFn","_ref4","index","_options$index","optionTitle","optionValue","optionOnClick","restOption","top","selected","Fragment","tabIndex","preventDefault","onMouseDown","ThemeOverrider","overrides","buttonPaddingHorizontal","small","trigger","visible","closeOnSelect","modalTitle","FixedSizeList","onScroll","_ref5","scrollOffset","innerElementType","displayName","_default"],"sources":["../../../src/Select/index.tsx"],"sourcesContent":["import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { Close, CloseCircle, Down, Loading, Up } from '@os-design/icons';\nimport { m, useIsMinWidth } from '@os-design/media';\nimport {\n WithSize,\n ellipsisStyles,\n resetButtonStyles,\n transitionStyles,\n} from '@os-design/styles';\nimport { ThemeOverrider, clr, useTheme } from '@os-design/theming';\nimport {\n omitEmotionProps,\n useBrowserLayoutEffect,\n useEvent,\n useFontSize,\n useForwardedRef,\n useForwardedState,\n useResizeObserver,\n useSize,\n} from '@os-design/utils';\nimport React, {\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { FixedSizeList } from 'react-window';\nimport Button from '../Button';\nimport { InputContainer } from '../Input';\nimport InputSearch, { InputSearchProps } from '../InputSearch';\nimport useRWLoadNext from '../List/utils/useRWLoadNext';\nimport Menu from '../Menu';\nimport MenuItem, { MenuItemProps } from '../MenuItem';\nimport { PopoverProps } from '../Popover';\nimport Tag from '../Tag';\nimport defaultLocale, { SelectLocale } from './utils/defaultLocale';\n\nexport interface Option extends MenuItemProps {\n value: string;\n title: string;\n}\n\ntype JsxDivProps = Omit<\n JSX.IntrinsicElements['div'],\n 'value' | 'defaultValue' | 'onChange' | 'ref'\n>;\ninterface BaseSelectProps<T>\n extends JsxDivProps,\n WithSize,\n Pick<PopoverProps, 'placement'> {\n /**\n * Options of the select.\n * @default undefined\n */\n options?: Option[];\n /**\n * Options of the select used to display the selected values.\n * Must be used if all of the options are not loaded immediately.\n * In this case, it's possible that the first loaded options do not contain the selected values.\n * @default undefined\n */\n initSelectedOptions?: Option[];\n /**\n * The component located on the left side.\n * @default undefined\n */\n left?: React.ReactNode;\n /**\n * Adds padding to the left component.\n * It can be useful when passing an icon or text in the left component.\n * @default false\n */\n leftHasPadding?: boolean;\n /**\n * The component located on the right side.\n * @default undefined\n */\n right?: React.ReactNode;\n /**\n * Adds padding to the right component.\n * It can be useful when passing an icon or text in the right component.\n * @default false\n */\n rightHasPadding?: boolean;\n /**\n * The placeholder of the select.\n * @default undefined\n */\n placeholder?: string;\n /**\n * Whether the search input visible.\n * @default false\n */\n searchVisible?: boolean;\n /**\n * Props of the search input.\n * @default undefined\n */\n searchProps?: InputSearchProps;\n /**\n * Text displayed when there are no list items.\n * @default 'Not found'\n */\n notFoundText?: string;\n /**\n * Whether the border is hidden.\n * @default false\n */\n unbordered?: boolean;\n /**\n * Shows the loading status.\n * @default false\n */\n loading?: boolean;\n /**\n * Whether the select is disabled.\n * @default false\n */\n disabled?: boolean;\n /**\n * Whether the component have a focus.\n * @default false\n */\n autoFocus?: boolean;\n /**\n * Whether the component opens the popup list.\n * @default false\n */\n autoOpen?: boolean;\n /**\n * Whether the select has the clear button.\n * @default false\n */\n clearVisible?: boolean;\n /**\n * A threshold N means that the onLoadNext function calls when a user scrolls all items except N.\n * @default 10\n */\n threshold?: number;\n /**\n * Defines how many items inside of the visible \"window\" to render.\n * @default 6\n */\n visibleCount?: number;\n /**\n * Defines how many items outside of the visible \"window\" to render at all times.\n * @default 10\n */\n overscanCount?: number;\n /**\n * The max number of options that the user can select. Zero means unlimited.\n * Works only when multiple is true.\n * @default 0\n */\n maxSelectedItems?: number;\n /**\n * The locale.\n * @default undefined\n */\n locale?: SelectLocale;\n /**\n * Selected options.\n * @default undefined\n */\n value?: T;\n /**\n * The default value.\n * @default undefined\n */\n defaultValue?: T;\n /**\n * The change event handler.\n * @default undefined\n */\n onChange?: (value: T) => void;\n /**\n * The callback to load more items.\n * @default undefined\n */\n onLoadNext?: () => void;\n /**\n * The event handler that is called whenever a popup closes.\n * @default undefined\n */\n onClose?: () => void;\n}\nexport interface SelectNotMultipleProps extends BaseSelectProps<string | null> {\n /**\n * Is it possible to select multiple values.\n * @default false\n */\n multiple?: false;\n}\nexport interface SelectMultipleProps extends BaseSelectProps<string[]> {\n /**\n * Is it possible to select multiple values.\n * @default false\n */\n multiple: true;\n}\nexport type SelectProps = SelectNotMultipleProps | SelectMultipleProps;\n\nconst selectContainerPaddingStyles = (p) => {\n const paddingVertical =\n (p.theme.baseHeight - p.theme.selectToggleListItemHeight) / 2;\n\n return css`\n padding: calc(${paddingVertical}em - 1px) 0;\n `;\n};\n\nconst selectContainerOpenedStyles = (p) =>\n p.opened &&\n !p.unbordered &&\n css`\n border-color: ${clr(p.theme.inputFocusColorBorder)};\n box-shadow: 0 0 0 0.15em ${clr(p.theme.inputFocusColorShadow)};\n `;\n\nconst selectContainerUnborderedStyles = (p) =>\n p.unbordered &&\n css`\n border: 0;\n box-shadow: none !important;\n ${transitionStyles('background-color')(p)};\n `;\n\nconst selectContainerUnborderedHoverStyles = (p) =>\n p.unbordered &&\n !p.disabled &&\n css`\n @media (hover: hover) {\n &:hover,\n &:focus {\n background-color: ${clr(p.theme.buttonGhostColorBgHover)};\n }\n }\n `;\n\ninterface SelectContainerProps {\n opened: boolean;\n unbordered?: boolean;\n disabled?: boolean;\n}\nexport const SelectContainer = styled(\n InputContainer,\n omitEmotionProps('opened', 'unbordered', 'disabled')\n)<SelectContainerProps>`\n cursor: ${(p) => (!p.disabled ? 'pointer' : 'not-allowed')};\n user-select: none;\n position: relative;\n display: flex;\n align-items: center;\n\n height: unset;\n min-height: ${(p) => p.theme.baseHeight}em;\n\n ${selectContainerPaddingStyles};\n ${selectContainerOpenedStyles};\n ${selectContainerUnborderedStyles};\n ${selectContainerUnborderedHoverStyles};\n`;\n\ninterface SelectMenuProps {\n width: number;\n}\nconst SelectMenu = styled(Menu, omitEmotionProps('width'))<SelectMenuProps>`\n padding-top: 0;\n padding-bottom: 0;\n max-height: unset;\n\n ${m.min.xs} {\n width: ${(p) => p.width}px;\n }\n`;\n\nconst NotFound = styled.div`\n height: ${(p) => p.theme.menuItemHeight}em;\n display: flex;\n align-items: center;\n\n padding: 0 ${(p) => p.theme.inputPaddingHorizontal}em;\n color: ${(p) => clr(p.theme.selectNotFoundColorText)};\n`;\n\nconst InputSearchContainer = styled.div`\n padding: ${(p) => p.theme.menuPaddingVertical}em\n ${(p) => p.theme.inputPaddingHorizontal}em 0;\n`;\n\nexport const ToggleContainer = styled.div`\n flex: 1;\n display: flex;\n align-items: center;\n overflow: hidden;\n`;\n\nconst toggleContentNotHasLeftStyles = (p) =>\n !p.hasLeft &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `;\n\nconst toggleContentNotHasRightStyles = (p) =>\n !p.hasRight &&\n !p.unbordered &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `;\n\ninterface ToggleContentProps {\n hasLeft?: boolean;\n hasRight?: boolean;\n unbordered?: boolean;\n}\nexport const ToggleContent = styled(\n 'div',\n omitEmotionProps('hasLeft', 'hasRight', 'unbordered')\n)<ToggleContentProps>`\n flex: 1;\n ${toggleContentNotHasLeftStyles};\n ${toggleContentNotHasRightStyles};\n ${ellipsisStyles};\n`;\n\nexport const Placeholder = styled.span`\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n ${ellipsisStyles};\n`;\n\nconst titleUnborderedStyles = (p) =>\n p.unbordered &&\n css`\n font-weight: 500;\n ${!p.disabled && `color: ${clr(p.theme.colorPrimary)};`}\n `;\n\nconst titleDisabledStyles = (p) =>\n p.disabled &&\n css`\n color: ${clr(p.theme.inputDisabledColorText)};\n `;\n\ntype TitleProps = Pick<SelectProps, 'disabled' | 'unbordered'>;\nexport const Title = styled(\n 'span',\n omitEmotionProps('disabled', 'unbordered')\n)<TitleProps>`\n color: ${(p) => clr(p.theme.colorText)};\n ${titleUnborderedStyles};\n ${titleDisabledStyles};\n ${ellipsisStyles};\n`;\n\ntype ToggleListItemProps = Pick<SelectProps, 'disabled'>;\nconst ToggleListItem = styled(\n Tag,\n omitEmotionProps('disabled')\n)<ToggleListItemProps>`\n // Reset tag styles\n padding-top: 0;\n padding-bottom: 0;\n\n height: ${(p) => p.theme.selectToggleListItemHeight}em;\n ${titleDisabledStyles};\n`;\n\nconst ToggleList = styled.div`\n display: flex;\n flex-wrap: wrap;\n overflow: hidden; // For ellipsis styles\n\n margin: 0 ${(p) => p.theme.selectToggleListItemGap}em\n ${(p) => -p.theme.selectToggleListItemGap}em 0;\n\n & > div {\n margin: 0 ${(p) => p.theme.selectToggleListItemGap}em\n ${(p) => p.theme.selectToggleListItemGap}em 0;\n }\n`;\n\nconst DeleteButton = styled.button`\n ${resetButtonStyles};\n cursor: pointer;\n display: inherit;\n font-size: 1em;\n margin-left: 0.2em;\n\n background-color: transparent;\n color: ${(p) => clr(p.theme.selectToggleDeleteButtonColorIcon)};\n\n @media (hover: hover) {\n &:hover,\n &:focus {\n color: ${(p) => clr(p.theme.selectToggleDeleteButtonColorIconHover)};\n }\n }\n\n ${transitionStyles('color')};\n`;\n\nconst toggleIconUnborderedStyles = (p) =>\n p.unbordered &&\n css`\n padding-top: 0.2em;\n font-size: 0.8em;\n ${!p.disabled && `color: ${clr(p.theme.colorPrimary)};`}\n `;\n\ninterface ToggleIconContainerProps {\n unbordered?: boolean;\n}\nexport const ToggleIconContainer = styled(\n 'span',\n omitEmotionProps('unbordered')\n)<ToggleIconContainerProps>`\n color: ${(p) => clr(p.theme.selectColorIcon)};\n line-height: 1;\n ${toggleIconUnborderedStyles};\n`;\n\nexport const ClearIcon = styled(CloseCircle)`\n transform: scale(1.2) !important;\n`;\n\ninterface AddonProps {\n hasPadding: boolean;\n}\nconst Addon = styled('span', omitEmotionProps('hasPadding'))<AddonProps>`\n display: flex;\n align-items: center;\n user-select: none;\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n\n svg {\n transform: scale(1.2);\n }\n`;\n\nexport const ToggleLeftAddon = styled(Addon)`\n padding-right: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\nexport const ToggleRightAddon = styled(Addon)`\n padding-left: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\n/**\n * The component that allows to pick a value from predefined options.\n */\nconst Select = forwardRef<HTMLDivElement, SelectProps>(\n (\n {\n options = [],\n initSelectedOptions = [],\n left,\n leftHasPadding = false,\n right,\n rightHasPadding = false,\n placeholder,\n searchVisible = false,\n searchProps = {},\n notFoundText = 'Not found',\n unbordered = false,\n loading = false,\n disabled = false,\n autoFocus = false,\n autoOpen = false,\n clearVisible = false,\n threshold = 10,\n visibleCount = 6,\n overscanCount = 10,\n multiple = false,\n maxSelectedItems = 0,\n locale = defaultLocale,\n value,\n defaultValue,\n onChange,\n onLoadNext = () => {},\n onClose = () => {},\n onBlur = () => {},\n size,\n placement,\n ...rest\n },\n ref\n ) => {\n const [containerRef, mergedContainerRef] = useForwardedRef(ref);\n const [width, setWidth] = useState(0);\n const [opened, setOpened] = useState(autoOpen);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const [forwardedValue, setForwardedValue] = useForwardedState<any>({\n value,\n defaultValue,\n onChange,\n });\n\n useEffect(() => {\n if (autoFocus) containerRef.current?.focus();\n }, [autoFocus, containerRef]);\n\n const onCloseRef = useRef(onClose);\n useEffect(() => {\n onCloseRef.current = onClose;\n }, [onClose]);\n\n const initRef = useRef(false);\n useEffect(() => {\n if (!initRef.current) {\n initRef.current = true;\n return;\n }\n if (!opened) onCloseRef.current();\n }, [opened]);\n\n /**\n * Detect the width of the container when the select was opened and update\n * it when either the container size or the window size has been changed.\n */\n const resizeHandler = useCallback(() => {\n window.requestAnimationFrame(() => {\n if (!opened || !containerRef.current) return;\n const nextWidth = containerRef.current.getBoundingClientRect().width;\n if (width === nextWidth) return;\n setWidth(nextWidth);\n });\n }, [opened, containerRef, width]);\n useBrowserLayoutEffect(() => resizeHandler(), [resizeHandler]);\n useResizeObserver(containerRef, resizeHandler);\n useEvent(\n (typeof window !== 'undefined' ? window : undefined) as EventTarget,\n 'resize',\n resizeHandler\n );\n\n // Replace the aria-haspopup attribute from menu to listbox\n useBrowserLayoutEffect(() => {\n if (!containerRef.current) return;\n containerRef.current.setAttribute('aria-haspopup', 'listbox');\n }, []);\n\n const listBoxId = useMemo(\n () => `listbox-${Math.random().toString(36).slice(2, 11)}`,\n []\n );\n\n const blurHandler = useCallback(\n (e) => {\n if (!opened) onBlur(e);\n },\n [onBlur, opened]\n );\n\n const onDelete = useCallback(\n (v: string) => {\n if (!multiple) return;\n setForwardedValue((forwardedValue || []).filter((item) => item !== v));\n },\n [forwardedValue, multiple, setForwardedValue]\n );\n\n const prevSelectedOptions = useRef<Option[]>(initSelectedOptions);\n\n const selectedOptions = useMemo<\n Array<{ title: string; value: string }>\n >(() => {\n if (!forwardedValue) return [];\n const values = Array.isArray(forwardedValue)\n ? forwardedValue\n : [forwardedValue];\n const items = [...options, ...prevSelectedOptions.current];\n return values.map((v) => {\n const option = items.find((item) => item.value === v);\n return {\n title: option ? option.title : v,\n value: v,\n };\n });\n }, [forwardedValue, options]);\n\n useEffect(() => {\n prevSelectedOptions.current = selectedOptions;\n }, [selectedOptions]);\n\n const toggleContent = useMemo(() => {\n if (multiple) {\n if (!forwardedValue || forwardedValue.length === 0) {\n return <Placeholder>{placeholder}</Placeholder>;\n }\n return (\n <ToggleList>\n {selectedOptions.map(({ title, value: v }) => (\n <ToggleListItem\n key={v}\n disabled={disabled}\n right={\n !disabled ? (\n <DeleteButton\n onClick={(e) => {\n onDelete(v);\n e.stopPropagation();\n }}\n onKeyDown={(e) => e.stopPropagation()}\n aria-label={`${locale.deleteLabel} ${title}`}\n aria-hidden\n >\n <Close />\n </DeleteButton>\n ) : undefined\n }\n aria-hidden\n >\n {title}\n </ToggleListItem>\n ))}\n </ToggleList>\n );\n }\n if (!forwardedValue) {\n return <Placeholder>{placeholder}</Placeholder>;\n }\n const option = selectedOptions.find(\n (item) => item.value === forwardedValue\n );\n return (\n <Title disabled={disabled} unbordered={unbordered}>\n {option ? option.title : ''}\n </Title>\n );\n }, [\n disabled,\n forwardedValue,\n locale.deleteLabel,\n multiple,\n onDelete,\n placeholder,\n selectedOptions,\n unbordered,\n ]);\n\n const toggleShowClearButton = useMemo(() => {\n if (!clearVisible) return false;\n if (multiple) return forwardedValue && forwardedValue.length > 0;\n return !!forwardedValue;\n }, [clearVisible, forwardedValue, multiple]);\n\n const toggleOnClear = useCallback(() => {\n setForwardedValue(multiple ? [] : null);\n if (!containerRef.current) return;\n containerRef.current.focus();\n }, [containerRef, multiple, setForwardedValue]);\n\n const toggleRightValue = useMemo(() => {\n if (loading) return <Loading />;\n if (toggleShowClearButton) {\n return (\n <Button\n type='ghost'\n wide='never'\n size='small'\n disabled={disabled}\n onClick={(e) => {\n toggleOnClear();\n e.stopPropagation();\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter') toggleOnClear();\n e.stopPropagation();\n }}\n aria-label={locale.clearLabel}\n >\n <ClearIcon />\n </Button>\n );\n }\n return (\n right || (\n <ToggleIconContainer unbordered={unbordered}>\n {opened ? <Up /> : <Down />}\n </ToggleIconContainer>\n )\n );\n }, [\n disabled,\n loading,\n locale.clearLabel,\n opened,\n right,\n toggleOnClear,\n toggleShowClearButton,\n unbordered,\n ]);\n\n const toggleRightHasPaddingValue = useMemo(() => {\n if (loading) return true;\n if (toggleShowClearButton) return false;\n return right ? rightHasPadding : true;\n }, [loading, right, rightHasPadding, toggleShowClearButton]);\n\n const onSelect = useCallback(\n (v: string) => {\n if (multiple) {\n // Delete the value because it was already selected\n if ((forwardedValue || []).includes(v)) {\n setForwardedValue(\n (forwardedValue || []).filter((item) => item !== v)\n );\n return;\n }\n\n // Add a new value if the number of selected items is less than max\n if (\n maxSelectedItems === 0 ||\n (forwardedValue || []).length < maxSelectedItems\n ) {\n setForwardedValue([...(forwardedValue || []), v]);\n return;\n }\n return;\n }\n setForwardedValue(v);\n },\n [forwardedValue, maxSelectedItems, multiple, setForwardedValue]\n );\n\n const windowSize = useSize();\n const isMinXs = useIsMinWidth('xs');\n const fontSize = useFontSize(document.body);\n const { theme } = useTheme();\n\n const scaleFactor = useMemo(() => {\n const s = size || 'medium';\n return ['small', 'medium', 'large'].includes(s)\n ? theme.sizes[s]\n : Number(s.replace(/^([0-9]+(\\.[0-9]+)?).*/, '$1')) || 1; // Extract the number\n }, [size, theme.sizes]);\n\n const paddingBottom = useMemo(() => {\n const paddingEm = isMinXs\n ? theme.menuPaddingVertical\n : theme.modalBodyPaddingVertical[0];\n return paddingEm * fontSize * scaleFactor;\n }, [\n isMinXs,\n theme.menuPaddingVertical,\n theme.modalBodyPaddingVertical,\n fontSize,\n scaleFactor,\n ]);\n\n const paddingTop = useMemo(\n () => (searchVisible ? 5 * scaleFactor : paddingBottom),\n [searchVisible, scaleFactor, paddingBottom]\n );\n\n const searchInputHeight = useMemo(\n () =>\n searchVisible\n ? (theme.baseHeight + theme.menuPaddingVertical) *\n fontSize *\n scaleFactor\n : 0,\n [\n searchVisible,\n theme.baseHeight,\n theme.menuPaddingVertical,\n fontSize,\n scaleFactor,\n ]\n );\n\n const itemSize = useMemo(\n () => theme.menuItemHeight * fontSize * scaleFactor,\n [theme.menuItemHeight, fontSize, scaleFactor]\n );\n\n const height = useMemo(() => {\n // Modal\n if (!isMinXs) {\n const maxHeight =\n windowSize.height -\n theme.modalHeaderHeight * fontSize * scaleFactor -\n searchInputHeight;\n const curHeight =\n options.length * itemSize + paddingTop + paddingBottom;\n return curHeight < maxHeight ? curHeight : maxHeight;\n }\n // Popover\n const count =\n options.length < visibleCount ? options.length : visibleCount;\n return count * itemSize + paddingTop + paddingBottom;\n }, [\n isMinXs,\n options.length,\n visibleCount,\n itemSize,\n windowSize.height,\n theme.modalHeaderHeight,\n fontSize,\n scaleFactor,\n searchInputHeight,\n paddingTop,\n paddingBottom,\n ]);\n\n const scrollHandler = useRWLoadNext({\n itemCount: options.length,\n threshold,\n itemSize,\n paddingTop,\n height,\n onLoadNext,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const InnerElement = useCallback(\n ({ style, ...innerElementRest }) => (\n <div\n style={{\n ...style,\n height: `${\n parseFloat(style.height) + paddingTop + paddingBottom\n }px`,\n }}\n role='listbox'\n id={listBoxId}\n {...innerElementRest}\n />\n ),\n [listBoxId, paddingBottom, paddingTop]\n );\n\n const listItemFn = useCallback(\n ({ index, style }) => {\n const {\n title: optionTitle,\n value: optionValue,\n onClick: optionOnClick,\n ...restOption\n } = options[index];\n return (\n <MenuItem\n style={{\n ...style,\n top: `${\n parseFloat(style.top ? style.top.toString() : '0') + paddingTop\n }px`,\n }}\n selected={\n (multiple &&\n (forwardedValue || []).includes(optionValue || '')) ||\n (!multiple && forwardedValue === optionValue)\n }\n onClick={(e) => {\n if (!optionValue) return;\n onSelect(optionValue);\n\n // Focus the input.\n // Otherwise, if multiple is false and the user presses enter to select an item,\n // the input will lose focus.\n if (containerRef.current && !multiple) {\n containerRef.current.focus();\n }\n\n if (optionOnClick) optionOnClick(e);\n }}\n role='option'\n aria-selected={\n (multiple &&\n (forwardedValue || []).includes(optionValue || '')) ||\n (!multiple && forwardedValue === optionValue)\n }\n {...restOption}\n >\n {optionTitle}\n </MenuItem>\n );\n },\n [containerRef, forwardedValue, multiple, onSelect, options, paddingTop]\n );\n\n return (\n <>\n <SelectContainer\n opened={opened}\n unbordered={unbordered}\n disabled={disabled}\n size={size}\n tabIndex={!disabled ? 0 : -1}\n onClick={() => {\n if (disabled) return;\n setOpened(!opened);\n }}\n onKeyDown={(e) => {\n if (disabled) return;\n if (['Enter', ' '].includes(e.key)) {\n setOpened(!opened);\n e.preventDefault();\n }\n }}\n onMouseDown={(e) => e.preventDefault()}\n onBlur={blurHandler}\n role='combobox'\n aria-disabled={disabled}\n aria-busy={loading}\n aria-haspopup='listbox'\n aria-owns={listBoxId}\n {...rest}\n ref={mergedContainerRef}\n >\n <ToggleContainer>\n {left && (\n <ThemeOverrider\n overrides={(t) => ({\n buttonPaddingHorizontal: 0.8,\n baseHeight: t.selectToggleListItemHeight / t.sizes.small,\n })}\n >\n <ToggleLeftAddon hasPadding={leftHasPadding}>\n {left}\n </ToggleLeftAddon>\n </ThemeOverrider>\n )}\n\n <ToggleContent\n hasLeft={!!left}\n hasRight={!!right}\n unbordered={unbordered}\n >\n {toggleContent}\n </ToggleContent>\n\n {toggleRightValue && (\n <ThemeOverrider\n overrides={(t) => ({\n buttonPaddingHorizontal: 0.8,\n baseHeight: t.selectToggleListItemHeight / t.sizes.small,\n })}\n >\n <ToggleRightAddon hasPadding={toggleRightHasPaddingValue}>\n {toggleRightValue}\n </ToggleRightAddon>\n </ThemeOverrider>\n )}\n </ToggleContainer>\n </SelectContainer>\n\n <SelectMenu\n trigger={containerRef}\n visible={opened}\n onClose={() => setOpened(false)}\n size={size}\n width={width}\n closeOnSelect={!multiple}\n modalTitle={placeholder}\n placement={placement}\n >\n {searchVisible && (\n <InputSearchContainer>\n <InputSearch {...searchProps} />\n </InputSearchContainer>\n )}\n\n {options.length > 0 ? (\n <FixedSizeList\n width='100%'\n height={height}\n itemSize={itemSize}\n itemCount={options.length}\n overscanCount={overscanCount}\n onScroll={({ scrollOffset }) => scrollHandler(scrollOffset)}\n innerElementType={InnerElement}\n >\n {listItemFn}\n </FixedSizeList>\n ) : (\n <NotFound>{notFoundText}</NotFound>\n )}\n </SelectMenu>\n </>\n );\n }\n);\n\nSelect.displayName = 'Select';\n\nexport default Select;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["_react","require","_styled","_interopRequireDefault","_icons","_media","_styles","_theming","_utils","_react2","_interopRequireWildcard","_reactWindow","_Button","_Input","_InputSearch","_useRWLoadNext","_Menu","_MenuItem","_Tag","_defaultLocale","_excluded","_excluded2","_excluded3","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","_templateObject11","_templateObject12","_templateObject13","_templateObject14","_templateObject15","_templateObject16","_templateObject17","_templateObject18","_templateObject19","_templateObject20","_templateObject21","_templateObject22","_templateObject23","_templateObject24","_templateObject25","_templateObject26","_templateObject27","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","_toPrimitive","String","Symbol","toPrimitive","TypeError","Number","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","iter","iterator","Array","from","isArray","_arrayLikeToArray","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","minLen","toString","slice","constructor","name","test","len","arr2","l","f","next","done","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","_taggedTemplateLiteral","strings","raw","freeze","selectContainerPaddingStyles","p","paddingVertical","theme","baseHeight","selectToggleListItemHeight","css","selectContainerOpenedStyles","opened","unbordered","clr","inputFocusColorBorder","inputFocusColorShadow","selectContainerUnborderedStyles","transitionStyles","selectContainerUnborderedHoverStyles","disabled","buttonGhostColorBgHover","SelectContainer","exports","styled","InputContainer","omitEmotionProps","SelectMenu","Menu","m","min","xs","width","NotFound","div","menuItemHeight","inputPaddingHorizontal","selectNotFoundColorText","InputSearchContainer","menuPaddingVertical","ToggleContainer","toggleContentNotHasLeftStyles","hasLeft","toggleContentNotHasRightStyles","hasRight","ToggleContent","ellipsisStyles","Placeholder","span","inputColorPlaceholder","titleUnborderedStyles","concat","colorPrimary","titleDisabledStyles","inputDisabledColorText","Title","colorText","ToggleListItem","Tag","ToggleList","selectToggleListItemGap","DeleteButton","button","resetButtonStyles","selectToggleDeleteButtonColorIcon","selectToggleDeleteButtonColorIconHover","toggleIconUnborderedStyles","ToggleIconContainer","selectColorIcon","ClearIcon","CloseCircle","Addon","ToggleLeftAddon","inputAddonPaddingHorizontal","hasPadding","ToggleRightAddon","Select","forwardRef","_ref","ref","_ref$options","options","_ref$initSelectedOpti","initSelectedOptions","left","_ref$leftHasPadding","leftHasPadding","right","_ref$rightHasPadding","rightHasPadding","placeholder","_ref$searchVisible","searchVisible","_ref$searchProps","searchProps","_ref$notFoundText","notFoundText","_ref$unbordered","_ref$loading","loading","_ref$disabled","_ref$autoFocus","autoFocus","_ref$autoOpen","autoOpen","_ref$clearVisible","clearVisible","_ref$threshold","threshold","_ref$visibleCount","visibleCount","_ref$overscanCount","overscanCount","_ref$multiple","multiple","_ref$maxSelectedItems","maxSelectedItems","_ref$locale","locale","defaultLocale","defaultValue","onChange","_ref$onLoadNext","onLoadNext","_ref$onClose","onClose","_ref$onBlur","onBlur","size","placement","rest","_useForwardedRef","useForwardedRef","_useForwardedRef2","containerRef","mergedContainerRef","_useState","useState","_useState2","setWidth","_useState3","_useState4","setOpened","_useForwardedState","useForwardedState","_useForwardedState2","forwardedValue","setForwardedValue","useEffect","_containerRef$current","current","focus","onCloseRef","useRef","initRef","resizeHandler","useCallback","window","requestAnimationFrame","nextWidth","getBoundingClientRect","useBrowserLayoutEffect","useResizeObserver","useEvent","undefined","setAttribute","listBoxId","useMemo","Math","random","blurHandler","onDelete","v","item","prevSelectedOptions","selectedOptions","values","items","map","option","find","title","toggleContent","createElement","_ref2","onClick","stopPropagation","onKeyDown","deleteLabel","Close","toggleShowClearButton","toggleOnClear","toggleRightValue","Loading","type","wide","clearLabel","Up","Down","toggleRightHasPaddingValue","onSelect","includes","windowSize","useSize","isMinXs","useIsMinWidth","fontSize","useFontSize","document","body","_useTheme","useTheme","scaleFactor","s","sizes","replace","paddingBottom","paddingEm","modalBodyPaddingVertical","paddingTop","searchInputHeight","itemSize","height","maxHeight","modalHeaderHeight","curHeight","count","scrollHandler","useRWLoadNext","itemCount","InnerElement","_ref3","style","innerElementRest","parseFloat","role","id","listItemFn","_ref4","index","_options$index","optionTitle","optionValue","optionOnClick","restOption","top","selected","Fragment","tabIndex","preventDefault","onMouseDown","ThemeOverrider","overrides","buttonPaddingHorizontal","small","trigger","visible","closeOnSelect","modalTitle","FixedSizeList","onScroll","_ref5","scrollOffset","innerElementType","displayName","_default"],"sources":["../../../src/Select/index.tsx"],"sourcesContent":["import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { Close, CloseCircle, Down, Loading, Up } from '@os-design/icons';\nimport { m, useIsMinWidth } from '@os-design/media';\nimport {\n WithSize,\n ellipsisStyles,\n resetButtonStyles,\n transitionStyles,\n} from '@os-design/styles';\nimport { ThemeOverrider, clr, useTheme } from '@os-design/theming';\nimport {\n omitEmotionProps,\n useBrowserLayoutEffect,\n useEvent,\n useFontSize,\n useForwardedRef,\n useForwardedState,\n useResizeObserver,\n useSize,\n} from '@os-design/utils';\nimport React, {\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { FixedSizeList } from 'react-window';\nimport Button from '../Button';\nimport { InputContainer } from '../Input';\nimport InputSearch, { InputSearchProps } from '../InputSearch';\nimport useRWLoadNext from '../List/utils/useRWLoadNext';\nimport Menu from '../Menu';\nimport MenuItem, { MenuItemProps } from '../MenuItem';\nimport { PopoverProps } from '../Popover';\nimport Tag from '../Tag';\nimport defaultLocale, { SelectLocale } from './utils/defaultLocale';\n\nexport interface Option extends MenuItemProps {\n value: string;\n title: string;\n}\n\ntype JsxDivProps = Omit<\n JSX.IntrinsicElements['div'],\n 'value' | 'defaultValue' | 'onChange' | 'ref'\n>;\ninterface BaseSelectProps<T>\n extends JsxDivProps,\n WithSize,\n Pick<PopoverProps, 'placement'> {\n /**\n * Options of the select.\n * @default undefined\n */\n options?: Option[];\n /**\n * Options of the select used to display the selected values.\n * Must be used if all of the options are not loaded immediately.\n * In this case, it's possible that the first loaded options do not contain the selected values.\n * @default undefined\n */\n initSelectedOptions?: Option[];\n /**\n * The component located on the left side.\n * @default undefined\n */\n left?: React.ReactNode;\n /**\n * Adds padding to the left component.\n * It can be useful when passing an icon or text in the left component.\n * @default false\n */\n leftHasPadding?: boolean;\n /**\n * The component located on the right side.\n * @default undefined\n */\n right?: React.ReactNode;\n /**\n * Adds padding to the right component.\n * It can be useful when passing an icon or text in the right component.\n * @default false\n */\n rightHasPadding?: boolean;\n /**\n * The placeholder of the select.\n * @default undefined\n */\n placeholder?: string;\n /**\n * Whether the search input visible.\n * @default false\n */\n searchVisible?: boolean;\n /**\n * Props of the search input.\n * @default undefined\n */\n searchProps?: InputSearchProps;\n /**\n * Text displayed when there are no list items.\n * @default 'Not found'\n */\n notFoundText?: string;\n /**\n * Whether the border is hidden.\n * @default false\n */\n unbordered?: boolean;\n /**\n * Shows the loading status.\n * @default false\n */\n loading?: boolean;\n /**\n * Whether the select is disabled.\n * @default false\n */\n disabled?: boolean;\n /**\n * Whether the component have a focus.\n * @default false\n */\n autoFocus?: boolean;\n /**\n * Whether the component opens the popup list.\n * @default false\n */\n autoOpen?: boolean;\n /**\n * Whether the select has the clear button.\n * @default false\n */\n clearVisible?: boolean;\n /**\n * A threshold N means that the onLoadNext function calls when a user scrolls all items except N.\n * @default 10\n */\n threshold?: number;\n /**\n * Defines how many items inside of the visible \"window\" to render.\n * @default 6\n */\n visibleCount?: number;\n /**\n * Defines how many items outside of the visible \"window\" to render at all times.\n * @default 10\n */\n overscanCount?: number;\n /**\n * The max number of options that the user can select. Zero means unlimited.\n * Works only when multiple is true.\n * @default 0\n */\n maxSelectedItems?: number;\n /**\n * The locale.\n * @default undefined\n */\n locale?: SelectLocale;\n /**\n * Selected options.\n * @default undefined\n */\n value?: T;\n /**\n * The default value.\n * @default undefined\n */\n defaultValue?: T;\n /**\n * The change event handler.\n * @default undefined\n */\n onChange?: (value: T) => void;\n /**\n * The callback to load more items.\n * @default undefined\n */\n onLoadNext?: () => void;\n /**\n * The event handler that is called whenever a popup closes.\n * @default undefined\n */\n onClose?: () => void;\n}\nexport interface SelectNotMultipleProps extends BaseSelectProps<string | null> {\n /**\n * Is it possible to select multiple values.\n * @default false\n */\n multiple?: false;\n}\nexport interface SelectMultipleProps extends BaseSelectProps<string[]> {\n /**\n * Is it possible to select multiple values.\n * @default false\n */\n multiple: true;\n}\nexport type SelectProps = SelectNotMultipleProps | SelectMultipleProps;\n\nconst selectContainerPaddingStyles = (p) => {\n const paddingVertical =\n (p.theme.baseHeight - p.theme.selectToggleListItemHeight) / 2;\n\n return css`\n padding: calc(${paddingVertical}em - 1px) 0;\n `;\n};\n\nconst selectContainerOpenedStyles = (p) =>\n p.opened &&\n !p.unbordered &&\n css`\n border-color: ${clr(p.theme.inputFocusColorBorder)};\n box-shadow: 0 0 0 0.15em ${clr(p.theme.inputFocusColorShadow)};\n `;\n\nconst selectContainerUnborderedStyles = (p) =>\n p.unbordered &&\n css`\n border: 0;\n box-shadow: none !important;\n ${transitionStyles('background-color')(p)};\n `;\n\nconst selectContainerUnborderedHoverStyles = (p) =>\n p.unbordered &&\n !p.disabled &&\n css`\n @media (hover: hover) {\n &:hover,\n &:focus {\n background-color: ${clr(p.theme.buttonGhostColorBgHover)};\n }\n }\n `;\n\ninterface SelectContainerProps {\n opened: boolean;\n unbordered?: boolean;\n disabled?: boolean;\n}\nexport const SelectContainer = styled(\n InputContainer,\n omitEmotionProps('opened', 'unbordered', 'disabled')\n)<SelectContainerProps>`\n cursor: ${(p) => (!p.disabled ? 'pointer' : 'not-allowed')};\n user-select: none;\n position: relative;\n display: flex;\n align-items: center;\n\n height: unset;\n min-height: ${(p) => p.theme.baseHeight}em;\n\n ${selectContainerPaddingStyles};\n ${selectContainerOpenedStyles};\n ${selectContainerUnborderedStyles};\n ${selectContainerUnborderedHoverStyles};\n`;\n\ninterface SelectMenuProps {\n width: number;\n}\nconst SelectMenu = styled(Menu, omitEmotionProps('width'))<SelectMenuProps>`\n padding-top: 0;\n padding-bottom: 0;\n max-height: unset;\n\n ${m.min.xs} {\n width: ${(p) => p.width}px;\n }\n`;\n\nconst NotFound = styled.div`\n height: ${(p) => p.theme.menuItemHeight}em;\n display: flex;\n align-items: center;\n\n padding: 0 ${(p) => p.theme.inputPaddingHorizontal}em;\n color: ${(p) => clr(p.theme.selectNotFoundColorText)};\n`;\n\nconst InputSearchContainer = styled.div`\n padding: ${(p) => p.theme.menuPaddingVertical}em\n ${(p) => p.theme.inputPaddingHorizontal}em 0;\n`;\n\nexport const ToggleContainer = styled.div`\n flex: 1;\n display: flex;\n align-items: center;\n overflow: hidden;\n`;\n\nconst toggleContentNotHasLeftStyles = (p) =>\n !p.hasLeft &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `;\n\nconst toggleContentNotHasRightStyles = (p) =>\n !p.hasRight &&\n !p.unbordered &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `;\n\ninterface ToggleContentProps {\n hasLeft?: boolean;\n hasRight?: boolean;\n unbordered?: boolean;\n}\nexport const ToggleContent = styled(\n 'div',\n omitEmotionProps('hasLeft', 'hasRight', 'unbordered')\n)<ToggleContentProps>`\n flex: 1;\n ${toggleContentNotHasLeftStyles};\n ${toggleContentNotHasRightStyles};\n ${ellipsisStyles};\n`;\n\nexport const Placeholder = styled.span`\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n ${ellipsisStyles};\n`;\n\nconst titleUnborderedStyles = (p) =>\n p.unbordered &&\n css`\n font-weight: 500;\n ${!p.disabled && `color: ${clr(p.theme.colorPrimary)};`}\n `;\n\nconst titleDisabledStyles = (p) =>\n p.disabled &&\n css`\n color: ${clr(p.theme.inputDisabledColorText)};\n `;\n\ntype TitleProps = Pick<SelectProps, 'disabled' | 'unbordered'>;\nexport const Title = styled(\n 'span',\n omitEmotionProps('disabled', 'unbordered')\n)<TitleProps>`\n color: ${(p) => clr(p.theme.colorText)};\n ${titleUnborderedStyles};\n ${titleDisabledStyles};\n ${ellipsisStyles};\n`;\n\ntype ToggleListItemProps = Pick<SelectProps, 'disabled'>;\nconst ToggleListItem = styled(\n Tag,\n omitEmotionProps('disabled')\n)<ToggleListItemProps>`\n // Reset tag styles\n padding-top: 0;\n padding-bottom: 0;\n\n height: ${(p) => p.theme.selectToggleListItemHeight}em;\n ${titleDisabledStyles};\n`;\n\nconst ToggleList = styled.div`\n display: flex;\n flex-wrap: wrap;\n overflow: hidden; // For ellipsis styles\n\n margin: 0 ${(p) => p.theme.selectToggleListItemGap}em\n ${(p) => -p.theme.selectToggleListItemGap}em 0;\n\n & > div {\n margin: 0 ${(p) => p.theme.selectToggleListItemGap}em\n ${(p) => p.theme.selectToggleListItemGap}em 0;\n }\n`;\n\nconst DeleteButton = styled.button`\n ${resetButtonStyles};\n cursor: pointer;\n display: inherit;\n font-size: 1em;\n margin-left: 0.2em;\n\n background-color: transparent;\n color: ${(p) => clr(p.theme.selectToggleDeleteButtonColorIcon)};\n\n @media (hover: hover) {\n &:hover,\n &:focus {\n color: ${(p) => clr(p.theme.selectToggleDeleteButtonColorIconHover)};\n }\n }\n\n ${transitionStyles('color')};\n`;\n\nconst toggleIconUnborderedStyles = (p) =>\n p.unbordered &&\n css`\n padding-top: 0.2em;\n font-size: 0.8em;\n ${!p.disabled && `color: ${clr(p.theme.colorPrimary)};`}\n `;\n\ninterface ToggleIconContainerProps {\n unbordered?: boolean;\n}\nexport const ToggleIconContainer = styled(\n 'span',\n omitEmotionProps('unbordered')\n)<ToggleIconContainerProps>`\n color: ${(p) => clr(p.theme.selectColorIcon)};\n line-height: 1;\n ${toggleIconUnborderedStyles};\n`;\n\nexport const ClearIcon = styled(CloseCircle)`\n transform: scale(1.2) !important;\n`;\n\ninterface AddonProps {\n hasPadding: boolean;\n}\nconst Addon = styled('span', omitEmotionProps('hasPadding'))<AddonProps>`\n display: flex;\n align-items: center;\n user-select: none;\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n\n svg {\n transform: scale(1.2);\n }\n`;\n\nexport const ToggleLeftAddon = styled(Addon)`\n padding-right: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-left: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\nexport const ToggleRightAddon = styled(Addon)`\n padding-left: ${(p) => p.theme.inputAddonPaddingHorizontal}em;\n ${(p) =>\n p.hasPadding &&\n css`\n padding-right: ${p.theme.inputPaddingHorizontal}em;\n `}\n`;\n\n/**\n * The component that allows to pick a value from predefined options.\n */\nconst Select = forwardRef<HTMLDivElement, SelectProps>(\n (\n {\n options = [],\n initSelectedOptions = [],\n left,\n leftHasPadding = false,\n right,\n rightHasPadding = false,\n placeholder,\n searchVisible = false,\n searchProps = {},\n notFoundText = 'Not found',\n unbordered = false,\n loading = false,\n disabled = false,\n autoFocus = false,\n autoOpen = false,\n clearVisible = false,\n threshold = 10,\n visibleCount = 6,\n overscanCount = 10,\n multiple = false,\n maxSelectedItems = 0,\n locale = defaultLocale,\n value,\n defaultValue,\n onChange,\n onLoadNext = () => {},\n onClose = () => {},\n onBlur = () => {},\n size,\n placement,\n ...rest\n },\n ref\n ) => {\n const [containerRef, mergedContainerRef] = useForwardedRef(ref);\n const [width, setWidth] = useState(0);\n const [opened, setOpened] = useState(autoOpen);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const [forwardedValue, setForwardedValue] = useForwardedState<any>({\n value,\n defaultValue,\n onChange,\n });\n\n useEffect(() => {\n if (autoFocus) containerRef.current?.focus();\n }, [autoFocus, containerRef]);\n\n const onCloseRef = useRef(onClose);\n useEffect(() => {\n onCloseRef.current = onClose;\n }, [onClose]);\n\n const initRef = useRef(false);\n useEffect(() => {\n if (!initRef.current) {\n initRef.current = true;\n return;\n }\n if (!opened) onCloseRef.current();\n }, [opened]);\n\n /**\n * Detect the width of the container when the select was opened and update\n * it when either the container size or the window size has been changed.\n */\n const resizeHandler = useCallback(() => {\n window.requestAnimationFrame(() => {\n if (!opened || !containerRef.current) return;\n const nextWidth = containerRef.current.getBoundingClientRect().width;\n if (width === nextWidth) return;\n setWidth(nextWidth);\n });\n }, [opened, containerRef, width]);\n useBrowserLayoutEffect(() => resizeHandler(), [resizeHandler]);\n useResizeObserver(containerRef, resizeHandler);\n useEvent(\n (typeof window !== 'undefined' ? window : undefined) as EventTarget,\n 'resize',\n resizeHandler\n );\n\n // Replace the aria-haspopup attribute from menu to listbox\n useBrowserLayoutEffect(() => {\n if (!containerRef.current) return;\n containerRef.current.setAttribute('aria-haspopup', 'listbox');\n }, []);\n\n const listBoxId = useMemo(\n () => `listbox-${Math.random().toString(36).slice(2, 11)}`,\n []\n );\n\n const blurHandler = useCallback(\n (e) => {\n if (!opened) onBlur(e);\n },\n [onBlur, opened]\n );\n\n const onDelete = useCallback(\n (v: string) => {\n if (!multiple) return;\n setForwardedValue((forwardedValue || []).filter((item) => item !== v));\n },\n [forwardedValue, multiple, setForwardedValue]\n );\n\n const prevSelectedOptions = useRef<Option[]>(initSelectedOptions);\n\n const selectedOptions = useMemo<\n Array<{ title: string; value: string }>\n >(() => {\n if (!forwardedValue) return [];\n const values = Array.isArray(forwardedValue)\n ? forwardedValue\n : [forwardedValue];\n const items = [...options, ...prevSelectedOptions.current];\n return values.map((v) => {\n const option = items.find((item) => item.value === v);\n return {\n title: option ? option.title : v,\n value: v,\n };\n });\n }, [forwardedValue, options]);\n\n useEffect(() => {\n prevSelectedOptions.current = selectedOptions;\n }, [selectedOptions]);\n\n const toggleContent = useMemo(() => {\n if (multiple) {\n if (!forwardedValue || forwardedValue.length === 0) {\n return <Placeholder>{placeholder}</Placeholder>;\n }\n return (\n <ToggleList>\n {selectedOptions.map(({ title, value: v }) => (\n <ToggleListItem\n key={v}\n disabled={disabled}\n right={\n !disabled ? (\n <DeleteButton\n onClick={(e) => {\n onDelete(v);\n e.stopPropagation();\n }}\n onKeyDown={(e) => e.stopPropagation()}\n aria-label={`${locale.deleteLabel} ${title}`}\n aria-hidden\n >\n <Close />\n </DeleteButton>\n ) : undefined\n }\n aria-hidden\n >\n {title}\n </ToggleListItem>\n ))}\n </ToggleList>\n );\n }\n if (!forwardedValue) {\n return <Placeholder>{placeholder}</Placeholder>;\n }\n const option = selectedOptions.find(\n (item) => item.value === forwardedValue\n );\n return (\n <Title disabled={disabled} unbordered={unbordered}>\n {option ? option.title : ''}\n </Title>\n );\n }, [\n disabled,\n forwardedValue,\n locale.deleteLabel,\n multiple,\n onDelete,\n placeholder,\n selectedOptions,\n unbordered,\n ]);\n\n const toggleShowClearButton = useMemo(() => {\n if (!clearVisible) return false;\n if (multiple) return forwardedValue && forwardedValue.length > 0;\n return !!forwardedValue;\n }, [clearVisible, forwardedValue, multiple]);\n\n const toggleOnClear = useCallback(() => {\n setForwardedValue(multiple ? [] : null);\n if (!containerRef.current) return;\n containerRef.current.focus();\n }, [containerRef, multiple, setForwardedValue]);\n\n const toggleRightValue = useMemo(() => {\n if (loading) return <Loading />;\n if (toggleShowClearButton) {\n return (\n <Button\n type='ghost'\n wide='never'\n size='small'\n disabled={disabled}\n onClick={(e) => {\n toggleOnClear();\n e.stopPropagation();\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter') toggleOnClear();\n e.stopPropagation();\n }}\n aria-label={locale.clearLabel}\n >\n <ClearIcon />\n </Button>\n );\n }\n return (\n right || (\n <ToggleIconContainer unbordered={unbordered}>\n {opened ? <Up /> : <Down />}\n </ToggleIconContainer>\n )\n );\n }, [\n disabled,\n loading,\n locale.clearLabel,\n opened,\n right,\n toggleOnClear,\n toggleShowClearButton,\n unbordered,\n ]);\n\n const toggleRightHasPaddingValue = useMemo(() => {\n if (loading) return true;\n if (toggleShowClearButton) return false;\n return right ? rightHasPadding : true;\n }, [loading, right, rightHasPadding, toggleShowClearButton]);\n\n const onSelect = useCallback(\n (v: string) => {\n if (multiple) {\n // Delete the value because it was already selected\n if ((forwardedValue || []).includes(v)) {\n setForwardedValue(\n (forwardedValue || []).filter((item) => item !== v)\n );\n return;\n }\n\n // Add a new value if the number of selected items is less than max\n if (\n maxSelectedItems === 0 ||\n (forwardedValue || []).length < maxSelectedItems\n ) {\n setForwardedValue([...(forwardedValue || []), v]);\n return;\n }\n return;\n }\n setForwardedValue(v);\n },\n [forwardedValue, maxSelectedItems, multiple, setForwardedValue]\n );\n\n const windowSize = useSize();\n const isMinXs = useIsMinWidth('xs');\n const fontSize = useFontSize(document.body);\n const { theme } = useTheme();\n\n const scaleFactor = useMemo(() => {\n const s = size || 'medium';\n return ['small', 'medium', 'large'].includes(s)\n ? theme.sizes[s]\n : Number(s.replace(/^([0-9]+(\\.[0-9]+)?).*/, '$1')) || 1; // Extract the number\n }, [size, theme.sizes]);\n\n const paddingBottom = useMemo(() => {\n const paddingEm = isMinXs\n ? theme.menuPaddingVertical\n : theme.modalBodyPaddingVertical[0];\n return paddingEm * fontSize * scaleFactor;\n }, [\n isMinXs,\n theme.menuPaddingVertical,\n theme.modalBodyPaddingVertical,\n fontSize,\n scaleFactor,\n ]);\n\n const paddingTop = useMemo(\n () => (searchVisible ? 5 * scaleFactor : paddingBottom),\n [searchVisible, scaleFactor, paddingBottom]\n );\n\n const searchInputHeight = useMemo(\n () =>\n searchVisible\n ? (theme.baseHeight + theme.menuPaddingVertical) *\n fontSize *\n scaleFactor\n : 0,\n [\n searchVisible,\n theme.baseHeight,\n theme.menuPaddingVertical,\n fontSize,\n scaleFactor,\n ]\n );\n\n const itemSize = useMemo(\n () => theme.menuItemHeight * fontSize * scaleFactor,\n [theme.menuItemHeight, fontSize, scaleFactor]\n );\n\n const height = useMemo(() => {\n // Modal\n if (!isMinXs) {\n const maxHeight =\n windowSize.height -\n theme.modalHeaderHeight * fontSize * scaleFactor -\n searchInputHeight;\n const curHeight =\n options.length * itemSize + paddingTop + paddingBottom;\n return curHeight < maxHeight ? curHeight : maxHeight;\n }\n // Popover\n const count =\n options.length < visibleCount ? options.length : visibleCount;\n return count * itemSize + paddingTop + paddingBottom;\n }, [\n isMinXs,\n options.length,\n visibleCount,\n itemSize,\n windowSize.height,\n theme.modalHeaderHeight,\n fontSize,\n scaleFactor,\n searchInputHeight,\n paddingTop,\n paddingBottom,\n ]);\n\n const scrollHandler = useRWLoadNext({\n itemCount: options.length,\n threshold,\n itemSize,\n paddingTop,\n height,\n onLoadNext,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const InnerElement = useCallback(\n ({ style, ...innerElementRest }) => (\n <div\n style={{\n ...style,\n height: `${\n parseFloat(style.height) + paddingTop + paddingBottom\n }px`,\n }}\n role='listbox'\n id={listBoxId}\n {...innerElementRest}\n />\n ),\n [listBoxId, paddingBottom, paddingTop]\n );\n\n const listItemFn = useCallback(\n ({ index, style }) => {\n const {\n title: optionTitle,\n value: optionValue,\n onClick: optionOnClick,\n ...restOption\n } = options[index];\n return (\n <MenuItem\n style={{\n ...style,\n top: `${\n parseFloat(style.top ? style.top.toString() : '0') + paddingTop\n }px`,\n }}\n selected={\n (multiple &&\n (forwardedValue || []).includes(optionValue || '')) ||\n (!multiple && forwardedValue === optionValue)\n }\n onClick={(e) => {\n if (!optionValue) return;\n onSelect(optionValue);\n\n // Focus the input.\n // Otherwise, if multiple is false and the user presses enter to select an item,\n // the input will lose focus.\n if (containerRef.current && !multiple) {\n containerRef.current.focus();\n }\n\n if (optionOnClick) optionOnClick(e);\n }}\n role='option'\n aria-selected={\n (multiple &&\n (forwardedValue || []).includes(optionValue || '')) ||\n (!multiple && forwardedValue === optionValue)\n }\n {...restOption}\n >\n {optionTitle}\n </MenuItem>\n );\n },\n [containerRef, forwardedValue, multiple, onSelect, options, paddingTop]\n );\n\n return (\n <>\n <SelectContainer\n opened={opened}\n unbordered={unbordered}\n disabled={disabled}\n size={size}\n tabIndex={!disabled ? 0 : -1}\n onClick={() => {\n if (disabled) return;\n setOpened(!opened);\n }}\n onKeyDown={(e) => {\n if (disabled) return;\n if (['Enter', ' '].includes(e.key)) {\n setOpened(!opened);\n e.preventDefault();\n }\n }}\n onMouseDown={(e) => e.preventDefault()}\n onBlur={blurHandler}\n role='combobox'\n aria-disabled={disabled}\n aria-busy={loading}\n aria-haspopup='listbox'\n aria-owns={listBoxId}\n {...rest}\n ref={mergedContainerRef}\n >\n <ToggleContainer>\n {left && (\n <ThemeOverrider\n overrides={(t) => ({\n buttonPaddingHorizontal: 0.8,\n baseHeight: t.selectToggleListItemHeight / t.sizes.small,\n })}\n >\n <ToggleLeftAddon hasPadding={leftHasPadding}>\n {left}\n </ToggleLeftAddon>\n </ThemeOverrider>\n )}\n\n <ToggleContent\n hasLeft={!!left}\n hasRight={!!right}\n unbordered={unbordered}\n >\n {toggleContent}\n </ToggleContent>\n\n {toggleRightValue && (\n <ThemeOverrider\n overrides={(t) => ({\n buttonPaddingHorizontal: 0.8,\n baseHeight: t.selectToggleListItemHeight / t.sizes.small,\n })}\n >\n <ToggleRightAddon hasPadding={toggleRightHasPaddingValue}>\n {toggleRightValue}\n </ToggleRightAddon>\n </ThemeOverrider>\n )}\n </ToggleContainer>\n </SelectContainer>\n\n <SelectMenu\n trigger={containerRef}\n visible={opened}\n onClose={() => setOpened(false)}\n size={size}\n width={width}\n closeOnSelect={!multiple}\n modalTitle={placeholder}\n placement={placement}\n >\n {searchVisible && (\n <InputSearchContainer>\n <InputSearch {...searchProps} />\n </InputSearchContainer>\n )}\n\n {options.length > 0 ? (\n <FixedSizeList\n width='100%'\n height={height}\n itemSize={itemSize}\n itemCount={options.length}\n overscanCount={overscanCount}\n onScroll={({ scrollOffset }) => scrollHandler(scrollOffset)}\n innerElementType={InnerElement}\n >\n {listItemFn}\n </FixedSizeList>\n ) : (\n <NotFound>{notFoundText}</NotFound>\n )}\n </SelectMenu>\n </>\n );\n }\n);\n\nSelect.displayName = 'Select';\n\nexport default Select;\n"],"mappings":"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"}
@@ -36,8 +36,9 @@ const AvatarContainer = styled('div', omitEmotionProps('bgColor'))`
36
36
 
37
37
  ${sizeStyles};
38
38
  `;
39
- const UserIcon = styled(User)`
39
+ const IconContainer = styled.div`
40
40
  font-size: 0.6em;
41
+ line-height: 0.6;
41
42
  `;
42
43
  const Initials = styled.div`
43
44
  font-size: 0.35em;
@@ -75,6 +76,7 @@ const Avatar = /*#__PURE__*/forwardRef(({
75
76
  imageProps = {},
76
77
  online = false,
77
78
  size = '2em',
79
+ children,
78
80
  ...rest
79
81
  }, ref) => {
80
82
  const {
@@ -103,7 +105,7 @@ const Avatar = /*#__PURE__*/forwardRef(({
103
105
  if (initials) return /*#__PURE__*/React.createElement(Initials, null, initials);
104
106
 
105
107
  // Otherwise render the user icon
106
- return /*#__PURE__*/React.createElement(UserIcon, null);
108
+ return /*#__PURE__*/React.createElement(IconContainer, null, /*#__PURE__*/React.createElement(User, null));
107
109
  }, [image, imageProps, firstName, lastName]);
108
110
  return /*#__PURE__*/React.createElement(Container, {
109
111
  size: size
@@ -113,7 +115,7 @@ const Avatar = /*#__PURE__*/forwardRef(({
113
115
  "aria-label": fullName || 'User'
114
116
  }, rest, {
115
117
  ref: ref
116
- }), renderChildren()), online && /*#__PURE__*/React.createElement(Online, null));
118
+ }), children ? /*#__PURE__*/React.createElement(IconContainer, null, children) : renderChildren()), online && /*#__PURE__*/React.createElement(Online, null));
117
119
  });
118
120
  Avatar.displayName = 'Avatar';
119
121
  export default Avatar;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["styled","User","sizeStyles","clr","useTheme","omitEmotionProps","React","forwardRef","useCallback","useMemo","Image","nameToInitials","strToHue","Container","AvatarContainer","p","theme","borderRadius","bgColor","UserIcon","Initials","div","INNER_SIZE","OUTER_SIZE","Online","span","avatarOnlineColorScoop","avatarOnlineColorBg","Avatar","firstName","lastName","image","imageProps","online","size","rest","ref","parts","push","length","join","avatarDefaultColorBg","fullName","filter","i","undefined","renderChildren","createElement","_extends","url","cropped","initials","role","displayName"],"sources":["../../../src/Avatar/index.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport { User } from '@os-design/icons';\nimport { WithSize, sizeStyles } from '@os-design/styles';\nimport { Color, clr, useTheme } from '@os-design/theming';\nimport { omitEmotionProps } from '@os-design/utils';\nimport React, { forwardRef, useCallback, useMemo } from 'react';\nimport Image, { ImageProps } from '../Image';\nimport nameToInitials from './utils/nameToInitials';\nimport strToHue from './utils/strToHue';\n\ntype JsxDivProps = Omit<JSX.IntrinsicElements['div'], 'ref'>;\nexport interface AvatarProps extends JsxDivProps, WithSize {\n /**\n * Used to render the first letter if the image URL is not specified.\n * @default undefined\n */\n firstName?: string;\n /**\n * Used to render the second letter if the image URL is not specified.\n * @default undefined\n */\n lastName?: string;\n /**\n * The URL of the image.\n * @default undefined\n */\n image?: string;\n /**\n * The props of the image.\n * @default undefined\n */\n imageProps?: Omit<ImageProps, 'url'>;\n /**\n * Whether the user is online.\n * @default false\n */\n online?: boolean;\n}\n\nconst Container = styled('div', omitEmotionProps('size'))<WithSize>`\n position: relative;\n width: 1em;\n height: 1em;\n min-width: 1em;\n min-height: 1em;\n ${sizeStyles};\n`;\n\ninterface AvatarContainerProps {\n bgColor: Color;\n}\n\nconst AvatarContainer = styled(\n 'div',\n omitEmotionProps('bgColor')\n)<AvatarContainerProps>`\n width: 100%;\n height: 100%;\n border-radius: ${(p) => p.theme.borderRadius}em;\n\n font-weight: 500;\n line-height: 1;\n\n color: hsl(0, 0%, 100%);\n background-color: ${(p) => clr(p.bgColor)};\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n white-space: nowrap; // To disable multiline text\n overflow: hidden; // To trim the image corners\n\n ${sizeStyles};\n`;\n\nconst UserIcon = styled(User)`\n font-size: 0.6em;\n`;\n\nconst Initials = styled.div`\n font-size: 0.35em;\n`;\n\nconst INNER_SIZE = 0.25;\nconst OUTER_SIZE = INNER_SIZE * 1.2;\n\nconst Online = styled.span`\n position: absolute;\n right: -0.05em;\n bottom: -0.05em;\n width: ${OUTER_SIZE}em;\n height: ${OUTER_SIZE}em;\n border-radius: 50%;\n background-color: ${(p) => clr(p.theme.avatarOnlineColorScoop)};\n\n &::before {\n content: '';\n position: absolute;\n left: ${(OUTER_SIZE - INNER_SIZE) / 2}em;\n bottom: ${(OUTER_SIZE - INNER_SIZE) / 2}em;\n width: ${INNER_SIZE}em;\n height: ${INNER_SIZE}em;\n border-radius: 50%;\n background-color: ${(p) => clr(p.theme.avatarOnlineColorBg)};\n }\n`;\n\n/**\n * Avatar can be used to represent people.\n */\nconst Avatar = forwardRef<HTMLDivElement, AvatarProps>(\n (\n {\n firstName,\n lastName,\n image,\n imageProps = {},\n online = false,\n size = '2em',\n ...rest\n },\n ref\n ) => {\n const { theme } = useTheme();\n\n const bgColor = useMemo<Color>(() => {\n const parts: string[] = [];\n if (firstName) parts.push(firstName);\n if (lastName) parts.push(lastName);\n if (parts.length > 0) return [strToHue(parts.join(' ')), 30, 60];\n return theme.avatarDefaultColorBg;\n }, [firstName, lastName, theme.avatarDefaultColorBg]);\n\n const fullName = useMemo(\n () => [firstName, lastName].filter((i) => i).join(' ') || undefined,\n [firstName, lastName]\n );\n\n const renderChildren = useCallback(() => {\n // Render the image if the image property was specified\n if (image) return <Image url={image} cropped {...imageProps} />;\n\n // Render the initials of the name if either firstName or lastName was specified\n const initials = nameToInitials({ firstName, lastName });\n if (initials) return <Initials>{initials}</Initials>;\n\n // Otherwise render the user icon\n return <UserIcon />;\n }, [image, imageProps, firstName, lastName]);\n\n return (\n <Container size={size}>\n <AvatarContainer\n bgColor={bgColor}\n role='img'\n aria-label={fullName || 'User'}\n {...rest}\n ref={ref}\n >\n {renderChildren()}\n </AvatarContainer>\n {online && <Online />}\n </Container>\n );\n }\n);\n\nAvatar.displayName = 'Avatar';\n\nexport default Avatar;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["styled","User","sizeStyles","clr","useTheme","omitEmotionProps","React","forwardRef","useCallback","useMemo","Image","nameToInitials","strToHue","Container","AvatarContainer","p","theme","borderRadius","bgColor","IconContainer","div","Initials","INNER_SIZE","OUTER_SIZE","Online","span","avatarOnlineColorScoop","avatarOnlineColorBg","Avatar","firstName","lastName","image","imageProps","online","size","children","rest","ref","parts","push","length","join","avatarDefaultColorBg","fullName","filter","i","undefined","renderChildren","createElement","_extends","url","cropped","initials","role","displayName"],"sources":["../../../src/Avatar/index.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport { User } from '@os-design/icons';\nimport { WithSize, sizeStyles } from '@os-design/styles';\nimport { Color, clr, useTheme } from '@os-design/theming';\nimport { omitEmotionProps } from '@os-design/utils';\nimport React, { forwardRef, useCallback, useMemo } from 'react';\nimport Image, { ImageProps } from '../Image';\nimport nameToInitials from './utils/nameToInitials';\nimport strToHue from './utils/strToHue';\n\ntype JsxDivProps = Omit<JSX.IntrinsicElements['div'], 'ref'>;\nexport interface AvatarProps extends JsxDivProps, WithSize {\n /**\n * Used to render the first letter if the image URL is not specified.\n * @default undefined\n */\n firstName?: string;\n /**\n * Used to render the second letter if the image URL is not specified.\n * @default undefined\n */\n lastName?: string;\n /**\n * The URL of the image.\n * @default undefined\n */\n image?: string;\n /**\n * The props of the image.\n * @default undefined\n */\n imageProps?: Omit<ImageProps, 'url'>;\n /**\n * Whether the user is online.\n * @default false\n */\n online?: boolean;\n}\n\nconst Container = styled('div', omitEmotionProps('size'))<WithSize>`\n position: relative;\n width: 1em;\n height: 1em;\n min-width: 1em;\n min-height: 1em;\n ${sizeStyles};\n`;\n\ninterface AvatarContainerProps {\n bgColor: Color;\n}\n\nconst AvatarContainer = styled(\n 'div',\n omitEmotionProps('bgColor')\n)<AvatarContainerProps>`\n width: 100%;\n height: 100%;\n border-radius: ${(p) => p.theme.borderRadius}em;\n\n font-weight: 500;\n line-height: 1;\n\n color: hsl(0, 0%, 100%);\n background-color: ${(p) => clr(p.bgColor)};\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n white-space: nowrap; // To disable multiline text\n overflow: hidden; // To trim the image corners\n\n ${sizeStyles};\n`;\n\nconst IconContainer = styled.div`\n font-size: 0.6em;\n line-height: 0.6;\n`;\n\nconst Initials = styled.div`\n font-size: 0.35em;\n`;\n\nconst INNER_SIZE = 0.25;\nconst OUTER_SIZE = INNER_SIZE * 1.2;\n\nconst Online = styled.span`\n position: absolute;\n right: -0.05em;\n bottom: -0.05em;\n width: ${OUTER_SIZE}em;\n height: ${OUTER_SIZE}em;\n border-radius: 50%;\n background-color: ${(p) => clr(p.theme.avatarOnlineColorScoop)};\n\n &::before {\n content: '';\n position: absolute;\n left: ${(OUTER_SIZE - INNER_SIZE) / 2}em;\n bottom: ${(OUTER_SIZE - INNER_SIZE) / 2}em;\n width: ${INNER_SIZE}em;\n height: ${INNER_SIZE}em;\n border-radius: 50%;\n background-color: ${(p) => clr(p.theme.avatarOnlineColorBg)};\n }\n`;\n\n/**\n * Avatar can be used to represent people.\n */\nconst Avatar = forwardRef<HTMLDivElement, AvatarProps>(\n (\n {\n firstName,\n lastName,\n image,\n imageProps = {},\n online = false,\n size = '2em',\n children,\n ...rest\n },\n ref\n ) => {\n const { theme } = useTheme();\n\n const bgColor = useMemo<Color>(() => {\n const parts: string[] = [];\n if (firstName) parts.push(firstName);\n if (lastName) parts.push(lastName);\n if (parts.length > 0) return [strToHue(parts.join(' ')), 30, 60];\n return theme.avatarDefaultColorBg;\n }, [firstName, lastName, theme.avatarDefaultColorBg]);\n\n const fullName = useMemo(\n () => [firstName, lastName].filter((i) => i).join(' ') || undefined,\n [firstName, lastName]\n );\n\n const renderChildren = useCallback(() => {\n // Render the image if the image property was specified\n if (image) return <Image url={image} cropped {...imageProps} />;\n\n // Render the initials of the name if either firstName or lastName was specified\n const initials = nameToInitials({ firstName, lastName });\n if (initials) return <Initials>{initials}</Initials>;\n\n // Otherwise render the user icon\n return (\n <IconContainer>\n <User />\n </IconContainer>\n );\n }, [image, imageProps, firstName, lastName]);\n\n return (\n <Container size={size}>\n <AvatarContainer\n bgColor={bgColor}\n role='img'\n aria-label={fullName || 'User'}\n {...rest}\n ref={ref}\n >\n {children ? (\n <IconContainer>{children}</IconContainer>\n ) : (\n renderChildren()\n )}\n </AvatarContainer>\n {online && <Online />}\n </Container>\n );\n }\n);\n\nAvatar.displayName = 'Avatar';\n\nexport default Avatar;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Avatar/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAc,MAAM,mBAAmB,CAAC;AAGzD,OAAO,KAA2C,MAAM,OAAO,CAAC;AAChE,OAAc,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAI7C,KAAK,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7D,MAAM,WAAW,WAAY,SAAQ,WAAW,EAAE,QAAQ;IAKxD,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAKlB,KAAK,CAAC,EAAE,MAAM,CAAC;IAKf,UAAU,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAKrC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA0ED,QAAA,MAAM,MAAM,oFAuDX,CAAC;AAIF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Avatar/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAc,MAAM,mBAAmB,CAAC;AAGzD,OAAO,KAA2C,MAAM,OAAO,CAAC;AAChE,OAAc,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAI7C,KAAK,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7D,MAAM,WAAW,WAAY,SAAQ,WAAW,EAAE,QAAQ;IAKxD,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAKlB,KAAK,CAAC,EAAE,MAAM,CAAC;IAKf,UAAU,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAKrC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA2ED,QAAA,MAAM,MAAM,oFAgEX,CAAC;AAIF,eAAe,MAAM,CAAC"}
@@ -18,7 +18,7 @@ interface StyledButtonProps extends Pick<ButtonProps, 'wide' | 'loading' | 'disa
18
18
  }
19
19
  export declare const StyledButton: import("@emotion/styled").StyledComponent<{
20
20
  theme?: import("@emotion/react").Theme | undefined;
21
- as?: React.ElementType<any> | undefined;
21
+ as?: React.ElementType<any, keyof React.JSX.IntrinsicElements> | undefined;
22
22
  } & StyledButtonProps, React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, {}>;
23
23
  declare const Button: React.ForwardRefExoticComponent<JsxButtonProps & BaseButtonProps & React.RefAttributes<HTMLButtonElement>>;
24
24
  export default Button;
@@ -12,7 +12,7 @@ declare const ButtonLink: React.ForwardRefExoticComponent<JsxAProps & ReactRoute
12
12
  accessKey?: string | undefined;
13
13
  autoFocus?: boolean | undefined;
14
14
  className?: string | undefined;
15
- contentEditable?: "inherit" | (boolean | "true" | "false") | undefined;
15
+ contentEditable?: "inherit" | (boolean | "true" | "false") | "plaintext-only" | undefined;
16
16
  contextMenu?: string | undefined;
17
17
  dir?: string | undefined;
18
18
  draggable?: (boolean | "true" | "false") | undefined;
@@ -20,7 +20,6 @@ declare const ButtonLink: React.ForwardRefExoticComponent<JsxAProps & ReactRoute
20
20
  id?: string | undefined;
21
21
  lang?: string | undefined;
22
22
  nonce?: string | undefined;
23
- placeholder?: string | undefined;
24
23
  slot?: string | undefined;
25
24
  spellCheck?: (boolean | "true" | "false") | undefined;
26
25
  style?: React.CSSProperties | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ButtonLink/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAgB,MAAM,WAAW,CAAC;AAGtD,OAAO,EAAmB,SAAS,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE3E,KAAK,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;AAClE,MAAM,MAAM,eAAe,GAAG,SAAS,GACrC,oBAAoB,GACpB,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,GACrB,WAAW,CAAC;AAoBd,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iFAgEf,CAAC;AAIF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ButtonLink/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAgB,MAAM,WAAW,CAAC;AAGtD,OAAO,EAAmB,SAAS,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE3E,KAAK,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;AAClE,MAAM,MAAM,eAAe,GAAG,SAAS,GACrC,oBAAoB,GACpB,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,GACrB,WAAW,CAAC;AAoBd,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iFAgEf,CAAC;AAIF,eAAe,UAAU,CAAC"}
@@ -17,7 +17,7 @@ export interface InputProps extends JsxInputProps, WithSize {
17
17
  type InputContainerProps = Pick<InputProps, 'disabled' | 'size'>;
18
18
  export declare const InputContainer: import("@emotion/styled").StyledComponent<{
19
19
  theme?: import("@emotion/react").Theme | undefined;
20
- as?: React.ElementType<any> | undefined;
20
+ as?: React.ElementType<any, keyof React.JSX.IntrinsicElements> | undefined;
21
21
  } & InputContainerProps, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
22
22
  interface StyledInputProps {
23
23
  hasLeft?: boolean;
@@ -25,7 +25,7 @@ interface StyledInputProps {
25
25
  }
26
26
  export declare const StyledInput: import("@emotion/styled").StyledComponent<{
27
27
  theme?: import("@emotion/react").Theme | undefined;
28
- as?: React.ElementType<any> | undefined;
28
+ as?: React.ElementType<any, keyof React.JSX.IntrinsicElements> | undefined;
29
29
  } & StyledInputProps, React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, {}>;
30
30
  declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
31
31
  export default Input;
@@ -14,7 +14,7 @@ export declare const underlineHoverStyles: (p: any) => false | import("@emotion/
14
14
  export declare const underlineAlwaysStyles: (p: any) => false | import("@emotion/utils").SerializedStyles;
15
15
  export declare const DisabledWrapper: import("@emotion/styled").StyledComponent<{
16
16
  theme?: import("@emotion/react").Theme | undefined;
17
- as?: React.ElementType<any> | undefined;
17
+ as?: React.ElementType<any, keyof React.JSX.IntrinsicElements> | undefined;
18
18
  }, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
19
19
  declare const Link: React.ForwardRefExoticComponent<LinkProps & React.RefAttributes<HTMLAnchorElement>>;
20
20
  export default Link;
@@ -18,7 +18,7 @@ export interface ModalProps extends JsxDivProps, WithSize {
18
18
  type MaskProps = Pick<ModalProps, 'visible'>;
19
19
  export declare const ModalMask: import("@emotion/styled").StyledComponent<{
20
20
  theme?: import("@emotion/react").Theme | undefined;
21
- as?: React.ElementType<any> | undefined;
21
+ as?: React.ElementType<any, keyof React.JSX.IntrinsicElements> | undefined;
22
22
  } & MaskProps, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
23
23
  export declare const useCloseModal: () => () => void;
24
24
  declare const Modal: React.ForwardRefExoticComponent<ModalProps & React.RefAttributes<HTMLDivElement>>;
@@ -18,7 +18,7 @@ interface ContainerProps {
18
18
  }
19
19
  export declare const PageHeaderContainer: import("@emotion/styled").StyledComponent<{
20
20
  theme?: import("@emotion/react").Theme | undefined;
21
- as?: React.ElementType<any> | undefined;
21
+ as?: React.ElementType<any, keyof React.JSX.IntrinsicElements> | undefined;
22
22
  } & ContainerProps, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
23
23
  declare const PageHeader: React.ForwardRefExoticComponent<PageHeaderProps & React.RefAttributes<HTMLDivElement>>;
24
24
  export default PageHeader;
@@ -51,7 +51,7 @@ interface SelectContainerProps {
51
51
  }
52
52
  export declare const SelectContainer: import("@emotion/styled").StyledComponent<{
53
53
  theme?: import("@emotion/react").Theme | undefined;
54
- as?: React.ElementType<any> | undefined;
54
+ as?: React.ElementType<any, keyof React.JSX.IntrinsicElements> | undefined;
55
55
  } & {
56
56
  size?: string | undefined;
57
57
  disabled?: boolean | undefined;
@@ -60,7 +60,7 @@ export declare const SelectContainer: import("@emotion/styled").StyledComponent<
60
60
  } & SelectContainerProps, {}, {}>;
61
61
  export declare const ToggleContainer: import("@emotion/styled").StyledComponent<{
62
62
  theme?: import("@emotion/react").Theme | undefined;
63
- as?: React.ElementType<any> | undefined;
63
+ as?: React.ElementType<any, keyof React.JSX.IntrinsicElements> | undefined;
64
64
  }, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
65
65
  interface ToggleContentProps {
66
66
  hasLeft?: boolean;
@@ -69,23 +69,23 @@ interface ToggleContentProps {
69
69
  }
70
70
  export declare const ToggleContent: import("@emotion/styled").StyledComponent<{
71
71
  theme?: import("@emotion/react").Theme | undefined;
72
- as?: React.ElementType<any> | undefined;
72
+ as?: React.ElementType<any, keyof React.JSX.IntrinsicElements> | undefined;
73
73
  } & ToggleContentProps, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
74
74
  export declare const Placeholder: import("@emotion/styled").StyledComponent<{
75
75
  theme?: import("@emotion/react").Theme | undefined;
76
- as?: React.ElementType<any> | undefined;
76
+ as?: React.ElementType<any, keyof React.JSX.IntrinsicElements> | undefined;
77
77
  }, React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
78
78
  type TitleProps = Pick<SelectProps, 'disabled' | 'unbordered'>;
79
79
  export declare const Title: import("@emotion/styled").StyledComponent<{
80
80
  theme?: import("@emotion/react").Theme | undefined;
81
- as?: React.ElementType<any> | undefined;
81
+ as?: React.ElementType<any, keyof React.JSX.IntrinsicElements> | undefined;
82
82
  } & TitleProps, React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
83
83
  interface ToggleIconContainerProps {
84
84
  unbordered?: boolean;
85
85
  }
86
86
  export declare const ToggleIconContainer: import("@emotion/styled").StyledComponent<{
87
87
  theme?: import("@emotion/react").Theme | undefined;
88
- as?: React.ElementType<any> | undefined;
88
+ as?: React.ElementType<any, keyof React.JSX.IntrinsicElements> | undefined;
89
89
  } & ToggleIconContainerProps, React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
90
90
  export declare const ClearIcon: import("@emotion/styled").StyledComponent<import("@os-design/icons").IconProps & React.RefAttributes<SVGSVGElement> & {
91
91
  theme?: import("@emotion/react").Theme | undefined;
@@ -95,13 +95,13 @@ interface AddonProps {
95
95
  }
96
96
  export declare const ToggleLeftAddon: import("@emotion/styled").StyledComponent<{
97
97
  theme?: import("@emotion/react").Theme | undefined;
98
- as?: React.ElementType<any> | undefined;
98
+ as?: React.ElementType<any, keyof React.JSX.IntrinsicElements> | undefined;
99
99
  } & AddonProps & React.ClassAttributes<HTMLSpanElement> & React.HTMLAttributes<HTMLSpanElement> & {
100
100
  theme?: import("@emotion/react").Theme | undefined;
101
101
  }, {}, {}>;
102
102
  export declare const ToggleRightAddon: import("@emotion/styled").StyledComponent<{
103
103
  theme?: import("@emotion/react").Theme | undefined;
104
- as?: React.ElementType<any> | undefined;
104
+ as?: React.ElementType<any, keyof React.JSX.IntrinsicElements> | undefined;
105
105
  } & AddonProps & React.ClassAttributes<HTMLSpanElement> & React.HTMLAttributes<HTMLSpanElement> & {
106
106
  theme?: import("@emotion/react").Theme | undefined;
107
107
  }, {}, {}>;
@@ -8,15 +8,15 @@ export interface BaseTagProps extends WithSize {
8
8
  export type TagProps = JsxDivProps & BaseTagProps;
9
9
  export declare const TagContainer: import("@emotion/styled").StyledComponent<{
10
10
  theme?: import("@emotion/react").Theme | undefined;
11
- as?: React.ElementType<any> | undefined;
11
+ as?: React.ElementType<any, keyof React.JSX.IntrinsicElements> | undefined;
12
12
  } & WithSize, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
13
13
  export declare const LeftAddon: import("@emotion/styled").StyledComponent<{
14
14
  theme?: import("@emotion/react").Theme | undefined;
15
- as?: React.ElementType<any> | undefined;
15
+ as?: React.ElementType<any, keyof React.JSX.IntrinsicElements> | undefined;
16
16
  }, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
17
17
  export declare const RightAddon: import("@emotion/styled").StyledComponent<{
18
18
  theme?: import("@emotion/react").Theme | undefined;
19
- as?: React.ElementType<any> | undefined;
19
+ as?: React.ElementType<any, keyof React.JSX.IntrinsicElements> | undefined;
20
20
  }, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
21
21
  declare const Tag: React.ForwardRefExoticComponent<JsxDivProps & BaseTagProps & React.RefAttributes<HTMLDivElement>>;
22
22
  export default Tag;
@@ -10,7 +10,7 @@ declare const ThemeSwitcher: React.ForwardRefExoticComponent<{
10
10
  accessKey?: string | undefined;
11
11
  autoFocus?: boolean | undefined;
12
12
  className?: string | undefined;
13
- contentEditable?: "inherit" | (boolean | "true" | "false") | undefined;
13
+ contentEditable?: "inherit" | (boolean | "true" | "false") | "plaintext-only" | undefined;
14
14
  contextMenu?: string | undefined;
15
15
  dir?: string | undefined;
16
16
  draggable?: (boolean | "true" | "false") | undefined;
@@ -18,7 +18,6 @@ declare const ThemeSwitcher: React.ForwardRefExoticComponent<{
18
18
  id?: string | undefined;
19
19
  lang?: string | undefined;
20
20
  nonce?: string | undefined;
21
- placeholder?: string | undefined;
22
21
  slot?: string | undefined;
23
22
  spellCheck?: (boolean | "true" | "false") | undefined;
24
23
  style?: React.CSSProperties | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ThemeSwitcher/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAC1C,OAAe,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEhD,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC;AAK7C,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iFAsBlB,CAAC;AAIF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ThemeSwitcher/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAC1C,OAAe,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEhD,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC;AAK7C,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iFAsBlB,CAAC;AAIF,eAAe,aAAa,CAAC"}