@activecollab/components 2.0.350 → 2.0.351

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 (42) hide show
  1. package/dist/cjs/components/Autocomplete/Autocomplete.js +2 -0
  2. package/dist/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  3. package/dist/cjs/components/Select/Option/Option.js.map +1 -1
  4. package/dist/cjs/components/Select/OptionContent/OptionContent.js +6 -2
  5. package/dist/cjs/components/Select/OptionContent/OptionContent.js.map +1 -1
  6. package/dist/cjs/components/Select/OptionContent/Styles.js +8 -3
  7. package/dist/cjs/components/Select/OptionContent/Styles.js.map +1 -1
  8. package/dist/cjs/components/Select/OptionGroup/OptionGroup.js +6 -2
  9. package/dist/cjs/components/Select/OptionGroup/OptionGroup.js.map +1 -1
  10. package/dist/cjs/components/Select/OptionGroup/Styles.js +13 -3
  11. package/dist/cjs/components/Select/OptionGroup/Styles.js.map +1 -1
  12. package/dist/cjs/components/Select/Select.js +4 -0
  13. package/dist/cjs/components/Select/Select.js.map +1 -1
  14. package/dist/esm/components/Autocomplete/Autocomplete.d.ts.map +1 -1
  15. package/dist/esm/components/Autocomplete/Autocomplete.js +2 -0
  16. package/dist/esm/components/Autocomplete/Autocomplete.js.map +1 -1
  17. package/dist/esm/components/Select/Option/Option.d.ts +2 -0
  18. package/dist/esm/components/Select/Option/Option.d.ts.map +1 -1
  19. package/dist/esm/components/Select/Option/Option.js.map +1 -1
  20. package/dist/esm/components/Select/OptionContent/OptionContent.d.ts +3 -1
  21. package/dist/esm/components/Select/OptionContent/OptionContent.d.ts.map +1 -1
  22. package/dist/esm/components/Select/OptionContent/OptionContent.js +7 -3
  23. package/dist/esm/components/Select/OptionContent/OptionContent.js.map +1 -1
  24. package/dist/esm/components/Select/OptionContent/Styles.d.ts +1 -0
  25. package/dist/esm/components/Select/OptionContent/Styles.d.ts.map +1 -1
  26. package/dist/esm/components/Select/OptionContent/Styles.js +7 -2
  27. package/dist/esm/components/Select/OptionContent/Styles.js.map +1 -1
  28. package/dist/esm/components/Select/OptionGroup/OptionGroup.d.ts.map +1 -1
  29. package/dist/esm/components/Select/OptionGroup/OptionGroup.js +7 -3
  30. package/dist/esm/components/Select/OptionGroup/OptionGroup.js.map +1 -1
  31. package/dist/esm/components/Select/OptionGroup/Styles.d.ts +2 -0
  32. package/dist/esm/components/Select/OptionGroup/Styles.d.ts.map +1 -1
  33. package/dist/esm/components/Select/OptionGroup/Styles.js +12 -2
  34. package/dist/esm/components/Select/OptionGroup/Styles.js.map +1 -1
  35. package/dist/esm/components/Select/Select.d.ts.map +1 -1
  36. package/dist/esm/components/Select/Select.js +4 -0
  37. package/dist/esm/components/Select/Select.js.map +1 -1
  38. package/dist/index.js +37 -8
  39. package/dist/index.js.map +1 -1
  40. package/dist/index.min.js +1 -1
  41. package/dist/index.min.js.map +1 -1
  42. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Styles.js","names":["styled","css","Body2","StyledOptionContentWrapper","div","withConfig","displayName","componentId","StyledOptionIndicator","props","backgroundColor","children","StyledOptionText","textColor","StyledAdditionalInfo","span"],"sources":["../../../../../src/components/Select/OptionContent/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\nimport tw from \"twin.macro\";\n\nimport { Body2 } from \"../../Typography\";\n\nexport const StyledOptionContentWrapper = styled.div`\n display: flex;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n align-items: center;\n height: 100%;\n flex-grow: 1;\n`;\n\nStyledOptionContentWrapper.displayName = \"StyledOptionContentWrapper\";\n\nexport const StyledOptionIndicator = styled.div<{ backgroundColor?: string }>`\n height: 24px;\n width: 24px;\n border-radius: 100%;\n margin-right: 8px;\n flex-shrink: 0;\n ${(props) =>\n props.backgroundColor &&\n !props.children &&\n css`\n background-color: ${props.backgroundColor};\n `}\n`;\n\nStyledOptionIndicator.displayName = \"StyledOptionIndicator\";\n\nexport const StyledOptionText = styled(Body2)<{ textColor?: string }>`\n ${tw`tw-truncate`}\n flex-grow: 1;\n line-height: 28px;\n padding-right: 10px;\n ${(props) =>\n props.textColor &&\n css`\n color: ${props.textColor};\n `}\n`;\n\nStyledOptionText.displayName = \"StyledOptionText\";\n\nexport const StyledAdditionalInfo = styled.span`\n margin: 0 0 0 5px;\n line-height: 18px;\n flex-shrink: 0;\n`;\n\nStyledAdditionalInfo.displayName = \"StyledAdditionalInfo\";\n"],"mappings":"AAAA,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAG/C,SAASC,KAAK,QAAQ,kBAAkB;AAExC,OAAO,MAAMC,0BAA0B,GAAGH,MAAM,CAACI,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,0HAQnD;AAEDJ,0BAA0B,CAACG,WAAW,GAAG,4BAA4B;AAErE,OAAO,MAAME,qBAAqB,GAAGR,MAAM,CAACI,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,sFAM1CE,KAAK,IACNA,KAAK,CAACC,eAAe,IACrB,CAACD,KAAK,CAACE,QAAQ,IACfV,GAAG,6BACmBQ,KAAK,CAACC,eAAe,CAC1C,CACJ;AAEDF,qBAAqB,CAACF,WAAW,GAAG,uBAAuB;AAE3D,OAAO,MAAMM,gBAAgB,GAAGZ,MAAM,CAACE,KAAK,CAAC,CAAAG,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,kEACvC;EAAA;EAAA;EAAA;AAAY,CAAC,EAIdE,KAAK,IACNA,KAAK,CAACI,SAAS,IACfZ,GAAG,kBACQQ,KAAK,CAACI,SAAS,CACzB,CACJ;AAEDD,gBAAgB,CAACN,WAAW,GAAG,kBAAkB;AAEjD,OAAO,MAAMQ,oBAAoB,GAAGd,MAAM,CAACe,IAAI,CAAAV,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,wDAI9C;AAEDO,oBAAoB,CAACR,WAAW,GAAG,sBAAsB","ignoreList":[]}
1
+ {"version":3,"file":"Styles.js","names":["styled","css","Body2","StyledOptionContentWrapper","div","withConfig","displayName","componentId","StyledOptionIndicator","props","backgroundColor","children","StyledOptionIcon","span","StyledOptionText","textColor","StyledAdditionalInfo"],"sources":["../../../../../src/components/Select/OptionContent/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\nimport tw from \"twin.macro\";\n\nimport { Body2 } from \"../../Typography\";\n\nexport const StyledOptionContentWrapper = styled.div`\n display: flex;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n align-items: center;\n height: 100%;\n flex-grow: 1;\n`;\n\nStyledOptionContentWrapper.displayName = \"StyledOptionContentWrapper\";\n\nexport const StyledOptionIndicator = styled.div<{ backgroundColor?: string }>`\n height: 24px;\n width: 24px;\n border-radius: 100%;\n margin-right: 8px;\n flex-shrink: 0;\n ${(props) =>\n props.backgroundColor &&\n !props.children &&\n css`\n background-color: ${props.backgroundColor};\n `}\n`;\n\nStyledOptionIndicator.displayName = \"StyledOptionIndicator\";\n\nexport const StyledOptionIcon = styled.span`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n margin-right: 8px;\n flex-shrink: 0;\n color: currentColor;\n\n svg {\n width: 16px;\n height: 16px;\n }\n`;\n\nStyledOptionIcon.displayName = \"StyledOptionIcon\";\n\nexport const StyledOptionText = styled(Body2)<{ textColor?: string }>`\n ${tw`tw-truncate`}\n flex-grow: 1;\n line-height: 28px;\n padding-right: 10px;\n ${(props) =>\n props.textColor &&\n css`\n color: ${props.textColor};\n `}\n`;\n\nStyledOptionText.displayName = \"StyledOptionText\";\n\nexport const StyledAdditionalInfo = styled.span`\n margin: 0 0 0 5px;\n line-height: 18px;\n flex-shrink: 0;\n`;\n\nStyledAdditionalInfo.displayName = \"StyledAdditionalInfo\";\n"],"mappings":"AAAA,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAG/C,SAASC,KAAK,QAAQ,kBAAkB;AAExC,OAAO,MAAMC,0BAA0B,GAAGH,MAAM,CAACI,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,0HAQnD;AAEDJ,0BAA0B,CAACG,WAAW,GAAG,4BAA4B;AAErE,OAAO,MAAME,qBAAqB,GAAGR,MAAM,CAACI,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,sFAM1CE,KAAK,IACNA,KAAK,CAACC,eAAe,IACrB,CAACD,KAAK,CAACE,QAAQ,IACfV,GAAG,6BACmBQ,KAAK,CAACC,eAAe,CAC1C,CACJ;AAEDF,qBAAqB,CAACF,WAAW,GAAG,uBAAuB;AAE3D,OAAO,MAAMM,gBAAgB,GAAGZ,MAAM,CAACa,IAAI,CAAAR,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,2KAc1C;AAEDK,gBAAgB,CAACN,WAAW,GAAG,kBAAkB;AAEjD,OAAO,MAAMQ,gBAAgB,GAAGd,MAAM,CAACE,KAAK,CAAC,CAAAG,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,kEACvC;EAAA;EAAA;EAAA;AAAY,CAAC,EAIdE,KAAK,IACNA,KAAK,CAACM,SAAS,IACfd,GAAG,kBACQQ,KAAK,CAACM,SAAS,CACzB,CACJ;AAEDD,gBAAgB,CAACR,WAAW,GAAG,kBAAkB;AAEjD,OAAO,MAAMU,oBAAoB,GAAGhB,MAAM,CAACa,IAAI,CAAAR,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,wDAI9C;AAEDS,oBAAoB,CAACV,WAAW,GAAG,sBAAsB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"OptionGroup.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/OptionGroup/OptionGroup.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAmC,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAY9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,yBAAyB;IACzB,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED,UAAU,2BAA2B;IACnC,sCAAsC;IACtC,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC7B,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC/B,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,OAAO,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC7B,2BAA2B;IAC3B,YAAY,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAClC,wBAAwB;IACxB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC;IAC5C,mCAAmC;IACnC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACpD,sBAAsB;IACtB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;IACrE,uCAAuC;IACvC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,WAAW,EAAE,EAAE,CAC1B,iBAAiB,GAAG,2BAA2B,CA8FhD,CAAC"}
1
+ {"version":3,"file":"OptionGroup.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/OptionGroup/OptionGroup.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAmC,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAc9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,yBAAyB;IACzB,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED,UAAU,2BAA2B;IACnC,sCAAsC;IACtC,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC7B,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC/B,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,OAAO,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC7B,2BAA2B;IAC3B,YAAY,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAClC,wBAAwB;IACxB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC;IAC5C,mCAAmC;IACnC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACpD,sBAAsB;IACtB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;IACrE,uCAAuC;IACvC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,WAAW,EAAE,EAAE,CAC1B,iBAAiB,GAAG,2BAA2B,CAyGhD,CAAC"}
@@ -1,10 +1,11 @@
1
1
  import React, { useCallback, useEffect, useMemo } from "react";
2
2
  import classNames from "classnames";
3
- import { StyledOptionGroup, StyledOptionGroupHeader, StyledOptionGroupOption, StyledOptionGroupLi, StyledOptionGroupHeaderName } from "./Styles";
3
+ import { StyledOptionGroup, StyledOptionGroupHeader, StyledOptionGroupHeaderLabel, StyledOptionGroupIcon, StyledOptionGroupOption, StyledOptionGroupLi, StyledOptionGroupHeaderName } from "./Styles";
4
4
  import { Checkbox } from "../../Checkbox/Checkbox";
5
5
  export const OptionGroup = _ref => {
6
6
  let id = _ref.id,
7
7
  name = _ref.name,
8
+ icon = _ref.icon,
8
9
  options = _ref.options,
9
10
  type = _ref.type,
10
11
  hover = _ref.hover,
@@ -55,9 +56,12 @@ export const OptionGroup = _ref => {
55
56
  }, /*#__PURE__*/React.createElement(StyledOptionGroupOption, {
56
57
  onMouseEnter: handleHover,
57
58
  hover: hover === id && type === "multiple"
58
- }, /*#__PURE__*/React.createElement(StyledOptionGroupHeader, null, /*#__PURE__*/React.createElement(StyledOptionGroupHeaderName, {
59
+ }, /*#__PURE__*/React.createElement(StyledOptionGroupHeader, null, /*#__PURE__*/React.createElement(StyledOptionGroupHeaderLabel, null, icon ? /*#__PURE__*/React.createElement(StyledOptionGroupIcon, {
60
+ className: "c-option-group--icon",
61
+ "aria-hidden": "true"
62
+ }, icon) : null, /*#__PURE__*/React.createElement(StyledOptionGroupHeaderName, {
59
63
  weight: "bold"
60
- }, name), type === "multiple" && /*#__PURE__*/React.createElement(Checkbox, {
64
+ }, name)), type === "multiple" && /*#__PURE__*/React.createElement(Checkbox, {
61
65
  id: "" + id,
62
66
  checked: isAllOptionsChecked,
63
67
  mixed: isMixed,
@@ -1 +1 @@
1
- {"version":3,"file":"OptionGroup.js","names":["React","useCallback","useEffect","useMemo","classNames","StyledOptionGroup","StyledOptionGroupHeader","StyledOptionGroupOption","StyledOptionGroupLi","StyledOptionGroupHeaderName","Checkbox","OptionGroup","_ref","id","name","options","type","hover","checked","onChange","setHover","optionGroupClassName","_ref$mixedOptions","mixedOptions","_document$getElementB","document","getElementById","focus","isAllOptionsChecked","every","option","includes","handleHover","undefined","allOptionValues","map","isMixed","some","item","handleClick","e","stopPropagation","preventDefault","filter","i","values","unique","pos","indexOf","createElement","key","className","onClick","onMouseEnter","weight","mixed","displayName"],"sources":["../../../../../src/components/Select/OptionGroup/OptionGroup.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, FC, ReactNode } from \"react\";\n\nimport classNames from \"classnames\";\n\nimport {\n StyledOptionGroup,\n StyledOptionGroupHeader,\n StyledOptionGroupOption,\n StyledOptionGroupLi,\n StyledOptionGroupHeaderName,\n} from \"./Styles\";\nimport { Checkbox } from \"../../Checkbox/Checkbox\";\nimport { IOptionItemProps } from \"../Option/Option\";\n\nexport interface IOptionGroupProps extends IOptionItemProps {\n /** Options items list */\n options: IOptionItemProps[];\n}\n\ninterface IAdditionalOptionGroupProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** Value of hovered element */\n hover?: number | string | null;\n /** Filter for labels */\n filter?: string;\n /** Checked values */\n checked: (string | number)[];\n /** Mixed options values */\n mixedOptions: (string | number)[];\n /** onChange callback */\n onChange?: (e: (string | number)[]) => void;\n /** Set value of hovered element */\n setHover?: (e: number | string | undefined) => void;\n /** Render function */\n renderOptions?: (item: IOptionItemProps, index: number) => ReactNode;\n /** Value that represent class names */\n optionGroupClassName?: string;\n}\n\nexport const OptionGroup: FC<\n IOptionGroupProps & IAdditionalOptionGroupProps\n> = ({\n id,\n name,\n options,\n type,\n hover,\n checked,\n onChange,\n setHover,\n optionGroupClassName,\n mixedOptions = [],\n}) => {\n useEffect(() => {\n if (hover === id && type !== \"single\") {\n document.getElementById(`${id}`)?.focus();\n }\n }, [hover, type, id]);\n\n const isAllOptionsChecked = useMemo(\n () => options.every((option) => checked.includes(option.id)),\n [options, checked]\n );\n\n const handleHover = useCallback(() => {\n if (setHover) {\n setHover(type === \"single\" ? undefined : id);\n }\n }, [setHover, type, id]);\n\n const allOptionValues = useMemo(\n () => options.map((option) => option.id),\n [options]\n );\n\n const isMixed: boolean = useMemo(() => {\n return (\n (options.some((option) => checked.includes(option.id)) ||\n mixedOptions.some((item) => allOptionValues.includes(item))) &&\n !isAllOptionsChecked\n );\n }, [allOptionValues, checked, isAllOptionsChecked, mixedOptions, options]);\n\n const handleClick = useCallback(\n (e) => {\n e.stopPropagation();\n e.preventDefault();\n if (onChange && type !== \"single\") {\n if (isAllOptionsChecked) {\n onChange(\n checked.filter((i) => allOptionValues.includes(i) === false)\n );\n } else {\n const values = [...checked, ...allOptionValues];\n const unique = values.filter((item, pos) => {\n return values.indexOf(item) === pos;\n });\n onChange(unique);\n }\n }\n },\n [allOptionValues, checked, isAllOptionsChecked, onChange, type]\n );\n\n return (\n <StyledOptionGroupLi\n key={id}\n type={type}\n className={classNames(\"c-option-group\", optionGroupClassName)}\n onClick={handleClick}\n >\n <StyledOptionGroup key={id}>\n <StyledOptionGroupOption\n onMouseEnter={handleHover}\n hover={hover === id && type === \"multiple\"}\n >\n <StyledOptionGroupHeader>\n <StyledOptionGroupHeaderName weight=\"bold\">\n {name}\n </StyledOptionGroupHeaderName>\n {type === \"multiple\" && (\n <Checkbox\n id={`${id}`}\n checked={isAllOptionsChecked}\n mixed={isMixed}\n onChange={handleClick}\n type=\"checkbox\"\n />\n )}\n </StyledOptionGroupHeader>\n </StyledOptionGroupOption>\n </StyledOptionGroup>\n </StyledOptionGroupLi>\n );\n};\n\nOptionGroup.displayName = \"OptionGroup\";\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"OptionGroup.js","names":["React","useCallback","useEffect","useMemo","classNames","StyledOptionGroup","StyledOptionGroupHeader","StyledOptionGroupHeaderLabel","StyledOptionGroupIcon","StyledOptionGroupOption","StyledOptionGroupLi","StyledOptionGroupHeaderName","Checkbox","OptionGroup","_ref","id","name","icon","options","type","hover","checked","onChange","setHover","optionGroupClassName","_ref$mixedOptions","mixedOptions","_document$getElementB","document","getElementById","focus","isAllOptionsChecked","every","option","includes","handleHover","undefined","allOptionValues","map","isMixed","some","item","handleClick","e","stopPropagation","preventDefault","filter","i","values","unique","pos","indexOf","createElement","key","className","onClick","onMouseEnter","weight","mixed","displayName"],"sources":["../../../../../src/components/Select/OptionGroup/OptionGroup.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, FC, ReactNode } from \"react\";\n\nimport classNames from \"classnames\";\n\nimport {\n StyledOptionGroup,\n StyledOptionGroupHeader,\n StyledOptionGroupHeaderLabel,\n StyledOptionGroupIcon,\n StyledOptionGroupOption,\n StyledOptionGroupLi,\n StyledOptionGroupHeaderName,\n} from \"./Styles\";\nimport { Checkbox } from \"../../Checkbox/Checkbox\";\nimport { IOptionItemProps } from \"../Option/Option\";\n\nexport interface IOptionGroupProps extends IOptionItemProps {\n /** Options items list */\n options: IOptionItemProps[];\n}\n\ninterface IAdditionalOptionGroupProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** Value of hovered element */\n hover?: number | string | null;\n /** Filter for labels */\n filter?: string;\n /** Checked values */\n checked: (string | number)[];\n /** Mixed options values */\n mixedOptions: (string | number)[];\n /** onChange callback */\n onChange?: (e: (string | number)[]) => void;\n /** Set value of hovered element */\n setHover?: (e: number | string | undefined) => void;\n /** Render function */\n renderOptions?: (item: IOptionItemProps, index: number) => ReactNode;\n /** Value that represent class names */\n optionGroupClassName?: string;\n}\n\nexport const OptionGroup: FC<\n IOptionGroupProps & IAdditionalOptionGroupProps\n> = ({\n id,\n name,\n icon,\n options,\n type,\n hover,\n checked,\n onChange,\n setHover,\n optionGroupClassName,\n mixedOptions = [],\n}) => {\n useEffect(() => {\n if (hover === id && type !== \"single\") {\n document.getElementById(`${id}`)?.focus();\n }\n }, [hover, type, id]);\n\n const isAllOptionsChecked = useMemo(\n () => options.every((option) => checked.includes(option.id)),\n [options, checked]\n );\n\n const handleHover = useCallback(() => {\n if (setHover) {\n setHover(type === \"single\" ? undefined : id);\n }\n }, [setHover, type, id]);\n\n const allOptionValues = useMemo(\n () => options.map((option) => option.id),\n [options]\n );\n\n const isMixed: boolean = useMemo(() => {\n return (\n (options.some((option) => checked.includes(option.id)) ||\n mixedOptions.some((item) => allOptionValues.includes(item))) &&\n !isAllOptionsChecked\n );\n }, [allOptionValues, checked, isAllOptionsChecked, mixedOptions, options]);\n\n const handleClick = useCallback(\n (e) => {\n e.stopPropagation();\n e.preventDefault();\n if (onChange && type !== \"single\") {\n if (isAllOptionsChecked) {\n onChange(\n checked.filter((i) => allOptionValues.includes(i) === false)\n );\n } else {\n const values = [...checked, ...allOptionValues];\n const unique = values.filter((item, pos) => {\n return values.indexOf(item) === pos;\n });\n onChange(unique);\n }\n }\n },\n [allOptionValues, checked, isAllOptionsChecked, onChange, type]\n );\n\n return (\n <StyledOptionGroupLi\n key={id}\n type={type}\n className={classNames(\"c-option-group\", optionGroupClassName)}\n onClick={handleClick}\n >\n <StyledOptionGroup key={id}>\n <StyledOptionGroupOption\n onMouseEnter={handleHover}\n hover={hover === id && type === \"multiple\"}\n >\n <StyledOptionGroupHeader>\n <StyledOptionGroupHeaderLabel>\n {icon ? (\n <StyledOptionGroupIcon\n className=\"c-option-group--icon\"\n aria-hidden=\"true\"\n >\n {icon}\n </StyledOptionGroupIcon>\n ) : null}\n <StyledOptionGroupHeaderName weight=\"bold\">\n {name}\n </StyledOptionGroupHeaderName>\n </StyledOptionGroupHeaderLabel>\n {type === \"multiple\" && (\n <Checkbox\n id={`${id}`}\n checked={isAllOptionsChecked}\n mixed={isMixed}\n onChange={handleClick}\n type=\"checkbox\"\n />\n )}\n </StyledOptionGroupHeader>\n </StyledOptionGroupOption>\n </StyledOptionGroup>\n </StyledOptionGroupLi>\n );\n};\n\nOptionGroup.displayName = \"OptionGroup\";\n"],"mappings":"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","ignoreList":[]}
@@ -3,6 +3,8 @@ export declare const StyledOptionGroupLi: import("styled-components").StyledComp
3
3
  }, never>;
4
4
  export declare const StyledOptionGroup: import("styled-components").StyledComponent<"div", any, {}, never>;
5
5
  export declare const StyledOptionGroupHeader: import("styled-components").StyledComponent<"div", any, {}, never>;
6
+ export declare const StyledOptionGroupHeaderLabel: import("styled-components").StyledComponent<"div", any, {}, never>;
7
+ export declare const StyledOptionGroupIcon: import("styled-components").StyledComponent<"span", any, {}, never>;
6
8
  export declare const StyledOptionGroupHeaderName: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("../..").IBodyProps & Omit<import("../../Typography/Typography").ITypographyProps, "variant" | "weight"> & import("react").RefAttributes<HTMLDivElement>>, any, {}, never>;
7
9
  export declare const StyledOptionGroupOption: import("styled-components").StyledComponent<"div", any, {
8
10
  hover?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/OptionGroup/Styles.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,mBAAmB;WAAsB,QAAQ,GAAG,UAAU;SAG1E,CAAC;AACF,eAAO,MAAM,iBAAiB,oEAI7B,CAAC;AAIF,eAAO,MAAM,uBAAuB,oEAUnC,CAAC;AAIF,eAAO,MAAM,2BAA2B,yQAKvC,CAAC;AAIF,eAAO,MAAM,uBAAuB;YAAwB,OAAO;SAMlE,CAAC"}
1
+ {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/OptionGroup/Styles.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,mBAAmB;WAAsB,QAAQ,GAAG,UAAU;SAG1E,CAAC;AACF,eAAO,MAAM,iBAAiB,oEAI7B,CAAC;AAIF,eAAO,MAAM,uBAAuB,oEAUnC,CAAC;AAIF,eAAO,MAAM,4BAA4B,oEAKxC,CAAC;AAIF,eAAO,MAAM,qBAAqB,qEAcjC,CAAC;AAIF,eAAO,MAAM,2BAA2B,yQAKvC,CAAC;AAIF,eAAO,MAAM,uBAAuB;YAAwB,OAAO;SAMlE,CAAC"}
@@ -18,14 +18,24 @@ export const StyledOptionGroupHeader = styled.div.withConfig({
18
18
  componentId: "sc-16v5afu-2"
19
19
  })(["height:28px;display:flex;justify-content:space-between;align-items:center;padding:0 16px;margin:6px 0;*{margin:auto 0;}"]);
20
20
  StyledOptionGroupHeader.displayName = "StyledOptionGroupHeader";
21
+ export const StyledOptionGroupHeaderLabel = styled.div.withConfig({
22
+ displayName: "Styles__StyledOptionGroupHeaderLabel",
23
+ componentId: "sc-16v5afu-3"
24
+ })(["display:flex;align-items:center;min-width:0;flex-grow:1;"]);
25
+ StyledOptionGroupHeaderLabel.displayName = "StyledOptionGroupHeaderLabel";
26
+ export const StyledOptionGroupIcon = styled.span.withConfig({
27
+ displayName: "Styles__StyledOptionGroupIcon",
28
+ componentId: "sc-16v5afu-4"
29
+ })(["display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-right:8px;flex-shrink:0;color:currentColor;svg{width:16px;height:16px;}"]);
30
+ StyledOptionGroupIcon.displayName = "StyledOptionGroupIcon";
21
31
  export const StyledOptionGroupHeaderName = styled(Body2).withConfig({
22
32
  displayName: "Styles__StyledOptionGroupHeaderName",
23
- componentId: "sc-16v5afu-3"
33
+ componentId: "sc-16v5afu-5"
24
34
  })(["padding-right:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;"]);
25
35
  StyledOptionGroupHeaderName.displayName = "StyledOptionGroupHeaderName";
26
36
  export const StyledOptionGroupOption = styled.div.withConfig({
27
37
  displayName: "Styles__StyledOptionGroupOption",
28
- componentId: "sc-16v5afu-4"
38
+ componentId: "sc-16v5afu-6"
29
39
  })(["", ""], props => props.hover && css(["background-color:var(--color-theme-200);"]));
30
40
  StyledOptionGroupOption.displayName = "StyledOptionGroupOption";
31
41
  //# sourceMappingURL=Styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Styles.js","names":["styled","css","BoxSizingStyle","FontStyle","Body2","StyledOptionGroupLi","li","withConfig","displayName","componentId","props","type","StyledOptionGroup","div","StyledOptionGroupHeader","StyledOptionGroupHeaderName","StyledOptionGroupOption","hover"],"sources":["../../../../../src/components/Select/OptionGroup/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\nimport tw from \"twin.macro\";\n\nimport { BoxSizingStyle } from \"../../BoxSizingStyle\";\nimport { FontStyle } from \"../../FontStyle\";\nimport { Body2 } from \"../../Typography\";\n\nexport const StyledOptionGroupLi = styled.li<{ type?: \"single\" | \"multiple\" }>`\n flex-direction: column;\n cursor: ${(props) => (props.type === \"single\" ? \"default\" : \"pointer\")};\n`;\nexport const StyledOptionGroup = styled.div`\n ${tw`tw-select-none`}\n ${FontStyle}\n ${BoxSizingStyle}\n`;\n\nStyledOptionGroup.displayName = \"StyledOptionGroup\";\n\nexport const StyledOptionGroupHeader = styled.div`\n height: 28px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0 16px;\n margin: 6px 0;\n * {\n margin: auto 0;\n }\n`;\n\nStyledOptionGroupHeader.displayName = \"StyledOptionGroupHeader\";\n\nexport const StyledOptionGroupHeaderName = styled(Body2)`\n padding-right: 10px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nStyledOptionGroupHeaderName.displayName = \"StyledOptionGroupHeaderName\";\n\nexport const StyledOptionGroupOption = styled.div<{ hover?: boolean }>`\n ${(props) =>\n props.hover &&\n css`\n background-color: var(--color-theme-200);\n `}\n`;\n\nStyledOptionGroupOption.displayName = \"StyledOptionGroupOption\";\n"],"mappings":"AAAA,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAG/C,SAASC,cAAc,QAAQ,sBAAsB;AACrD,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,QAAQ,kBAAkB;AAExC,OAAO,MAAMC,mBAAmB,GAAGL,MAAM,CAACM,EAAE,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,2CAE/BC,KAAK,IAAMA,KAAK,CAACC,IAAI,KAAK,QAAQ,GAAG,SAAS,GAAG,SAAU,CACvE;AACD,OAAO,MAAMC,iBAAiB,GAAGZ,MAAM,CAACa,GAAG,CAAAN,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,uBACrC;EAAA;AAAe,CAAC,EAClBN,SAAS,EACTD,cAAc,CACjB;AAEDU,iBAAiB,CAACJ,WAAW,GAAG,mBAAmB;AAEnD,OAAO,MAAMM,uBAAuB,GAAGd,MAAM,CAACa,GAAG,CAAAN,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,+HAUhD;AAEDK,uBAAuB,CAACN,WAAW,GAAG,yBAAyB;AAE/D,OAAO,MAAMO,2BAA2B,GAAGf,MAAM,CAACI,KAAK,CAAC,CAAAG,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,qFAKvD;AAEDM,2BAA2B,CAACP,WAAW,GAAG,6BAA6B;AAEvE,OAAO,MAAMQ,uBAAuB,GAAGhB,MAAM,CAACa,GAAG,CAAAN,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,aAC5CC,KAAK,IACNA,KAAK,CAACO,KAAK,IACXhB,GAAG,8CAEF,CACJ;AAEDe,uBAAuB,CAACR,WAAW,GAAG,yBAAyB","ignoreList":[]}
1
+ {"version":3,"file":"Styles.js","names":["styled","css","BoxSizingStyle","FontStyle","Body2","StyledOptionGroupLi","li","withConfig","displayName","componentId","props","type","StyledOptionGroup","div","StyledOptionGroupHeader","StyledOptionGroupHeaderLabel","StyledOptionGroupIcon","span","StyledOptionGroupHeaderName","StyledOptionGroupOption","hover"],"sources":["../../../../../src/components/Select/OptionGroup/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\nimport tw from \"twin.macro\";\n\nimport { BoxSizingStyle } from \"../../BoxSizingStyle\";\nimport { FontStyle } from \"../../FontStyle\";\nimport { Body2 } from \"../../Typography\";\n\nexport const StyledOptionGroupLi = styled.li<{ type?: \"single\" | \"multiple\" }>`\n flex-direction: column;\n cursor: ${(props) => (props.type === \"single\" ? \"default\" : \"pointer\")};\n`;\nexport const StyledOptionGroup = styled.div`\n ${tw`tw-select-none`}\n ${FontStyle}\n ${BoxSizingStyle}\n`;\n\nStyledOptionGroup.displayName = \"StyledOptionGroup\";\n\nexport const StyledOptionGroupHeader = styled.div`\n height: 28px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0 16px;\n margin: 6px 0;\n * {\n margin: auto 0;\n }\n`;\n\nStyledOptionGroupHeader.displayName = \"StyledOptionGroupHeader\";\n\nexport const StyledOptionGroupHeaderLabel = styled.div`\n display: flex;\n align-items: center;\n min-width: 0;\n flex-grow: 1;\n`;\n\nStyledOptionGroupHeaderLabel.displayName = \"StyledOptionGroupHeaderLabel\";\n\nexport const StyledOptionGroupIcon = styled.span`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n margin-right: 8px;\n flex-shrink: 0;\n color: currentColor;\n\n svg {\n width: 16px;\n height: 16px;\n }\n`;\n\nStyledOptionGroupIcon.displayName = \"StyledOptionGroupIcon\";\n\nexport const StyledOptionGroupHeaderName = styled(Body2)`\n padding-right: 10px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nStyledOptionGroupHeaderName.displayName = \"StyledOptionGroupHeaderName\";\n\nexport const StyledOptionGroupOption = styled.div<{ hover?: boolean }>`\n ${(props) =>\n props.hover &&\n css`\n background-color: var(--color-theme-200);\n `}\n`;\n\nStyledOptionGroupOption.displayName = \"StyledOptionGroupOption\";\n"],"mappings":"AAAA,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAG/C,SAASC,cAAc,QAAQ,sBAAsB;AACrD,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,QAAQ,kBAAkB;AAExC,OAAO,MAAMC,mBAAmB,GAAGL,MAAM,CAACM,EAAE,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,2CAE/BC,KAAK,IAAMA,KAAK,CAACC,IAAI,KAAK,QAAQ,GAAG,SAAS,GAAG,SAAU,CACvE;AACD,OAAO,MAAMC,iBAAiB,GAAGZ,MAAM,CAACa,GAAG,CAAAN,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,uBACrC;EAAA;AAAe,CAAC,EAClBN,SAAS,EACTD,cAAc,CACjB;AAEDU,iBAAiB,CAACJ,WAAW,GAAG,mBAAmB;AAEnD,OAAO,MAAMM,uBAAuB,GAAGd,MAAM,CAACa,GAAG,CAAAN,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,+HAUhD;AAEDK,uBAAuB,CAACN,WAAW,GAAG,yBAAyB;AAE/D,OAAO,MAAMO,4BAA4B,GAAGf,MAAM,CAACa,GAAG,CAAAN,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,gEAKrD;AAEDM,4BAA4B,CAACP,WAAW,GAAG,8BAA8B;AAEzE,OAAO,MAAMQ,qBAAqB,GAAGhB,MAAM,CAACiB,IAAI,CAAAV,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,2KAc/C;AAEDO,qBAAqB,CAACR,WAAW,GAAG,uBAAuB;AAE3D,OAAO,MAAMU,2BAA2B,GAAGlB,MAAM,CAACI,KAAK,CAAC,CAAAG,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,qFAKvD;AAEDS,2BAA2B,CAACV,WAAW,GAAG,6BAA6B;AAEvE,OAAO,MAAMW,uBAAuB,GAAGnB,MAAM,CAACa,GAAG,CAAAN,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,aAC5CC,KAAK,IACNA,KAAK,CAACU,KAAK,IACXnB,GAAG,8CAEF,CACJ;AAEDkB,uBAAuB,CAACX,WAAW,GAAG,yBAAyB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,EAAE,EAGF,YAAY,EAIZ,GAAG,EACH,SAAS,EACV,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAc3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAKlE,MAAM,WAAW,cAAc,CAAC,CAAC,CAAE,SAAQ,YAAY;IACrD,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACd;AAED,MAAM,WAAW,YACf,SAAQ,IAAI,CACV,kBAAkB,EAChB,cAAc,GACd,SAAS,GACT,mBAAmB,GACnB,oBAAoB,GACpB,cAAc,CACjB;IACD,sBAAsB;IACtB,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IACnC,gCAAgC;IAChC,MAAM,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACjC,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC9D,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC9C,gCAAgC;IAChC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2BAA2B;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4BAA4B;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,oCAAoC;IACpC,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,qCAAqC;IACrC,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC5B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,YAAY,CAmSnC,CAAC"}
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,EAAE,EAGF,YAAY,EAIZ,GAAG,EACH,SAAS,EACV,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAc3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAKlE,MAAM,WAAW,cAAc,CAAC,CAAC,CAAE,SAAQ,YAAY;IACrD,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACd;AAED,MAAM,WAAW,YACf,SAAQ,IAAI,CACV,kBAAkB,EAChB,cAAc,GACd,SAAS,GACT,mBAAmB,GACnB,oBAAoB,GACpB,cAAc,CACjB;IACD,sBAAsB;IACtB,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IACnC,gCAAgC;IAChC,MAAM,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACjC,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC9D,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC9C,gCAAgC;IAChC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2BAA2B;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4BAA4B;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,oCAAoC;IACpC,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,qCAAqC;IACrC,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC5B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,YAAY,CAySnC,CAAC"}
@@ -164,7 +164,11 @@ export const Select = _ref => {
164
164
  if (typeof renderOption === "function") {
165
165
  return renderOption(option, props);
166
166
  }
167
+ if (option.icon && option.image) {
168
+ console.warn("Option has both `icon` and `image` set; `icon` takes precedence and `image` is ignored.");
169
+ }
167
170
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(OptionContent, {
171
+ icon: option.icon,
168
172
  imageUrl: option.image,
169
173
  color: option.color,
170
174
  textColor: option.textColor,
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","names":["React","useCallback","useState","useMemo","useEffect","useRef","classNames","OptionContent","StyledSelectForm","StyledSelectInput","StyledCheckbox","StyledRadioButton","StyledStartAdornment","StyledEndAdornment","useForkRef","Autocomplete","isOptionGroup","Menu","Select","_ref","_ref$type","type","mode","target","options","_ref$selected","selected","_ref$mixed","mixed","_ref$position","position","_ref$onChange","onChange","placeholder","_ref$emptyAction","emptyAction","_ref$disableSearch","disableSearch","forceCloseMenu","selectClassName","_ref$keepSameOptionsO","keepSameOptionsOrder","onSelectOpen","onSelectClose","renderOption","handleDefaultOptionChange","_ref$preselectDefault","preselectDefaultValue","startAdornment","endAdornment","_ref$focusInput","focusInput","disableVirtualization","prop","_objectWithoutPropertiesLoose","_excluded","console","warn","childNode","elementRef","handleRef","Tag","_useState","open","setOpen","selectedOptions","Array","selectOptions","allOptionValues","reduce","acc","option","id","allGroupOptions","map","mixedOptions","length","removeFromMixedOptions","idsToRemove","current","filter","mixedOption","includes","isAllOptionsChecked","every","someOptionsChecked","some","_childNode$current","focus","handleChange","selectedValue","undefined","onClose","onOpen","onPopperOpen","_elementRef$current","props","menuClassName","className","handleEmptyAction","value","handleDefaultOptionChangeCallback","handleRenderOption","createElement","Fragment","imageUrl","image","color","textColor","name","additionalInfo","_extends","checked","ref","clearInputOnSelect","inputEl","displayName"],"sources":["../../../../src/components/Select/Select.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n ReactElement,\n useMemo,\n useEffect,\n useRef,\n Ref,\n ReactNode,\n} from \"react\";\n\nimport { Placement } from \"@popperjs/core\";\nimport classNames from \"classnames\";\n\nimport { OptionContent } from \"./OptionContent/OptionContent\";\nimport {\n StyledSelectForm,\n StyledSelectInput,\n StyledCheckbox,\n StyledRadioButton,\n StyledStartAdornment,\n StyledEndAdornment,\n} from \"./Styles\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Autocomplete, isOptionGroup } from \"../Autocomplete\";\nimport { IAutocompleteProps } from \"../Autocomplete/Autocomplete\";\nimport { Menu } from \"../Menu/Menu\";\nimport { IOptionItemProps } from \"../Select/Option\";\nimport { IOptionGroupProps } from \"../Select/OptionGroup\";\n\nexport interface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\nexport interface ISelectProps\n extends Omit<\n IAutocompleteProps,\n | \"handleChange\"\n | \"inputEl\"\n | \"handleEmptyAction\"\n | \"clearInputOnSelect\"\n | \"mixedOptions\"\n > {\n /** Menu width mode */\n mode?: \"normal\" | \"wider\" | \"tiny\";\n /** Set select target element */\n target?: ElementWithRef<Element>;\n /** Set Select position */\n position?: Placement;\n /** onChange callback */\n onChange?: (e: (string | number)[] | string | number) => void;\n /** Placeholder for Select input */\n placeholder?: string;\n /** Function that triggers when empty is clicked */\n emptyAction?: (e: string | undefined) => void;\n /** Removes input from Select */\n disableSearch?: boolean;\n /** Close menu on select */\n forceCloseMenu?: boolean;\n /** Set select classNames */\n selectClassName?: string;\n /** Callback called when the Select menu is opened */\n onSelectOpen?: () => void;\n /** Callback called when the Select menu is closed */\n onSelectClose?: () => void;\n /** Node element on the left side */\n startAdornment?: ReactNode;\n /** Node element on the right side */\n endAdornment?: ReactNode;\n /** Focus search input on inline select */\n focusInput?: boolean;\n /** Mixed options values */\n mixed?: (string | number)[];\n disableVirtualization?: boolean;\n}\n\nexport const Select: FC<ISelectProps> = ({\n type = \"single\",\n mode,\n target,\n options,\n selected = [],\n mixed = [],\n position = \"bottom-start\",\n onChange = () => null,\n placeholder,\n emptyAction = (): null => null,\n disableSearch = false,\n forceCloseMenu,\n selectClassName,\n keepSameOptionsOrder = false,\n onSelectOpen,\n onSelectClose,\n renderOption,\n handleDefaultOptionChange,\n preselectDefaultValue = type === \"single\",\n startAdornment,\n endAdornment,\n focusInput = false,\n disableVirtualization,\n ...prop\n}) => {\n if (disableSearch && (startAdornment || endAdornment)) {\n console.warn(\"Adornments are not visible when search bar is hidden\");\n }\n const childNode = useRef<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n\n const handleRef = useForkRef(childNode, elementRef);\n\n const Tag = !target ? \"div\" : Menu;\n\n const [open, setOpen] = useState(false);\n\n const selectedOptions = useMemo(\n () => (selected instanceof Array ? selected : [selected]),\n [selected]\n );\n\n const selectOptions = useMemo(() => {\n if (!options) {\n return [];\n }\n return options;\n }, [options]);\n\n const allOptionValues = useMemo(() => {\n return selectOptions.reduce(\n (\n acc: (string | number)[],\n option: IOptionGroupProps | IOptionItemProps\n ) => {\n if (!isOptionGroup(option)) {\n return [...acc, option.id];\n }\n const allGroupOptions = option.options.map((option) => option.id);\n return [...acc, ...allGroupOptions];\n },\n []\n );\n }, [selectOptions]);\n\n const mixedOptions = useRef(type === \"multiple\" && mixed.length ? mixed : []);\n\n const removeFromMixedOptions = useCallback(\n (idsToRemove: (string | number)[]) => {\n mixedOptions.current = mixedOptions.current.filter(\n (mixedOption) => !idsToRemove.includes(mixedOption)\n );\n },\n []\n );\n\n const isAllOptionsChecked = useMemo(\n () => allOptionValues.every((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n const someOptionsChecked = useMemo(\n () => allOptionValues.some((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n useEffect(() => {\n if ((open && target) || (!target && focusInput)) {\n childNode?.current?.focus();\n }\n }, [focusInput, open, target]);\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (forceCloseMenu) {\n if (typeof onSelectClose === \"function\") onSelectClose();\n setOpen(false);\n }\n if (\n selectedValue !== undefined &&\n selectedValue !== selected &&\n !(selectedValue instanceof Array && selectedValue.includes(undefined))\n ) {\n onChange(selectedValue);\n type === \"multiple\" &&\n mixedOptions.current.length &&\n removeFromMixedOptions(selectedValue);\n }\n },\n [\n forceCloseMenu,\n selected,\n onSelectClose,\n onChange,\n type,\n removeFromMixedOptions,\n ]\n );\n\n const onClose = useCallback(() => {\n setOpen(false);\n if (onSelectClose) {\n onSelectClose();\n }\n }, [onSelectClose]);\n\n const onOpen = useCallback(() => {\n setOpen(true);\n if (onSelectOpen) {\n onSelectOpen();\n }\n }, [onSelectOpen]);\n\n const onPopperOpen = useCallback(() => {\n elementRef?.current?.focus();\n }, []);\n\n const props = useMemo(() => {\n if (target) {\n return {\n menuClassName: classNames(\"c-select\", selectClassName),\n onClose,\n onOpen,\n target,\n mode,\n open,\n position,\n onPopperOpen,\n };\n }\n return { className: classNames(\"c-select\", selectClassName) };\n }, [\n target,\n selectClassName,\n onClose,\n onOpen,\n mode,\n open,\n position,\n onPopperOpen,\n ]);\n\n const handleEmptyAction = useCallback(\n (value) => {\n emptyAction(value);\n if (forceCloseMenu) {\n setOpen(false);\n }\n // Clear the search input without triggering form reset events\n if (elementRef?.current) {\n elementRef.current.value = \"\";\n }\n },\n [emptyAction, forceCloseMenu]\n );\n\n const handleDefaultOptionChangeCallback = useCallback(() => {\n if (type === \"multiple\") {\n if (selectedOptions.length === allOptionValues.length) {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange([]);\n }\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange(allOptionValues);\n }\n }\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange(\"\");\n }\n }\n if (forceCloseMenu) {\n setOpen(false);\n }\n }, [\n onChange,\n type,\n forceCloseMenu,\n selectedOptions.length,\n allOptionValues,\n handleDefaultOptionChange,\n ]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n additionalInfo={option.additionalInfo}\n />\n {option.id === null ? (\n type === \"multiple\" ? (\n <StyledCheckbox\n checked={isAllOptionsChecked}\n mixed={someOptionsChecked && !isAllOptionsChecked}\n {...props}\n />\n ) : (\n <StyledRadioButton\n checked={selectedOptions.length < 1 || !selectedOptions[0]}\n {...props}\n />\n )\n ) : type === \"multiple\" ? (\n <StyledCheckbox\n mixed={mixedOptions.current.includes(option.id)}\n {...props}\n />\n ) : (\n <StyledRadioButton {...props} />\n )}\n </>\n );\n },\n [\n isAllOptionsChecked,\n renderOption,\n type,\n someOptionsChecked,\n selectedOptions,\n ]\n );\n\n return (\n <Tag {...props}>\n <div>\n {!disableSearch ? (\n <StyledSelectForm>\n {startAdornment ? (\n <StyledStartAdornment>{startAdornment}</StyledStartAdornment>\n ) : null}\n <StyledSelectInput ref={handleRef} placeholder={placeholder} />\n {endAdornment ? (\n <StyledEndAdornment>{endAdornment}</StyledEndAdornment>\n ) : null}\n </StyledSelectForm>\n ) : null}\n <Autocomplete\n {...prop}\n clearInputOnSelect\n inputEl={disableSearch ? undefined : childNode}\n handleEmptyAction={handleEmptyAction}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n mixedOptions={mixedOptions.current}\n handleDefaultOptionChange={handleDefaultOptionChangeCallback}\n type={type}\n preselectDefaultValue={preselectDefaultValue}\n keepSameOptionsOrder={keepSameOptionsOrder}\n disableVirtualization={disableVirtualization}\n />\n </div>\n </Tag>\n );\n};\n\nSelect.displayName = \"Select\";\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Select.js","names":["React","useCallback","useState","useMemo","useEffect","useRef","classNames","OptionContent","StyledSelectForm","StyledSelectInput","StyledCheckbox","StyledRadioButton","StyledStartAdornment","StyledEndAdornment","useForkRef","Autocomplete","isOptionGroup","Menu","Select","_ref","_ref$type","type","mode","target","options","_ref$selected","selected","_ref$mixed","mixed","_ref$position","position","_ref$onChange","onChange","placeholder","_ref$emptyAction","emptyAction","_ref$disableSearch","disableSearch","forceCloseMenu","selectClassName","_ref$keepSameOptionsO","keepSameOptionsOrder","onSelectOpen","onSelectClose","renderOption","handleDefaultOptionChange","_ref$preselectDefault","preselectDefaultValue","startAdornment","endAdornment","_ref$focusInput","focusInput","disableVirtualization","prop","_objectWithoutPropertiesLoose","_excluded","console","warn","childNode","elementRef","handleRef","Tag","_useState","open","setOpen","selectedOptions","Array","selectOptions","allOptionValues","reduce","acc","option","id","allGroupOptions","map","mixedOptions","length","removeFromMixedOptions","idsToRemove","current","filter","mixedOption","includes","isAllOptionsChecked","every","someOptionsChecked","some","_childNode$current","focus","handleChange","selectedValue","undefined","onClose","onOpen","onPopperOpen","_elementRef$current","props","menuClassName","className","handleEmptyAction","value","handleDefaultOptionChangeCallback","handleRenderOption","icon","image","createElement","Fragment","imageUrl","color","textColor","name","additionalInfo","_extends","checked","ref","clearInputOnSelect","inputEl","displayName"],"sources":["../../../../src/components/Select/Select.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n ReactElement,\n useMemo,\n useEffect,\n useRef,\n Ref,\n ReactNode,\n} from \"react\";\n\nimport { Placement } from \"@popperjs/core\";\nimport classNames from \"classnames\";\n\nimport { OptionContent } from \"./OptionContent/OptionContent\";\nimport {\n StyledSelectForm,\n StyledSelectInput,\n StyledCheckbox,\n StyledRadioButton,\n StyledStartAdornment,\n StyledEndAdornment,\n} from \"./Styles\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Autocomplete, isOptionGroup } from \"../Autocomplete\";\nimport { IAutocompleteProps } from \"../Autocomplete/Autocomplete\";\nimport { Menu } from \"../Menu/Menu\";\nimport { IOptionItemProps } from \"../Select/Option\";\nimport { IOptionGroupProps } from \"../Select/OptionGroup\";\n\nexport interface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\nexport interface ISelectProps\n extends Omit<\n IAutocompleteProps,\n | \"handleChange\"\n | \"inputEl\"\n | \"handleEmptyAction\"\n | \"clearInputOnSelect\"\n | \"mixedOptions\"\n > {\n /** Menu width mode */\n mode?: \"normal\" | \"wider\" | \"tiny\";\n /** Set select target element */\n target?: ElementWithRef<Element>;\n /** Set Select position */\n position?: Placement;\n /** onChange callback */\n onChange?: (e: (string | number)[] | string | number) => void;\n /** Placeholder for Select input */\n placeholder?: string;\n /** Function that triggers when empty is clicked */\n emptyAction?: (e: string | undefined) => void;\n /** Removes input from Select */\n disableSearch?: boolean;\n /** Close menu on select */\n forceCloseMenu?: boolean;\n /** Set select classNames */\n selectClassName?: string;\n /** Callback called when the Select menu is opened */\n onSelectOpen?: () => void;\n /** Callback called when the Select menu is closed */\n onSelectClose?: () => void;\n /** Node element on the left side */\n startAdornment?: ReactNode;\n /** Node element on the right side */\n endAdornment?: ReactNode;\n /** Focus search input on inline select */\n focusInput?: boolean;\n /** Mixed options values */\n mixed?: (string | number)[];\n disableVirtualization?: boolean;\n}\n\nexport const Select: FC<ISelectProps> = ({\n type = \"single\",\n mode,\n target,\n options,\n selected = [],\n mixed = [],\n position = \"bottom-start\",\n onChange = () => null,\n placeholder,\n emptyAction = (): null => null,\n disableSearch = false,\n forceCloseMenu,\n selectClassName,\n keepSameOptionsOrder = false,\n onSelectOpen,\n onSelectClose,\n renderOption,\n handleDefaultOptionChange,\n preselectDefaultValue = type === \"single\",\n startAdornment,\n endAdornment,\n focusInput = false,\n disableVirtualization,\n ...prop\n}) => {\n if (disableSearch && (startAdornment || endAdornment)) {\n console.warn(\"Adornments are not visible when search bar is hidden\");\n }\n const childNode = useRef<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n\n const handleRef = useForkRef(childNode, elementRef);\n\n const Tag = !target ? \"div\" : Menu;\n\n const [open, setOpen] = useState(false);\n\n const selectedOptions = useMemo(\n () => (selected instanceof Array ? selected : [selected]),\n [selected]\n );\n\n const selectOptions = useMemo(() => {\n if (!options) {\n return [];\n }\n return options;\n }, [options]);\n\n const allOptionValues = useMemo(() => {\n return selectOptions.reduce(\n (\n acc: (string | number)[],\n option: IOptionGroupProps | IOptionItemProps\n ) => {\n if (!isOptionGroup(option)) {\n return [...acc, option.id];\n }\n const allGroupOptions = option.options.map((option) => option.id);\n return [...acc, ...allGroupOptions];\n },\n []\n );\n }, [selectOptions]);\n\n const mixedOptions = useRef(type === \"multiple\" && mixed.length ? mixed : []);\n\n const removeFromMixedOptions = useCallback(\n (idsToRemove: (string | number)[]) => {\n mixedOptions.current = mixedOptions.current.filter(\n (mixedOption) => !idsToRemove.includes(mixedOption)\n );\n },\n []\n );\n\n const isAllOptionsChecked = useMemo(\n () => allOptionValues.every((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n const someOptionsChecked = useMemo(\n () => allOptionValues.some((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n useEffect(() => {\n if ((open && target) || (!target && focusInput)) {\n childNode?.current?.focus();\n }\n }, [focusInput, open, target]);\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (forceCloseMenu) {\n if (typeof onSelectClose === \"function\") onSelectClose();\n setOpen(false);\n }\n if (\n selectedValue !== undefined &&\n selectedValue !== selected &&\n !(selectedValue instanceof Array && selectedValue.includes(undefined))\n ) {\n onChange(selectedValue);\n type === \"multiple\" &&\n mixedOptions.current.length &&\n removeFromMixedOptions(selectedValue);\n }\n },\n [\n forceCloseMenu,\n selected,\n onSelectClose,\n onChange,\n type,\n removeFromMixedOptions,\n ]\n );\n\n const onClose = useCallback(() => {\n setOpen(false);\n if (onSelectClose) {\n onSelectClose();\n }\n }, [onSelectClose]);\n\n const onOpen = useCallback(() => {\n setOpen(true);\n if (onSelectOpen) {\n onSelectOpen();\n }\n }, [onSelectOpen]);\n\n const onPopperOpen = useCallback(() => {\n elementRef?.current?.focus();\n }, []);\n\n const props = useMemo(() => {\n if (target) {\n return {\n menuClassName: classNames(\"c-select\", selectClassName),\n onClose,\n onOpen,\n target,\n mode,\n open,\n position,\n onPopperOpen,\n };\n }\n return { className: classNames(\"c-select\", selectClassName) };\n }, [\n target,\n selectClassName,\n onClose,\n onOpen,\n mode,\n open,\n position,\n onPopperOpen,\n ]);\n\n const handleEmptyAction = useCallback(\n (value) => {\n emptyAction(value);\n if (forceCloseMenu) {\n setOpen(false);\n }\n // Clear the search input without triggering form reset events\n if (elementRef?.current) {\n elementRef.current.value = \"\";\n }\n },\n [emptyAction, forceCloseMenu]\n );\n\n const handleDefaultOptionChangeCallback = useCallback(() => {\n if (type === \"multiple\") {\n if (selectedOptions.length === allOptionValues.length) {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange([]);\n }\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange(allOptionValues);\n }\n }\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange(\"\");\n }\n }\n if (forceCloseMenu) {\n setOpen(false);\n }\n }, [\n onChange,\n type,\n forceCloseMenu,\n selectedOptions.length,\n allOptionValues,\n handleDefaultOptionChange,\n ]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n if (option.icon && option.image) {\n console.warn(\n \"Option has both `icon` and `image` set; `icon` takes precedence and `image` is ignored.\"\n );\n }\n return (\n <>\n <OptionContent\n icon={option.icon}\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n additionalInfo={option.additionalInfo}\n />\n {option.id === null ? (\n type === \"multiple\" ? (\n <StyledCheckbox\n checked={isAllOptionsChecked}\n mixed={someOptionsChecked && !isAllOptionsChecked}\n {...props}\n />\n ) : (\n <StyledRadioButton\n checked={selectedOptions.length < 1 || !selectedOptions[0]}\n {...props}\n />\n )\n ) : type === \"multiple\" ? (\n <StyledCheckbox\n mixed={mixedOptions.current.includes(option.id)}\n {...props}\n />\n ) : (\n <StyledRadioButton {...props} />\n )}\n </>\n );\n },\n [\n isAllOptionsChecked,\n renderOption,\n type,\n someOptionsChecked,\n selectedOptions,\n ]\n );\n\n return (\n <Tag {...props}>\n <div>\n {!disableSearch ? (\n <StyledSelectForm>\n {startAdornment ? (\n <StyledStartAdornment>{startAdornment}</StyledStartAdornment>\n ) : null}\n <StyledSelectInput ref={handleRef} placeholder={placeholder} />\n {endAdornment ? (\n <StyledEndAdornment>{endAdornment}</StyledEndAdornment>\n ) : null}\n </StyledSelectForm>\n ) : null}\n <Autocomplete\n {...prop}\n clearInputOnSelect\n inputEl={disableSearch ? undefined : childNode}\n handleEmptyAction={handleEmptyAction}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n mixedOptions={mixedOptions.current}\n handleDefaultOptionChange={handleDefaultOptionChangeCallback}\n type={type}\n preselectDefaultValue={preselectDefaultValue}\n keepSameOptionsOrder={keepSameOptionsOrder}\n disableVirtualization={disableVirtualization}\n />\n </div>\n </Tag>\n );\n};\n\nSelect.displayName = \"Select\";\n"],"mappings":"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","ignoreList":[]}
package/dist/index.js CHANGED
@@ -17206,9 +17206,14 @@
17206
17206
  return props.backgroundColor && !props.children && styled.css(["background-color:", ";"], props.backgroundColor);
17207
17207
  });
17208
17208
  StyledOptionIndicator.displayName = "StyledOptionIndicator";
17209
+ var StyledOptionIcon = styled__default["default"].span.withConfig({
17210
+ displayName: "Styles__StyledOptionIcon",
17211
+ componentId: "sc-6fiqyy-2"
17212
+ })(["display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-right:8px;flex-shrink:0;color:currentColor;svg{width:16px;height:16px;}"]);
17213
+ StyledOptionIcon.displayName = "StyledOptionIcon";
17209
17214
  var StyledOptionText = styled__default["default"](Body2).withConfig({
17210
17215
  displayName: "Styles__StyledOptionText",
17211
- componentId: "sc-6fiqyy-2"
17216
+ componentId: "sc-6fiqyy-3"
17212
17217
  })(["", " flex-grow:1;line-height:28px;padding-right:10px;", ""], {
17213
17218
  "overflow": "hidden",
17214
17219
  "textOverflow": "ellipsis",
@@ -17219,7 +17224,7 @@
17219
17224
  StyledOptionText.displayName = "StyledOptionText";
17220
17225
  var StyledAdditionalInfo = styled__default["default"].span.withConfig({
17221
17226
  displayName: "Styles__StyledAdditionalInfo",
17222
- componentId: "sc-6fiqyy-3"
17227
+ componentId: "sc-6fiqyy-4"
17223
17228
  })(["margin:0 0 0 5px;line-height:18px;flex-shrink:0;"]);
17224
17229
  StyledAdditionalInfo.displayName = "StyledAdditionalInfo";
17225
17230
 
@@ -17341,8 +17346,12 @@
17341
17346
  color = _ref.color,
17342
17347
  textColor = _ref.textColor,
17343
17348
  name = _ref.name,
17344
- additionalInfo = _ref.additionalInfo;
17345
- return /*#__PURE__*/React__default["default"].createElement(StyledOptionContentWrapper, null, imageUrl || color ? /*#__PURE__*/React__default["default"].createElement(StyledOptionIndicator, {
17349
+ additionalInfo = _ref.additionalInfo,
17350
+ icon = _ref.icon;
17351
+ return /*#__PURE__*/React__default["default"].createElement(StyledOptionContentWrapper, null, icon ? /*#__PURE__*/React__default["default"].createElement(StyledOptionIcon, {
17352
+ className: "c-option--icon",
17353
+ "aria-hidden": "true"
17354
+ }, icon) : imageUrl || color ? /*#__PURE__*/React__default["default"].createElement(StyledOptionIndicator, {
17346
17355
  className: "c-option--label",
17347
17356
  backgroundColor: color
17348
17357
  }, imageUrl ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, Array.isArray(imageUrl) ? /*#__PURE__*/React__default["default"].createElement(MultiAvatar, {
@@ -18452,14 +18461,24 @@
18452
18461
  componentId: "sc-16v5afu-2"
18453
18462
  })(["height:28px;display:flex;justify-content:space-between;align-items:center;padding:0 16px;margin:6px 0;*{margin:auto 0;}"]);
18454
18463
  StyledOptionGroupHeader.displayName = "StyledOptionGroupHeader";
18464
+ var StyledOptionGroupHeaderLabel = styled__default["default"].div.withConfig({
18465
+ displayName: "Styles__StyledOptionGroupHeaderLabel",
18466
+ componentId: "sc-16v5afu-3"
18467
+ })(["display:flex;align-items:center;min-width:0;flex-grow:1;"]);
18468
+ StyledOptionGroupHeaderLabel.displayName = "StyledOptionGroupHeaderLabel";
18469
+ var StyledOptionGroupIcon = styled__default["default"].span.withConfig({
18470
+ displayName: "Styles__StyledOptionGroupIcon",
18471
+ componentId: "sc-16v5afu-4"
18472
+ })(["display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-right:8px;flex-shrink:0;color:currentColor;svg{width:16px;height:16px;}"]);
18473
+ StyledOptionGroupIcon.displayName = "StyledOptionGroupIcon";
18455
18474
  var StyledOptionGroupHeaderName = styled__default["default"](Body2).withConfig({
18456
18475
  displayName: "Styles__StyledOptionGroupHeaderName",
18457
- componentId: "sc-16v5afu-3"
18476
+ componentId: "sc-16v5afu-5"
18458
18477
  })(["padding-right:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;"]);
18459
18478
  StyledOptionGroupHeaderName.displayName = "StyledOptionGroupHeaderName";
18460
18479
  var StyledOptionGroupOption = styled__default["default"].div.withConfig({
18461
18480
  displayName: "Styles__StyledOptionGroupOption",
18462
- componentId: "sc-16v5afu-4"
18481
+ componentId: "sc-16v5afu-6"
18463
18482
  })(["", ""], function (props) {
18464
18483
  return props.hover && styled.css(["background-color:var(--color-theme-200);"]);
18465
18484
  });
@@ -18468,6 +18487,7 @@
18468
18487
  var OptionGroup = function OptionGroup(_ref) {
18469
18488
  var id = _ref.id,
18470
18489
  name = _ref.name,
18490
+ icon = _ref.icon,
18471
18491
  options = _ref.options,
18472
18492
  type = _ref.type,
18473
18493
  hover = _ref.hover,
@@ -18532,9 +18552,12 @@
18532
18552
  }, /*#__PURE__*/React__default["default"].createElement(StyledOptionGroupOption, {
18533
18553
  onMouseEnter: handleHover,
18534
18554
  hover: hover === id && type === "multiple"
18535
- }, /*#__PURE__*/React__default["default"].createElement(StyledOptionGroupHeader, null, /*#__PURE__*/React__default["default"].createElement(StyledOptionGroupHeaderName, {
18555
+ }, /*#__PURE__*/React__default["default"].createElement(StyledOptionGroupHeader, null, /*#__PURE__*/React__default["default"].createElement(StyledOptionGroupHeaderLabel, null, icon ? /*#__PURE__*/React__default["default"].createElement(StyledOptionGroupIcon, {
18556
+ className: "c-option-group--icon",
18557
+ "aria-hidden": "true"
18558
+ }, icon) : null, /*#__PURE__*/React__default["default"].createElement(StyledOptionGroupHeaderName, {
18536
18559
  weight: "bold"
18537
- }, name), type === "multiple" && /*#__PURE__*/React__default["default"].createElement(Checkbox, {
18560
+ }, name)), type === "multiple" && /*#__PURE__*/React__default["default"].createElement(Checkbox, {
18538
18561
  id: "".concat(id),
18539
18562
  checked: isAllOptionsChecked,
18540
18563
  mixed: isMixed,
@@ -18980,6 +19003,7 @@
18980
19003
  return /*#__PURE__*/React__default["default"].createElement(OptionGroup, {
18981
19004
  checked: selectedOptions,
18982
19005
  name: item.name,
19006
+ icon: item.icon,
18983
19007
  tooltip: item.tooltip,
18984
19008
  key: item.id,
18985
19009
  setHover: handleHoverCallback,
@@ -19103,6 +19127,7 @@
19103
19127
  return /*#__PURE__*/React__default["default"].createElement(OptionGroup, {
19104
19128
  checked: selectedOptions,
19105
19129
  name: virtualItem.item.name,
19130
+ icon: virtualItem.item.icon,
19106
19131
  tooltip: virtualItem.item.tooltip,
19107
19132
  key: virtualItem.item.id,
19108
19133
  setHover: handleHoverCallback,
@@ -19379,7 +19404,11 @@
19379
19404
  if (typeof renderOption === "function") {
19380
19405
  return renderOption(option, props);
19381
19406
  }
19407
+ if (option.icon && option.image) {
19408
+ console.warn("Option has both `icon` and `image` set; `icon` takes precedence and `image` is ignored.");
19409
+ }
19382
19410
  return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(OptionContent, {
19411
+ icon: option.icon,
19383
19412
  imageUrl: option.image,
19384
19413
  color: option.color,
19385
19414
  textColor: option.textColor,