@activecollab/components 1.0.242 → 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 (61) hide show
  1. package/dist/cjs/components/Avatar/Avatar.js +32 -6
  2. package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
  3. package/dist/cjs/components/Avatar/Styles.js +11 -5
  4. package/dist/cjs/components/Avatar/Styles.js.map +1 -1
  5. package/dist/cjs/components/Badge/Badge.js +50 -0
  6. package/dist/cjs/components/Badge/Badge.js.map +1 -0
  7. package/dist/cjs/components/Badge/Styles.js +34 -0
  8. package/dist/cjs/components/Badge/Styles.js.map +1 -0
  9. package/dist/cjs/components/Badge/index.js +17 -0
  10. package/dist/cjs/components/Badge/index.js.map +1 -0
  11. package/dist/cjs/components/Button/Button.js +1 -0
  12. package/dist/cjs/components/Button/Button.js.map +1 -1
  13. package/dist/cjs/components/ComboBox/ComboBox.js.map +1 -1
  14. package/dist/cjs/components/IconButton/IconButton.js +1 -0
  15. package/dist/cjs/components/IconButton/IconButton.js.map +1 -1
  16. package/dist/cjs/components/MultiAvatar/MultiAvatar.js +35 -6
  17. package/dist/cjs/components/MultiAvatar/MultiAvatar.js.map +1 -1
  18. package/dist/cjs/components/index.js +11 -0
  19. package/dist/cjs/components/index.js.map +1 -1
  20. package/dist/esm/components/Avatar/Avatar.d.ts +28 -2
  21. package/dist/esm/components/Avatar/Avatar.d.ts.map +1 -1
  22. package/dist/esm/components/Avatar/Avatar.js +33 -7
  23. package/dist/esm/components/Avatar/Avatar.js.map +1 -1
  24. package/dist/esm/components/Avatar/Styles.d.ts +3 -1
  25. package/dist/esm/components/Avatar/Styles.d.ts.map +1 -1
  26. package/dist/esm/components/Avatar/Styles.js +9 -4
  27. package/dist/esm/components/Avatar/Styles.js.map +1 -1
  28. package/dist/esm/components/Badge/Badge.d.ts +32 -0
  29. package/dist/esm/components/Badge/Badge.d.ts.map +1 -0
  30. package/dist/esm/components/Badge/Badge.js +42 -0
  31. package/dist/esm/components/Badge/Badge.js.map +1 -0
  32. package/dist/esm/components/Badge/Styles.d.ts +3 -0
  33. package/dist/esm/components/Badge/Styles.d.ts.map +1 -0
  34. package/dist/esm/components/Badge/Styles.js +24 -0
  35. package/dist/esm/components/Badge/Styles.js.map +1 -0
  36. package/dist/esm/components/Badge/index.d.ts +2 -0
  37. package/dist/esm/components/Badge/index.d.ts.map +1 -0
  38. package/dist/esm/components/Badge/index.js +2 -0
  39. package/dist/esm/components/Badge/index.js.map +1 -0
  40. package/dist/esm/components/Button/Button.d.ts +1 -0
  41. package/dist/esm/components/Button/Button.d.ts.map +1 -1
  42. package/dist/esm/components/Button/Button.js +1 -0
  43. package/dist/esm/components/Button/Button.js.map +1 -1
  44. package/dist/esm/components/ComboBox/ComboBox.js.map +1 -1
  45. package/dist/esm/components/IconButton/IconButton.d.ts +1 -0
  46. package/dist/esm/components/IconButton/IconButton.d.ts.map +1 -1
  47. package/dist/esm/components/IconButton/IconButton.js +1 -0
  48. package/dist/esm/components/IconButton/IconButton.js.map +1 -1
  49. package/dist/esm/components/MultiAvatar/MultiAvatar.d.ts +33 -3
  50. package/dist/esm/components/MultiAvatar/MultiAvatar.d.ts.map +1 -1
  51. package/dist/esm/components/MultiAvatar/MultiAvatar.js +35 -6
  52. package/dist/esm/components/MultiAvatar/MultiAvatar.js.map +1 -1
  53. package/dist/esm/components/index.d.ts +1 -0
  54. package/dist/esm/components/index.d.ts.map +1 -1
  55. package/dist/esm/components/index.js +1 -0
  56. package/dist/esm/components/index.js.map +1 -1
  57. package/dist/index.js +141 -16
  58. package/dist/index.js.map +1 -1
  59. package/dist/index.min.js +1 -1
  60. package/dist/index.min.js.map +1 -1
  61. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- export interface IAvatar extends React.ComponentPropsWithoutRef<"img"> {
2
+ export interface AvatarProps extends React.ComponentPropsWithoutRef<"img"> {
3
3
  /** Path url. */
4
4
  url: string;
5
5
  /** Alt text. */
@@ -9,5 +9,31 @@ export interface IAvatar extends React.ComponentPropsWithoutRef<"img"> {
9
9
  /** Custom class. */
10
10
  className?: string;
11
11
  }
12
- export declare const Avatar: React.ForwardRefExoticComponent<IAvatar & React.RefAttributes<HTMLImageElement>>;
12
+ /**
13
+ * @component Avatar
14
+ * @description
15
+ * The Avatar component is used to represent user, and displays the profile picture, initials or fallback icon.
16
+ *
17
+ * @prop {url} - The image url of the Avatar.
18
+ * @prop {size} - controls the size of an Avatar (width and height) in pixels.
19
+ * @prop {alt} - alt attribute of the img.
20
+ *
21
+ * @example
22
+ * <Avatar url="https://faces-img.xcdn.link/image-lorem-face-954.jpg" alt="Profile picture of John" />
23
+ *
24
+ * @example
25
+ * <Avatar
26
+ * url="https://faces-img.xcdn.link/image-lorem-face-954.jpg"
27
+ * alt="Profile picture of John">
28
+ * <Badge size={8} backgroundColor="green" position="bottom-left" />
29
+ * </Avatar>
30
+ *
31
+ * @see
32
+ * https://system.activecollab.com/?path=/story/components-button-indicators-avatar--avatar
33
+ * @see
34
+ * https://design.activecollab.com/docs/components/avatar
35
+ */
36
+ export declare const Avatar: React.ForwardRefExoticComponent<AvatarProps & {
37
+ children?: React.ReactNode;
38
+ } & React.RefAttributes<HTMLImageElement>>;
13
39
  //# sourceMappingURL=Avatar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../../src/components/Avatar/Avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAG1C,MAAM,WAAW,OAAQ,SAAQ,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC;IACpE,gBAAgB;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kBAAkB;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,MAAM,kFAclB,CAAC"}
1
+ {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../../src/components/Avatar/Avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAG7D,MAAM,WAAW,WAAY,SAAQ,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC;IACxE,gBAAgB;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kBAAkB;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,MAAM;;0CAoBlB,CAAC"}
@@ -1,8 +1,32 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- var _excluded = ["url", "alt", "size", "className"];
3
+ var _excluded = ["url", "alt", "size", "className", "children"];
4
4
  import React, { forwardRef } from "react";
5
- import { StyledAvatar } from "./Styles";
5
+ import { StyledAvatar, StyledWrapper } from "./Styles";
6
+ /**
7
+ * @component Avatar
8
+ * @description
9
+ * The Avatar component is used to represent user, and displays the profile picture, initials or fallback icon.
10
+ *
11
+ * @prop {url} - The image url of the Avatar.
12
+ * @prop {size} - controls the size of an Avatar (width and height) in pixels.
13
+ * @prop {alt} - alt attribute of the img.
14
+ *
15
+ * @example
16
+ * <Avatar url="https://faces-img.xcdn.link/image-lorem-face-954.jpg" alt="Profile picture of John" />
17
+ *
18
+ * @example
19
+ * <Avatar
20
+ * url="https://faces-img.xcdn.link/image-lorem-face-954.jpg"
21
+ * alt="Profile picture of John">
22
+ * <Badge size={8} backgroundColor="green" position="bottom-left" />
23
+ * </Avatar>
24
+ *
25
+ * @see
26
+ * https://system.activecollab.com/?path=/story/components-button-indicators-avatar--avatar
27
+ * @see
28
+ * https://design.activecollab.com/docs/components/avatar
29
+ */
6
30
  export var Avatar = /*#__PURE__*/forwardRef(function (_ref, ref) {
7
31
  var url = _ref.url,
8
32
  _ref$alt = _ref.alt,
@@ -10,15 +34,17 @@ export var Avatar = /*#__PURE__*/forwardRef(function (_ref, ref) {
10
34
  _ref$size = _ref.size,
11
35
  size = _ref$size === void 0 ? 24 : _ref$size,
12
36
  className = _ref.className,
37
+ children = _ref.children,
13
38
  rest = _objectWithoutPropertiesLoose(_ref, _excluded);
14
- return /*#__PURE__*/React.createElement(StyledAvatar, _extends({}, rest, {
39
+ return /*#__PURE__*/React.createElement(StyledWrapper, {
40
+ className: className
41
+ }, children, /*#__PURE__*/React.createElement(StyledAvatar, _extends({
42
+ size: size,
15
43
  ref: ref,
16
44
  src: url,
17
45
  alt: alt,
18
- width: size,
19
- height: size,
20
- className: className
21
- }));
46
+ role: "img"
47
+ }, rest)));
22
48
  });
23
49
  Avatar.displayName = "Avatar";
24
50
  //# sourceMappingURL=Avatar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.js","names":["React","forwardRef","StyledAvatar","Avatar","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,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,SAASC,YAAY,QAAQ,UAAU;AAavC,OAAO,IAAMC,MAAM,gBAAGF,UAAU,CAC9B,gBAA+DG,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,oBAAC,YAAY,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;AAEDL,MAAM,CAACO,WAAW,GAAG,QAAQ"}
1
+ {"version":3,"file":"Avatar.js","names":["React","forwardRef","StyledAvatar","StyledWrapper","Avatar","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,OAAOA,KAAK,IAAIC,UAAU,QAA2B,OAAO;AAC5D,SAASC,YAAY,EAAEC,aAAa,QAAQ,UAAU;AAatD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,MAAM,gBAAGH,UAAU,CAI9B,gBAEEI,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,oBAAC,aAAa;IAAC,SAAS,EAAEF;EAAU,GACjCC,QAAQ,eACT,oBAAC,YAAY;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;AAEDP,MAAM,CAACQ,WAAW,GAAG,QAAQ"}
@@ -1,2 +1,4 @@
1
- export declare const StyledAvatar: import("styled-components").StyledComponent<"img", any, {}, never>;
1
+ import { AvatarProps } from "./Avatar";
2
+ export declare const StyledWrapper: import("styled-components").StyledComponent<"span", any, {}, never>;
3
+ export declare const StyledAvatar: import("styled-components").StyledComponent<"img", any, Pick<AvatarProps, "size">, never>;
2
4
  //# sourceMappingURL=Styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Avatar/Styles.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY,oEAExB,CAAC"}
1
+ {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Avatar/Styles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,eAAO,MAAM,aAAa,qEAGzB,CAAC;AAEF,eAAO,MAAM,YAAY,2FAMxB,CAAC"}
@@ -1,9 +1,14 @@
1
1
  import styled from "styled-components";
2
+ export var StyledWrapper = styled.span.withConfig({
3
+ displayName: "Styles__StyledWrapper",
4
+ componentId: "sc-5x2tyd-0"
5
+ })(["display:inline-flex;position:relative;"]);
2
6
  export var StyledAvatar = styled.img.withConfig({
3
7
  displayName: "Styles__StyledAvatar",
4
- componentId: "sc-5x2tyd-0"
5
- })(["", ""], {
6
- "objectFit": "cover",
7
- "borderRadius": "9999px"
8
+ componentId: "sc-5x2tyd-1"
9
+ })(["border-radius:100%;object-fit:cover;block-size:", ";inline-size:", ";"], function (props) {
10
+ return props.size + "px";
11
+ }, function (props) {
12
+ return props.size + "px";
8
13
  });
9
14
  //# sourceMappingURL=Styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Styles.js","names":["styled","StyledAvatar","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,OAAOA,MAAM,MAAM,mBAAmB;AAGtC,OAAO,IAAMC,YAAY,GAAGD,MAAM,CAACE,GAAG;EAAA;EAAA;AAAA,aAChC;EAAA;EAAA;AAAgC,CAAC,CACtC"}
1
+ {"version":3,"file":"Styles.js","names":["styled","StyledWrapper","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,OAAOA,MAAM,MAAM,mBAAmB;AAGtC,OAAO,IAAMC,aAAa,GAAGD,MAAM,CAACE,IAAI;EAAA;EAAA;AAAA,8CAGvC;AAED,OAAO,IAAMC,YAAY,GAAGH,MAAM,CAACI,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"}
@@ -0,0 +1,32 @@
1
+ /// <reference types="react" />
2
+ declare type Position = "top-left" | "top-right" | "bottom-right" | "bottom-left";
3
+ export interface BadgeProps {
4
+ position?: Position;
5
+ dimension?: number;
6
+ className?: string;
7
+ backgroundColor?: string;
8
+ isVisible?: boolean;
9
+ }
10
+ /**
11
+ * @component Badge
12
+ * @description
13
+ * In some products, you might need to show a badge on the right corner of the avatar.
14
+ * We call this a badge. Here's an example that shows if the user is online.
15
+ *
16
+ * @prop {position} - dictates the position of a badge.
17
+ * @prop {dimension} - controls the size of a badge (width and height) in pixels.
18
+ * @prop {backgroundColor} - background-color of a badge.
19
+ * @prop {isVisible} - dictates if badge should be visible or not.
20
+ *
21
+ * @example
22
+ * <IconButton variant="text gray" size="big">
23
+ * <BellOffIcon />
24
+ * <Badge position="top-right" backgroundColor="red" dimension={16} />
25
+ * </IconButton>
26
+ *
27
+ * @see
28
+ * https://system.activecollab.com/?path=/story/components-button-indicators-badge--badge
29
+ */
30
+ export declare const Badge: ({ dimension, className, position, backgroundColor, isVisible, }: BadgeProps) => JSX.Element | null;
31
+ export {};
32
+ //# sourceMappingURL=Badge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../../../src/components/Badge/Badge.tsx"],"names":[],"mappings":";AAIA,aAAK,QAAQ,GAAG,UAAU,GAAG,WAAW,GAAG,cAAc,GAAG,aAAa,CAAC;AAE1E,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,KAAK,oEAMf,UAAU,uBAUZ,CAAC"}
@@ -0,0 +1,42 @@
1
+ import classNames from "classnames";
2
+ import React from "react";
3
+ import { StyledBadge } from "./Styles";
4
+ /**
5
+ * @component Badge
6
+ * @description
7
+ * In some products, you might need to show a badge on the right corner of the avatar.
8
+ * We call this a badge. Here's an example that shows if the user is online.
9
+ *
10
+ * @prop {position} - dictates the position of a badge.
11
+ * @prop {dimension} - controls the size of a badge (width and height) in pixels.
12
+ * @prop {backgroundColor} - background-color of a badge.
13
+ * @prop {isVisible} - dictates if badge should be visible or not.
14
+ *
15
+ * @example
16
+ * <IconButton variant="text gray" size="big">
17
+ * <BellOffIcon />
18
+ * <Badge position="top-right" backgroundColor="red" dimension={16} />
19
+ * </IconButton>
20
+ *
21
+ * @see
22
+ * https://system.activecollab.com/?path=/story/components-button-indicators-badge--badge
23
+ */
24
+ export var Badge = function Badge(_ref) {
25
+ var _ref$dimension = _ref.dimension,
26
+ dimension = _ref$dimension === void 0 ? 8 : _ref$dimension,
27
+ className = _ref.className,
28
+ _ref$position = _ref.position,
29
+ position = _ref$position === void 0 ? "bottom-left" : _ref$position,
30
+ _ref$backgroundColor = _ref.backgroundColor,
31
+ backgroundColor = _ref$backgroundColor === void 0 ? "#40C37D" : _ref$backgroundColor,
32
+ _ref$isVisible = _ref.isVisible,
33
+ isVisible = _ref$isVisible === void 0 ? true : _ref$isVisible;
34
+ return isVisible ? /*#__PURE__*/React.createElement(StyledBadge, {
35
+ className: classNames("c-badge", className),
36
+ dimension: dimension,
37
+ position: position,
38
+ backgroundColor: backgroundColor,
39
+ role: "status"
40
+ }) : null;
41
+ };
42
+ //# sourceMappingURL=Badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.js","names":["classNames","React","StyledBadge","Badge","dimension","className","position","backgroundColor","isVisible"],"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,OAAOA,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,WAAW,QAAQ,UAAU;AAYtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,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,oBAAC,WAAW;IACV,SAAS,EAAER,UAAU,CAAC,SAAS,EAAEK,SAAS,CAAE;IAC5C,SAAS,EAAED,SAAU;IACrB,QAAQ,EAAEE,QAAS;IACnB,eAAe,EAAEC,eAAgB;IACjC,IAAI,EAAC;EAAQ,EACb,GACA,IAAI;AACV,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { BadgeProps } from "./Badge";
2
+ export declare const StyledBadge: import("styled-components").StyledComponent<"div", any, Partial<BadgeProps>, never>;
3
+ //# sourceMappingURL=Styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Badge/Styles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,eAAO,MAAM,WAAW,qFAqCvB,CAAC"}
@@ -0,0 +1,24 @@
1
+ import styled, { css } from "styled-components";
2
+ export var StyledBadge = styled.div.withConfig({
3
+ displayName: "Styles__StyledBadge",
4
+ componentId: "sc-6o8do5-0"
5
+ })(["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) {
6
+ return props.backgroundColor;
7
+ }, function (props) {
8
+ return props.dimension + "px";
9
+ }, function (props) {
10
+ return props.dimension + "px";
11
+ }, function (_ref) {
12
+ var position = _ref.position;
13
+ return position === "top-left" && css(["inset-block-start:0;inset-inline-start:0;"]);
14
+ }, function (_ref2) {
15
+ var position = _ref2.position;
16
+ return position === "top-right" && css(["inset-block-start:0;inset-inline-end:0;"]);
17
+ }, function (_ref3) {
18
+ var position = _ref3.position;
19
+ return position === "bottom-right" && css(["inset-block-end:0;inset-inline-end:0;"]);
20
+ }, function (_ref4) {
21
+ var position = _ref4.position;
22
+ return position === "bottom-left" && css(["inset-block-end:0;inset-inline-start:0;"]);
23
+ });
24
+ //# sourceMappingURL=Styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Styles.js","names":["styled","css","StyledBadge","div","props","backgroundColor","dimension","position"],"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,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAG/C,OAAO,IAAMC,WAAW,GAAGF,MAAM,CAACG,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,IACvBN,GAAG,+CAGF;AAAA,GAED;EAAA,IAAGM,QAAQ,SAARA,QAAQ;EAAA,OACXA,QAAQ,KAAK,WAAW,IACxBN,GAAG,6CAGF;AAAA,GAEC;EAAA,IAAGM,QAAQ,SAARA,QAAQ;EAAA,OACbA,QAAQ,KAAK,cAAc,IAC3BN,GAAG,2CAGF;AAAA,GAEC;EAAA,IAAGM,QAAQ,SAARA,QAAQ;EAAA,OACbA,QAAQ,KAAK,aAAa,IAC1BN,GAAG,6CAGF;AAAA,EACJ"}
@@ -0,0 +1,2 @@
1
+ export * from "./Badge";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Badge/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./Badge";
2
+ //# 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,cAAc,SAAS"}
@@ -25,6 +25,7 @@ export interface ButtonProps extends ComponentPropsWithoutRef<"button"> {
25
25
  * )
26
26
  * @see
27
27
  * https://system.activecollab.com/?path=/story/components-button-indicators-button--button
28
+ * https://design.activecollab.com/docs/components/button
28
29
  */
29
30
  export declare const Button: React.ForwardRefExoticComponent<ButtonProps & {
30
31
  children?: React.ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../../src/components/Button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,wBAAwB,EAGzB,MAAM,OAAO,CAAC;AAQf,MAAM,WAAW,WAAY,SAAQ,wBAAwB,CAAC,QAAQ,CAAC;IACrE,yBAAyB;IACzB,OAAO,CAAC,EACJ,SAAS,GACT,WAAW,GACX,UAAU,GACV,QAAQ,GACR,WAAW,GACX,UAAU,GACV,cAAc,GACd,WAAW,GACX,kBAAkB,GAClB,eAAe,CAAC;IACpB,uCAAuC;IACvC,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IAClC,+BAA+B;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AACD;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,MAAM;;2CA0DlB,CAAC"}
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../../src/components/Button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,wBAAwB,EAGzB,MAAM,OAAO,CAAC;AAQf,MAAM,WAAW,WAAY,SAAQ,wBAAwB,CAAC,QAAQ,CAAC;IACrE,yBAAyB;IACzB,OAAO,CAAC,EACJ,SAAS,GACT,WAAW,GACX,UAAU,GACV,QAAQ,GACR,WAAW,GACX,UAAU,GACV,cAAc,GACd,WAAW,GACX,kBAAkB,GAClB,eAAe,CAAC;IACpB,uCAAuC;IACvC,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IAClC,+BAA+B;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AACD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,MAAM;;2CA0DlB,CAAC"}
@@ -22,6 +22,7 @@ import { StyledButton, StyledButtonElement, StyledButtonElements } from "./Style
22
22
  * )
23
23
  * @see
24
24
  * https://system.activecollab.com/?path=/story/components-button-indicators-button--button
25
+ * https://design.activecollab.com/docs/components/button
25
26
  */
26
27
  export var Button = /*#__PURE__*/forwardRef(function (_ref, ref) {
27
28
  var children = _ref.children,
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","names":["React","forwardRef","classnames","StyledButton","StyledButtonElement","StyledButtonElements","Button","ref","children","active","variant","size","className","args","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,OAAOA,KAAK,IAEVC,UAAU,QAEL,OAAO;AACd,OAAOC,UAAU,MAAM,YAAY;AACnC,SACEC,YAAY,EACZC,mBAAmB,EACnBC,oBAAoB,QACf,UAAU;AAoBjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,MAAM,gBAAGL,UAAU,CAI9B,gBASEM,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,oBAAC,YAAY;IACX,SAAS,EAAEX,UAAU,CAAC,OAAO,EAAEU,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,YAAYM,MAAM,IAAI,EAAEN,QAAQ,YAAYO,KAAK;IAC7D,CAAC,CAAE;IACH,QAAQ,EAAEP,QAAQ,YAAYM,MAAM,IAAI,EAAEN,QAAQ,YAAYO,KAAK,CAAE;IACrE,OAAO,EAAEL,OAAQ;IACjB,MAAM,EAAED,MAAO;IACf,IAAI,EAAEE,IAAK;IACX,GAAG,EAAEJ,GAAI;IACT,gBAAcE,MAAO;IACrB,IAAI,EAAC;EAAQ,GACTI,IAAI,GAEPL,QAAQ,YAAYO,KAAK,gBACxB,oBAAC,oBAAoB;IAAC,SAAS,EAAC;EAAiB,GAC9CP,QAAQ,CAACQ,GAAG,CAAC,UAACC,KAAK,EAAEC,KAAK;IAAA,OACzBD,KAAK,gBACH,oBAAC,mBAAmB;MAClB,SAAS,EAAC,0BAA0B;MACpC,GAAG,EAAEC;IAAM,GAEVD,KAAK,CACc,GACpB,IAAI;EAAA,EACT,CACoB,GAEvBT,QACD,CACY;AAEnB,CAAC,CACF;AAEDF,MAAM,CAACa,WAAW,GAAG,QAAQ"}
1
+ {"version":3,"file":"Button.js","names":["React","forwardRef","classnames","StyledButton","StyledButtonElement","StyledButtonElements","Button","ref","children","active","variant","size","className","args","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,OAAOA,KAAK,IAEVC,UAAU,QAEL,OAAO;AACd,OAAOC,UAAU,MAAM,YAAY;AACnC,SACEC,YAAY,EACZC,mBAAmB,EACnBC,oBAAoB,QACf,UAAU;AAoBjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,MAAM,gBAAGL,UAAU,CAI9B,gBASEM,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,oBAAC,YAAY;IACX,SAAS,EAAEX,UAAU,CAAC,OAAO,EAAEU,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,YAAYM,MAAM,IAAI,EAAEN,QAAQ,YAAYO,KAAK;IAC7D,CAAC,CAAE;IACH,QAAQ,EAAEP,QAAQ,YAAYM,MAAM,IAAI,EAAEN,QAAQ,YAAYO,KAAK,CAAE;IACrE,OAAO,EAAEL,OAAQ;IACjB,MAAM,EAAED,MAAO;IACf,IAAI,EAAEE,IAAK;IACX,GAAG,EAAEJ,GAAI;IACT,gBAAcE,MAAO;IACrB,IAAI,EAAC;EAAQ,GACTI,IAAI,GAEPL,QAAQ,YAAYO,KAAK,gBACxB,oBAAC,oBAAoB;IAAC,SAAS,EAAC;EAAiB,GAC9CP,QAAQ,CAACQ,GAAG,CAAC,UAACC,KAAK,EAAEC,KAAK;IAAA,OACzBD,KAAK,gBACH,oBAAC,mBAAmB;MAClB,SAAS,EAAC,0BAA0B;MACpC,GAAG,EAAEC;IAAM,GAEVD,KAAK,CACc,GACpB,IAAI;EAAA,EACT,CACoB,GAEvBT,QACD,CACY;AAEnB,CAAC,CACF;AAEDF,MAAM,CAACa,WAAW,GAAG,QAAQ"}
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBox.js","names":["React","useCallback","useState","useEffect","useRef","useMemo","Fragment","RadioButton","Autocomplete","IconButton","isOptionGroup","useForkRef","Popper","RemoveScroll","SpinnerLoader","OptionContent","StyledComboBoxCloseSmallIcon","StyledComboBoxCollapseExpandSingleIcon","StyledComboBoxInput","StyledComboBoxList","StyledChipWrapper","InputAdornment","Checkbox","Chip","StyledInput","StyledInputWrapper","useOnClickOutside","Avatar","Trigger","Typography","Portal","ConditionalWrapper","classNames","ComboBox","options","selected","loading","loadingText","onChange","placeholder","handleEmptyAction","disabled","size","invalid","type","renderChip","forceCloseMenu","renderOption","limitChips","hiddenNumberText","inPortal","inputWrapperClassName","scrollWrapper","prop","selectedName","value","map","v","find","q","id","name","setValue","handleOnChange","e","target","childNode","setChildNode","elementRef","handleRef","wrapperRef","chipWrapper","comboBoxRef","open","setOpen","current","contains","handleOnKeyDown","key","stopPropagation","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","push","groupedOptions","o","_index","hidden","splice","showXIcon","hasSelected","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":["React","useCallback","useState","useEffect","useRef","useMemo","Fragment","RadioButton","Autocomplete","IconButton","isOptionGroup","useForkRef","Popper","RemoveScroll","SpinnerLoader","OptionContent","StyledComboBoxCloseSmallIcon","StyledComboBoxCollapseExpandSingleIcon","StyledComboBoxInput","StyledComboBoxList","StyledChipWrapper","InputAdornment","Checkbox","Chip","StyledInput","StyledInputWrapper","useOnClickOutside","Avatar","Trigger","Typography","Portal","ConditionalWrapper","classNames","ComboBox","options","selected","loading","loadingText","onChange","placeholder","handleEmptyAction","disabled","size","invalid","type","renderChip","forceCloseMenu","renderOption","limitChips","hiddenNumberText","inPortal","inputWrapperClassName","scrollWrapper","prop","selectedName","value","map","v","find","q","id","name","setValue","handleOnChange","e","target","childNode","setChildNode","elementRef","handleRef","wrapperRef","chipWrapper","comboBoxRef","open","setOpen","current","contains","handleOnKeyDown","key","stopPropagation","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","push","groupedOptions","o","_index","hidden","splice","showXIcon","hasSelected","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":"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"}
@@ -19,6 +19,7 @@ export interface IconButtonProps extends ButtonProps {
19
19
  * )
20
20
  * @see
21
21
  * https://system.activecollab.com/?path=/story/components-button-indicators-button--icon-button
22
+ * https://design.activecollab.com/docs/components/button
22
23
  */
23
24
  export declare const IconButton: React.ForwardRefExoticComponent<IconButtonProps & {
24
25
  children?: React.ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"IconButton.d.ts","sourceRoot":"","sources":["../../../../src/components/IconButton/IconButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAIxC,MAAM,WAAW,eAAgB,SAAQ,WAAW;CAAG;AAEvD;;;;;;;;;;;;;;;;;GAiBG;AAEH,eAAO,MAAM,UAAU;;2CAgBrB,CAAC"}
1
+ {"version":3,"file":"IconButton.d.ts","sourceRoot":"","sources":["../../../../src/components/IconButton/IconButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAIxC,MAAM,WAAW,eAAgB,SAAQ,WAAW;CAAG;AAEvD;;;;;;;;;;;;;;;;;;GAkBG;AAEH,eAAO,MAAM,UAAU;;2CAgBrB,CAAC"}
@@ -23,6 +23,7 @@ import { StyledIconButton } from "./Styles";
23
23
  * )
24
24
  * @see
25
25
  * https://system.activecollab.com/?path=/story/components-button-indicators-button--icon-button
26
+ * https://design.activecollab.com/docs/components/button
26
27
  */
27
28
 
28
29
  export var IconButton = /*#__PURE__*/forwardRef(function (_ref, ref) {
@@ -1 +1 @@
1
- {"version":3,"file":"IconButton.js","names":["React","forwardRef","StyledIconButton","IconButton","ref","children","className","variant","size","active","args","displayName"],"sources":["../../../../src/components/IconButton/IconButton.tsx"],"sourcesContent":["import React, { forwardRef, PropsWithChildren } from \"react\";\nimport { ButtonProps } from \"../Button\";\nimport { StyledIconButton } from \"./Styles\";\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IconButtonProps extends ButtonProps {}\n\n/**\n * @component IconButton\n * @description\n * IconButton composes the Button component except that it renders only an icon.\n * Since IconButton only renders an icon, you have to pass the aria-label prop,\n * so screen readers can give meaning to the button.\n *\n * @props See Button props.\n *\n * @example\n * return (\n * <IconButton className=\"mr-2\" variant=\"primary\" size=\"medium\" aria-label=\"Close dialog\">\n * <CloseIcon />\n * </IconButton>\n * )\n * @see\n * https://system.activecollab.com/?path=/story/components-button-indicators-button--icon-button\n */\n\nexport const IconButton = forwardRef<\n HTMLButtonElement,\n PropsWithChildren<IconButtonProps>\n>(({ children, className, variant, size, active, ...args }, ref) => {\n return (\n <StyledIconButton\n className={className}\n variant={variant}\n size={size}\n active={active}\n ref={ref}\n {...args}\n >\n {children}\n </StyledIconButton>\n );\n});\n\nIconButton.displayName = \"IconButton\";\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAA2B,OAAO;AAE5D,SAASC,gBAAgB,QAAQ,UAAU;;AAE3C;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,IAAMC,UAAU,gBAAGF,UAAU,CAGlC,gBAA0DG,GAAG,EAAK;EAAA,IAA/DC,QAAQ,QAARA,QAAQ;IAAEC,SAAS,QAATA,SAAS;IAAEC,OAAO,QAAPA,OAAO;IAAEC,IAAI,QAAJA,IAAI;IAAEC,MAAM,QAANA,MAAM;IAAKC,IAAI;EACtD,oBACE,oBAAC,gBAAgB;IACf,SAAS,EAAEJ,SAAU;IACrB,OAAO,EAAEC,OAAQ;IACjB,IAAI,EAAEC,IAAK;IACX,MAAM,EAAEC,MAAO;IACf,GAAG,EAAEL;EAAI,GACLM,IAAI,GAEPL,QAAQ,CACQ;AAEvB,CAAC,CAAC;AAEFF,UAAU,CAACQ,WAAW,GAAG,YAAY"}
1
+ {"version":3,"file":"IconButton.js","names":["React","forwardRef","StyledIconButton","IconButton","ref","children","className","variant","size","active","args","displayName"],"sources":["../../../../src/components/IconButton/IconButton.tsx"],"sourcesContent":["import React, { forwardRef, PropsWithChildren } from \"react\";\nimport { ButtonProps } from \"../Button\";\nimport { StyledIconButton } from \"./Styles\";\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IconButtonProps extends ButtonProps {}\n\n/**\n * @component IconButton\n * @description\n * IconButton composes the Button component except that it renders only an icon.\n * Since IconButton only renders an icon, you have to pass the aria-label prop,\n * so screen readers can give meaning to the button.\n *\n * @props See Button props.\n *\n * @example\n * return (\n * <IconButton className=\"mr-2\" variant=\"primary\" size=\"medium\" aria-label=\"Close dialog\">\n * <CloseIcon />\n * </IconButton>\n * )\n * @see\n * https://system.activecollab.com/?path=/story/components-button-indicators-button--icon-button\n * https://design.activecollab.com/docs/components/button\n */\n\nexport const IconButton = forwardRef<\n HTMLButtonElement,\n PropsWithChildren<IconButtonProps>\n>(({ children, className, variant, size, active, ...args }, ref) => {\n return (\n <StyledIconButton\n className={className}\n variant={variant}\n size={size}\n active={active}\n ref={ref}\n {...args}\n >\n {children}\n </StyledIconButton>\n );\n});\n\nIconButton.displayName = \"IconButton\";\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAA2B,OAAO;AAE5D,SAASC,gBAAgB,QAAQ,UAAU;;AAE3C;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,IAAMC,UAAU,gBAAGF,UAAU,CAGlC,gBAA0DG,GAAG,EAAK;EAAA,IAA/DC,QAAQ,QAARA,QAAQ;IAAEC,SAAS,QAATA,SAAS;IAAEC,OAAO,QAAPA,OAAO;IAAEC,IAAI,QAAJA,IAAI;IAAEC,MAAM,QAANA,MAAM;IAAKC,IAAI;EACtD,oBACE,oBAAC,gBAAgB;IACf,SAAS,EAAEJ,SAAU;IACrB,OAAO,EAAEC,OAAQ;IACjB,IAAI,EAAEC,IAAK;IACX,MAAM,EAAEC,MAAO;IACf,GAAG,EAAEL;EAAI,GACLM,IAAI,GAEPL,QAAQ,CACQ;AAEvB,CAAC,CAAC;AAEFF,UAAU,CAACQ,WAAW,GAAG,YAAY"}
@@ -1,5 +1,5 @@
1
- import { FC } from "react";
2
- export interface IMultiAvatar {
1
+ import { PropsWithChildren } from "react";
2
+ export interface MultiAvatarProps {
3
3
  /** Path url. */
4
4
  url: string[];
5
5
  /** Alt text. */
@@ -9,5 +9,35 @@ export interface IMultiAvatar {
9
9
  /** Custom class. */
10
10
  className?: string;
11
11
  }
12
- export declare const MultiAvatar: FC<IMultiAvatar>;
12
+ /**
13
+ * @component MultiAvatar
14
+ * @description
15
+ * The MultiAvatar component is used to represent user, and displays the profile picture, initials or fallback icon.
16
+ *
17
+ * @prop {url} - The image urls of the MultiAvatar.
18
+ * @prop {size} - controls the size of an MultiAvatar (width and height) in pixels.
19
+ * @prop {alt} - alt attributes of the imgs.
20
+ *
21
+ * @example
22
+ * <MultiAvatar
23
+ * url={["https://faces-img.xcdn.link/image-lorem-face-954.jpg", "https://faces-img.xcdn.link/image-lorem-face-953.jpg"]}
24
+ * alt={["Profile picture of John", "Profile picture of Sarah"]} />
25
+ *
26
+ * @example
27
+ * <MultiAvatar
28
+ * url={["https://faces-img.xcdn.link/image-lorem-face-954.jpg", "https://faces-img.xcdn.link/image-lorem-face-953.jpg"]}
29
+ * alt={["Profile picture of John", "Profile picture of Sarah"]}
30
+ * >
31
+ * <Badge />
32
+ * </MultiAvatar>
33
+ *
34
+ * @see
35
+ * https://system.activecollab.com/?path=/story/components-button-indicators-avatar--avatar
36
+ * @see
37
+ * https://design.activecollab.com/docs/components/avatar
38
+ */
39
+ export declare const MultiAvatar: {
40
+ ({ url, alt, size, className, children, }: PropsWithChildren<MultiAvatarProps>): JSX.Element;
41
+ displayName: string;
42
+ };
13
43
  //# sourceMappingURL=MultiAvatar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MultiAvatar.d.ts","sourceRoot":"","sources":["../../../../src/components/MultiAvatar/MultiAvatar.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAwB,MAAM,OAAO,CAAC;AAGxD,MAAM,WAAW,YAAY;IAC3B,gBAAgB;IAChB,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,gBAAgB;IAChB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,kBAAkB;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,YAAY,CAwDxC,CAAC"}
1
+ {"version":3,"file":"MultiAvatar.d.ts","sourceRoot":"","sources":["../../../../src/components/MultiAvatar/MultiAvatar.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,iBAAiB,EAAwB,MAAM,OAAO,CAAC;AAGvE,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB;IAChB,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,gBAAgB;IAChB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,kBAAkB;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,WAAW;+CAMrB,kBAAkB,gBAAgB,CAAC;;CAsDrC,CAAC"}