@livechat/design-system-react-components 1.0.0-alpha.20 → 1.0.0-alpha.21
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/dsrc.cjs.js +9 -9
- package/dist/dsrc.es.js +124 -63
- package/dist/dsrc.umd.js +9 -9
- package/dist/src/components/Button/Button.d.ts +2 -1
- package/dist/src/components/Button/index.d.ts +1 -1
- package/dist/src/components/Card/Card.d.ts +7 -1
- package/dist/style.css +1 -1
- package/package.json +5 -4
package/dist/dsrc.es.js
CHANGED
|
@@ -35,7 +35,7 @@ var __publicField = (obj, key, value) => {
|
|
|
35
35
|
};
|
|
36
36
|
import * as React from "react";
|
|
37
37
|
import cx from "clsx";
|
|
38
|
-
import { Close, Info as Info$1, Warning, CheckCircleSolid, Block, Person,
|
|
38
|
+
import { Close, Info as Info$1, Warning, CheckCircleSolid, Block, Person, ChevronUp, ChevronDown, Check, Error as Error2, Search, LockBlack } from "@livechat/design-system-icons/react/material";
|
|
39
39
|
import debounce from "lodash.debounce";
|
|
40
40
|
import { getContrast } from "polished";
|
|
41
41
|
import * as ReactDOM from "react-dom";
|
|
@@ -302,7 +302,7 @@ const IconSizeMap = {
|
|
|
302
302
|
height: 32
|
|
303
303
|
}
|
|
304
304
|
};
|
|
305
|
-
const baseClass$
|
|
305
|
+
const baseClass$F = "icon";
|
|
306
306
|
const Icon = (props) => {
|
|
307
307
|
const _a = props, {
|
|
308
308
|
source,
|
|
@@ -322,7 +322,7 @@ const Icon = (props) => {
|
|
|
322
322
|
const GeneratedIcon = React.createElement(source, __spreadProps(__spreadValues({}, IconSizeMap[size]), {
|
|
323
323
|
color: customColor
|
|
324
324
|
}));
|
|
325
|
-
const mergedClassNames = cx(className, styles$x[baseClass$
|
|
325
|
+
const mergedClassNames = cx(className, styles$x[baseClass$F], kind && styles$x[`${baseClass$F}--${disabled ? "disabled--" : ""}${kind}`]);
|
|
326
326
|
return /* @__PURE__ */ React.createElement("span", __spreadProps(__spreadValues({}, restProps), {
|
|
327
327
|
className: mergedClassNames
|
|
328
328
|
}), GeneratedIcon);
|
|
@@ -362,7 +362,7 @@ const IconConfig = {
|
|
|
362
362
|
kind: "error"
|
|
363
363
|
}
|
|
364
364
|
};
|
|
365
|
-
const baseClass$
|
|
365
|
+
const baseClass$E = "alert";
|
|
366
366
|
const Alert = ({
|
|
367
367
|
children,
|
|
368
368
|
className,
|
|
@@ -371,7 +371,7 @@ const Alert = ({
|
|
|
371
371
|
}) => {
|
|
372
372
|
const containerRef = React.useRef(null);
|
|
373
373
|
const [isSmallContainer, setIsSmallContainer] = React.useState(false);
|
|
374
|
-
const mergedClassNames = cx(styles$w[baseClass$
|
|
374
|
+
const mergedClassNames = cx(styles$w[baseClass$E], styles$w[`${baseClass$E}--${kind}`], isSmallContainer && styles$w[`${baseClass$E}--small`], className);
|
|
375
375
|
React.useEffect(() => {
|
|
376
376
|
const handleResize = debounce(() => {
|
|
377
377
|
if (containerRef.current && containerRef.current.offsetWidth <= 400) {
|
|
@@ -386,16 +386,16 @@ const Alert = ({
|
|
|
386
386
|
ref: containerRef,
|
|
387
387
|
className: mergedClassNames
|
|
388
388
|
}, /* @__PURE__ */ React.createElement("div", {
|
|
389
|
-
className: styles$w[`${baseClass$
|
|
389
|
+
className: styles$w[`${baseClass$E}__content`]
|
|
390
390
|
}, /* @__PURE__ */ React.createElement(Icon, __spreadProps(__spreadValues({}, IconConfig[kind]), {
|
|
391
391
|
size: "large",
|
|
392
|
-
className: styles$w[`${baseClass$
|
|
392
|
+
className: styles$w[`${baseClass$E}__content-icon`]
|
|
393
393
|
})), /* @__PURE__ */ React.createElement(Text, {
|
|
394
394
|
as: "div",
|
|
395
|
-
className: cx(styles$w[`${baseClass$
|
|
395
|
+
className: cx(styles$w[`${baseClass$E}__content-text`], onClose && styles$w[`${baseClass$E}__content-text--margin`])
|
|
396
396
|
}, children)), onClose && /* @__PURE__ */ React.createElement("button", {
|
|
397
397
|
type: "button",
|
|
398
|
-
className: styles$w[`${baseClass$
|
|
398
|
+
className: styles$w[`${baseClass$E}__close-icon`],
|
|
399
399
|
onClick: onClose
|
|
400
400
|
}, /* @__PURE__ */ React.createElement(Icon, {
|
|
401
401
|
source: Close,
|
|
@@ -459,7 +459,7 @@ var styles$v = {
|
|
|
459
459
|
"avatar--xlarge": "lc-Avatar-module__avatar--xlarge___zwgeW",
|
|
460
460
|
"avatar--xxlarge": "lc-Avatar-module__avatar--xxlarge___Ur0ul"
|
|
461
461
|
};
|
|
462
|
-
const baseClass$
|
|
462
|
+
const baseClass$D = "avatar";
|
|
463
463
|
const defaultBackgroundColor = "var(--surface-basic-disabled)";
|
|
464
464
|
const defaultFontColor = "var(--content-subtle)";
|
|
465
465
|
const Avatar = ({
|
|
@@ -483,15 +483,15 @@ const Avatar = ({
|
|
|
483
483
|
const backgroundColor = color || defaultBackgroundColor;
|
|
484
484
|
const fontColor = color ? getFontColor(color) : defaultFontColor;
|
|
485
485
|
const mergedClassNames = cx({
|
|
486
|
-
[styles$v[baseClass$
|
|
487
|
-
[styles$v[`${baseClass$
|
|
488
|
-
[styles$v[`${baseClass$
|
|
489
|
-
[styles$v[`${baseClass$
|
|
486
|
+
[styles$v[baseClass$D]]: true,
|
|
487
|
+
[styles$v[`${baseClass$D}--${shape}`]]: true,
|
|
488
|
+
[styles$v[`${baseClass$D}--${size}`]]: true,
|
|
489
|
+
[styles$v[`${baseClass$D}--with-rim`]]: withRim,
|
|
490
490
|
[`${className}`]: className
|
|
491
491
|
});
|
|
492
|
-
const mergedStatusClassNames = cx(styles$v[`${baseClass$
|
|
493
|
-
const mergedIconClassNames = cx(styles$v[`${baseClass$
|
|
494
|
-
const mergedRimClassNames = cx(styles$v[`${baseClass$
|
|
492
|
+
const mergedStatusClassNames = cx(styles$v[`${baseClass$D}__status`], styles$v[`${baseClass$D}__status--${shape}`], styles$v[`${baseClass$D}__status--${size}`], styles$v[`${baseClass$D}__status--${status}`]);
|
|
493
|
+
const mergedIconClassNames = cx(styles$v[`${baseClass$D}__icon`], styles$v[`${baseClass$D}__icon--${size}`]);
|
|
494
|
+
const mergedRimClassNames = cx(styles$v[`${baseClass$D}__rim`], styles$v[`${baseClass$D}__rim--${size}`]);
|
|
495
495
|
const handleError = React.useCallback(() => setShouldDisplayFallbackAvatar(true), []);
|
|
496
496
|
React.useEffect(() => {
|
|
497
497
|
setShouldDisplayFallbackAvatar(isImproperImageSetup);
|
|
@@ -500,20 +500,20 @@ const Avatar = ({
|
|
|
500
500
|
className: mergedClassNames,
|
|
501
501
|
style: { backgroundColor }
|
|
502
502
|
}, withRim && /* @__PURE__ */ React.createElement("div", {
|
|
503
|
-
"data-testid": `${baseClass$
|
|
503
|
+
"data-testid": `${baseClass$D}__rim`,
|
|
504
504
|
className: mergedRimClassNames
|
|
505
505
|
}), status && /* @__PURE__ */ React.createElement("div", {
|
|
506
|
-
"data-testid": `${baseClass$
|
|
506
|
+
"data-testid": `${baseClass$D}__status`,
|
|
507
507
|
className: mergedStatusClassNames
|
|
508
508
|
}), shouldDisplayImage && /* @__PURE__ */ React.createElement("img", {
|
|
509
|
-
className: styles$v[`${baseClass$
|
|
509
|
+
className: styles$v[`${baseClass$D}__image`],
|
|
510
510
|
src,
|
|
511
511
|
alt,
|
|
512
512
|
onError: handleError
|
|
513
513
|
}), shouldDisplayInitials && /* @__PURE__ */ React.createElement("span", {
|
|
514
514
|
style: { color: fontColor }
|
|
515
515
|
}, initials), shouldDisplayFallbackAvatar && /* @__PURE__ */ React.createElement(Icon, {
|
|
516
|
-
"data-testid": `${baseClass$
|
|
516
|
+
"data-testid": `${baseClass$D}__icon`,
|
|
517
517
|
className: mergedIconClassNames,
|
|
518
518
|
source: Person,
|
|
519
519
|
kind: "primary"
|
|
@@ -534,7 +534,7 @@ var styles$u = {
|
|
|
534
534
|
function formatCount(count, max) {
|
|
535
535
|
return count > max ? `${max}+` : `${count}`;
|
|
536
536
|
}
|
|
537
|
-
const baseClass$
|
|
537
|
+
const baseClass$C = "badge";
|
|
538
538
|
const Badge = (_e) => {
|
|
539
539
|
var _f = _e, {
|
|
540
540
|
className,
|
|
@@ -551,12 +551,12 @@ const Badge = (_e) => {
|
|
|
551
551
|
"size",
|
|
552
552
|
"type"
|
|
553
553
|
]);
|
|
554
|
-
const mergedClassNames = cx(className, styles$u[baseClass$
|
|
554
|
+
const mergedClassNames = cx(className, styles$u[baseClass$C], styles$u[`${baseClass$C}--${kind}`], styles$u[`${baseClass$C}--${size}`]);
|
|
555
555
|
const content = {
|
|
556
556
|
["counter"]: formatCount(count, max),
|
|
557
557
|
["alert"]: "!",
|
|
558
558
|
["dot"]: /* @__PURE__ */ React.createElement("span", {
|
|
559
|
-
className: styles$u[`${baseClass$
|
|
559
|
+
className: styles$u[`${baseClass$C}__dot`]
|
|
560
560
|
})
|
|
561
561
|
}[type];
|
|
562
562
|
return /* @__PURE__ */ React.createElement("span", __spreadValues({
|
|
@@ -577,8 +577,8 @@ var styles$t = {
|
|
|
577
577
|
rotate,
|
|
578
578
|
loader__label
|
|
579
579
|
};
|
|
580
|
-
const baseClass$
|
|
581
|
-
const spinnerClass = `${baseClass$
|
|
580
|
+
const baseClass$B = "loader";
|
|
581
|
+
const spinnerClass = `${baseClass$B}__spinner`;
|
|
582
582
|
const Loader = ({
|
|
583
583
|
primaryColor,
|
|
584
584
|
secondaryColor,
|
|
@@ -587,7 +587,7 @@ const Loader = ({
|
|
|
587
587
|
size = "medium"
|
|
588
588
|
}) => {
|
|
589
589
|
return /* @__PURE__ */ React.createElement("div", {
|
|
590
|
-
className: cx(styles$t[baseClass$
|
|
590
|
+
className: cx(styles$t[baseClass$B], className)
|
|
591
591
|
}, /* @__PURE__ */ React.createElement("div", {
|
|
592
592
|
className: cx(styles$t[spinnerClass], styles$t[`${spinnerClass}--${size}`])
|
|
593
593
|
}, /* @__PURE__ */ React.createElement("div", {
|
|
@@ -627,7 +627,7 @@ var styles$s = {
|
|
|
627
627
|
btn__content,
|
|
628
628
|
btn__icon
|
|
629
629
|
};
|
|
630
|
-
const baseClass$
|
|
630
|
+
const baseClass$A = "btn";
|
|
631
631
|
const Button = (_g) => {
|
|
632
632
|
var _h = _g, {
|
|
633
633
|
loading = false,
|
|
@@ -658,11 +658,11 @@ const Button = (_g) => {
|
|
|
658
658
|
]);
|
|
659
659
|
const isDisabled = loading || disabled;
|
|
660
660
|
const Component = href ? "a" : "button";
|
|
661
|
-
const mergedClassNames = cx(className, styles$s[baseClass$
|
|
662
|
-
[styles$s[`${baseClass$
|
|
663
|
-
[styles$s[`${baseClass$
|
|
664
|
-
[styles$s[`${baseClass$
|
|
665
|
-
[styles$s[`${baseClass$
|
|
661
|
+
const mergedClassNames = cx(className, styles$s[baseClass$A], styles$s[`${baseClass$A}--${kind}`], styles$s[`${baseClass$A}--${size}`], {
|
|
662
|
+
[styles$s[`${baseClass$A}--loading`]]: loading,
|
|
663
|
+
[styles$s[`${baseClass$A}--full-width`]]: fullWidth,
|
|
664
|
+
[styles$s[`${baseClass$A}--icon-only`]]: !children && icon2,
|
|
665
|
+
[styles$s[`${baseClass$A}--disabled`]]: isDisabled
|
|
666
666
|
});
|
|
667
667
|
return /* @__PURE__ */ React.createElement(Component, __spreadValues({
|
|
668
668
|
className: mergedClassNames,
|
|
@@ -672,12 +672,12 @@ const Button = (_g) => {
|
|
|
672
672
|
}, props), loading && /* @__PURE__ */ React.createElement(Loader, {
|
|
673
673
|
size: "small",
|
|
674
674
|
label: loaderLabel,
|
|
675
|
-
className: styles$s[`${baseClass$
|
|
675
|
+
className: styles$s[`${baseClass$A}__loader`]
|
|
676
676
|
}), icon2 && React.cloneElement(icon2, {
|
|
677
|
-
className: cx(styles$s[`${baseClass$
|
|
677
|
+
className: cx(styles$s[`${baseClass$A}__icon`], styles$s[`${baseClass$A}__icon--${iconPosition}`]),
|
|
678
678
|
disabled
|
|
679
679
|
}), /* @__PURE__ */ React.createElement("div", {
|
|
680
|
-
className: styles$s[`${baseClass$
|
|
680
|
+
className: styles$s[`${baseClass$A}__content`]
|
|
681
681
|
}, children));
|
|
682
682
|
};
|
|
683
683
|
const btn = "lc-ButtonGroup-module__btn___bXPrU";
|
|
@@ -691,7 +691,7 @@ var styles$r = {
|
|
|
691
691
|
};
|
|
692
692
|
function noop() {
|
|
693
693
|
}
|
|
694
|
-
const baseClass$
|
|
694
|
+
const baseClass$z = "btn-group";
|
|
695
695
|
const ButtonGroup = (_i) => {
|
|
696
696
|
var _j = _i, {
|
|
697
697
|
size = "medium",
|
|
@@ -710,7 +710,7 @@ const ButtonGroup = (_i) => {
|
|
|
710
710
|
"currentIndex",
|
|
711
711
|
"initialIndex"
|
|
712
712
|
]);
|
|
713
|
-
const mergedClassName = cx(styles$r[baseClass$
|
|
713
|
+
const mergedClassName = cx(styles$r[baseClass$z], className);
|
|
714
714
|
const [currentStateIndex, setCurrentStateIndex] = React.useState(initialIndex);
|
|
715
715
|
const isControlled = typeof currentIndex === "number";
|
|
716
716
|
const _currentIndex = isControlled ? currentIndex : currentStateIndex;
|
|
@@ -738,41 +738,102 @@ const ButtonGroup = (_i) => {
|
|
|
738
738
|
})));
|
|
739
739
|
};
|
|
740
740
|
const card = "lc-Card-module__card___GqMm2";
|
|
741
|
-
const
|
|
742
|
-
const
|
|
743
|
-
const
|
|
741
|
+
const card__header = "lc-Card-module__card__header___0ptfD";
|
|
742
|
+
const card__header__image = "lc-Card-module__card__header__image___QMwSu";
|
|
743
|
+
const card__header__heading = "lc-Card-module__card__header__heading___Wkikx";
|
|
744
|
+
const card__header__heading__title = "lc-Card-module__card__header__heading__title___Uxi8s";
|
|
745
|
+
const card__header__heading__description = "lc-Card-module__card__header__heading__description___6LnOK";
|
|
746
|
+
const card__content = "lc-Card-module__card__content___KuDcc";
|
|
747
|
+
const card__actions = "lc-Card-module__card__actions___q9sAo";
|
|
748
|
+
const card__actions__line = "lc-Card-module__card__actions__line___TF1bt";
|
|
749
|
+
const card__actions__buttons = "lc-Card-module__card__actions__buttons___PDMMR";
|
|
744
750
|
var styles$q = {
|
|
745
751
|
card,
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
752
|
+
card__header,
|
|
753
|
+
card__header__image,
|
|
754
|
+
card__header__heading,
|
|
755
|
+
card__header__heading__title,
|
|
756
|
+
card__header__heading__description,
|
|
757
|
+
card__content,
|
|
758
|
+
"card__expanded-content": "lc-Card-module__card__expanded-content___yB-QL",
|
|
759
|
+
card__actions,
|
|
760
|
+
card__actions__line,
|
|
761
|
+
card__actions__buttons,
|
|
762
|
+
"card__actions__buttons-expander": "lc-Card-module__card__actions__buttons-expander___lz4h-"
|
|
763
|
+
};
|
|
764
|
+
const baseClass$y = "card";
|
|
765
|
+
const headerClass = `${baseClass$y}__header`;
|
|
766
|
+
const headingClass = `${headerClass}__heading`;
|
|
767
|
+
const actionsClass = `${baseClass$y}__actions`;
|
|
750
768
|
const Card = (_k) => {
|
|
751
769
|
var _l = _k, {
|
|
752
|
-
|
|
753
|
-
|
|
770
|
+
alt,
|
|
771
|
+
buttonsOptions = [],
|
|
754
772
|
children,
|
|
755
|
-
className
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
773
|
+
className,
|
|
774
|
+
description,
|
|
775
|
+
expandableContent,
|
|
776
|
+
src,
|
|
777
|
+
title
|
|
778
|
+
} = _l, divProps = __objRest(_l, [
|
|
779
|
+
"alt",
|
|
780
|
+
"buttonsOptions",
|
|
759
781
|
"children",
|
|
760
|
-
"className"
|
|
782
|
+
"className",
|
|
783
|
+
"description",
|
|
784
|
+
"expandableContent",
|
|
785
|
+
"src",
|
|
786
|
+
"title"
|
|
761
787
|
]);
|
|
762
|
-
|
|
788
|
+
const [isExpanded, setIsExpanded] = React.useState(false);
|
|
789
|
+
const expandIcon = isExpanded ? ChevronUp : ChevronDown;
|
|
790
|
+
const expandButtonText = isExpanded ? "Hide" : "Show more";
|
|
791
|
+
const shouldShowActionButtons = (buttonsOptions == null ? void 0 : buttonsOptions.length) > 0;
|
|
792
|
+
const shouldShowExpandAction = !!expandableContent;
|
|
793
|
+
const shouldShowActions = shouldShowActionButtons || shouldShowExpandAction;
|
|
794
|
+
return /* @__PURE__ */ React.createElement("div", __spreadValues({
|
|
795
|
+
className: cx(styles$q[baseClass$y], className)
|
|
796
|
+
}, divProps), /* @__PURE__ */ React.createElement("div", {
|
|
797
|
+
className: styles$q[headerClass]
|
|
798
|
+
}, src && /* @__PURE__ */ React.createElement("img", {
|
|
799
|
+
alt,
|
|
800
|
+
className: styles$q[`${headerClass}__image`],
|
|
801
|
+
src
|
|
802
|
+
}), /* @__PURE__ */ React.createElement("div", {
|
|
803
|
+
className: styles$q[headingClass]
|
|
804
|
+
}, /* @__PURE__ */ React.createElement(Heading, {
|
|
805
|
+
size: "sm",
|
|
806
|
+
className: styles$q[`${headingClass}__title`]
|
|
807
|
+
}, title), /* @__PURE__ */ React.createElement(Text, {
|
|
808
|
+
size: "sm",
|
|
809
|
+
className: styles$q[`${headingClass}__description`]
|
|
810
|
+
}, description))), /* @__PURE__ */ React.createElement(Text, {
|
|
763
811
|
as: "div",
|
|
764
812
|
size: "md",
|
|
765
|
-
className:
|
|
766
|
-
},
|
|
813
|
+
className: styles$q[`${baseClass$y}__content`]
|
|
814
|
+
}, children), isExpanded && /* @__PURE__ */ React.createElement(Text, {
|
|
767
815
|
as: "div",
|
|
768
|
-
size: "
|
|
769
|
-
className: styles$q[
|
|
770
|
-
},
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
816
|
+
size: "md",
|
|
817
|
+
className: styles$q[`${baseClass$y}__expanded-content`]
|
|
818
|
+
}, expandableContent), shouldShowActions && /* @__PURE__ */ React.createElement("div", {
|
|
819
|
+
className: styles$q[actionsClass]
|
|
820
|
+
}, /* @__PURE__ */ React.createElement("div", {
|
|
821
|
+
className: styles$q[`${actionsClass}__line`]
|
|
822
|
+
}), /* @__PURE__ */ React.createElement("div", {
|
|
823
|
+
className: styles$q[`${actionsClass}__buttons`]
|
|
824
|
+
}, shouldShowActionButtons && buttonsOptions.map(({ kind, onClick, children: buttonChildren }) => /* @__PURE__ */ React.createElement(Button, {
|
|
825
|
+
size: "compact",
|
|
826
|
+
kind,
|
|
827
|
+
onClick
|
|
828
|
+
}, buttonChildren)), shouldShowExpandAction && /* @__PURE__ */ React.createElement(Button, {
|
|
829
|
+
className: styles$q[`${actionsClass}__buttons-expander`],
|
|
830
|
+
kind: "plain",
|
|
831
|
+
iconPosition: "right",
|
|
832
|
+
icon: /* @__PURE__ */ React.createElement(Icon, {
|
|
833
|
+
source: expandIcon
|
|
834
|
+
}),
|
|
835
|
+
onClick: () => setIsExpanded(!isExpanded)
|
|
836
|
+
}, expandButtonText))));
|
|
776
837
|
};
|
|
777
838
|
var styles$p = {
|
|
778
839
|
"field-description": "lc-FieldDescription-module__field-description___IcRDH"
|