@activecollab/components 1.0.295 → 1.0.297

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 (28) hide show
  1. package/dist/cjs/components/AvatarGroup/AvatarGroup.js +91 -19
  2. package/dist/cjs/components/AvatarGroup/AvatarGroup.js.map +1 -1
  3. package/dist/cjs/components/AvatarGroup/Styles.js +9 -1
  4. package/dist/cjs/components/AvatarGroup/Styles.js.map +1 -1
  5. package/dist/cjs/components/Select/OptionGroup/OptionGroup.js +3 -1
  6. package/dist/cjs/components/Select/OptionGroup/OptionGroup.js.map +1 -1
  7. package/dist/cjs/components/Select/OptionGroup/Styles.js +11 -4
  8. package/dist/cjs/components/Select/OptionGroup/Styles.js.map +1 -1
  9. package/dist/esm/components/AvatarGroup/AvatarGroup.d.ts +5 -5
  10. package/dist/esm/components/AvatarGroup/AvatarGroup.d.ts.map +1 -1
  11. package/dist/esm/components/AvatarGroup/AvatarGroup.js +94 -19
  12. package/dist/esm/components/AvatarGroup/AvatarGroup.js.map +1 -1
  13. package/dist/esm/components/AvatarGroup/Styles.d.ts +4 -1
  14. package/dist/esm/components/AvatarGroup/Styles.d.ts.map +1 -1
  15. package/dist/esm/components/AvatarGroup/Styles.js +9 -1
  16. package/dist/esm/components/AvatarGroup/Styles.js.map +1 -1
  17. package/dist/esm/components/Select/OptionGroup/OptionGroup.d.ts.map +1 -1
  18. package/dist/esm/components/Select/OptionGroup/OptionGroup.js +4 -2
  19. package/dist/esm/components/Select/OptionGroup/OptionGroup.js.map +1 -1
  20. package/dist/esm/components/Select/OptionGroup/Styles.d.ts +3 -1
  21. package/dist/esm/components/Select/OptionGroup/Styles.d.ts.map +1 -1
  22. package/dist/esm/components/Select/OptionGroup/Styles.js +9 -3
  23. package/dist/esm/components/Select/OptionGroup/Styles.js.map +1 -1
  24. package/dist/index.js +110 -23
  25. package/dist/index.js.map +1 -1
  26. package/dist/index.min.js +1 -1
  27. package/dist/index.min.js.map +1 -1
  28. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"OptionGroup.js","names":["React","useCallback","useEffect","useMemo","classNames","Checkbox","StyledOptionGroup","StyledOptionGroupHeader","StyledOptionGroupOption","StyledOptionGroupLi","List","OptionGroup","id","name","options","type","hover","filter","checked","onChange","setHover","renderOptions","optionGroupClassName","list","v","toLowerCase","includes","trim","document","getElementById","focus","isAllOptionsChecked","every","option","handleHover","undefined","allOptionValues","map","handleClick","e","stopPropagation","i","values","unique","item","pos","indexOf","index","displayName"],"sources":["../../../../../src/components/Select/OptionGroup/OptionGroup.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, FC } from \"react\";\nimport classNames from \"classnames\";\nimport { IOptionItemProps } from \"../Option/Option\";\nimport { Checkbox } from \"../../Checkbox/Checkbox\";\nimport {\n StyledOptionGroup,\n StyledOptionGroupHeader,\n StyledOptionGroupOption,\n StyledOptionGroupLi,\n} from \"./Styles\";\nimport { List } from \"../../List\";\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 /** 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) => void;\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 filter,\n checked,\n onChange,\n setHover,\n renderOptions,\n optionGroupClassName,\n}) => {\n const list = useMemo(\n () =>\n filter\n ? options.filter((v) =>\n v.name.toLowerCase().includes(filter.trim().toLowerCase())\n )\n : options,\n [filter, options]\n );\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 handleClick = useCallback(\n (e) => {\n e.stopPropagation();\n if (onChange) {\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]\n );\n\n return (\n <StyledOptionGroupLi\n key={id}\n className={classNames(\"c-option-group\", optionGroupClassName)}\n >\n <StyledOptionGroup key={id}>\n <StyledOptionGroupOption\n onMouseEnter={handleHover}\n hover={hover === id && type === \"multiple\"}\n >\n <StyledOptionGroupHeader>\n {name}\n {type === \"multiple\" && (\n <Checkbox\n id={`${id}`}\n checked={isAllOptionsChecked}\n onChange={handleClick}\n type=\"checkbox\"\n />\n )}\n </StyledOptionGroupHeader>\n </StyledOptionGroupOption>\n <List>\n {list.map((item: IOptionItemProps, index) => {\n return typeof renderOptions === \"function\"\n ? renderOptions(item, index)\n : item.name;\n })}\n </List>\n </StyledOptionGroup>\n </StyledOptionGroupLi>\n );\n};\n\nOptionGroup.displayName = \"OptionGroup\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"OptionGroup.js","names":["React","useCallback","useEffect","useMemo","classNames","Checkbox","StyledOptionGroup","StyledOptionGroupHeader","StyledOptionGroupOption","StyledOptionGroupLi","StyledOptionGroupHeaderName","List","OptionGroup","id","name","options","type","hover","filter","checked","onChange","setHover","renderOptions","optionGroupClassName","list","v","toLowerCase","includes","trim","document","getElementById","focus","isAllOptionsChecked","every","option","handleHover","undefined","allOptionValues","map","handleClick","e","stopPropagation","i","values","unique","item","pos","indexOf","index","displayName"],"sources":["../../../../../src/components/Select/OptionGroup/OptionGroup.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, FC } from \"react\";\nimport classNames from \"classnames\";\nimport { IOptionItemProps } from \"../Option/Option\";\nimport { Checkbox } from \"../../Checkbox/Checkbox\";\nimport {\n StyledOptionGroup,\n StyledOptionGroupHeader,\n StyledOptionGroupOption,\n StyledOptionGroupLi,\n StyledOptionGroupHeaderName,\n} from \"./Styles\";\nimport { List } from \"../../List\";\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 /** 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) => void;\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 filter,\n checked,\n onChange,\n setHover,\n renderOptions,\n optionGroupClassName,\n}) => {\n const list = useMemo(\n () =>\n filter\n ? options.filter((v) =>\n v.name.toLowerCase().includes(filter.trim().toLowerCase())\n )\n : options,\n [filter, options]\n );\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 handleClick = useCallback(\n (e) => {\n e.stopPropagation();\n if (onChange) {\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]\n );\n\n return (\n <StyledOptionGroupLi\n key={id}\n className={classNames(\"c-option-group\", optionGroupClassName)}\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 onChange={handleClick}\n type=\"checkbox\"\n />\n )}\n </StyledOptionGroupHeader>\n </StyledOptionGroupOption>\n <List>\n {list.map((item: IOptionItemProps, index) => {\n return typeof renderOptions === \"function\"\n ? renderOptions(item, index)\n : item.name;\n })}\n </List>\n </StyledOptionGroup>\n </StyledOptionGroupLi>\n );\n};\n\nOptionGroup.displayName = \"OptionGroup\";\n"],"mappings":"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"}
@@ -1,6 +1,8 @@
1
+ /// <reference types="react" />
1
2
  export declare const StyledOptionGroupLi: import("styled-components").StyledComponent<"li", any, {}, never>;
2
3
  export declare const StyledOptionGroup: import("styled-components").StyledComponent<"div", any, {}, never>;
3
- export declare const StyledOptionGroupHeader: import("styled-components").StyledComponent<"h3", any, {}, never>;
4
+ export declare const StyledOptionGroupHeader: import("styled-components").StyledComponent<"div", any, {}, never>;
5
+ export declare const StyledOptionGroupHeaderName: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("../../Typography").IBodyProps & Omit<import("../../Typography/Typography").ITypographyProps, "variant" | "weight"> & import("react").RefAttributes<HTMLDivElement>>, any, {}, never>;
4
6
  export declare const StyledOptionGroupOption: import("styled-components").StyledComponent<"div", any, {
5
7
  hover?: boolean | undefined;
6
8
  }, never>;
@@ -1 +1 @@
1
- {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/OptionGroup/Styles.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,mBAAmB,mEAE/B,CAAC;AACF,eAAO,MAAM,iBAAiB,oEAI7B,CAAC;AAIF,eAAO,MAAM,uBAAuB,mEAWnC,CAAC;AAIF,eAAO,MAAM,uBAAuB;;SAMnC,CAAC"}
1
+ {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/OptionGroup/Styles.ts"],"names":[],"mappings":";AAMA,eAAO,MAAM,mBAAmB,mEAE/B,CAAC;AACF,eAAO,MAAM,iBAAiB,oEAI7B,CAAC;AAIF,eAAO,MAAM,uBAAuB,oEAUnC,CAAC;AAIF,eAAO,MAAM,2BAA2B,oRAKvC,CAAC;AAIF,eAAO,MAAM,uBAAuB;;SAMnC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import styled, { css } from "styled-components";
2
2
  import { BoxSizingStyle } from "../../BoxSizingStyle";
3
3
  import { FontStyle } from "../../FontStyle";
4
+ import { Body2 } from "../../Typography";
4
5
  export var StyledOptionGroupLi = styled.li.withConfig({
5
6
  displayName: "Styles__StyledOptionGroupLi",
6
7
  componentId: "sc-16v5afu-0"
@@ -12,14 +13,19 @@ export var StyledOptionGroup = styled.div.withConfig({
12
13
  "userSelect": "none"
13
14
  }, FontStyle, BoxSizingStyle);
14
15
  StyledOptionGroup.displayName = "StyledOptionGroup";
15
- export var StyledOptionGroupHeader = styled.h3.withConfig({
16
+ export var StyledOptionGroupHeader = styled.div.withConfig({
16
17
  displayName: "Styles__StyledOptionGroupHeader",
17
18
  componentId: "sc-16v5afu-2"
18
- })(["height:28px;display:flex;justify-content:space-between;align-items:center;padding:0 16px;color:var(--color-theme-900);margin:6px 0;*{margin:auto 0;}"]);
19
+ })(["height:28px;display:flex;justify-content:space-between;align-items:center;padding:0 16px;margin:6px 0;*{margin:auto 0;}"]);
19
20
  StyledOptionGroupHeader.displayName = "StyledOptionGroupHeader";
21
+ export var StyledOptionGroupHeaderName = styled(Body2).withConfig({
22
+ displayName: "Styles__StyledOptionGroupHeaderName",
23
+ componentId: "sc-16v5afu-3"
24
+ })(["padding-right:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;"]);
25
+ StyledOptionGroupHeaderName.displayName = "StyledOptionGroupHeaderName";
20
26
  export var StyledOptionGroupOption = styled.div.withConfig({
21
27
  displayName: "Styles__StyledOptionGroupOption",
22
- componentId: "sc-16v5afu-3"
28
+ componentId: "sc-16v5afu-4"
23
29
  })(["", ""], function (props) {
24
30
  return props.hover && css(["background-color:var(--color-theme-200);"]);
25
31
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Styles.js","names":["styled","css","BoxSizingStyle","FontStyle","StyledOptionGroupLi","li","StyledOptionGroup","div","displayName","StyledOptionGroupHeader","h3","StyledOptionGroupOption","props","hover"],"sources":["../../../../../src/components/Select/OptionGroup/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\nimport tw from \"twin.macro\";\nimport { BoxSizingStyle } from \"../../BoxSizingStyle\";\nimport { FontStyle } from \"../../FontStyle\";\n\nexport const StyledOptionGroupLi = styled.li`\n flex-direction: column;\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.h3`\n height: 28px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0 16px;\n color: var(--color-theme-900);\n margin: 6px 0;\n * {\n margin: auto 0;\n }\n`;\n\nStyledOptionGroupHeader.displayName = \"StyledOptionGroupHeader\";\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;AAE/C,SAASC,cAAc,QAAQ,sBAAsB;AACrD,SAASC,SAAS,QAAQ,iBAAiB;AAE3C,OAAO,IAAMC,mBAAmB,GAAGJ,MAAM,CAACK,EAAE;EAAA;EAAA;AAAA,8BAE3C;AACD,OAAO,IAAMC,iBAAiB,GAAGN,MAAM,CAACO,GAAG;EAAA;EAAA;AAAA,uBACrC;EAAA;AAAe,CAAC,EAClBJ,SAAS,EACTD,cAAc,CACjB;AAEDI,iBAAiB,CAACE,WAAW,GAAG,mBAAmB;AAEnD,OAAO,IAAMC,uBAAuB,GAAGT,MAAM,CAACU,EAAE;EAAA;EAAA;AAAA,4JAW/C;AAEDD,uBAAuB,CAACD,WAAW,GAAG,yBAAyB;AAE/D,OAAO,IAAMG,uBAAuB,GAAGX,MAAM,CAACO,GAAG;EAAA;EAAA;AAAA,aAC7C,UAACK,KAAK;EAAA,OACNA,KAAK,CAACC,KAAK,IACXZ,GAAG,8CAEF;AAAA,EACJ;AAEDU,uBAAuB,CAACH,WAAW,GAAG,yBAAyB"}
1
+ {"version":3,"file":"Styles.js","names":["styled","css","BoxSizingStyle","FontStyle","Body2","StyledOptionGroupLi","li","StyledOptionGroup","div","displayName","StyledOptionGroupHeader","StyledOptionGroupHeaderName","StyledOptionGroupOption","props","hover"],"sources":["../../../../../src/components/Select/OptionGroup/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\nimport tw from \"twin.macro\";\nimport { BoxSizingStyle } from \"../../BoxSizingStyle\";\nimport { FontStyle } from \"../../FontStyle\";\nimport { Body2 } from \"../../Typography\";\n\nexport const StyledOptionGroupLi = styled.li`\n flex-direction: column;\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;AAE/C,SAASC,cAAc,QAAQ,sBAAsB;AACrD,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,QAAQ,kBAAkB;AAExC,OAAO,IAAMC,mBAAmB,GAAGL,MAAM,CAACM,EAAE;EAAA;EAAA;AAAA,8BAE3C;AACD,OAAO,IAAMC,iBAAiB,GAAGP,MAAM,CAACQ,GAAG;EAAA;EAAA;AAAA,uBACrC;EAAA;AAAe,CAAC,EAClBL,SAAS,EACTD,cAAc,CACjB;AAEDK,iBAAiB,CAACE,WAAW,GAAG,mBAAmB;AAEnD,OAAO,IAAMC,uBAAuB,GAAGV,MAAM,CAACQ,GAAG;EAAA;EAAA;AAAA,+HAUhD;AAEDE,uBAAuB,CAACD,WAAW,GAAG,yBAAyB;AAE/D,OAAO,IAAME,2BAA2B,GAAGX,MAAM,CAACI,KAAK,CAAC;EAAA;EAAA;AAAA,qFAKvD;AAEDO,2BAA2B,CAACF,WAAW,GAAG,6BAA6B;AAEvE,OAAO,IAAMG,uBAAuB,GAAGZ,MAAM,CAACQ,GAAG;EAAA;EAAA;AAAA,aAC7C,UAACK,KAAK;EAAA,OACNA,KAAK,CAACC,KAAK,IACXb,GAAG,8CAEF;AAAA,EACJ;AAEDW,uBAAuB,CAACH,WAAW,GAAG,yBAAyB"}
package/dist/index.js CHANGED
@@ -9955,14 +9955,19 @@
9955
9955
  "userSelect": "none"
9956
9956
  }, FontStyle, BoxSizingStyle);
9957
9957
  StyledOptionGroup.displayName = "StyledOptionGroup";
9958
- var StyledOptionGroupHeader = styled__default["default"].h3.withConfig({
9958
+ var StyledOptionGroupHeader = styled__default["default"].div.withConfig({
9959
9959
  displayName: "Styles__StyledOptionGroupHeader",
9960
9960
  componentId: "sc-16v5afu-2"
9961
- })(["height:28px;display:flex;justify-content:space-between;align-items:center;padding:0 16px;color:var(--color-theme-900);margin:6px 0;*{margin:auto 0;}"]);
9961
+ })(["height:28px;display:flex;justify-content:space-between;align-items:center;padding:0 16px;margin:6px 0;*{margin:auto 0;}"]);
9962
9962
  StyledOptionGroupHeader.displayName = "StyledOptionGroupHeader";
9963
+ var StyledOptionGroupHeaderName = styled__default["default"](Body2).withConfig({
9964
+ displayName: "Styles__StyledOptionGroupHeaderName",
9965
+ componentId: "sc-16v5afu-3"
9966
+ })(["padding-right:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;"]);
9967
+ StyledOptionGroupHeaderName.displayName = "StyledOptionGroupHeaderName";
9963
9968
  var StyledOptionGroupOption = styled__default["default"].div.withConfig({
9964
9969
  displayName: "Styles__StyledOptionGroupOption",
9965
- componentId: "sc-16v5afu-3"
9970
+ componentId: "sc-16v5afu-4"
9966
9971
  })(["", ""], function (props) {
9967
9972
  return props.hover && styled.css(["background-color:var(--color-theme-200);"]);
9968
9973
  });
@@ -10030,7 +10035,9 @@
10030
10035
  }, /*#__PURE__*/React__default["default"].createElement(StyledOptionGroupOption, {
10031
10036
  onMouseEnter: handleHover,
10032
10037
  hover: hover === id && type === "multiple"
10033
- }, /*#__PURE__*/React__default["default"].createElement(StyledOptionGroupHeader, null, name, type === "multiple" && /*#__PURE__*/React__default["default"].createElement(Checkbox, {
10038
+ }, /*#__PURE__*/React__default["default"].createElement(StyledOptionGroupHeader, null, /*#__PURE__*/React__default["default"].createElement(StyledOptionGroupHeaderName, {
10039
+ weight: "bold"
10040
+ }, name), type === "multiple" && /*#__PURE__*/React__default["default"].createElement(Checkbox, {
10034
10041
  id: "".concat(id),
10035
10042
  checked: isAllOptionsChecked,
10036
10043
  onChange: handleClick,
@@ -15997,7 +16004,15 @@
15997
16004
  var AvatarGroupsStyles = styled__default["default"].div.withConfig({
15998
16005
  displayName: "Styles__AvatarGroupsStyles",
15999
16006
  componentId: "sc-1padv46-0"
16000
- })(["display:flex;cursor:pointer;width:fit-content;", ""], FontStyle);
16007
+ })(["", " align-items:center;cursor:pointer;display:flex;justify-content:center;position:relative;user-select:none;width:fit-content;&::before{border-radius:5px;background-color:", ";content:\"\";height:100%;margin-left:", "px;opacity:0;padding:5px 0;position:absolute;transition:opacity 0.2s ease-in-out;width:", ";}&:hover::before{opacity:1;}"], FontStyle, function (props) {
16008
+ return !props.hasTooltip && "var(--color-theme-300)";
16009
+ }, function (_ref) {
16010
+ var gap = _ref.gap;
16011
+ return -gap;
16012
+ }, function (_ref2) {
16013
+ var gap = _ref2.gap;
16014
+ return "calc(100% + ".concat(gap * 2, "px + 5px)");
16015
+ });
16001
16016
  var LengthCountStyles = styled__default["default"].div.withConfig({
16002
16017
  displayName: "Styles__LengthCountStyles",
16003
16018
  componentId: "sc-1padv46-1"
@@ -16007,42 +16022,114 @@
16007
16022
  return props.size + "px";
16008
16023
  });
16009
16024
 
16010
- var AvatarGroup = function AvatarGroup(_ref) {
16025
+ var AvatarGroup = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
16026
+ var _Children$toArray;
16011
16027
  var limit = _ref.limit,
16012
16028
  _ref$size = _ref.size,
16013
16029
  size = _ref$size === void 0 ? 34 : _ref$size,
16014
16030
  children = _ref.children,
16015
- counterProps = _ref.counterProps;
16016
- // always display counter with min +2 as +1 can require 1 more Avatar
16031
+ _ref$hasTooltip = _ref.hasTooltip,
16032
+ hasTooltip = _ref$hasTooltip === void 0 ? false : _ref$hasTooltip;
16033
+ // always display counter with min +2 as +1 can takes space of an 1 more Avatar
16017
16034
  var minChildren = React.Children.count(children) - limit > 1 ? false : true;
16035
+ // gap between Avatars
16036
+ var gap = 8;
16018
16037
  var _children = minChildren ? React.Children.toArray(children) : React.Children.toArray(children).slice(0, limit);
16019
16038
  var handleVariant = React.useMemo(function () {
16020
16039
  if (size >= 34) return "Caption 1";
16021
16040
  return "Caption 2";
16022
16041
  }, [size]);
16023
- return /*#__PURE__*/React__default["default"].createElement(AvatarGroupsStyles, null, _children.map(function (child) {
16024
- var item = child;
16042
+
16043
+ // get all names indexed above limit number from alt tag on Avatar for counter tooltip
16044
+ var nameArr = (_Children$toArray = React.Children.toArray(children)) === null || _Children$toArray === void 0 ? void 0 : _Children$toArray.slice(limit).map(function (item) {
16045
+ var _ref2 = item,
16046
+ props = _ref2.props;
16047
+ return props.alt;
16048
+ });
16049
+
16050
+ // render React Element with tooltip or without
16051
+ var renderAvatars = function renderAvatars(item) {
16052
+ var tooltipText = item.props.alt;
16053
+ var alt = "Image of ".concat(tooltipText);
16054
+ if (hasTooltip) {
16055
+ return /*#__PURE__*/React__default["default"].createElement(Tooltip, {
16056
+ title: tooltipText
16057
+ }, /*#__PURE__*/React.cloneElement(item, _objectSpread2(_objectSpread2({}, item.props), {}, {
16058
+ size: size,
16059
+ alt: alt,
16060
+ style: {
16061
+ marginLeft: "-".concat(gap, "px"),
16062
+ outline: "1px solid var(--page-paper-main)"
16063
+ }
16064
+ })));
16065
+ }
16025
16066
  return /*#__PURE__*/React.cloneElement(item, _objectSpread2(_objectSpread2({}, item.props), {}, {
16026
16067
  size: size,
16068
+ alt: alt,
16027
16069
  style: {
16028
- marginInlineStart: "-8px",
16070
+ marginLeft: "-".concat(gap, "px"),
16029
16071
  outline: "1px solid var(--page-paper-main)"
16030
16072
  }
16031
16073
  }));
16032
- }), limit >= React.Children.count(children) || minChildren ? null : /*#__PURE__*/React__default["default"].createElement(_StyledLengthCountStyles, _extends({
16033
- size: size,
16034
- role: "status",
16035
- "aria-label": "Rest of the users"
16036
- }, counterProps), /*#__PURE__*/React__default["default"].createElement(Typography, {
16037
- variant: handleVariant,
16038
- weight: "medium"
16039
- }, "+", React.Children.count(children) - limit)));
16040
- };
16041
- var _StyledLengthCountStyles = styled__default["default"](LengthCountStyles).withConfig({
16042
- displayName: "AvatarGroup___StyledLengthCountStyles",
16074
+ };
16075
+
16076
+ // render Tooltip if hasTooltip is true
16077
+ var renderCounter = function renderCounter() {
16078
+ if (hasTooltip) {
16079
+ return /*#__PURE__*/React__default["default"].createElement(_StyledTooltip, {
16080
+ title: nameArr.join("\n")
16081
+ }, /*#__PURE__*/React__default["default"].createElement(_StyledLengthCountStyles, {
16082
+ size: size,
16083
+ role: "status",
16084
+ "aria-label": "Rest of the users",
16085
+ $_css: "-".concat(gap, "px")
16086
+ }, /*#__PURE__*/React__default["default"].createElement(Typography, {
16087
+ variant: handleVariant,
16088
+ weight: "medium"
16089
+ }, "+", React.Children.count(children) - limit)));
16090
+ }
16091
+ return /*#__PURE__*/React__default["default"].createElement(_StyledLengthCountStyles2, {
16092
+ size: size,
16093
+ role: "status",
16094
+ "aria-label": "Rest of the users",
16095
+ $_css2: "-".concat(gap, "px")
16096
+ }, /*#__PURE__*/React__default["default"].createElement(Typography, {
16097
+ variant: handleVariant,
16098
+ weight: "medium"
16099
+ }, "+", React.Children.count(children) - limit));
16100
+ };
16101
+ return /*#__PURE__*/React__default["default"].createElement(AvatarGroupsStyles, {
16102
+ hasTooltip: hasTooltip,
16103
+ gap: gap,
16104
+ ref: ref
16105
+ }, _children.map(function (child) {
16106
+ var item = child;
16107
+ return renderAvatars(item);
16108
+ }), limit >= React.Children.count(children) || minChildren ? null : renderCounter());
16109
+ });
16110
+ AvatarGroup.displayName = "AvatarGroup";
16111
+ var _StyledTooltip = styled__default["default"](Tooltip).withConfig({
16112
+ displayName: "AvatarGroup___StyledTooltip",
16043
16113
  componentId: "sc-1rsx1j5-0"
16044
16114
  })({
16045
- marginInlineStart: "-8px"
16115
+ whiteSpace: "break-spaces",
16116
+ lineHeight: "18px"
16117
+ });
16118
+ var _StyledLengthCountStyles = styled__default["default"](LengthCountStyles).withConfig({
16119
+ displayName: "AvatarGroup___StyledLengthCountStyles",
16120
+ componentId: "sc-1rsx1j5-1"
16121
+ })(function (p) {
16122
+ return {
16123
+ marginLeft: p.$_css
16124
+ };
16125
+ });
16126
+ var _StyledLengthCountStyles2 = styled__default["default"](LengthCountStyles).withConfig({
16127
+ displayName: "AvatarGroup___StyledLengthCountStyles2",
16128
+ componentId: "sc-1rsx1j5-2"
16129
+ })(function (p) {
16130
+ return {
16131
+ marginLeft: p.$_css2
16132
+ };
16046
16133
  });
16047
16134
 
16048
16135
  var StyledCommandPalette = styled__default["default"].div.withConfig({