@activecollab/components 1.0.242 → 1.0.244
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.
- package/dist/cjs/components/Avatar/Avatar.js +32 -6
- package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
- package/dist/cjs/components/Avatar/Styles.js +11 -5
- package/dist/cjs/components/Avatar/Styles.js.map +1 -1
- package/dist/cjs/components/Badge/Badge.js +50 -0
- package/dist/cjs/components/Badge/Badge.js.map +1 -0
- package/dist/cjs/components/Badge/Styles.js +34 -0
- package/dist/cjs/components/Badge/Styles.js.map +1 -0
- package/dist/cjs/components/Badge/index.js +17 -0
- package/dist/cjs/components/Badge/index.js.map +1 -0
- package/dist/cjs/components/Button/Button.js +1 -0
- package/dist/cjs/components/Button/Button.js.map +1 -1
- package/dist/cjs/components/ComboBox/ComboBox.js.map +1 -1
- package/dist/cjs/components/IconButton/IconButton.js +1 -0
- package/dist/cjs/components/IconButton/IconButton.js.map +1 -1
- package/dist/cjs/components/MultiAvatar/MultiAvatar.js +35 -6
- package/dist/cjs/components/MultiAvatar/MultiAvatar.js.map +1 -1
- package/dist/cjs/components/Select/Select.js +2 -1
- package/dist/cjs/components/Select/Select.js.map +1 -1
- package/dist/cjs/components/Window/Window.js +0 -7
- package/dist/cjs/components/Window/Window.js.map +1 -1
- package/dist/cjs/components/index.js +11 -0
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/esm/components/Avatar/Avatar.d.ts +28 -2
- package/dist/esm/components/Avatar/Avatar.d.ts.map +1 -1
- package/dist/esm/components/Avatar/Avatar.js +33 -7
- package/dist/esm/components/Avatar/Avatar.js.map +1 -1
- package/dist/esm/components/Avatar/Styles.d.ts +3 -1
- package/dist/esm/components/Avatar/Styles.d.ts.map +1 -1
- package/dist/esm/components/Avatar/Styles.js +9 -4
- package/dist/esm/components/Avatar/Styles.js.map +1 -1
- package/dist/esm/components/Badge/Badge.d.ts +32 -0
- package/dist/esm/components/Badge/Badge.d.ts.map +1 -0
- package/dist/esm/components/Badge/Badge.js +42 -0
- package/dist/esm/components/Badge/Badge.js.map +1 -0
- package/dist/esm/components/Badge/Styles.d.ts +3 -0
- package/dist/esm/components/Badge/Styles.d.ts.map +1 -0
- package/dist/esm/components/Badge/Styles.js +24 -0
- package/dist/esm/components/Badge/Styles.js.map +1 -0
- package/dist/esm/components/Badge/index.d.ts +2 -0
- package/dist/esm/components/Badge/index.d.ts.map +1 -0
- package/dist/esm/components/Badge/index.js +2 -0
- package/dist/esm/components/Badge/index.js.map +1 -0
- package/dist/esm/components/Button/Button.d.ts +1 -0
- package/dist/esm/components/Button/Button.d.ts.map +1 -1
- package/dist/esm/components/Button/Button.js +1 -0
- package/dist/esm/components/Button/Button.js.map +1 -1
- package/dist/esm/components/ComboBox/ComboBox.js.map +1 -1
- package/dist/esm/components/IconButton/IconButton.d.ts +1 -0
- package/dist/esm/components/IconButton/IconButton.d.ts.map +1 -1
- package/dist/esm/components/IconButton/IconButton.js +1 -0
- package/dist/esm/components/IconButton/IconButton.js.map +1 -1
- package/dist/esm/components/MultiAvatar/MultiAvatar.d.ts +33 -3
- package/dist/esm/components/MultiAvatar/MultiAvatar.d.ts.map +1 -1
- package/dist/esm/components/MultiAvatar/MultiAvatar.js +35 -6
- package/dist/esm/components/MultiAvatar/MultiAvatar.js.map +1 -1
- package/dist/esm/components/Select/Select.d.ts.map +1 -1
- package/dist/esm/components/Select/Select.js +2 -1
- package/dist/esm/components/Select/Select.js.map +1 -1
- package/dist/esm/components/Window/Window.d.ts.map +1 -1
- package/dist/esm/components/Window/Window.js +1 -8
- package/dist/esm/components/Window/Window.js.map +1 -1
- package/dist/esm/components/index.d.ts +1 -0
- package/dist/esm/components/index.d.ts.map +1 -1
- package/dist/esm/components/index.js +1 -0
- package/dist/esm/components/index.js.map +1 -1
- package/dist/index.js +143 -24
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -7,12 +7,36 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.Avatar = void 0;
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
var _Styles = require("./Styles");
|
|
10
|
-
var _excluded = ["url", "alt", "size", "className"];
|
|
10
|
+
var _excluded = ["url", "alt", "size", "className", "children"];
|
|
11
11
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
12
12
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
13
13
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
14
14
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
15
15
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
16
|
+
/**
|
|
17
|
+
* @component Avatar
|
|
18
|
+
* @description
|
|
19
|
+
* The Avatar component is used to represent user, and displays the profile picture, initials or fallback icon.
|
|
20
|
+
*
|
|
21
|
+
* @prop {url} - The image url of the Avatar.
|
|
22
|
+
* @prop {size} - controls the size of an Avatar (width and height) in pixels.
|
|
23
|
+
* @prop {alt} - alt attribute of the img.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* <Avatar url="https://faces-img.xcdn.link/image-lorem-face-954.jpg" alt="Profile picture of John" />
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* <Avatar
|
|
30
|
+
* url="https://faces-img.xcdn.link/image-lorem-face-954.jpg"
|
|
31
|
+
* alt="Profile picture of John">
|
|
32
|
+
* <Badge size={8} backgroundColor="green" position="bottom-left" />
|
|
33
|
+
* </Avatar>
|
|
34
|
+
*
|
|
35
|
+
* @see
|
|
36
|
+
* https://system.activecollab.com/?path=/story/components-button-indicators-avatar--avatar
|
|
37
|
+
* @see
|
|
38
|
+
* https://design.activecollab.com/docs/components/avatar
|
|
39
|
+
*/
|
|
16
40
|
var Avatar = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
17
41
|
var url = _ref.url,
|
|
18
42
|
_ref$alt = _ref.alt,
|
|
@@ -20,15 +44,17 @@ var Avatar = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
20
44
|
_ref$size = _ref.size,
|
|
21
45
|
size = _ref$size === void 0 ? 24 : _ref$size,
|
|
22
46
|
className = _ref.className,
|
|
47
|
+
children = _ref.children,
|
|
23
48
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
24
|
-
return /*#__PURE__*/_react.default.createElement(_Styles.
|
|
49
|
+
return /*#__PURE__*/_react.default.createElement(_Styles.StyledWrapper, {
|
|
50
|
+
className: className
|
|
51
|
+
}, children, /*#__PURE__*/_react.default.createElement(_Styles.StyledAvatar, _extends({
|
|
52
|
+
size: size,
|
|
25
53
|
ref: ref,
|
|
26
54
|
src: url,
|
|
27
55
|
alt: alt,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
className: className
|
|
31
|
-
}));
|
|
56
|
+
role: "img"
|
|
57
|
+
}, rest)));
|
|
32
58
|
});
|
|
33
59
|
exports.Avatar = Avatar;
|
|
34
60
|
Avatar.displayName = "Avatar";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar.js","names":["Avatar","forwardRef","ref","url","alt","size","className","rest","displayName"],"sources":["../../../../src/components/Avatar/Avatar.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\nimport { StyledAvatar } from \"./Styles\";\n\nexport interface
|
|
1
|
+
{"version":3,"file":"Avatar.js","names":["Avatar","forwardRef","ref","url","alt","size","className","children","rest","displayName"],"sources":["../../../../src/components/Avatar/Avatar.tsx"],"sourcesContent":["import React, { forwardRef, PropsWithChildren } from \"react\";\nimport { StyledAvatar, StyledWrapper } from \"./Styles\";\n\nexport interface AvatarProps extends React.ComponentPropsWithoutRef<\"img\"> {\n /** Path url. */\n url: string;\n /** Alt text. */\n alt?: string;\n /** Image size. */\n size?: number;\n /** Custom class. */\n className?: string;\n}\n\n/**\n * @component Avatar\n * @description\n * The Avatar component is used to represent user, and displays the profile picture, initials or fallback icon.\n *\n * @prop {url} - The image url of the Avatar.\n * @prop {size} - controls the size of an Avatar (width and height) in pixels.\n * @prop {alt} - alt attribute of the img.\n *\n * @example\n * <Avatar url=\"https://faces-img.xcdn.link/image-lorem-face-954.jpg\" alt=\"Profile picture of John\" />\n *\n * @example\n * <Avatar\n * url=\"https://faces-img.xcdn.link/image-lorem-face-954.jpg\"\n * alt=\"Profile picture of John\">\n * <Badge size={8} backgroundColor=\"green\" position=\"bottom-left\" />\n * </Avatar>\n *\n * @see\n * https://system.activecollab.com/?path=/story/components-button-indicators-avatar--avatar\n * @see\n * https://design.activecollab.com/docs/components/avatar\n */\nexport const Avatar = forwardRef<\n HTMLImageElement,\n PropsWithChildren<AvatarProps>\n>(\n (\n { url, alt = \"Avatar Image\", size = 24, className, children, ...rest },\n ref\n ) => (\n <StyledWrapper className={className}>\n {children}\n <StyledAvatar\n size={size}\n ref={ref}\n src={url}\n alt={alt}\n role=\"img\"\n {...rest}\n />\n </StyledWrapper>\n )\n);\n\nAvatar.displayName = \"Avatar\";\n"],"mappings":";;;;;;;AAAA;AACA;AAAuD;AAAA;AAAA;AAAA;AAAA;AAAA;AAavD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,MAAM,gBAAG,IAAAC,iBAAU,EAI9B,gBAEEC,GAAG;EAAA,IADDC,GAAG,QAAHA,GAAG;IAAA,gBAAEC,GAAG;IAAHA,GAAG,yBAAG,cAAc;IAAA,iBAAEC,IAAI;IAAJA,IAAI,0BAAG,EAAE;IAAEC,SAAS,QAATA,SAAS;IAAEC,QAAQ,QAARA,QAAQ;IAAKC,IAAI;EAAA,oBAGpE,6BAAC,qBAAa;IAAC,SAAS,EAAEF;EAAU,GACjCC,QAAQ,eACT,6BAAC,oBAAY;IACX,IAAI,EAAEF,IAAK;IACX,GAAG,EAAEH,GAAI;IACT,GAAG,EAAEC,GAAI;IACT,GAAG,EAAEC,GAAI;IACT,IAAI,EAAC;EAAK,GACNI,IAAI,EACR,CACY;AAAA,CACjB,CACF;AAAC;AAEFR,MAAM,CAACS,WAAW,GAAG,QAAQ"}
|
|
@@ -3,15 +3,21 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.StyledAvatar = void 0;
|
|
6
|
+
exports.StyledWrapper = exports.StyledAvatar = void 0;
|
|
7
7
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
8
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
|
+
var StyledWrapper = _styledComponents.default.span.withConfig({
|
|
10
|
+
displayName: "Styles__StyledWrapper",
|
|
11
|
+
componentId: "sc-5x2tyd-0"
|
|
12
|
+
})(["display:inline-flex;position:relative;"]);
|
|
13
|
+
exports.StyledWrapper = StyledWrapper;
|
|
9
14
|
var StyledAvatar = _styledComponents.default.img.withConfig({
|
|
10
15
|
displayName: "Styles__StyledAvatar",
|
|
11
|
-
componentId: "sc-5x2tyd-
|
|
12
|
-
})(["", ""], {
|
|
13
|
-
|
|
14
|
-
|
|
16
|
+
componentId: "sc-5x2tyd-1"
|
|
17
|
+
})(["border-radius:100%;object-fit:cover;block-size:", ";inline-size:", ";"], function (props) {
|
|
18
|
+
return props.size + "px";
|
|
19
|
+
}, function (props) {
|
|
20
|
+
return props.size + "px";
|
|
15
21
|
});
|
|
16
22
|
exports.StyledAvatar = StyledAvatar;
|
|
17
23
|
//# sourceMappingURL=Styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Styles.js","names":["
|
|
1
|
+
{"version":3,"file":"Styles.js","names":["StyledWrapper","styled","span","StyledAvatar","img","props","size"],"sources":["../../../../src/components/Avatar/Styles.ts"],"sourcesContent":["import styled from \"styled-components\";\nimport { AvatarProps } from \"./Avatar\";\n\nexport const StyledWrapper = styled.span`\n display: inline-flex;\n position: relative;\n`;\n\nexport const StyledAvatar = styled.img<Pick<AvatarProps, \"size\">>`\n border-radius: 100%;\n object-fit: cover;\n\n block-size: ${(props) => props.size + \"px\"};\n inline-size: ${(props) => props.size + \"px\"};\n`;\n"],"mappings":";;;;;;AAAA;AAAuC;AAGhC,IAAMA,aAAa,GAAGC,yBAAM,CAACC,IAAI;EAAA;EAAA;AAAA,8CAGvC;AAAC;AAEK,IAAMC,YAAY,GAAGF,yBAAM,CAACG,GAAG;EAAA;EAAA;AAAA,8EAItB,UAACC,KAAK;EAAA,OAAKA,KAAK,CAACC,IAAI,GAAG,IAAI;AAAA,GAC3B,UAACD,KAAK;EAAA,OAAKA,KAAK,CAACC,IAAI,GAAG,IAAI;AAAA,EAC5C;AAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Badge = void 0;
|
|
7
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _Styles = require("./Styles");
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
/**
|
|
12
|
+
* @component Badge
|
|
13
|
+
* @description
|
|
14
|
+
* In some products, you might need to show a badge on the right corner of the avatar.
|
|
15
|
+
* We call this a badge. Here's an example that shows if the user is online.
|
|
16
|
+
*
|
|
17
|
+
* @prop {position} - dictates the position of a badge.
|
|
18
|
+
* @prop {dimension} - controls the size of a badge (width and height) in pixels.
|
|
19
|
+
* @prop {backgroundColor} - background-color of a badge.
|
|
20
|
+
* @prop {isVisible} - dictates if badge should be visible or not.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* <IconButton variant="text gray" size="big">
|
|
24
|
+
* <BellOffIcon />
|
|
25
|
+
* <Badge position="top-right" backgroundColor="red" dimension={16} />
|
|
26
|
+
* </IconButton>
|
|
27
|
+
*
|
|
28
|
+
* @see
|
|
29
|
+
* https://system.activecollab.com/?path=/story/components-button-indicators-badge--badge
|
|
30
|
+
*/
|
|
31
|
+
var Badge = function Badge(_ref) {
|
|
32
|
+
var _ref$dimension = _ref.dimension,
|
|
33
|
+
dimension = _ref$dimension === void 0 ? 8 : _ref$dimension,
|
|
34
|
+
className = _ref.className,
|
|
35
|
+
_ref$position = _ref.position,
|
|
36
|
+
position = _ref$position === void 0 ? "bottom-left" : _ref$position,
|
|
37
|
+
_ref$backgroundColor = _ref.backgroundColor,
|
|
38
|
+
backgroundColor = _ref$backgroundColor === void 0 ? "#40C37D" : _ref$backgroundColor,
|
|
39
|
+
_ref$isVisible = _ref.isVisible,
|
|
40
|
+
isVisible = _ref$isVisible === void 0 ? true : _ref$isVisible;
|
|
41
|
+
return isVisible ? /*#__PURE__*/_react.default.createElement(_Styles.StyledBadge, {
|
|
42
|
+
className: (0, _classnames.default)("c-badge", className),
|
|
43
|
+
dimension: dimension,
|
|
44
|
+
position: position,
|
|
45
|
+
backgroundColor: backgroundColor,
|
|
46
|
+
role: "status"
|
|
47
|
+
}) : null;
|
|
48
|
+
};
|
|
49
|
+
exports.Badge = Badge;
|
|
50
|
+
//# sourceMappingURL=Badge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Badge.js","names":["Badge","dimension","className","position","backgroundColor","isVisible","classNames"],"sources":["../../../../src/components/Badge/Badge.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport React from \"react\";\nimport { StyledBadge } from \"./Styles\";\n\ntype Position = \"top-left\" | \"top-right\" | \"bottom-right\" | \"bottom-left\";\n\nexport interface BadgeProps {\n position?: Position;\n dimension?: number;\n className?: string;\n backgroundColor?: string;\n isVisible?: boolean;\n}\n\n/**\n * @component Badge\n * @description\n * In some products, you might need to show a badge on the right corner of the avatar.\n * We call this a badge. Here's an example that shows if the user is online.\n *\n * @prop {position} - dictates the position of a badge.\n * @prop {dimension} - controls the size of a badge (width and height) in pixels.\n * @prop {backgroundColor} - background-color of a badge.\n * @prop {isVisible} - dictates if badge should be visible or not.\n *\n * @example\n * <IconButton variant=\"text gray\" size=\"big\">\n * <BellOffIcon />\n * <Badge position=\"top-right\" backgroundColor=\"red\" dimension={16} />\n * </IconButton>\n *\n * @see\n * https://system.activecollab.com/?path=/story/components-button-indicators-badge--badge\n */\nexport const Badge = ({\n dimension = 8,\n className,\n position = \"bottom-left\",\n backgroundColor = \"#40C37D\",\n isVisible = true,\n}: BadgeProps) => {\n return isVisible ? (\n <StyledBadge\n className={classNames(\"c-badge\", className)}\n dimension={dimension}\n position={position}\n backgroundColor={backgroundColor}\n role=\"status\"\n />\n ) : null;\n};\n"],"mappings":";;;;;;AAAA;AACA;AACA;AAAuC;AAYvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,KAAK,GAAG,SAARA,KAAK,OAMA;EAAA,0BALhBC,SAAS;IAATA,SAAS,+BAAG,CAAC;IACbC,SAAS,QAATA,SAAS;IAAA,qBACTC,QAAQ;IAARA,QAAQ,8BAAG,aAAa;IAAA,4BACxBC,eAAe;IAAfA,eAAe,qCAAG,SAAS;IAAA,sBAC3BC,SAAS;IAATA,SAAS,+BAAG,IAAI;EAEhB,OAAOA,SAAS,gBACd,6BAAC,mBAAW;IACV,SAAS,EAAE,IAAAC,mBAAU,EAAC,SAAS,EAAEJ,SAAS,CAAE;IAC5C,SAAS,EAAED,SAAU;IACrB,QAAQ,EAAEE,QAAS;IACnB,eAAe,EAAEC,eAAgB;IACjC,IAAI,EAAC;EAAQ,EACb,GACA,IAAI;AACV,CAAC;AAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.StyledBadge = void 0;
|
|
8
|
+
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
9
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
10
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
11
|
+
var StyledBadge = _styledComponents.default.div.withConfig({
|
|
12
|
+
displayName: "Styles__StyledBadge",
|
|
13
|
+
componentId: "sc-6o8do5-0"
|
|
14
|
+
})(["background-color:", ";block-size:", ";border-radius:100%;border:2px solid var(--page-paper-main);inline-size:", ";position:absolute;pointer-events:none;z-index:1;", " ", " ", " ", ""], function (props) {
|
|
15
|
+
return props.backgroundColor;
|
|
16
|
+
}, function (props) {
|
|
17
|
+
return props.dimension + "px";
|
|
18
|
+
}, function (props) {
|
|
19
|
+
return props.dimension + "px";
|
|
20
|
+
}, function (_ref) {
|
|
21
|
+
var position = _ref.position;
|
|
22
|
+
return position === "top-left" && (0, _styledComponents.css)(["inset-block-start:0;inset-inline-start:0;"]);
|
|
23
|
+
}, function (_ref2) {
|
|
24
|
+
var position = _ref2.position;
|
|
25
|
+
return position === "top-right" && (0, _styledComponents.css)(["inset-block-start:0;inset-inline-end:0;"]);
|
|
26
|
+
}, function (_ref3) {
|
|
27
|
+
var position = _ref3.position;
|
|
28
|
+
return position === "bottom-right" && (0, _styledComponents.css)(["inset-block-end:0;inset-inline-end:0;"]);
|
|
29
|
+
}, function (_ref4) {
|
|
30
|
+
var position = _ref4.position;
|
|
31
|
+
return position === "bottom-left" && (0, _styledComponents.css)(["inset-block-end:0;inset-inline-start:0;"]);
|
|
32
|
+
});
|
|
33
|
+
exports.StyledBadge = StyledBadge;
|
|
34
|
+
//# sourceMappingURL=Styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Styles.js","names":["StyledBadge","styled","div","props","backgroundColor","dimension","position","css"],"sources":["../../../../src/components/Badge/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\nimport { BadgeProps } from \"./Badge\";\n\nexport const StyledBadge = styled.div<Partial<BadgeProps>>`\n background-color: ${(props) => props.backgroundColor};\n block-size: ${(props) => props.dimension + \"px\"};\n border-radius: 100%;\n border: 2px solid var(--page-paper-main);\n inline-size: ${(props) => props.dimension + \"px\"};\n position: absolute;\n pointer-events: none;\n z-index: 1;\n\n ${({ position }) =>\n position === \"top-left\" &&\n css`\n inset-block-start: 0;\n inset-inline-start: 0;\n `}\n\n ${({ position }) =>\n position === \"top-right\" &&\n css`\n inset-block-start: 0;\n inset-inline-end: 0;\n `}\n\n ${({ position }) =>\n position === \"bottom-right\" &&\n css`\n inset-block-end: 0;\n inset-inline-end: 0;\n `}\n\n ${({ position }) =>\n position === \"bottom-left\" &&\n css`\n inset-block-end: 0;\n inset-inline-start: 0;\n `}\n`;\n"],"mappings":";;;;;;;AAAA;AAAgD;AAAA;AAGzC,IAAMA,WAAW,GAAGC,yBAAM,CAACC,GAAG;EAAA;EAAA;AAAA,8LACf,UAACC,KAAK;EAAA,OAAKA,KAAK,CAACC,eAAe;AAAA,GACtC,UAACD,KAAK;EAAA,OAAKA,KAAK,CAACE,SAAS,GAAG,IAAI;AAAA,GAGhC,UAACF,KAAK;EAAA,OAAKA,KAAK,CAACE,SAAS,GAAG,IAAI;AAAA,GAK9C;EAAA,IAAGC,QAAQ,QAARA,QAAQ;EAAA,OACXA,QAAQ,KAAK,UAAU,QACvBC,qBAAG,gDAGF;AAAA,GAED;EAAA,IAAGD,QAAQ,SAARA,QAAQ;EAAA,OACXA,QAAQ,KAAK,WAAW,QACxBC,qBAAG,8CAGF;AAAA,GAEC;EAAA,IAAGD,QAAQ,SAARA,QAAQ;EAAA,OACbA,QAAQ,KAAK,cAAc,QAC3BC,qBAAG,4CAGF;AAAA,GAEC;EAAA,IAAGD,QAAQ,SAARA,QAAQ;EAAA,OACbA,QAAQ,KAAK,aAAa,QAC1BC,qBAAG,8CAGF;AAAA,EACJ;AAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _Badge = require("./Badge");
|
|
7
|
+
Object.keys(_Badge).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _Badge[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function get() {
|
|
13
|
+
return _Badge[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/Badge/index.ts"],"sourcesContent":["export * from \"./Badge\";\n"],"mappings":";;;;;AAAA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
|
|
@@ -33,6 +33,7 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
|
|
|
33
33
|
* )
|
|
34
34
|
* @see
|
|
35
35
|
* https://system.activecollab.com/?path=/story/components-button-indicators-button--button
|
|
36
|
+
* https://design.activecollab.com/docs/components/button
|
|
36
37
|
*/
|
|
37
38
|
var Button = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
38
39
|
var children = _ref.children,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","names":["Button","forwardRef","ref","children","active","variant","size","className","args","classnames","Object","Array","map","value","index","displayName"],"sources":["../../../../src/components/Button/Button.tsx"],"sourcesContent":["import React, {\n ComponentPropsWithoutRef,\n forwardRef,\n PropsWithChildren,\n} from \"react\";\nimport classnames from \"classnames\";\nimport {\n StyledButton,\n StyledButtonElement,\n StyledButtonElements,\n} from \"./Styles\";\n\nexport interface ButtonProps extends ComponentPropsWithoutRef<\"button\"> {\n /** Types of a button. */\n variant?:\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"option\"\n | \"contained\"\n | \"outlined\"\n | \"text colored\"\n | \"text gray\"\n | \"dark transparent\"\n | \"circle raised\";\n /** Button size dictates the height. */\n size?: \"big\" | \"small\" | \"medium\";\n /** Active or pressed state. */\n active?: boolean;\n}\n/**\n * @component Button\n * @description\n * Button component is used to trigger an action or event, such as submitting a form,\n * opening a Dialog, canceling an action, or performing a delete operation.\n *\n * @prop {variant} - adds unique look and feel to button.\n * @prop {size} - controls the size of a button.\n * @prop {active} - adds active/pressed state to a button.\n *\n * @example\n * return (\n * <Button className=\"mr-2\" variant=\"primary\" size=\"big\">\n * Save\n * </Button>\n * )\n * @see\n * https://system.activecollab.com/?path=/story/components-button-indicators-button--button\n */\nexport const Button = forwardRef<\n HTMLButtonElement,\n PropsWithChildren<ButtonProps>\n>(\n (\n {\n children,\n active = false,\n variant = \"contained\",\n size = \"medium\",\n className,\n ...args\n },\n ref\n ) => {\n return (\n <StyledButton\n className={classnames(\"c-btn\", className, {\n \"c-btn--contained\": variant === \"primary\" || variant === \"contained\",\n \"c-btn--outlined\": variant === \"secondary\" || variant === \"outlined\",\n \"c-btn--text_colored\":\n variant === \"tertiary\" || variant === \"text colored\",\n \"c-btn--text_gray\": variant === \"option\" || variant === \"text gray\",\n \"c-btn--dark_transparent\": variant === \"dark transparent\",\n \"c-btn--circle-raised\": variant === \"circle raised\",\n \"c-btn--big\": size === \"big\",\n \"c-btn--small\": size === \"small\",\n \"c-btn--icon-only\":\n children instanceof Object && !(children instanceof Array),\n })}\n iconOnly={children instanceof Object && !(children instanceof Array)}\n variant={variant}\n active={active}\n size={size}\n ref={ref}\n aria-pressed={active}\n role=\"button\"\n {...args}\n >\n {children instanceof Array ? (\n <StyledButtonElements className=\"c-btn__elements\">\n {children.map((value, index) =>\n value ? (\n <StyledButtonElement\n className=\"c-btn__elements__element\"\n key={index}\n >\n {value}\n </StyledButtonElement>\n ) : null\n )}\n </StyledButtonElements>\n ) : (\n children\n )}\n </StyledButton>\n );\n }\n);\n\nButton.displayName = \"Button\";\n"],"mappings":";;;;;;;AAAA;AAKA;AACA;AAIkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoBlB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,MAAM,gBAAG,IAAAC,iBAAU,EAI9B,gBASEC,GAAG,EACA;EAAA,IARDC,QAAQ,QAARA,QAAQ;IAAA,mBACRC,MAAM;IAANA,MAAM,4BAAG,KAAK;IAAA,oBACdC,OAAO;IAAPA,OAAO,6BAAG,WAAW;IAAA,iBACrBC,IAAI;IAAJA,IAAI,0BAAG,QAAQ;IACfC,SAAS,QAATA,SAAS;IACNC,IAAI;EAIT,oBACE,6BAAC,oBAAY;IACX,SAAS,EAAE,IAAAC,mBAAU,EAAC,OAAO,EAAEF,SAAS,EAAE;MACxC,kBAAkB,EAAEF,OAAO,KAAK,SAAS,IAAIA,OAAO,KAAK,WAAW;MACpE,iBAAiB,EAAEA,OAAO,KAAK,WAAW,IAAIA,OAAO,KAAK,UAAU;MACpE,qBAAqB,EACnBA,OAAO,KAAK,UAAU,IAAIA,OAAO,KAAK,cAAc;MACtD,kBAAkB,EAAEA,OAAO,KAAK,QAAQ,IAAIA,OAAO,KAAK,WAAW;MACnE,yBAAyB,EAAEA,OAAO,KAAK,kBAAkB;MACzD,sBAAsB,EAAEA,OAAO,KAAK,eAAe;MACnD,YAAY,EAAEC,IAAI,KAAK,KAAK;MAC5B,cAAc,EAAEA,IAAI,KAAK,OAAO;MAChC,kBAAkB,EAChBH,QAAQ,YAAYO,MAAM,IAAI,EAAEP,QAAQ,YAAYQ,KAAK;IAC7D,CAAC,CAAE;IACH,QAAQ,EAAER,QAAQ,YAAYO,MAAM,IAAI,EAAEP,QAAQ,YAAYQ,KAAK,CAAE;IACrE,OAAO,EAAEN,OAAQ;IACjB,MAAM,EAAED,MAAO;IACf,IAAI,EAAEE,IAAK;IACX,GAAG,EAAEJ,GAAI;IACT,gBAAcE,MAAO;IACrB,IAAI,EAAC;EAAQ,GACTI,IAAI,GAEPL,QAAQ,YAAYQ,KAAK,gBACxB,6BAAC,4BAAoB;IAAC,SAAS,EAAC;EAAiB,GAC9CR,QAAQ,CAACS,GAAG,CAAC,UAACC,KAAK,EAAEC,KAAK;IAAA,OACzBD,KAAK,gBACH,6BAAC,2BAAmB;MAClB,SAAS,EAAC,0BAA0B;MACpC,GAAG,EAAEC;IAAM,GAEVD,KAAK,CACc,GACpB,IAAI;EAAA,EACT,CACoB,GAEvBV,QACD,CACY;AAEnB,CAAC,CACF;AAAC;AAEFH,MAAM,CAACe,WAAW,GAAG,QAAQ"}
|
|
1
|
+
{"version":3,"file":"Button.js","names":["Button","forwardRef","ref","children","active","variant","size","className","args","classnames","Object","Array","map","value","index","displayName"],"sources":["../../../../src/components/Button/Button.tsx"],"sourcesContent":["import React, {\n ComponentPropsWithoutRef,\n forwardRef,\n PropsWithChildren,\n} from \"react\";\nimport classnames from \"classnames\";\nimport {\n StyledButton,\n StyledButtonElement,\n StyledButtonElements,\n} from \"./Styles\";\n\nexport interface ButtonProps extends ComponentPropsWithoutRef<\"button\"> {\n /** Types of a button. */\n variant?:\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"option\"\n | \"contained\"\n | \"outlined\"\n | \"text colored\"\n | \"text gray\"\n | \"dark transparent\"\n | \"circle raised\";\n /** Button size dictates the height. */\n size?: \"big\" | \"small\" | \"medium\";\n /** Active or pressed state. */\n active?: boolean;\n}\n/**\n * @component Button\n * @description\n * Button component is used to trigger an action or event, such as submitting a form,\n * opening a Dialog, canceling an action, or performing a delete operation.\n *\n * @prop {variant} - adds unique look and feel to button.\n * @prop {size} - controls the size of a button.\n * @prop {active} - adds active/pressed state to a button.\n *\n * @example\n * return (\n * <Button className=\"mr-2\" variant=\"primary\" size=\"big\">\n * Save\n * </Button>\n * )\n * @see\n * https://system.activecollab.com/?path=/story/components-button-indicators-button--button\n * https://design.activecollab.com/docs/components/button\n */\nexport const Button = forwardRef<\n HTMLButtonElement,\n PropsWithChildren<ButtonProps>\n>(\n (\n {\n children,\n active = false,\n variant = \"contained\",\n size = \"medium\",\n className,\n ...args\n },\n ref\n ) => {\n return (\n <StyledButton\n className={classnames(\"c-btn\", className, {\n \"c-btn--contained\": variant === \"primary\" || variant === \"contained\",\n \"c-btn--outlined\": variant === \"secondary\" || variant === \"outlined\",\n \"c-btn--text_colored\":\n variant === \"tertiary\" || variant === \"text colored\",\n \"c-btn--text_gray\": variant === \"option\" || variant === \"text gray\",\n \"c-btn--dark_transparent\": variant === \"dark transparent\",\n \"c-btn--circle-raised\": variant === \"circle raised\",\n \"c-btn--big\": size === \"big\",\n \"c-btn--small\": size === \"small\",\n \"c-btn--icon-only\":\n children instanceof Object && !(children instanceof Array),\n })}\n iconOnly={children instanceof Object && !(children instanceof Array)}\n variant={variant}\n active={active}\n size={size}\n ref={ref}\n aria-pressed={active}\n role=\"button\"\n {...args}\n >\n {children instanceof Array ? (\n <StyledButtonElements className=\"c-btn__elements\">\n {children.map((value, index) =>\n value ? (\n <StyledButtonElement\n className=\"c-btn__elements__element\"\n key={index}\n >\n {value}\n </StyledButtonElement>\n ) : null\n )}\n </StyledButtonElements>\n ) : (\n children\n )}\n </StyledButton>\n );\n }\n);\n\nButton.displayName = \"Button\";\n"],"mappings":";;;;;;;AAAA;AAKA;AACA;AAIkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoBlB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,MAAM,gBAAG,IAAAC,iBAAU,EAI9B,gBASEC,GAAG,EACA;EAAA,IARDC,QAAQ,QAARA,QAAQ;IAAA,mBACRC,MAAM;IAANA,MAAM,4BAAG,KAAK;IAAA,oBACdC,OAAO;IAAPA,OAAO,6BAAG,WAAW;IAAA,iBACrBC,IAAI;IAAJA,IAAI,0BAAG,QAAQ;IACfC,SAAS,QAATA,SAAS;IACNC,IAAI;EAIT,oBACE,6BAAC,oBAAY;IACX,SAAS,EAAE,IAAAC,mBAAU,EAAC,OAAO,EAAEF,SAAS,EAAE;MACxC,kBAAkB,EAAEF,OAAO,KAAK,SAAS,IAAIA,OAAO,KAAK,WAAW;MACpE,iBAAiB,EAAEA,OAAO,KAAK,WAAW,IAAIA,OAAO,KAAK,UAAU;MACpE,qBAAqB,EACnBA,OAAO,KAAK,UAAU,IAAIA,OAAO,KAAK,cAAc;MACtD,kBAAkB,EAAEA,OAAO,KAAK,QAAQ,IAAIA,OAAO,KAAK,WAAW;MACnE,yBAAyB,EAAEA,OAAO,KAAK,kBAAkB;MACzD,sBAAsB,EAAEA,OAAO,KAAK,eAAe;MACnD,YAAY,EAAEC,IAAI,KAAK,KAAK;MAC5B,cAAc,EAAEA,IAAI,KAAK,OAAO;MAChC,kBAAkB,EAChBH,QAAQ,YAAYO,MAAM,IAAI,EAAEP,QAAQ,YAAYQ,KAAK;IAC7D,CAAC,CAAE;IACH,QAAQ,EAAER,QAAQ,YAAYO,MAAM,IAAI,EAAEP,QAAQ,YAAYQ,KAAK,CAAE;IACrE,OAAO,EAAEN,OAAQ;IACjB,MAAM,EAAED,MAAO;IACf,IAAI,EAAEE,IAAK;IACX,GAAG,EAAEJ,GAAI;IACT,gBAAcE,MAAO;IACrB,IAAI,EAAC;EAAQ,GACTI,IAAI,GAEPL,QAAQ,YAAYQ,KAAK,gBACxB,6BAAC,4BAAoB;IAAC,SAAS,EAAC;EAAiB,GAC9CR,QAAQ,CAACS,GAAG,CAAC,UAACC,KAAK,EAAEC,KAAK;IAAA,OACzBD,KAAK,gBACH,6BAAC,2BAAmB;MAClB,SAAS,EAAC,0BAA0B;MACpC,GAAG,EAAEC;IAAM,GAEVD,KAAK,CACc,GACpB,IAAI;EAAA,EACT,CACoB,GAEvBV,QACD,CACY;AAEnB,CAAC,CACF;AAAC;AAEFH,MAAM,CAACe,WAAW,GAAG,QAAQ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComboBox.js","names":["ComboBox","options","selected","loading","loadingText","onChange","placeholder","handleEmptyAction","disabled","size","invalid","type","renderChip","forceCloseMenu","renderOption","limitChips","hiddenNumberText","inPortal","inputWrapperClassName","scrollWrapper","prop","selectedName","useMemo","value","map","v","find","q","id","name","useState","setValue","handleOnChange","useCallback","e","target","childNode","setChildNode","elementRef","useRef","handleRef","useForkRef","wrapperRef","chipWrapper","comboBoxRef","open","setOpen","useOnClickOutside","current","contains","handleOnKeyDown","key","stopPropagation","useEffect","focus","blur","emptyAction","handleChange","selectedValue","onOpen","handleRenderOption","option","props","image","color","textColor","handleDeselect","handleMouseDown","preventDefault","handleBlur","renderChipAdornment","index","avatarProps","leftAdornment","undefined","onClose","Array","isArray","includes","newSelected","filter","item","showOnClose","autoSize","length","startAdornment","elements","total","forEach","isGrouped","isOptionGroup","push","groupedOptions","o","_index","hidden","splice","showXIcon","hasSelected","classNames","display","flex","alignSelf","width","children","zIndex","clientWidth","displayName"],"sources":["../../../../src/components/ComboBox/ComboBox.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n useEffect,\n useRef,\n useMemo,\n Fragment,\n} from \"react\";\nimport { RadioButton } from \"../RadioButton\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport { IconButton } from \"../IconButton\";\nimport {\n IAutocompleteProps,\n isOptionGroup,\n} from \"../Autocomplete/Autocomplete\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Popper } from \"../Popper\";\nimport { IOptionGroupProps, IOptionItemProps } from \"../Select\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { SpinnerLoader } from \"../Loaders/Spinner/SpinnerLoader\";\nimport { OptionContent } from \"../Select/OptionContent/OptionContent\";\nimport {\n StyledComboBoxCloseSmallIcon,\n StyledComboBoxCollapseExpandSingleIcon,\n StyledComboBoxInput,\n StyledComboBoxList,\n StyledChipWrapper,\n} from \"./Styles\";\nimport { InputSize } from \"../Input/types\";\nimport { InputAdornment } from \"../Input/InputAdornment\";\nimport { Checkbox } from \"../Checkbox\";\nimport { Chip } from \"../Chip\";\nimport { StyledInput, StyledInputWrapper } from \"../Input/Styles\";\nimport { useOnClickOutside } from \"../../hooks/useOnClickOutside\";\nimport { Avatar, IAvatar } from \"../Avatar\";\nimport { Trigger } from \"../Trigger\";\nimport { Typography } from \"../Typography/Typography\";\nimport tw from \"twin.macro\";\nimport { Portal } from \"../../helpers\";\nimport { ConditionalWrapper } from \"../../helpers/ConditionWrapper/ConditionWrapper\";\nimport classNames from \"classnames\";\n\nexport interface IComboBoxProps\n extends Omit<\n IAutocompleteProps,\n \"handleChange\" | \"inputEl\" | \"clearInputOnSelect\"\n > {\n /** Set combobox in to loading state */\n loading?: boolean;\n /** Text to display while in loading state */\n loadingText?: string;\n /** onChange callback */\n onChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** Placeholder for Select input */\n placeholder?: string;\n /** disable Input element */\n disabled?: boolean;\n /** Combobox size */\n size?: InputSize;\n /** Invalid state */\n invalid?: boolean;\n /** Render Chip */\n renderChip?: <T extends IOptionItemProps>(\n item: T,\n key?: string | number\n ) => JSX.Element;\n /** Close menu on change */\n forceCloseMenu?: boolean;\n /** Limit chips */\n limitChips?: number;\n /** Hidden number text */\n hiddenNumberText?: (hidden: number) => string;\n /** Render Autocomplete in <Portal> */\n inPortal?: boolean;\n /** inputWrapperClassName */\n inputWrapperClassName?: string;\n /** scrollWrapper */\n scrollWrapper?: boolean;\n}\n\nexport const ComboBox: FC<IComboBoxProps> = ({\n options = [],\n selected,\n loading = false,\n loadingText,\n onChange,\n placeholder,\n handleEmptyAction,\n disabled = false,\n size = \"regular\",\n invalid = false,\n type = \"single\",\n renderChip,\n forceCloseMenu = type === \"single\",\n renderOption,\n limitChips = 2,\n hiddenNumberText,\n inPortal = false,\n inputWrapperClassName,\n scrollWrapper,\n ...prop\n}) => {\n const selectedName = useMemo(() => {\n let value = \"\";\n if (!selected) {\n return value;\n }\n options.map((v) => {\n if ((v as IOptionGroupProps)?.options) {\n return (v as IOptionGroupProps).options.find((q) => {\n if (q.id === selected) {\n value = q.name;\n return;\n }\n });\n } else {\n if (v.id === selected) {\n value = v.name;\n return;\n }\n }\n });\n return value;\n }, [options, selected]);\n const [value, setValue] = useState(selectedName);\n const handleOnChange = useCallback((e) => setValue(e.target.value), []);\n const [childNode, setChildNode] = useState<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(setChildNode, elementRef);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const chipWrapper = useRef<HTMLDivElement>(null);\n const comboBoxRef = useRef<HTMLDivElement | null>(null);\n\n const [open, setOpen] = useState(false);\n\n useOnClickOutside(wrapperRef, (e) => {\n if (e.target && comboBoxRef.current?.contains(e.target as Node)) {\n return;\n }\n setOpen(false);\n });\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (e.key === \"Escape\" && open) {\n setOpen(false);\n setValue(selectedName);\n e.stopPropagation();\n }\n if (e.key === \"Enter\" && type === \"multiple\") {\n setValue(\"\");\n }\n },\n [open, selectedName, type]\n );\n\n useEffect(() => {\n open && childNode?.focus();\n !open && childNode?.blur();\n }, [childNode, open]);\n\n useEffect(() => {\n setValue(selectedName);\n }, [selectedName]);\n\n const emptyAction = useCallback(\n (v) => {\n handleEmptyAction?.(v);\n setOpen(false);\n },\n [handleEmptyAction]\n );\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (selectedValue !== selected && typeof onChange === \"function\") {\n onChange(selectedValue);\n }\n if (forceCloseMenu) {\n setOpen(false);\n }\n },\n [forceCloseMenu, onChange, selected]\n );\n\n const onOpen = useCallback(() => {\n if (!disabled) {\n setOpen(true);\n }\n }, [disabled]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n if (type === \"multiple\") {\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <Checkbox {...props} />\n </>\n );\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <RadioButton {...props} />\n </>\n );\n },\n [type, renderOption]\n );\n\n const handleDeselect = useCallback(\n (e) => {\n e.stopPropagation();\n if (type === \"multiple\") {\n onChange?.([]);\n } else {\n onChange?.(\"\");\n }\n\n setOpen(false);\n },\n [type, onChange]\n );\n\n const handleMouseDown = useCallback((e) => {\n e.preventDefault();\n }, []);\n\n const handleBlur = useCallback(() => {\n setValue(selectedName);\n }, [selectedName]);\n\n const renderChipAdornment = useCallback(\n (option, index) => {\n if (typeof renderChip === \"function\") {\n return renderChip(option, index);\n }\n const avatarProps: Partial<IAvatar> = {\n size: 18,\n };\n switch (size) {\n case \"big\":\n avatarProps.size = 22;\n break;\n case \"small\":\n avatarProps.size = 14;\n break;\n }\n const leftAdornment = option.image ? (\n <Avatar\n css={`\n ${tw`tw-my-0.5`}\n ${tw`tw-mr-0.5`}\n `}\n url={option.image}\n {...avatarProps}\n />\n ) : undefined;\n\n const onClose = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (Array.isArray(selected) && selected.includes(option.id)) {\n if (typeof onChange === \"function\") {\n const newSelected = selected.filter((item) => item !== option.id);\n onChange(newSelected);\n }\n }\n };\n\n let showOnClose = true;\n if (disabled) {\n showOnClose = false;\n }\n if (option.color) {\n showOnClose = false;\n }\n\n return (\n <Chip\n className=\"c-combo-box-chip\"\n leftAdornment={leftAdornment}\n label={option.name}\n key={index}\n backgroundColor={option.color}\n color=\"#303037\"\n onClose={showOnClose ? onClose : undefined}\n size={size}\n variant=\"Caption 2\"\n />\n );\n },\n [disabled, onChange, renderChip, selected, size]\n );\n\n const autoSize = useMemo(() => {\n if (\n type === \"multiple\" &&\n open &&\n Array.isArray(selected) &&\n selected.length > 1\n ) {\n return \"auto\";\n }\n return size;\n }, [open, selected, size, type]);\n\n const startAdornment = useMemo(() => {\n if (type === \"multiple\" && Array.isArray(selected) && selected.length > 0) {\n const elements: JSX.Element[] = [];\n let total = 0;\n options.forEach((option, index) => {\n const isGrouped = isOptionGroup(option);\n if (selected.includes(option.id) && !isGrouped) {\n total = total + 1;\n elements.push(renderChipAdornment(option, index));\n } else if (isGrouped) {\n const groupedOptions = option.options.filter((o) =>\n selected.includes(o.id)\n );\n total = total + groupedOptions.length;\n if (groupedOptions.length > 0) {\n groupedOptions.forEach((o, _index) => {\n elements.push(renderChipAdornment(o, `${index}_${_index}`));\n });\n }\n }\n });\n let hidden = 0;\n if (!open && limitChips > 0 && elements.length > limitChips) {\n hidden = elements.splice(\n limitChips,\n elements.length - limitChips\n ).length;\n }\n\n return (\n <Fragment>\n {elements}\n {hidden > 0 && (\n <Typography\n variant={\n size === \"small\"\n ? \"Caption 1\"\n : size === \"regular\"\n ? \"Body 2\"\n : \"Body 1\"\n }\n css={`\n display: flex;\n flex-shrink: 0;\n align-items: center;\n `}\n >\n {typeof hiddenNumberText === \"function\"\n ? hiddenNumberText(hidden)\n : `+${hidden}`}\n </Typography>\n )}\n </Fragment>\n );\n }\n return undefined;\n }, [\n type,\n selected,\n options,\n open,\n limitChips,\n hiddenNumberText,\n renderChipAdornment,\n size,\n ]);\n\n const showXIcon =\n Array.isArray(selected) && type === \"multiple\" && selected.length > 0;\n\n const hasSelected =\n type === \"multiple\" && Array.isArray(selected) && selected.length > 0;\n\n return (\n <div className=\"c-combo-box\">\n {type === \"multiple\" ? (\n <>\n <StyledInputWrapper\n $disabled={disabled}\n $size={size}\n $invalid={invalid}\n ref={comboBoxRef}\n css={`\n display: flex;\n justify-content: space-between;\n flex: 1;\n height: ${autoSize === \"auto\" ? \"auto\" : undefined};\n overflow-y: ${autoSize === \"auto\" && scrollWrapper\n ? \"scroll\"\n : undefined};\n max-height: ${autoSize === \"auto\" && scrollWrapper\n ? \"80px\"\n : undefined};\n `}\n className={classNames(\n \"c-combo-box-input-wrapper\",\n inputWrapperClassName\n )}\n onClick={() => {\n elementRef.current?.focus();\n }}\n >\n <StyledChipWrapper\n $autoSize={autoSize}\n $open={open}\n ref={chipWrapper}\n >\n {startAdornment}\n <StyledInput\n className=\"c-combo-box-input\"\n onBlur={handleBlur}\n onFocus={onOpen}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={!hasSelected ? placeholder : undefined}\n disabled={disabled}\n $size={size}\n $loading={loading}\n style={{\n display: \"flex\",\n flex: 1,\n alignSelf: \"center\",\n width: autoSize === \"auto\" ? \"auto\" : \"100%\",\n }}\n />\n </StyledChipWrapper>\n {!disabled && (\n <>\n {loading ? (\n <SpinnerLoader />\n ) : (\n <>\n {showXIcon && (\n <Trigger\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n data-testid=\"deselect-all\"\n css={`\n display: flex;\n justify-content: center;\n `}\n >\n <StyledComboBoxCloseSmallIcon />\n </Trigger>\n )}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </>\n )}\n </>\n )}\n </StyledInputWrapper>\n </>\n ) : (\n <StyledComboBoxInput\n className={classNames(\"c-combo-box-input\", inputWrapperClassName)}\n onBlur={handleBlur}\n onFocus={onOpen}\n wrapRef={comboBoxRef}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={placeholder}\n disabled={disabled}\n size={size}\n invalid={invalid}\n $loading={loading}\n startAdornment={startAdornment}\n endAdornment={\n !disabled ? (\n <InputAdornment disablePointerEvents={disabled}>\n {loading ? (\n <SpinnerLoader />\n ) : selected ? (\n <IconButton\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n variant=\"text gray\"\n size=\"small\"\n >\n <StyledComboBoxCloseSmallIcon />\n </IconButton>\n ) : null}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </InputAdornment>\n ) : null\n }\n />\n )}\n\n {!disabled ? (\n <ConditionalWrapper\n condition={inPortal}\n wrap={(children) => <Portal>{children}</Portal>}\n >\n <Popper\n anchorEl={comboBoxRef.current}\n open={open}\n placement=\"bottom\"\n style={{\n zIndex: 10,\n width: comboBoxRef.current?.clientWidth,\n }}\n ref={wrapperRef}\n strategy=\"fixed\"\n >\n <RemoveScroll noIsolation allowPinchZoom>\n <StyledComboBoxList $width={comboBoxRef.current?.clientWidth}>\n <Autocomplete\n {...prop}\n inputEl={childNode}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n type={type}\n handleEmptyAction={emptyAction}\n />\n </StyledComboBoxList>\n </RemoveScroll>\n </Popper>\n </ConditionalWrapper>\n ) : null}\n </div>\n );\n};\n\nComboBox.displayName = \"ComboBox\";\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ComboBox.js","names":["ComboBox","options","selected","loading","loadingText","onChange","placeholder","handleEmptyAction","disabled","size","invalid","type","renderChip","forceCloseMenu","renderOption","limitChips","hiddenNumberText","inPortal","inputWrapperClassName","scrollWrapper","prop","selectedName","useMemo","value","map","v","find","q","id","name","useState","setValue","handleOnChange","useCallback","e","target","childNode","setChildNode","elementRef","useRef","handleRef","useForkRef","wrapperRef","chipWrapper","comboBoxRef","open","setOpen","useOnClickOutside","current","contains","handleOnKeyDown","key","stopPropagation","useEffect","focus","blur","emptyAction","handleChange","selectedValue","onOpen","handleRenderOption","option","props","image","color","textColor","handleDeselect","handleMouseDown","preventDefault","handleBlur","renderChipAdornment","index","avatarProps","leftAdornment","undefined","onClose","Array","isArray","includes","newSelected","filter","item","showOnClose","autoSize","length","startAdornment","elements","total","forEach","isGrouped","isOptionGroup","push","groupedOptions","o","_index","hidden","splice","showXIcon","hasSelected","classNames","display","flex","alignSelf","width","children","zIndex","clientWidth","displayName"],"sources":["../../../../src/components/ComboBox/ComboBox.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n useEffect,\n useRef,\n useMemo,\n Fragment,\n} from \"react\";\nimport { RadioButton } from \"../RadioButton\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport { IconButton } from \"../IconButton\";\nimport {\n IAutocompleteProps,\n isOptionGroup,\n} from \"../Autocomplete/Autocomplete\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Popper } from \"../Popper\";\nimport { IOptionGroupProps, IOptionItemProps } from \"../Select\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { SpinnerLoader } from \"../Loaders/Spinner/SpinnerLoader\";\nimport { OptionContent } from \"../Select/OptionContent/OptionContent\";\nimport {\n StyledComboBoxCloseSmallIcon,\n StyledComboBoxCollapseExpandSingleIcon,\n StyledComboBoxInput,\n StyledComboBoxList,\n StyledChipWrapper,\n} from \"./Styles\";\nimport { InputSize } from \"../Input/types\";\nimport { InputAdornment } from \"../Input/InputAdornment\";\nimport { Checkbox } from \"../Checkbox\";\nimport { Chip } from \"../Chip\";\nimport { StyledInput, StyledInputWrapper } from \"../Input/Styles\";\nimport { useOnClickOutside } from \"../../hooks/useOnClickOutside\";\nimport { Avatar, AvatarProps } from \"../Avatar\";\nimport { Trigger } from \"../Trigger\";\nimport { Typography } from \"../Typography/Typography\";\nimport tw from \"twin.macro\";\nimport { Portal } from \"../../helpers\";\nimport { ConditionalWrapper } from \"../../helpers/ConditionWrapper/ConditionWrapper\";\nimport classNames from \"classnames\";\n\nexport interface IComboBoxProps\n extends Omit<\n IAutocompleteProps,\n \"handleChange\" | \"inputEl\" | \"clearInputOnSelect\"\n > {\n /** Set combobox in to loading state */\n loading?: boolean;\n /** Text to display while in loading state */\n loadingText?: string;\n /** onChange callback */\n onChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** Placeholder for Select input */\n placeholder?: string;\n /** disable Input element */\n disabled?: boolean;\n /** Combobox size */\n size?: InputSize;\n /** Invalid state */\n invalid?: boolean;\n /** Render Chip */\n renderChip?: <T extends IOptionItemProps>(\n item: T,\n key?: string | number\n ) => JSX.Element;\n /** Close menu on change */\n forceCloseMenu?: boolean;\n /** Limit chips */\n limitChips?: number;\n /** Hidden number text */\n hiddenNumberText?: (hidden: number) => string;\n /** Render Autocomplete in <Portal> */\n inPortal?: boolean;\n /** inputWrapperClassName */\n inputWrapperClassName?: string;\n /** scrollWrapper */\n scrollWrapper?: boolean;\n}\n\nexport const ComboBox: FC<IComboBoxProps> = ({\n options = [],\n selected,\n loading = false,\n loadingText,\n onChange,\n placeholder,\n handleEmptyAction,\n disabled = false,\n size = \"regular\",\n invalid = false,\n type = \"single\",\n renderChip,\n forceCloseMenu = type === \"single\",\n renderOption,\n limitChips = 2,\n hiddenNumberText,\n inPortal = false,\n inputWrapperClassName,\n scrollWrapper,\n ...prop\n}) => {\n const selectedName = useMemo(() => {\n let value = \"\";\n if (!selected) {\n return value;\n }\n options.map((v) => {\n if ((v as IOptionGroupProps)?.options) {\n return (v as IOptionGroupProps).options.find((q) => {\n if (q.id === selected) {\n value = q.name;\n return;\n }\n });\n } else {\n if (v.id === selected) {\n value = v.name;\n return;\n }\n }\n });\n return value;\n }, [options, selected]);\n const [value, setValue] = useState(selectedName);\n const handleOnChange = useCallback((e) => setValue(e.target.value), []);\n const [childNode, setChildNode] = useState<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(setChildNode, elementRef);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const chipWrapper = useRef<HTMLDivElement>(null);\n const comboBoxRef = useRef<HTMLDivElement | null>(null);\n\n const [open, setOpen] = useState(false);\n\n useOnClickOutside(wrapperRef, (e) => {\n if (e.target && comboBoxRef.current?.contains(e.target as Node)) {\n return;\n }\n setOpen(false);\n });\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (e.key === \"Escape\" && open) {\n setOpen(false);\n setValue(selectedName);\n e.stopPropagation();\n }\n if (e.key === \"Enter\" && type === \"multiple\") {\n setValue(\"\");\n }\n },\n [open, selectedName, type]\n );\n\n useEffect(() => {\n open && childNode?.focus();\n !open && childNode?.blur();\n }, [childNode, open]);\n\n useEffect(() => {\n setValue(selectedName);\n }, [selectedName]);\n\n const emptyAction = useCallback(\n (v) => {\n handleEmptyAction?.(v);\n setOpen(false);\n },\n [handleEmptyAction]\n );\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (selectedValue !== selected && typeof onChange === \"function\") {\n onChange(selectedValue);\n }\n if (forceCloseMenu) {\n setOpen(false);\n }\n },\n [forceCloseMenu, onChange, selected]\n );\n\n const onOpen = useCallback(() => {\n if (!disabled) {\n setOpen(true);\n }\n }, [disabled]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n if (type === \"multiple\") {\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <Checkbox {...props} />\n </>\n );\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <RadioButton {...props} />\n </>\n );\n },\n [type, renderOption]\n );\n\n const handleDeselect = useCallback(\n (e) => {\n e.stopPropagation();\n if (type === \"multiple\") {\n onChange?.([]);\n } else {\n onChange?.(\"\");\n }\n\n setOpen(false);\n },\n [type, onChange]\n );\n\n const handleMouseDown = useCallback((e) => {\n e.preventDefault();\n }, []);\n\n const handleBlur = useCallback(() => {\n setValue(selectedName);\n }, [selectedName]);\n\n const renderChipAdornment = useCallback(\n (option, index) => {\n if (typeof renderChip === \"function\") {\n return renderChip(option, index);\n }\n const avatarProps: Partial<AvatarProps> = {\n size: 18,\n };\n switch (size) {\n case \"big\":\n avatarProps.size = 22;\n break;\n case \"small\":\n avatarProps.size = 14;\n break;\n }\n const leftAdornment = option.image ? (\n <Avatar\n css={`\n ${tw`tw-my-0.5`}\n ${tw`tw-mr-0.5`}\n `}\n url={option.image}\n {...avatarProps}\n />\n ) : undefined;\n\n const onClose = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (Array.isArray(selected) && selected.includes(option.id)) {\n if (typeof onChange === \"function\") {\n const newSelected = selected.filter((item) => item !== option.id);\n onChange(newSelected);\n }\n }\n };\n\n let showOnClose = true;\n if (disabled) {\n showOnClose = false;\n }\n if (option.color) {\n showOnClose = false;\n }\n\n return (\n <Chip\n className=\"c-combo-box-chip\"\n leftAdornment={leftAdornment}\n label={option.name}\n key={index}\n backgroundColor={option.color}\n color=\"#303037\"\n onClose={showOnClose ? onClose : undefined}\n size={size}\n variant=\"Caption 2\"\n />\n );\n },\n [disabled, onChange, renderChip, selected, size]\n );\n\n const autoSize = useMemo(() => {\n if (\n type === \"multiple\" &&\n open &&\n Array.isArray(selected) &&\n selected.length > 1\n ) {\n return \"auto\";\n }\n return size;\n }, [open, selected, size, type]);\n\n const startAdornment = useMemo(() => {\n if (type === \"multiple\" && Array.isArray(selected) && selected.length > 0) {\n const elements: JSX.Element[] = [];\n let total = 0;\n options.forEach((option, index) => {\n const isGrouped = isOptionGroup(option);\n if (selected.includes(option.id) && !isGrouped) {\n total = total + 1;\n elements.push(renderChipAdornment(option, index));\n } else if (isGrouped) {\n const groupedOptions = option.options.filter((o) =>\n selected.includes(o.id)\n );\n total = total + groupedOptions.length;\n if (groupedOptions.length > 0) {\n groupedOptions.forEach((o, _index) => {\n elements.push(renderChipAdornment(o, `${index}_${_index}`));\n });\n }\n }\n });\n let hidden = 0;\n if (!open && limitChips > 0 && elements.length > limitChips) {\n hidden = elements.splice(\n limitChips,\n elements.length - limitChips\n ).length;\n }\n\n return (\n <Fragment>\n {elements}\n {hidden > 0 && (\n <Typography\n variant={\n size === \"small\"\n ? \"Caption 1\"\n : size === \"regular\"\n ? \"Body 2\"\n : \"Body 1\"\n }\n css={`\n display: flex;\n flex-shrink: 0;\n align-items: center;\n `}\n >\n {typeof hiddenNumberText === \"function\"\n ? hiddenNumberText(hidden)\n : `+${hidden}`}\n </Typography>\n )}\n </Fragment>\n );\n }\n return undefined;\n }, [\n type,\n selected,\n options,\n open,\n limitChips,\n hiddenNumberText,\n renderChipAdornment,\n size,\n ]);\n\n const showXIcon =\n Array.isArray(selected) && type === \"multiple\" && selected.length > 0;\n\n const hasSelected =\n type === \"multiple\" && Array.isArray(selected) && selected.length > 0;\n\n return (\n <div className=\"c-combo-box\">\n {type === \"multiple\" ? (\n <>\n <StyledInputWrapper\n $disabled={disabled}\n $size={size}\n $invalid={invalid}\n ref={comboBoxRef}\n css={`\n display: flex;\n justify-content: space-between;\n flex: 1;\n height: ${autoSize === \"auto\" ? \"auto\" : undefined};\n overflow-y: ${autoSize === \"auto\" && scrollWrapper\n ? \"scroll\"\n : undefined};\n max-height: ${autoSize === \"auto\" && scrollWrapper\n ? \"80px\"\n : undefined};\n `}\n className={classNames(\n \"c-combo-box-input-wrapper\",\n inputWrapperClassName\n )}\n onClick={() => {\n elementRef.current?.focus();\n }}\n >\n <StyledChipWrapper\n $autoSize={autoSize}\n $open={open}\n ref={chipWrapper}\n >\n {startAdornment}\n <StyledInput\n className=\"c-combo-box-input\"\n onBlur={handleBlur}\n onFocus={onOpen}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={!hasSelected ? placeholder : undefined}\n disabled={disabled}\n $size={size}\n $loading={loading}\n style={{\n display: \"flex\",\n flex: 1,\n alignSelf: \"center\",\n width: autoSize === \"auto\" ? \"auto\" : \"100%\",\n }}\n />\n </StyledChipWrapper>\n {!disabled && (\n <>\n {loading ? (\n <SpinnerLoader />\n ) : (\n <>\n {showXIcon && (\n <Trigger\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n data-testid=\"deselect-all\"\n css={`\n display: flex;\n justify-content: center;\n `}\n >\n <StyledComboBoxCloseSmallIcon />\n </Trigger>\n )}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </>\n )}\n </>\n )}\n </StyledInputWrapper>\n </>\n ) : (\n <StyledComboBoxInput\n className={classNames(\"c-combo-box-input\", inputWrapperClassName)}\n onBlur={handleBlur}\n onFocus={onOpen}\n wrapRef={comboBoxRef}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={placeholder}\n disabled={disabled}\n size={size}\n invalid={invalid}\n $loading={loading}\n startAdornment={startAdornment}\n endAdornment={\n !disabled ? (\n <InputAdornment disablePointerEvents={disabled}>\n {loading ? (\n <SpinnerLoader />\n ) : selected ? (\n <IconButton\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n variant=\"text gray\"\n size=\"small\"\n >\n <StyledComboBoxCloseSmallIcon />\n </IconButton>\n ) : null}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </InputAdornment>\n ) : null\n }\n />\n )}\n\n {!disabled ? (\n <ConditionalWrapper\n condition={inPortal}\n wrap={(children) => <Portal>{children}</Portal>}\n >\n <Popper\n anchorEl={comboBoxRef.current}\n open={open}\n placement=\"bottom\"\n style={{\n zIndex: 10,\n width: comboBoxRef.current?.clientWidth,\n }}\n ref={wrapperRef}\n strategy=\"fixed\"\n >\n <RemoveScroll noIsolation allowPinchZoom>\n <StyledComboBoxList $width={comboBoxRef.current?.clientWidth}>\n <Autocomplete\n {...prop}\n inputEl={childNode}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n type={type}\n handleEmptyAction={emptyAction}\n />\n </StyledComboBoxList>\n </RemoveScroll>\n </Popper>\n </ConditionalWrapper>\n ) : null}\n </div>\n );\n};\n\nComboBox.displayName = \"ComboBox\";\n"],"mappings":"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"}
|
|
@@ -30,6 +30,7 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
|
|
|
30
30
|
* )
|
|
31
31
|
* @see
|
|
32
32
|
* https://system.activecollab.com/?path=/story/components-button-indicators-button--icon-button
|
|
33
|
+
* https://design.activecollab.com/docs/components/button
|
|
33
34
|
*/
|
|
34
35
|
|
|
35
36
|
var IconButton = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconButton.js","names":["IconButton","forwardRef","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;AAEA;AAA4C;AAAA;AAAA;AAAA;AAAA;AAAA;AAK5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,IAAMA,UAAU,gBAAG,IAAAC,iBAAU,EAGlC,gBAA0DC,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,6BAAC,wBAAgB;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;AAAC;AAEHH,UAAU,CAACS,WAAW,GAAG,YAAY"}
|
|
1
|
+
{"version":3,"file":"IconButton.js","names":["IconButton","forwardRef","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;AAEA;AAA4C;AAAA;AAAA;AAAA;AAAA;AAAA;AAK5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,IAAMA,UAAU,gBAAG,IAAAC,iBAAU,EAGlC,gBAA0DC,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,6BAAC,wBAAgB;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;AAAC;AAEHH,UAAU,CAACS,WAAW,GAAG,YAAY"}
|
|
@@ -9,13 +9,40 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
9
9
|
var _Styles = require("./Styles");
|
|
10
10
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
11
11
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
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
|
+
*/
|
|
12
39
|
var MultiAvatar = function MultiAvatar(_ref) {
|
|
13
40
|
var url = _ref.url,
|
|
14
|
-
|
|
15
|
-
alt = _ref$alt === void 0 ? "Avatar Image" : _ref$alt,
|
|
41
|
+
alt = _ref.alt,
|
|
16
42
|
_ref$size = _ref.size,
|
|
17
43
|
size = _ref$size === void 0 ? 24 : _ref$size,
|
|
18
|
-
className = _ref.className
|
|
44
|
+
className = _ref.className,
|
|
45
|
+
children = _ref.children;
|
|
19
46
|
var setSize = (0, _react.useCallback)(function (i) {
|
|
20
47
|
switch (url.length) {
|
|
21
48
|
case 1:
|
|
@@ -53,7 +80,9 @@ var MultiAvatar = function MultiAvatar(_ref) {
|
|
|
53
80
|
}
|
|
54
81
|
return url;
|
|
55
82
|
}, [url]);
|
|
56
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
83
|
+
return /*#__PURE__*/_react.default.createElement("span", {
|
|
84
|
+
className: "tw-relative tw-inline-flex"
|
|
85
|
+
}, /*#__PURE__*/_react.default.createElement(_Styles.StyledMultiAvatar, {
|
|
57
86
|
style: {
|
|
58
87
|
width: "".concat(size, "px"),
|
|
59
88
|
height: "".concat(size, "px")
|
|
@@ -67,11 +96,11 @@ var MultiAvatar = function MultiAvatar(_ref) {
|
|
|
67
96
|
key: "avatar_".concat(i)
|
|
68
97
|
}, /*#__PURE__*/_react.default.createElement("img", {
|
|
69
98
|
src: v,
|
|
70
|
-
alt: alt[i] ? alt[i] : "avatar_".concat(i),
|
|
99
|
+
alt: alt && alt[i] ? alt[i] : "avatar_".concat(i),
|
|
71
100
|
width: size,
|
|
72
101
|
height: size
|
|
73
102
|
}));
|
|
74
|
-
}));
|
|
103
|
+
})), children);
|
|
75
104
|
};
|
|
76
105
|
exports.MultiAvatar = MultiAvatar;
|
|
77
106
|
MultiAvatar.displayName = "MultiAvatar";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiAvatar.js","names":["MultiAvatar","url","alt","size","className","setSize","useCallback","i","length","width","height","slicedUrl","useMemo","slice","map","v","displayName"],"sources":["../../../../src/components/MultiAvatar/MultiAvatar.tsx"],"sourcesContent":["import React, {
|
|
1
|
+
{"version":3,"file":"MultiAvatar.js","names":["MultiAvatar","url","alt","size","className","children","setSize","useCallback","i","length","width","height","slicedUrl","useMemo","slice","map","v","displayName"],"sources":["../../../../src/components/MultiAvatar/MultiAvatar.tsx"],"sourcesContent":["import React, { PropsWithChildren, useCallback, useMemo } from \"react\";\nimport { StyledMultiAvatar, StyledMultiAvatarInner } from \"./Styles\";\n\nexport interface MultiAvatarProps {\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 MultiAvatar\n * @description\n * The MultiAvatar component is used to represent user, and displays the profile picture, initials or fallback icon.\n *\n * @prop {url} - The image urls of the MultiAvatar.\n * @prop {size} - controls the size of an MultiAvatar (width and height) in pixels.\n * @prop {alt} - alt attributes of the imgs.\n *\n * @example\n * <MultiAvatar\n * url={[\"https://faces-img.xcdn.link/image-lorem-face-954.jpg\", \"https://faces-img.xcdn.link/image-lorem-face-953.jpg\"]}\n * alt={[\"Profile picture of John\", \"Profile picture of Sarah\"]} />\n *\n * @example\n * <MultiAvatar\n * url={[\"https://faces-img.xcdn.link/image-lorem-face-954.jpg\", \"https://faces-img.xcdn.link/image-lorem-face-953.jpg\"]}\n * alt={[\"Profile picture of John\", \"Profile picture of Sarah\"]}\n * >\n * <Badge />\n * </MultiAvatar>\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 MultiAvatar = ({\n url,\n alt,\n size = 24,\n className,\n children,\n}: PropsWithChildren<MultiAvatarProps>) => {\n const setSize = useCallback(\n (i: number): object => {\n switch (url.length) {\n case 1:\n return { width: `${size}px`, height: `${size}px` };\n case 2:\n return { width: `${size / 2}px`, height: `${size}px` };\n case 3:\n if (i === 0) {\n return { width: `${size / 2}px`, height: `${size}px` };\n } else {\n return { width: `${size / 2}px`, height: `${size / 2}px` };\n }\n default:\n return { width: `${size / 2}px`, height: `${size / 2}px` };\n }\n },\n [size, url.length]\n );\n\n const slicedUrl = useMemo(() => {\n if (url?.length > 4) {\n return url.slice(0, 4);\n }\n\n return url;\n }, [url]);\n\n return (\n <span className=\"tw-relative tw-inline-flex\">\n <StyledMultiAvatar\n style={{ width: `${size}px`, height: `${size}px` }}\n className={className}\n $urlCount={url.length}\n >\n {slicedUrl.map((v, i) => (\n <StyledMultiAvatarInner\n style={setSize(i)}\n className=\"c-multi-avatar__wrapper\"\n key={`avatar_${i}`}\n >\n <img\n src={v}\n alt={alt && alt[i] ? alt[i] : `avatar_${i}`}\n width={size}\n height={size}\n />\n </StyledMultiAvatarInner>\n ))}\n </StyledMultiAvatar>\n {children}\n </span>\n );\n};\n\nMultiAvatar.displayName = \"MultiAvatar\";\n"],"mappings":";;;;;;;AAAA;AACA;AAAqE;AAAA;AAarE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,WAAW,GAAG,SAAdA,WAAW,OAMmB;EAAA,IALzCC,GAAG,QAAHA,GAAG;IACHC,GAAG,QAAHA,GAAG;IAAA,iBACHC,IAAI;IAAJA,IAAI,0BAAG,EAAE;IACTC,SAAS,QAATA,SAAS;IACTC,QAAQ,QAARA,QAAQ;EAER,IAAMC,OAAO,GAAG,IAAAC,kBAAW,EACzB,UAACC,CAAS,EAAa;IACrB,QAAQP,GAAG,CAACQ,MAAM;MAChB,KAAK,CAAC;QACJ,OAAO;UAAEC,KAAK,YAAKP,IAAI,OAAI;UAAEQ,MAAM,YAAKR,IAAI;QAAK,CAAC;MACpD,KAAK,CAAC;QACJ,OAAO;UAAEO,KAAK,YAAKP,IAAI,GAAG,CAAC,OAAI;UAAEQ,MAAM,YAAKR,IAAI;QAAK,CAAC;MACxD,KAAK,CAAC;QACJ,IAAIK,CAAC,KAAK,CAAC,EAAE;UACX,OAAO;YAAEE,KAAK,YAAKP,IAAI,GAAG,CAAC,OAAI;YAAEQ,MAAM,YAAKR,IAAI;UAAK,CAAC;QACxD,CAAC,MAAM;UACL,OAAO;YAAEO,KAAK,YAAKP,IAAI,GAAG,CAAC,OAAI;YAAEQ,MAAM,YAAKR,IAAI,GAAG,CAAC;UAAK,CAAC;QAC5D;MACF;QACE,OAAO;UAAEO,KAAK,YAAKP,IAAI,GAAG,CAAC,OAAI;UAAEQ,MAAM,YAAKR,IAAI,GAAG,CAAC;QAAK,CAAC;IAAC;EAEjE,CAAC,EACD,CAACA,IAAI,EAAEF,GAAG,CAACQ,MAAM,CAAC,CACnB;EAED,IAAMG,SAAS,GAAG,IAAAC,cAAO,EAAC,YAAM;IAC9B,IAAI,CAAAZ,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEQ,MAAM,IAAG,CAAC,EAAE;MACnB,OAAOR,GAAG,CAACa,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACxB;IAEA,OAAOb,GAAG;EACZ,CAAC,EAAE,CAACA,GAAG,CAAC,CAAC;EAET,oBACE;IAAM,SAAS,EAAC;EAA4B,gBAC1C,6BAAC,yBAAiB;IAChB,KAAK,EAAE;MAAES,KAAK,YAAKP,IAAI,OAAI;MAAEQ,MAAM,YAAKR,IAAI;IAAK,CAAE;IACnD,SAAS,EAAEC,SAAU;IACrB,SAAS,EAAEH,GAAG,CAACQ;EAAO,GAErBG,SAAS,CAACG,GAAG,CAAC,UAACC,CAAC,EAAER,CAAC;IAAA,oBAClB,6BAAC,8BAAsB;MACrB,KAAK,EAAEF,OAAO,CAACE,CAAC,CAAE;MAClB,SAAS,EAAC,yBAAyB;MACnC,GAAG,mBAAYA,CAAC;IAAG,gBAEnB;MACE,GAAG,EAAEQ,CAAE;MACP,GAAG,EAAEd,GAAG,IAAIA,GAAG,CAACM,CAAC,CAAC,GAAGN,GAAG,CAACM,CAAC,CAAC,oBAAaA,CAAC,CAAG;MAC5C,KAAK,EAAEL,IAAK;MACZ,MAAM,EAAEA;IAAK,EACb,CACqB;EAAA,CAC1B,CAAC,CACgB,EACnBE,QAAQ,CACJ;AAEX,CAAC;AAAC;AAEFL,WAAW,CAACiB,WAAW,GAAG,aAAa"}
|
|
@@ -106,12 +106,13 @@ var Select = function Select(_ref) {
|
|
|
106
106
|
}, [childNode, open]);
|
|
107
107
|
var handleChange = (0, _react.useCallback)(function (selectedValue) {
|
|
108
108
|
if (forceCloseMenu) {
|
|
109
|
+
if (typeof onSelectClose === "function") onSelectClose();
|
|
109
110
|
setOpen(false);
|
|
110
111
|
}
|
|
111
112
|
if (selectedValue !== selected) {
|
|
112
113
|
onChange(selectedValue);
|
|
113
114
|
}
|
|
114
|
-
}, [forceCloseMenu, selected, onChange]);
|
|
115
|
+
}, [forceCloseMenu, selected, onSelectClose, onChange]);
|
|
115
116
|
var onClose = (0, _react.useCallback)(function () {
|
|
116
117
|
setOpen(false);
|
|
117
118
|
if (onSelectClose) {
|