@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.
Files changed (71) 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/Select/Select.js +2 -1
  19. package/dist/cjs/components/Select/Select.js.map +1 -1
  20. package/dist/cjs/components/Window/Window.js +0 -7
  21. package/dist/cjs/components/Window/Window.js.map +1 -1
  22. package/dist/cjs/components/index.js +11 -0
  23. package/dist/cjs/components/index.js.map +1 -1
  24. package/dist/esm/components/Avatar/Avatar.d.ts +28 -2
  25. package/dist/esm/components/Avatar/Avatar.d.ts.map +1 -1
  26. package/dist/esm/components/Avatar/Avatar.js +33 -7
  27. package/dist/esm/components/Avatar/Avatar.js.map +1 -1
  28. package/dist/esm/components/Avatar/Styles.d.ts +3 -1
  29. package/dist/esm/components/Avatar/Styles.d.ts.map +1 -1
  30. package/dist/esm/components/Avatar/Styles.js +9 -4
  31. package/dist/esm/components/Avatar/Styles.js.map +1 -1
  32. package/dist/esm/components/Badge/Badge.d.ts +32 -0
  33. package/dist/esm/components/Badge/Badge.d.ts.map +1 -0
  34. package/dist/esm/components/Badge/Badge.js +42 -0
  35. package/dist/esm/components/Badge/Badge.js.map +1 -0
  36. package/dist/esm/components/Badge/Styles.d.ts +3 -0
  37. package/dist/esm/components/Badge/Styles.d.ts.map +1 -0
  38. package/dist/esm/components/Badge/Styles.js +24 -0
  39. package/dist/esm/components/Badge/Styles.js.map +1 -0
  40. package/dist/esm/components/Badge/index.d.ts +2 -0
  41. package/dist/esm/components/Badge/index.d.ts.map +1 -0
  42. package/dist/esm/components/Badge/index.js +2 -0
  43. package/dist/esm/components/Badge/index.js.map +1 -0
  44. package/dist/esm/components/Button/Button.d.ts +1 -0
  45. package/dist/esm/components/Button/Button.d.ts.map +1 -1
  46. package/dist/esm/components/Button/Button.js +1 -0
  47. package/dist/esm/components/Button/Button.js.map +1 -1
  48. package/dist/esm/components/ComboBox/ComboBox.js.map +1 -1
  49. package/dist/esm/components/IconButton/IconButton.d.ts +1 -0
  50. package/dist/esm/components/IconButton/IconButton.d.ts.map +1 -1
  51. package/dist/esm/components/IconButton/IconButton.js +1 -0
  52. package/dist/esm/components/IconButton/IconButton.js.map +1 -1
  53. package/dist/esm/components/MultiAvatar/MultiAvatar.d.ts +33 -3
  54. package/dist/esm/components/MultiAvatar/MultiAvatar.d.ts.map +1 -1
  55. package/dist/esm/components/MultiAvatar/MultiAvatar.js +35 -6
  56. package/dist/esm/components/MultiAvatar/MultiAvatar.js.map +1 -1
  57. package/dist/esm/components/Select/Select.d.ts.map +1 -1
  58. package/dist/esm/components/Select/Select.js +2 -1
  59. package/dist/esm/components/Select/Select.js.map +1 -1
  60. package/dist/esm/components/Window/Window.d.ts.map +1 -1
  61. package/dist/esm/components/Window/Window.js +1 -8
  62. package/dist/esm/components/Window/Window.js.map +1 -1
  63. package/dist/esm/components/index.d.ts +1 -0
  64. package/dist/esm/components/index.d.ts.map +1 -1
  65. package/dist/esm/components/index.js +1 -0
  66. package/dist/esm/components/index.js.map +1 -1
  67. package/dist/index.js +143 -24
  68. package/dist/index.js.map +1 -1
  69. package/dist/index.min.js +1 -1
  70. package/dist/index.min.js.map +1 -1
  71. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -288,6 +288,7 @@
288
288
  * )
289
289
  * @see
290
290
  * https://system.activecollab.com/?path=/story/components-button-indicators-button--button
291
+ * https://design.activecollab.com/docs/components/button
291
292
  */
292
293
  var Button = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
293
294
  var children = _ref.children,
@@ -654,13 +655,6 @@
654
655
  onKeyDown(event);
655
656
  }
656
657
  }, [disableCloseOnEsc, onClose, onKeyDown]);
657
- React.useEffect(function () {
658
- return function () {
659
- typeof onClose === "function" && onClose();
660
- };
661
- // Dependency is empty because we only want to call onClose when component is unmounted
662
- // eslint-disable-next-line react-hooks/exhaustive-deps
663
- }, []);
664
658
  var handleClick = React.useCallback(function (event) {
665
659
  event === null || event === void 0 ? void 0 : event.stopPropagation();
666
660
  typeof onClick === "function" && onClick(event);
@@ -1215,6 +1209,7 @@
1215
1209
  * )
1216
1210
  * @see
1217
1211
  * https://system.activecollab.com/?path=/story/components-button-indicators-button--icon-button
1212
+ * https://design.activecollab.com/docs/components/button
1218
1213
  */
1219
1214
 
1220
1215
  var IconButton = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
@@ -9212,15 +9207,44 @@
9212
9207
  };
9213
9208
  Signifier.displayName = "Signifier";
9214
9209
 
9210
+ var StyledWrapper = styled__default["default"].span.withConfig({
9211
+ displayName: "Styles__StyledWrapper",
9212
+ componentId: "sc-5x2tyd-0"
9213
+ })(["display:inline-flex;position:relative;"]);
9215
9214
  var StyledAvatar = styled__default["default"].img.withConfig({
9216
9215
  displayName: "Styles__StyledAvatar",
9217
- componentId: "sc-5x2tyd-0"
9218
- })(["", ""], {
9219
- "objectFit": "cover",
9220
- "borderRadius": "9999px"
9216
+ componentId: "sc-5x2tyd-1"
9217
+ })(["border-radius:100%;object-fit:cover;block-size:", ";inline-size:", ";"], function (props) {
9218
+ return props.size + "px";
9219
+ }, function (props) {
9220
+ return props.size + "px";
9221
9221
  });
9222
9222
 
9223
- var _excluded$I = ["url", "alt", "size", "className"];
9223
+ var _excluded$I = ["url", "alt", "size", "className", "children"];
9224
+ /**
9225
+ * @component Avatar
9226
+ * @description
9227
+ * The Avatar component is used to represent user, and displays the profile picture, initials or fallback icon.
9228
+ *
9229
+ * @prop {url} - The image url of the Avatar.
9230
+ * @prop {size} - controls the size of an Avatar (width and height) in pixels.
9231
+ * @prop {alt} - alt attribute of the img.
9232
+ *
9233
+ * @example
9234
+ * <Avatar url="https://faces-img.xcdn.link/image-lorem-face-954.jpg" alt="Profile picture of John" />
9235
+ *
9236
+ * @example
9237
+ * <Avatar
9238
+ * url="https://faces-img.xcdn.link/image-lorem-face-954.jpg"
9239
+ * alt="Profile picture of John">
9240
+ * <Badge size={8} backgroundColor="green" position="bottom-left" />
9241
+ * </Avatar>
9242
+ *
9243
+ * @see
9244
+ * https://system.activecollab.com/?path=/story/components-button-indicators-avatar--avatar
9245
+ * @see
9246
+ * https://design.activecollab.com/docs/components/avatar
9247
+ */
9224
9248
  var Avatar = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
9225
9249
  var url = _ref.url,
9226
9250
  _ref$alt = _ref.alt,
@@ -9228,15 +9252,17 @@
9228
9252
  _ref$size = _ref.size,
9229
9253
  size = _ref$size === void 0 ? 24 : _ref$size,
9230
9254
  className = _ref.className,
9255
+ children = _ref.children,
9231
9256
  rest = _objectWithoutProperties(_ref, _excluded$I);
9232
- return /*#__PURE__*/React__default["default"].createElement(StyledAvatar, _extends({}, rest, {
9257
+ return /*#__PURE__*/React__default["default"].createElement(StyledWrapper, {
9258
+ className: className
9259
+ }, children, /*#__PURE__*/React__default["default"].createElement(StyledAvatar, _extends({
9260
+ size: size,
9233
9261
  ref: ref,
9234
9262
  src: url,
9235
9263
  alt: alt,
9236
- width: size,
9237
- height: size,
9238
- className: className
9239
- }));
9264
+ role: "img"
9265
+ }, rest)));
9240
9266
  });
9241
9267
  Avatar.displayName = "Avatar";
9242
9268
 
@@ -10447,12 +10473,13 @@
10447
10473
  }, [childNode, open]);
10448
10474
  var handleChange = React.useCallback(function (selectedValue) {
10449
10475
  if (forceCloseMenu) {
10476
+ if (typeof onSelectClose === "function") onSelectClose();
10450
10477
  setOpen(false);
10451
10478
  }
10452
10479
  if (selectedValue !== selected) {
10453
10480
  onChange(selectedValue);
10454
10481
  }
10455
- }, [forceCloseMenu, selected, onChange]);
10482
+ }, [forceCloseMenu, selected, onSelectClose, onChange]);
10456
10483
  var onClose = React.useCallback(function () {
10457
10484
  setOpen(false);
10458
10485
  if (onSelectClose) {
@@ -11129,13 +11156,40 @@
11129
11156
  StyledMultiAvatar.displayName = "StyledMultiAvatar";
11130
11157
  StyledMultiAvatarInner.displayName = "StyledMultiAvatarInner";
11131
11158
 
11159
+ /**
11160
+ * @component MultiAvatar
11161
+ * @description
11162
+ * The MultiAvatar component is used to represent user, and displays the profile picture, initials or fallback icon.
11163
+ *
11164
+ * @prop {url} - The image urls of the MultiAvatar.
11165
+ * @prop {size} - controls the size of an MultiAvatar (width and height) in pixels.
11166
+ * @prop {alt} - alt attributes of the imgs.
11167
+ *
11168
+ * @example
11169
+ * <MultiAvatar
11170
+ * url={["https://faces-img.xcdn.link/image-lorem-face-954.jpg", "https://faces-img.xcdn.link/image-lorem-face-953.jpg"]}
11171
+ * alt={["Profile picture of John", "Profile picture of Sarah"]} />
11172
+ *
11173
+ * @example
11174
+ * <MultiAvatar
11175
+ * url={["https://faces-img.xcdn.link/image-lorem-face-954.jpg", "https://faces-img.xcdn.link/image-lorem-face-953.jpg"]}
11176
+ * alt={["Profile picture of John", "Profile picture of Sarah"]}
11177
+ * >
11178
+ * <Badge />
11179
+ * </MultiAvatar>
11180
+ *
11181
+ * @see
11182
+ * https://system.activecollab.com/?path=/story/components-button-indicators-avatar--avatar
11183
+ * @see
11184
+ * https://design.activecollab.com/docs/components/avatar
11185
+ */
11132
11186
  var MultiAvatar = function MultiAvatar(_ref) {
11133
11187
  var url = _ref.url,
11134
- _ref$alt = _ref.alt,
11135
- alt = _ref$alt === void 0 ? "Avatar Image" : _ref$alt,
11188
+ alt = _ref.alt,
11136
11189
  _ref$size = _ref.size,
11137
11190
  size = _ref$size === void 0 ? 24 : _ref$size,
11138
- className = _ref.className;
11191
+ className = _ref.className,
11192
+ children = _ref.children;
11139
11193
  var setSize = React.useCallback(function (i) {
11140
11194
  switch (url.length) {
11141
11195
  case 1:
@@ -11173,7 +11227,9 @@
11173
11227
  }
11174
11228
  return url;
11175
11229
  }, [url]);
11176
- return /*#__PURE__*/React__default["default"].createElement(StyledMultiAvatar, {
11230
+ return /*#__PURE__*/React__default["default"].createElement("span", {
11231
+ className: "tw-relative tw-inline-flex"
11232
+ }, /*#__PURE__*/React__default["default"].createElement(StyledMultiAvatar, {
11177
11233
  style: {
11178
11234
  width: "".concat(size, "px"),
11179
11235
  height: "".concat(size, "px")
@@ -11187,11 +11243,11 @@
11187
11243
  key: "avatar_".concat(i)
11188
11244
  }, /*#__PURE__*/React__default["default"].createElement("img", {
11189
11245
  src: v,
11190
- alt: alt[i] ? alt[i] : "avatar_".concat(i),
11246
+ alt: alt && alt[i] ? alt[i] : "avatar_".concat(i),
11191
11247
  width: size,
11192
11248
  height: size
11193
11249
  }));
11194
- }));
11250
+ })), children);
11195
11251
  };
11196
11252
  MultiAvatar.displayName = "MultiAvatar";
11197
11253
 
@@ -15303,6 +15359,68 @@
15303
15359
  });
15304
15360
  Wizard.displayName = "Wizard";
15305
15361
 
15362
+ var StyledBadge = styled__default["default"].div.withConfig({
15363
+ displayName: "Styles__StyledBadge",
15364
+ componentId: "sc-6o8do5-0"
15365
+ })(["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) {
15366
+ return props.backgroundColor;
15367
+ }, function (props) {
15368
+ return props.dimension + "px";
15369
+ }, function (props) {
15370
+ return props.dimension + "px";
15371
+ }, function (_ref) {
15372
+ var position = _ref.position;
15373
+ return position === "top-left" && styled.css(["inset-block-start:0;inset-inline-start:0;"]);
15374
+ }, function (_ref2) {
15375
+ var position = _ref2.position;
15376
+ return position === "top-right" && styled.css(["inset-block-start:0;inset-inline-end:0;"]);
15377
+ }, function (_ref3) {
15378
+ var position = _ref3.position;
15379
+ return position === "bottom-right" && styled.css(["inset-block-end:0;inset-inline-end:0;"]);
15380
+ }, function (_ref4) {
15381
+ var position = _ref4.position;
15382
+ return position === "bottom-left" && styled.css(["inset-block-end:0;inset-inline-start:0;"]);
15383
+ });
15384
+
15385
+ /**
15386
+ * @component Badge
15387
+ * @description
15388
+ * In some products, you might need to show a badge on the right corner of the avatar.
15389
+ * We call this a badge. Here's an example that shows if the user is online.
15390
+ *
15391
+ * @prop {position} - dictates the position of a badge.
15392
+ * @prop {dimension} - controls the size of a badge (width and height) in pixels.
15393
+ * @prop {backgroundColor} - background-color of a badge.
15394
+ * @prop {isVisible} - dictates if badge should be visible or not.
15395
+ *
15396
+ * @example
15397
+ * <IconButton variant="text gray" size="big">
15398
+ * <BellOffIcon />
15399
+ * <Badge position="top-right" backgroundColor="red" dimension={16} />
15400
+ * </IconButton>
15401
+ *
15402
+ * @see
15403
+ * https://system.activecollab.com/?path=/story/components-button-indicators-badge--badge
15404
+ */
15405
+ var Badge = function Badge(_ref) {
15406
+ var _ref$dimension = _ref.dimension,
15407
+ dimension = _ref$dimension === void 0 ? 8 : _ref$dimension,
15408
+ className = _ref.className,
15409
+ _ref$position = _ref.position,
15410
+ position = _ref$position === void 0 ? "bottom-left" : _ref$position,
15411
+ _ref$backgroundColor = _ref.backgroundColor,
15412
+ backgroundColor = _ref$backgroundColor === void 0 ? "#40C37D" : _ref$backgroundColor,
15413
+ _ref$isVisible = _ref.isVisible,
15414
+ isVisible = _ref$isVisible === void 0 ? true : _ref$isVisible;
15415
+ return isVisible ? /*#__PURE__*/React__default["default"].createElement(StyledBadge, {
15416
+ className: classNames__default["default"]("c-badge", className),
15417
+ dimension: dimension,
15418
+ position: position,
15419
+ backgroundColor: backgroundColor,
15420
+ role: "status"
15421
+ }) : null;
15422
+ };
15423
+
15306
15424
  exports.Accordion = Accordion;
15307
15425
  exports.AccordionContext = AccordionContext;
15308
15426
  exports.AccordionItem = AccordionItem;
@@ -15328,6 +15446,7 @@
15328
15446
  exports.Autocomplete = Autocomplete;
15329
15447
  exports.Avatar = Avatar;
15330
15448
  exports.BackLink = BackLink;
15449
+ exports.Badge = Badge;
15331
15450
  exports.BellOffIcon = BellOffIcon$1;
15332
15451
  exports.BellOffSmallIcon = BellOffSmallIcon$1;
15333
15452
  exports.BillingIcon = BillingIcon$1;