@livechat/design-system-react-components 1.0.0-alpha.53 → 1.0.0-alpha.55

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.es.js CHANGED
@@ -284,6 +284,7 @@ const SpacingToken = {
284
284
  Spacing6: "--spacing-6",
285
285
  Spacing8: "--spacing-8",
286
286
  Spacing12: "--spacing-12",
287
+ Spacing14: "--spacing-14",
287
288
  Spacing16: "--spacing-16",
288
289
  Spacing18: "--spacing-18",
289
290
  Spacing20: "--spacing-20",
@@ -349,18 +350,16 @@ const Popover = ({
349
350
  }
350
351
  }
351
352
  const handleHideOnEscape = (event) => {
352
- if (event.key === "Escape") {
353
+ if (closeOnEsc && event.key === "Escape") {
353
354
  setVisibility(false);
354
355
  }
355
356
  };
356
357
  React.useEffect(() => {
357
358
  document.addEventListener("mousedown", handleDocumentClick);
358
- if (closeOnEsc) {
359
- document.addEventListener("keydown", handleHideOnEscape);
360
- }
359
+ document.addEventListener("keydown", handleHideOnEscape);
361
360
  return () => {
362
- document.removeEventListener("keydown", handleHideOnEscape);
363
361
  document.removeEventListener("mousedown", handleDocumentClick);
362
+ document.removeEventListener("keydown", handleHideOnEscape);
364
363
  };
365
364
  }, []);
366
365
  const mergedClassNames = cx(cssStyles["popover"], className, {
@@ -614,22 +613,161 @@ const Icon = (props) => {
614
613
  className: mergedClassNames
615
614
  }), GeneratedIcon);
616
615
  };
616
+ const loader = "lc-Loader-module__loader___LRflD";
617
+ const loader__spinner = "lc-Loader-module__loader__spinner___l3C1g";
618
+ const rotate = "lc-Loader-module__rotate___Tlni-";
619
+ const loader__label = "lc-Loader-module__loader__label___R74f6";
620
+ var styles$C = {
621
+ loader,
622
+ loader__spinner,
623
+ "loader__spinner--small": "lc-Loader-module__loader__spinner--small___dGFFt",
624
+ "loader__spinner--medium": "lc-Loader-module__loader__spinner--medium___J-ki0",
625
+ "loader__spinner--large": "lc-Loader-module__loader__spinner--large___Poqq7",
626
+ "loader__spinner-circle": "lc-Loader-module__loader__spinner-circle___ApBUO",
627
+ rotate,
628
+ loader__label
629
+ };
630
+ const baseClass$L = "loader";
631
+ const spinnerClass = `${baseClass$L}__spinner`;
632
+ const Loader = ({
633
+ primaryColor,
634
+ secondaryColor,
635
+ label,
636
+ className,
637
+ size = "medium"
638
+ }) => {
639
+ return /* @__PURE__ */ React.createElement("div", {
640
+ className: cx(styles$C[baseClass$L], className)
641
+ }, /* @__PURE__ */ React.createElement("div", {
642
+ className: cx(styles$C[spinnerClass], styles$C[`${spinnerClass}--${size}`])
643
+ }, /* @__PURE__ */ React.createElement("div", {
644
+ className: styles$C["loader__spinner-circle"],
645
+ style: {
646
+ borderColor: secondaryColor,
647
+ borderTopColor: primaryColor
648
+ }
649
+ })), label && /* @__PURE__ */ React.createElement(Text, {
650
+ as: "div",
651
+ size: "md",
652
+ className: styles$C["loader__label"]
653
+ }, label));
654
+ };
655
+ const btn$1 = "lc-Button-module__btn___aijZJ";
656
+ const btn__loader = "lc-Button-module__btn__loader___c8zZz";
657
+ const btn__content = "lc-Button-module__btn__content___wefl2";
658
+ const btn__icon = "lc-Button-module__btn__icon___GVExB";
659
+ var styles$B = {
660
+ btn: btn$1,
661
+ "btn--disabled": "lc-Button-module__btn--disabled___lXBav",
662
+ "btn--full-width": "lc-Button-module__btn--full-width___kdbAr",
663
+ "btn--basic": "lc-Button-module__btn--basic___Jc2gD",
664
+ "btn--primary": "lc-Button-module__btn--primary___ajbjQ",
665
+ "btn--secondary": "lc-Button-module__btn--secondary___iWzE0",
666
+ "btn--destructive": "lc-Button-module__btn--destructive___-kLCl",
667
+ "btn--compact": "lc-Button-module__btn--compact___4eptQ",
668
+ "btn--icon-only": "lc-Button-module__btn--icon-only___bF5pW",
669
+ "btn--large": "lc-Button-module__btn--large___lb-z6",
670
+ "btn--text": "lc-Button-module__btn--text___WA8OL",
671
+ "btn--plain": "lc-Button-module__btn--plain___eOPui",
672
+ "btn--plain-light": "lc-Button-module__btn--plain-light___eS9em",
673
+ "btn--subtle": "lc-Button-module__btn--subtle___s22xR",
674
+ "btn--float": "lc-Button-module__btn--float___J4lTs",
675
+ "btn--dotted": "lc-Button-module__btn--dotted___y1EEP",
676
+ "btn--loading": "lc-Button-module__btn--loading___ZAgjv",
677
+ btn__loader,
678
+ btn__content,
679
+ btn__icon,
680
+ "btn__icon--left": "lc-Button-module__btn__icon--left___H68zu",
681
+ "btn__icon--right": "lc-Button-module__btn__icon--right___fHr3D",
682
+ "btn--icon-only--bg": "lc-Button-module__btn--icon-only--bg___X-4V2"
683
+ };
684
+ const baseClass$K = "btn";
685
+ const Button = React.forwardRef((_g, ref) => {
686
+ var _h = _g, {
687
+ loading = false,
688
+ disabled = false,
689
+ type = "button",
690
+ fullWidth = false,
691
+ kind = "basic",
692
+ size = "medium",
693
+ icon: icon2 = null,
694
+ iconPosition = "left",
695
+ loaderLabel,
696
+ className,
697
+ children,
698
+ href,
699
+ onClick
700
+ } = _h, props = __objRest(_h, [
701
+ "loading",
702
+ "disabled",
703
+ "type",
704
+ "fullWidth",
705
+ "kind",
706
+ "size",
707
+ "icon",
708
+ "iconPosition",
709
+ "loaderLabel",
710
+ "className",
711
+ "children",
712
+ "href",
713
+ "onClick"
714
+ ]);
715
+ const isDisabled = loading || disabled;
716
+ const isIconOnly = !children && icon2;
717
+ const isTextButton = ["text", "plain", "plain-light"].includes(kind);
718
+ const Component = href ? "a" : "button";
719
+ const getSpinnerColors = () => {
720
+ if (kind === "primary" || kind === "destructive") {
721
+ return {
722
+ primaryColor: "var(--action-primary-default)",
723
+ secondaryColor: "var(--border-invert-primary)"
724
+ };
725
+ }
726
+ };
727
+ const mergedClassNames = cx(className, styles$B[baseClass$K], styles$B[`${baseClass$K}--${kind}`], styles$B[`${baseClass$K}--${size}`], {
728
+ [styles$B[`${baseClass$K}--loading`]]: loading,
729
+ [styles$B[`${baseClass$K}--full-width`]]: fullWidth,
730
+ [styles$B[`${baseClass$K}--icon-only`]]: isIconOnly,
731
+ [styles$B[`${baseClass$K}--icon-only--bg`]]: isIconOnly && isTextButton,
732
+ [styles$B[`${baseClass$K}--disabled`]]: isDisabled
733
+ });
734
+ return /* @__PURE__ */ React.createElement(Component, __spreadValues({
735
+ ref,
736
+ className: mergedClassNames,
737
+ "aria-disabled": isDisabled,
738
+ type,
739
+ href: isDisabled ? void 0 : href,
740
+ onClick: isDisabled ? void 0 : onClick,
741
+ disabled: isDisabled
742
+ }, props), loading && /* @__PURE__ */ React.createElement(Loader, __spreadValues({
743
+ size: "small",
744
+ label: loaderLabel,
745
+ className: styles$B[`${baseClass$K}__loader`]
746
+ }, getSpinnerColors())), icon2 && React.cloneElement(icon2, {
747
+ className: cx(styles$B[`${baseClass$K}__icon`], styles$B[`${baseClass$K}__icon--${iconPosition}`]),
748
+ disabled
749
+ }), /* @__PURE__ */ React.createElement("div", {
750
+ className: styles$B[`${baseClass$K}__content`]
751
+ }, children));
752
+ });
617
753
  const alert = "lc-Alert-module__alert___HBTns";
618
- const alert__content = "lc-Alert-module__alert__content___9nZdf";
619
754
  const alert__icon = "lc-Alert-module__alert__icon___8TaAH";
620
- var styles$C = {
755
+ const alert__content = "lc-Alert-module__alert__content___9nZdf";
756
+ const alert__content__text = "lc-Alert-module__alert__content__text___7nx1p";
757
+ const alert__content__cta = "lc-Alert-module__alert__content__cta___gTWPt";
758
+ var styles$A = {
621
759
  alert,
760
+ alert__icon,
622
761
  alert__content,
623
- "alert__content-text": "lc-Alert-module__alert__content-text___x2Un5",
624
- "alert__content-text--margin": "lc-Alert-module__alert__content-text--margin___whVzG",
625
- "alert__content-icon": "lc-Alert-module__alert__content-icon___-EXJm",
626
- "alert--small": "lc-Alert-module__alert--small___Fyk-v",
762
+ alert__content__text,
763
+ alert__content__cta,
627
764
  "alert__close-icon": "lc-Alert-module__alert__close-icon___rYxVy",
765
+ "alert--small": "lc-Alert-module__alert--small___Fyk-v",
766
+ "alert--medium": "lc-Alert-module__alert--medium___ItZWT",
628
767
  "alert--info": "lc-Alert-module__alert--info___GmIGN",
629
768
  "alert--warning": "lc-Alert-module__alert--warning___MubhD",
630
769
  "alert--success": "lc-Alert-module__alert--success___fPtlZ",
631
- "alert--error": "lc-Alert-module__alert--error___DKPo0",
632
- alert__icon
770
+ "alert--error": "lc-Alert-module__alert--error___DKPo0"
633
771
  };
634
772
  const IconConfig = {
635
773
  info: {
@@ -649,46 +787,65 @@ const IconConfig = {
649
787
  kind: "error"
650
788
  }
651
789
  };
652
- const baseClass$L = "alert";
653
- const Alert = (_g) => {
654
- var _h = _g, {
790
+ const baseClass$J = "alert";
791
+ const Alert = (_i) => {
792
+ var _j = _i, {
655
793
  children,
656
794
  className,
795
+ primaryButton,
796
+ secondaryButton,
657
797
  kind = "info",
658
798
  onClose
659
- } = _h, props = __objRest(_h, [
799
+ } = _j, props = __objRest(_j, [
660
800
  "children",
661
801
  "className",
802
+ "primaryButton",
803
+ "secondaryButton",
662
804
  "kind",
663
805
  "onClose"
664
806
  ]);
665
807
  const containerRef = React.useRef(null);
666
- const [isSmallContainer, setIsSmallContainer] = React.useState(false);
667
- const mergedClassNames = cx(styles$C[baseClass$L], styles$C[`${baseClass$L}--${kind}`], isSmallContainer && styles$C[`${baseClass$L}--small`], className);
808
+ const [containerSize, setContainerSize] = React.useState(null);
809
+ const mergedClassNames = cx(styles$A[baseClass$J], styles$A[`${baseClass$J}--${kind}`], containerSize === "medium" && styles$A[`${baseClass$J}--medium`], containerSize === "small" && styles$A[`${baseClass$J}--small`], className);
668
810
  React.useEffect(() => {
669
- const handleResize = debounce(() => {
811
+ const resize = () => {
670
812
  if (containerRef.current && containerRef.current.offsetWidth <= 400) {
671
- return setIsSmallContainer(true);
813
+ return setContainerSize("small");
814
+ }
815
+ if (containerRef.current && containerRef.current.offsetWidth > 400 && containerRef.current.offsetWidth <= 800) {
816
+ return setContainerSize("medium");
672
817
  }
673
- return setIsSmallContainer(false);
818
+ return setContainerSize(null);
819
+ };
820
+ const handleResize = debounce(() => {
821
+ resize();
674
822
  }, 500);
675
823
  window.addEventListener("resize", handleResize);
824
+ resize();
676
825
  return () => window.removeEventListener("resize", handleResize);
677
826
  });
678
827
  return /* @__PURE__ */ React.createElement("div", __spreadValues({
679
828
  ref: containerRef,
680
829
  className: mergedClassNames
681
- }, props), /* @__PURE__ */ React.createElement("div", {
682
- className: styles$C[`${baseClass$L}__content`]
683
- }, /* @__PURE__ */ React.createElement(Icon, __spreadProps(__spreadValues({}, IconConfig[kind]), {
830
+ }, props), /* @__PURE__ */ React.createElement(Icon, __spreadProps(__spreadValues({}, IconConfig[kind]), {
684
831
  size: "large",
685
- className: styles$C[`${baseClass$L}__content-icon`]
686
- })), /* @__PURE__ */ React.createElement(Text, {
832
+ className: styles$A[`${baseClass$J}__icon`]
833
+ })), /* @__PURE__ */ React.createElement("div", {
834
+ className: styles$A[`${baseClass$J}__content`]
835
+ }, /* @__PURE__ */ React.createElement(Text, {
687
836
  as: "div",
688
- className: cx(styles$C[`${baseClass$L}__content-text`], onClose && styles$C[`${baseClass$L}__content-text--margin`])
689
- }, children)), onClose && /* @__PURE__ */ React.createElement("button", {
837
+ className: styles$A[`${baseClass$J}__content__text`]
838
+ }, children), (primaryButton || secondaryButton) && /* @__PURE__ */ React.createElement("div", {
839
+ className: styles$A[`${baseClass$J}__content__cta`]
840
+ }, primaryButton && /* @__PURE__ */ React.createElement(Button, {
841
+ kind: "primary",
842
+ onClick: primaryButton.handleClick
843
+ }, primaryButton.label), secondaryButton && /* @__PURE__ */ React.createElement(Button, {
844
+ kind: "text",
845
+ onClick: secondaryButton.handleClick
846
+ }, secondaryButton.label))), onClose && /* @__PURE__ */ React.createElement("button", {
690
847
  type: "button",
691
- className: styles$C[`${baseClass$L}__close-icon`],
848
+ className: styles$A[`${baseClass$J}__close-icon`],
692
849
  onClick: onClose
693
850
  }, /* @__PURE__ */ React.createElement(Icon, {
694
851
  source: Close,
@@ -706,7 +863,7 @@ const avatar = "lc-Avatar-module__avatar___1zTCE";
706
863
  const avatar__status = "lc-Avatar-module__avatar__status___nX2Ls";
707
864
  const avatar__rim = "lc-Avatar-module__avatar__rim___RCQ8Q";
708
865
  const avatar__image = "lc-Avatar-module__avatar__image___YqfqE";
709
- var styles$B = {
866
+ var styles$z = {
710
867
  avatar,
711
868
  avatar__status,
712
869
  "avatar__status--available": "lc-Avatar-module__avatar__status--available___tcpFg",
@@ -752,7 +909,7 @@ var styles$B = {
752
909
  "avatar--xlarge": "lc-Avatar-module__avatar--xlarge___zwgeW",
753
910
  "avatar--xxlarge": "lc-Avatar-module__avatar--xxlarge___Ur0ul"
754
911
  };
755
- const baseClass$K = "avatar";
912
+ const baseClass$I = "avatar";
756
913
  const Avatar = ({
757
914
  alt,
758
915
  className,
@@ -773,15 +930,15 @@ const Avatar = ({
773
930
  const initials = getInitials(text, letterCount);
774
931
  const fontColor = color && getFontColor(color);
775
932
  const mergedClassNames = cx({
776
- [styles$B[baseClass$K]]: true,
777
- [styles$B[`${baseClass$K}--${shape}`]]: true,
778
- [styles$B[`${baseClass$K}--${size}`]]: true,
779
- [styles$B[`${baseClass$K}--with-rim`]]: withRim,
933
+ [styles$z[baseClass$I]]: true,
934
+ [styles$z[`${baseClass$I}--${shape}`]]: true,
935
+ [styles$z[`${baseClass$I}--${size}`]]: true,
936
+ [styles$z[`${baseClass$I}--with-rim`]]: withRim,
780
937
  [`${className}`]: className
781
938
  });
782
- const mergedStatusClassNames = cx(styles$B[`${baseClass$K}__status`], styles$B[`${baseClass$K}__status--${shape}`], styles$B[`${baseClass$K}__status--${size}`], styles$B[`${baseClass$K}__status--${status}`]);
783
- const mergedIconClassNames = cx(styles$B[`${baseClass$K}__icon`], styles$B[`${baseClass$K}__icon--${size}`]);
784
- const mergedRimClassNames = cx(styles$B[`${baseClass$K}__rim`], styles$B[`${baseClass$K}__rim--${size}`]);
939
+ const mergedStatusClassNames = cx(styles$z[`${baseClass$I}__status`], styles$z[`${baseClass$I}__status--${shape}`], styles$z[`${baseClass$I}__status--${size}`], styles$z[`${baseClass$I}__status--${status}`]);
940
+ const mergedIconClassNames = cx(styles$z[`${baseClass$I}__icon`], styles$z[`${baseClass$I}__icon--${size}`]);
941
+ const mergedRimClassNames = cx(styles$z[`${baseClass$I}__rim`], styles$z[`${baseClass$I}__rim--${size}`]);
785
942
  const handleError = React.useCallback(() => setShouldDisplayFallbackAvatar(true), []);
786
943
  React.useEffect(() => {
787
944
  setShouldDisplayFallbackAvatar(isImproperImageSetup);
@@ -790,27 +947,27 @@ const Avatar = ({
790
947
  className: mergedClassNames,
791
948
  style: { backgroundColor: color }
792
949
  }, withRim && /* @__PURE__ */ React.createElement("div", {
793
- "data-testid": `${baseClass$K}__rim`,
950
+ "data-testid": `${baseClass$I}__rim`,
794
951
  className: mergedRimClassNames
795
952
  }), status && /* @__PURE__ */ React.createElement("div", {
796
- "data-testid": `${baseClass$K}__status`,
953
+ "data-testid": `${baseClass$I}__status`,
797
954
  className: mergedStatusClassNames
798
955
  }), shouldDisplayImage && /* @__PURE__ */ React.createElement("img", {
799
- className: styles$B[`${baseClass$K}__image`],
956
+ className: styles$z[`${baseClass$I}__image`],
800
957
  src,
801
958
  alt,
802
959
  onError: handleError
803
960
  }), shouldDisplayInitials && /* @__PURE__ */ React.createElement("span", {
804
961
  style: { color: fontColor }
805
962
  }, initials), shouldDisplayFallbackAvatar && /* @__PURE__ */ React.createElement(Icon, {
806
- "data-testid": `${baseClass$K}__icon`,
963
+ "data-testid": `${baseClass$I}__icon`,
807
964
  className: mergedIconClassNames,
808
965
  source: Person
809
966
  }));
810
967
  };
811
968
  const badge = "lc-Badge-module__badge___GhLnu";
812
969
  const badge__dot = "lc-Badge-module__badge__dot___z6RO6";
813
- var styles$A = {
970
+ var styles$y = {
814
971
  badge,
815
972
  badge__dot,
816
973
  "badge--large": "lc-Badge-module__badge--large___B131q",
@@ -823,16 +980,16 @@ var styles$A = {
823
980
  function formatCount(count, max) {
824
981
  return count > max ? `${max}+` : `${count}`;
825
982
  }
826
- const baseClass$J = "badge";
827
- const Badge = (_i) => {
828
- var _j = _i, {
983
+ const baseClass$H = "badge";
984
+ const Badge = (_k) => {
985
+ var _l = _k, {
829
986
  className,
830
987
  count = 0,
831
988
  max = 99,
832
989
  kind = "primary",
833
990
  size = "medium",
834
991
  type = "counter"
835
- } = _j, spanProps = __objRest(_j, [
992
+ } = _l, spanProps = __objRest(_l, [
836
993
  "className",
837
994
  "count",
838
995
  "max",
@@ -840,154 +997,18 @@ const Badge = (_i) => {
840
997
  "size",
841
998
  "type"
842
999
  ]);
843
- const mergedClassNames = cx(className, styles$A[baseClass$J], styles$A[`${baseClass$J}--${kind}`], styles$A[`${baseClass$J}--${size}`]);
1000
+ const mergedClassNames = cx(className, styles$y[baseClass$H], styles$y[`${baseClass$H}--${kind}`], styles$y[`${baseClass$H}--${size}`]);
844
1001
  const content = {
845
1002
  ["counter"]: formatCount(count, max),
846
1003
  ["alert"]: "!",
847
1004
  ["dot"]: /* @__PURE__ */ React.createElement("span", {
848
- className: styles$A[`${baseClass$J}__dot`]
1005
+ className: styles$y[`${baseClass$H}__dot`]
849
1006
  })
850
1007
  }[type];
851
1008
  return /* @__PURE__ */ React.createElement("span", __spreadValues({
852
1009
  className: mergedClassNames
853
1010
  }, spanProps), content);
854
1011
  };
855
- const loader = "lc-Loader-module__loader___LRflD";
856
- const loader__spinner = "lc-Loader-module__loader__spinner___l3C1g";
857
- const rotate = "lc-Loader-module__rotate___Tlni-";
858
- const loader__label = "lc-Loader-module__loader__label___R74f6";
859
- var styles$z = {
860
- loader,
861
- loader__spinner,
862
- "loader__spinner--small": "lc-Loader-module__loader__spinner--small___dGFFt",
863
- "loader__spinner--medium": "lc-Loader-module__loader__spinner--medium___J-ki0",
864
- "loader__spinner--large": "lc-Loader-module__loader__spinner--large___Poqq7",
865
- "loader__spinner-circle": "lc-Loader-module__loader__spinner-circle___ApBUO",
866
- rotate,
867
- loader__label
868
- };
869
- const baseClass$I = "loader";
870
- const spinnerClass = `${baseClass$I}__spinner`;
871
- const Loader = ({
872
- primaryColor,
873
- secondaryColor,
874
- label,
875
- className,
876
- size = "medium"
877
- }) => {
878
- return /* @__PURE__ */ React.createElement("div", {
879
- className: cx(styles$z[baseClass$I], className)
880
- }, /* @__PURE__ */ React.createElement("div", {
881
- className: cx(styles$z[spinnerClass], styles$z[`${spinnerClass}--${size}`])
882
- }, /* @__PURE__ */ React.createElement("div", {
883
- className: styles$z["loader__spinner-circle"],
884
- style: {
885
- borderColor: secondaryColor,
886
- borderTopColor: primaryColor
887
- }
888
- })), label && /* @__PURE__ */ React.createElement(Text, {
889
- as: "div",
890
- size: "md",
891
- className: styles$z["loader__label"]
892
- }, label));
893
- };
894
- const btn$1 = "lc-Button-module__btn___aijZJ";
895
- const btn__loader = "lc-Button-module__btn__loader___c8zZz";
896
- const btn__content = "lc-Button-module__btn__content___wefl2";
897
- const btn__icon = "lc-Button-module__btn__icon___GVExB";
898
- var styles$y = {
899
- btn: btn$1,
900
- "btn--disabled": "lc-Button-module__btn--disabled___lXBav",
901
- "btn--full-width": "lc-Button-module__btn--full-width___kdbAr",
902
- "btn--basic": "lc-Button-module__btn--basic___Jc2gD",
903
- "btn--primary": "lc-Button-module__btn--primary___ajbjQ",
904
- "btn--secondary": "lc-Button-module__btn--secondary___iWzE0",
905
- "btn--destructive": "lc-Button-module__btn--destructive___-kLCl",
906
- "btn--compact": "lc-Button-module__btn--compact___4eptQ",
907
- "btn--icon-only": "lc-Button-module__btn--icon-only___bF5pW",
908
- "btn--large": "lc-Button-module__btn--large___lb-z6",
909
- "btn--text": "lc-Button-module__btn--text___WA8OL",
910
- "btn--plain": "lc-Button-module__btn--plain___eOPui",
911
- "btn--plain-light": "lc-Button-module__btn--plain-light___eS9em",
912
- "btn--subtle": "lc-Button-module__btn--subtle___s22xR",
913
- "btn--float": "lc-Button-module__btn--float___J4lTs",
914
- "btn--loading": "lc-Button-module__btn--loading___ZAgjv",
915
- btn__loader,
916
- btn__content,
917
- btn__icon,
918
- "btn__icon--left": "lc-Button-module__btn__icon--left___H68zu",
919
- "btn__icon--right": "lc-Button-module__btn__icon--right___fHr3D",
920
- "btn--icon-only--bg": "lc-Button-module__btn--icon-only--bg___X-4V2"
921
- };
922
- const baseClass$H = "btn";
923
- const Button = React.forwardRef((_k, ref) => {
924
- var _l = _k, {
925
- loading = false,
926
- disabled = false,
927
- type = "button",
928
- fullWidth = false,
929
- kind = "basic",
930
- size = "medium",
931
- icon: icon2 = null,
932
- iconPosition = "left",
933
- loaderLabel,
934
- className,
935
- children,
936
- href,
937
- onClick
938
- } = _l, props = __objRest(_l, [
939
- "loading",
940
- "disabled",
941
- "type",
942
- "fullWidth",
943
- "kind",
944
- "size",
945
- "icon",
946
- "iconPosition",
947
- "loaderLabel",
948
- "className",
949
- "children",
950
- "href",
951
- "onClick"
952
- ]);
953
- const isDisabled = loading || disabled;
954
- const isIconOnly = !children && icon2;
955
- const isTextButton = ["text", "plain", "plain-light"].includes(kind);
956
- const Component = href ? "a" : "button";
957
- const getSpinnerColors = () => {
958
- if (kind === "primary" || kind === "destructive") {
959
- return {
960
- primaryColor: "var(--action-primary-default)",
961
- secondaryColor: "var(--border-invert-primary)"
962
- };
963
- }
964
- };
965
- const mergedClassNames = cx(className, styles$y[baseClass$H], styles$y[`${baseClass$H}--${kind}`], styles$y[`${baseClass$H}--${size}`], {
966
- [styles$y[`${baseClass$H}--loading`]]: loading,
967
- [styles$y[`${baseClass$H}--full-width`]]: fullWidth,
968
- [styles$y[`${baseClass$H}--icon-only`]]: isIconOnly,
969
- [styles$y[`${baseClass$H}--icon-only--bg`]]: isIconOnly && isTextButton,
970
- [styles$y[`${baseClass$H}--disabled`]]: isDisabled
971
- });
972
- return /* @__PURE__ */ React.createElement(Component, __spreadValues({
973
- ref,
974
- className: mergedClassNames,
975
- "aria-disabled": isDisabled,
976
- type,
977
- href: isDisabled ? void 0 : href,
978
- onClick: isDisabled ? void 0 : onClick,
979
- disabled: isDisabled
980
- }, props), loading && /* @__PURE__ */ React.createElement(Loader, __spreadValues({
981
- size: "small",
982
- label: loaderLabel,
983
- className: styles$y[`${baseClass$H}__loader`]
984
- }, getSpinnerColors())), icon2 && React.cloneElement(icon2, {
985
- className: cx(styles$y[`${baseClass$H}__icon`], styles$y[`${baseClass$H}__icon--${iconPosition}`]),
986
- disabled
987
- }), /* @__PURE__ */ React.createElement("div", {
988
- className: styles$y[`${baseClass$H}__content`]
989
- }, children));
990
- });
991
1012
  const btn = "lc-SegmentedControl-module__btn___tfsvL";
992
1013
  var styles$x = {
993
1014
  "segmented-control": "lc-SegmentedControl-module__segmented-control___LHWSk",
@@ -1924,7 +1945,7 @@ const FormField = ({
1924
1945
  className: cx(styles$p[`${baseClass$w}__label-right-node`])
1925
1946
  }, labelRightNode)), /* @__PURE__ */ React.createElement("div", {
1926
1947
  className: cx(styles$p[`${baseClass$w}__content`])
1927
- }, children, error && /* @__PURE__ */ React.createElement(FieldError, null, error), description && /* @__PURE__ */ React.createElement(FieldDescription, null, description))));
1948
+ }, children, error && /* @__PURE__ */ React.createElement(FieldError, null, error), !error && description && /* @__PURE__ */ React.createElement(FieldDescription, null, description))));
1928
1949
  };
1929
1950
  var styles$o = {
1930
1951
  "form-group": "lc-FormGroup-module__form-group___e2JHa",
@@ -1968,6 +1989,7 @@ var styles$n = {
1968
1989
  "input--focused": "lc-Input-module__input--focused___wQH5-",
1969
1990
  "input--disabled": "lc-Input-module__input--disabled___HidXX",
1970
1991
  "input--error": "lc-Input-module__input--error___DlDbC",
1992
+ "input--xsmall": "lc-Input-module__input--xsmall___9u99K",
1971
1993
  "input--compact": "lc-Input-module__input--compact___iKSQZ",
1972
1994
  "input--medium": "lc-Input-module__input--medium___3BjqQ",
1973
1995
  "input--large": "lc-Input-module__input--large___jX5RW",
@@ -2029,7 +2051,7 @@ const Input = React.forwardRef((_A, ref) => {
2029
2051
  type: type && !isPasswordVisible ? type : "text"
2030
2052
  })), shouldRenderRightIcon && renderIcon(icon2, disabled), type === "password" && /* @__PURE__ */ React.createElement(Button, {
2031
2053
  disabled,
2032
- kind: "plain",
2054
+ kind: "subtle",
2033
2055
  icon: /* @__PURE__ */ React.createElement(Icon, {
2034
2056
  customColor: iconCustomColor,
2035
2057
  source: iconSource
@@ -2356,7 +2378,8 @@ const Trigger = ({
2356
2378
  size = "medium",
2357
2379
  hideClearButton,
2358
2380
  onTrigger,
2359
- onClear
2381
+ onClear,
2382
+ testId
2360
2383
  }) => {
2361
2384
  const triggerRef = React.useRef(null);
2362
2385
  const mergedClassNames = cx(styles$j[baseClass$p], styles$j[`${baseClass$p}--${size}`], isMultiSelect && styles$j[`${baseClass$p}--multi-select`], isMultiSelect && isItemSelected && styles$j[`${baseClass$p}--multi-select--with-items`], isDisabled && styles$j[`${baseClass$p}--disabled`], isOpen && styles$j[`${baseClass$p}--focused`], isError && styles$j[`${baseClass$p}--error`]);
@@ -2388,7 +2411,8 @@ const Trigger = ({
2388
2411
  ref: triggerRef,
2389
2412
  className: mergedClassNames,
2390
2413
  onClick: handleTriggerClick,
2391
- tabIndex: 0
2414
+ tabIndex: 0,
2415
+ "data-testid": testId
2392
2416
  }, /* @__PURE__ */ React.createElement("div", {
2393
2417
  className: styles$j[`${baseClass$p}__content`]
2394
2418
  }, children), /* @__PURE__ */ React.createElement("div", {
@@ -2778,6 +2802,7 @@ const Picker = (_M) => {
2778
2802
  type = "single",
2779
2803
  searchDisabled = false,
2780
2804
  hideClearButton,
2805
+ openedOnInit = false,
2781
2806
  onSelect
2782
2807
  } = _N, props = __objRest(_N, [
2783
2808
  "className",
@@ -2794,9 +2819,10 @@ const Picker = (_M) => {
2794
2819
  "type",
2795
2820
  "searchDisabled",
2796
2821
  "hideClearButton",
2822
+ "openedOnInit",
2797
2823
  "onSelect"
2798
2824
  ]);
2799
- const [isListOpen, setIsListOpen] = React.useState(false);
2825
+ const [isListOpen, setIsListOpen] = React.useState(openedOnInit);
2800
2826
  const [searchPhrase, setSearchPhrase] = React.useState(null);
2801
2827
  const triggerRef = React.useRef(null);
2802
2828
  const mergedClassNames = cx(styles$h[baseClass$l], className);
@@ -2880,19 +2906,21 @@ const Picker = (_M) => {
2880
2906
  const itemName = item.name.toLowerCase();
2881
2907
  return itemName.includes(search);
2882
2908
  });
2883
- }, [searchPhrase]);
2909
+ }, [searchPhrase, options]);
2884
2910
  const selectedItemsKeys = React.useMemo(() => {
2885
2911
  if (!selected) {
2886
2912
  return null;
2887
2913
  }
2888
2914
  return selected.map((item) => item.key);
2889
2915
  }, [selected]);
2890
- return /* @__PURE__ */ React.createElement("div", __spreadValues({
2916
+ return /* @__PURE__ */ React.createElement("div", {
2891
2917
  ref: triggerRef,
2892
- className: mergedClassNames
2893
- }, props), /* @__PURE__ */ React.createElement("div", {
2918
+ className: mergedClassNames,
2919
+ id: props.id
2920
+ }, /* @__PURE__ */ React.createElement("div", {
2894
2921
  className: styles$h[`${baseClass$l}__container`]
2895
2922
  }, /* @__PURE__ */ React.createElement(Trigger, {
2923
+ testId: props["data-testid"],
2896
2924
  isSearchDisabled: searchDisabled,
2897
2925
  isError: error,
2898
2926
  isOpen: isListOpen,
@@ -3137,7 +3165,9 @@ const PromoBanner = ({
3137
3165
  className: styles$c[`${baseClass$i}__wrapper`]
3138
3166
  }, /* @__PURE__ */ React.createElement("div", {
3139
3167
  className: styles$c[`${baseClass$i}__header`]
3140
- }, header), /* @__PURE__ */ React.createElement("div", null, children), containerSize !== "large" && footer), containerSize === "large" && footer), onClose && /* @__PURE__ */ React.createElement("button", {
3168
+ }, header), /* @__PURE__ */ React.createElement(Text, {
3169
+ as: "div"
3170
+ }, children), containerSize !== "large" && footer), containerSize === "large" && footer), onClose && /* @__PURE__ */ React.createElement("button", {
3141
3171
  type: "button",
3142
3172
  className: styles$c[`${baseClass$i}__close-icon`],
3143
3173
  onClick: onClose
@@ -3967,6 +3997,7 @@ const Tooltip = (props) => {
3967
3997
  function renderFloatingComponent() {
3968
3998
  if (withFadeAnimation) {
3969
3999
  const enter = css`
4000
+ pointer-events: none;
3970
4001
  opacity: 0;
3971
4002
  `;
3972
4003
  const enterActive = css`
@@ -3975,6 +4006,9 @@ const Tooltip = (props) => {
3975
4006
  transition-duration: ${transitionDuration}ms;
3976
4007
  transition-delay: ${transitionDelay}ms;
3977
4008
  `;
4009
+ const enterDone = css`
4010
+ pointer-events: initial;
4011
+ `;
3978
4012
  const exit = css`
3979
4013
  opacity: 1;
3980
4014
  `;
@@ -3992,6 +4026,7 @@ const Tooltip = (props) => {
3992
4026
  timeout,
3993
4027
  classNames: {
3994
4028
  enter,
4029
+ enterDone,
3995
4030
  enterActive,
3996
4031
  exit,
3997
4032
  exitActive
@@ -4275,19 +4310,27 @@ var styles$3 = {
4275
4310
  const baseClass$3 = "textarea";
4276
4311
  const Textarea = React.forwardRef((__, ref) => {
4277
4312
  var _$ = __, { className, error } = _$, textareaProps = __objRest(_$, ["className", "error"]);
4278
- const { disabled } = textareaProps;
4313
+ const { disabled, onBlur, onFocus } = textareaProps;
4279
4314
  const [isFocused, setIsFocused] = React.useState(false);
4280
4315
  const mergedClassNames = cx(className, styles$3[baseClass$3], {
4281
4316
  [styles$3[`${baseClass$3}--disabled`]]: disabled,
4282
4317
  [styles$3[`${baseClass$3}--focused`]]: isFocused,
4283
4318
  [styles$3[`${baseClass$3}--error`]]: error
4284
4319
  });
4320
+ const handleOnBlur = (e) => {
4321
+ setIsFocused(false);
4322
+ onBlur == null ? void 0 : onBlur(e);
4323
+ };
4324
+ const handleOnFocus = (e) => {
4325
+ setIsFocused(true);
4326
+ onFocus == null ? void 0 : onFocus(e);
4327
+ };
4285
4328
  return /* @__PURE__ */ React.createElement("div", {
4286
4329
  className: mergedClassNames
4287
4330
  }, /* @__PURE__ */ React.createElement("textarea", __spreadProps(__spreadValues({}, textareaProps), {
4288
4331
  ref,
4289
- onFocus: () => setIsFocused(true),
4290
- onBlur: () => setIsFocused(false)
4332
+ onFocus: handleOnFocus,
4333
+ onBlur: handleOnBlur
4291
4334
  })));
4292
4335
  });
4293
4336
  var styles$2 = {