@livechat/design-system-react-components 1.0.0-alpha.52 → 1.0.0-alpha.54

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",
@@ -299,16 +300,16 @@ var cssStyles = {
299
300
  popover,
300
301
  "popover--visible": "lc-Popover-module__popover--visible___u5NXB"
301
302
  };
302
- const Popover = (props) => {
303
- const {
304
- triggerRenderer,
305
- onClose,
306
- children,
307
- className,
308
- placement,
309
- flipOptions,
310
- isVisible = false
311
- } = props;
303
+ const Popover = ({
304
+ triggerRenderer,
305
+ onClose,
306
+ children,
307
+ className,
308
+ placement,
309
+ flipOptions,
310
+ isVisible = false,
311
+ closeOnEsc = true
312
+ }) => {
312
313
  const [visible, setVisibility] = React.useState(false);
313
314
  const prevVisibleState = React.useRef(false);
314
315
  const {
@@ -354,8 +355,10 @@ const Popover = (props) => {
354
355
  }
355
356
  };
356
357
  React.useEffect(() => {
357
- document.addEventListener("keydown", handleHideOnEscape);
358
358
  document.addEventListener("mousedown", handleDocumentClick);
359
+ if (closeOnEsc) {
360
+ document.addEventListener("keydown", handleHideOnEscape);
361
+ }
359
362
  return () => {
360
363
  document.removeEventListener("keydown", handleHideOnEscape);
361
364
  document.removeEventListener("mousedown", handleDocumentClick);
@@ -612,22 +615,161 @@ const Icon = (props) => {
612
615
  className: mergedClassNames
613
616
  }), GeneratedIcon);
614
617
  };
618
+ const loader = "lc-Loader-module__loader___LRflD";
619
+ const loader__spinner = "lc-Loader-module__loader__spinner___l3C1g";
620
+ const rotate = "lc-Loader-module__rotate___Tlni-";
621
+ const loader__label = "lc-Loader-module__loader__label___R74f6";
622
+ var styles$C = {
623
+ loader,
624
+ loader__spinner,
625
+ "loader__spinner--small": "lc-Loader-module__loader__spinner--small___dGFFt",
626
+ "loader__spinner--medium": "lc-Loader-module__loader__spinner--medium___J-ki0",
627
+ "loader__spinner--large": "lc-Loader-module__loader__spinner--large___Poqq7",
628
+ "loader__spinner-circle": "lc-Loader-module__loader__spinner-circle___ApBUO",
629
+ rotate,
630
+ loader__label
631
+ };
632
+ const baseClass$L = "loader";
633
+ const spinnerClass = `${baseClass$L}__spinner`;
634
+ const Loader = ({
635
+ primaryColor,
636
+ secondaryColor,
637
+ label,
638
+ className,
639
+ size = "medium"
640
+ }) => {
641
+ return /* @__PURE__ */ React.createElement("div", {
642
+ className: cx(styles$C[baseClass$L], className)
643
+ }, /* @__PURE__ */ React.createElement("div", {
644
+ className: cx(styles$C[spinnerClass], styles$C[`${spinnerClass}--${size}`])
645
+ }, /* @__PURE__ */ React.createElement("div", {
646
+ className: styles$C["loader__spinner-circle"],
647
+ style: {
648
+ borderColor: secondaryColor,
649
+ borderTopColor: primaryColor
650
+ }
651
+ })), label && /* @__PURE__ */ React.createElement(Text, {
652
+ as: "div",
653
+ size: "md",
654
+ className: styles$C["loader__label"]
655
+ }, label));
656
+ };
657
+ const btn$1 = "lc-Button-module__btn___aijZJ";
658
+ const btn__loader = "lc-Button-module__btn__loader___c8zZz";
659
+ const btn__content = "lc-Button-module__btn__content___wefl2";
660
+ const btn__icon = "lc-Button-module__btn__icon___GVExB";
661
+ var styles$B = {
662
+ btn: btn$1,
663
+ "btn--disabled": "lc-Button-module__btn--disabled___lXBav",
664
+ "btn--full-width": "lc-Button-module__btn--full-width___kdbAr",
665
+ "btn--basic": "lc-Button-module__btn--basic___Jc2gD",
666
+ "btn--primary": "lc-Button-module__btn--primary___ajbjQ",
667
+ "btn--secondary": "lc-Button-module__btn--secondary___iWzE0",
668
+ "btn--destructive": "lc-Button-module__btn--destructive___-kLCl",
669
+ "btn--compact": "lc-Button-module__btn--compact___4eptQ",
670
+ "btn--icon-only": "lc-Button-module__btn--icon-only___bF5pW",
671
+ "btn--large": "lc-Button-module__btn--large___lb-z6",
672
+ "btn--text": "lc-Button-module__btn--text___WA8OL",
673
+ "btn--plain": "lc-Button-module__btn--plain___eOPui",
674
+ "btn--plain-light": "lc-Button-module__btn--plain-light___eS9em",
675
+ "btn--subtle": "lc-Button-module__btn--subtle___s22xR",
676
+ "btn--float": "lc-Button-module__btn--float___J4lTs",
677
+ "btn--dotted": "lc-Button-module__btn--dotted___y1EEP",
678
+ "btn--loading": "lc-Button-module__btn--loading___ZAgjv",
679
+ btn__loader,
680
+ btn__content,
681
+ btn__icon,
682
+ "btn__icon--left": "lc-Button-module__btn__icon--left___H68zu",
683
+ "btn__icon--right": "lc-Button-module__btn__icon--right___fHr3D",
684
+ "btn--icon-only--bg": "lc-Button-module__btn--icon-only--bg___X-4V2"
685
+ };
686
+ const baseClass$K = "btn";
687
+ const Button = React.forwardRef((_g, ref) => {
688
+ var _h = _g, {
689
+ loading = false,
690
+ disabled = false,
691
+ type = "button",
692
+ fullWidth = false,
693
+ kind = "basic",
694
+ size = "medium",
695
+ icon: icon2 = null,
696
+ iconPosition = "left",
697
+ loaderLabel,
698
+ className,
699
+ children,
700
+ href,
701
+ onClick
702
+ } = _h, props = __objRest(_h, [
703
+ "loading",
704
+ "disabled",
705
+ "type",
706
+ "fullWidth",
707
+ "kind",
708
+ "size",
709
+ "icon",
710
+ "iconPosition",
711
+ "loaderLabel",
712
+ "className",
713
+ "children",
714
+ "href",
715
+ "onClick"
716
+ ]);
717
+ const isDisabled = loading || disabled;
718
+ const isIconOnly = !children && icon2;
719
+ const isTextButton = ["text", "plain", "plain-light"].includes(kind);
720
+ const Component = href ? "a" : "button";
721
+ const getSpinnerColors = () => {
722
+ if (kind === "primary" || kind === "destructive") {
723
+ return {
724
+ primaryColor: "var(--action-primary-default)",
725
+ secondaryColor: "var(--border-invert-primary)"
726
+ };
727
+ }
728
+ };
729
+ const mergedClassNames = cx(className, styles$B[baseClass$K], styles$B[`${baseClass$K}--${kind}`], styles$B[`${baseClass$K}--${size}`], {
730
+ [styles$B[`${baseClass$K}--loading`]]: loading,
731
+ [styles$B[`${baseClass$K}--full-width`]]: fullWidth,
732
+ [styles$B[`${baseClass$K}--icon-only`]]: isIconOnly,
733
+ [styles$B[`${baseClass$K}--icon-only--bg`]]: isIconOnly && isTextButton,
734
+ [styles$B[`${baseClass$K}--disabled`]]: isDisabled
735
+ });
736
+ return /* @__PURE__ */ React.createElement(Component, __spreadValues({
737
+ ref,
738
+ className: mergedClassNames,
739
+ "aria-disabled": isDisabled,
740
+ type,
741
+ href: isDisabled ? void 0 : href,
742
+ onClick: isDisabled ? void 0 : onClick,
743
+ disabled: isDisabled
744
+ }, props), loading && /* @__PURE__ */ React.createElement(Loader, __spreadValues({
745
+ size: "small",
746
+ label: loaderLabel,
747
+ className: styles$B[`${baseClass$K}__loader`]
748
+ }, getSpinnerColors())), icon2 && React.cloneElement(icon2, {
749
+ className: cx(styles$B[`${baseClass$K}__icon`], styles$B[`${baseClass$K}__icon--${iconPosition}`]),
750
+ disabled
751
+ }), /* @__PURE__ */ React.createElement("div", {
752
+ className: styles$B[`${baseClass$K}__content`]
753
+ }, children));
754
+ });
615
755
  const alert = "lc-Alert-module__alert___HBTns";
616
- const alert__content = "lc-Alert-module__alert__content___9nZdf";
617
756
  const alert__icon = "lc-Alert-module__alert__icon___8TaAH";
618
- var styles$C = {
757
+ const alert__content = "lc-Alert-module__alert__content___9nZdf";
758
+ const alert__content__text = "lc-Alert-module__alert__content__text___7nx1p";
759
+ const alert__content__cta = "lc-Alert-module__alert__content__cta___gTWPt";
760
+ var styles$A = {
619
761
  alert,
762
+ alert__icon,
620
763
  alert__content,
621
- "alert__content-text": "lc-Alert-module__alert__content-text___x2Un5",
622
- "alert__content-text--margin": "lc-Alert-module__alert__content-text--margin___whVzG",
623
- "alert__content-icon": "lc-Alert-module__alert__content-icon___-EXJm",
624
- "alert--small": "lc-Alert-module__alert--small___Fyk-v",
764
+ alert__content__text,
765
+ alert__content__cta,
625
766
  "alert__close-icon": "lc-Alert-module__alert__close-icon___rYxVy",
767
+ "alert--small": "lc-Alert-module__alert--small___Fyk-v",
768
+ "alert--medium": "lc-Alert-module__alert--medium___ItZWT",
626
769
  "alert--info": "lc-Alert-module__alert--info___GmIGN",
627
770
  "alert--warning": "lc-Alert-module__alert--warning___MubhD",
628
771
  "alert--success": "lc-Alert-module__alert--success___fPtlZ",
629
- "alert--error": "lc-Alert-module__alert--error___DKPo0",
630
- alert__icon
772
+ "alert--error": "lc-Alert-module__alert--error___DKPo0"
631
773
  };
632
774
  const IconConfig = {
633
775
  info: {
@@ -647,46 +789,65 @@ const IconConfig = {
647
789
  kind: "error"
648
790
  }
649
791
  };
650
- const baseClass$L = "alert";
651
- const Alert = (_g) => {
652
- var _h = _g, {
792
+ const baseClass$J = "alert";
793
+ const Alert = (_i) => {
794
+ var _j = _i, {
653
795
  children,
654
796
  className,
797
+ primaryButton,
798
+ secondaryButton,
655
799
  kind = "info",
656
800
  onClose
657
- } = _h, props = __objRest(_h, [
801
+ } = _j, props = __objRest(_j, [
658
802
  "children",
659
803
  "className",
804
+ "primaryButton",
805
+ "secondaryButton",
660
806
  "kind",
661
807
  "onClose"
662
808
  ]);
663
809
  const containerRef = React.useRef(null);
664
- const [isSmallContainer, setIsSmallContainer] = React.useState(false);
665
- const mergedClassNames = cx(styles$C[baseClass$L], styles$C[`${baseClass$L}--${kind}`], isSmallContainer && styles$C[`${baseClass$L}--small`], className);
810
+ const [containerSize, setContainerSize] = React.useState(null);
811
+ 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);
666
812
  React.useEffect(() => {
667
- const handleResize = debounce(() => {
813
+ const resize = () => {
668
814
  if (containerRef.current && containerRef.current.offsetWidth <= 400) {
669
- return setIsSmallContainer(true);
815
+ return setContainerSize("small");
670
816
  }
671
- return setIsSmallContainer(false);
817
+ if (containerRef.current && containerRef.current.offsetWidth > 400 && containerRef.current.offsetWidth <= 800) {
818
+ return setContainerSize("medium");
819
+ }
820
+ return setContainerSize(null);
821
+ };
822
+ const handleResize = debounce(() => {
823
+ resize();
672
824
  }, 500);
673
825
  window.addEventListener("resize", handleResize);
826
+ resize();
674
827
  return () => window.removeEventListener("resize", handleResize);
675
828
  });
676
829
  return /* @__PURE__ */ React.createElement("div", __spreadValues({
677
830
  ref: containerRef,
678
831
  className: mergedClassNames
679
- }, props), /* @__PURE__ */ React.createElement("div", {
680
- className: styles$C[`${baseClass$L}__content`]
681
- }, /* @__PURE__ */ React.createElement(Icon, __spreadProps(__spreadValues({}, IconConfig[kind]), {
832
+ }, props), /* @__PURE__ */ React.createElement(Icon, __spreadProps(__spreadValues({}, IconConfig[kind]), {
682
833
  size: "large",
683
- className: styles$C[`${baseClass$L}__content-icon`]
684
- })), /* @__PURE__ */ React.createElement(Text, {
834
+ className: styles$A[`${baseClass$J}__icon`]
835
+ })), /* @__PURE__ */ React.createElement("div", {
836
+ className: styles$A[`${baseClass$J}__content`]
837
+ }, /* @__PURE__ */ React.createElement(Text, {
685
838
  as: "div",
686
- className: cx(styles$C[`${baseClass$L}__content-text`], onClose && styles$C[`${baseClass$L}__content-text--margin`])
687
- }, children)), onClose && /* @__PURE__ */ React.createElement("button", {
839
+ className: styles$A[`${baseClass$J}__content__text`]
840
+ }, children), (primaryButton || secondaryButton) && /* @__PURE__ */ React.createElement("div", {
841
+ className: styles$A[`${baseClass$J}__content__cta`]
842
+ }, primaryButton && /* @__PURE__ */ React.createElement(Button, {
843
+ kind: "primary",
844
+ onClick: primaryButton.handleClick
845
+ }, primaryButton.label), secondaryButton && /* @__PURE__ */ React.createElement(Button, {
846
+ kind: "text",
847
+ onClick: secondaryButton.handleClick
848
+ }, secondaryButton.label))), onClose && /* @__PURE__ */ React.createElement("button", {
688
849
  type: "button",
689
- className: styles$C[`${baseClass$L}__close-icon`],
850
+ className: styles$A[`${baseClass$J}__close-icon`],
690
851
  onClick: onClose
691
852
  }, /* @__PURE__ */ React.createElement(Icon, {
692
853
  source: Close,
@@ -704,7 +865,7 @@ const avatar = "lc-Avatar-module__avatar___1zTCE";
704
865
  const avatar__status = "lc-Avatar-module__avatar__status___nX2Ls";
705
866
  const avatar__rim = "lc-Avatar-module__avatar__rim___RCQ8Q";
706
867
  const avatar__image = "lc-Avatar-module__avatar__image___YqfqE";
707
- var styles$B = {
868
+ var styles$z = {
708
869
  avatar,
709
870
  avatar__status,
710
871
  "avatar__status--available": "lc-Avatar-module__avatar__status--available___tcpFg",
@@ -750,7 +911,7 @@ var styles$B = {
750
911
  "avatar--xlarge": "lc-Avatar-module__avatar--xlarge___zwgeW",
751
912
  "avatar--xxlarge": "lc-Avatar-module__avatar--xxlarge___Ur0ul"
752
913
  };
753
- const baseClass$K = "avatar";
914
+ const baseClass$I = "avatar";
754
915
  const Avatar = ({
755
916
  alt,
756
917
  className,
@@ -771,15 +932,15 @@ const Avatar = ({
771
932
  const initials = getInitials(text, letterCount);
772
933
  const fontColor = color && getFontColor(color);
773
934
  const mergedClassNames = cx({
774
- [styles$B[baseClass$K]]: true,
775
- [styles$B[`${baseClass$K}--${shape}`]]: true,
776
- [styles$B[`${baseClass$K}--${size}`]]: true,
777
- [styles$B[`${baseClass$K}--with-rim`]]: withRim,
935
+ [styles$z[baseClass$I]]: true,
936
+ [styles$z[`${baseClass$I}--${shape}`]]: true,
937
+ [styles$z[`${baseClass$I}--${size}`]]: true,
938
+ [styles$z[`${baseClass$I}--with-rim`]]: withRim,
778
939
  [`${className}`]: className
779
940
  });
780
- 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}`]);
781
- const mergedIconClassNames = cx(styles$B[`${baseClass$K}__icon`], styles$B[`${baseClass$K}__icon--${size}`]);
782
- const mergedRimClassNames = cx(styles$B[`${baseClass$K}__rim`], styles$B[`${baseClass$K}__rim--${size}`]);
941
+ 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}`]);
942
+ const mergedIconClassNames = cx(styles$z[`${baseClass$I}__icon`], styles$z[`${baseClass$I}__icon--${size}`]);
943
+ const mergedRimClassNames = cx(styles$z[`${baseClass$I}__rim`], styles$z[`${baseClass$I}__rim--${size}`]);
783
944
  const handleError = React.useCallback(() => setShouldDisplayFallbackAvatar(true), []);
784
945
  React.useEffect(() => {
785
946
  setShouldDisplayFallbackAvatar(isImproperImageSetup);
@@ -788,27 +949,27 @@ const Avatar = ({
788
949
  className: mergedClassNames,
789
950
  style: { backgroundColor: color }
790
951
  }, withRim && /* @__PURE__ */ React.createElement("div", {
791
- "data-testid": `${baseClass$K}__rim`,
952
+ "data-testid": `${baseClass$I}__rim`,
792
953
  className: mergedRimClassNames
793
954
  }), status && /* @__PURE__ */ React.createElement("div", {
794
- "data-testid": `${baseClass$K}__status`,
955
+ "data-testid": `${baseClass$I}__status`,
795
956
  className: mergedStatusClassNames
796
957
  }), shouldDisplayImage && /* @__PURE__ */ React.createElement("img", {
797
- className: styles$B[`${baseClass$K}__image`],
958
+ className: styles$z[`${baseClass$I}__image`],
798
959
  src,
799
960
  alt,
800
961
  onError: handleError
801
962
  }), shouldDisplayInitials && /* @__PURE__ */ React.createElement("span", {
802
963
  style: { color: fontColor }
803
964
  }, initials), shouldDisplayFallbackAvatar && /* @__PURE__ */ React.createElement(Icon, {
804
- "data-testid": `${baseClass$K}__icon`,
965
+ "data-testid": `${baseClass$I}__icon`,
805
966
  className: mergedIconClassNames,
806
967
  source: Person
807
968
  }));
808
969
  };
809
970
  const badge = "lc-Badge-module__badge___GhLnu";
810
971
  const badge__dot = "lc-Badge-module__badge__dot___z6RO6";
811
- var styles$A = {
972
+ var styles$y = {
812
973
  badge,
813
974
  badge__dot,
814
975
  "badge--large": "lc-Badge-module__badge--large___B131q",
@@ -821,16 +982,16 @@ var styles$A = {
821
982
  function formatCount(count, max) {
822
983
  return count > max ? `${max}+` : `${count}`;
823
984
  }
824
- const baseClass$J = "badge";
825
- const Badge = (_i) => {
826
- var _j = _i, {
985
+ const baseClass$H = "badge";
986
+ const Badge = (_k) => {
987
+ var _l = _k, {
827
988
  className,
828
989
  count = 0,
829
990
  max = 99,
830
991
  kind = "primary",
831
992
  size = "medium",
832
993
  type = "counter"
833
- } = _j, spanProps = __objRest(_j, [
994
+ } = _l, spanProps = __objRest(_l, [
834
995
  "className",
835
996
  "count",
836
997
  "max",
@@ -838,153 +999,18 @@ const Badge = (_i) => {
838
999
  "size",
839
1000
  "type"
840
1001
  ]);
841
- const mergedClassNames = cx(className, styles$A[baseClass$J], styles$A[`${baseClass$J}--${kind}`], styles$A[`${baseClass$J}--${size}`]);
1002
+ const mergedClassNames = cx(className, styles$y[baseClass$H], styles$y[`${baseClass$H}--${kind}`], styles$y[`${baseClass$H}--${size}`]);
842
1003
  const content = {
843
1004
  ["counter"]: formatCount(count, max),
844
1005
  ["alert"]: "!",
845
1006
  ["dot"]: /* @__PURE__ */ React.createElement("span", {
846
- className: styles$A[`${baseClass$J}__dot`]
1007
+ className: styles$y[`${baseClass$H}__dot`]
847
1008
  })
848
1009
  }[type];
849
1010
  return /* @__PURE__ */ React.createElement("span", __spreadValues({
850
1011
  className: mergedClassNames
851
1012
  }, spanProps), content);
852
1013
  };
853
- const loader = "lc-Loader-module__loader___LRflD";
854
- const loader__spinner = "lc-Loader-module__loader__spinner___l3C1g";
855
- const rotate = "lc-Loader-module__rotate___Tlni-";
856
- const loader__label = "lc-Loader-module__loader__label___R74f6";
857
- var styles$z = {
858
- loader,
859
- loader__spinner,
860
- "loader__spinner--small": "lc-Loader-module__loader__spinner--small___dGFFt",
861
- "loader__spinner--medium": "lc-Loader-module__loader__spinner--medium___J-ki0",
862
- "loader__spinner--large": "lc-Loader-module__loader__spinner--large___Poqq7",
863
- "loader__spinner-circle": "lc-Loader-module__loader__spinner-circle___ApBUO",
864
- rotate,
865
- loader__label
866
- };
867
- const baseClass$I = "loader";
868
- const spinnerClass = `${baseClass$I}__spinner`;
869
- const Loader = ({
870
- primaryColor,
871
- secondaryColor,
872
- label,
873
- className,
874
- size = "medium"
875
- }) => {
876
- return /* @__PURE__ */ React.createElement("div", {
877
- className: cx(styles$z[baseClass$I], className)
878
- }, /* @__PURE__ */ React.createElement("div", {
879
- className: cx(styles$z[spinnerClass], styles$z[`${spinnerClass}--${size}`])
880
- }, /* @__PURE__ */ React.createElement("div", {
881
- className: styles$z["loader__spinner-circle"],
882
- style: {
883
- borderColor: secondaryColor,
884
- borderTopColor: primaryColor
885
- }
886
- })), label && /* @__PURE__ */ React.createElement(Text, {
887
- as: "div",
888
- size: "md",
889
- className: styles$z["loader__label"]
890
- }, label));
891
- };
892
- const btn$1 = "lc-Button-module__btn___aijZJ";
893
- const btn__loader = "lc-Button-module__btn__loader___c8zZz";
894
- const btn__content = "lc-Button-module__btn__content___wefl2";
895
- const btn__icon = "lc-Button-module__btn__icon___GVExB";
896
- var styles$y = {
897
- btn: btn$1,
898
- "btn--disabled": "lc-Button-module__btn--disabled___lXBav",
899
- "btn--full-width": "lc-Button-module__btn--full-width___kdbAr",
900
- "btn--basic": "lc-Button-module__btn--basic___Jc2gD",
901
- "btn--primary": "lc-Button-module__btn--primary___ajbjQ",
902
- "btn--secondary": "lc-Button-module__btn--secondary___iWzE0",
903
- "btn--destructive": "lc-Button-module__btn--destructive___-kLCl",
904
- "btn--compact": "lc-Button-module__btn--compact___4eptQ",
905
- "btn--icon-only": "lc-Button-module__btn--icon-only___bF5pW",
906
- "btn--large": "lc-Button-module__btn--large___lb-z6",
907
- "btn--text": "lc-Button-module__btn--text___WA8OL",
908
- "btn--plain": "lc-Button-module__btn--plain___eOPui",
909
- "btn--plain-light": "lc-Button-module__btn--plain-light___eS9em",
910
- "btn--subtle": "lc-Button-module__btn--subtle___s22xR",
911
- "btn--loading": "lc-Button-module__btn--loading___ZAgjv",
912
- btn__loader,
913
- btn__content,
914
- btn__icon,
915
- "btn__icon--left": "lc-Button-module__btn__icon--left___H68zu",
916
- "btn__icon--right": "lc-Button-module__btn__icon--right___fHr3D",
917
- "btn--icon-only--bg": "lc-Button-module__btn--icon-only--bg___X-4V2"
918
- };
919
- const baseClass$H = "btn";
920
- const Button = React.forwardRef((_k, ref) => {
921
- var _l = _k, {
922
- loading = false,
923
- disabled = false,
924
- type = "button",
925
- fullWidth = false,
926
- kind = "basic",
927
- size = "medium",
928
- icon: icon2 = null,
929
- iconPosition = "left",
930
- loaderLabel,
931
- className,
932
- children,
933
- href,
934
- onClick
935
- } = _l, props = __objRest(_l, [
936
- "loading",
937
- "disabled",
938
- "type",
939
- "fullWidth",
940
- "kind",
941
- "size",
942
- "icon",
943
- "iconPosition",
944
- "loaderLabel",
945
- "className",
946
- "children",
947
- "href",
948
- "onClick"
949
- ]);
950
- const isDisabled = loading || disabled;
951
- const isIconOnly = !children && icon2;
952
- const isTextButton = ["text", "plain", "plain-light"].includes(kind);
953
- const Component = href ? "a" : "button";
954
- const getSpinnerColors = () => {
955
- if (kind === "primary" || kind === "destructive") {
956
- return {
957
- primaryColor: "var(--action-primary-default)",
958
- secondaryColor: "var(--border-invert-primary)"
959
- };
960
- }
961
- };
962
- const mergedClassNames = cx(className, styles$y[baseClass$H], styles$y[`${baseClass$H}--${kind}`], styles$y[`${baseClass$H}--${size}`], {
963
- [styles$y[`${baseClass$H}--loading`]]: loading,
964
- [styles$y[`${baseClass$H}--full-width`]]: fullWidth,
965
- [styles$y[`${baseClass$H}--icon-only`]]: isIconOnly,
966
- [styles$y[`${baseClass$H}--icon-only--bg`]]: isIconOnly && isTextButton,
967
- [styles$y[`${baseClass$H}--disabled`]]: isDisabled
968
- });
969
- return /* @__PURE__ */ React.createElement(Component, __spreadValues({
970
- ref,
971
- className: mergedClassNames,
972
- "aria-disabled": isDisabled,
973
- type,
974
- href: isDisabled ? void 0 : href,
975
- onClick: isDisabled ? void 0 : onClick,
976
- disabled: isDisabled
977
- }, props), loading && /* @__PURE__ */ React.createElement(Loader, __spreadValues({
978
- size: "small",
979
- label: loaderLabel,
980
- className: styles$y[`${baseClass$H}__loader`]
981
- }, getSpinnerColors())), icon2 && React.cloneElement(icon2, {
982
- className: cx(styles$y[`${baseClass$H}__icon`], styles$y[`${baseClass$H}__icon--${iconPosition}`]),
983
- disabled
984
- }), /* @__PURE__ */ React.createElement("div", {
985
- className: styles$y[`${baseClass$H}__content`]
986
- }, children));
987
- });
988
1014
  const btn = "lc-SegmentedControl-module__btn___tfsvL";
989
1015
  var styles$x = {
990
1016
  "segmented-control": "lc-SegmentedControl-module__segmented-control___LHWSk",
@@ -1921,7 +1947,7 @@ const FormField = ({
1921
1947
  className: cx(styles$p[`${baseClass$w}__label-right-node`])
1922
1948
  }, labelRightNode)), /* @__PURE__ */ React.createElement("div", {
1923
1949
  className: cx(styles$p[`${baseClass$w}__content`])
1924
- }, children, error && /* @__PURE__ */ React.createElement(FieldError, null, error), description && /* @__PURE__ */ React.createElement(FieldDescription, null, description))));
1950
+ }, children, error && /* @__PURE__ */ React.createElement(FieldError, null, error), !error && description && /* @__PURE__ */ React.createElement(FieldDescription, null, description))));
1925
1951
  };
1926
1952
  var styles$o = {
1927
1953
  "form-group": "lc-FormGroup-module__form-group___e2JHa",
@@ -2351,6 +2377,7 @@ const Trigger = ({
2351
2377
  isRequired,
2352
2378
  isMultiSelect,
2353
2379
  size = "medium",
2380
+ hideClearButton,
2354
2381
  onTrigger,
2355
2382
  onClear
2356
2383
  }) => {
@@ -2379,6 +2406,7 @@ const Trigger = ({
2379
2406
  e.stopPropagation();
2380
2407
  onClear();
2381
2408
  };
2409
+ const shouldShowClearButton = !hideClearButton && isItemSelected && !isDisabled && !isRequired;
2382
2410
  return /* @__PURE__ */ React.createElement("div", {
2383
2411
  ref: triggerRef,
2384
2412
  className: mergedClassNames,
@@ -2388,7 +2416,7 @@ const Trigger = ({
2388
2416
  className: styles$j[`${baseClass$p}__content`]
2389
2417
  }, children), /* @__PURE__ */ React.createElement("div", {
2390
2418
  className: cx(styles$j[`${baseClass$p}__controls`], styles$j[`${baseClass$p}__controls--${size}`])
2391
- }, isItemSelected && !isDisabled && !isRequired && /* @__PURE__ */ React.createElement("div", {
2419
+ }, shouldShowClearButton && /* @__PURE__ */ React.createElement("div", {
2392
2420
  "data-testid": `${baseClass$p}__clear-icon`,
2393
2421
  className: styles$j[`${baseClass$p}__clear-icon`],
2394
2422
  onClick: handleOnClearClick
@@ -2772,6 +2800,7 @@ const Picker = (_M) => {
2772
2800
  selectAllOptionText,
2773
2801
  type = "single",
2774
2802
  searchDisabled = false,
2803
+ hideClearButton,
2775
2804
  onSelect
2776
2805
  } = _N, props = __objRest(_N, [
2777
2806
  "className",
@@ -2787,6 +2816,7 @@ const Picker = (_M) => {
2787
2816
  "selectAllOptionText",
2788
2817
  "type",
2789
2818
  "searchDisabled",
2819
+ "hideClearButton",
2790
2820
  "onSelect"
2791
2821
  ]);
2792
2822
  const [isListOpen, setIsListOpen] = React.useState(false);
@@ -2873,7 +2903,7 @@ const Picker = (_M) => {
2873
2903
  const itemName = item.name.toLowerCase();
2874
2904
  return itemName.includes(search);
2875
2905
  });
2876
- }, [searchPhrase]);
2906
+ }, [searchPhrase, options]);
2877
2907
  const selectedItemsKeys = React.useMemo(() => {
2878
2908
  if (!selected) {
2879
2909
  return null;
@@ -2894,6 +2924,7 @@ const Picker = (_M) => {
2894
2924
  isRequired,
2895
2925
  isMultiSelect: type === "multi",
2896
2926
  size,
2927
+ hideClearButton,
2897
2928
  onTrigger: handleTrigger,
2898
2929
  onClear: handleClear
2899
2930
  }, /* @__PURE__ */ React.createElement(TriggerBody, {
@@ -4267,19 +4298,27 @@ var styles$3 = {
4267
4298
  const baseClass$3 = "textarea";
4268
4299
  const Textarea = React.forwardRef((__, ref) => {
4269
4300
  var _$ = __, { className, error } = _$, textareaProps = __objRest(_$, ["className", "error"]);
4270
- const { disabled } = textareaProps;
4301
+ const { disabled, onBlur, onFocus } = textareaProps;
4271
4302
  const [isFocused, setIsFocused] = React.useState(false);
4272
4303
  const mergedClassNames = cx(className, styles$3[baseClass$3], {
4273
4304
  [styles$3[`${baseClass$3}--disabled`]]: disabled,
4274
4305
  [styles$3[`${baseClass$3}--focused`]]: isFocused,
4275
4306
  [styles$3[`${baseClass$3}--error`]]: error
4276
4307
  });
4308
+ const handleOnBlur = (e) => {
4309
+ setIsFocused(false);
4310
+ onBlur == null ? void 0 : onBlur(e);
4311
+ };
4312
+ const handleOnFocus = (e) => {
4313
+ setIsFocused(true);
4314
+ onFocus == null ? void 0 : onFocus(e);
4315
+ };
4277
4316
  return /* @__PURE__ */ React.createElement("div", {
4278
4317
  className: mergedClassNames
4279
4318
  }, /* @__PURE__ */ React.createElement("textarea", __spreadProps(__spreadValues({}, textareaProps), {
4280
4319
  ref,
4281
- onFocus: () => setIsFocused(true),
4282
- onBlur: () => setIsFocused(false)
4320
+ onFocus: handleOnFocus,
4321
+ onBlur: handleOnBlur
4283
4322
  })));
4284
4323
  });
4285
4324
  var styles$2 = {