@activecollab/components 1.0.241 → 1.0.243

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/dist/cjs/components/Autocomplete/Autocomplete.js +6 -6
  2. package/dist/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  3. package/dist/cjs/components/Avatar/Avatar.js +32 -6
  4. package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
  5. package/dist/cjs/components/Avatar/Styles.js +11 -5
  6. package/dist/cjs/components/Avatar/Styles.js.map +1 -1
  7. package/dist/cjs/components/Badge/Badge.js +50 -0
  8. package/dist/cjs/components/Badge/Badge.js.map +1 -0
  9. package/dist/cjs/components/Badge/Styles.js +34 -0
  10. package/dist/cjs/components/Badge/Styles.js.map +1 -0
  11. package/dist/cjs/components/Badge/index.js +17 -0
  12. package/dist/cjs/components/Badge/index.js.map +1 -0
  13. package/dist/cjs/components/Button/Button.js +1 -0
  14. package/dist/cjs/components/Button/Button.js.map +1 -1
  15. package/dist/cjs/components/ComboBox/ComboBox.js.map +1 -1
  16. package/dist/cjs/components/IconButton/IconButton.js +1 -0
  17. package/dist/cjs/components/IconButton/IconButton.js.map +1 -1
  18. package/dist/cjs/components/MultiAvatar/MultiAvatar.js +35 -6
  19. package/dist/cjs/components/MultiAvatar/MultiAvatar.js.map +1 -1
  20. package/dist/cjs/components/index.js +11 -0
  21. package/dist/cjs/components/index.js.map +1 -1
  22. package/dist/esm/components/Autocomplete/Autocomplete.js +6 -6
  23. package/dist/esm/components/Autocomplete/Autocomplete.js.map +1 -1
  24. package/dist/esm/components/Avatar/Avatar.d.ts +28 -2
  25. package/dist/esm/components/Avatar/Avatar.d.ts.map +1 -1
  26. package/dist/esm/components/Avatar/Avatar.js +33 -7
  27. package/dist/esm/components/Avatar/Avatar.js.map +1 -1
  28. package/dist/esm/components/Avatar/Styles.d.ts +3 -1
  29. package/dist/esm/components/Avatar/Styles.d.ts.map +1 -1
  30. package/dist/esm/components/Avatar/Styles.js +9 -4
  31. package/dist/esm/components/Avatar/Styles.js.map +1 -1
  32. package/dist/esm/components/Badge/Badge.d.ts +32 -0
  33. package/dist/esm/components/Badge/Badge.d.ts.map +1 -0
  34. package/dist/esm/components/Badge/Badge.js +42 -0
  35. package/dist/esm/components/Badge/Badge.js.map +1 -0
  36. package/dist/esm/components/Badge/Styles.d.ts +3 -0
  37. package/dist/esm/components/Badge/Styles.d.ts.map +1 -0
  38. package/dist/esm/components/Badge/Styles.js +24 -0
  39. package/dist/esm/components/Badge/Styles.js.map +1 -0
  40. package/dist/esm/components/Badge/index.d.ts +2 -0
  41. package/dist/esm/components/Badge/index.d.ts.map +1 -0
  42. package/dist/esm/components/Badge/index.js +2 -0
  43. package/dist/esm/components/Badge/index.js.map +1 -0
  44. package/dist/esm/components/Button/Button.d.ts +1 -0
  45. package/dist/esm/components/Button/Button.d.ts.map +1 -1
  46. package/dist/esm/components/Button/Button.js +1 -0
  47. package/dist/esm/components/Button/Button.js.map +1 -1
  48. package/dist/esm/components/ComboBox/ComboBox.js.map +1 -1
  49. package/dist/esm/components/IconButton/IconButton.d.ts +1 -0
  50. package/dist/esm/components/IconButton/IconButton.d.ts.map +1 -1
  51. package/dist/esm/components/IconButton/IconButton.js +1 -0
  52. package/dist/esm/components/IconButton/IconButton.js.map +1 -1
  53. package/dist/esm/components/MultiAvatar/MultiAvatar.d.ts +33 -3
  54. package/dist/esm/components/MultiAvatar/MultiAvatar.d.ts.map +1 -1
  55. package/dist/esm/components/MultiAvatar/MultiAvatar.js +35 -6
  56. package/dist/esm/components/MultiAvatar/MultiAvatar.js.map +1 -1
  57. package/dist/esm/components/index.d.ts +1 -0
  58. package/dist/esm/components/index.d.ts.map +1 -1
  59. package/dist/esm/components/index.js +1 -0
  60. package/dist/esm/components/index.js.map +1 -1
  61. package/dist/index.js +147 -22
  62. package/dist/index.js.map +1 -1
  63. package/dist/index.min.js +1 -1
  64. package/dist/index.min.js.map +1 -1
  65. package/package.json +1 -1
@@ -220,14 +220,14 @@ var Autocomplete = function Autocomplete(_ref) {
220
220
  result = [].concat(_toConsumableArray(selectedOptions), [id]);
221
221
  }
222
222
  } else {
223
- if (clearInputOnSelect && inputEl) {
224
- inputEl.value = "";
225
- inputEl.dispatchEvent(new Event("change", {
226
- bubbles: true
227
- }));
228
- }
229
223
  result = id;
230
224
  }
225
+ if (clearInputOnSelect && inputEl) {
226
+ inputEl.value = "";
227
+ inputEl.dispatchEvent(new Event("change", {
228
+ bubbles: true
229
+ }));
230
+ }
231
231
  setFilter("");
232
232
  } else {
233
233
  if (typeof handleDefaultOptionChange === "function") {
@@ -1 +1 @@
1
- {"version":3,"file":"Autocomplete.js","names":["isOptionGroup","item","options","undefined","Autocomplete","type","inputEl","selected","emptyValue","noResultText","renderOption","option","name","defaultValue","sortDirection","handleChange","optionClassName","handleEmptyAction","disabledInternalSort","AutocompleteClassName","handleDefaultOptionChange","preselectDefaultValue","keepSameOptionsOrder","autoHeightMax","clearInputOnSelect","itemRef","useRef","listRef","selectedOptions","useMemo","Array","isArray","handleSort","useCallback","opts","sort","a","b","includes","id","sortList","localeCompare","sortedList","useState","by","hover","setHover","filter","setFilter","handleEmpty","e","button","focus","onAddNewMouseEnter","showAddNew","trim","every","v","toLowerCase","renderAddNew","filterOptions","trimmedFilter","isGrouped","hovered","reduce","acc","groupedOption","filteredOptions","length","list","showDefaultOption","flatOptions","handleInputChange","target","key","value","handleHoverCallback","toggleSelected","result","_id","dispatchEvent","Event","bubbles","handleMouseEnter","handleClick","preventDefault","handleRenderOption","index","highlightText","checked","onChange","handleOnMouseLeave","handleScroll","itemOffset","getClientHeight","getScrollTop","scrollTop","useEffect","current","offsetTop","handleOnKeyDown","handleKeyboardMovement","onkeydown","onkeyup","isDefaultOptionSelected","showNoResult","renderNoResult","onScroll","map","displayName"],"sources":["../../../../src/components/Autocomplete/Autocomplete.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n useMemo,\n useEffect,\n useRef,\n ReactNode,\n ReactElement,\n} from \"react\";\nimport { Scrollbars } from \"react-custom-scrollbars\";\nimport highlightText from \"../../hooks/useHighlightText\";\nimport { handleKeyboardMovement } from \"./HandleKeyboard\";\nimport { IOptionItemProps, Option } from \"../Select/Option\";\nimport { IOptionGroupProps, OptionGroup } from \"../Select/OptionGroup\";\nimport {\n StyledAutocompleteBody,\n StyledAutocompleteNewItem,\n StyledAutocompleteNoResult,\n StyledAutocompleteScrollShadow,\n} from \"./Styles\";\n\nexport function isOptionGroup(\n item: IOptionGroupProps | IOptionItemProps\n): item is IOptionGroupProps {\n return (item as IOptionGroupProps).options !== undefined;\n}\n\nexport interface IAutocompleteProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** List of options or group options */\n options?: (IOptionGroupProps | IOptionItemProps)[];\n /** Selected values */\n selected?: (string | number)[] | string | number;\n /** Input Element. */\n inputEl?: HTMLInputElement | null;\n /** Text for empty value */\n emptyValue?: string;\n /** Text for No result */\n noResultText?: string;\n /** Render option */\n renderOption?: (\n option: Record<string, ReactNode>,\n data: Record<string, unknown>\n ) => string | ReactElement;\n /** Default value that renders on top of list */\n defaultValue?: string;\n /** Sort direction for labels */\n sortDirection?: \"asc\" | \"desc\";\n /** handleChange callback */\n handleChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** ClassName for single option */\n optionClassName?: string;\n /** handleEmptyAction */\n handleEmptyAction?: (e: string | number) => void;\n /** Disable sorting options */\n disabledInternalSort?: boolean;\n /** ClassName for Autocomplete component */\n AutocompleteClassName?: string;\n /** handleDefaultOptionChange callback */\n handleDefaultOptionChange?: () => void;\n /** Should default value be selected */\n preselectDefaultValue?: boolean;\n /** Should order stay the same after choosing an option */\n keepSameOptionsOrder?: boolean;\n /** Set max height property for scrollbars */\n autoHeightMax?: number;\n /** Clear input on select - works in single mode */\n clearInputOnSelect?: boolean;\n}\n\ninterface IHover {\n item: number | string | undefined | null;\n by: \"mouse\" | \"keyboard\" | undefined;\n}\n\nexport const Autocomplete: FC<IAutocompleteProps> = ({\n type,\n options = [],\n inputEl,\n selected = [],\n emptyValue,\n noResultText,\n renderOption = (option) => option?.name,\n defaultValue,\n sortDirection = \"asc\",\n handleChange,\n optionClassName,\n handleEmptyAction,\n disabledInternalSort,\n AutocompleteClassName,\n handleDefaultOptionChange,\n preselectDefaultValue,\n keepSameOptionsOrder = false,\n autoHeightMax = 340,\n clearInputOnSelect,\n}) => {\n const itemRef = useRef<HTMLLIElement>(null);\n const listRef = useRef<Scrollbars>(null);\n\n const selectedOptions = useMemo(() => {\n if (Array.isArray(selected)) {\n return selected;\n }\n return [selected];\n }, [selected]);\n\n const handleSort = useCallback((opts) => {\n if (keepSameOptionsOrder) {\n return opts;\n }\n return opts.sort((a: IOptionItemProps, b: IOptionItemProps) => {\n if (selectedOptions.includes(b.id) && !selectedOptions.includes(a.id)) {\n return 1;\n }\n if (selectedOptions.includes(a.id) && !selectedOptions.includes(b.id)) {\n return -1;\n }\n return 0;\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const sortList = useCallback(\n (options) => {\n if (disabledInternalSort) {\n return handleSort([...options]);\n }\n return handleSort(\n [...options].sort((a: IOptionItemProps, b: IOptionItemProps) =>\n sortDirection === \"asc\"\n ? a.name.localeCompare(b.name)\n : b.name.localeCompare(a.name)\n )\n );\n },\n [sortDirection, disabledInternalSort, handleSort]\n );\n\n const sortedList = useMemo(() => sortList(options), [options, sortList]);\n\n const [hover, setHover] = useState<IHover>({\n item: undefined,\n by: undefined,\n });\n const [filter, setFilter] = useState(\"\");\n\n const handleEmpty = useCallback(\n (e) => {\n if (e && e.button !== 0) {\n return;\n }\n if (handleEmptyAction) {\n inputEl?.focus();\n setFilter(\"\");\n handleEmptyAction(filter);\n }\n },\n [filter, handleEmptyAction, inputEl]\n );\n\n const onAddNewMouseEnter = useCallback(\n () => setHover({ item: \"addNew\", by: \"mouse\" }),\n []\n );\n\n const showAddNew = useMemo(() => {\n return !!(\n emptyValue &&\n filter.trim() &&\n options.every((option) => {\n if (isOptionGroup(option)) {\n return option.options.every(\n (v) => v.name.toLowerCase() !== filter.trim().toLowerCase()\n );\n }\n return option.name.toLowerCase() !== filter.trim().toLowerCase();\n })\n );\n }, [emptyValue, filter, options]);\n\n const renderAddNew = useMemo(() => {\n return (\n <StyledAutocompleteNewItem\n ref={hover.item === \"addNew\" ? itemRef : null}\n key=\"emptyValue\"\n hover={hover.item === \"addNew\"}\n onMouseDown={handleEmpty}\n onMouseEnter={onAddNewMouseEnter}\n >\n {emptyValue}\n </StyledAutocompleteNewItem>\n );\n }, [emptyValue, handleEmpty, hover, onAddNewMouseEnter]);\n\n const filterOptions = useCallback(\n (options, filter) => {\n const trimmedFilter = filter.trim();\n const isGrouped = options[0] && isOptionGroup(options[0]);\n if (isGrouped) {\n let hovered = false;\n return options.reduce((acc, groupedOption) => {\n const filteredOptions = groupedOption.options.filter((v) =>\n v.name.toLowerCase().includes(trimmedFilter.toLowerCase())\n );\n if (filteredOptions.length > 0) {\n if (!hovered && filter) {\n setHover({ item: filteredOptions[0].id, by: \"keyboard\" });\n }\n hovered = true;\n return [...acc, { ...groupedOption, options: filteredOptions }];\n }\n return [...acc];\n }, []);\n } else {\n const filteredOptions = options.filter((v) =>\n v.name.toLowerCase().includes(trimmedFilter.toLowerCase())\n );\n if (filter && filteredOptions.length > 0) {\n setHover({ item: filteredOptions[0].id, by: \"keyboard\" });\n }\n if (filteredOptions.length === 0 && emptyValue) {\n setHover({ item: \"addNew\", by: \"keyboard\" });\n }\n return filteredOptions;\n }\n },\n [emptyValue]\n );\n\n const list = useMemo(\n () => filterOptions(sortedList, filter),\n [filter, filterOptions, sortedList]\n );\n\n const showDefaultOption = useMemo(\n () => !!defaultValue && !filter,\n [defaultValue, filter]\n );\n\n const flatOptions = useMemo(() => {\n const options = list.reduce(\n (\n acc: (IOptionItemProps | IOptionGroupProps | [])[],\n option: IOptionItemProps | IOptionGroupProps\n ) => {\n if (!isOptionGroup(option)) {\n return [...acc, option];\n }\n return [...acc, ...option.options];\n },\n []\n );\n return filterOptions(options, filter);\n }, [filter, filterOptions, list]);\n\n const handleInputChange = useCallback((e) => {\n if (\n e.target &&\n !(e.key === \"ArrowDown\") &&\n !(e.key === \"ArrowUp\") &&\n !(e.key === \"Enter\")\n ) {\n setFilter(e.target.value);\n }\n }, []);\n\n const handleHoverCallback = useCallback(\n (e: number | string | undefined): void => {\n setHover({ item: e, by: \"mouse\" });\n },\n []\n );\n\n const toggleSelected = useCallback(\n (id) => {\n let result;\n\n if (id !== null) {\n if (type === \"multiple\") {\n if (selectedOptions.includes(id)) {\n result = selectedOptions.filter((_id) => _id !== id);\n } else {\n result = [...selectedOptions, id];\n }\n } else {\n if (clearInputOnSelect && inputEl) {\n inputEl.value = \"\";\n inputEl.dispatchEvent(new Event(\"change\", { bubbles: true }));\n }\n result = id;\n }\n setFilter(\"\");\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n return;\n }\n }\n\n if (typeof handleChange === \"function\") {\n handleChange(result);\n }\n },\n [\n clearInputOnSelect,\n handleChange,\n handleDefaultOptionChange,\n inputEl,\n selectedOptions,\n type,\n ]\n );\n\n const handleMouseEnter = useCallback((e) => {\n if (e === undefined || e === null) {\n return setHover({ item: null, by: \"mouse\" });\n }\n setHover({ item: e, by: \"mouse\" });\n }, []);\n\n const handleClick = useCallback(\n (e) => {\n e.preventDefault();\n toggleSelected(hover.item);\n },\n [toggleSelected, hover]\n );\n\n const handleRenderOption = useCallback(\n (item: IOptionItemProps | IOptionGroupProps, index) => {\n if (isOptionGroup(item)) {\n return (\n <OptionGroup\n checked={selectedOptions}\n name={item.name}\n key={item.id}\n setHover={handleHoverCallback}\n id={item.id}\n hover={hover.item}\n options={item.options}\n renderOptions={handleRenderOption}\n type={type}\n onChange={handleChange}\n filter={filter}\n />\n );\n }\n return (\n <Option\n name={item.name}\n ref={itemRef}\n key={index}\n onMouseEnter={handleMouseEnter}\n onClick={handleClick}\n id={item.id}\n hover={item.id === hover.item}\n className={optionClassName}\n renderOption={renderOption(\n { ...item, name: highlightText(item.name, filter) },\n {\n id: `option_${item.id}`,\n checked: selectedOptions && selectedOptions.includes(item.id),\n hover: hover.item === item.id,\n onChange: () => null,\n }\n )}\n />\n );\n },\n [\n handleClick,\n handleMouseEnter,\n hover.item,\n optionClassName,\n renderOption,\n filter,\n selectedOptions,\n handleHoverCallback,\n type,\n handleChange,\n ]\n );\n\n const handleOnMouseLeave = useCallback(() => {\n setHover({ item: undefined, by: \"mouse\" });\n }, []);\n\n const handleScroll = useCallback((list: Scrollbars, itemOffset: number) => {\n if (list.getClientHeight() + list.getScrollTop() < itemOffset + 40) {\n return list.scrollTop(itemOffset - list.getClientHeight() + 30);\n }\n if (list.getScrollTop() > itemOffset) {\n return list.scrollTop(itemOffset);\n }\n }, []);\n\n useEffect(() => {\n if (hover.by === \"keyboard\" && hover.item !== undefined) {\n const item: HTMLLIElement | null = itemRef.current;\n const list = listRef.current;\n if (itemRef && item && list) {\n handleScroll(list, item.offsetTop);\n }\n }\n }, [handleScroll, hover]);\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n\n if (hover.item === undefined && filter === \"\") {\n return;\n }\n if (hover.item === \"addNew\") {\n handleEmpty(null);\n return;\n }\n if (hover.item === null && handleDefaultOptionChange) {\n handleDefaultOptionChange();\n return;\n }\n\n if (typeof hover.item !== \"undefined\" || hover.item !== null) {\n toggleSelected(hover.item);\n setFilter(\"\");\n }\n return;\n }\n setHover({\n item: handleKeyboardMovement(\n e,\n hover.item,\n flatOptions,\n showAddNew,\n showDefaultOption\n ),\n by: \"keyboard\",\n });\n },\n [\n filter,\n flatOptions,\n toggleSelected,\n handleDefaultOptionChange,\n handleEmpty,\n hover,\n showAddNew,\n showDefaultOption,\n ]\n );\n\n useEffect(() => {\n if (inputEl) {\n inputEl.onkeydown = handleOnKeyDown;\n inputEl.onkeyup = handleInputChange;\n }\n }, [handleInputChange, handleOnKeyDown, inputEl]);\n\n const isDefaultOptionSelected = useCallback(() => {\n if (preselectDefaultValue) {\n return selectedOptions.length < 1 || selectedOptions[0] === \"\";\n } else {\n return (\n selectedOptions[0] === null ||\n selectedOptions.length === flatOptions.length\n );\n }\n }, [flatOptions.length, preselectDefaultValue, selectedOptions]);\n\n const showNoResult = useMemo(\n () => noResultText && !showAddNew && list.length < 1,\n [list.length, noResultText, showAddNew]\n );\n\n const renderNoResult = useMemo(\n () => (\n <StyledAutocompleteNoResult>{noResultText}</StyledAutocompleteNoResult>\n ),\n [noResultText]\n );\n\n return (\n <StyledAutocompleteScrollShadow\n className={AutocompleteClassName}\n $isHidden={\n !defaultValue && !emptyValue && !noResultText && list.length < 1\n }\n >\n {({ onScroll }): JSX.Element => (\n <StyledAutocompleteBody key=\"body\" onMouseLeave={handleOnMouseLeave}>\n <Scrollbars\n ref={listRef}\n key=\"scrollBar\"\n autoHeight\n autoHeightMax={autoHeightMax}\n onScroll={onScroll}\n >\n {defaultValue && !filter && (\n <Option\n name={defaultValue}\n ref={itemRef}\n hover={hover.item === null}\n onMouseEnter={handleMouseEnter}\n onClick={(e) => {\n e.preventDefault();\n toggleSelected(null);\n }}\n renderOption={renderOption(\n { name: defaultValue, id: null },\n {\n checked: isDefaultOptionSelected(),\n hover: hover.item === null,\n onChange: () => null,\n }\n )}\n />\n )}\n {list.map((item: IOptionItemProps, index) =>\n handleRenderOption(item, index)\n )}\n {showNoResult && renderNoResult}\n {showAddNew && renderAddNew}\n </Scrollbars>\n </StyledAutocompleteBody>\n )}\n </StyledAutocompleteScrollShadow>\n );\n};\n\nAutocomplete.displayName = \"Autocomplete\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"Autocomplete.js","names":["isOptionGroup","item","options","undefined","Autocomplete","type","inputEl","selected","emptyValue","noResultText","renderOption","option","name","defaultValue","sortDirection","handleChange","optionClassName","handleEmptyAction","disabledInternalSort","AutocompleteClassName","handleDefaultOptionChange","preselectDefaultValue","keepSameOptionsOrder","autoHeightMax","clearInputOnSelect","itemRef","useRef","listRef","selectedOptions","useMemo","Array","isArray","handleSort","useCallback","opts","sort","a","b","includes","id","sortList","localeCompare","sortedList","useState","by","hover","setHover","filter","setFilter","handleEmpty","e","button","focus","onAddNewMouseEnter","showAddNew","trim","every","v","toLowerCase","renderAddNew","filterOptions","trimmedFilter","isGrouped","hovered","reduce","acc","groupedOption","filteredOptions","length","list","showDefaultOption","flatOptions","handleInputChange","target","key","value","handleHoverCallback","toggleSelected","result","_id","dispatchEvent","Event","bubbles","handleMouseEnter","handleClick","preventDefault","handleRenderOption","index","highlightText","checked","onChange","handleOnMouseLeave","handleScroll","itemOffset","getClientHeight","getScrollTop","scrollTop","useEffect","current","offsetTop","handleOnKeyDown","handleKeyboardMovement","onkeydown","onkeyup","isDefaultOptionSelected","showNoResult","renderNoResult","onScroll","map","displayName"],"sources":["../../../../src/components/Autocomplete/Autocomplete.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n useMemo,\n useEffect,\n useRef,\n ReactNode,\n ReactElement,\n} from \"react\";\nimport { Scrollbars } from \"react-custom-scrollbars\";\nimport highlightText from \"../../hooks/useHighlightText\";\nimport { handleKeyboardMovement } from \"./HandleKeyboard\";\nimport { IOptionItemProps, Option } from \"../Select/Option\";\nimport { IOptionGroupProps, OptionGroup } from \"../Select/OptionGroup\";\nimport {\n StyledAutocompleteBody,\n StyledAutocompleteNewItem,\n StyledAutocompleteNoResult,\n StyledAutocompleteScrollShadow,\n} from \"./Styles\";\n\nexport function isOptionGroup(\n item: IOptionGroupProps | IOptionItemProps\n): item is IOptionGroupProps {\n return (item as IOptionGroupProps).options !== undefined;\n}\n\nexport interface IAutocompleteProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** List of options or group options */\n options?: (IOptionGroupProps | IOptionItemProps)[];\n /** Selected values */\n selected?: (string | number)[] | string | number;\n /** Input Element. */\n inputEl?: HTMLInputElement | null;\n /** Text for empty value */\n emptyValue?: string;\n /** Text for No result */\n noResultText?: string;\n /** Render option */\n renderOption?: (\n option: Record<string, ReactNode>,\n data: Record<string, unknown>\n ) => string | ReactElement;\n /** Default value that renders on top of list */\n defaultValue?: string;\n /** Sort direction for labels */\n sortDirection?: \"asc\" | \"desc\";\n /** handleChange callback */\n handleChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** ClassName for single option */\n optionClassName?: string;\n /** handleEmptyAction */\n handleEmptyAction?: (e: string | number) => void;\n /** Disable sorting options */\n disabledInternalSort?: boolean;\n /** ClassName for Autocomplete component */\n AutocompleteClassName?: string;\n /** handleDefaultOptionChange callback */\n handleDefaultOptionChange?: () => void;\n /** Should default value be selected */\n preselectDefaultValue?: boolean;\n /** Should order stay the same after choosing an option */\n keepSameOptionsOrder?: boolean;\n /** Set max height property for scrollbars */\n autoHeightMax?: number;\n /** Clear input on select - works in single mode */\n clearInputOnSelect?: boolean;\n}\n\ninterface IHover {\n item: number | string | undefined | null;\n by: \"mouse\" | \"keyboard\" | undefined;\n}\n\nexport const Autocomplete: FC<IAutocompleteProps> = ({\n type,\n options = [],\n inputEl,\n selected = [],\n emptyValue,\n noResultText,\n renderOption = (option) => option?.name,\n defaultValue,\n sortDirection = \"asc\",\n handleChange,\n optionClassName,\n handleEmptyAction,\n disabledInternalSort,\n AutocompleteClassName,\n handleDefaultOptionChange,\n preselectDefaultValue,\n keepSameOptionsOrder = false,\n autoHeightMax = 340,\n clearInputOnSelect,\n}) => {\n const itemRef = useRef<HTMLLIElement>(null);\n const listRef = useRef<Scrollbars>(null);\n\n const selectedOptions = useMemo(() => {\n if (Array.isArray(selected)) {\n return selected;\n }\n return [selected];\n }, [selected]);\n\n const handleSort = useCallback((opts) => {\n if (keepSameOptionsOrder) {\n return opts;\n }\n return opts.sort((a: IOptionItemProps, b: IOptionItemProps) => {\n if (selectedOptions.includes(b.id) && !selectedOptions.includes(a.id)) {\n return 1;\n }\n if (selectedOptions.includes(a.id) && !selectedOptions.includes(b.id)) {\n return -1;\n }\n return 0;\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const sortList = useCallback(\n (options) => {\n if (disabledInternalSort) {\n return handleSort([...options]);\n }\n return handleSort(\n [...options].sort((a: IOptionItemProps, b: IOptionItemProps) =>\n sortDirection === \"asc\"\n ? a.name.localeCompare(b.name)\n : b.name.localeCompare(a.name)\n )\n );\n },\n [sortDirection, disabledInternalSort, handleSort]\n );\n\n const sortedList = useMemo(() => sortList(options), [options, sortList]);\n\n const [hover, setHover] = useState<IHover>({\n item: undefined,\n by: undefined,\n });\n const [filter, setFilter] = useState(\"\");\n\n const handleEmpty = useCallback(\n (e) => {\n if (e && e.button !== 0) {\n return;\n }\n if (handleEmptyAction) {\n inputEl?.focus();\n setFilter(\"\");\n handleEmptyAction(filter);\n }\n },\n [filter, handleEmptyAction, inputEl]\n );\n\n const onAddNewMouseEnter = useCallback(\n () => setHover({ item: \"addNew\", by: \"mouse\" }),\n []\n );\n\n const showAddNew = useMemo(() => {\n return !!(\n emptyValue &&\n filter.trim() &&\n options.every((option) => {\n if (isOptionGroup(option)) {\n return option.options.every(\n (v) => v.name.toLowerCase() !== filter.trim().toLowerCase()\n );\n }\n return option.name.toLowerCase() !== filter.trim().toLowerCase();\n })\n );\n }, [emptyValue, filter, options]);\n\n const renderAddNew = useMemo(() => {\n return (\n <StyledAutocompleteNewItem\n ref={hover.item === \"addNew\" ? itemRef : null}\n key=\"emptyValue\"\n hover={hover.item === \"addNew\"}\n onMouseDown={handleEmpty}\n onMouseEnter={onAddNewMouseEnter}\n >\n {emptyValue}\n </StyledAutocompleteNewItem>\n );\n }, [emptyValue, handleEmpty, hover, onAddNewMouseEnter]);\n\n const filterOptions = useCallback(\n (options, filter) => {\n const trimmedFilter = filter.trim();\n const isGrouped = options[0] && isOptionGroup(options[0]);\n if (isGrouped) {\n let hovered = false;\n return options.reduce((acc, groupedOption) => {\n const filteredOptions = groupedOption.options.filter((v) =>\n v.name.toLowerCase().includes(trimmedFilter.toLowerCase())\n );\n if (filteredOptions.length > 0) {\n if (!hovered && filter) {\n setHover({ item: filteredOptions[0].id, by: \"keyboard\" });\n }\n hovered = true;\n return [...acc, { ...groupedOption, options: filteredOptions }];\n }\n return [...acc];\n }, []);\n } else {\n const filteredOptions = options.filter((v) =>\n v.name.toLowerCase().includes(trimmedFilter.toLowerCase())\n );\n if (filter && filteredOptions.length > 0) {\n setHover({ item: filteredOptions[0].id, by: \"keyboard\" });\n }\n if (filteredOptions.length === 0 && emptyValue) {\n setHover({ item: \"addNew\", by: \"keyboard\" });\n }\n return filteredOptions;\n }\n },\n [emptyValue]\n );\n\n const list = useMemo(\n () => filterOptions(sortedList, filter),\n [filter, filterOptions, sortedList]\n );\n\n const showDefaultOption = useMemo(\n () => !!defaultValue && !filter,\n [defaultValue, filter]\n );\n\n const flatOptions = useMemo(() => {\n const options = list.reduce(\n (\n acc: (IOptionItemProps | IOptionGroupProps | [])[],\n option: IOptionItemProps | IOptionGroupProps\n ) => {\n if (!isOptionGroup(option)) {\n return [...acc, option];\n }\n return [...acc, ...option.options];\n },\n []\n );\n return filterOptions(options, filter);\n }, [filter, filterOptions, list]);\n\n const handleInputChange = useCallback((e) => {\n if (\n e.target &&\n !(e.key === \"ArrowDown\") &&\n !(e.key === \"ArrowUp\") &&\n !(e.key === \"Enter\")\n ) {\n setFilter(e.target.value);\n }\n }, []);\n\n const handleHoverCallback = useCallback(\n (e: number | string | undefined): void => {\n setHover({ item: e, by: \"mouse\" });\n },\n []\n );\n\n const toggleSelected = useCallback(\n (id) => {\n let result;\n\n if (id !== null) {\n if (type === \"multiple\") {\n if (selectedOptions.includes(id)) {\n result = selectedOptions.filter((_id) => _id !== id);\n } else {\n result = [...selectedOptions, id];\n }\n } else {\n result = id;\n }\n if (clearInputOnSelect && inputEl) {\n inputEl.value = \"\";\n inputEl.dispatchEvent(new Event(\"change\", { bubbles: true }));\n }\n setFilter(\"\");\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n return;\n }\n }\n\n if (typeof handleChange === \"function\") {\n handleChange(result);\n }\n },\n [\n clearInputOnSelect,\n handleChange,\n handleDefaultOptionChange,\n inputEl,\n selectedOptions,\n type,\n ]\n );\n\n const handleMouseEnter = useCallback((e) => {\n if (e === undefined || e === null) {\n return setHover({ item: null, by: \"mouse\" });\n }\n setHover({ item: e, by: \"mouse\" });\n }, []);\n\n const handleClick = useCallback(\n (e) => {\n e.preventDefault();\n toggleSelected(hover.item);\n },\n [toggleSelected, hover]\n );\n\n const handleRenderOption = useCallback(\n (item: IOptionItemProps | IOptionGroupProps, index) => {\n if (isOptionGroup(item)) {\n return (\n <OptionGroup\n checked={selectedOptions}\n name={item.name}\n key={item.id}\n setHover={handleHoverCallback}\n id={item.id}\n hover={hover.item}\n options={item.options}\n renderOptions={handleRenderOption}\n type={type}\n onChange={handleChange}\n filter={filter}\n />\n );\n }\n return (\n <Option\n name={item.name}\n ref={itemRef}\n key={index}\n onMouseEnter={handleMouseEnter}\n onClick={handleClick}\n id={item.id}\n hover={item.id === hover.item}\n className={optionClassName}\n renderOption={renderOption(\n { ...item, name: highlightText(item.name, filter) },\n {\n id: `option_${item.id}`,\n checked: selectedOptions && selectedOptions.includes(item.id),\n hover: hover.item === item.id,\n onChange: () => null,\n }\n )}\n />\n );\n },\n [\n handleClick,\n handleMouseEnter,\n hover.item,\n optionClassName,\n renderOption,\n filter,\n selectedOptions,\n handleHoverCallback,\n type,\n handleChange,\n ]\n );\n\n const handleOnMouseLeave = useCallback(() => {\n setHover({ item: undefined, by: \"mouse\" });\n }, []);\n\n const handleScroll = useCallback((list: Scrollbars, itemOffset: number) => {\n if (list.getClientHeight() + list.getScrollTop() < itemOffset + 40) {\n return list.scrollTop(itemOffset - list.getClientHeight() + 30);\n }\n if (list.getScrollTop() > itemOffset) {\n return list.scrollTop(itemOffset);\n }\n }, []);\n\n useEffect(() => {\n if (hover.by === \"keyboard\" && hover.item !== undefined) {\n const item: HTMLLIElement | null = itemRef.current;\n const list = listRef.current;\n if (itemRef && item && list) {\n handleScroll(list, item.offsetTop);\n }\n }\n }, [handleScroll, hover]);\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n\n if (hover.item === undefined && filter === \"\") {\n return;\n }\n if (hover.item === \"addNew\") {\n handleEmpty(null);\n return;\n }\n if (hover.item === null && handleDefaultOptionChange) {\n handleDefaultOptionChange();\n return;\n }\n\n if (typeof hover.item !== \"undefined\" || hover.item !== null) {\n toggleSelected(hover.item);\n setFilter(\"\");\n }\n return;\n }\n setHover({\n item: handleKeyboardMovement(\n e,\n hover.item,\n flatOptions,\n showAddNew,\n showDefaultOption\n ),\n by: \"keyboard\",\n });\n },\n [\n filter,\n flatOptions,\n toggleSelected,\n handleDefaultOptionChange,\n handleEmpty,\n hover,\n showAddNew,\n showDefaultOption,\n ]\n );\n\n useEffect(() => {\n if (inputEl) {\n inputEl.onkeydown = handleOnKeyDown;\n inputEl.onkeyup = handleInputChange;\n }\n }, [handleInputChange, handleOnKeyDown, inputEl]);\n\n const isDefaultOptionSelected = useCallback(() => {\n if (preselectDefaultValue) {\n return selectedOptions.length < 1 || selectedOptions[0] === \"\";\n } else {\n return (\n selectedOptions[0] === null ||\n selectedOptions.length === flatOptions.length\n );\n }\n }, [flatOptions.length, preselectDefaultValue, selectedOptions]);\n\n const showNoResult = useMemo(\n () => noResultText && !showAddNew && list.length < 1,\n [list.length, noResultText, showAddNew]\n );\n\n const renderNoResult = useMemo(\n () => (\n <StyledAutocompleteNoResult>{noResultText}</StyledAutocompleteNoResult>\n ),\n [noResultText]\n );\n\n return (\n <StyledAutocompleteScrollShadow\n className={AutocompleteClassName}\n $isHidden={\n !defaultValue && !emptyValue && !noResultText && list.length < 1\n }\n >\n {({ onScroll }): JSX.Element => (\n <StyledAutocompleteBody key=\"body\" onMouseLeave={handleOnMouseLeave}>\n <Scrollbars\n ref={listRef}\n key=\"scrollBar\"\n autoHeight\n autoHeightMax={autoHeightMax}\n onScroll={onScroll}\n >\n {defaultValue && !filter && (\n <Option\n name={defaultValue}\n ref={itemRef}\n hover={hover.item === null}\n onMouseEnter={handleMouseEnter}\n onClick={(e) => {\n e.preventDefault();\n toggleSelected(null);\n }}\n renderOption={renderOption(\n { name: defaultValue, id: null },\n {\n checked: isDefaultOptionSelected(),\n hover: hover.item === null,\n onChange: () => null,\n }\n )}\n />\n )}\n {list.map((item: IOptionItemProps, index) =>\n handleRenderOption(item, index)\n )}\n {showNoResult && renderNoResult}\n {showAddNew && renderAddNew}\n </Scrollbars>\n </StyledAutocompleteBody>\n )}\n </StyledAutocompleteScrollShadow>\n );\n};\n\nAutocomplete.displayName = \"Autocomplete\";\n"],"mappings":"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"}
@@ -7,12 +7,36 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.Avatar = void 0;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  var _Styles = require("./Styles");
10
- var _excluded = ["url", "alt", "size", "className"];
10
+ var _excluded = ["url", "alt", "size", "className", "children"];
11
11
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
12
12
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
13
13
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
14
14
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
15
15
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
16
+ /**
17
+ * @component Avatar
18
+ * @description
19
+ * The Avatar component is used to represent user, and displays the profile picture, initials or fallback icon.
20
+ *
21
+ * @prop {url} - The image url of the Avatar.
22
+ * @prop {size} - controls the size of an Avatar (width and height) in pixels.
23
+ * @prop {alt} - alt attribute of the img.
24
+ *
25
+ * @example
26
+ * <Avatar url="https://faces-img.xcdn.link/image-lorem-face-954.jpg" alt="Profile picture of John" />
27
+ *
28
+ * @example
29
+ * <Avatar
30
+ * url="https://faces-img.xcdn.link/image-lorem-face-954.jpg"
31
+ * alt="Profile picture of John">
32
+ * <Badge size={8} backgroundColor="green" position="bottom-left" />
33
+ * </Avatar>
34
+ *
35
+ * @see
36
+ * https://system.activecollab.com/?path=/story/components-button-indicators-avatar--avatar
37
+ * @see
38
+ * https://design.activecollab.com/docs/components/avatar
39
+ */
16
40
  var Avatar = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
17
41
  var url = _ref.url,
18
42
  _ref$alt = _ref.alt,
@@ -20,15 +44,17 @@ var Avatar = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
20
44
  _ref$size = _ref.size,
21
45
  size = _ref$size === void 0 ? 24 : _ref$size,
22
46
  className = _ref.className,
47
+ children = _ref.children,
23
48
  rest = _objectWithoutProperties(_ref, _excluded);
24
- return /*#__PURE__*/_react.default.createElement(_Styles.StyledAvatar, _extends({}, rest, {
49
+ return /*#__PURE__*/_react.default.createElement(_Styles.StyledWrapper, {
50
+ className: className
51
+ }, children, /*#__PURE__*/_react.default.createElement(_Styles.StyledAvatar, _extends({
52
+ size: size,
25
53
  ref: ref,
26
54
  src: url,
27
55
  alt: alt,
28
- width: size,
29
- height: size,
30
- className: className
31
- }));
56
+ role: "img"
57
+ }, rest)));
32
58
  });
33
59
  exports.Avatar = Avatar;
34
60
  Avatar.displayName = "Avatar";
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.js","names":["Avatar","forwardRef","ref","url","alt","size","className","rest","displayName"],"sources":["../../../../src/components/Avatar/Avatar.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\nimport { StyledAvatar } from \"./Styles\";\n\nexport interface IAvatar extends React.ComponentPropsWithoutRef<\"img\"> {\n /** Path url. */\n url: string;\n /** Alt text. */\n alt?: string;\n /** Image size. */\n size?: number;\n /** Custom class. */\n className?: string;\n}\n\nexport const Avatar = forwardRef<HTMLImageElement, IAvatar>(\n ({ url, alt = \"Avatar Image\", size = 24, className, ...rest }, ref) => {\n return (\n <StyledAvatar\n {...rest}\n ref={ref}\n src={url}\n alt={alt}\n width={size}\n height={size}\n className={className}\n />\n );\n }\n);\n\nAvatar.displayName = \"Avatar\";\n"],"mappings":";;;;;;;AAAA;AACA;AAAwC;AAAA;AAAA;AAAA;AAAA;AAAA;AAajC,IAAMA,MAAM,gBAAG,IAAAC,iBAAU,EAC9B,gBAA+DC,GAAG,EAAK;EAAA,IAApEC,GAAG,QAAHA,GAAG;IAAA,gBAAEC,GAAG;IAAHA,GAAG,yBAAG,cAAc;IAAA,iBAAEC,IAAI;IAAJA,IAAI,0BAAG,EAAE;IAAEC,SAAS,QAATA,SAAS;IAAKC,IAAI;EACzD,oBACE,6BAAC,oBAAY,eACPA,IAAI;IACR,GAAG,EAAEL,GAAI;IACT,GAAG,EAAEC,GAAI;IACT,GAAG,EAAEC,GAAI;IACT,KAAK,EAAEC,IAAK;IACZ,MAAM,EAAEA,IAAK;IACb,SAAS,EAAEC;EAAU,GACrB;AAEN,CAAC,CACF;AAAC;AAEFN,MAAM,CAACQ,WAAW,GAAG,QAAQ"}
1
+ {"version":3,"file":"Avatar.js","names":["Avatar","forwardRef","ref","url","alt","size","className","children","rest","displayName"],"sources":["../../../../src/components/Avatar/Avatar.tsx"],"sourcesContent":["import React, { forwardRef, PropsWithChildren } from \"react\";\nimport { StyledAvatar, StyledWrapper } from \"./Styles\";\n\nexport interface AvatarProps extends React.ComponentPropsWithoutRef<\"img\"> {\n /** Path url. */\n url: string;\n /** Alt text. */\n alt?: string;\n /** Image size. */\n size?: number;\n /** Custom class. */\n className?: string;\n}\n\n/**\n * @component Avatar\n * @description\n * The Avatar component is used to represent user, and displays the profile picture, initials or fallback icon.\n *\n * @prop {url} - The image url of the Avatar.\n * @prop {size} - controls the size of an Avatar (width and height) in pixels.\n * @prop {alt} - alt attribute of the img.\n *\n * @example\n * <Avatar url=\"https://faces-img.xcdn.link/image-lorem-face-954.jpg\" alt=\"Profile picture of John\" />\n *\n * @example\n * <Avatar\n * url=\"https://faces-img.xcdn.link/image-lorem-face-954.jpg\"\n * alt=\"Profile picture of John\">\n * <Badge size={8} backgroundColor=\"green\" position=\"bottom-left\" />\n * </Avatar>\n *\n * @see\n * https://system.activecollab.com/?path=/story/components-button-indicators-avatar--avatar\n * @see\n * https://design.activecollab.com/docs/components/avatar\n */\nexport const Avatar = forwardRef<\n HTMLImageElement,\n PropsWithChildren<AvatarProps>\n>(\n (\n { url, alt = \"Avatar Image\", size = 24, className, children, ...rest },\n ref\n ) => (\n <StyledWrapper className={className}>\n {children}\n <StyledAvatar\n size={size}\n ref={ref}\n src={url}\n alt={alt}\n role=\"img\"\n {...rest}\n />\n </StyledWrapper>\n )\n);\n\nAvatar.displayName = \"Avatar\";\n"],"mappings":";;;;;;;AAAA;AACA;AAAuD;AAAA;AAAA;AAAA;AAAA;AAAA;AAavD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,MAAM,gBAAG,IAAAC,iBAAU,EAI9B,gBAEEC,GAAG;EAAA,IADDC,GAAG,QAAHA,GAAG;IAAA,gBAAEC,GAAG;IAAHA,GAAG,yBAAG,cAAc;IAAA,iBAAEC,IAAI;IAAJA,IAAI,0BAAG,EAAE;IAAEC,SAAS,QAATA,SAAS;IAAEC,QAAQ,QAARA,QAAQ;IAAKC,IAAI;EAAA,oBAGpE,6BAAC,qBAAa;IAAC,SAAS,EAAEF;EAAU,GACjCC,QAAQ,eACT,6BAAC,oBAAY;IACX,IAAI,EAAEF,IAAK;IACX,GAAG,EAAEH,GAAI;IACT,GAAG,EAAEC,GAAI;IACT,GAAG,EAAEC,GAAI;IACT,IAAI,EAAC;EAAK,GACNI,IAAI,EACR,CACY;AAAA,CACjB,CACF;AAAC;AAEFR,MAAM,CAACS,WAAW,GAAG,QAAQ"}
@@ -3,15 +3,21 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.StyledAvatar = void 0;
6
+ exports.StyledWrapper = exports.StyledAvatar = void 0;
7
7
  var _styledComponents = _interopRequireDefault(require("styled-components"));
8
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ var StyledWrapper = _styledComponents.default.span.withConfig({
10
+ displayName: "Styles__StyledWrapper",
11
+ componentId: "sc-5x2tyd-0"
12
+ })(["display:inline-flex;position:relative;"]);
13
+ exports.StyledWrapper = StyledWrapper;
9
14
  var StyledAvatar = _styledComponents.default.img.withConfig({
10
15
  displayName: "Styles__StyledAvatar",
11
- componentId: "sc-5x2tyd-0"
12
- })(["", ""], {
13
- "objectFit": "cover",
14
- "borderRadius": "9999px"
16
+ componentId: "sc-5x2tyd-1"
17
+ })(["border-radius:100%;object-fit:cover;block-size:", ";inline-size:", ";"], function (props) {
18
+ return props.size + "px";
19
+ }, function (props) {
20
+ return props.size + "px";
15
21
  });
16
22
  exports.StyledAvatar = StyledAvatar;
17
23
  //# sourceMappingURL=Styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Styles.js","names":["StyledAvatar","styled","img"],"sources":["../../../../src/components/Avatar/Styles.ts"],"sourcesContent":["import styled from \"styled-components\";\nimport tw from \"twin.macro\";\n\nexport const StyledAvatar = styled.img`\n ${tw`tw-object-cover tw-rounded-full`}\n`;\n"],"mappings":";;;;;;AAAA;AAAuC;AAGhC,IAAMA,YAAY,GAAGC,yBAAM,CAACC,GAAG;EAAA;EAAA;AAAA,aAChC;EAAA;EAAA;AAAgC,CAAC,CACtC;AAAC"}
1
+ {"version":3,"file":"Styles.js","names":["StyledWrapper","styled","span","StyledAvatar","img","props","size"],"sources":["../../../../src/components/Avatar/Styles.ts"],"sourcesContent":["import styled from \"styled-components\";\nimport { AvatarProps } from \"./Avatar\";\n\nexport const StyledWrapper = styled.span`\n display: inline-flex;\n position: relative;\n`;\n\nexport const StyledAvatar = styled.img<Pick<AvatarProps, \"size\">>`\n border-radius: 100%;\n object-fit: cover;\n\n block-size: ${(props) => props.size + \"px\"};\n inline-size: ${(props) => props.size + \"px\"};\n`;\n"],"mappings":";;;;;;AAAA;AAAuC;AAGhC,IAAMA,aAAa,GAAGC,yBAAM,CAACC,IAAI;EAAA;EAAA;AAAA,8CAGvC;AAAC;AAEK,IAAMC,YAAY,GAAGF,yBAAM,CAACG,GAAG;EAAA;EAAA;AAAA,8EAItB,UAACC,KAAK;EAAA,OAAKA,KAAK,CAACC,IAAI,GAAG,IAAI;AAAA,GAC3B,UAACD,KAAK;EAAA,OAAKA,KAAK,CAACC,IAAI,GAAG,IAAI;AAAA,EAC5C;AAAC"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Badge = void 0;
7
+ var _classnames = _interopRequireDefault(require("classnames"));
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _Styles = require("./Styles");
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ /**
12
+ * @component Badge
13
+ * @description
14
+ * In some products, you might need to show a badge on the right corner of the avatar.
15
+ * We call this a badge. Here's an example that shows if the user is online.
16
+ *
17
+ * @prop {position} - dictates the position of a badge.
18
+ * @prop {dimension} - controls the size of a badge (width and height) in pixels.
19
+ * @prop {backgroundColor} - background-color of a badge.
20
+ * @prop {isVisible} - dictates if badge should be visible or not.
21
+ *
22
+ * @example
23
+ * <IconButton variant="text gray" size="big">
24
+ * <BellOffIcon />
25
+ * <Badge position="top-right" backgroundColor="red" dimension={16} />
26
+ * </IconButton>
27
+ *
28
+ * @see
29
+ * https://system.activecollab.com/?path=/story/components-button-indicators-badge--badge
30
+ */
31
+ var Badge = function Badge(_ref) {
32
+ var _ref$dimension = _ref.dimension,
33
+ dimension = _ref$dimension === void 0 ? 8 : _ref$dimension,
34
+ className = _ref.className,
35
+ _ref$position = _ref.position,
36
+ position = _ref$position === void 0 ? "bottom-left" : _ref$position,
37
+ _ref$backgroundColor = _ref.backgroundColor,
38
+ backgroundColor = _ref$backgroundColor === void 0 ? "#40C37D" : _ref$backgroundColor,
39
+ _ref$isVisible = _ref.isVisible,
40
+ isVisible = _ref$isVisible === void 0 ? true : _ref$isVisible;
41
+ return isVisible ? /*#__PURE__*/_react.default.createElement(_Styles.StyledBadge, {
42
+ className: (0, _classnames.default)("c-badge", className),
43
+ dimension: dimension,
44
+ position: position,
45
+ backgroundColor: backgroundColor,
46
+ role: "status"
47
+ }) : null;
48
+ };
49
+ exports.Badge = Badge;
50
+ //# sourceMappingURL=Badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.js","names":["Badge","dimension","className","position","backgroundColor","isVisible","classNames"],"sources":["../../../../src/components/Badge/Badge.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport React from \"react\";\nimport { StyledBadge } from \"./Styles\";\n\ntype Position = \"top-left\" | \"top-right\" | \"bottom-right\" | \"bottom-left\";\n\nexport interface BadgeProps {\n position?: Position;\n dimension?: number;\n className?: string;\n backgroundColor?: string;\n isVisible?: boolean;\n}\n\n/**\n * @component Badge\n * @description\n * In some products, you might need to show a badge on the right corner of the avatar.\n * We call this a badge. Here's an example that shows if the user is online.\n *\n * @prop {position} - dictates the position of a badge.\n * @prop {dimension} - controls the size of a badge (width and height) in pixels.\n * @prop {backgroundColor} - background-color of a badge.\n * @prop {isVisible} - dictates if badge should be visible or not.\n *\n * @example\n * <IconButton variant=\"text gray\" size=\"big\">\n * <BellOffIcon />\n * <Badge position=\"top-right\" backgroundColor=\"red\" dimension={16} />\n * </IconButton>\n *\n * @see\n * https://system.activecollab.com/?path=/story/components-button-indicators-badge--badge\n */\nexport const Badge = ({\n dimension = 8,\n className,\n position = \"bottom-left\",\n backgroundColor = \"#40C37D\",\n isVisible = true,\n}: BadgeProps) => {\n return isVisible ? (\n <StyledBadge\n className={classNames(\"c-badge\", className)}\n dimension={dimension}\n position={position}\n backgroundColor={backgroundColor}\n role=\"status\"\n />\n ) : null;\n};\n"],"mappings":";;;;;;AAAA;AACA;AACA;AAAuC;AAYvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,KAAK,GAAG,SAARA,KAAK,OAMA;EAAA,0BALhBC,SAAS;IAATA,SAAS,+BAAG,CAAC;IACbC,SAAS,QAATA,SAAS;IAAA,qBACTC,QAAQ;IAARA,QAAQ,8BAAG,aAAa;IAAA,4BACxBC,eAAe;IAAfA,eAAe,qCAAG,SAAS;IAAA,sBAC3BC,SAAS;IAATA,SAAS,+BAAG,IAAI;EAEhB,OAAOA,SAAS,gBACd,6BAAC,mBAAW;IACV,SAAS,EAAE,IAAAC,mBAAU,EAAC,SAAS,EAAEJ,SAAS,CAAE;IAC5C,SAAS,EAAED,SAAU;IACrB,QAAQ,EAAEE,QAAS;IACnB,eAAe,EAAEC,eAAgB;IACjC,IAAI,EAAC;EAAQ,EACb,GACA,IAAI;AACV,CAAC;AAAC"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.StyledBadge = void 0;
8
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
9
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
10
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
11
+ var StyledBadge = _styledComponents.default.div.withConfig({
12
+ displayName: "Styles__StyledBadge",
13
+ componentId: "sc-6o8do5-0"
14
+ })(["background-color:", ";block-size:", ";border-radius:100%;border:2px solid var(--page-paper-main);inline-size:", ";position:absolute;pointer-events:none;z-index:1;", " ", " ", " ", ""], function (props) {
15
+ return props.backgroundColor;
16
+ }, function (props) {
17
+ return props.dimension + "px";
18
+ }, function (props) {
19
+ return props.dimension + "px";
20
+ }, function (_ref) {
21
+ var position = _ref.position;
22
+ return position === "top-left" && (0, _styledComponents.css)(["inset-block-start:0;inset-inline-start:0;"]);
23
+ }, function (_ref2) {
24
+ var position = _ref2.position;
25
+ return position === "top-right" && (0, _styledComponents.css)(["inset-block-start:0;inset-inline-end:0;"]);
26
+ }, function (_ref3) {
27
+ var position = _ref3.position;
28
+ return position === "bottom-right" && (0, _styledComponents.css)(["inset-block-end:0;inset-inline-end:0;"]);
29
+ }, function (_ref4) {
30
+ var position = _ref4.position;
31
+ return position === "bottom-left" && (0, _styledComponents.css)(["inset-block-end:0;inset-inline-start:0;"]);
32
+ });
33
+ exports.StyledBadge = StyledBadge;
34
+ //# sourceMappingURL=Styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Styles.js","names":["StyledBadge","styled","div","props","backgroundColor","dimension","position","css"],"sources":["../../../../src/components/Badge/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\nimport { BadgeProps } from \"./Badge\";\n\nexport const StyledBadge = styled.div<Partial<BadgeProps>>`\n background-color: ${(props) => props.backgroundColor};\n block-size: ${(props) => props.dimension + \"px\"};\n border-radius: 100%;\n border: 2px solid var(--page-paper-main);\n inline-size: ${(props) => props.dimension + \"px\"};\n position: absolute;\n pointer-events: none;\n z-index: 1;\n\n ${({ position }) =>\n position === \"top-left\" &&\n css`\n inset-block-start: 0;\n inset-inline-start: 0;\n `}\n\n ${({ position }) =>\n position === \"top-right\" &&\n css`\n inset-block-start: 0;\n inset-inline-end: 0;\n `}\n\n ${({ position }) =>\n position === \"bottom-right\" &&\n css`\n inset-block-end: 0;\n inset-inline-end: 0;\n `}\n\n ${({ position }) =>\n position === \"bottom-left\" &&\n css`\n inset-block-end: 0;\n inset-inline-start: 0;\n `}\n`;\n"],"mappings":";;;;;;;AAAA;AAAgD;AAAA;AAGzC,IAAMA,WAAW,GAAGC,yBAAM,CAACC,GAAG;EAAA;EAAA;AAAA,8LACf,UAACC,KAAK;EAAA,OAAKA,KAAK,CAACC,eAAe;AAAA,GACtC,UAACD,KAAK;EAAA,OAAKA,KAAK,CAACE,SAAS,GAAG,IAAI;AAAA,GAGhC,UAACF,KAAK;EAAA,OAAKA,KAAK,CAACE,SAAS,GAAG,IAAI;AAAA,GAK9C;EAAA,IAAGC,QAAQ,QAARA,QAAQ;EAAA,OACXA,QAAQ,KAAK,UAAU,QACvBC,qBAAG,gDAGF;AAAA,GAED;EAAA,IAAGD,QAAQ,SAARA,QAAQ;EAAA,OACXA,QAAQ,KAAK,WAAW,QACxBC,qBAAG,8CAGF;AAAA,GAEC;EAAA,IAAGD,QAAQ,SAARA,QAAQ;EAAA,OACbA,QAAQ,KAAK,cAAc,QAC3BC,qBAAG,4CAGF;AAAA,GAEC;EAAA,IAAGD,QAAQ,SAARA,QAAQ;EAAA,OACbA,QAAQ,KAAK,aAAa,QAC1BC,qBAAG,8CAGF;AAAA,EACJ;AAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _Badge = require("./Badge");
7
+ Object.keys(_Badge).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _Badge[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function get() {
13
+ return _Badge[key];
14
+ }
15
+ });
16
+ });
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/Badge/index.ts"],"sourcesContent":["export * from \"./Badge\";\n"],"mappings":";;;;;AAAA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
@@ -33,6 +33,7 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
33
33
  * )
34
34
  * @see
35
35
  * https://system.activecollab.com/?path=/story/components-button-indicators-button--button
36
+ * https://design.activecollab.com/docs/components/button
36
37
  */
37
38
  var Button = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
38
39
  var children = _ref.children,
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","names":["Button","forwardRef","ref","children","active","variant","size","className","args","classnames","Object","Array","map","value","index","displayName"],"sources":["../../../../src/components/Button/Button.tsx"],"sourcesContent":["import React, {\n ComponentPropsWithoutRef,\n forwardRef,\n PropsWithChildren,\n} from \"react\";\nimport classnames from \"classnames\";\nimport {\n StyledButton,\n StyledButtonElement,\n StyledButtonElements,\n} from \"./Styles\";\n\nexport interface ButtonProps extends ComponentPropsWithoutRef<\"button\"> {\n /** Types of a button. */\n variant?:\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"option\"\n | \"contained\"\n | \"outlined\"\n | \"text colored\"\n | \"text gray\"\n | \"dark transparent\"\n | \"circle raised\";\n /** Button size dictates the height. */\n size?: \"big\" | \"small\" | \"medium\";\n /** Active or pressed state. */\n active?: boolean;\n}\n/**\n * @component Button\n * @description\n * Button component is used to trigger an action or event, such as submitting a form,\n * opening a Dialog, canceling an action, or performing a delete operation.\n *\n * @prop {variant} - adds unique look and feel to button.\n * @prop {size} - controls the size of a button.\n * @prop {active} - adds active/pressed state to a button.\n *\n * @example\n * return (\n * <Button className=\"mr-2\" variant=\"primary\" size=\"big\">\n * Save\n * </Button>\n * )\n * @see\n * https://system.activecollab.com/?path=/story/components-button-indicators-button--button\n */\nexport const Button = forwardRef<\n HTMLButtonElement,\n PropsWithChildren<ButtonProps>\n>(\n (\n {\n children,\n active = false,\n variant = \"contained\",\n size = \"medium\",\n className,\n ...args\n },\n ref\n ) => {\n return (\n <StyledButton\n className={classnames(\"c-btn\", className, {\n \"c-btn--contained\": variant === \"primary\" || variant === \"contained\",\n \"c-btn--outlined\": variant === \"secondary\" || variant === \"outlined\",\n \"c-btn--text_colored\":\n variant === \"tertiary\" || variant === \"text colored\",\n \"c-btn--text_gray\": variant === \"option\" || variant === \"text gray\",\n \"c-btn--dark_transparent\": variant === \"dark transparent\",\n \"c-btn--circle-raised\": variant === \"circle raised\",\n \"c-btn--big\": size === \"big\",\n \"c-btn--small\": size === \"small\",\n \"c-btn--icon-only\":\n children instanceof Object && !(children instanceof Array),\n })}\n iconOnly={children instanceof Object && !(children instanceof Array)}\n variant={variant}\n active={active}\n size={size}\n ref={ref}\n aria-pressed={active}\n role=\"button\"\n {...args}\n >\n {children instanceof Array ? (\n <StyledButtonElements className=\"c-btn__elements\">\n {children.map((value, index) =>\n value ? (\n <StyledButtonElement\n className=\"c-btn__elements__element\"\n key={index}\n >\n {value}\n </StyledButtonElement>\n ) : null\n )}\n </StyledButtonElements>\n ) : (\n children\n )}\n </StyledButton>\n );\n }\n);\n\nButton.displayName = \"Button\";\n"],"mappings":";;;;;;;AAAA;AAKA;AACA;AAIkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoBlB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,MAAM,gBAAG,IAAAC,iBAAU,EAI9B,gBASEC,GAAG,EACA;EAAA,IARDC,QAAQ,QAARA,QAAQ;IAAA,mBACRC,MAAM;IAANA,MAAM,4BAAG,KAAK;IAAA,oBACdC,OAAO;IAAPA,OAAO,6BAAG,WAAW;IAAA,iBACrBC,IAAI;IAAJA,IAAI,0BAAG,QAAQ;IACfC,SAAS,QAATA,SAAS;IACNC,IAAI;EAIT,oBACE,6BAAC,oBAAY;IACX,SAAS,EAAE,IAAAC,mBAAU,EAAC,OAAO,EAAEF,SAAS,EAAE;MACxC,kBAAkB,EAAEF,OAAO,KAAK,SAAS,IAAIA,OAAO,KAAK,WAAW;MACpE,iBAAiB,EAAEA,OAAO,KAAK,WAAW,IAAIA,OAAO,KAAK,UAAU;MACpE,qBAAqB,EACnBA,OAAO,KAAK,UAAU,IAAIA,OAAO,KAAK,cAAc;MACtD,kBAAkB,EAAEA,OAAO,KAAK,QAAQ,IAAIA,OAAO,KAAK,WAAW;MACnE,yBAAyB,EAAEA,OAAO,KAAK,kBAAkB;MACzD,sBAAsB,EAAEA,OAAO,KAAK,eAAe;MACnD,YAAY,EAAEC,IAAI,KAAK,KAAK;MAC5B,cAAc,EAAEA,IAAI,KAAK,OAAO;MAChC,kBAAkB,EAChBH,QAAQ,YAAYO,MAAM,IAAI,EAAEP,QAAQ,YAAYQ,KAAK;IAC7D,CAAC,CAAE;IACH,QAAQ,EAAER,QAAQ,YAAYO,MAAM,IAAI,EAAEP,QAAQ,YAAYQ,KAAK,CAAE;IACrE,OAAO,EAAEN,OAAQ;IACjB,MAAM,EAAED,MAAO;IACf,IAAI,EAAEE,IAAK;IACX,GAAG,EAAEJ,GAAI;IACT,gBAAcE,MAAO;IACrB,IAAI,EAAC;EAAQ,GACTI,IAAI,GAEPL,QAAQ,YAAYQ,KAAK,gBACxB,6BAAC,4BAAoB;IAAC,SAAS,EAAC;EAAiB,GAC9CR,QAAQ,CAACS,GAAG,CAAC,UAACC,KAAK,EAAEC,KAAK;IAAA,OACzBD,KAAK,gBACH,6BAAC,2BAAmB;MAClB,SAAS,EAAC,0BAA0B;MACpC,GAAG,EAAEC;IAAM,GAEVD,KAAK,CACc,GACpB,IAAI;EAAA,EACT,CACoB,GAEvBV,QACD,CACY;AAEnB,CAAC,CACF;AAAC;AAEFH,MAAM,CAACe,WAAW,GAAG,QAAQ"}
1
+ {"version":3,"file":"Button.js","names":["Button","forwardRef","ref","children","active","variant","size","className","args","classnames","Object","Array","map","value","index","displayName"],"sources":["../../../../src/components/Button/Button.tsx"],"sourcesContent":["import React, {\n ComponentPropsWithoutRef,\n forwardRef,\n PropsWithChildren,\n} from \"react\";\nimport classnames from \"classnames\";\nimport {\n StyledButton,\n StyledButtonElement,\n StyledButtonElements,\n} from \"./Styles\";\n\nexport interface ButtonProps extends ComponentPropsWithoutRef<\"button\"> {\n /** Types of a button. */\n variant?:\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"option\"\n | \"contained\"\n | \"outlined\"\n | \"text colored\"\n | \"text gray\"\n | \"dark transparent\"\n | \"circle raised\";\n /** Button size dictates the height. */\n size?: \"big\" | \"small\" | \"medium\";\n /** Active or pressed state. */\n active?: boolean;\n}\n/**\n * @component Button\n * @description\n * Button component is used to trigger an action or event, such as submitting a form,\n * opening a Dialog, canceling an action, or performing a delete operation.\n *\n * @prop {variant} - adds unique look and feel to button.\n * @prop {size} - controls the size of a button.\n * @prop {active} - adds active/pressed state to a button.\n *\n * @example\n * return (\n * <Button className=\"mr-2\" variant=\"primary\" size=\"big\">\n * Save\n * </Button>\n * )\n * @see\n * https://system.activecollab.com/?path=/story/components-button-indicators-button--button\n * https://design.activecollab.com/docs/components/button\n */\nexport const Button = forwardRef<\n HTMLButtonElement,\n PropsWithChildren<ButtonProps>\n>(\n (\n {\n children,\n active = false,\n variant = \"contained\",\n size = \"medium\",\n className,\n ...args\n },\n ref\n ) => {\n return (\n <StyledButton\n className={classnames(\"c-btn\", className, {\n \"c-btn--contained\": variant === \"primary\" || variant === \"contained\",\n \"c-btn--outlined\": variant === \"secondary\" || variant === \"outlined\",\n \"c-btn--text_colored\":\n variant === \"tertiary\" || variant === \"text colored\",\n \"c-btn--text_gray\": variant === \"option\" || variant === \"text gray\",\n \"c-btn--dark_transparent\": variant === \"dark transparent\",\n \"c-btn--circle-raised\": variant === \"circle raised\",\n \"c-btn--big\": size === \"big\",\n \"c-btn--small\": size === \"small\",\n \"c-btn--icon-only\":\n children instanceof Object && !(children instanceof Array),\n })}\n iconOnly={children instanceof Object && !(children instanceof Array)}\n variant={variant}\n active={active}\n size={size}\n ref={ref}\n aria-pressed={active}\n role=\"button\"\n {...args}\n >\n {children instanceof Array ? (\n <StyledButtonElements className=\"c-btn__elements\">\n {children.map((value, index) =>\n value ? (\n <StyledButtonElement\n className=\"c-btn__elements__element\"\n key={index}\n >\n {value}\n </StyledButtonElement>\n ) : null\n )}\n </StyledButtonElements>\n ) : (\n children\n )}\n </StyledButton>\n );\n }\n);\n\nButton.displayName = \"Button\";\n"],"mappings":";;;;;;;AAAA;AAKA;AACA;AAIkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoBlB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,MAAM,gBAAG,IAAAC,iBAAU,EAI9B,gBASEC,GAAG,EACA;EAAA,IARDC,QAAQ,QAARA,QAAQ;IAAA,mBACRC,MAAM;IAANA,MAAM,4BAAG,KAAK;IAAA,oBACdC,OAAO;IAAPA,OAAO,6BAAG,WAAW;IAAA,iBACrBC,IAAI;IAAJA,IAAI,0BAAG,QAAQ;IACfC,SAAS,QAATA,SAAS;IACNC,IAAI;EAIT,oBACE,6BAAC,oBAAY;IACX,SAAS,EAAE,IAAAC,mBAAU,EAAC,OAAO,EAAEF,SAAS,EAAE;MACxC,kBAAkB,EAAEF,OAAO,KAAK,SAAS,IAAIA,OAAO,KAAK,WAAW;MACpE,iBAAiB,EAAEA,OAAO,KAAK,WAAW,IAAIA,OAAO,KAAK,UAAU;MACpE,qBAAqB,EACnBA,OAAO,KAAK,UAAU,IAAIA,OAAO,KAAK,cAAc;MACtD,kBAAkB,EAAEA,OAAO,KAAK,QAAQ,IAAIA,OAAO,KAAK,WAAW;MACnE,yBAAyB,EAAEA,OAAO,KAAK,kBAAkB;MACzD,sBAAsB,EAAEA,OAAO,KAAK,eAAe;MACnD,YAAY,EAAEC,IAAI,KAAK,KAAK;MAC5B,cAAc,EAAEA,IAAI,KAAK,OAAO;MAChC,kBAAkB,EAChBH,QAAQ,YAAYO,MAAM,IAAI,EAAEP,QAAQ,YAAYQ,KAAK;IAC7D,CAAC,CAAE;IACH,QAAQ,EAAER,QAAQ,YAAYO,MAAM,IAAI,EAAEP,QAAQ,YAAYQ,KAAK,CAAE;IACrE,OAAO,EAAEN,OAAQ;IACjB,MAAM,EAAED,MAAO;IACf,IAAI,EAAEE,IAAK;IACX,GAAG,EAAEJ,GAAI;IACT,gBAAcE,MAAO;IACrB,IAAI,EAAC;EAAQ,GACTI,IAAI,GAEPL,QAAQ,YAAYQ,KAAK,gBACxB,6BAAC,4BAAoB;IAAC,SAAS,EAAC;EAAiB,GAC9CR,QAAQ,CAACS,GAAG,CAAC,UAACC,KAAK,EAAEC,KAAK;IAAA,OACzBD,KAAK,gBACH,6BAAC,2BAAmB;MAClB,SAAS,EAAC,0BAA0B;MACpC,GAAG,EAAEC;IAAM,GAEVD,KAAK,CACc,GACpB,IAAI;EAAA,EACT,CACoB,GAEvBV,QACD,CACY;AAEnB,CAAC,CACF;AAAC;AAEFH,MAAM,CAACe,WAAW,GAAG,QAAQ"}
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBox.js","names":["ComboBox","options","selected","loading","loadingText","onChange","placeholder","handleEmptyAction","disabled","size","invalid","type","renderChip","forceCloseMenu","renderOption","limitChips","hiddenNumberText","inPortal","inputWrapperClassName","scrollWrapper","prop","selectedName","useMemo","value","map","v","find","q","id","name","useState","setValue","handleOnChange","useCallback","e","target","childNode","setChildNode","elementRef","useRef","handleRef","useForkRef","wrapperRef","chipWrapper","comboBoxRef","open","setOpen","useOnClickOutside","current","contains","handleOnKeyDown","key","stopPropagation","useEffect","focus","blur","emptyAction","handleChange","selectedValue","onOpen","handleRenderOption","option","props","image","color","textColor","handleDeselect","handleMouseDown","preventDefault","handleBlur","renderChipAdornment","index","avatarProps","leftAdornment","undefined","onClose","Array","isArray","includes","newSelected","filter","item","showOnClose","autoSize","length","startAdornment","elements","total","forEach","isGrouped","isOptionGroup","push","groupedOptions","o","_index","hidden","splice","showXIcon","hasSelected","classNames","display","flex","alignSelf","width","children","zIndex","clientWidth","displayName"],"sources":["../../../../src/components/ComboBox/ComboBox.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n useEffect,\n useRef,\n useMemo,\n Fragment,\n} from \"react\";\nimport { RadioButton } from \"../RadioButton\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport { IconButton } from \"../IconButton\";\nimport {\n IAutocompleteProps,\n isOptionGroup,\n} from \"../Autocomplete/Autocomplete\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Popper } from \"../Popper\";\nimport { IOptionGroupProps, IOptionItemProps } from \"../Select\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { SpinnerLoader } from \"../Loaders/Spinner/SpinnerLoader\";\nimport { OptionContent } from \"../Select/OptionContent/OptionContent\";\nimport {\n StyledComboBoxCloseSmallIcon,\n StyledComboBoxCollapseExpandSingleIcon,\n StyledComboBoxInput,\n StyledComboBoxList,\n StyledChipWrapper,\n} from \"./Styles\";\nimport { InputSize } from \"../Input/types\";\nimport { InputAdornment } from \"../Input/InputAdornment\";\nimport { Checkbox } from \"../Checkbox\";\nimport { Chip } from \"../Chip\";\nimport { StyledInput, StyledInputWrapper } from \"../Input/Styles\";\nimport { useOnClickOutside } from \"../../hooks/useOnClickOutside\";\nimport { Avatar, IAvatar } from \"../Avatar\";\nimport { Trigger } from \"../Trigger\";\nimport { Typography } from \"../Typography/Typography\";\nimport tw from \"twin.macro\";\nimport { Portal } from \"../../helpers\";\nimport { ConditionalWrapper } from \"../../helpers/ConditionWrapper/ConditionWrapper\";\nimport classNames from \"classnames\";\n\nexport interface IComboBoxProps\n extends Omit<\n IAutocompleteProps,\n \"handleChange\" | \"inputEl\" | \"clearInputOnSelect\"\n > {\n /** Set combobox in to loading state */\n loading?: boolean;\n /** Text to display while in loading state */\n loadingText?: string;\n /** onChange callback */\n onChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** Placeholder for Select input */\n placeholder?: string;\n /** disable Input element */\n disabled?: boolean;\n /** Combobox size */\n size?: InputSize;\n /** Invalid state */\n invalid?: boolean;\n /** Render Chip */\n renderChip?: <T extends IOptionItemProps>(\n item: T,\n key?: string | number\n ) => JSX.Element;\n /** Close menu on change */\n forceCloseMenu?: boolean;\n /** Limit chips */\n limitChips?: number;\n /** Hidden number text */\n hiddenNumberText?: (hidden: number) => string;\n /** Render Autocomplete in <Portal> */\n inPortal?: boolean;\n /** inputWrapperClassName */\n inputWrapperClassName?: string;\n /** scrollWrapper */\n scrollWrapper?: boolean;\n}\n\nexport const ComboBox: FC<IComboBoxProps> = ({\n options = [],\n selected,\n loading = false,\n loadingText,\n onChange,\n placeholder,\n handleEmptyAction,\n disabled = false,\n size = \"regular\",\n invalid = false,\n type = \"single\",\n renderChip,\n forceCloseMenu = type === \"single\",\n renderOption,\n limitChips = 2,\n hiddenNumberText,\n inPortal = false,\n inputWrapperClassName,\n scrollWrapper,\n ...prop\n}) => {\n const selectedName = useMemo(() => {\n let value = \"\";\n if (!selected) {\n return value;\n }\n options.map((v) => {\n if ((v as IOptionGroupProps)?.options) {\n return (v as IOptionGroupProps).options.find((q) => {\n if (q.id === selected) {\n value = q.name;\n return;\n }\n });\n } else {\n if (v.id === selected) {\n value = v.name;\n return;\n }\n }\n });\n return value;\n }, [options, selected]);\n const [value, setValue] = useState(selectedName);\n const handleOnChange = useCallback((e) => setValue(e.target.value), []);\n const [childNode, setChildNode] = useState<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(setChildNode, elementRef);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const chipWrapper = useRef<HTMLDivElement>(null);\n const comboBoxRef = useRef<HTMLDivElement | null>(null);\n\n const [open, setOpen] = useState(false);\n\n useOnClickOutside(wrapperRef, (e) => {\n if (e.target && comboBoxRef.current?.contains(e.target as Node)) {\n return;\n }\n setOpen(false);\n });\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (e.key === \"Escape\" && open) {\n setOpen(false);\n setValue(selectedName);\n e.stopPropagation();\n }\n if (e.key === \"Enter\" && type === \"multiple\") {\n setValue(\"\");\n }\n },\n [open, selectedName, type]\n );\n\n useEffect(() => {\n open && childNode?.focus();\n !open && childNode?.blur();\n }, [childNode, open]);\n\n useEffect(() => {\n setValue(selectedName);\n }, [selectedName]);\n\n const emptyAction = useCallback(\n (v) => {\n handleEmptyAction?.(v);\n setOpen(false);\n },\n [handleEmptyAction]\n );\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (selectedValue !== selected && typeof onChange === \"function\") {\n onChange(selectedValue);\n }\n if (forceCloseMenu) {\n setOpen(false);\n }\n },\n [forceCloseMenu, onChange, selected]\n );\n\n const onOpen = useCallback(() => {\n if (!disabled) {\n setOpen(true);\n }\n }, [disabled]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n if (type === \"multiple\") {\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <Checkbox {...props} />\n </>\n );\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <RadioButton {...props} />\n </>\n );\n },\n [type, renderOption]\n );\n\n const handleDeselect = useCallback(\n (e) => {\n e.stopPropagation();\n if (type === \"multiple\") {\n onChange?.([]);\n } else {\n onChange?.(\"\");\n }\n\n setOpen(false);\n },\n [type, onChange]\n );\n\n const handleMouseDown = useCallback((e) => {\n e.preventDefault();\n }, []);\n\n const handleBlur = useCallback(() => {\n setValue(selectedName);\n }, [selectedName]);\n\n const renderChipAdornment = useCallback(\n (option, index) => {\n if (typeof renderChip === \"function\") {\n return renderChip(option, index);\n }\n const avatarProps: Partial<IAvatar> = {\n size: 18,\n };\n switch (size) {\n case \"big\":\n avatarProps.size = 22;\n break;\n case \"small\":\n avatarProps.size = 14;\n break;\n }\n const leftAdornment = option.image ? (\n <Avatar\n css={`\n ${tw`tw-my-0.5`}\n ${tw`tw-mr-0.5`}\n `}\n url={option.image}\n {...avatarProps}\n />\n ) : undefined;\n\n const onClose = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (Array.isArray(selected) && selected.includes(option.id)) {\n if (typeof onChange === \"function\") {\n const newSelected = selected.filter((item) => item !== option.id);\n onChange(newSelected);\n }\n }\n };\n\n let showOnClose = true;\n if (disabled) {\n showOnClose = false;\n }\n if (option.color) {\n showOnClose = false;\n }\n\n return (\n <Chip\n className=\"c-combo-box-chip\"\n leftAdornment={leftAdornment}\n label={option.name}\n key={index}\n backgroundColor={option.color}\n color=\"#303037\"\n onClose={showOnClose ? onClose : undefined}\n size={size}\n variant=\"Caption 2\"\n />\n );\n },\n [disabled, onChange, renderChip, selected, size]\n );\n\n const autoSize = useMemo(() => {\n if (\n type === \"multiple\" &&\n open &&\n Array.isArray(selected) &&\n selected.length > 1\n ) {\n return \"auto\";\n }\n return size;\n }, [open, selected, size, type]);\n\n const startAdornment = useMemo(() => {\n if (type === \"multiple\" && Array.isArray(selected) && selected.length > 0) {\n const elements: JSX.Element[] = [];\n let total = 0;\n options.forEach((option, index) => {\n const isGrouped = isOptionGroup(option);\n if (selected.includes(option.id) && !isGrouped) {\n total = total + 1;\n elements.push(renderChipAdornment(option, index));\n } else if (isGrouped) {\n const groupedOptions = option.options.filter((o) =>\n selected.includes(o.id)\n );\n total = total + groupedOptions.length;\n if (groupedOptions.length > 0) {\n groupedOptions.forEach((o, _index) => {\n elements.push(renderChipAdornment(o, `${index}_${_index}`));\n });\n }\n }\n });\n let hidden = 0;\n if (!open && limitChips > 0 && elements.length > limitChips) {\n hidden = elements.splice(\n limitChips,\n elements.length - limitChips\n ).length;\n }\n\n return (\n <Fragment>\n {elements}\n {hidden > 0 && (\n <Typography\n variant={\n size === \"small\"\n ? \"Caption 1\"\n : size === \"regular\"\n ? \"Body 2\"\n : \"Body 1\"\n }\n css={`\n display: flex;\n flex-shrink: 0;\n align-items: center;\n `}\n >\n {typeof hiddenNumberText === \"function\"\n ? hiddenNumberText(hidden)\n : `+${hidden}`}\n </Typography>\n )}\n </Fragment>\n );\n }\n return undefined;\n }, [\n type,\n selected,\n options,\n open,\n limitChips,\n hiddenNumberText,\n renderChipAdornment,\n size,\n ]);\n\n const showXIcon =\n Array.isArray(selected) && type === \"multiple\" && selected.length > 0;\n\n const hasSelected =\n type === \"multiple\" && Array.isArray(selected) && selected.length > 0;\n\n return (\n <div className=\"c-combo-box\">\n {type === \"multiple\" ? (\n <>\n <StyledInputWrapper\n $disabled={disabled}\n $size={size}\n $invalid={invalid}\n ref={comboBoxRef}\n css={`\n display: flex;\n justify-content: space-between;\n flex: 1;\n height: ${autoSize === \"auto\" ? \"auto\" : undefined};\n overflow-y: ${autoSize === \"auto\" && scrollWrapper\n ? \"scroll\"\n : undefined};\n max-height: ${autoSize === \"auto\" && scrollWrapper\n ? \"80px\"\n : undefined};\n `}\n className={classNames(\n \"c-combo-box-input-wrapper\",\n inputWrapperClassName\n )}\n onClick={() => {\n elementRef.current?.focus();\n }}\n >\n <StyledChipWrapper\n $autoSize={autoSize}\n $open={open}\n ref={chipWrapper}\n >\n {startAdornment}\n <StyledInput\n className=\"c-combo-box-input\"\n onBlur={handleBlur}\n onFocus={onOpen}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={!hasSelected ? placeholder : undefined}\n disabled={disabled}\n $size={size}\n $loading={loading}\n style={{\n display: \"flex\",\n flex: 1,\n alignSelf: \"center\",\n width: autoSize === \"auto\" ? \"auto\" : \"100%\",\n }}\n />\n </StyledChipWrapper>\n {!disabled && (\n <>\n {loading ? (\n <SpinnerLoader />\n ) : (\n <>\n {showXIcon && (\n <Trigger\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n data-testid=\"deselect-all\"\n css={`\n display: flex;\n justify-content: center;\n `}\n >\n <StyledComboBoxCloseSmallIcon />\n </Trigger>\n )}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </>\n )}\n </>\n )}\n </StyledInputWrapper>\n </>\n ) : (\n <StyledComboBoxInput\n className={classNames(\"c-combo-box-input\", inputWrapperClassName)}\n onBlur={handleBlur}\n onFocus={onOpen}\n wrapRef={comboBoxRef}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={placeholder}\n disabled={disabled}\n size={size}\n invalid={invalid}\n $loading={loading}\n startAdornment={startAdornment}\n endAdornment={\n !disabled ? (\n <InputAdornment disablePointerEvents={disabled}>\n {loading ? (\n <SpinnerLoader />\n ) : selected ? (\n <IconButton\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n variant=\"text gray\"\n size=\"small\"\n >\n <StyledComboBoxCloseSmallIcon />\n </IconButton>\n ) : null}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </InputAdornment>\n ) : null\n }\n />\n )}\n\n {!disabled ? (\n <ConditionalWrapper\n condition={inPortal}\n wrap={(children) => <Portal>{children}</Portal>}\n >\n <Popper\n anchorEl={comboBoxRef.current}\n open={open}\n placement=\"bottom\"\n style={{\n zIndex: 10,\n width: comboBoxRef.current?.clientWidth,\n }}\n ref={wrapperRef}\n strategy=\"fixed\"\n >\n <RemoveScroll noIsolation allowPinchZoom>\n <StyledComboBoxList $width={comboBoxRef.current?.clientWidth}>\n <Autocomplete\n {...prop}\n inputEl={childNode}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n type={type}\n handleEmptyAction={emptyAction}\n />\n </StyledComboBoxList>\n </RemoveScroll>\n </Popper>\n </ConditionalWrapper>\n ) : null}\n </div>\n );\n};\n\nComboBox.displayName = \"ComboBox\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"ComboBox.js","names":["ComboBox","options","selected","loading","loadingText","onChange","placeholder","handleEmptyAction","disabled","size","invalid","type","renderChip","forceCloseMenu","renderOption","limitChips","hiddenNumberText","inPortal","inputWrapperClassName","scrollWrapper","prop","selectedName","useMemo","value","map","v","find","q","id","name","useState","setValue","handleOnChange","useCallback","e","target","childNode","setChildNode","elementRef","useRef","handleRef","useForkRef","wrapperRef","chipWrapper","comboBoxRef","open","setOpen","useOnClickOutside","current","contains","handleOnKeyDown","key","stopPropagation","useEffect","focus","blur","emptyAction","handleChange","selectedValue","onOpen","handleRenderOption","option","props","image","color","textColor","handleDeselect","handleMouseDown","preventDefault","handleBlur","renderChipAdornment","index","avatarProps","leftAdornment","undefined","onClose","Array","isArray","includes","newSelected","filter","item","showOnClose","autoSize","length","startAdornment","elements","total","forEach","isGrouped","isOptionGroup","push","groupedOptions","o","_index","hidden","splice","showXIcon","hasSelected","classNames","display","flex","alignSelf","width","children","zIndex","clientWidth","displayName"],"sources":["../../../../src/components/ComboBox/ComboBox.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n useEffect,\n useRef,\n useMemo,\n Fragment,\n} from \"react\";\nimport { RadioButton } from \"../RadioButton\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport { IconButton } from \"../IconButton\";\nimport {\n IAutocompleteProps,\n isOptionGroup,\n} from \"../Autocomplete/Autocomplete\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Popper } from \"../Popper\";\nimport { IOptionGroupProps, IOptionItemProps } from \"../Select\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { SpinnerLoader } from \"../Loaders/Spinner/SpinnerLoader\";\nimport { OptionContent } from \"../Select/OptionContent/OptionContent\";\nimport {\n StyledComboBoxCloseSmallIcon,\n StyledComboBoxCollapseExpandSingleIcon,\n StyledComboBoxInput,\n StyledComboBoxList,\n StyledChipWrapper,\n} from \"./Styles\";\nimport { InputSize } from \"../Input/types\";\nimport { InputAdornment } from \"../Input/InputAdornment\";\nimport { Checkbox } from \"../Checkbox\";\nimport { Chip } from \"../Chip\";\nimport { StyledInput, StyledInputWrapper } from \"../Input/Styles\";\nimport { useOnClickOutside } from \"../../hooks/useOnClickOutside\";\nimport { Avatar, AvatarProps } from \"../Avatar\";\nimport { Trigger } from \"../Trigger\";\nimport { Typography } from \"../Typography/Typography\";\nimport tw from \"twin.macro\";\nimport { Portal } from \"../../helpers\";\nimport { ConditionalWrapper } from \"../../helpers/ConditionWrapper/ConditionWrapper\";\nimport classNames from \"classnames\";\n\nexport interface IComboBoxProps\n extends Omit<\n IAutocompleteProps,\n \"handleChange\" | \"inputEl\" | \"clearInputOnSelect\"\n > {\n /** Set combobox in to loading state */\n loading?: boolean;\n /** Text to display while in loading state */\n loadingText?: string;\n /** onChange callback */\n onChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** Placeholder for Select input */\n placeholder?: string;\n /** disable Input element */\n disabled?: boolean;\n /** Combobox size */\n size?: InputSize;\n /** Invalid state */\n invalid?: boolean;\n /** Render Chip */\n renderChip?: <T extends IOptionItemProps>(\n item: T,\n key?: string | number\n ) => JSX.Element;\n /** Close menu on change */\n forceCloseMenu?: boolean;\n /** Limit chips */\n limitChips?: number;\n /** Hidden number text */\n hiddenNumberText?: (hidden: number) => string;\n /** Render Autocomplete in <Portal> */\n inPortal?: boolean;\n /** inputWrapperClassName */\n inputWrapperClassName?: string;\n /** scrollWrapper */\n scrollWrapper?: boolean;\n}\n\nexport const ComboBox: FC<IComboBoxProps> = ({\n options = [],\n selected,\n loading = false,\n loadingText,\n onChange,\n placeholder,\n handleEmptyAction,\n disabled = false,\n size = \"regular\",\n invalid = false,\n type = \"single\",\n renderChip,\n forceCloseMenu = type === \"single\",\n renderOption,\n limitChips = 2,\n hiddenNumberText,\n inPortal = false,\n inputWrapperClassName,\n scrollWrapper,\n ...prop\n}) => {\n const selectedName = useMemo(() => {\n let value = \"\";\n if (!selected) {\n return value;\n }\n options.map((v) => {\n if ((v as IOptionGroupProps)?.options) {\n return (v as IOptionGroupProps).options.find((q) => {\n if (q.id === selected) {\n value = q.name;\n return;\n }\n });\n } else {\n if (v.id === selected) {\n value = v.name;\n return;\n }\n }\n });\n return value;\n }, [options, selected]);\n const [value, setValue] = useState(selectedName);\n const handleOnChange = useCallback((e) => setValue(e.target.value), []);\n const [childNode, setChildNode] = useState<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(setChildNode, elementRef);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const chipWrapper = useRef<HTMLDivElement>(null);\n const comboBoxRef = useRef<HTMLDivElement | null>(null);\n\n const [open, setOpen] = useState(false);\n\n useOnClickOutside(wrapperRef, (e) => {\n if (e.target && comboBoxRef.current?.contains(e.target as Node)) {\n return;\n }\n setOpen(false);\n });\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (e.key === \"Escape\" && open) {\n setOpen(false);\n setValue(selectedName);\n e.stopPropagation();\n }\n if (e.key === \"Enter\" && type === \"multiple\") {\n setValue(\"\");\n }\n },\n [open, selectedName, type]\n );\n\n useEffect(() => {\n open && childNode?.focus();\n !open && childNode?.blur();\n }, [childNode, open]);\n\n useEffect(() => {\n setValue(selectedName);\n }, [selectedName]);\n\n const emptyAction = useCallback(\n (v) => {\n handleEmptyAction?.(v);\n setOpen(false);\n },\n [handleEmptyAction]\n );\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (selectedValue !== selected && typeof onChange === \"function\") {\n onChange(selectedValue);\n }\n if (forceCloseMenu) {\n setOpen(false);\n }\n },\n [forceCloseMenu, onChange, selected]\n );\n\n const onOpen = useCallback(() => {\n if (!disabled) {\n setOpen(true);\n }\n }, [disabled]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n if (type === \"multiple\") {\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <Checkbox {...props} />\n </>\n );\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <RadioButton {...props} />\n </>\n );\n },\n [type, renderOption]\n );\n\n const handleDeselect = useCallback(\n (e) => {\n e.stopPropagation();\n if (type === \"multiple\") {\n onChange?.([]);\n } else {\n onChange?.(\"\");\n }\n\n setOpen(false);\n },\n [type, onChange]\n );\n\n const handleMouseDown = useCallback((e) => {\n e.preventDefault();\n }, []);\n\n const handleBlur = useCallback(() => {\n setValue(selectedName);\n }, [selectedName]);\n\n const renderChipAdornment = useCallback(\n (option, index) => {\n if (typeof renderChip === \"function\") {\n return renderChip(option, index);\n }\n const avatarProps: Partial<AvatarProps> = {\n size: 18,\n };\n switch (size) {\n case \"big\":\n avatarProps.size = 22;\n break;\n case \"small\":\n avatarProps.size = 14;\n break;\n }\n const leftAdornment = option.image ? (\n <Avatar\n css={`\n ${tw`tw-my-0.5`}\n ${tw`tw-mr-0.5`}\n `}\n url={option.image}\n {...avatarProps}\n />\n ) : undefined;\n\n const onClose = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (Array.isArray(selected) && selected.includes(option.id)) {\n if (typeof onChange === \"function\") {\n const newSelected = selected.filter((item) => item !== option.id);\n onChange(newSelected);\n }\n }\n };\n\n let showOnClose = true;\n if (disabled) {\n showOnClose = false;\n }\n if (option.color) {\n showOnClose = false;\n }\n\n return (\n <Chip\n className=\"c-combo-box-chip\"\n leftAdornment={leftAdornment}\n label={option.name}\n key={index}\n backgroundColor={option.color}\n color=\"#303037\"\n onClose={showOnClose ? onClose : undefined}\n size={size}\n variant=\"Caption 2\"\n />\n );\n },\n [disabled, onChange, renderChip, selected, size]\n );\n\n const autoSize = useMemo(() => {\n if (\n type === \"multiple\" &&\n open &&\n Array.isArray(selected) &&\n selected.length > 1\n ) {\n return \"auto\";\n }\n return size;\n }, [open, selected, size, type]);\n\n const startAdornment = useMemo(() => {\n if (type === \"multiple\" && Array.isArray(selected) && selected.length > 0) {\n const elements: JSX.Element[] = [];\n let total = 0;\n options.forEach((option, index) => {\n const isGrouped = isOptionGroup(option);\n if (selected.includes(option.id) && !isGrouped) {\n total = total + 1;\n elements.push(renderChipAdornment(option, index));\n } else if (isGrouped) {\n const groupedOptions = option.options.filter((o) =>\n selected.includes(o.id)\n );\n total = total + groupedOptions.length;\n if (groupedOptions.length > 0) {\n groupedOptions.forEach((o, _index) => {\n elements.push(renderChipAdornment(o, `${index}_${_index}`));\n });\n }\n }\n });\n let hidden = 0;\n if (!open && limitChips > 0 && elements.length > limitChips) {\n hidden = elements.splice(\n limitChips,\n elements.length - limitChips\n ).length;\n }\n\n return (\n <Fragment>\n {elements}\n {hidden > 0 && (\n <Typography\n variant={\n size === \"small\"\n ? \"Caption 1\"\n : size === \"regular\"\n ? \"Body 2\"\n : \"Body 1\"\n }\n css={`\n display: flex;\n flex-shrink: 0;\n align-items: center;\n `}\n >\n {typeof hiddenNumberText === \"function\"\n ? hiddenNumberText(hidden)\n : `+${hidden}`}\n </Typography>\n )}\n </Fragment>\n );\n }\n return undefined;\n }, [\n type,\n selected,\n options,\n open,\n limitChips,\n hiddenNumberText,\n renderChipAdornment,\n size,\n ]);\n\n const showXIcon =\n Array.isArray(selected) && type === \"multiple\" && selected.length > 0;\n\n const hasSelected =\n type === \"multiple\" && Array.isArray(selected) && selected.length > 0;\n\n return (\n <div className=\"c-combo-box\">\n {type === \"multiple\" ? (\n <>\n <StyledInputWrapper\n $disabled={disabled}\n $size={size}\n $invalid={invalid}\n ref={comboBoxRef}\n css={`\n display: flex;\n justify-content: space-between;\n flex: 1;\n height: ${autoSize === \"auto\" ? \"auto\" : undefined};\n overflow-y: ${autoSize === \"auto\" && scrollWrapper\n ? \"scroll\"\n : undefined};\n max-height: ${autoSize === \"auto\" && scrollWrapper\n ? \"80px\"\n : undefined};\n `}\n className={classNames(\n \"c-combo-box-input-wrapper\",\n inputWrapperClassName\n )}\n onClick={() => {\n elementRef.current?.focus();\n }}\n >\n <StyledChipWrapper\n $autoSize={autoSize}\n $open={open}\n ref={chipWrapper}\n >\n {startAdornment}\n <StyledInput\n className=\"c-combo-box-input\"\n onBlur={handleBlur}\n onFocus={onOpen}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={!hasSelected ? placeholder : undefined}\n disabled={disabled}\n $size={size}\n $loading={loading}\n style={{\n display: \"flex\",\n flex: 1,\n alignSelf: \"center\",\n width: autoSize === \"auto\" ? \"auto\" : \"100%\",\n }}\n />\n </StyledChipWrapper>\n {!disabled && (\n <>\n {loading ? (\n <SpinnerLoader />\n ) : (\n <>\n {showXIcon && (\n <Trigger\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n data-testid=\"deselect-all\"\n css={`\n display: flex;\n justify-content: center;\n `}\n >\n <StyledComboBoxCloseSmallIcon />\n </Trigger>\n )}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </>\n )}\n </>\n )}\n </StyledInputWrapper>\n </>\n ) : (\n <StyledComboBoxInput\n className={classNames(\"c-combo-box-input\", inputWrapperClassName)}\n onBlur={handleBlur}\n onFocus={onOpen}\n wrapRef={comboBoxRef}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={placeholder}\n disabled={disabled}\n size={size}\n invalid={invalid}\n $loading={loading}\n startAdornment={startAdornment}\n endAdornment={\n !disabled ? (\n <InputAdornment disablePointerEvents={disabled}>\n {loading ? (\n <SpinnerLoader />\n ) : selected ? (\n <IconButton\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n variant=\"text gray\"\n size=\"small\"\n >\n <StyledComboBoxCloseSmallIcon />\n </IconButton>\n ) : null}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </InputAdornment>\n ) : null\n }\n />\n )}\n\n {!disabled ? (\n <ConditionalWrapper\n condition={inPortal}\n wrap={(children) => <Portal>{children}</Portal>}\n >\n <Popper\n anchorEl={comboBoxRef.current}\n open={open}\n placement=\"bottom\"\n style={{\n zIndex: 10,\n width: comboBoxRef.current?.clientWidth,\n }}\n ref={wrapperRef}\n strategy=\"fixed\"\n >\n <RemoveScroll noIsolation allowPinchZoom>\n <StyledComboBoxList $width={comboBoxRef.current?.clientWidth}>\n <Autocomplete\n {...prop}\n inputEl={childNode}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n type={type}\n handleEmptyAction={emptyAction}\n />\n </StyledComboBoxList>\n </RemoveScroll>\n </Popper>\n </ConditionalWrapper>\n ) : null}\n </div>\n );\n};\n\nComboBox.displayName = \"ComboBox\";\n"],"mappings":";;;;;;;;AAAA;AASA;AACA;AACA;AACA;AAIA;AACA;AAEA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAoC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA0C7B,IAAMA,QAA4B,GAAG,SAA/BA,QAA4B,OAqBnC;EAAA;EAAA,wBApBJC,OAAO;IAAPA,OAAO,6BAAG,EAAE;IACZC,QAAQ,QAARA,QAAQ;IAAA,oBACRC,OAAO;IAAPA,OAAO,6BAAG,KAAK;IACfC,WAAW,QAAXA,WAAW;IACXC,QAAQ,QAARA,QAAQ;IACRC,WAAW,QAAXA,WAAW;IACXC,iBAAiB,QAAjBA,iBAAiB;IAAA,qBACjBC,QAAQ;IAARA,QAAQ,8BAAG,KAAK;IAAA,iBAChBC,IAAI;IAAJA,IAAI,0BAAG,SAAS;IAAA,oBAChBC,OAAO;IAAPA,OAAO,6BAAG,KAAK;IAAA,iBACfC,IAAI;IAAJA,IAAI,0BAAG,QAAQ;IACfC,UAAU,QAAVA,UAAU;IAAA,2BACVC,cAAc;IAAdA,cAAc,oCAAGF,IAAI,KAAK,QAAQ;IAClCG,YAAY,QAAZA,YAAY;IAAA,uBACZC,UAAU;IAAVA,UAAU,gCAAG,CAAC;IACdC,gBAAgB,QAAhBA,gBAAgB;IAAA,qBAChBC,QAAQ;IAARA,QAAQ,8BAAG,KAAK;IAChBC,qBAAqB,QAArBA,qBAAqB;IACrBC,aAAa,QAAbA,aAAa;IACVC,IAAI;EAEP,IAAMC,YAAY,GAAG,IAAAC,cAAO,EAAC,YAAM;IACjC,IAAIC,KAAK,GAAG,EAAE;IACd,IAAI,CAACrB,QAAQ,EAAE;MACb,OAAOqB,KAAK;IACd;IACAtB,OAAO,CAACuB,GAAG,CAAC,UAACC,CAAC,EAAK;MACjB,IAAKA,CAAC,aAADA,CAAC,eAADA,CAAC,CAAwBxB,OAAO,EAAE;QACrC,OAAQwB,CAAC,CAAuBxB,OAAO,CAACyB,IAAI,CAAC,UAACC,CAAC,EAAK;UAClD,IAAIA,CAAC,CAACC,EAAE,KAAK1B,QAAQ,EAAE;YACrBqB,KAAK,GAAGI,CAAC,CAACE,IAAI;YACd;UACF;QACF,CAAC,CAAC;MACJ,CAAC,MAAM;QACL,IAAIJ,CAAC,CAACG,EAAE,KAAK1B,QAAQ,EAAE;UACrBqB,KAAK,GAAGE,CAAC,CAACI,IAAI;UACd;QACF;MACF;IACF,CAAC,CAAC;IACF,OAAON,KAAK;EACd,CAAC,EAAE,CAACtB,OAAO,EAAEC,QAAQ,CAAC,CAAC;EACvB,gBAA0B,IAAA4B,eAAQ,EAACT,YAAY,CAAC;IAAA;IAAzCE,KAAK;IAAEQ,QAAQ;EACtB,IAAMC,cAAc,GAAG,IAAAC,kBAAW,EAAC,UAACC,CAAC;IAAA,OAAKH,QAAQ,CAACG,CAAC,CAACC,MAAM,CAACZ,KAAK,CAAC;EAAA,GAAE,EAAE,CAAC;EACvE,iBAAkC,IAAAO,eAAQ,GAA2B;IAAA;IAA9DM,SAAS;IAAEC,YAAY;EAC9B,IAAMC,UAAU,GAAG,IAAAC,aAAM,EAA0B,IAAI,CAAC;EACxD,IAAMC,SAAS,GAAG,IAAAC,mBAAU,EAACJ,YAAY,EAAEC,UAAU,CAAC;EACtD,IAAMI,UAAU,GAAG,IAAAH,aAAM,EAAiB,IAAI,CAAC;EAC/C,IAAMI,WAAW,GAAG,IAAAJ,aAAM,EAAiB,IAAI,CAAC;EAChD,IAAMK,WAAW,GAAG,IAAAL,aAAM,EAAwB,IAAI,CAAC;EAEvD,iBAAwB,IAAAT,eAAQ,EAAC,KAAK,CAAC;IAAA;IAAhCe,IAAI;IAAEC,OAAO;EAEpB,IAAAC,oCAAiB,EAACL,UAAU,EAAE,UAACR,CAAC,EAAK;IAAA;IACnC,IAAIA,CAAC,CAACC,MAAM,4BAAIS,WAAW,CAACI,OAAO,iDAAnB,qBAAqBC,QAAQ,CAACf,CAAC,CAACC,MAAM,CAAS,EAAE;MAC/D;IACF;IACAW,OAAO,CAAC,KAAK,CAAC;EAChB,CAAC,CAAC;EAEF,IAAMI,eAAe,GAAG,IAAAjB,kBAAW,EACjC,UAACC,CAAC,EAAK;IACL,IAAIA,CAAC,CAACiB,GAAG,KAAK,QAAQ,IAAIN,IAAI,EAAE;MAC9BC,OAAO,CAAC,KAAK,CAAC;MACdf,QAAQ,CAACV,YAAY,CAAC;MACtBa,CAAC,CAACkB,eAAe,EAAE;IACrB;IACA,IAAIlB,CAAC,CAACiB,GAAG,KAAK,OAAO,IAAIxC,IAAI,KAAK,UAAU,EAAE;MAC5CoB,QAAQ,CAAC,EAAE,CAAC;IACd;EACF,CAAC,EACD,CAACc,IAAI,EAAExB,YAAY,EAAEV,IAAI,CAAC,CAC3B;EAED,IAAA0C,gBAAS,EAAC,YAAM;IACdR,IAAI,KAAIT,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEkB,KAAK,EAAE;IAC1B,CAACT,IAAI,KAAIT,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEmB,IAAI,EAAE;EAC5B,CAAC,EAAE,CAACnB,SAAS,EAAES,IAAI,CAAC,CAAC;EAErB,IAAAQ,gBAAS,EAAC,YAAM;IACdtB,QAAQ,CAACV,YAAY,CAAC;EACxB,CAAC,EAAE,CAACA,YAAY,CAAC,CAAC;EAElB,IAAMmC,WAAW,GAAG,IAAAvB,kBAAW,EAC7B,UAACR,CAAC,EAAK;IACLlB,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAGkB,CAAC,CAAC;IACtBqB,OAAO,CAAC,KAAK,CAAC;EAChB,CAAC,EACD,CAACvC,iBAAiB,CAAC,CACpB;EAED,IAAMkD,YAAY,GAAG,IAAAxB,kBAAW,EAC9B,UAACyB,aAAa,EAAK;IACjB,IAAIA,aAAa,KAAKxD,QAAQ,IAAI,OAAOG,QAAQ,KAAK,UAAU,EAAE;MAChEA,QAAQ,CAACqD,aAAa,CAAC;IACzB;IACA,IAAI7C,cAAc,EAAE;MAClBiC,OAAO,CAAC,KAAK,CAAC;IAChB;EACF,CAAC,EACD,CAACjC,cAAc,EAAER,QAAQ,EAAEH,QAAQ,CAAC,CACrC;EAED,IAAMyD,MAAM,GAAG,IAAA1B,kBAAW,EAAC,YAAM;IAC/B,IAAI,CAACzB,QAAQ,EAAE;MACbsC,OAAO,CAAC,IAAI,CAAC;IACf;EACF,CAAC,EAAE,CAACtC,QAAQ,CAAC,CAAC;EAEd,IAAMoD,kBAAkB,GAAG,IAAA3B,kBAAW,EACpC,UAAC4B,MAAM,EAAEC,KAAK,EAAK;IACjB,IAAI,OAAOhD,YAAY,KAAK,UAAU,EAAE;MACtC,OAAOA,YAAY,CAAC+C,MAAM,EAAEC,KAAK,CAAC;IACpC;IACA,IAAInD,IAAI,KAAK,UAAU,EAAE;MACvB,oBACE,yEACE,6BAAC,4BAAa;QACZ,QAAQ,EAAEkD,MAAM,CAACE,KAAM;QACvB,KAAK,EAAEF,MAAM,CAACG,KAAM;QACpB,SAAS,EAAEH,MAAM,CAACI,SAAU;QAC5B,IAAI,EAAEJ,MAAM,CAAChC;MAAK,EAClB,eACF,6BAAC,kBAAQ,EAAKiC,KAAK,CAAI,CACtB;IAEP;IACA,oBACE,yEACE,6BAAC,4BAAa;MACZ,QAAQ,EAAED,MAAM,CAACE,KAAM;MACvB,KAAK,EAAEF,MAAM,CAACG,KAAM;MACpB,SAAS,EAAEH,MAAM,CAACI,SAAU;MAC5B,IAAI,EAAEJ,MAAM,CAAChC;IAAK,EAClB,eACF,6BAAC,wBAAW,EAAKiC,KAAK,CAAI,CACzB;EAEP,CAAC,EACD,CAACnD,IAAI,EAAEG,YAAY,CAAC,CACrB;EAED,IAAMoD,cAAc,GAAG,IAAAjC,kBAAW,EAChC,UAACC,CAAC,EAAK;IACLA,CAAC,CAACkB,eAAe,EAAE;IACnB,IAAIzC,IAAI,KAAK,UAAU,EAAE;MACvBN,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAG,EAAE,CAAC;IAChB,CAAC,MAAM;MACLA,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAG,EAAE,CAAC;IAChB;IAEAyC,OAAO,CAAC,KAAK,CAAC;EAChB,CAAC,EACD,CAACnC,IAAI,EAAEN,QAAQ,CAAC,CACjB;EAED,IAAM8D,eAAe,GAAG,IAAAlC,kBAAW,EAAC,UAACC,CAAC,EAAK;IACzCA,CAAC,CAACkC,cAAc,EAAE;EACpB,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMC,UAAU,GAAG,IAAApC,kBAAW,EAAC,YAAM;IACnCF,QAAQ,CAACV,YAAY,CAAC;EACxB,CAAC,EAAE,CAACA,YAAY,CAAC,CAAC;EAElB,IAAMiD,mBAAmB,GAAG,IAAArC,kBAAW,EACrC,UAAC4B,MAAM,EAAEU,KAAK,EAAK;IACjB,IAAI,OAAO3D,UAAU,KAAK,UAAU,EAAE;MACpC,OAAOA,UAAU,CAACiD,MAAM,EAAEU,KAAK,CAAC;IAClC;IACA,IAAMC,WAAiC,GAAG;MACxC/D,IAAI,EAAE;IACR,CAAC;IACD,QAAQA,IAAI;MACV,KAAK,KAAK;QACR+D,WAAW,CAAC/D,IAAI,GAAG,EAAE;QACrB;MACF,KAAK,OAAO;QACV+D,WAAW,CAAC/D,IAAI,GAAG,EAAE;QACrB;IAAM;IAEV,IAAMgE,aAAa,GAAGZ,MAAM,CAACE,KAAK,gBAChC;MAKE,GAAG,EAAEF,MAAM,CAACE;IAAM,GACdS,WAAW;MAAA,OAJT;QAAA;QAAA;MAAU,CAAC;MAAA,QACX;QAAA;MAAU;IAAC,GAIjB,GACAE,SAAS;IAEb,IAAMC,OAAO,GAAG,SAAVA,OAAO,CAAIzC,CAAC,EAAK;MACrBA,CAAC,CAACkC,cAAc,EAAE;MAClBlC,CAAC,CAACkB,eAAe,EAAE;MACnB,IAAIwB,KAAK,CAACC,OAAO,CAAC3E,QAAQ,CAAC,IAAIA,QAAQ,CAAC4E,QAAQ,CAACjB,MAAM,CAACjC,EAAE,CAAC,EAAE;QAC3D,IAAI,OAAOvB,QAAQ,KAAK,UAAU,EAAE;UAClC,IAAM0E,WAAW,GAAG7E,QAAQ,CAAC8E,MAAM,CAAC,UAACC,IAAI;YAAA,OAAKA,IAAI,KAAKpB,MAAM,CAACjC,EAAE;UAAA,EAAC;UACjEvB,QAAQ,CAAC0E,WAAW,CAAC;QACvB;MACF;IACF,CAAC;IAED,IAAIG,WAAW,GAAG,IAAI;IACtB,IAAI1E,QAAQ,EAAE;MACZ0E,WAAW,GAAG,KAAK;IACrB;IACA,IAAIrB,MAAM,CAACG,KAAK,EAAE;MAChBkB,WAAW,GAAG,KAAK;IACrB;IAEA,oBACE,6BAAC,UAAI;MACH,SAAS,EAAC,kBAAkB;MAC5B,aAAa,EAAET,aAAc;MAC7B,KAAK,EAAEZ,MAAM,CAAChC,IAAK;MACnB,GAAG,EAAE0C,KAAM;MACX,eAAe,EAAEV,MAAM,CAACG,KAAM;MAC9B,KAAK,EAAC,SAAS;MACf,OAAO,EAAEkB,WAAW,GAAGP,OAAO,GAAGD,SAAU;MAC3C,IAAI,EAAEjE,IAAK;MACX,OAAO,EAAC;IAAW,EACnB;EAEN,CAAC,EACD,CAACD,QAAQ,EAAEH,QAAQ,EAAEO,UAAU,EAAEV,QAAQ,EAAEO,IAAI,CAAC,CACjD;EAED,IAAM0E,QAAQ,GAAG,IAAA7D,cAAO,EAAC,YAAM;IAC7B,IACEX,IAAI,KAAK,UAAU,IACnBkC,IAAI,IACJ+B,KAAK,CAACC,OAAO,CAAC3E,QAAQ,CAAC,IACvBA,QAAQ,CAACkF,MAAM,GAAG,CAAC,EACnB;MACA,OAAO,MAAM;IACf;IACA,OAAO3E,IAAI;EACb,CAAC,EAAE,CAACoC,IAAI,EAAE3C,QAAQ,EAAEO,IAAI,EAAEE,IAAI,CAAC,CAAC;EAEhC,IAAM0E,cAAc,GAAG,IAAA/D,cAAO,EAAC,YAAM;IACnC,IAAIX,IAAI,KAAK,UAAU,IAAIiE,KAAK,CAACC,OAAO,CAAC3E,QAAQ,CAAC,IAAIA,QAAQ,CAACkF,MAAM,GAAG,CAAC,EAAE;MACzE,IAAME,QAAuB,GAAG,EAAE;MAClC,IAAIC,KAAK,GAAG,CAAC;MACbtF,OAAO,CAACuF,OAAO,CAAC,UAAC3B,MAAM,EAAEU,KAAK,EAAK;QACjC,IAAMkB,SAAS,GAAG,IAAAC,4BAAa,EAAC7B,MAAM,CAAC;QACvC,IAAI3D,QAAQ,CAAC4E,QAAQ,CAACjB,MAAM,CAACjC,EAAE,CAAC,IAAI,CAAC6D,SAAS,EAAE;UAC9CF,KAAK,GAAGA,KAAK,GAAG,CAAC;UACjBD,QAAQ,CAACK,IAAI,CAACrB,mBAAmB,CAACT,MAAM,EAAEU,KAAK,CAAC,CAAC;QACnD,CAAC,MAAM,IAAIkB,SAAS,EAAE;UACpB,IAAMG,cAAc,GAAG/B,MAAM,CAAC5D,OAAO,CAAC+E,MAAM,CAAC,UAACa,CAAC;YAAA,OAC7C3F,QAAQ,CAAC4E,QAAQ,CAACe,CAAC,CAACjE,EAAE,CAAC;UAAA,EACxB;UACD2D,KAAK,GAAGA,KAAK,GAAGK,cAAc,CAACR,MAAM;UACrC,IAAIQ,cAAc,CAACR,MAAM,GAAG,CAAC,EAAE;YAC7BQ,cAAc,CAACJ,OAAO,CAAC,UAACK,CAAC,EAAEC,MAAM,EAAK;cACpCR,QAAQ,CAACK,IAAI,CAACrB,mBAAmB,CAACuB,CAAC,YAAKtB,KAAK,cAAIuB,MAAM,EAAG,CAAC;YAC7D,CAAC,CAAC;UACJ;QACF;MACF,CAAC,CAAC;MACF,IAAIC,OAAM,GAAG,CAAC;MACd,IAAI,CAAClD,IAAI,IAAI9B,UAAU,GAAG,CAAC,IAAIuE,QAAQ,CAACF,MAAM,GAAGrE,UAAU,EAAE;QAC3DgF,OAAM,GAAGT,QAAQ,CAACU,MAAM,CACtBjF,UAAU,EACVuE,QAAQ,CAACF,MAAM,GAAGrE,UAAU,CAC7B,CAACqE,MAAM;MACV;MAEA,oBACE,6BAAC,eAAQ,QACNE,QAAQ,EACRS,OAAM,GAAG,CAAC,iBACT;QACE,OAAO,EACLtF,IAAI,KAAK,OAAO,GACZ,WAAW,GACXA,IAAI,KAAK,SAAS,GAClB,QAAQ,GACR;MACL,GAOA,OAAOO,gBAAgB,KAAK,UAAU,GACnCA,gBAAgB,CAAC+E,OAAM,CAAC,cACpBA,OAAM,CAAE,CAEnB,CACQ;IAEf;IACA,OAAOrB,SAAS;EAClB,CAAC,EAAE,CACD/D,IAAI,EACJT,QAAQ,EACRD,OAAO,EACP4C,IAAI,EACJ9B,UAAU,EACVC,gBAAgB,EAChBsD,mBAAmB,EACnB7D,IAAI,CACL,CAAC;EAEF,IAAMwF,SAAS,GACbrB,KAAK,CAACC,OAAO,CAAC3E,QAAQ,CAAC,IAAIS,IAAI,KAAK,UAAU,IAAIT,QAAQ,CAACkF,MAAM,GAAG,CAAC;EAEvE,IAAMc,WAAW,GACfvF,IAAI,KAAK,UAAU,IAAIiE,KAAK,CAACC,OAAO,CAAC3E,QAAQ,CAAC,IAAIA,QAAQ,CAACkF,MAAM,GAAG,CAAC;EAEvE,oBACE;IAAK,SAAS,EAAC;EAAa,GACzBzE,IAAI,KAAK,UAAU,gBAClB,yEACE;IACE,SAAS,EAAEH,QAAS;IACpB,KAAK,EAAEC,IAAK;IACZ,QAAQ,EAAEC,OAAQ;IAClB,GAAG,EAAEkC,WAAY;IAajB,SAAS,EAAE,IAAAuD,mBAAU,EACnB,2BAA2B,EAC3BjF,qBAAqB,CACrB;IACF,OAAO,EAAE,mBAAM;MAAA;MACb,uBAAAoB,UAAU,CAACU,OAAO,wDAAlB,oBAAoBM,KAAK,EAAE;IAC7B,CAAE;IAAA,QAdU6B,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAGT,SAAS;IAAA,QACpCS,QAAQ,KAAK,MAAM,IAAIhE,aAAa,GAC9C,QAAQ,GACRuD,SAAS;IAAA,QACCS,QAAQ,KAAK,MAAM,IAAIhE,aAAa,GAC9C,MAAM,GACNuD;EAAS,gBAUf,6BAAC,yBAAiB;IAChB,SAAS,EAAES,QAAS;IACpB,KAAK,EAAEtC,IAAK;IACZ,GAAG,EAAEF;EAAY,GAEhB0C,cAAc,eACf,6BAAC,oBAAW;IACV,SAAS,EAAC,mBAAmB;IAC7B,MAAM,EAAEhB,UAAW;IACnB,OAAO,EAAEV,MAAO;IAChB,GAAG,EAAEnB,SAAU;IACf,KAAK,EAAErC,OAAO,IAAIC,WAAW,GAAGA,WAAW,GAAGmB,KAAM;IACpD,SAAS,EAAE2B,eAAgB;IAC3B,QAAQ,EAAElB,cAAe;IACzB,WAAW,EAAE,CAACkE,WAAW,GAAG5F,WAAW,GAAGoE,SAAU;IACpD,QAAQ,EAAElE,QAAS;IACnB,KAAK,EAAEC,IAAK;IACZ,QAAQ,EAAEN,OAAQ;IAClB,KAAK,EAAE;MACLiG,OAAO,EAAE,MAAM;MACfC,IAAI,EAAE,CAAC;MACPC,SAAS,EAAE,QAAQ;MACnBC,KAAK,EAAEpB,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG;IACxC;EAAE,EACF,CACgB,EACnB,CAAC3E,QAAQ,iBACR,4DACGL,OAAO,gBACN,6BAAC,4BAAa,OAAG,gBAEjB,4DACG8F,SAAS,iBACR;IACE,WAAW,EAAE9B,eAAgB;IAC7B,OAAO,EAAED,cAAe;IACxB,eAAY;EAAc,gBAM1B,6BAAC,oCAA4B,OAAG,CAEnC,eACD,6BAAC,8CAAsC;IAAC,KAAK,EAAErB;EAAK,EAAG,CAE1D,CAEJ,CACkB,CACpB,gBAEH,6BAAC,2BAAmB;IAClB,SAAS,EAAE,IAAAsD,mBAAU,EAAC,mBAAmB,EAAEjF,qBAAqB,CAAE;IAClE,MAAM,EAAEmD,UAAW;IACnB,OAAO,EAAEV,MAAO;IAChB,OAAO,EAAEf,WAAY;IACrB,GAAG,EAAEJ,SAAU;IACf,KAAK,EAAErC,OAAO,IAAIC,WAAW,GAAGA,WAAW,GAAGmB,KAAM;IACpD,SAAS,EAAE2B,eAAgB;IAC3B,QAAQ,EAAElB,cAAe;IACzB,WAAW,EAAE1B,WAAY;IACzB,QAAQ,EAAEE,QAAS;IACnB,IAAI,EAAEC,IAAK;IACX,OAAO,EAAEC,OAAQ;IACjB,QAAQ,EAAEP,OAAQ;IAClB,cAAc,EAAEkF,cAAe;IAC/B,YAAY,EACV,CAAC7E,QAAQ,gBACP,6BAAC,8BAAc;MAAC,oBAAoB,EAAEA;IAAS,GAC5CL,OAAO,gBACN,6BAAC,4BAAa,OAAG,GACfD,QAAQ,gBACV,6BAAC,sBAAU;MACT,WAAW,EAAEiE,eAAgB;MAC7B,OAAO,EAAED,cAAe;MACxB,OAAO,EAAC,WAAW;MACnB,IAAI,EAAC;IAAO,gBAEZ,6BAAC,oCAA4B,OAAG,CACrB,GACX,IAAI,eACR,6BAAC,8CAAsC;MAAC,KAAK,EAAErB;IAAK,EAAG,CACxC,GACf;EACL,EAEJ,EAEA,CAACrC,QAAQ,gBACR,6BAAC,oCAAkB;IACjB,SAAS,EAAES,QAAS;IACpB,IAAI,EAAE,cAACuF,QAAQ;MAAA,oBAAK,6BAAC,eAAM,QAAEA,QAAQ,CAAU;IAAA;EAAC,gBAEhD,6BAAC,cAAM;IACL,QAAQ,EAAE5D,WAAW,CAACI,OAAQ;IAC9B,IAAI,EAAEH,IAAK;IACX,SAAS,EAAC,QAAQ;IAClB,KAAK,EAAE;MACL4D,MAAM,EAAE,EAAE;MACVF,KAAK,2BAAE3D,WAAW,CAACI,OAAO,0DAAnB,sBAAqB0D;IAC9B,CAAE;IACF,GAAG,EAAEhE,UAAW;IAChB,QAAQ,EAAC;EAAO,gBAEhB,6BAAC,+BAAY;IAAC,WAAW;IAAC,cAAc;EAAA,gBACtC,6BAAC,0BAAkB;IAAC,MAAM,2BAAEE,WAAW,CAACI,OAAO,0DAAnB,sBAAqB0D;EAAY,gBAC3D,6BAAC,0BAAY,eACPtF,IAAI;IACR,OAAO,EAAEgB,SAAU;IACnB,QAAQ,EAAElC,QAAS;IACnB,YAAY,EAAEuD,YAAa;IAC3B,YAAY,EAAEG,kBAAmB;IACjC,OAAO,EAAE3D,OAAQ;IACjB,IAAI,EAAEU,IAAK;IACX,iBAAiB,EAAE6C;EAAY,GAC/B,CACiB,CACR,CACR,CACU,GACnB,IAAI,CACJ;AAEV,CAAC;AAAC;AAEFxD,QAAQ,CAAC2G,WAAW,GAAG,UAAU;AAAC;EAAA;EAAA;AAAA;EAAA;AAAA;EAAA;AAAA;AAAA;EAAA;EAAA;AAAA;AAAA;EAAA;EAAA;AAAA;EAAA;AAAA;EAAA;AAAA;EAAA;AAAA;AAAA;EAAA;EAAA;AAAA"}
@@ -30,6 +30,7 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
30
30
  * )
31
31
  * @see
32
32
  * https://system.activecollab.com/?path=/story/components-button-indicators-button--icon-button
33
+ * https://design.activecollab.com/docs/components/button
33
34
  */
34
35
 
35
36
  var IconButton = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {