@livechat/design-system-react-components 1.0.0-alpha.14 → 1.0.0-alpha.15

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
@@ -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, Check, ChevronUp, ChevronDown, Search, Error as Error2 } from "@livechat/design-system-icons/react/material";
38
+ import { Close, Info as Info$1, Warning, CheckCircleSolid, Block, Check, ChevronUp, ChevronDown, Error as Error2, Search } from "@livechat/design-system-icons/react/material";
39
39
  import debounce from "lodash.debounce";
40
40
  import * as ReactDOM from "react-dom";
41
41
  import { useFloating, offset, flip, autoUpdate, arrow } from "@floating-ui/react-dom";
@@ -171,7 +171,7 @@ const DesignTokens = {
171
171
  DecorPurple50: "--decor-purple50"
172
172
  };
173
173
  const caps = "lc-Typography-module__caps___c3eNJ";
174
- var styles$u = {
174
+ var styles$x = {
175
175
  "heading-xl": "lc-Typography-module__heading-xl___nhr-6",
176
176
  "heading-lg": "lc-Typography-module__heading-lg___XYF7l",
177
177
  "heading-md": "lc-Typography-module__heading-md___wHOIs",
@@ -207,7 +207,7 @@ const Heading = (_a) => {
207
207
  "children",
208
208
  "className"
209
209
  ]);
210
- return React.createElement(as || SIZE_TO_ELEMENT_MAP[size], __spreadValues({ className: cx(styles$u[`heading-${size}`], className) }, props), children);
210
+ return React.createElement(as || SIZE_TO_ELEMENT_MAP[size], __spreadValues({ className: cx(styles$x[`heading-${size}`], className) }, props), children);
211
211
  };
212
212
  const Text = (_c) => {
213
213
  var _d = _c, {
@@ -232,15 +232,15 @@ const Text = (_c) => {
232
232
  const baseClassPrefix = caps2 ? "caps" : `paragraph-${size}`;
233
233
  return React.createElement(as, __spreadValues({
234
234
  className: cx({
235
- [styles$u[`${baseClassPrefix}`]]: true,
236
- [styles$u[`${baseClassPrefix}--bold`]]: bold,
237
- [styles$u[`${baseClassPrefix}--strike`]]: strike,
238
- [styles$u[`${baseClassPrefix}--underline`]]: underline
235
+ [styles$x[`${baseClassPrefix}`]]: true,
236
+ [styles$x[`${baseClassPrefix}--bold`]]: bold,
237
+ [styles$x[`${baseClassPrefix}--strike`]]: strike,
238
+ [styles$x[`${baseClassPrefix}--underline`]]: underline
239
239
  }, className)
240
240
  }, props), children);
241
241
  };
242
242
  const icon$1 = "lc-Icon-module__icon___tw31R";
243
- var styles$t = {
243
+ var styles$w = {
244
244
  icon: icon$1,
245
245
  "icon--primary": "lc-Icon-module__icon--primary___JJnBV",
246
246
  "icon--subtle": "lc-Icon-module__icon--subtle___sZIzL",
@@ -281,7 +281,7 @@ const IconSizeMap = {
281
281
  height: 32
282
282
  }
283
283
  };
284
- const baseClass$A = "icon";
284
+ const baseClass$D = "icon";
285
285
  const Icon = (props) => {
286
286
  const _a = props, {
287
287
  source,
@@ -301,7 +301,7 @@ const Icon = (props) => {
301
301
  const GeneratedIcon = React.createElement(source, __spreadProps(__spreadValues({}, IconSizeMap[size]), {
302
302
  color: customColor
303
303
  }));
304
- const mergedClassNames = cx(className, styles$t[baseClass$A], kind && styles$t[`${baseClass$A}--${disabled ? "disabled--" : ""}${kind}`]);
304
+ const mergedClassNames = cx(className, styles$w[baseClass$D], kind && styles$w[`${baseClass$D}--${disabled ? "disabled--" : ""}${kind}`]);
305
305
  return /* @__PURE__ */ React.createElement("span", __spreadProps(__spreadValues({}, restProps), {
306
306
  className: mergedClassNames
307
307
  }), GeneratedIcon);
@@ -309,7 +309,7 @@ const Icon = (props) => {
309
309
  const alert = "lc-Alert-module__alert___HBTns";
310
310
  const alert__content = "lc-Alert-module__alert__content___9nZdf";
311
311
  const alert__icon = "lc-Alert-module__alert__icon___8TaAH";
312
- var styles$s = {
312
+ var styles$v = {
313
313
  alert,
314
314
  alert__content,
315
315
  "alert__content-text": "lc-Alert-module__alert__content-text___x2Un5",
@@ -341,7 +341,7 @@ const IconConfig$1 = {
341
341
  kind: "error"
342
342
  }
343
343
  };
344
- const baseClass$z = "alert";
344
+ const baseClass$C = "alert";
345
345
  const Alert = ({
346
346
  children,
347
347
  className,
@@ -350,7 +350,7 @@ const Alert = ({
350
350
  }) => {
351
351
  const containerRef = React.useRef(null);
352
352
  const [isSmallContainer, setIsSmallContainer] = React.useState(false);
353
- const mergedClassNames = cx(styles$s[baseClass$z], styles$s[`${baseClass$z}--${kind}`], isSmallContainer && styles$s[`${baseClass$z}--small`], className);
353
+ const mergedClassNames = cx(styles$v[baseClass$C], styles$v[`${baseClass$C}--${kind}`], isSmallContainer && styles$v[`${baseClass$C}--small`], className);
354
354
  React.useEffect(() => {
355
355
  const handleResize = debounce(() => {
356
356
  if (containerRef.current && containerRef.current.offsetWidth <= 400) {
@@ -365,15 +365,15 @@ const Alert = ({
365
365
  ref: containerRef,
366
366
  className: mergedClassNames
367
367
  }, /* @__PURE__ */ React.createElement("div", {
368
- className: styles$s[`${baseClass$z}__content`]
368
+ className: styles$v[`${baseClass$C}__content`]
369
369
  }, /* @__PURE__ */ React.createElement(Icon, __spreadProps(__spreadValues({}, IconConfig$1[kind]), {
370
- className: styles$s[`${baseClass$z}__content-icon`]
370
+ className: styles$v[`${baseClass$C}__content-icon`]
371
371
  })), /* @__PURE__ */ React.createElement(Text, {
372
372
  as: "div",
373
- className: cx(styles$s[`${baseClass$z}__content-text`], onClose && styles$s[`${baseClass$z}__content-text--margin`])
373
+ className: cx(styles$v[`${baseClass$C}__content-text`], onClose && styles$v[`${baseClass$C}__content-text--margin`])
374
374
  }, children)), onClose && /* @__PURE__ */ React.createElement("button", {
375
375
  type: "button",
376
- className: styles$s[`${baseClass$z}__close-icon`],
376
+ className: styles$v[`${baseClass$C}__close-icon`],
377
377
  onClick: onClose
378
378
  }, /* @__PURE__ */ React.createElement(Icon, {
379
379
  source: Close,
@@ -382,7 +382,7 @@ const Alert = ({
382
382
  })));
383
383
  };
384
384
  const badge = "lc-Badge-module__badge___GhLnu";
385
- var styles$r = {
385
+ var styles$u = {
386
386
  badge,
387
387
  "badge--secondary": "lc-Badge-module__badge--secondary___JjNIJ"
388
388
  };
@@ -392,8 +392,8 @@ const Badge = ({
392
392
  secondary = false
393
393
  }) => {
394
394
  return /* @__PURE__ */ React.createElement("span", {
395
- className: cx(styles$r.badge, className, {
396
- [styles$r["badge--secondary"]]: secondary
395
+ className: cx(styles$u.badge, className, {
396
+ [styles$u["badge--secondary"]]: secondary
397
397
  })
398
398
  }, children);
399
399
  };
@@ -401,7 +401,7 @@ const loader = "lc-Loader-module__loader___LRflD";
401
401
  const loader__spinner = "lc-Loader-module__loader__spinner___l3C1g";
402
402
  const rotate = "lc-Loader-module__rotate___Tlni-";
403
403
  const loader__label = "lc-Loader-module__loader__label___R74f6";
404
- var styles$q = {
404
+ var styles$t = {
405
405
  loader,
406
406
  loader__spinner,
407
407
  "loader__spinner--small": "lc-Loader-module__loader__spinner--small___dGFFt",
@@ -411,8 +411,8 @@ var styles$q = {
411
411
  rotate,
412
412
  loader__label
413
413
  };
414
- const baseClass$y = "loader";
415
- const spinnerClass = `${baseClass$y}__spinner`;
414
+ const baseClass$B = "loader";
415
+ const spinnerClass = `${baseClass$B}__spinner`;
416
416
  const Loader = ({
417
417
  primaryColor,
418
418
  secondaryColor,
@@ -421,11 +421,11 @@ const Loader = ({
421
421
  size = "medium"
422
422
  }) => {
423
423
  return /* @__PURE__ */ React.createElement("div", {
424
- className: cx(styles$q[baseClass$y], className)
424
+ className: cx(styles$t[baseClass$B], className)
425
425
  }, /* @__PURE__ */ React.createElement("div", {
426
- className: cx(styles$q[spinnerClass], styles$q[`${spinnerClass}--${size}`])
426
+ className: cx(styles$t[spinnerClass], styles$t[`${spinnerClass}--${size}`])
427
427
  }, /* @__PURE__ */ React.createElement("div", {
428
- className: styles$q["loader__spinner-circle"],
428
+ className: styles$t["loader__spinner-circle"],
429
429
  style: {
430
430
  borderColor: secondaryColor,
431
431
  borderTopColor: primaryColor
@@ -433,14 +433,14 @@ const Loader = ({
433
433
  })), label && /* @__PURE__ */ React.createElement(Text, {
434
434
  as: "div",
435
435
  size: "md",
436
- className: styles$q["loader__label"]
436
+ className: styles$t["loader__label"]
437
437
  }, label));
438
438
  };
439
439
  const btn$1 = "lc-Button-module__btn___aijZJ";
440
440
  const btn__loader = "lc-Button-module__btn__loader___c8zZz";
441
441
  const btn__content = "lc-Button-module__btn__content___wefl2";
442
442
  const btn__icon = "lc-Button-module__btn__icon___GVExB";
443
- var styles$p = {
443
+ var styles$s = {
444
444
  btn: btn$1,
445
445
  "btn--disabled": "lc-Button-module__btn--disabled___lXBav",
446
446
  "btn--icon-only": "lc-Button-module__btn--icon-only___bF5pW",
@@ -461,7 +461,7 @@ var styles$p = {
461
461
  btn__content,
462
462
  btn__icon
463
463
  };
464
- const baseClass$x = "btn";
464
+ const baseClass$A = "btn";
465
465
  const Button = (_e) => {
466
466
  var _f = _e, {
467
467
  loading = false,
@@ -492,11 +492,11 @@ const Button = (_e) => {
492
492
  ]);
493
493
  const isDisabled = loading || disabled;
494
494
  const Component = href ? "a" : "button";
495
- const mergedClassNames = cx(className, styles$p[baseClass$x], styles$p[`${baseClass$x}--${kind}`], styles$p[`${baseClass$x}--${size}`], {
496
- [styles$p[`${baseClass$x}--loading`]]: loading,
497
- [styles$p[`${baseClass$x}--full-width`]]: fullWidth,
498
- [styles$p[`${baseClass$x}--icon-only`]]: !children && icon2,
499
- [styles$p[`${baseClass$x}--disabled`]]: isDisabled
495
+ const mergedClassNames = cx(className, styles$s[baseClass$A], styles$s[`${baseClass$A}--${kind}`], styles$s[`${baseClass$A}--${size}`], {
496
+ [styles$s[`${baseClass$A}--loading`]]: loading,
497
+ [styles$s[`${baseClass$A}--full-width`]]: fullWidth,
498
+ [styles$s[`${baseClass$A}--icon-only`]]: !children && icon2,
499
+ [styles$s[`${baseClass$A}--disabled`]]: isDisabled
500
500
  });
501
501
  return /* @__PURE__ */ React.createElement(Component, __spreadValues({
502
502
  className: mergedClassNames,
@@ -506,16 +506,16 @@ const Button = (_e) => {
506
506
  }, props), loading && /* @__PURE__ */ React.createElement(Loader, {
507
507
  size: "small",
508
508
  label: loaderLabel,
509
- className: styles$p[`${baseClass$x}__loader`]
509
+ className: styles$s[`${baseClass$A}__loader`]
510
510
  }), icon2 && React.cloneElement(icon2, {
511
- className: cx(styles$p[`${baseClass$x}__icon`], styles$p[`${baseClass$x}__icon--${iconPosition}`]),
511
+ className: cx(styles$s[`${baseClass$A}__icon`], styles$s[`${baseClass$A}__icon--${iconPosition}`]),
512
512
  disabled
513
513
  }), /* @__PURE__ */ React.createElement("div", {
514
- className: styles$p[`${baseClass$x}__content`]
514
+ className: styles$s[`${baseClass$A}__content`]
515
515
  }, children));
516
516
  };
517
517
  const btn = "lc-ButtonGroup-module__btn___bXPrU";
518
- var styles$o = {
518
+ var styles$r = {
519
519
  "btn-group": "lc-ButtonGroup-module__btn-group___R-lZQ",
520
520
  btn,
521
521
  "btn--active": "lc-ButtonGroup-module__btn--active___VAc37",
@@ -525,7 +525,7 @@ var styles$o = {
525
525
  };
526
526
  function noop() {
527
527
  }
528
- const baseClass$w = "btn-group";
528
+ const baseClass$z = "btn-group";
529
529
  const ButtonGroup = (_g) => {
530
530
  var _h = _g, {
531
531
  size = "medium",
@@ -544,7 +544,7 @@ const ButtonGroup = (_g) => {
544
544
  "currentIndex",
545
545
  "initialIndex"
546
546
  ]);
547
- const mergedClassName = cx(styles$o[baseClass$w], className);
547
+ const mergedClassName = cx(styles$r[baseClass$z], className);
548
548
  const [currentStateIndex, setCurrentStateIndex] = React.useState(initialIndex);
549
549
  const isControlled = typeof currentIndex === "number";
550
550
  const _currentIndex = isControlled ? currentIndex : currentStateIndex;
@@ -568,14 +568,14 @@ const ButtonGroup = (_g) => {
568
568
  child.props.onClick(event);
569
569
  }
570
570
  },
571
- className: cx(styles$o["btn"], styles$o[`btn--${size}`], i === _currentIndex && styles$o["btn--active"])
571
+ className: cx(styles$r["btn"], styles$r[`btn--${size}`], i === _currentIndex && styles$r["btn--active"])
572
572
  })));
573
573
  };
574
574
  const card = "lc-Card-module__card___GqMm2";
575
575
  const card__title = "lc-Card-module__card__title___1YjAR";
576
576
  const card__text = "lc-Card-module__card__text___-jYlF";
577
577
  const card__img = "lc-Card-module__card__img___teLC8";
578
- var styles$n = {
578
+ var styles$q = {
579
579
  card,
580
580
  card__title,
581
581
  card__text,
@@ -596,16 +596,16 @@ const Card = (_i) => {
596
596
  return /* @__PURE__ */ React.createElement(Text, __spreadValues({
597
597
  as: "div",
598
598
  size: "md",
599
- className: cx(styles$n["card"], className)
599
+ className: cx(styles$q["card"], className)
600
600
  }, restProps), (img || title) && /* @__PURE__ */ React.createElement(Heading, {
601
601
  as: "div",
602
602
  size: "sm",
603
- className: styles$n["card__title"]
603
+ className: styles$q["card__title"]
604
604
  }, img && /* @__PURE__ */ React.createElement("img", {
605
605
  src: img,
606
- className: styles$n["card__img"]
606
+ className: styles$q["card__img"]
607
607
  }), title && /* @__PURE__ */ React.createElement("div", {
608
- className: styles$n["card__text"]
608
+ className: styles$q["card__text"]
609
609
  }, title)), children);
610
610
  };
611
611
  const checkbox = "lc-Checkbox-module__checkbox___G7nTf";
@@ -615,7 +615,7 @@ const checkbox__checkmark = "lc-Checkbox-module__checkbox__checkmark___16pfY";
615
615
  const checkbox__input = "lc-Checkbox-module__checkbox__input___YLbVF";
616
616
  const checkbox__text = "lc-Checkbox-module__checkbox__text___P2SIq";
617
617
  const checkbox__helper = "lc-Checkbox-module__checkbox__helper___YSJ-n";
618
- var styles$m = {
618
+ var styles$p = {
619
619
  checkbox,
620
620
  checkbox__label,
621
621
  checkbox__square,
@@ -626,16 +626,16 @@ var styles$m = {
626
626
  "checkbox--disabled": "lc-Checkbox-module__checkbox--disabled___-lAqW",
627
627
  checkbox__helper
628
628
  };
629
- const baseClass$v = "checkbox";
629
+ const baseClass$y = "checkbox";
630
630
  const Checkbox = (_k) => {
631
631
  var _l = _k, {
632
632
  className = ""
633
633
  } = _l, props = __objRest(_l, [
634
634
  "className"
635
635
  ]);
636
- const mergedClassNames = cx(styles$m[`${baseClass$v}__square`], className);
636
+ const mergedClassNames = cx(styles$p[`${baseClass$y}__square`], className);
637
637
  return /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("input", __spreadProps(__spreadValues({}, props), {
638
- className: styles$m[`${baseClass$v}__input`],
638
+ className: styles$p[`${baseClass$y}__input`],
639
639
  type: "checkbox"
640
640
  })), /* @__PURE__ */ React.createElement("div", {
641
641
  className: mergedClassNames
@@ -643,13 +643,13 @@ const Checkbox = (_k) => {
643
643
  source: Check,
644
644
  kind: "inverted",
645
645
  size: "xsmall",
646
- className: styles$m[`${baseClass$v}__checkmark`]
646
+ className: styles$p[`${baseClass$y}__checkmark`]
647
647
  })));
648
648
  };
649
- var styles$l = {
649
+ var styles$o = {
650
650
  "field-description": "lc-FieldDescription-module__field-description___IcRDH"
651
651
  };
652
- const baseClass$u = "field-description";
652
+ const baseClass$x = "field-description";
653
653
  const FieldDescription = (_m) => {
654
654
  var _n = _m, {
655
655
  children,
@@ -658,7 +658,7 @@ const FieldDescription = (_m) => {
658
658
  "children",
659
659
  "className"
660
660
  ]);
661
- const mergedClassNames = cx(styles$l[baseClass$u], className);
661
+ const mergedClassNames = cx(styles$o[baseClass$x], className);
662
662
  return /* @__PURE__ */ React.createElement(Text, __spreadProps(__spreadValues({
663
663
  as: "span",
664
664
  size: "sm"
@@ -666,7 +666,7 @@ const FieldDescription = (_m) => {
666
666
  className: mergedClassNames
667
667
  }), children);
668
668
  };
669
- const baseClass$t = "checkbox";
669
+ const baseClass$w = "checkbox";
670
670
  const CheckboxField = (_o) => {
671
671
  var _p = _o, {
672
672
  children,
@@ -681,29 +681,29 @@ const CheckboxField = (_o) => {
681
681
  "checked",
682
682
  "disabled"
683
683
  ]);
684
- const mergedClassNames = cx(styles$m[baseClass$t], className, {
685
- [styles$m[`${baseClass$t}--selected`]]: checked,
686
- [styles$m[`${baseClass$t}--disabled`]]: disabled
684
+ const mergedClassNames = cx(styles$p[baseClass$w], className, {
685
+ [styles$p[`${baseClass$w}--selected`]]: checked,
686
+ [styles$p[`${baseClass$w}--disabled`]]: disabled
687
687
  });
688
688
  return /* @__PURE__ */ React.createElement("div", {
689
689
  className: mergedClassNames
690
690
  }, /* @__PURE__ */ React.createElement("label", {
691
- className: styles$m[`${baseClass$t}__label`]
691
+ className: styles$p[`${baseClass$w}__label`]
692
692
  }, /* @__PURE__ */ React.createElement(Checkbox, __spreadProps(__spreadValues({}, props), {
693
693
  checked,
694
694
  disabled
695
695
  })), /* @__PURE__ */ React.createElement(Text, {
696
696
  as: "div",
697
697
  size: "md",
698
- className: styles$m[`${baseClass$t}__text`]
698
+ className: styles$p[`${baseClass$w}__text`]
699
699
  }, children)), description && /* @__PURE__ */ React.createElement(FieldDescription, {
700
- className: styles$m[`${baseClass$t}__helper`]
700
+ className: styles$p[`${baseClass$w}__helper`]
701
701
  }, description));
702
702
  };
703
- var styles$k = {
703
+ var styles$n = {
704
704
  "field-error": "lc-FieldError-module__field-error___IDkPT"
705
705
  };
706
- const baseClass$s = "field-error";
706
+ const baseClass$v = "field-error";
707
707
  const FieldError = (_q) => {
708
708
  var _r = _q, {
709
709
  children,
@@ -712,7 +712,7 @@ const FieldError = (_q) => {
712
712
  "children",
713
713
  "className"
714
714
  ]);
715
- const mergedClassNames = cx(styles$k[baseClass$s], className);
715
+ const mergedClassNames = cx(styles$n[baseClass$v], className);
716
716
  return /* @__PURE__ */ React.createElement(Text, __spreadProps(__spreadValues({
717
717
  as: "span",
718
718
  size: "sm"
@@ -720,12 +720,12 @@ const FieldError = (_q) => {
720
720
  className: mergedClassNames
721
721
  }), children);
722
722
  };
723
- var styles$j = {
723
+ var styles$m = {
724
724
  "field-group": "lc-FieldGroup-module__field-group___gy8lp",
725
725
  "field-group--inline": "lc-FieldGroup-module__field-group--inline___or4qf",
726
726
  "field-group--stretched": "lc-FieldGroup-module__field-group--stretched___6rkuO"
727
727
  };
728
- const baseClass$r = "field-group";
728
+ const baseClass$u = "field-group";
729
729
  const FieldGroup = (_s) => {
730
730
  var _t = _s, {
731
731
  className = "",
@@ -742,9 +742,9 @@ const FieldGroup = (_s) => {
742
742
  "inline",
743
743
  "stretch"
744
744
  ]);
745
- const mergedClassNames = cx(styles$j[baseClass$r], className, {
746
- [styles$j[`${baseClass$r}--inline`]]: inline,
747
- [styles$j[`${baseClass$r}--stretched`]]: stretch
745
+ const mergedClassNames = cx(styles$m[baseClass$u], className, {
746
+ [styles$m[`${baseClass$u}--inline`]]: inline,
747
+ [styles$m[`${baseClass$u}--stretched`]]: stretch
748
748
  });
749
749
  return /* @__PURE__ */ React.createElement("div", __spreadProps(__spreadValues({}, props), {
750
750
  className: mergedClassNames
@@ -755,14 +755,14 @@ const form__header = "lc-Form-module__form__header___U4B7t";
755
755
  const form__footer = "lc-Form-module__form__footer___1-sUX";
756
756
  const form__label = "lc-Form-module__form__label___spg-J";
757
757
  const form__helper = "lc-Form-module__form__helper___bhfwS";
758
- var styles$i = {
758
+ var styles$l = {
759
759
  form,
760
760
  form__header,
761
761
  form__footer,
762
762
  form__label,
763
763
  form__helper
764
764
  };
765
- const baseClass$q = "form";
765
+ const baseClass$t = "form";
766
766
  const Form = (_u) => {
767
767
  var _v = _u, {
768
768
  className,
@@ -778,27 +778,27 @@ const Form = (_u) => {
778
778
  "formFooter"
779
779
  ]);
780
780
  return /* @__PURE__ */ React.createElement("form", __spreadValues({
781
- className: cx(styles$i[baseClass$q], className)
781
+ className: cx(styles$l[baseClass$t], className)
782
782
  }, restProps), (labelText || helperText) && /* @__PURE__ */ React.createElement("div", {
783
- className: styles$i[`${baseClass$q}__header`]
783
+ className: styles$l[`${baseClass$t}__header`]
784
784
  }, labelText && /* @__PURE__ */ React.createElement(Heading, {
785
785
  size: "sm",
786
- className: styles$i[`${baseClass$q}__label`]
786
+ className: styles$l[`${baseClass$t}__label`]
787
787
  }, labelText), helperText && /* @__PURE__ */ React.createElement(Text, {
788
788
  as: "p",
789
789
  size: "sm",
790
- className: styles$i[`${baseClass$q}__helper`]
790
+ className: styles$l[`${baseClass$t}__helper`]
791
791
  }, helperText)), children, formFooter && /* @__PURE__ */ React.createElement("div", {
792
- className: styles$i[`${baseClass$q}__footer`]
792
+ className: styles$l[`${baseClass$t}__footer`]
793
793
  }, formFooter));
794
794
  };
795
- var styles$h = {
795
+ var styles$k = {
796
796
  "form-group": "lc-FormGroup-module__form-group___e2JHa",
797
797
  "form-group__header": "lc-FormGroup-module__form-group__header___DgGmR",
798
798
  "form-group__label": "lc-FormGroup-module__form-group__label___NC-JW",
799
799
  "form-group__helper": "lc-FormGroup-module__form-group__helper___SRuxe"
800
800
  };
801
- const baseClass$p = "form-group";
801
+ const baseClass$s = "form-group";
802
802
  const FormGroup = (_w) => {
803
803
  var _x = _w, {
804
804
  className = "",
@@ -811,24 +811,24 @@ const FormGroup = (_w) => {
811
811
  "labelText",
812
812
  "helperText"
813
813
  ]);
814
- const mergedClassNames = cx(styles$h[baseClass$p], className);
814
+ const mergedClassNames = cx(styles$k[baseClass$s], className);
815
815
  return /* @__PURE__ */ React.createElement("div", __spreadProps(__spreadValues(__spreadProps(__spreadValues({}, props), {
816
816
  role: "group"
817
817
  }), labelText && { "aria-label": labelText }), {
818
818
  className: mergedClassNames
819
819
  }), /* @__PURE__ */ React.createElement("div", {
820
- className: styles$h[`${baseClass$p}__header`]
820
+ className: styles$k[`${baseClass$s}__header`]
821
821
  }, /* @__PURE__ */ React.createElement(Heading, {
822
822
  as: "div",
823
823
  size: "sm",
824
- className: styles$h[`${baseClass$p}__label`]
824
+ className: styles$k[`${baseClass$s}__label`]
825
825
  }, labelText), helperText && /* @__PURE__ */ React.createElement(Text, {
826
826
  as: "div",
827
827
  size: "sm",
828
- className: styles$h[`${baseClass$p}__helper`]
828
+ className: styles$k[`${baseClass$s}__helper`]
829
829
  }, helperText)), children);
830
830
  };
831
- var styles$g = {
831
+ var styles$j = {
832
832
  "text-field": "lc-TextField-module__text-field___bis8c",
833
833
  "text-field--inline": "lc-TextField-module__text-field--inline___MPHqg",
834
834
  "text-field__wrapper--inline": "lc-TextField-module__text-field__wrapper--inline___-gOob",
@@ -843,7 +843,7 @@ var styles$g = {
843
843
  "text-field__content": "lc-TextField-module__text-field__content___dCkUW",
844
844
  "field-label": "lc-TextField-module__field-label___q8Y-p"
845
845
  };
846
- const baseClass$o = "text-field";
846
+ const baseClass$r = "text-field";
847
847
  const TextField = ({
848
848
  inline,
849
849
  error,
@@ -855,21 +855,21 @@ const TextField = ({
855
855
  children,
856
856
  labelRightNode
857
857
  }) => {
858
- const mergedClassNames = cx(styles$g[baseClass$o], {
859
- [styles$g[`${baseClass$o}--inline`]]: inline
858
+ const mergedClassNames = cx(styles$j[baseClass$r], {
859
+ [styles$j[`${baseClass$r}--inline`]]: inline
860
860
  }, className);
861
861
  return /* @__PURE__ */ React.createElement("div", {
862
862
  className: mergedClassNames
863
863
  }, labelRightNode && inline && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("div", {
864
- className: cx(styles$g[`${baseClass$o}__label-right-node`], styles$g[`${baseClass$o}__label-right-node--inline`])
864
+ className: cx(styles$j[`${baseClass$r}__label-right-node`], styles$j[`${baseClass$r}__label-right-node--inline`])
865
865
  }, labelRightNode), /* @__PURE__ */ React.createElement("div", {
866
- className: styles$g[`${baseClass$o}__row-break`]
866
+ className: styles$j[`${baseClass$r}__row-break`]
867
867
  })), /* @__PURE__ */ React.createElement("div", {
868
- className: cx(styles$g[`${baseClass$o}__wrapper`], inline && styles$g[`${baseClass$o}__wrapper--inline`])
868
+ className: cx(styles$j[`${baseClass$r}__wrapper`], inline && styles$j[`${baseClass$r}__wrapper--inline`])
869
869
  }, (labelText || labelRightNode) && /* @__PURE__ */ React.createElement("div", {
870
- className: cx(styles$g[`${baseClass$o}__label`], inline && styles$g[`${baseClass$o}__label--inline`], !labelText && styles$g[`${baseClass$o}__label--no-text`])
870
+ className: cx(styles$j[`${baseClass$r}__label`], inline && styles$j[`${baseClass$r}__label--inline`], !labelText && styles$j[`${baseClass$r}__label--no-text`])
871
871
  }, labelText && /* @__PURE__ */ React.createElement("div", {
872
- className: cx(styles$g[`${baseClass$o}__label-wrapper`])
872
+ className: cx(styles$j[`${baseClass$r}__label-wrapper`])
873
873
  }, /* @__PURE__ */ React.createElement("label", {
874
874
  className: "lc-field-label",
875
875
  htmlFor: labelFor
@@ -877,18 +877,18 @@ const TextField = ({
877
877
  as: "span",
878
878
  size: "sm"
879
879
  }, labelText)), labelAdornment && /* @__PURE__ */ React.createElement("div", {
880
- className: cx(styles$g[`${baseClass$o}__label-adornment`])
880
+ className: cx(styles$j[`${baseClass$r}__label-adornment`])
881
881
  }, labelAdornment)), labelRightNode && !inline && /* @__PURE__ */ React.createElement("div", {
882
- className: cx(styles$g[`${baseClass$o}__label-right-node`])
882
+ className: cx(styles$j[`${baseClass$r}__label-right-node`])
883
883
  }, labelRightNode)), /* @__PURE__ */ React.createElement("div", {
884
- className: cx(styles$g[`${baseClass$o}__content`])
884
+ className: cx(styles$j[`${baseClass$r}__content`])
885
885
  }, children, error && /* @__PURE__ */ React.createElement(FieldError, null, error), description && /* @__PURE__ */ React.createElement(FieldDescription, null, description))));
886
886
  };
887
- var styles$f = {
887
+ var styles$i = {
888
888
  "input-field": "lc-InputField-module__input-field___A-GHj",
889
889
  "input-field--error": "lc-InputField-module__input-field--error___MMchC"
890
890
  };
891
- const baseClass$n = "input-field";
891
+ const baseClass$q = "input-field";
892
892
  const InputField = React.forwardRef((_y, ref) => {
893
893
  var _z = _y, {
894
894
  id,
@@ -915,8 +915,8 @@ const InputField = React.forwardRef((_y, ref) => {
915
915
  "style",
916
916
  "type"
917
917
  ]);
918
- const mergedClassNames = cx(styles$f[baseClass$n], {
919
- [styles$f[`${baseClass$n}--error`]]: error
918
+ const mergedClassNames = cx(styles$i[baseClass$q], {
919
+ [styles$i[`${baseClass$q}--error`]]: error
920
920
  }, fieldClassName);
921
921
  return /* @__PURE__ */ React.createElement(TextField, {
922
922
  inline,
@@ -936,11 +936,11 @@ const InputField = React.forwardRef((_y, ref) => {
936
936
  })));
937
937
  });
938
938
  const link = "lc-Link-module__link___kqx52";
939
- var styles$e = {
939
+ var styles$h = {
940
940
  link,
941
941
  "link--bold": "lc-Link-module__link--bold___1rGdO"
942
942
  };
943
- const baseClass$m = "link";
943
+ const baseClass$p = "link";
944
944
  const Link = (_A) => {
945
945
  var _B = _A, {
946
946
  bold = false,
@@ -950,14 +950,14 @@ const Link = (_A) => {
950
950
  "className"
951
951
  ]);
952
952
  return /* @__PURE__ */ React.createElement("a", __spreadValues({
953
- className: cx(styles$e[baseClass$m], bold && styles$e[`${baseClass$m}--bold`], className)
953
+ className: cx(styles$h[baseClass$p], bold && styles$h[`${baseClass$p}--bold`], className)
954
954
  }, rest));
955
955
  };
956
956
  const modal__header = "lc-Modal-module__modal__header___Fp5VE";
957
957
  const modal__heading = "lc-Modal-module__modal__heading___G9KVK";
958
958
  const modal__body = "lc-Modal-module__modal__body___M-jmN";
959
959
  const modal__footer = "lc-Modal-module__modal__footer___2LYdc";
960
- var styles$d = {
960
+ var styles$g = {
961
961
  "modal-base": "lc-Modal-module__modal-base___hbL1U",
962
962
  "modal-base__overlay": "lc-Modal-module__modal-base__overlay___kCQ8t",
963
963
  "modal-base__overlay--visible": "lc-Modal-module__modal-base__overlay--visible___zUNJL",
@@ -976,7 +976,7 @@ const ModalCloseButton = ({
976
976
  onClick
977
977
  }) => /* @__PURE__ */ React.createElement("button", {
978
978
  title: "Close modal",
979
- className: styles$d["modal-base__close"],
979
+ className: styles$g["modal-base__close"],
980
980
  onClick,
981
981
  type: "button"
982
982
  }, /* @__PURE__ */ React.createElement(Icon, {
@@ -995,7 +995,7 @@ const KeyCodes = {
995
995
  arrowUp: "ArrowUp",
996
996
  arrowDown: "ArrowDown"
997
997
  };
998
- const baseClass$l = "modal-base";
998
+ const baseClass$o = "modal-base";
999
999
  const ModalBase = (_C) => {
1000
1000
  var _D = _C, {
1001
1001
  children,
@@ -1008,7 +1008,7 @@ const ModalBase = (_C) => {
1008
1008
  "onClose",
1009
1009
  "closeOnEscPress"
1010
1010
  ]);
1011
- const mergedClassNames = cx(styles$d[baseClass$l], className);
1011
+ const mergedClassNames = cx(styles$g[baseClass$o], className);
1012
1012
  React.useEffect(() => {
1013
1013
  if (!closeOnEscPress) {
1014
1014
  return;
@@ -1034,14 +1034,14 @@ const ModalBase = (_C) => {
1034
1034
  return /* @__PURE__ */ React.createElement("div", {
1035
1035
  "data-testid": "lc-modal-overlay",
1036
1036
  onMouseDown: onOverlayClick,
1037
- className: cx(styles$d[`${baseClass$l}__overlay`], styles$d[`${baseClass$l}__overlay--visible`])
1037
+ className: cx(styles$g[`${baseClass$o}__overlay`], styles$g[`${baseClass$o}__overlay--visible`])
1038
1038
  }, /* @__PURE__ */ React.createElement("div", __spreadValues({
1039
1039
  className: mergedClassNames
1040
1040
  }, props), /* @__PURE__ */ React.createElement(ModalCloseButton, {
1041
1041
  onClick: onCloseButtonClick
1042
1042
  }), children));
1043
1043
  };
1044
- const baseClass$k = "action-modal";
1044
+ const baseClass$n = "action-modal";
1045
1045
  const ActionModal = (_E) => {
1046
1046
  var _F = _E, {
1047
1047
  children,
@@ -1056,20 +1056,20 @@ const ActionModal = (_E) => {
1056
1056
  "heading",
1057
1057
  "actions"
1058
1058
  ]);
1059
- const mergedClassNames = cx(styles$d[baseClass$k], className);
1059
+ const mergedClassNames = cx(styles$g[baseClass$n], className);
1060
1060
  return /* @__PURE__ */ React.createElement(ModalBase, __spreadValues({
1061
1061
  className: mergedClassNames
1062
1062
  }, props), icon2 && /* @__PURE__ */ React.createElement("div", {
1063
- className: styles$d[`${baseClass$k}__icon`]
1063
+ className: styles$g[`${baseClass$n}__icon`]
1064
1064
  }, icon2), heading && /* @__PURE__ */ React.createElement("div", {
1065
- className: styles$d[`${baseClass$k}__heading`]
1065
+ className: styles$g[`${baseClass$n}__heading`]
1066
1066
  }, heading), /* @__PURE__ */ React.createElement("div", {
1067
- className: styles$d[`${baseClass$k}__content`]
1067
+ className: styles$g[`${baseClass$n}__content`]
1068
1068
  }, children), actions && /* @__PURE__ */ React.createElement("div", {
1069
- className: styles$d[`${baseClass$k}__actions`]
1069
+ className: styles$g[`${baseClass$n}__actions`]
1070
1070
  }, actions));
1071
1071
  };
1072
- const baseClass$j = "modal";
1072
+ const baseClass$m = "modal";
1073
1073
  const Modal = (_G) => {
1074
1074
  var _H = _G, {
1075
1075
  children,
@@ -1082,19 +1082,19 @@ const Modal = (_G) => {
1082
1082
  "heading",
1083
1083
  "footer"
1084
1084
  ]);
1085
- const mergedClassNames = cx(styles$d[baseClass$j], className);
1085
+ const mergedClassNames = cx(styles$g[baseClass$m], className);
1086
1086
  return /* @__PURE__ */ React.createElement(ModalBase, __spreadValues({
1087
1087
  className: mergedClassNames
1088
1088
  }, props), heading && /* @__PURE__ */ React.createElement("div", {
1089
- className: styles$d[`${baseClass$j}__header`]
1089
+ className: styles$g[`${baseClass$m}__header`]
1090
1090
  }, /* @__PURE__ */ React.createElement(Heading, {
1091
1091
  size: "sm",
1092
1092
  as: "div",
1093
- className: styles$d[`${baseClass$j}__heading`]
1093
+ className: styles$g[`${baseClass$m}__heading`]
1094
1094
  }, heading)), /* @__PURE__ */ React.createElement("div", {
1095
- className: styles$d[`${baseClass$j}__body`]
1095
+ className: styles$g[`${baseClass$m}__body`]
1096
1096
  }, children), footer && /* @__PURE__ */ React.createElement("div", {
1097
- className: styles$d[`${baseClass$j}__footer`]
1097
+ className: styles$g[`${baseClass$m}__footer`]
1098
1098
  }, footer));
1099
1099
  };
1100
1100
  const ModalPortal = ({
@@ -1120,7 +1120,7 @@ const ModalPortal = ({
1120
1120
  }, [parentElementName]);
1121
1121
  return /* @__PURE__ */ React.createElement(React.Fragment, null, ReactDOM.createPortal(children, container));
1122
1122
  };
1123
- var styles$c = {
1123
+ var styles$f = {
1124
1124
  "numeric-input": "lc-NumericInput-module__numeric-input___j1esc",
1125
1125
  "numeric-input__increment": "lc-NumericInput-module__numeric-input__increment___i3Tys",
1126
1126
  "numeric-input__decrement": "lc-NumericInput-module__numeric-input__decrement___3qgn0",
@@ -1128,7 +1128,7 @@ var styles$c = {
1128
1128
  "numeric-input--no-controls": "lc-NumericInput-module__numeric-input--no-controls___D90rG",
1129
1129
  "numeric-input--error": "lc-NumericInput-module__numeric-input--error___TMxRx"
1130
1130
  };
1131
- const baseClass$i = "numeric-input";
1131
+ const baseClass$l = "numeric-input";
1132
1132
  const NumericInput = (_I) => {
1133
1133
  var _J = _I, {
1134
1134
  className,
@@ -1152,10 +1152,10 @@ const NumericInput = (_I) => {
1152
1152
  "onChange"
1153
1153
  ]);
1154
1154
  const inputRef = React.useRef(null);
1155
- const mergedClassNames = cx(styles$c[baseClass$i], {
1156
- [styles$c[`${baseClass$i}--error`]]: error,
1157
- [styles$c[`${baseClass$i}--no-controls`]]: noControls,
1158
- [styles$c[`${baseClass$i}--disabled`]]: disabled
1155
+ const mergedClassNames = cx(styles$f[baseClass$l], {
1156
+ [styles$f[`${baseClass$l}--error`]]: error,
1157
+ [styles$f[`${baseClass$l}--no-controls`]]: noControls,
1158
+ [styles$f[`${baseClass$l}--disabled`]]: disabled
1159
1159
  }, className);
1160
1160
  const callOnChange = (val) => onChange(String(val));
1161
1161
  const calcValue = (val) => {
@@ -1220,7 +1220,7 @@ const NumericInput = (_I) => {
1220
1220
  disabled: disabled || hasReachedTheLimit(value, max),
1221
1221
  onClick: handleIncrementClick,
1222
1222
  "aria-label": "Increment value",
1223
- className: styles$c[`${baseClass$i}__increment`],
1223
+ className: styles$f[`${baseClass$l}__increment`],
1224
1224
  type: "button"
1225
1225
  }, /* @__PURE__ */ React.createElement(Icon, {
1226
1226
  source: ChevronUp,
@@ -1230,7 +1230,7 @@ const NumericInput = (_I) => {
1230
1230
  tabIndex: -1,
1231
1231
  disabled: disabled || hasReachedTheLimit(value, min),
1232
1232
  "aria-label": "Decrement value",
1233
- className: styles$c[`${baseClass$i}__decrement`],
1233
+ className: styles$f[`${baseClass$l}__decrement`],
1234
1234
  onClick: handleDecrementClick,
1235
1235
  type: "button"
1236
1236
  }, /* @__PURE__ */ React.createElement(Icon, {
@@ -1279,6 +1279,332 @@ const NumericInputField = (_K) => {
1279
1279
  error
1280
1280
  })));
1281
1281
  };
1282
+ var styles$e = {
1283
+ "picker-trigger": "lc-Trigger-module__picker-trigger___BIvTx",
1284
+ "picker-trigger--compact": "lc-Trigger-module__picker-trigger--compact___3i1DL",
1285
+ "picker-trigger--medium": "lc-Trigger-module__picker-trigger--medium___-fbEx",
1286
+ "picker-trigger--large": "lc-Trigger-module__picker-trigger--large___C8qkZ",
1287
+ "picker-trigger__text": "lc-Trigger-module__picker-trigger__text___9cWZO",
1288
+ "picker-trigger--disabled": "lc-Trigger-module__picker-trigger--disabled___7H4tD",
1289
+ "picker-trigger--focused": "lc-Trigger-module__picker-trigger--focused___vTr39",
1290
+ "picker-trigger--error": "lc-Trigger-module__picker-trigger--error___Rh8Qd",
1291
+ "picker-trigger__input": "lc-Trigger-module__picker-trigger__input___GGc12"
1292
+ };
1293
+ const baseClass$k = "picker-trigger";
1294
+ const Trigger = ({
1295
+ children,
1296
+ isDisabled,
1297
+ isError,
1298
+ isItemSelected,
1299
+ isOpen,
1300
+ isRequired,
1301
+ size = "medium",
1302
+ onClick,
1303
+ onClearClick,
1304
+ onFilter
1305
+ }) => {
1306
+ const triggerRef = React.useRef(null);
1307
+ const mergedClassNames = cx(styles$e[baseClass$k], styles$e[`${baseClass$k}--${size}`], isDisabled && styles$e[`${baseClass$k}--disabled`], isOpen && styles$e[`${baseClass$k}--focused`], isError && styles$e[`${baseClass$k}--error`]);
1308
+ React.useEffect(() => {
1309
+ const onKeyDown = (e) => {
1310
+ const isFocused = document.activeElement === triggerRef.current;
1311
+ if (isFocused && e.key !== KeyCodes.tab) {
1312
+ onClick();
1313
+ }
1314
+ };
1315
+ document.addEventListener("keydown", onKeyDown);
1316
+ return () => document.removeEventListener("keydown", onKeyDown);
1317
+ }, []);
1318
+ const handleTriggerClick = () => {
1319
+ onClick();
1320
+ };
1321
+ const handleOnClearClick = (e) => {
1322
+ e.stopPropagation();
1323
+ onClearClick();
1324
+ };
1325
+ const handleOnChange = (e) => {
1326
+ onFilter(e.target.value);
1327
+ };
1328
+ return /* @__PURE__ */ React.createElement("div", {
1329
+ ref: triggerRef,
1330
+ className: mergedClassNames,
1331
+ onClick: handleTriggerClick,
1332
+ tabIndex: 0
1333
+ }, isOpen ? /* @__PURE__ */ React.createElement("input", {
1334
+ className: styles$e[`${baseClass$k}__input`],
1335
+ placeholder: "Select option",
1336
+ onChange: handleOnChange,
1337
+ autoFocus: true
1338
+ }) : /* @__PURE__ */ React.createElement("div", {
1339
+ className: styles$e[`${baseClass$k}__text`]
1340
+ }, children), isItemSelected && !isDisabled && !isRequired && /* @__PURE__ */ React.createElement("div", {
1341
+ "data-testid": `${baseClass$k}__clear-icon`,
1342
+ className: styles$e[`${baseClass$k}__clear-icon`],
1343
+ onClick: handleOnClearClick
1344
+ }, /* @__PURE__ */ React.createElement(Icon, {
1345
+ kind: "link",
1346
+ source: Close
1347
+ })), /* @__PURE__ */ React.createElement(Icon, {
1348
+ className: styles$e[`${baseClass$k}__chevron-icon`],
1349
+ source: !isOpen ? ChevronDown : ChevronUp,
1350
+ size: "large",
1351
+ disabled: isDisabled
1352
+ }));
1353
+ };
1354
+ var styles$d = {
1355
+ "picker-list": "lc-PickerList-module__picker-list___FqdgZ",
1356
+ "picker-list--compact": "lc-PickerList-module__picker-list--compact___F-cAF",
1357
+ "picker-list--medium": "lc-PickerList-module__picker-list--medium___9B1DT",
1358
+ "picker-list--large": "lc-PickerList-module__picker-list--large___8-Q-N",
1359
+ "picker-list__no-results": "lc-PickerList-module__picker-list__no-results___tX172",
1360
+ "picker-list__item": "lc-PickerList-module__picker-list__item___8QNS0",
1361
+ "picker-list__item__header": "lc-PickerList-module__picker-list__item__header___mxmg0"
1362
+ };
1363
+ const baseClass$j = "picker-list";
1364
+ const itemClassName = `${baseClass$j}__item`;
1365
+ const PickerList = ({
1366
+ isOpen,
1367
+ items,
1368
+ selectedItem,
1369
+ size = "medium",
1370
+ emptyStateText = "No results found",
1371
+ onClose,
1372
+ onSelect
1373
+ }) => {
1374
+ const mergedClassNames = cx(styles$d[baseClass$j], styles$d[`${baseClass$j}--${size}`], {
1375
+ [styles$d[`${baseClass$j}__no-results`]]: items.length === 0
1376
+ });
1377
+ const [currentItemKey, setCurrentItemKey] = React.useState(null);
1378
+ const indexRef = React.useRef(-1);
1379
+ const lastIndexRef = React.useRef(0);
1380
+ const listRef = React.useRef(null);
1381
+ React.useEffect(() => {
1382
+ if (indexRef.current > -1 && items.length > 0) {
1383
+ setCurrentItemKey(items[indexRef.current].key);
1384
+ }
1385
+ if (isOpen) {
1386
+ document.addEventListener("keydown", onKeyDown);
1387
+ return () => document.removeEventListener("keydown", onKeyDown);
1388
+ } else {
1389
+ indexRef.current = -1;
1390
+ lastIndexRef.current = 0;
1391
+ setCurrentItemKey(null);
1392
+ }
1393
+ }, [items, isOpen]);
1394
+ const isHeaderOrDisabled = (i) => !!items[i] && (items[i].disabled || items[i].groupHeader);
1395
+ const getPrevItemIndex = () => {
1396
+ indexRef.current = indexRef.current - 1;
1397
+ while (isHeaderOrDisabled(indexRef.current)) {
1398
+ indexRef.current = indexRef.current - 1;
1399
+ if (!isHeaderOrDisabled(indexRef.current)) {
1400
+ break;
1401
+ }
1402
+ }
1403
+ lastIndexRef.current = indexRef.current;
1404
+ return indexRef.current;
1405
+ };
1406
+ const getNextItemIndex = () => {
1407
+ indexRef.current = indexRef.current + 1;
1408
+ if (!isHeaderOrDisabled(indexRef.current)) {
1409
+ lastIndexRef.current = indexRef.current;
1410
+ return indexRef.current;
1411
+ }
1412
+ while (isHeaderOrDisabled(indexRef.current)) {
1413
+ indexRef.current = indexRef.current + 1;
1414
+ if (indexRef.current === items.length && !isHeaderOrDisabled(indexRef.current)) {
1415
+ return lastIndexRef.current;
1416
+ }
1417
+ if (!isHeaderOrDisabled(indexRef.current)) {
1418
+ break;
1419
+ }
1420
+ }
1421
+ lastIndexRef.current = indexRef.current;
1422
+ return indexRef.current;
1423
+ };
1424
+ const onKeyDown = (e) => {
1425
+ if (e.key === KeyCodes.esc) {
1426
+ e.preventDefault();
1427
+ onClose();
1428
+ }
1429
+ if (e.key === KeyCodes.arrowUp && indexRef.current > 0) {
1430
+ e.preventDefault();
1431
+ indexRef.current = getPrevItemIndex();
1432
+ setCurrentItemKey(items[indexRef.current].key);
1433
+ }
1434
+ if (e.key === KeyCodes.arrowDown && indexRef.current + 1 < items.length) {
1435
+ e.preventDefault();
1436
+ indexRef.current = getNextItemIndex();
1437
+ setCurrentItemKey(items[indexRef.current].key);
1438
+ }
1439
+ if (e.key === KeyCodes.enter && !items[indexRef.current].disabled) {
1440
+ e.preventDefault();
1441
+ onSelect(items[indexRef.current]);
1442
+ }
1443
+ };
1444
+ const handleOnClick = (item) => onSelect(item);
1445
+ const isItemSelected = (key) => !!selectedItem && key === selectedItem.key;
1446
+ if (!isOpen) {
1447
+ return null;
1448
+ }
1449
+ if (items.length === 0) {
1450
+ return /* @__PURE__ */ React.createElement("div", {
1451
+ className: mergedClassNames
1452
+ }, emptyStateText);
1453
+ }
1454
+ return /* @__PURE__ */ React.createElement("ul", {
1455
+ ref: listRef,
1456
+ className: mergedClassNames,
1457
+ role: "listbox",
1458
+ tabIndex: -1
1459
+ }, items.map((item) => {
1460
+ if (item.groupHeader) {
1461
+ return /* @__PURE__ */ React.createElement("li", {
1462
+ role: "option",
1463
+ key: item.key,
1464
+ className: styles$d[`${itemClassName}__header`]
1465
+ }, item.name);
1466
+ }
1467
+ return /* @__PURE__ */ React.createElement("li", {
1468
+ ref: (element) => {
1469
+ if (currentItemKey === item.key) {
1470
+ element == null ? void 0 : element.scrollIntoView({ block: "nearest" });
1471
+ }
1472
+ },
1473
+ role: "option",
1474
+ "aria-current": currentItemKey === item.key,
1475
+ "aria-selected": isItemSelected(item.key),
1476
+ "aria-disabled": item.disabled,
1477
+ id: item.key,
1478
+ key: item.key,
1479
+ className: styles$d[itemClassName],
1480
+ onClick: () => !item.disabled && handleOnClick(item)
1481
+ }, item.name, isItemSelected(item.key) && /* @__PURE__ */ React.createElement(Icon, {
1482
+ kind: "link",
1483
+ source: Check
1484
+ }));
1485
+ }));
1486
+ };
1487
+ const picker = "lc-Picker-module__picker___GRj9W";
1488
+ const picker__container = "lc-Picker-module__picker__container___s0PUc";
1489
+ const picker__label = "lc-Picker-module__picker__label___Ac7Vu";
1490
+ const picker__error = "lc-Picker-module__picker__error___H865k";
1491
+ const picker__error__icon = "lc-Picker-module__picker__error__icon___bbL7r";
1492
+ var styles$c = {
1493
+ picker,
1494
+ picker__container,
1495
+ picker__label,
1496
+ "picker__label--disabled": "lc-Picker-module__picker__label--disabled___Opu7s",
1497
+ picker__error,
1498
+ picker__error__icon
1499
+ };
1500
+ const baseClass$i = "picker";
1501
+ const Picker = ({
1502
+ disabled,
1503
+ error,
1504
+ label,
1505
+ options,
1506
+ size = "medium",
1507
+ placeholder = "Select option",
1508
+ isRequired,
1509
+ noSearchResultText = "No results found",
1510
+ onSelect
1511
+ }) => {
1512
+ const [isListOpen, setIsListOpen] = React.useState(false);
1513
+ const [selectedItem, setSelectedItem] = React.useState(null);
1514
+ const [searchPhrase, setSearchPhrase] = React.useState(null);
1515
+ const triggerRef = React.useRef(null);
1516
+ React.useEffect(() => {
1517
+ if (isListOpen) {
1518
+ const onDocumentClick = (e) => {
1519
+ var _a;
1520
+ if (!((_a = triggerRef.current) == null ? void 0 : _a.contains(e.target))) {
1521
+ setIsListOpen(false);
1522
+ }
1523
+ };
1524
+ const onKeyDown = (e) => {
1525
+ if (e.key === KeyCodes.tab) {
1526
+ setIsListOpen(false);
1527
+ }
1528
+ };
1529
+ document.addEventListener("mousedown", onDocumentClick);
1530
+ document.addEventListener("keydown", onKeyDown);
1531
+ return () => {
1532
+ document.removeEventListener("mousedown", onDocumentClick);
1533
+ document.addEventListener("keydown", onKeyDown);
1534
+ };
1535
+ } else {
1536
+ setSearchPhrase(null);
1537
+ }
1538
+ }, [isListOpen]);
1539
+ const handleOnTriggerClick = () => {
1540
+ if (disabled) {
1541
+ return;
1542
+ }
1543
+ return setIsListOpen((prev) => !prev);
1544
+ };
1545
+ const handleOnClose = () => {
1546
+ setIsListOpen(false);
1547
+ };
1548
+ const handleOnSelect = (item) => {
1549
+ setIsListOpen(false);
1550
+ setSelectedItem(item);
1551
+ onSelect(item);
1552
+ };
1553
+ const handleOnClearClick = () => {
1554
+ setIsListOpen(false);
1555
+ setSelectedItem(null);
1556
+ onSelect(null);
1557
+ };
1558
+ const handleOnFilter = (text) => setSearchPhrase(text);
1559
+ const items = React.useMemo(() => {
1560
+ if (!searchPhrase) {
1561
+ return options;
1562
+ }
1563
+ return options.filter((item) => {
1564
+ if (item.groupHeader) {
1565
+ return false;
1566
+ }
1567
+ const search = searchPhrase.toLowerCase();
1568
+ const itemName = item.name.toLowerCase();
1569
+ return itemName.includes(search);
1570
+ });
1571
+ }, [searchPhrase]);
1572
+ return /* @__PURE__ */ React.createElement("div", {
1573
+ ref: triggerRef,
1574
+ className: baseClass$i
1575
+ }, label && /* @__PURE__ */ React.createElement("div", {
1576
+ className: cx(styles$c[`${baseClass$i}__label`], {
1577
+ [styles$c[`${baseClass$i}__label--disabled`]]: disabled
1578
+ })
1579
+ }, label), /* @__PURE__ */ React.createElement("div", {
1580
+ className: styles$c[`${baseClass$i}__container`]
1581
+ }, /* @__PURE__ */ React.createElement(Trigger, {
1582
+ isError: !!error,
1583
+ isOpen: isListOpen,
1584
+ isDisabled: disabled,
1585
+ isItemSelected: !!selectedItem,
1586
+ isRequired,
1587
+ size,
1588
+ onClick: handleOnTriggerClick,
1589
+ onClearClick: handleOnClearClick,
1590
+ onFilter: handleOnFilter
1591
+ }, selectedItem ? selectedItem.name : placeholder), /* @__PURE__ */ React.createElement(PickerList, {
1592
+ selectedItem,
1593
+ items,
1594
+ isOpen: isListOpen,
1595
+ size,
1596
+ emptyStateText: noSearchResultText,
1597
+ onClose: handleOnClose,
1598
+ onSelect: handleOnSelect
1599
+ })), error && /* @__PURE__ */ React.createElement("div", {
1600
+ className: styles$c[`${baseClass$i}__error`]
1601
+ }, /* @__PURE__ */ React.createElement(Icon, {
1602
+ className: styles$c[`${baseClass$i}__error__icon`],
1603
+ source: Error2,
1604
+ kind: "error",
1605
+ size: "small"
1606
+ }), error));
1607
+ };
1282
1608
  const popover = "lc-Popover-module__popover___8X1b2";
1283
1609
  var cssStyles = {
1284
1610
  popover,
@@ -2761,4 +3087,4 @@ const UserGuide = (props) => {
2761
3087
  })
2762
3088
  }), props.children)) : null;
2763
3089
  };
2764
- export { ANIMATION_TIME, ActionModal, Alert, Badge, Button, ButtonGroup, Card, Checkbox, CheckboxField, DesignTokens, EmailTagInput, FieldDescription, FieldError, FieldGroup, Form, FormGroup, Heading, Icon, Info, InputField, Interactive, Link, Loader, Modal, ModalBase, ModalCloseButton, ModalPortal, NumericInput, NumericInputField, Popover, ProgressBar, ProgressCircle, PromoBanner, RadioButton, SearchInput, Simple, Switch, Tab, TabsList, TabsWrapper, Tag, TagInput, Text, TextField, Toast, ToastWrapper, Tooltip, UserGuide };
3090
+ export { ANIMATION_TIME, ActionModal, Alert, Badge, Button, ButtonGroup, Card, Checkbox, CheckboxField, DesignTokens, EmailTagInput, FieldDescription, FieldError, FieldGroup, Form, FormGroup, Heading, Icon, Info, InputField, Interactive, Link, Loader, Modal, ModalBase, ModalCloseButton, ModalPortal, NumericInput, NumericInputField, Picker, Popover, ProgressBar, ProgressCircle, PromoBanner, RadioButton, SearchInput, Simple, Switch, Tab, TabsList, TabsWrapper, Tag, TagInput, Text, TextField, Toast, ToastWrapper, Tooltip, UserGuide };