@7shifts/sous-chef 3.11.2 → 3.12.0

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/index.js CHANGED
@@ -6,6 +6,8 @@ var classnames = _interopDefault(require('classnames'));
6
6
  var reactToastify = require('react-toastify');
7
7
  var ReactDOM = _interopDefault(require('react-dom'));
8
8
  require('react-toastify/dist/ReactToastify.css');
9
+ var lodashEs = require('lodash-es');
10
+ var parseTime = _interopDefault(require('time-autocomplete/src/core/AMPMParser'));
9
11
  var ReactModal = _interopDefault(require('react-modal'));
10
12
  var DayPicker = require('react-day-picker');
11
13
  var DayPicker__default = _interopDefault(DayPicker);
@@ -13,8 +15,6 @@ require('react-day-picker/lib/style.css');
13
15
  var dateFnsFormat = _interopDefault(require('date-fns/format'));
14
16
  var dateFnsParse = _interopDefault(require('date-fns/parse'));
15
17
  var startOfDay = _interopDefault(require('date-fns/startOfDay'));
16
- var lodashEs = require('lodash-es');
17
- var parseTime = _interopDefault(require('time-autocomplete/src/core/AMPMParser'));
18
18
  var Select = require('react-select');
19
19
  var Select__default = _interopDefault(Select);
20
20
  var reactRouterDom = require('react-router-dom');
@@ -4522,518 +4522,697 @@ var DROPDOWN_TRIGGER = {
4522
4522
  CLICK: 'click'
4523
4523
  };
4524
4524
 
4525
- var styles$d = {"overlay":"_2puqJ","overlay--after-open":"_1167h","overlay--before-close":"_t_t7L","content":"_wQQ_2","content--after-open":"_3jwux","content--before-close":"_2c2QP"};
4526
-
4527
- var styles$e = {"header":"_36nxW","header__close-button":"_2zYre","sub-header":"_2XwRD"};
4528
-
4529
- var ModalHeader = function ModalHeader(_ref) {
4530
- var header = _ref.header,
4531
- subHeader = _ref.subHeader,
4532
- onClose = _ref.onClose,
4533
- loading = _ref.loading;
4534
-
4535
- if (!header && !subHeader) {
4536
- return onClose ? React__default.createElement("div", {
4537
- className: styles$e['header__close-button']
4538
- }, React__default.createElement(Button$1, {
4539
- theme: "link-icon",
4540
- onClick: onClose,
4541
- disabled: loading
4542
- }, React__default.createElement(IconTimes, null))) : null;
4543
- }
4525
+ var styles$d = {"label":"_h724f","label--truncate":"_1VUoF"};
4544
4526
 
4545
- return React__default.createElement(Stack, {
4546
- space: 12,
4547
- marginBottom: 24
4548
- }, React__default.createElement(Inline, {
4549
- flex: [1],
4550
- alignItems: "center"
4551
- }, React__default.createElement("span", {
4552
- className: styles$e['header']
4553
- }, header), onClose && React__default.createElement(Button$1, {
4554
- theme: "link-icon",
4555
- onClick: onClose,
4556
- disabled: loading
4557
- }, React__default.createElement(IconTimes, null))), subHeader && React__default.createElement("div", {
4558
- className: styles$e['sub-header']
4559
- }, subHeader));
4527
+ var isEllipsisActive = function isEllipsisActive(e) {
4528
+ return e.offsetWidth < e.scrollWidth;
4560
4529
  };
4561
4530
 
4562
- var ModalContext = React.createContext({
4563
- isModalMounted: false
4564
- });
4565
- var useModalContext = function useModalContext() {
4566
- var context = React.useContext(ModalContext);
4567
- return context || {};
4568
- };
4531
+ var useLabelTooltip = function useLabelTooltip(labelId, tooltipContent, truncate) {
4532
+ var _useState = React.useState(false),
4533
+ showTooltip = _useState[0],
4534
+ setShowTooltip = _useState[1];
4569
4535
 
4570
- var Modal = function Modal(_ref) {
4571
- var children = _ref.children,
4572
- header = _ref.header,
4573
- subHeader = _ref.subHeader,
4574
- onClose = _ref.onClose,
4575
- loading = _ref.loading,
4576
- _ref$zIndex = _ref.zIndex,
4577
- zIndex = _ref$zIndex === void 0 ? Z_INDEX_LAYERS.MODAL : _ref$zIndex,
4578
- rootElementId = _ref.rootElementId,
4579
- _ref$width = _ref.width,
4580
- width = _ref$width === void 0 ? 500 : _ref$width,
4581
- height = _ref.height,
4582
- maxWidth = _ref.maxWidth,
4583
- _ref$shouldReturnFocu = _ref.shouldReturnFocusAfterClose,
4584
- shouldReturnFocusAfterClose = _ref$shouldReturnFocu === void 0 ? true : _ref$shouldReturnFocu,
4585
- testId = _ref.testId;
4586
- var style = {
4587
- content: {
4588
- width: width,
4589
- height: height,
4590
- maxWidth: maxWidth
4591
- },
4592
- overlay: {
4593
- zIndex: zIndex
4594
- }
4595
- };
4596
- return React__default.createElement(ReactModal, {
4597
- isOpen: true,
4598
- testId: testId,
4599
- shouldCloseOnEsc: true,
4600
- shouldCloseOnOverlayClick: false,
4601
- shouldReturnFocusAfterClose: shouldReturnFocusAfterClose,
4602
- onRequestClose: onClose && !loading ? onClose : undefined,
4603
- style: style,
4604
- closeTimeoutMS: 200,
4605
- contentLabel: "Modal",
4606
- appElement: rootElementId && document.getElementById(rootElementId) || undefined,
4607
- overlayClassName: {
4608
- base: styles$d['overlay'],
4609
- afterOpen: styles$d['overlay--after-open'],
4610
- beforeClose: styles$d['overlay--before-close']
4611
- },
4612
- className: {
4613
- base: styles$d['content'],
4614
- afterOpen: styles$d['content--after-open'],
4615
- beforeClose: styles$d['content--before-close']
4616
- }
4617
- }, React__default.createElement(ModalHeader, {
4618
- header: header,
4619
- subHeader: subHeader,
4620
- onClose: onClose,
4621
- loading: loading
4622
- }), React__default.createElement(ModalContext.Provider, {
4623
- value: {
4624
- isModalMounted: true
4536
+ var shouldTruncate = typeof tooltipContent === 'string' && truncate;
4537
+ var labelElement = document.getElementById(labelId);
4538
+ var isHidden = labelElement && labelElement.offsetParent === null;
4539
+ var handleApplyTooltip = React.useCallback(function () {
4540
+ if (!shouldTruncate) {
4541
+ return;
4625
4542
  }
4626
- }, children));
4627
- };
4628
-
4629
- Modal.setAppElement = function (rootElement) {
4630
- ReactModal.setAppElement(rootElement);
4631
- };
4632
-
4633
- var THRESHOLD = 20;
4634
- var useScrollShadow = function useScrollShadow() {
4635
- var ref = React.useRef(null);
4636
4543
 
4637
- var _useState = React.useState(false),
4638
- showScrollShadow = _useState[0],
4639
- setShowScrollShadow = _useState[1];
4544
+ var labelElement = document.getElementById(labelId);
4640
4545
 
4641
- React.useEffect(function () {
4642
- if (!ref.current) {
4546
+ if (!labelElement) {
4643
4547
  return;
4644
4548
  }
4645
4549
 
4646
- var modalBody = ref.current;
4550
+ var shouldShowTooltip = isEllipsisActive(labelElement);
4647
4551
 
4648
- if (modalBody.offsetHeight > THRESHOLD) {
4649
- setShowScrollShadow(true);
4552
+ if (showTooltip !== shouldShowTooltip) {
4553
+ setShowTooltip(shouldShowTooltip);
4650
4554
  }
4651
- }, []);
4555
+ }, [shouldTruncate, isHidden]);
4556
+ React.useEffect(function () {
4557
+ var onWindowResize = lodashEs.debounce(handleApplyTooltip, 300);
4558
+ window.addEventListener('resize', onWindowResize);
4559
+ return function () {
4560
+ return window.removeEventListener('resize', onWindowResize);
4561
+ };
4562
+ }, [handleApplyTooltip]);
4563
+ React.useLayoutEffect(handleApplyTooltip, [handleApplyTooltip]);
4652
4564
  return {
4653
- ref: ref,
4654
- showScrollShadow: showScrollShadow
4565
+ showTooltip: showTooltip,
4566
+ shouldTruncate: shouldTruncate
4655
4567
  };
4656
4568
  };
4657
4569
 
4658
- var styles$f = {"modal-body":"_2J-ku","modal-body--with-scroll-shadow":"_2ErCP"};
4659
-
4660
- var ModalBody = function ModalBody(_ref) {
4570
+ var Label = function Label(_ref) {
4661
4571
  var _classNames;
4662
4572
 
4663
- var children = _ref.children,
4664
- testId = _ref.testId;
4573
+ var htmlFor = _ref.htmlFor,
4574
+ children = _ref.children,
4575
+ _ref$truncate = _ref.truncate,
4576
+ truncate = _ref$truncate === void 0 ? true : _ref$truncate;
4577
+ var labelId = "label-" + htmlFor;
4665
4578
 
4666
- var _useScrollShadow = useScrollShadow(),
4667
- ref = _useScrollShadow.ref,
4668
- showScrollShadow = _useScrollShadow.showScrollShadow;
4579
+ var _useLabelTooltip = useLabelTooltip(labelId, children, truncate),
4580
+ showTooltip = _useLabelTooltip.showTooltip,
4581
+ shouldTruncate = _useLabelTooltip.shouldTruncate;
4669
4582
 
4670
- return React__default.createElement("div", {
4671
- className: classnames(styles$f['modal-body'], (_classNames = {}, _classNames[styles$f['modal-body--with-scroll-shadow']] = showScrollShadow, _classNames)),
4672
- ref: ref,
4673
- "data-testid": testId
4583
+ var LabelElement = React__default.createElement("label", {
4584
+ htmlFor: htmlFor,
4585
+ id: labelId,
4586
+ className: classnames(styles$d['label'], (_classNames = {}, _classNames[styles$d['label--truncate']] = shouldTruncate, _classNames))
4674
4587
  }, children);
4675
- };
4676
-
4677
- var styles$g = {"modal-footer":"_LKOr5","tertiary-container":"_Qktd-"};
4678
-
4679
- var updateButtonProps = function updateButtonProps(button, newProps) {
4680
- if (!button) {
4681
- return null;
4682
- }
4683
4588
 
4684
- if (button.type !== Button$1) {
4685
- return button;
4589
+ if (showTooltip) {
4590
+ return React__default.createElement(Tooltip$1, {
4591
+ overlay: children,
4592
+ placement: "top"
4593
+ }, LabelElement);
4686
4594
  }
4687
4595
 
4688
- return React__default.cloneElement(button, _extends({}, newProps));
4596
+ return LabelElement;
4689
4597
  };
4690
4598
 
4691
- var ModalFooter = function ModalFooter(_ref) {
4692
- var children = _ref.children,
4693
- actions = _ref.actions,
4694
- testId = _ref.testId;
4599
+ var styles$e = {"caption":"_1DWBq"};
4695
4600
 
4696
- if (actions) {
4697
- var _actions$primary, _actions$secondary, _actions$tertiary, _classnames;
4601
+ var Caption = function Caption(_ref) {
4602
+ var fieldId = _ref.fieldId,
4603
+ children = _ref.children;
4604
+ return React__default.createElement("div", {
4605
+ id: fieldId && fieldId + "-describer",
4606
+ className: styles$e['caption']
4607
+ }, children);
4608
+ };
4698
4609
 
4699
- var primaryButton = updateButtonProps(actions.primary, {
4700
- theme: (actions === null || actions === void 0 ? void 0 : (_actions$primary = actions.primary) === null || _actions$primary === void 0 ? void 0 : _actions$primary.props.theme) || 'primary',
4701
- size: BUTTON_SIZES.MIN_WIDTH_100
4702
- });
4703
- var secondaryButton = updateButtonProps(actions.secondary, {
4704
- theme: (actions === null || actions === void 0 ? void 0 : (_actions$secondary = actions.secondary) === null || _actions$secondary === void 0 ? void 0 : _actions$secondary.props.theme) || 'default',
4705
- size: BUTTON_SIZES.MIN_WIDTH_100
4706
- });
4707
- var tertiaryButton = updateButtonProps(actions.tertiary, {
4708
- theme: (actions === null || actions === void 0 ? void 0 : (_actions$tertiary = actions.tertiary) === null || _actions$tertiary === void 0 ? void 0 : _actions$tertiary.props.theme) || 'link-primary',
4709
- size: BUTTON_SIZES.MIN_WIDTH_100
4710
- });
4711
- return React__default.createElement(FooterContainer, {
4712
- testId: testId
4713
- }, React__default.createElement(Inline, {
4714
- justifyContent: "space-between"
4715
- }, React__default.createElement("div", {
4716
- className: classnames((_classnames = {}, _classnames[styles$g['tertiary-container']] = tertiaryButton && tertiaryButton.props.theme.startsWith('link'), _classnames))
4717
- }, tertiaryButton || React__default.createElement("div", null)), React__default.createElement(Inline, {
4718
- space: 12
4719
- }, secondaryButton, primaryButton)));
4720
- }
4610
+ var WHITE = '#ffffff';
4611
+ var EGGPLANT200 = '#d3dbf4';
4612
+ var EGGPLANT300 = '#a7b7ea';
4613
+ var EGGPLANT400 = '#6d87dd';
4614
+ var EGGPLANT500 = '#6179c6';
4615
+ var EGGPLANT600 = '#415184';
4616
+ var RADISH400 = '#e76767';
4617
+ var GREY100 = '#F3F3F3';
4618
+ var GREY200 = '#D5D5D5';
4619
+ var GREY300 = '#949494';
4620
+ var GREY400 = '#767676';
4621
+ var GREY500 = '#464646';
4721
4622
 
4722
- return React__default.createElement(FooterContainer, null, children);
4723
- };
4623
+ var styles$f = {"error-message":"_nZ2MD"};
4724
4624
 
4725
- var FooterContainer = function FooterContainer(_ref2) {
4726
- var children = _ref2.children,
4727
- testId = _ref2.testId;
4728
- var childrenItens = React__default.Children.toArray(children);
4729
- var hasCustomAlignment = childrenItens.length === 1 && childrenItens[0].type === Inline;
4625
+ var ErrorMessage = function ErrorMessage(_ref) {
4626
+ var fieldId = _ref.fieldId,
4627
+ children = _ref.children,
4628
+ testId = _ref.testId;
4730
4629
  return React__default.createElement("div", {
4731
- className: styles$g['modal-footer'],
4630
+ id: fieldId && fieldId + "-error-message",
4631
+ className: styles$f['error-message'],
4732
4632
  "data-testid": testId
4733
4633
  }, React__default.createElement(Inline, {
4734
- justifyContent: "end",
4735
- space: 12,
4736
- flex: hasCustomAlignment ? [1] : undefined
4737
- }, children));
4634
+ space: 8,
4635
+ alignItems: "center"
4636
+ }, React__default.createElement(IconTimesOctagon, {
4637
+ color: RADISH400,
4638
+ size: "medium"
4639
+ }), children));
4738
4640
  };
4739
4641
 
4740
- var styles$h = {"container":"_v1b-5","wrapper":"_3mrLu","interactionDisabled":"_1J9dh","DayPicker-Day":"_8FcQE","navBar":"_1SPuq","todayButton":"_24FJ6","navButtonInteractionDisabled":"_Oxdm9","navButtonPrev":"_20uqc","navButtonNext":"_3C53z","months":"_M_eHz","month":"_3RPpJ","caption":"_1FXNw","weekdays":"_3KcRU","weekdaysRow":"_1fO_e","weekday":"_c1Y-X","body":"_34mA1","week":"_1PmqZ","day":"_1AWH2","disabled":"_3vJkw","selected":"_1DR0N","outside":"_276GV","footer":"_2M5xr","today":"_3N6fj","overlayWrapper":"_3Zqgu","overlay":"_20Ncd","weekNumber":"_2hb-S"};
4741
-
4742
- var styles$i = {"container":"_okDvi","wrapper":"_17XdD","interactionDisabled":"_1O7OT","DayPicker-Day":"_3noGA","navBar":"_1Hl3Q","todayButton":"_m0Vs9","navButtonInteractionDisabled":"_1ULWH","navButtonPrev":"_3gjq8","navButtonNext":"_1m-Kd","months":"_Fq6Xh","month":"_3i0Oo","caption":"_36X9Y","weekdays":"_1aWPn","weekdaysRow":"_3HXCK","weekday":"_t-ctd","body":"_XAbiR","week":"_3Nwep","day":"_3nNcG","disabled":"_1M4ZF","selected":"_2PEs8","outside":"_1PIJa","footer":"_2T_z1","today":"_1hVM6","overlayWrapper":"_1L-hI","overlay":"_dDPZb","weekNumber":"_1alhT"};
4743
-
4744
- function parseDate(str, format, locale) {
4745
- var parsed = dateFnsParse(str, format, new Date(), {
4746
- locale: locale
4747
- });
4748
-
4749
- if (str.length === format.length && DayPicker.DateUtils.isDate(parsed)) {
4750
- return parsed;
4751
- }
4752
-
4753
- return undefined;
4754
- }
4755
- function formatDate(date, format, locale) {
4756
- return dateFnsFormat(date, format, {
4757
- locale: locale
4758
- });
4759
- }
4760
- function setToMidnight(date) {
4761
- return date && startOfDay(date);
4762
- }
4763
- function getStartOfWeek(date, weekIndex) {
4764
- var d = new Date(date);
4765
- var firstDay = d.getDate() - d.getDay() + weekIndex;
4766
- var firstDayAdjusted = firstDay > d.getDate() ? firstDay - 7 : firstDay;
4767
- return new Date(d.setDate(firstDayAdjusted));
4768
- }
4769
- function getEndOfWeek(date, weekIndex) {
4770
- var startOfWeek = getStartOfWeek(date, weekIndex);
4771
- var endDay = startOfWeek.getDate() + 6;
4772
- return new Date(startOfWeek.setDate(endDay));
4773
- }
4774
- function createWeekRange(date, weekStart) {
4775
- return {
4776
- start: getStartOfWeek(date, weekStart),
4777
- end: getEndOfWeek(date, weekStart)
4778
- };
4779
- }
4780
- var DAYS = [getLocalizedString('time.sunday'), getLocalizedString('time.monday'), getLocalizedString('time.tuesday'), getLocalizedString('time.wednesday'), getLocalizedString('time.thursday'), getLocalizedString('time.friday'), getLocalizedString('time.saturday')];
4781
- var MONTH_NAMES = [getLocalizedString('time.january'), getLocalizedString('time.february'), getLocalizedString('time.march'), getLocalizedString('time.april'), getLocalizedString('time.may'), getLocalizedString('time.june'), getLocalizedString('time.july'), getLocalizedString('time.august'), getLocalizedString('time.september'), getLocalizedString('time.october'), getLocalizedString('time.november'), getLocalizedString('time.december')];
4642
+ var Field = function Field(_ref) {
4643
+ var id = _ref.id,
4644
+ label = _ref.label,
4645
+ caption = _ref.caption,
4646
+ error = _ref.error,
4647
+ children = _ref.children;
4648
+ var shouldRenderLabel = label || typeof label === 'string';
4649
+ return React__default.createElement(Stack, {
4650
+ space: 8,
4651
+ flexItems: true
4652
+ }, shouldRenderLabel && React__default.createElement(Label, {
4653
+ htmlFor: id
4654
+ }, label), children, caption && React__default.createElement(Caption, {
4655
+ fieldId: id
4656
+ }, caption), error && React__default.createElement(ErrorMessage, {
4657
+ fieldId: id
4658
+ }, error));
4659
+ };
4782
4660
 
4783
- var CALENDAR_MODE = {
4784
- DAY: 'day',
4785
- WEEK: 'week'
4661
+ var Context$1 = React.createContext({});
4662
+ var useFormContext = function useFormContext() {
4663
+ var context = React.useContext(Context$1);
4664
+ return context || {};
4786
4665
  };
4787
- var CALENDAR_PLACEMENT = {
4788
- BOTTOM: 'bottom',
4789
- TOP: 'top'
4666
+
4667
+ var useFieldId = function useFieldId(_ref) {
4668
+ var name = _ref.name,
4669
+ inputId = _ref.id;
4670
+ var id = React.useMemo(function () {
4671
+ return inputId ? inputId : name + "-" + Math.random();
4672
+ }, [inputId, name]);
4673
+ return id;
4790
4674
  };
4791
4675
 
4792
- var calculateCalendarPosition = function calculateCalendarPosition(placement, anchorPosition, calendarDimensions) {
4793
- if (!calendarDimensions) {
4794
- return {
4795
- left: 0,
4796
- top: 0
4797
- };
4676
+ var getFormikState = function getFormikState(name, formik) {
4677
+ if (formik === undefined) {
4678
+ return null;
4798
4679
  }
4799
4680
 
4800
- var horizontalPosition = getHorizontalPosition(anchorPosition, calendarDimensions);
4801
- var verticalPosition = getVerticalPosition(anchorPosition, placement, calendarDimensions);
4802
- return _extends({}, horizontalPosition, verticalPosition);
4803
- };
4681
+ var formikPath = getFormikArrayPath(name);
4804
4682
 
4805
- var getHorizontalPosition = function getHorizontalPosition(anchorPosition, calendarDimensions) {
4806
- var innerWidth = window.innerWidth;
4807
- var calendarRight = anchorPosition.left + calendarDimensions.width;
4683
+ if (formikPath.length === 0) {
4684
+ return null;
4685
+ }
4686
+
4687
+ var formikLatestLevel = formikPath.reduce(function (acc, path) {
4688
+ var _acc$touched, _acc$error, _acc$value;
4808
4689
 
4809
- if (innerWidth > calendarRight + BUFFER) {
4810
4690
  return {
4811
- left: anchorPosition.left
4691
+ touched: (_acc$touched = acc.touched) === null || _acc$touched === void 0 ? void 0 : _acc$touched[path],
4692
+ error: (_acc$error = acc.error) === null || _acc$error === void 0 ? void 0 : _acc$error[path],
4693
+ value: (_acc$value = acc.value) === null || _acc$value === void 0 ? void 0 : _acc$value[path]
4812
4694
  };
4813
- }
4814
-
4695
+ }, {
4696
+ touched: formik.touched,
4697
+ error: formik.errors,
4698
+ value: formik.values
4699
+ });
4815
4700
  return {
4816
- left: anchorPosition.right - calendarDimensions.width
4701
+ error: formikLatestLevel.touched ? formikLatestLevel.error : undefined,
4702
+ value: formikLatestLevel.value
4817
4703
  };
4818
4704
  };
4819
-
4820
- var getVerticalPosition = function getVerticalPosition(anchorPosition, placement, calendarDimensions) {
4821
- var calendarTopAboveTrigger = anchorPosition.top - calendarDimensions.height - PADDING;
4822
- var calendarTopBelowTrigger = anchorPosition.bottom + PADDING;
4823
-
4824
- if (placement === CALENDAR_PLACEMENT.TOP) {
4825
- if (calendarTopAboveTrigger < 0) {
4826
- return {
4827
- top: anchorPosition.bottom + PADDING
4828
- };
4829
- }
4830
-
4831
- return {
4832
- top: calendarTopAboveTrigger + window.scrollY
4833
- };
4834
- } else {
4835
- if (calendarTopBelowTrigger + calendarDimensions.height > window.innerHeight) {
4836
- return {
4837
- top: calendarTopAboveTrigger + window.scrollY
4838
- };
4839
- }
4840
-
4841
- return {
4842
- top: calendarTopBelowTrigger + window.scrollY
4843
- };
4844
- }
4705
+ var getFormikArrayPath = function getFormikArrayPath(name) {
4706
+ return name.split(/[^a-zA-Z0-9]/).filter(Boolean);
4845
4707
  };
4846
4708
 
4847
- var Calendar = function Calendar(_ref) {
4848
- var _ref$mode = _ref.mode,
4849
- mode = _ref$mode === void 0 ? CALENDAR_MODE.DAY : _ref$mode,
4850
- _ref$position = _ref.position,
4851
- position = _ref$position === void 0 ? CALENDAR_PLACEMENT.BOTTOM : _ref$position,
4852
- _ref$weekStart = _ref.weekStart,
4853
- weekStart = _ref$weekStart === void 0 ? 0 : _ref$weekStart,
4854
- selected = _ref.selected,
4855
- onSelect = _ref.onSelect,
4856
- onClickOutside = _ref.onClickOutside,
4857
- disabledDays = _ref.disabledDays,
4858
- anchorRef = _ref.anchorRef,
4859
- testId = _ref.testId;
4860
-
4861
- var _useState = React.useState(null),
4862
- calendarRef = _useState[0],
4863
- setCalendarRef = _useState[1];
4709
+ var useFieldControllers = function useFieldControllers(_ref) {
4710
+ var name = _ref.name,
4711
+ inputId = _ref.id,
4712
+ value = _ref.value,
4713
+ _onChange = _ref.onChange,
4714
+ _onBlur = _ref.onBlur,
4715
+ _onFocus = _ref.onFocus,
4716
+ _onKeyDown = _ref.onKeyDown,
4717
+ error = _ref.error,
4718
+ _ref$type = _ref.type,
4719
+ type = _ref$type === void 0 ? 'text' : _ref$type;
4864
4720
 
4865
- var style = mode === CALENDAR_MODE.DAY ? styles$h : styles$i;
4866
- var anchorNode = anchorRef.current;
4867
- useOnClickOutside({
4868
- current: calendarRef
4869
- }, function (event) {
4870
- var _anchorRef$current;
4721
+ var _useFormContext = useFormContext(),
4722
+ formik = _useFormContext.formik;
4871
4723
 
4872
- if (!((_anchorRef$current = anchorRef.current) !== null && _anchorRef$current !== void 0 && _anchorRef$current.contains(event === null || event === void 0 ? void 0 : event.srcElement))) {
4873
- onClickOutside();
4874
- }
4724
+ var id = useFieldId({
4725
+ name: name,
4726
+ id: inputId
4875
4727
  });
4876
- var weekRange = selected ? createWeekRange(selected, weekStart) : undefined;
4877
- var selectedRange = weekRange && {
4878
- from: weekRange.start,
4879
- to: weekRange.end
4728
+ var controllers = {
4729
+ id: id,
4730
+ error: error,
4731
+ value: value,
4732
+ onChange: function onChange(e) {
4733
+ return _onChange && _onChange(e.target.value);
4734
+ },
4735
+ onBlur: function onBlur(e) {
4736
+ return _onBlur && _onBlur(e.target.value);
4737
+ },
4738
+ onFocus: function onFocus(e) {
4739
+ return _onFocus && _onFocus(e.target.value);
4740
+ },
4741
+ onKeyDown: function onKeyDown(e) {
4742
+ return _onKeyDown && _onKeyDown(e.key);
4743
+ }
4880
4744
  };
4745
+ var formikState = getFormikState(name, formik);
4881
4746
 
4882
- var handleSelect = function handleSelect(day) {
4883
- var selectedDate = setToMidnight(day);
4884
-
4885
- if (mode === CALENDAR_MODE.DAY) {
4886
- onSelect(selectedDate);
4887
- } else {
4888
- var _weekRange = createWeekRange(selectedDate, weekStart);
4747
+ if (formik && formikState) {
4748
+ var currencyBlur = function currencyBlur() {
4749
+ if (type === 'currency') {
4750
+ formik.setFieldValue(name, Number(value).toFixed(2));
4751
+ }
4752
+ };
4889
4753
 
4890
- onSelect(_weekRange.start);
4891
- }
4754
+ controllers = _extends({}, controllers, {
4755
+ error: error !== undefined ? controllers.error : formikState.error,
4756
+ value: value !== undefined ? controllers.value : formikState.value,
4757
+ onChange: _onChange ? controllers.onChange : function (e) {
4758
+ return formik.setFieldValue(name, e.target.value);
4759
+ },
4760
+ onBlur: _onBlur ? function (e) {
4761
+ _onBlur && _onBlur(e.target.value);
4762
+ formik.setFieldTouched(name);
4763
+ currencyBlur();
4764
+ } : function () {
4765
+ formik.setFieldTouched(name);
4766
+ currencyBlur();
4767
+ }
4768
+ });
4769
+ }
4892
4770
 
4893
- setTimeout(function () {
4894
- onClickOutside();
4895
- }, 100);
4896
- };
4771
+ return controllers;
4772
+ };
4897
4773
 
4898
- if (!anchorNode) {
4899
- return null;
4900
- }
4774
+ var textFieldStyles = {"text-field":"_20YOA","text-field--invalid":"_3kUSh","text-field--prefixed":"_3IU3Q","text-field--suffixed":"_QXJOD"};
4901
4775
 
4902
- var anchorPosition = anchorNode.getBoundingClientRect();
4903
- var calendarPosition = calculateCalendarPosition(position, anchorPosition, calendarRef === null || calendarRef === void 0 ? void 0 : calendarRef.getBoundingClientRect());
4904
- return React__default.createElement(Portal, null, React__default.createElement("div", {
4905
- className: style.overlayWrapper
4906
- }, React__default.createElement("div", {
4907
- className: style.overlay,
4908
- ref: function ref(_ref2) {
4909
- return setCalendarRef(_ref2);
4910
- },
4911
- style: _extends({}, calendarPosition, {
4912
- zIndex: Z_INDEX_LAYERS.MODAL
4913
- }),
4914
- "data-testid": testId
4915
- }, React__default.createElement(DayPicker__default, {
4916
- format: "MM/dd/yyyy",
4917
- classNames: style,
4918
- onDayClick: function onDayClick(day, activeModifiers) {
4919
- var isDateDisabled = Object.keys(activeModifiers).find(function (modifier) {
4920
- return modifier.includes('disabled');
4921
- });
4776
+ var useTextField = function useTextField(_ref) {
4777
+ var _classnames;
4922
4778
 
4923
- if (!Boolean(isDateDisabled)) {
4924
- handleSelect(day);
4925
- }
4926
- },
4927
- selectedDays: mode === CALENDAR_MODE.DAY ? selected : selectedRange,
4928
- disabledDays: disabledDays,
4929
- months: MONTH_NAMES,
4930
- weekdaysLong: DAYS,
4931
- initialMonth: selected,
4932
- weekdaysShort: DAYS.map(function (day) {
4933
- return day.substring(0, 2);
4934
- }),
4935
- showOutsideDays: mode === CALENDAR_MODE.WEEK,
4936
- firstDayOfWeek: weekStart
4937
- }))));
4779
+ var autoComplete = _ref.autoComplete,
4780
+ autoFocus = _ref.autoFocus,
4781
+ defaultValue = _ref.defaultValue,
4782
+ disabled = _ref.disabled,
4783
+ error = _ref.error,
4784
+ id = _ref.id,
4785
+ maxLength = _ref.maxLength,
4786
+ name = _ref.name,
4787
+ caption = _ref.caption,
4788
+ label = _ref.label,
4789
+ onBlur = _ref.onBlur,
4790
+ onChange = _ref.onChange,
4791
+ onFocus = _ref.onFocus,
4792
+ onKeyDown = _ref.onKeyDown,
4793
+ placeholder = _ref.placeholder,
4794
+ value = _ref.value,
4795
+ ref = _ref.ref,
4796
+ testId = _ref.testId;
4797
+ var controllers = useFieldControllers({
4798
+ error: error,
4799
+ id: id,
4800
+ name: name,
4801
+ onChange: onChange,
4802
+ onBlur: onBlur,
4803
+ onFocus: onFocus,
4804
+ onKeyDown: onKeyDown,
4805
+ value: value
4806
+ });
4807
+ var hasError = !!controllers.error;
4808
+ var inputProps = {
4809
+ 'aria-describedby': hasError ? controllers.id + "-error-message" : controllers.id + "-describer",
4810
+ 'aria-invalid': hasError,
4811
+ autoComplete: autoComplete,
4812
+ autoFocus: autoFocus,
4813
+ className: classnames(textFieldStyles['text-field'], (_classnames = {}, _classnames[textFieldStyles['text-field--invalid']] = hasError, _classnames)),
4814
+ 'data-testid': testId,
4815
+ disabled: disabled,
4816
+ defaultValue: defaultValue,
4817
+ id: controllers.id,
4818
+ maxLength: maxLength,
4819
+ name: name,
4820
+ onBlur: controllers.onBlur,
4821
+ onChange: controllers.onChange,
4822
+ onFocus: controllers.onFocus,
4823
+ onKeyDown: controllers.onKeyDown,
4824
+ placeholder: placeholder,
4825
+ ref: ref,
4826
+ size: 1,
4827
+ type: 'text',
4828
+ value: controllers.value
4829
+ };
4830
+ var fieldProps = {
4831
+ caption: caption,
4832
+ error: controllers.error,
4833
+ label: label,
4834
+ id: inputProps.id,
4835
+ name: name
4836
+ };
4837
+ return {
4838
+ inputProps: inputProps,
4839
+ fieldProps: fieldProps
4840
+ };
4938
4841
  };
4939
4842
 
4940
- var styles$j = {"dropdown-list":"_1v1df","dropdown-list__item--hover":"_eAjpa"};
4843
+ var styles$g = {"affix-container":"_ybKOk","affix-container--prefixed":"_2COk3","affix-container--suffixed":"_1xXXN","prefix":"_eX5OL","suffix":"__YH01"};
4941
4844
 
4942
- var findNextActiveIndex = function findNextActiveIndex(items, startAt) {
4943
- var startIndex = 0;
4845
+ var AffixContainer = function AffixContainer(_ref) {
4846
+ var _classnames;
4944
4847
 
4945
- if (startAt !== null && startAt + 1 <= items.length) {
4946
- startIndex = startAt + 1;
4947
- }
4848
+ var prefix = _ref.prefix,
4849
+ suffix = _ref.suffix,
4850
+ children = _ref.children,
4851
+ testId = _ref.testId;
4852
+ var container = React.useRef(null);
4853
+ var prefixElement = React.useRef(null);
4854
+ var suffixElement = React.useRef(null);
4855
+ var isHidden = container.current && container.current.offsetParent === null;
4856
+ React.useLayoutEffect(function () {
4857
+ if (container.current) {
4858
+ var input = container.current.querySelector('input, [class$=control] > div');
4948
4859
 
4949
- var hasEnabledItems = items.slice(startIndex).some(function (item) {
4950
- return !item.disabled;
4951
- });
4860
+ if (input) {
4861
+ if (prefix && prefixElement.current) {
4862
+ var _prefixElement$curren;
4952
4863
 
4953
- if (hasEnabledItems) {
4954
- var _nextEnabledIndex = items.findIndex(function (item, index) {
4955
- if (index < startIndex) {
4956
- return false;
4957
- }
4864
+ var prefixWidth = prefixElement === null || prefixElement === void 0 ? void 0 : (_prefixElement$curren = prefixElement.current) === null || _prefixElement$curren === void 0 ? void 0 : _prefixElement$curren.offsetWidth;
4865
+ input.style.paddingLeft = prefixWidth + 'px';
4866
+ }
4958
4867
 
4959
- return !item.disabled;
4960
- });
4868
+ if (suffix && suffixElement.current) {
4869
+ var suffixWidth = suffixElement.current.offsetWidth;
4870
+ input.style.paddingRight = suffixWidth + 'px';
4871
+ }
4872
+ }
4873
+ }
4874
+ }, [prefix, suffix, isHidden]);
4875
+ var hasPrefix = !!prefix;
4876
+ var hasSuffix = !!suffix;
4961
4877
 
4962
- return _nextEnabledIndex;
4878
+ if (!hasPrefix && !hasSuffix) {
4879
+ return children;
4963
4880
  }
4964
4881
 
4965
- var nextEnabledIndex = items.findIndex(function (item) {
4966
- return !item.disabled;
4967
- });
4968
- return nextEnabledIndex >= 0 ? nextEnabledIndex : null;
4882
+ var classes = classnames(styles$g['affix-container'], (_classnames = {}, _classnames[styles$g['affix-container--prefixed']] = hasPrefix, _classnames[styles$g['affix-container--suffixed']] = hasSuffix, _classnames));
4883
+ return React__default.createElement("div", {
4884
+ className: classes,
4885
+ ref: container,
4886
+ "data-testid": testId
4887
+ }, hasPrefix && React__default.createElement("div", {
4888
+ className: styles$g['prefix'],
4889
+ ref: prefixElement
4890
+ }, prefix), children, hasSuffix && React__default.createElement("div", {
4891
+ className: styles$g['suffix'],
4892
+ ref: suffixElement
4893
+ }, suffix));
4969
4894
  };
4970
- var findPreviousEnabledIndex = function findPreviousEnabledIndex(items, startAt) {
4971
- for (var i = startAt - 1; i >= 0; i--) {
4972
- if (!items[i].disabled) {
4973
- return i;
4974
- }
4975
- }
4976
4895
 
4977
- for (var _i = items.length - 1; _i > startAt - 1; _i--) {
4978
- if (!items[_i].disabled) {
4979
- return _i;
4896
+ var TimeFieldInput = function TimeFieldInput(_ref) {
4897
+ var inputProps = _ref.inputProps,
4898
+ allOtherProps = _ref.allOtherProps,
4899
+ prefix = _ref.prefix,
4900
+ duration = _ref.duration;
4901
+ return React__default.createElement(AffixContainer, {
4902
+ prefix: prefix ? prefix : React__default.createElement(IconClock, {
4903
+ size: "medium",
4904
+ color: GREY400
4905
+ }),
4906
+ suffix: duration
4907
+ }, React__default.createElement("input", Object.assign({}, inputProps, {
4908
+ onBlur: function onBlur(e) {
4909
+ e.target.value = parseTime(e.target.value, 'g:i A');
4910
+ inputProps.onChange(e);
4911
+ inputProps.onBlur(e);
4912
+ },
4913
+ onClick: allOtherProps.onClick,
4914
+ onMouseEnter: allOtherProps.onMouseEnter,
4915
+ onMouseLeave: allOtherProps.onMouseLeave,
4916
+ onInput: function onInput(e) {
4917
+ var target = e.target;
4918
+ allOtherProps.onInputChange(target.value);
4980
4919
  }
4981
- }
4982
-
4983
- return null;
4920
+ })));
4984
4921
  };
4985
4922
 
4986
- var useListKeyboardNavigation = function useListKeyboardNavigation(listItems, actions) {
4987
- var _useState = React.useState(null),
4988
- focusedItem = _useState[0],
4989
- setFocusedItem = _useState[1];
4923
+ var _excluded$2g = ["placeholder", "autoComplete", "selectedTimeOption", "prefix", "startTime", "duration"];
4990
4924
 
4991
- var focusOnNextItem = function focusOnNextItem(callback) {
4992
- var nextFocusItem = findNextActiveIndex(listItems, focusedItem);
4993
- setFocusedItem(nextFocusItem);
4994
- callback(nextFocusItem);
4995
- };
4925
+ var TimeFieldDropdownElement = function TimeFieldDropdownElement(_ref, ref) {
4926
+ var _ref$placeholder = _ref.placeholder,
4927
+ placeholder = _ref$placeholder === void 0 ? '9:00 AM' : _ref$placeholder,
4928
+ _ref$autoComplete = _ref.autoComplete,
4929
+ autoComplete = _ref$autoComplete === void 0 ? 'off' : _ref$autoComplete,
4930
+ selectedTimeOption = _ref.selectedTimeOption,
4931
+ prefix = _ref.prefix,
4932
+ duration = _ref.duration,
4933
+ allOtherProps = _objectWithoutPropertiesLoose(_ref, _excluded$2g);
4996
4934
 
4997
- var focusOnPrevItem = function focusOnPrevItem(callback) {
4998
- var prevFocusItem = findPreviousEnabledIndex(listItems, focusedItem || 0);
4999
- setFocusedItem(prevFocusItem);
5000
- callback(prevFocusItem);
5001
- };
4935
+ var _useTextField = useTextField(_extends({}, allOtherProps, {
4936
+ placeholder: placeholder,
4937
+ autoComplete: autoComplete,
4938
+ ref: ref
4939
+ })),
4940
+ inputProps = _useTextField.inputProps,
4941
+ fieldProps = _useTextField.fieldProps;
5002
4942
 
5003
- var setFocusOnItem = function setFocusOnItem(index) {
5004
- if (index < 0) {
5005
- setFocusedItem(null);
5006
- return;
4943
+ React.useEffect(function () {
4944
+ if (selectedTimeOption) {
4945
+ inputProps.onChange({
4946
+ target: {
4947
+ value: selectedTimeOption
4948
+ }
4949
+ });
5007
4950
  }
4951
+ }, [selectedTimeOption]);
4952
+ return React__default.createElement(Field, Object.assign({}, fieldProps), React__default.createElement(TimeFieldInput, {
4953
+ inputProps: inputProps,
4954
+ allOtherProps: allOtherProps,
4955
+ prefix: prefix,
4956
+ duration: duration
4957
+ }));
4958
+ };
5008
4959
 
5009
- if (listItems[index].disabled) {
5010
- return;
5011
- }
4960
+ var TimeFieldDropdownTrigger = React.forwardRef(TimeFieldDropdownElement);
5012
4961
 
5013
- setFocusedItem(index);
5014
- };
4962
+ var Dropdown = function Dropdown(_ref) {
4963
+ var trigger = _ref.trigger,
4964
+ _ref$triggersOn = _ref.triggersOn,
4965
+ triggersOn = _ref$triggersOn === void 0 ? DROPDOWN_TRIGGER.CLICK : _ref$triggersOn,
4966
+ _ref$alignment = _ref.alignment,
4967
+ alignment = _ref$alignment === void 0 ? DROPDOWN_ALIGNEMNT.RIGHT : _ref$alignment,
4968
+ width = _ref.width,
4969
+ maxHeight = _ref.maxHeight,
4970
+ testId = _ref.testId,
4971
+ children = _ref.children,
4972
+ triggerWidth = _ref.triggerWidth;
5015
4973
 
5016
- var handleKeyPress = React.useCallback(function (event) {
5017
- if (event.key === 'ArrowDown') {
5018
- focusOnNextItem(function (focusItem) {
5019
- var _actions$onNavigate;
4974
+ var _useState = React.useState(false),
4975
+ isOpen = _useState[0],
4976
+ setIsOpen = _useState[1];
5020
4977
 
5021
- return actions === null || actions === void 0 ? void 0 : (_actions$onNavigate = actions.onNavigate) === null || _actions$onNavigate === void 0 ? void 0 : _actions$onNavigate.call(actions, focusItem);
5022
- });
5023
- }
4978
+ var triggerRef = React.useRef(null);
4979
+ var paneRef = React.useRef(null);
4980
+ var isFocusingOverlay = React.useRef(false);
5024
4981
 
5025
- if (event.key === 'ArrowUp') {
5026
- focusOnPrevItem(function (focusItem) {
5027
- var _actions$onNavigate2;
4982
+ var handleToggleDropdown = function handleToggleDropdown() {
4983
+ return setIsOpen(!isOpen);
4984
+ };
5028
4985
 
5029
- return actions === null || actions === void 0 ? void 0 : (_actions$onNavigate2 = actions.onNavigate) === null || _actions$onNavigate2 === void 0 ? void 0 : _actions$onNavigate2.call(actions, focusItem);
5030
- });
4986
+ var handleMouseClick = function handleMouseClick(e) {
4987
+ if (trigger.type === TimeFieldDropdownTrigger) {
4988
+ setIsOpen(true);
4989
+ } else {
4990
+ handleToggleDropdown();
5031
4991
  }
5032
4992
 
5033
- if (event.key === 'Enter' && focusedItem !== null) {
5034
- var _actions$onPressEnter;
4993
+ e.stopPropagation();
5035
4994
 
5036
- var onClick = listItems[focusedItem].onClick;
4995
+ if ('onClick' in trigger.props) {
4996
+ trigger.props.onClick(e);
4997
+ }
4998
+ };
4999
+
5000
+ var handleMouseEnter = function handleMouseEnter(e) {
5001
+ if (triggersOn !== 'hover') {
5002
+ return;
5003
+ }
5004
+
5005
+ setIsOpen(true);
5006
+
5007
+ if ('onMouseEnter' in trigger.props) {
5008
+ trigger.props.onMouseEnter(e);
5009
+ }
5010
+ };
5011
+
5012
+ var handleFocus = function handleFocus(e) {
5013
+ if (triggersOn !== 'hover') {
5014
+ if (trigger.type === TimeFieldDropdownTrigger && !isOpen) {
5015
+ setIsOpen(true);
5016
+ }
5017
+
5018
+ if ('onFocus' in trigger.props) {
5019
+ trigger.props.onFocus(e);
5020
+ }
5021
+
5022
+ return;
5023
+ }
5024
+
5025
+ setIsOpen(true);
5026
+
5027
+ if ('onFocus' in trigger.props) {
5028
+ trigger.props.onFocus(e);
5029
+ }
5030
+ };
5031
+
5032
+ var handleMouseLeave = function handleMouseLeave(e) {
5033
+ if (triggersOn !== 'hover' || !paneRef.current) {
5034
+ return;
5035
+ }
5036
+
5037
+ var panePosition = paneRef.current.getBoundingClientRect();
5038
+
5039
+ if (!isGoingTowardsPane(panePosition, e.clientY)) {
5040
+ setIsOpen(false);
5041
+
5042
+ if ('onMouseLeave' in trigger.props) {
5043
+ trigger.props.onMouseLeave && trigger.props.onMouseLeave(e);
5044
+ }
5045
+ }
5046
+ };
5047
+
5048
+ var handlePaneMouseEnter = function handlePaneMouseEnter() {
5049
+ isFocusingOverlay.current = true;
5050
+ };
5051
+
5052
+ var handlePaneMouseLeave = function handlePaneMouseLeave() {
5053
+ isFocusingOverlay.current = false;
5054
+
5055
+ if (triggersOn === 'hover') {
5056
+ setIsOpen(false);
5057
+ }
5058
+ };
5059
+
5060
+ var handleOnBlur = function handleOnBlur(e) {
5061
+ trigger.props.onBlur && trigger.props.onBlur(e);
5062
+
5063
+ if (!paneRef || !(paneRef !== null && paneRef !== void 0 && paneRef.current)) {
5064
+ return;
5065
+ }
5066
+
5067
+ var focusableElements = getKeyboardFocusableElements(paneRef.current);
5068
+
5069
+ if (focusableElements.length > 0) {
5070
+ window.setTimeout(function () {
5071
+ return focusableElements[0].focus();
5072
+ }, 0);
5073
+ } else {
5074
+ setIsOpen(false);
5075
+ }
5076
+ };
5077
+
5078
+ var getRef = function getRef() {
5079
+ if ((trigger.type === Button$1 || trigger.type === TimeFieldDropdownTrigger) && trigger.ref) {
5080
+ return trigger.ref;
5081
+ }
5082
+
5083
+ return triggerRef;
5084
+ };
5085
+
5086
+ var updatedRef = getRef();
5087
+ var triggerProps = {
5088
+ onClick: handleMouseClick,
5089
+ onMouseEnter: handleMouseEnter,
5090
+ onMouseLeave: handleMouseLeave,
5091
+ onBlur: handleOnBlur,
5092
+ ref: updatedRef,
5093
+ style: {
5094
+ width: triggerWidth === 'full' ? '100%' : 'fit-content'
5095
+ },
5096
+ onFocus: handleFocus
5097
+ };
5098
+ return React__default.createElement(DropdownContext.Provider, {
5099
+ value: {
5100
+ isOpen: isOpen,
5101
+ onToggleDropdown: handleToggleDropdown,
5102
+ triggerRef: updatedRef,
5103
+ paneRef: paneRef
5104
+ }
5105
+ }, trigger.type === Button$1 || trigger.type === TimeFieldDropdownTrigger ? React__default.cloneElement(trigger, _extends({}, trigger.props, triggerProps)) : React__default.createElement("button", Object.assign({}, triggerProps, {
5106
+ className: styles$c['dropdown__trigger'],
5107
+ ref: updatedRef,
5108
+ onFocus: handleFocus
5109
+ }), trigger), React__default.createElement(DropdownPane, {
5110
+ width: width,
5111
+ maxHeight: maxHeight,
5112
+ onMouseEnter: handlePaneMouseEnter,
5113
+ onMouseLeave: handlePaneMouseLeave,
5114
+ alignment: alignment,
5115
+ testId: testId
5116
+ }, children));
5117
+ };
5118
+
5119
+ var styles$h = {"dropdown-list":"_1v1df","dropdown-list__item--hover":"_eAjpa"};
5120
+
5121
+ var findNextActiveIndex = function findNextActiveIndex(items, startAt) {
5122
+ var startIndex = 0;
5123
+
5124
+ if (startAt !== null && startAt + 1 <= items.length) {
5125
+ startIndex = startAt + 1;
5126
+ }
5127
+
5128
+ var hasEnabledItems = items.slice(startIndex).some(function (item) {
5129
+ return !item.disabled;
5130
+ });
5131
+
5132
+ if (hasEnabledItems) {
5133
+ var _nextEnabledIndex = items.findIndex(function (item, index) {
5134
+ if (index < startIndex) {
5135
+ return false;
5136
+ }
5137
+
5138
+ return !item.disabled;
5139
+ });
5140
+
5141
+ return _nextEnabledIndex;
5142
+ }
5143
+
5144
+ var nextEnabledIndex = items.findIndex(function (item) {
5145
+ return !item.disabled;
5146
+ });
5147
+ return nextEnabledIndex >= 0 ? nextEnabledIndex : null;
5148
+ };
5149
+ var findPreviousEnabledIndex = function findPreviousEnabledIndex(items, startAt) {
5150
+ for (var i = startAt - 1; i >= 0; i--) {
5151
+ if (!items[i].disabled) {
5152
+ return i;
5153
+ }
5154
+ }
5155
+
5156
+ for (var _i = items.length - 1; _i > startAt - 1; _i--) {
5157
+ if (!items[_i].disabled) {
5158
+ return _i;
5159
+ }
5160
+ }
5161
+
5162
+ return null;
5163
+ };
5164
+
5165
+ var useListKeyboardNavigation = function useListKeyboardNavigation(listItems, actions) {
5166
+ var _useState = React.useState(null),
5167
+ focusedItem = _useState[0],
5168
+ setFocusedItem = _useState[1];
5169
+
5170
+ var focusOnNextItem = function focusOnNextItem(callback) {
5171
+ var nextFocusItem = findNextActiveIndex(listItems, focusedItem);
5172
+ setFocusedItem(nextFocusItem);
5173
+ callback(nextFocusItem);
5174
+ };
5175
+
5176
+ var focusOnPrevItem = function focusOnPrevItem(callback) {
5177
+ var prevFocusItem = findPreviousEnabledIndex(listItems, focusedItem || 0);
5178
+ setFocusedItem(prevFocusItem);
5179
+ callback(prevFocusItem);
5180
+ };
5181
+
5182
+ var setFocusOnItem = function setFocusOnItem(index) {
5183
+ if (index < 0) {
5184
+ setFocusedItem(null);
5185
+ return;
5186
+ }
5187
+
5188
+ if (listItems[index].disabled) {
5189
+ return;
5190
+ }
5191
+
5192
+ setFocusedItem(index);
5193
+ };
5194
+
5195
+ var handleKeyPress = React.useCallback(function (event) {
5196
+ if (event.key === 'ArrowDown') {
5197
+ focusOnNextItem(function (focusItem) {
5198
+ var _actions$onNavigate;
5199
+
5200
+ return actions === null || actions === void 0 ? void 0 : (_actions$onNavigate = actions.onNavigate) === null || _actions$onNavigate === void 0 ? void 0 : _actions$onNavigate.call(actions, focusItem);
5201
+ });
5202
+ }
5203
+
5204
+ if (event.key === 'ArrowUp') {
5205
+ focusOnPrevItem(function (focusItem) {
5206
+ var _actions$onNavigate2;
5207
+
5208
+ return actions === null || actions === void 0 ? void 0 : (_actions$onNavigate2 = actions.onNavigate) === null || _actions$onNavigate2 === void 0 ? void 0 : _actions$onNavigate2.call(actions, focusItem);
5209
+ });
5210
+ }
5211
+
5212
+ if (event.key === 'Enter' && focusedItem !== null) {
5213
+ var _actions$onPressEnter;
5214
+
5215
+ var onClick = listItems[focusedItem].onClick;
5037
5216
  onClick(event);
5038
5217
  actions && ((_actions$onPressEnter = actions.onPressEnter) === null || _actions$onPressEnter === void 0 ? void 0 : _actions$onPressEnter.call(actions));
5039
5218
  }
@@ -5047,17 +5226,27 @@ var useListKeyboardNavigation = function useListKeyboardNavigation(listItems, ac
5047
5226
  };
5048
5227
  };
5049
5228
 
5050
- var styles$k = {"dropdown-list-divider":"_3x1F6"};
5229
+ var styles$i = {"dropdown-list-divider":"_3x1F6"};
5051
5230
 
5052
5231
  var DropdownListDivider = function DropdownListDivider(_ref) {
5053
5232
  var testId = _ref.testId;
5054
5233
  return React__default.createElement("div", {
5055
- className: styles$k['dropdown-list-divider'],
5234
+ className: styles$i['dropdown-list-divider'],
5056
5235
  "data-testid": testId
5057
5236
  });
5058
5237
  };
5059
5238
 
5060
- var styles$l = {"dropdown-list-item":"_B3_I5","dropdown-list-item--selected":"_1mr1h","dropdown-list-item__content":"_2b7Fg","dropdown-list-item--disabled":"_2l0Cb"};
5239
+ var styles$j = {"dropdown-list-item":"_B3_I5","dropdown-list-item--selected":"_1mr1h","dropdown-list-item__content":"_2b7Fg","dropdown-list-item--disabled":"_2l0Cb"};
5240
+
5241
+ var COLORS = {};
5242
+
5243
+ var getColor = function getColor(color) {
5244
+ if (color && COLORS[color]) {
5245
+ return COLORS[color];
5246
+ } else {
5247
+ return color;
5248
+ }
5249
+ };
5061
5250
 
5062
5251
  var TEXT_TYPES = {
5063
5252
  CAPTION: 'caption',
@@ -5082,9 +5271,9 @@ var ALIGNMENTS = {
5082
5271
  JUSTIFY: 'justify'
5083
5272
  };
5084
5273
 
5085
- var styles$m = {"text":"_3CIA3","text__body":"_1nnj8","text__caption":"_37K6o","text__insight":"_avqxy","text--bold":"_2TG6E","text--italic":"_2hlsn","text--underline":"_1Pjo6","text--monospace":"_eDdDI","text--align-left":"_2gNwS","text--align-right":"_ufv1W","text--align-center":"_2WMN6","text--align-justify":"_2iH-J"};
5274
+ var styles$k = {"text":"_3CIA3","text__body":"_1nnj8","text__caption":"_37K6o","text__insight":"_avqxy","text--bold":"_2TG6E","text--italic":"_2hlsn","text--underline":"_1Pjo6","text--monospace":"_eDdDI","text--align-left":"_2gNwS","text--align-right":"_ufv1W","text--align-center":"_2WMN6","text--align-justify":"_2iH-J"};
5086
5275
 
5087
- var _excluded$2g = ["children", "as", "emphasis", "alignment", "color", "testId"];
5276
+ var _excluded$2h = ["children", "as", "emphasis", "alignment", "color", "testId"];
5088
5277
 
5089
5278
  var Text = function Text(_ref) {
5090
5279
  var _classnames;
@@ -5096,14 +5285,14 @@ var Text = function Text(_ref) {
5096
5285
  alignment = _ref.alignment,
5097
5286
  color = _ref.color,
5098
5287
  testId = _ref.testId,
5099
- positionProps = _objectWithoutPropertiesLoose(_ref, _excluded$2g);
5288
+ positionProps = _objectWithoutPropertiesLoose(_ref, _excluded$2h);
5100
5289
 
5101
5290
  var positionStyles = usePositionStyles(positionProps);
5102
5291
  var elementProps = {
5103
5292
  style: _extends({
5104
- color: color
5293
+ color: getColor(color)
5105
5294
  }, positionStyles),
5106
- className: classnames(styles$m['text'], (_classnames = {}, _classnames[styles$m['text--bold']] = emphasis === null || emphasis === void 0 ? void 0 : emphasis.includes(FONT_EMPHASIS.BOLD), _classnames[styles$m['text--italic']] = emphasis === null || emphasis === void 0 ? void 0 : emphasis.includes(FONT_EMPHASIS.ITALIC), _classnames[styles$m['text--underline']] = emphasis === null || emphasis === void 0 ? void 0 : emphasis.includes(FONT_EMPHASIS.UNDERLINE), _classnames[styles$m['text--monospace']] = emphasis === null || emphasis === void 0 ? void 0 : emphasis.includes(FONT_EMPHASIS.MONOSPACE), _classnames[styles$m['text--align-left']] = alignment === ALIGNMENTS.LEFT, _classnames[styles$m['text--align-right']] = alignment === ALIGNMENTS.RIGHT, _classnames[styles$m['text--align-center']] = alignment === ALIGNMENTS.CENTER, _classnames[styles$m['text--align-justify']] = alignment === ALIGNMENTS.JUSTIFY, _classnames[styles$m['text__body']] = as === TEXT_TYPES.BODY, _classnames[styles$m['text__insight']] = as === TEXT_TYPES.INSIGHT, _classnames[styles$m['text__caption']] = as === TEXT_TYPES.CAPTION, _classnames)),
5295
+ className: classnames(styles$k['text'], (_classnames = {}, _classnames[styles$k['text--bold']] = emphasis === null || emphasis === void 0 ? void 0 : emphasis.includes(FONT_EMPHASIS.BOLD), _classnames[styles$k['text--italic']] = emphasis === null || emphasis === void 0 ? void 0 : emphasis.includes(FONT_EMPHASIS.ITALIC), _classnames[styles$k['text--underline']] = emphasis === null || emphasis === void 0 ? void 0 : emphasis.includes(FONT_EMPHASIS.UNDERLINE), _classnames[styles$k['text--monospace']] = emphasis === null || emphasis === void 0 ? void 0 : emphasis.includes(FONT_EMPHASIS.MONOSPACE), _classnames[styles$k['text--align-left']] = alignment === ALIGNMENTS.LEFT, _classnames[styles$k['text--align-right']] = alignment === ALIGNMENTS.RIGHT, _classnames[styles$k['text--align-center']] = alignment === ALIGNMENTS.CENTER, _classnames[styles$k['text--align-justify']] = alignment === ALIGNMENTS.JUSTIFY, _classnames[styles$k['text__body']] = as === TEXT_TYPES.BODY, _classnames[styles$k['text__insight']] = as === TEXT_TYPES.INSIGHT, _classnames[styles$k['text__caption']] = as === TEXT_TYPES.CAPTION, _classnames)),
5107
5296
  'data-testid': testId
5108
5297
  };
5109
5298
  var pTypes = [TEXT_TYPES.BODY, TEXT_TYPES.CAPTION, TEXT_TYPES.INSIGHT];
@@ -5114,37 +5303,24 @@ var Text = function Text(_ref) {
5114
5303
  var Bold = function Bold(_ref) {
5115
5304
  var children = _ref.children;
5116
5305
  return React__default.createElement("span", {
5117
- className: classnames(styles$m['text--bold'], styles$m['text'])
5306
+ className: classnames(styles$k['text--bold'], styles$k['text'])
5118
5307
  }, children);
5119
5308
  };
5120
5309
 
5121
5310
  var Underline = function Underline(_ref) {
5122
5311
  var children = _ref.children;
5123
5312
  return React__default.createElement("span", {
5124
- className: classnames(styles$m['text--underline'], styles$m['text'])
5313
+ className: classnames(styles$k['text--underline'], styles$k['text'])
5125
5314
  }, children);
5126
5315
  };
5127
5316
 
5128
5317
  var Italic = function Italic(_ref) {
5129
5318
  var children = _ref.children;
5130
5319
  return React__default.createElement("span", {
5131
- className: classnames(styles$m['text--italic'], styles$m['text'])
5320
+ className: classnames(styles$k['text--italic'], styles$k['text'])
5132
5321
  }, children);
5133
5322
  };
5134
5323
 
5135
- var WHITE = '#ffffff';
5136
- var EGGPLANT200 = '#d3dbf4';
5137
- var EGGPLANT300 = '#a7b7ea';
5138
- var EGGPLANT400 = '#6d87dd';
5139
- var EGGPLANT500 = '#6179c6';
5140
- var EGGPLANT600 = '#415184';
5141
- var RADISH400 = '#e76767';
5142
- var GREY100 = '#F3F3F3';
5143
- var GREY200 = '#D5D5D5';
5144
- var GREY300 = '#949494';
5145
- var GREY400 = '#767676';
5146
- var GREY500 = '#464646';
5147
-
5148
5324
  var DropdownListItem = function DropdownListItem(_ref) {
5149
5325
  var _classNames;
5150
5326
 
@@ -5184,7 +5360,7 @@ var DropdownListItem = function DropdownListItem(_ref) {
5184
5360
  };
5185
5361
 
5186
5362
  return React__default.createElement("li", {
5187
- className: classnames(styles$l['dropdown-list-item'], (_classNames = {}, _classNames[styles$l['dropdown-list-item--selected']] = selected, _classNames[styles$l['dropdown-list-item--disabled']] = disabled, _classNames)),
5363
+ className: classnames(styles$j['dropdown-list-item'], (_classNames = {}, _classNames[styles$j['dropdown-list-item--selected']] = selected, _classNames[styles$j['dropdown-list-item--disabled']] = disabled, _classNames)),
5188
5364
  onMouseDown: function onMouseDown(e) {
5189
5365
  return e.preventDefault();
5190
5366
  },
@@ -5193,7 +5369,7 @@ var DropdownListItem = function DropdownListItem(_ref) {
5193
5369
  role: "menuitem",
5194
5370
  "data-testid": testId
5195
5371
  }, prefix, React__default.createElement("div", {
5196
- className: styles$l['dropdown-list-item__content']
5372
+ className: styles$j['dropdown-list-item__content']
5197
5373
  }, React__default.createElement(Stack, {
5198
5374
  space: 4,
5199
5375
  flex: [1]
@@ -5285,7 +5461,7 @@ var DropdownList = function DropdownList(_ref) {
5285
5461
  }
5286
5462
  }, [highlightItemIndex]);
5287
5463
  return React__default.createElement("ul", {
5288
- className: styles$j['dropdown-list'],
5464
+ className: styles$h['dropdown-list'],
5289
5465
  "data-testid": testId,
5290
5466
  ref: listRef
5291
5467
  }, React__default.Children.map(children, function (child, index) {
@@ -5293,7 +5469,7 @@ var DropdownList = function DropdownList(_ref) {
5293
5469
 
5294
5470
  return React__default.createElement("div", {
5295
5471
  key: index,
5296
- className: classnames(styles$j['dropdown-list__item'], (_classNames = {}, _classNames[styles$j['dropdown-list__item--hover']] = focusedItem === index, _classNames)),
5472
+ className: classnames(styles$h['dropdown-list__item'], (_classNames = {}, _classNames[styles$h['dropdown-list__item--hover']] = focusedItem === index, _classNames)),
5297
5473
  onMouseEnter: function onMouseEnter() {
5298
5474
  return setFocusOnItem(index);
5299
5475
  }
@@ -5301,537 +5477,438 @@ var DropdownList = function DropdownList(_ref) {
5301
5477
  }));
5302
5478
  };
5303
5479
 
5304
- var styles$n = {"label":"_h724f","label--truncate":"_1VUoF"};
5305
-
5306
- var isEllipsisActive = function isEllipsisActive(e) {
5307
- return e.offsetWidth < e.scrollWidth;
5480
+ var KebabMenu = function KebabMenu(_ref) {
5481
+ var actions = _ref.actions;
5482
+ return React__default.createElement(Dropdown, {
5483
+ trigger: React__default.createElement(Button$1, {
5484
+ theme: "link-icon"
5485
+ }, React__default.createElement(IconEllipsisV, null)),
5486
+ alignment: "right"
5487
+ }, React__default.createElement(DropdownList, null, actions.map(function (action) {
5488
+ return React__default.createElement(DropdownListItem, {
5489
+ onClick: action.onAction,
5490
+ key: action.action
5491
+ }, action.label);
5492
+ })));
5308
5493
  };
5309
5494
 
5310
- var useLabelTooltip = function useLabelTooltip(labelId, tooltipContent, truncate) {
5311
- var _useState = React.useState(false),
5312
- showTooltip = _useState[0],
5313
- setShowTooltip = _useState[1];
5495
+ var styles$l = {"data-table-cell":"_2Ybjx","data-table-cell--no-padding":"_5KXHH","data-table-cell--vertical-border":"_2-I0j","data-table-cell--invalid":"_D73Vx","data-table-cell__content":"_3A9-M","data-table-cell__content--right-align":"_17Km7","data-table-cell__content--with-error":"_2c6KQ","data-table-cell__error-icon":"_2hIl3","data-table-cell__error-icon--right-align":"_8Uhyd","data-table-cell__error-icon--left-align":"_3X51R"};
5314
5496
 
5315
- var shouldTruncate = typeof tooltipContent === 'string' && truncate;
5316
- var labelElement = document.getElementById(labelId);
5317
- var isHidden = labelElement && labelElement.offsetParent === null;
5318
- var handleApplyTooltip = React.useCallback(function () {
5319
- if (!shouldTruncate) {
5320
- return;
5321
- }
5322
-
5323
- var labelElement = document.getElementById(labelId);
5324
-
5325
- if (!labelElement) {
5326
- return;
5327
- }
5328
-
5329
- var shouldShowTooltip = isEllipsisActive(labelElement);
5330
-
5331
- if (showTooltip !== shouldShowTooltip) {
5332
- setShowTooltip(shouldShowTooltip);
5333
- }
5334
- }, [shouldTruncate, isHidden]);
5335
- React.useEffect(function () {
5336
- var onWindowResize = lodashEs.debounce(handleApplyTooltip, 300);
5337
- window.addEventListener('resize', onWindowResize);
5338
- return function () {
5339
- return window.removeEventListener('resize', onWindowResize);
5340
- };
5341
- }, [handleApplyTooltip]);
5342
- React.useLayoutEffect(handleApplyTooltip, [handleApplyTooltip]);
5343
- return {
5344
- showTooltip: showTooltip,
5345
- shouldTruncate: shouldTruncate
5346
- };
5347
- };
5348
-
5349
- var Label = function Label(_ref) {
5350
- var _classNames;
5351
-
5352
- var htmlFor = _ref.htmlFor,
5353
- children = _ref.children,
5354
- _ref$truncate = _ref.truncate,
5355
- truncate = _ref$truncate === void 0 ? true : _ref$truncate;
5356
- var labelId = "label-" + htmlFor;
5497
+ var styles$m = {"overlay":"_2puqJ","overlay--after-open":"_1167h","overlay--before-close":"_t_t7L","content":"_wQQ_2","content--after-open":"_3jwux","content--before-close":"_2c2QP"};
5357
5498
 
5358
- var _useLabelTooltip = useLabelTooltip(labelId, children, truncate),
5359
- showTooltip = _useLabelTooltip.showTooltip,
5360
- shouldTruncate = _useLabelTooltip.shouldTruncate;
5499
+ var styles$n = {"header":"_36nxW","header__close-button":"_2zYre","sub-header":"_2XwRD"};
5361
5500
 
5362
- var LabelElement = React__default.createElement("label", {
5363
- htmlFor: htmlFor,
5364
- id: labelId,
5365
- className: classnames(styles$n['label'], (_classNames = {}, _classNames[styles$n['label--truncate']] = shouldTruncate, _classNames))
5366
- }, children);
5501
+ var ModalHeader = function ModalHeader(_ref) {
5502
+ var header = _ref.header,
5503
+ subHeader = _ref.subHeader,
5504
+ onClose = _ref.onClose,
5505
+ loading = _ref.loading;
5367
5506
 
5368
- if (showTooltip) {
5369
- return React__default.createElement(Tooltip$1, {
5370
- overlay: children,
5371
- placement: "top"
5372
- }, LabelElement);
5507
+ if (!header && !subHeader) {
5508
+ return onClose ? React__default.createElement("div", {
5509
+ className: styles$n['header__close-button']
5510
+ }, React__default.createElement(Button$1, {
5511
+ theme: "link-icon",
5512
+ onClick: onClose,
5513
+ disabled: loading
5514
+ }, React__default.createElement(IconTimes, null))) : null;
5373
5515
  }
5374
5516
 
5375
- return LabelElement;
5376
- };
5377
-
5378
- var styles$o = {"caption":"_1DWBq"};
5379
-
5380
- var Caption = function Caption(_ref) {
5381
- var fieldId = _ref.fieldId,
5382
- children = _ref.children;
5383
- return React__default.createElement("div", {
5384
- id: fieldId && fieldId + "-describer",
5385
- className: styles$o['caption']
5386
- }, children);
5387
- };
5388
-
5389
- var styles$p = {"error-message":"_nZ2MD"};
5390
-
5391
- var ErrorMessage = function ErrorMessage(_ref) {
5392
- var fieldId = _ref.fieldId,
5393
- children = _ref.children,
5394
- testId = _ref.testId;
5395
- return React__default.createElement("div", {
5396
- id: fieldId && fieldId + "-error-message",
5397
- className: styles$p['error-message'],
5398
- "data-testid": testId
5517
+ return React__default.createElement(Stack, {
5518
+ space: 12,
5519
+ marginBottom: 24
5399
5520
  }, React__default.createElement(Inline, {
5400
- space: 8,
5521
+ flex: [1],
5401
5522
  alignItems: "center"
5402
- }, React__default.createElement(IconTimesOctagon, {
5403
- color: RADISH400,
5404
- size: "medium"
5405
- }), children));
5406
- };
5407
-
5408
- var Field = function Field(_ref) {
5409
- var id = _ref.id,
5410
- label = _ref.label,
5411
- caption = _ref.caption,
5412
- error = _ref.error,
5413
- children = _ref.children;
5414
- var shouldRenderLabel = label || typeof label === 'string';
5415
- return React__default.createElement(Stack, {
5416
- space: 8,
5417
- flexItems: true
5418
- }, shouldRenderLabel && React__default.createElement(Label, {
5419
- htmlFor: id
5420
- }, label), children, caption && React__default.createElement(Caption, {
5421
- fieldId: id
5422
- }, caption), error && React__default.createElement(ErrorMessage, {
5423
- fieldId: id
5424
- }, error));
5523
+ }, React__default.createElement("span", {
5524
+ className: styles$n['header']
5525
+ }, header), onClose && React__default.createElement(Button$1, {
5526
+ theme: "link-icon",
5527
+ onClick: onClose,
5528
+ disabled: loading
5529
+ }, React__default.createElement(IconTimes, null))), subHeader && React__default.createElement("div", {
5530
+ className: styles$n['sub-header']
5531
+ }, subHeader));
5425
5532
  };
5426
5533
 
5427
- var Context$1 = React.createContext({});
5428
- var useFormContext = function useFormContext() {
5429
- var context = React.useContext(Context$1);
5534
+ var ModalContext = React.createContext({
5535
+ isModalMounted: false
5536
+ });
5537
+ var useModalContext = function useModalContext() {
5538
+ var context = React.useContext(ModalContext);
5430
5539
  return context || {};
5431
5540
  };
5432
5541
 
5433
- var useFieldId = function useFieldId(_ref) {
5434
- var name = _ref.name,
5435
- inputId = _ref.id;
5436
- var id = React.useMemo(function () {
5437
- return inputId ? inputId : name + "-" + Math.random();
5438
- }, [inputId, name]);
5439
- return id;
5440
- };
5441
-
5442
- var getFormikState = function getFormikState(name, formik) {
5443
- if (formik === undefined) {
5444
- return null;
5445
- }
5446
-
5447
- var formikPath = getFormikArrayPath(name);
5448
-
5449
- if (formikPath.length === 0) {
5450
- return null;
5451
- }
5452
-
5453
- var formikLatestLevel = formikPath.reduce(function (acc, path) {
5454
- var _acc$touched, _acc$error, _acc$value;
5455
-
5456
- return {
5457
- touched: (_acc$touched = acc.touched) === null || _acc$touched === void 0 ? void 0 : _acc$touched[path],
5458
- error: (_acc$error = acc.error) === null || _acc$error === void 0 ? void 0 : _acc$error[path],
5459
- value: (_acc$value = acc.value) === null || _acc$value === void 0 ? void 0 : _acc$value[path]
5460
- };
5461
- }, {
5462
- touched: formik.touched,
5463
- error: formik.errors,
5464
- value: formik.values
5465
- });
5466
- return {
5467
- error: formikLatestLevel.touched ? formikLatestLevel.error : undefined,
5468
- value: formikLatestLevel.value
5469
- };
5470
- };
5471
- var getFormikArrayPath = function getFormikArrayPath(name) {
5472
- return name.split(/[^a-zA-Z0-9]/).filter(Boolean);
5473
- };
5474
-
5475
- var useFieldControllers = function useFieldControllers(_ref) {
5476
- var name = _ref.name,
5477
- inputId = _ref.id,
5478
- value = _ref.value,
5479
- _onChange = _ref.onChange,
5480
- _onBlur = _ref.onBlur,
5481
- _onFocus = _ref.onFocus,
5482
- _onKeyDown = _ref.onKeyDown,
5483
- error = _ref.error,
5484
- _ref$type = _ref.type,
5485
- type = _ref$type === void 0 ? 'text' : _ref$type;
5486
-
5487
- var _useFormContext = useFormContext(),
5488
- formik = _useFormContext.formik;
5489
-
5490
- var id = useFieldId({
5491
- name: name,
5492
- id: inputId
5493
- });
5494
- var controllers = {
5495
- id: id,
5496
- error: error,
5497
- value: value,
5498
- onChange: function onChange(e) {
5499
- return _onChange && _onChange(e.target.value);
5500
- },
5501
- onBlur: function onBlur(e) {
5502
- return _onBlur && _onBlur(e.target.value);
5503
- },
5504
- onFocus: function onFocus(e) {
5505
- return _onFocus && _onFocus(e.target.value);
5542
+ var Modal = function Modal(_ref) {
5543
+ var children = _ref.children,
5544
+ header = _ref.header,
5545
+ subHeader = _ref.subHeader,
5546
+ onClose = _ref.onClose,
5547
+ loading = _ref.loading,
5548
+ _ref$zIndex = _ref.zIndex,
5549
+ zIndex = _ref$zIndex === void 0 ? Z_INDEX_LAYERS.MODAL : _ref$zIndex,
5550
+ rootElementId = _ref.rootElementId,
5551
+ _ref$width = _ref.width,
5552
+ width = _ref$width === void 0 ? 500 : _ref$width,
5553
+ height = _ref.height,
5554
+ maxWidth = _ref.maxWidth,
5555
+ _ref$shouldReturnFocu = _ref.shouldReturnFocusAfterClose,
5556
+ shouldReturnFocusAfterClose = _ref$shouldReturnFocu === void 0 ? true : _ref$shouldReturnFocu,
5557
+ testId = _ref.testId;
5558
+ var style = {
5559
+ content: {
5560
+ width: width,
5561
+ height: height,
5562
+ maxWidth: maxWidth
5506
5563
  },
5507
- onKeyDown: function onKeyDown(e) {
5508
- return _onKeyDown && _onKeyDown(e.key);
5564
+ overlay: {
5565
+ zIndex: zIndex
5509
5566
  }
5510
5567
  };
5511
- var formikState = getFormikState(name, formik);
5568
+ return React__default.createElement(ReactModal, {
5569
+ isOpen: true,
5570
+ testId: testId,
5571
+ shouldCloseOnEsc: true,
5572
+ shouldCloseOnOverlayClick: false,
5573
+ shouldReturnFocusAfterClose: shouldReturnFocusAfterClose,
5574
+ onRequestClose: onClose && !loading ? onClose : undefined,
5575
+ style: style,
5576
+ closeTimeoutMS: 200,
5577
+ contentLabel: "Modal",
5578
+ appElement: rootElementId && document.getElementById(rootElementId) || undefined,
5579
+ overlayClassName: {
5580
+ base: styles$m['overlay'],
5581
+ afterOpen: styles$m['overlay--after-open'],
5582
+ beforeClose: styles$m['overlay--before-close']
5583
+ },
5584
+ className: {
5585
+ base: styles$m['content'],
5586
+ afterOpen: styles$m['content--after-open'],
5587
+ beforeClose: styles$m['content--before-close']
5588
+ }
5589
+ }, React__default.createElement(ModalHeader, {
5590
+ header: header,
5591
+ subHeader: subHeader,
5592
+ onClose: onClose,
5593
+ loading: loading
5594
+ }), React__default.createElement(ModalContext.Provider, {
5595
+ value: {
5596
+ isModalMounted: true
5597
+ }
5598
+ }, children));
5599
+ };
5512
5600
 
5513
- if (formik && formikState) {
5514
- var currencyBlur = function currencyBlur() {
5515
- if (type === 'currency') {
5516
- formik.setFieldValue(name, Number(value).toFixed(2));
5517
- }
5518
- };
5601
+ Modal.setAppElement = function (rootElement) {
5602
+ ReactModal.setAppElement(rootElement);
5603
+ };
5519
5604
 
5520
- controllers = _extends({}, controllers, {
5521
- error: error !== undefined ? controllers.error : formikState.error,
5522
- value: value !== undefined ? controllers.value : formikState.value,
5523
- onChange: _onChange ? controllers.onChange : function (e) {
5524
- return formik.setFieldValue(name, e.target.value);
5525
- },
5526
- onBlur: _onBlur ? function (e) {
5527
- _onBlur && _onBlur(e.target.value);
5528
- formik.setFieldTouched(name);
5529
- currencyBlur();
5530
- } : function () {
5531
- formik.setFieldTouched(name);
5532
- currencyBlur();
5533
- }
5534
- });
5535
- }
5605
+ var THRESHOLD = 20;
5606
+ var useScrollShadow = function useScrollShadow() {
5607
+ var ref = React.useRef(null);
5536
5608
 
5537
- return controllers;
5538
- };
5609
+ var _useState = React.useState(false),
5610
+ showScrollShadow = _useState[0],
5611
+ setShowScrollShadow = _useState[1];
5539
5612
 
5540
- var textFieldStyles = {"text-field":"_20YOA","text-field--invalid":"_3kUSh","text-field--prefixed":"_3IU3Q","text-field--suffixed":"_QXJOD"};
5613
+ React.useEffect(function () {
5614
+ if (!ref.current) {
5615
+ return;
5616
+ }
5541
5617
 
5542
- var useTextField = function useTextField(_ref) {
5543
- var _classnames;
5618
+ var modalBody = ref.current;
5544
5619
 
5545
- var autoComplete = _ref.autoComplete,
5546
- autoFocus = _ref.autoFocus,
5547
- defaultValue = _ref.defaultValue,
5548
- disabled = _ref.disabled,
5549
- error = _ref.error,
5550
- id = _ref.id,
5551
- maxLength = _ref.maxLength,
5552
- name = _ref.name,
5553
- caption = _ref.caption,
5554
- label = _ref.label,
5555
- onBlur = _ref.onBlur,
5556
- onChange = _ref.onChange,
5557
- onFocus = _ref.onFocus,
5558
- onKeyDown = _ref.onKeyDown,
5559
- placeholder = _ref.placeholder,
5560
- value = _ref.value,
5561
- ref = _ref.ref,
5562
- testId = _ref.testId;
5563
- var controllers = useFieldControllers({
5564
- error: error,
5565
- id: id,
5566
- name: name,
5567
- onChange: onChange,
5568
- onBlur: onBlur,
5569
- onFocus: onFocus,
5570
- onKeyDown: onKeyDown,
5571
- value: value
5572
- });
5573
- var hasError = !!controllers.error;
5574
- var inputProps = {
5575
- 'aria-describedby': hasError ? controllers.id + "-error-message" : controllers.id + "-describer",
5576
- 'aria-invalid': hasError,
5577
- autoComplete: autoComplete,
5578
- autoFocus: autoFocus,
5579
- className: classnames(textFieldStyles['text-field'], (_classnames = {}, _classnames[textFieldStyles['text-field--invalid']] = hasError, _classnames)),
5580
- 'data-testid': testId,
5581
- disabled: disabled,
5582
- defaultValue: defaultValue,
5583
- id: controllers.id,
5584
- maxLength: maxLength,
5585
- name: name,
5586
- onBlur: controllers.onBlur,
5587
- onChange: controllers.onChange,
5588
- onFocus: controllers.onFocus,
5589
- onKeyDown: controllers.onKeyDown,
5590
- placeholder: placeholder,
5591
- ref: ref,
5592
- size: 1,
5593
- type: 'text',
5594
- value: controllers.value
5595
- };
5596
- var fieldProps = {
5597
- caption: caption,
5598
- error: controllers.error,
5599
- label: label,
5600
- id: inputProps.id,
5601
- name: name
5602
- };
5620
+ if (modalBody.offsetHeight > THRESHOLD) {
5621
+ setShowScrollShadow(true);
5622
+ }
5623
+ }, []);
5603
5624
  return {
5604
- inputProps: inputProps,
5605
- fieldProps: fieldProps
5625
+ ref: ref,
5626
+ showScrollShadow: showScrollShadow
5606
5627
  };
5607
5628
  };
5608
5629
 
5609
- var TimeFieldInput = function TimeFieldInput(_ref) {
5610
- var inputProps = _ref.inputProps,
5611
- allOtherProps = _ref.allOtherProps;
5612
- return React__default.createElement("input", Object.assign({}, inputProps, {
5613
- onBlur: function onBlur(e) {
5614
- e.target.value = parseTime(e.target.value, 'g:i A');
5615
- inputProps.onChange(e);
5616
- inputProps.onBlur(e);
5617
- },
5618
- onClick: allOtherProps.onClick,
5619
- onMouseEnter: allOtherProps.onMouseEnter,
5620
- onMouseLeave: allOtherProps.onMouseLeave,
5621
- onInput: function onInput(e) {
5622
- var target = e.target;
5623
- allOtherProps.onInputChange(target.value);
5624
- }
5625
- }));
5626
- };
5627
-
5628
- var _excluded$2h = ["placeholder", "autoComplete", "selectedTimeOption"];
5629
-
5630
- var TimeFieldDropdownElement = function TimeFieldDropdownElement(_ref, ref) {
5631
- var _ref$placeholder = _ref.placeholder,
5632
- placeholder = _ref$placeholder === void 0 ? '9:00 AM' : _ref$placeholder,
5633
- _ref$autoComplete = _ref.autoComplete,
5634
- autoComplete = _ref$autoComplete === void 0 ? 'off' : _ref$autoComplete,
5635
- selectedTimeOption = _ref.selectedTimeOption,
5636
- allOtherProps = _objectWithoutPropertiesLoose(_ref, _excluded$2h);
5630
+ var styles$o = {"modal-body":"_2J-ku","modal-body--with-scroll-shadow":"_2ErCP"};
5637
5631
 
5638
- var _useTextField = useTextField(_extends({}, allOtherProps, {
5639
- placeholder: placeholder,
5640
- autoComplete: autoComplete,
5641
- ref: ref
5642
- })),
5643
- inputProps = _useTextField.inputProps,
5644
- fieldProps = _useTextField.fieldProps;
5632
+ var ModalBody = function ModalBody(_ref) {
5633
+ var _classNames;
5645
5634
 
5646
- React.useEffect(function () {
5647
- if (selectedTimeOption) {
5648
- inputProps.onChange({
5649
- target: {
5650
- value: selectedTimeOption
5651
- }
5652
- });
5653
- }
5654
- }, [selectedTimeOption]);
5655
- return React__default.createElement(Field, Object.assign({}, fieldProps), React__default.createElement(TimeFieldInput, {
5656
- inputProps: inputProps,
5657
- allOtherProps: allOtherProps
5658
- }));
5659
- };
5635
+ var children = _ref.children,
5636
+ testId = _ref.testId;
5660
5637
 
5661
- var TimeFieldDropdownTrigger = React.forwardRef(TimeFieldDropdownElement);
5638
+ var _useScrollShadow = useScrollShadow(),
5639
+ ref = _useScrollShadow.ref,
5640
+ showScrollShadow = _useScrollShadow.showScrollShadow;
5662
5641
 
5663
- var Dropdown = function Dropdown(_ref) {
5664
- var trigger = _ref.trigger,
5665
- _ref$triggersOn = _ref.triggersOn,
5666
- triggersOn = _ref$triggersOn === void 0 ? DROPDOWN_TRIGGER.CLICK : _ref$triggersOn,
5667
- _ref$alignment = _ref.alignment,
5668
- alignment = _ref$alignment === void 0 ? DROPDOWN_ALIGNEMNT.RIGHT : _ref$alignment,
5669
- width = _ref.width,
5670
- maxHeight = _ref.maxHeight,
5671
- testId = _ref.testId,
5672
- children = _ref.children,
5673
- triggerWidth = _ref.triggerWidth;
5642
+ return React__default.createElement("div", {
5643
+ className: classnames(styles$o['modal-body'], (_classNames = {}, _classNames[styles$o['modal-body--with-scroll-shadow']] = showScrollShadow, _classNames)),
5644
+ ref: ref,
5645
+ "data-testid": testId
5646
+ }, children);
5647
+ };
5674
5648
 
5675
- var _useState = React.useState(false),
5676
- isOpen = _useState[0],
5677
- setIsOpen = _useState[1];
5649
+ var styles$p = {"modal-footer":"_LKOr5","tertiary-container":"_Qktd-"};
5678
5650
 
5679
- var triggerRef = React.useRef(null);
5680
- var paneRef = React.useRef(null);
5681
- var isFocusingOverlay = React.useRef(false);
5651
+ var updateButtonProps = function updateButtonProps(button, newProps) {
5652
+ if (!button) {
5653
+ return null;
5654
+ }
5682
5655
 
5683
- var handleToggleDropdown = function handleToggleDropdown() {
5684
- return setIsOpen(!isOpen);
5685
- };
5656
+ if (button.type !== Button$1) {
5657
+ return button;
5658
+ }
5686
5659
 
5687
- var handleMouseClick = function handleMouseClick(e) {
5688
- if (trigger.type === TimeFieldDropdownTrigger) {
5689
- setIsOpen(true);
5690
- } else {
5691
- handleToggleDropdown();
5692
- }
5660
+ return React__default.cloneElement(button, _extends({}, newProps));
5661
+ };
5693
5662
 
5694
- e.stopPropagation();
5663
+ var ModalFooter = function ModalFooter(_ref) {
5664
+ var children = _ref.children,
5665
+ actions = _ref.actions,
5666
+ testId = _ref.testId;
5695
5667
 
5696
- if ('onClick' in trigger.props) {
5697
- trigger.props.onClick(e);
5698
- }
5699
- };
5668
+ if (actions) {
5669
+ var _actions$primary, _actions$secondary, _actions$tertiary, _classnames;
5700
5670
 
5701
- var handleMouseEnter = function handleMouseEnter(e) {
5702
- if (triggersOn !== 'hover') {
5703
- return;
5704
- }
5671
+ var primaryButton = updateButtonProps(actions.primary, {
5672
+ theme: (actions === null || actions === void 0 ? void 0 : (_actions$primary = actions.primary) === null || _actions$primary === void 0 ? void 0 : _actions$primary.props.theme) || 'primary',
5673
+ size: BUTTON_SIZES.MIN_WIDTH_100
5674
+ });
5675
+ var secondaryButton = updateButtonProps(actions.secondary, {
5676
+ theme: (actions === null || actions === void 0 ? void 0 : (_actions$secondary = actions.secondary) === null || _actions$secondary === void 0 ? void 0 : _actions$secondary.props.theme) || 'default',
5677
+ size: BUTTON_SIZES.MIN_WIDTH_100
5678
+ });
5679
+ var tertiaryButton = updateButtonProps(actions.tertiary, {
5680
+ theme: (actions === null || actions === void 0 ? void 0 : (_actions$tertiary = actions.tertiary) === null || _actions$tertiary === void 0 ? void 0 : _actions$tertiary.props.theme) || 'link-primary',
5681
+ size: BUTTON_SIZES.MIN_WIDTH_100
5682
+ });
5683
+ return React__default.createElement(FooterContainer, {
5684
+ testId: testId
5685
+ }, React__default.createElement(Inline, {
5686
+ justifyContent: "space-between"
5687
+ }, React__default.createElement("div", {
5688
+ className: classnames((_classnames = {}, _classnames[styles$p['tertiary-container']] = tertiaryButton && tertiaryButton.props.theme.startsWith('link'), _classnames))
5689
+ }, tertiaryButton || React__default.createElement("div", null)), React__default.createElement(Inline, {
5690
+ space: 12
5691
+ }, secondaryButton, primaryButton)));
5692
+ }
5705
5693
 
5706
- setIsOpen(true);
5694
+ return React__default.createElement(FooterContainer, null, children);
5695
+ };
5707
5696
 
5708
- if ('onMouseEnter' in trigger.props) {
5709
- trigger.props.onMouseEnter(e);
5710
- }
5711
- };
5697
+ var FooterContainer = function FooterContainer(_ref2) {
5698
+ var children = _ref2.children,
5699
+ testId = _ref2.testId;
5700
+ var childrenItens = React__default.Children.toArray(children);
5701
+ var hasCustomAlignment = childrenItens.length === 1 && childrenItens[0].type === Inline;
5702
+ return React__default.createElement("div", {
5703
+ className: styles$p['modal-footer'],
5704
+ "data-testid": testId
5705
+ }, React__default.createElement(Inline, {
5706
+ justifyContent: "end",
5707
+ space: 12,
5708
+ flex: hasCustomAlignment ? [1] : undefined
5709
+ }, children));
5710
+ };
5712
5711
 
5713
- var handleFocus = function handleFocus(e) {
5714
- if (triggersOn !== 'hover') {
5715
- if (trigger.type === TimeFieldDropdownTrigger && !isOpen) {
5716
- setIsOpen(true);
5717
- }
5712
+ var styles$q = {"container":"_v1b-5","wrapper":"_3mrLu","interactionDisabled":"_1J9dh","DayPicker-Day":"_8FcQE","navBar":"_1SPuq","todayButton":"_24FJ6","navButtonInteractionDisabled":"_Oxdm9","navButtonPrev":"_20uqc","navButtonNext":"_3C53z","months":"_M_eHz","month":"_3RPpJ","caption":"_1FXNw","weekdays":"_3KcRU","weekdaysRow":"_1fO_e","weekday":"_c1Y-X","body":"_34mA1","week":"_1PmqZ","day":"_1AWH2","disabled":"_3vJkw","selected":"_1DR0N","outside":"_276GV","footer":"_2M5xr","today":"_3N6fj","overlayWrapper":"_3Zqgu","overlay":"_20Ncd","weekNumber":"_2hb-S"};
5718
5713
 
5719
- if ('onFocus' in trigger.props) {
5720
- trigger.props.onFocus(e);
5721
- }
5714
+ var styles$r = {"container":"_okDvi","wrapper":"_17XdD","interactionDisabled":"_1O7OT","DayPicker-Day":"_3noGA","navBar":"_1Hl3Q","todayButton":"_m0Vs9","navButtonInteractionDisabled":"_1ULWH","navButtonPrev":"_3gjq8","navButtonNext":"_1m-Kd","months":"_Fq6Xh","month":"_3i0Oo","caption":"_36X9Y","weekdays":"_1aWPn","weekdaysRow":"_3HXCK","weekday":"_t-ctd","body":"_XAbiR","week":"_3Nwep","day":"_3nNcG","disabled":"_1M4ZF","selected":"_2PEs8","outside":"_1PIJa","footer":"_2T_z1","today":"_1hVM6","overlayWrapper":"_1L-hI","overlay":"_dDPZb","weekNumber":"_1alhT"};
5722
5715
 
5723
- return;
5724
- }
5716
+ function parseDate(str, format, locale) {
5717
+ var parsed = dateFnsParse(str, format, new Date(), {
5718
+ locale: locale
5719
+ });
5725
5720
 
5726
- setIsOpen(true);
5721
+ if (str.length === format.length && DayPicker.DateUtils.isDate(parsed)) {
5722
+ return parsed;
5723
+ }
5727
5724
 
5728
- if ('onFocus' in trigger.props) {
5729
- trigger.props.onFocus(e);
5730
- }
5725
+ return undefined;
5726
+ }
5727
+ function formatDate(date, format, locale) {
5728
+ return dateFnsFormat(date, format, {
5729
+ locale: locale
5730
+ });
5731
+ }
5732
+ function setToMidnight(date) {
5733
+ return date && startOfDay(date);
5734
+ }
5735
+ function getStartOfWeek(date, weekIndex) {
5736
+ var d = new Date(date);
5737
+ var firstDay = d.getDate() - d.getDay() + weekIndex;
5738
+ var firstDayAdjusted = firstDay > d.getDate() ? firstDay - 7 : firstDay;
5739
+ return new Date(d.setDate(firstDayAdjusted));
5740
+ }
5741
+ function getEndOfWeek(date, weekIndex) {
5742
+ var startOfWeek = getStartOfWeek(date, weekIndex);
5743
+ var endDay = startOfWeek.getDate() + 6;
5744
+ return new Date(startOfWeek.setDate(endDay));
5745
+ }
5746
+ function createWeekRange(date, weekStart) {
5747
+ return {
5748
+ start: getStartOfWeek(date, weekStart),
5749
+ end: getEndOfWeek(date, weekStart)
5731
5750
  };
5751
+ }
5752
+ var DAYS = [getLocalizedString('time.sunday'), getLocalizedString('time.monday'), getLocalizedString('time.tuesday'), getLocalizedString('time.wednesday'), getLocalizedString('time.thursday'), getLocalizedString('time.friday'), getLocalizedString('time.saturday')];
5753
+ var MONTH_NAMES = [getLocalizedString('time.january'), getLocalizedString('time.february'), getLocalizedString('time.march'), getLocalizedString('time.april'), getLocalizedString('time.may'), getLocalizedString('time.june'), getLocalizedString('time.july'), getLocalizedString('time.august'), getLocalizedString('time.september'), getLocalizedString('time.october'), getLocalizedString('time.november'), getLocalizedString('time.december')];
5732
5754
 
5733
- var handleMouseLeave = function handleMouseLeave(e) {
5734
- if (triggersOn !== 'hover' || !paneRef.current) {
5735
- return;
5736
- }
5755
+ var CALENDAR_MODE = {
5756
+ DAY: 'day',
5757
+ WEEK: 'week'
5758
+ };
5759
+ var CALENDAR_PLACEMENT = {
5760
+ BOTTOM: 'bottom',
5761
+ TOP: 'top'
5762
+ };
5737
5763
 
5738
- var panePosition = paneRef.current.getBoundingClientRect();
5764
+ var calculateCalendarPosition = function calculateCalendarPosition(placement, anchorPosition, calendarDimensions) {
5765
+ if (!calendarDimensions) {
5766
+ return {
5767
+ left: 0,
5768
+ top: 0
5769
+ };
5770
+ }
5739
5771
 
5740
- if (!isGoingTowardsPane(panePosition, e.clientY)) {
5741
- setIsOpen(false);
5772
+ var horizontalPosition = getHorizontalPosition(anchorPosition, calendarDimensions);
5773
+ var verticalPosition = getVerticalPosition(anchorPosition, placement, calendarDimensions);
5774
+ return _extends({}, horizontalPosition, verticalPosition);
5775
+ };
5742
5776
 
5743
- if ('onMouseLeave' in trigger.props) {
5744
- trigger.props.onMouseLeave && trigger.props.onMouseLeave(e);
5745
- }
5746
- }
5747
- };
5777
+ var getHorizontalPosition = function getHorizontalPosition(anchorPosition, calendarDimensions) {
5778
+ var innerWidth = window.innerWidth;
5779
+ var calendarRight = anchorPosition.left + calendarDimensions.width;
5748
5780
 
5749
- var handlePaneMouseEnter = function handlePaneMouseEnter() {
5750
- isFocusingOverlay.current = true;
5781
+ if (innerWidth > calendarRight + BUFFER) {
5782
+ return {
5783
+ left: anchorPosition.left
5784
+ };
5785
+ }
5786
+
5787
+ return {
5788
+ left: anchorPosition.right - calendarDimensions.width
5751
5789
  };
5790
+ };
5752
5791
 
5753
- var handlePaneMouseLeave = function handlePaneMouseLeave() {
5754
- isFocusingOverlay.current = false;
5792
+ var getVerticalPosition = function getVerticalPosition(anchorPosition, placement, calendarDimensions) {
5793
+ var calendarTopAboveTrigger = anchorPosition.top - calendarDimensions.height - PADDING;
5794
+ var calendarTopBelowTrigger = anchorPosition.bottom + PADDING;
5755
5795
 
5756
- if (triggersOn === 'hover') {
5757
- setIsOpen(false);
5796
+ if (placement === CALENDAR_PLACEMENT.TOP) {
5797
+ if (calendarTopAboveTrigger < 0) {
5798
+ return {
5799
+ top: anchorPosition.bottom + PADDING
5800
+ };
5758
5801
  }
5759
- };
5760
5802
 
5761
- var handleOnBlur = function handleOnBlur() {
5762
- if (!paneRef || !(paneRef !== null && paneRef !== void 0 && paneRef.current)) {
5763
- return;
5803
+ return {
5804
+ top: calendarTopAboveTrigger + window.scrollY
5805
+ };
5806
+ } else {
5807
+ if (calendarTopBelowTrigger + calendarDimensions.height > window.innerHeight) {
5808
+ return {
5809
+ top: calendarTopAboveTrigger + window.scrollY
5810
+ };
5764
5811
  }
5765
5812
 
5766
- var focusableElements = getKeyboardFocusableElements(paneRef.current);
5813
+ return {
5814
+ top: calendarTopBelowTrigger + window.scrollY
5815
+ };
5816
+ }
5817
+ };
5767
5818
 
5768
- if (focusableElements.length > 0) {
5769
- window.setTimeout(function () {
5770
- return focusableElements[0].focus();
5771
- }, 0);
5772
- } else if (!isFocusingOverlay.current) {
5773
- setIsOpen(false);
5819
+ var Calendar = function Calendar(_ref) {
5820
+ var _ref$mode = _ref.mode,
5821
+ mode = _ref$mode === void 0 ? CALENDAR_MODE.DAY : _ref$mode,
5822
+ _ref$position = _ref.position,
5823
+ position = _ref$position === void 0 ? CALENDAR_PLACEMENT.BOTTOM : _ref$position,
5824
+ _ref$weekStart = _ref.weekStart,
5825
+ weekStart = _ref$weekStart === void 0 ? 0 : _ref$weekStart,
5826
+ selected = _ref.selected,
5827
+ onSelect = _ref.onSelect,
5828
+ onClickOutside = _ref.onClickOutside,
5829
+ disabledDays = _ref.disabledDays,
5830
+ anchorRef = _ref.anchorRef,
5831
+ testId = _ref.testId;
5832
+
5833
+ var _useState = React.useState(null),
5834
+ calendarRef = _useState[0],
5835
+ setCalendarRef = _useState[1];
5836
+
5837
+ var style = mode === CALENDAR_MODE.DAY ? styles$q : styles$r;
5838
+ var anchorNode = anchorRef.current;
5839
+ useOnClickOutside({
5840
+ current: calendarRef
5841
+ }, function (event) {
5842
+ var _anchorRef$current;
5843
+
5844
+ if (!((_anchorRef$current = anchorRef.current) !== null && _anchorRef$current !== void 0 && _anchorRef$current.contains(event === null || event === void 0 ? void 0 : event.srcElement))) {
5845
+ onClickOutside();
5774
5846
  }
5847
+ });
5848
+ var weekRange = selected ? createWeekRange(selected, weekStart) : undefined;
5849
+ var selectedRange = weekRange && {
5850
+ from: weekRange.start,
5851
+ to: weekRange.end
5775
5852
  };
5776
5853
 
5777
- var getRef = function getRef() {
5778
- if ((trigger.type === Button$1 || trigger.type === TimeFieldDropdownTrigger) && trigger.ref) {
5779
- return trigger.ref;
5854
+ var handleSelect = function handleSelect(day) {
5855
+ var selectedDate = setToMidnight(day);
5856
+
5857
+ if (mode === CALENDAR_MODE.DAY) {
5858
+ onSelect(selectedDate);
5859
+ } else {
5860
+ var _weekRange = createWeekRange(selectedDate, weekStart);
5861
+
5862
+ onSelect(_weekRange.start);
5780
5863
  }
5781
5864
 
5782
- return triggerRef;
5865
+ setTimeout(function () {
5866
+ onClickOutside();
5867
+ }, 100);
5783
5868
  };
5784
5869
 
5785
- var updatedRef = getRef();
5786
- var triggerProps = {
5787
- onClick: handleMouseClick,
5788
- onMouseEnter: handleMouseEnter,
5789
- onMouseLeave: handleMouseLeave,
5790
- onBlur: handleOnBlur,
5791
- ref: updatedRef,
5792
- style: {
5793
- width: triggerWidth === 'full' ? '100%' : 'fit-content'
5870
+ if (!anchorNode) {
5871
+ return null;
5872
+ }
5873
+
5874
+ var anchorPosition = anchorNode.getBoundingClientRect();
5875
+ var calendarPosition = calculateCalendarPosition(position, anchorPosition, calendarRef === null || calendarRef === void 0 ? void 0 : calendarRef.getBoundingClientRect());
5876
+ return React__default.createElement(Portal, null, React__default.createElement("div", {
5877
+ className: style.overlayWrapper
5878
+ }, React__default.createElement("div", {
5879
+ className: style.overlay,
5880
+ ref: function ref(_ref2) {
5881
+ return setCalendarRef(_ref2);
5794
5882
  },
5795
- onFocus: handleFocus
5796
- };
5797
- return React__default.createElement(DropdownContext.Provider, {
5798
- value: {
5799
- isOpen: isOpen,
5800
- onToggleDropdown: handleToggleDropdown,
5801
- triggerRef: updatedRef,
5802
- paneRef: paneRef
5803
- }
5804
- }, trigger.type === Button$1 || trigger.type === TimeFieldDropdownTrigger ? React__default.cloneElement(trigger, _extends({}, trigger.props, triggerProps)) : React__default.createElement("button", Object.assign({}, triggerProps, {
5805
- className: styles$c['dropdown__trigger'],
5806
- ref: updatedRef,
5807
- onFocus: handleFocus
5808
- }), trigger), React__default.createElement(DropdownPane, {
5809
- width: width,
5810
- maxHeight: maxHeight,
5811
- onMouseEnter: handlePaneMouseEnter,
5812
- onMouseLeave: handlePaneMouseLeave,
5813
- alignment: alignment,
5814
- testId: testId
5815
- }, children));
5816
- };
5883
+ style: _extends({}, calendarPosition, {
5884
+ zIndex: Z_INDEX_LAYERS.MODAL
5885
+ }),
5886
+ "data-testid": testId
5887
+ }, React__default.createElement(DayPicker__default, {
5888
+ format: "MM/dd/yyyy",
5889
+ classNames: style,
5890
+ onDayClick: function onDayClick(day, activeModifiers) {
5891
+ var isDateDisabled = Object.keys(activeModifiers).find(function (modifier) {
5892
+ return modifier.includes('disabled');
5893
+ });
5817
5894
 
5818
- var KebabMenu = function KebabMenu(_ref) {
5819
- var actions = _ref.actions;
5820
- return React__default.createElement(Dropdown, {
5821
- trigger: React__default.createElement(Button$1, {
5822
- theme: "link-icon"
5823
- }, React__default.createElement(IconEllipsisV, null)),
5824
- alignment: "right"
5825
- }, React__default.createElement(DropdownList, null, actions.map(function (action) {
5826
- return React__default.createElement(DropdownListItem, {
5827
- onClick: action.onAction,
5828
- key: action.action
5829
- }, action.label);
5830
- })));
5895
+ if (!Boolean(isDateDisabled)) {
5896
+ handleSelect(day);
5897
+ }
5898
+ },
5899
+ selectedDays: mode === CALENDAR_MODE.DAY ? selected : selectedRange,
5900
+ disabledDays: disabledDays,
5901
+ months: MONTH_NAMES,
5902
+ weekdaysLong: DAYS,
5903
+ initialMonth: selected,
5904
+ weekdaysShort: DAYS.map(function (day) {
5905
+ return day.substring(0, 2);
5906
+ }),
5907
+ showOutsideDays: mode === CALENDAR_MODE.WEEK,
5908
+ firstDayOfWeek: weekStart
5909
+ }))));
5831
5910
  };
5832
5911
 
5833
- var styles$q = {"data-table-cell":"_2Ybjx","data-table-cell--no-padding":"_5KXHH","data-table-cell--vertical-border":"_2-I0j","data-table-cell--invalid":"_D73Vx","data-table-cell__content":"_3A9-M","data-table-cell__content--right-align":"_17Km7","data-table-cell__content--with-error":"_2c6KQ","data-table-cell__error-icon":"_2hIl3","data-table-cell__error-icon--right-align":"_8Uhyd","data-table-cell__error-icon--left-align":"_3X51R"};
5834
-
5835
5912
  var DataTableCellElement = function DataTableCellElement(_ref, ref) {
5836
5913
  var _columns$columnIndex, _classnames, _classnames2, _classnames3;
5837
5914
 
@@ -5853,17 +5930,17 @@ var DataTableCellElement = function DataTableCellElement(_ref, ref) {
5853
5930
  var hasError = !!error;
5854
5931
  var errorMessage = error;
5855
5932
  var icon = hasError && React__default.createElement("div", {
5856
- className: classnames(styles$q['data-table-cell__error-icon'], (_classnames = {}, _classnames[styles$q['data-table-cell__error-icon--right-align']] = isRightAligned, _classnames[styles$q['data-table-cell__error-icon--left-align']] = !isRightAligned, _classnames))
5933
+ className: classnames(styles$l['data-table-cell__error-icon'], (_classnames = {}, _classnames[styles$l['data-table-cell__error-icon--right-align']] = isRightAligned, _classnames[styles$l['data-table-cell__error-icon--left-align']] = !isRightAligned, _classnames))
5857
5934
  }, React__default.createElement(IconTimesOctagon, {
5858
5935
  size: "medium",
5859
5936
  color: RADISH400
5860
5937
  }));
5861
5938
  var TableCell = React__default.createElement("td", {
5862
- className: classnames((_classnames2 = {}, _classnames2[styles$q['data-table-cell--invalid']] = hasError, _classnames2[styles$q['data-table-cell--no-padding']] = noPadding, _classnames2[styles$q['data-table-cell--vertical-border']] = hasVerticalBorders, _classnames2), styles$q['data-table-cell']),
5939
+ className: classnames((_classnames2 = {}, _classnames2[styles$l['data-table-cell--invalid']] = hasError, _classnames2[styles$l['data-table-cell--no-padding']] = noPadding, _classnames2[styles$l['data-table-cell--vertical-border']] = hasVerticalBorders, _classnames2), styles$l['data-table-cell']),
5863
5940
  colSpan: colSpan,
5864
5941
  ref: ref
5865
5942
  }, React__default.createElement("div", {
5866
- className: classnames(styles$q['data-table-cell__content'], (_classnames3 = {}, _classnames3[styles$q['data-table-cell__content--with-error']] = hasError, _classnames3[styles$q['data-table-cell__content--right-align']] = isRightAligned, _classnames3))
5943
+ className: classnames(styles$l['data-table-cell__content'], (_classnames3 = {}, _classnames3[styles$l['data-table-cell__content--with-error']] = hasError, _classnames3[styles$l['data-table-cell__content--right-align']] = isRightAligned, _classnames3))
5867
5944
  }, isRightAligned && icon, children, !isRightAligned && icon));
5868
5945
  return React__default.createElement(Tooltip$1, {
5869
5946
  overlay: errorMessage,
@@ -5900,59 +5977,6 @@ var DataTableRowActions = function DataTableRowActions(_ref) {
5900
5977
  })));
5901
5978
  };
5902
5979
 
5903
- var styles$r = {"affix-container":"_ybKOk","affix-container--prefixed":"_2COk3","affix-container--suffixed":"_1xXXN","prefix":"_eX5OL","suffix":"__YH01"};
5904
-
5905
- var AffixContainer = function AffixContainer(_ref) {
5906
- var _classnames;
5907
-
5908
- var prefix = _ref.prefix,
5909
- suffix = _ref.suffix,
5910
- children = _ref.children,
5911
- testId = _ref.testId;
5912
- var container = React.useRef(null);
5913
- var prefixElement = React.useRef(null);
5914
- var suffixElement = React.useRef(null);
5915
- var isHidden = container.current && container.current.offsetParent === null;
5916
- React.useLayoutEffect(function () {
5917
- if (container.current) {
5918
- var input = container.current.querySelector('input, [class$=control] > div');
5919
-
5920
- if (input) {
5921
- if (prefix && prefixElement.current) {
5922
- var _prefixElement$curren;
5923
-
5924
- var prefixWidth = prefixElement === null || prefixElement === void 0 ? void 0 : (_prefixElement$curren = prefixElement.current) === null || _prefixElement$curren === void 0 ? void 0 : _prefixElement$curren.offsetWidth;
5925
- input.style.paddingLeft = prefixWidth + 'px';
5926
- }
5927
-
5928
- if (suffix && suffixElement.current) {
5929
- var suffixWidth = suffixElement.current.offsetWidth;
5930
- input.style.paddingRight = suffixWidth + 'px';
5931
- }
5932
- }
5933
- }
5934
- }, [prefix, suffix, isHidden]);
5935
- var hasPrefix = !!prefix;
5936
- var hasSuffix = !!suffix;
5937
-
5938
- if (!hasPrefix && !hasSuffix) {
5939
- return children;
5940
- }
5941
-
5942
- var classes = classnames(styles$r['affix-container'], (_classnames = {}, _classnames[styles$r['affix-container--prefixed']] = hasPrefix, _classnames[styles$r['affix-container--suffixed']] = hasSuffix, _classnames));
5943
- return React__default.createElement("div", {
5944
- className: classes,
5945
- ref: container,
5946
- "data-testid": testId
5947
- }, hasPrefix && React__default.createElement("div", {
5948
- className: styles$r['prefix'],
5949
- ref: prefixElement
5950
- }, prefix), children, hasSuffix && React__default.createElement("div", {
5951
- className: styles$r['suffix'],
5952
- ref: suffixElement
5953
- }, suffix));
5954
- };
5955
-
5956
5980
  var styles$s = {"data-table-editable-cell":"_qYNve","data-table-editable-cell--right-aligned":"_3w6bw","data-table-editable-cell--currency":"_2y-_5","data-table-editable-cell--invalid":"_1Mx8j","data-table-editable-cell--top-left":"_2BlhN","data-table-editable-cell--top-right":"_1qDoN","data-table-editable-cell--bottom-left":"_2NUlb","data-table-editable-cell--bottom-right":"_3Mm-v"};
5957
5981
 
5958
5982
  var DataTableEditableCellElement = function DataTableEditableCellElement(_ref, ref) {
@@ -8508,7 +8532,7 @@ var DateField = function DateField(_ref) {
8508
8532
  error: controllers.error
8509
8533
  };
8510
8534
  var dayPickerProps = {
8511
- classNames: styles$h,
8535
+ classNames: styles$q,
8512
8536
  disabledDays: function disabledDays(day) {
8513
8537
  return _disabledDays && _disabledDays(setToMidnight(day));
8514
8538
  },
@@ -8526,7 +8550,7 @@ var DateField = function DateField(_ref) {
8526
8550
  })
8527
8551
  }, React__default.createElement(DayPickerInput, {
8528
8552
  format: format,
8529
- classNames: styles$h,
8553
+ classNames: styles$q,
8530
8554
  formatDate: formatDate,
8531
8555
  parseDate: parseDate,
8532
8556
  placeholder: placeholder || format.toUpperCase(),
@@ -9006,7 +9030,7 @@ var WeekField = function WeekField(_ref) {
9006
9030
  };
9007
9031
 
9008
9032
  var dayPickerProps = {
9009
- classNames: styles$i,
9033
+ classNames: styles$r,
9010
9034
  disabledDays: function disabledDays(day) {
9011
9035
  return _disabledDays && _disabledDays(setToMidnight(day));
9012
9036
  },
@@ -9036,7 +9060,7 @@ var WeekField = function WeekField(_ref) {
9036
9060
  })
9037
9061
  }, React__default.createElement(DayPickerInput, {
9038
9062
  format: format,
9039
- classNames: styles$i,
9063
+ classNames: styles$r,
9040
9064
  formatDate: formatDate,
9041
9065
  parseDate: parseDate,
9042
9066
  placeholder: placeholder || format.toUpperCase(),
@@ -9075,35 +9099,59 @@ var WeekField = function WeekField(_ref) {
9075
9099
  })));
9076
9100
  };
9077
9101
 
9078
- var getTimeOptions = function getTimeOptions(interval, startTime) {
9102
+ var getTimeOptions = function getTimeOptions(interval, startTime, skipStartTime) {
9079
9103
  if (startTime === void 0) {
9080
9104
  startTime = new Date('Janurary 1 2023 00:00:00');
9081
9105
  }
9082
9106
 
9107
+ if (skipStartTime === void 0) {
9108
+ skipStartTime = false;
9109
+ }
9110
+
9111
+ var intervalCoeffecient = 1000 * 60 * interval;
9083
9112
  var optionsCount = 60 * 24 / interval;
9084
9113
  var timeOptions = [];
9085
- var intervalCoeffecient = 1000 * 60 * interval;
9086
9114
  var rounded = new Date(Math.ceil(startTime.getTime() / intervalCoeffecient) * intervalCoeffecient);
9115
+ var skipFirstInterval = skipStartTime && startTime.getTime() === rounded.getTime();
9087
9116
 
9088
- var formatHours = function formatHours(hours) {
9089
- if (hours === 0) {
9090
- return 12;
9091
- } else if (hours > 12) {
9092
- return hours - 12;
9093
- } else {
9094
- return hours;
9095
- }
9096
- };
9097
-
9098
- for (var i = 0; i < optionsCount; i++) {
9117
+ for (var i = skipFirstInterval ? 1 : 0; i < optionsCount; i++) {
9099
9118
  var newDate = new Date(rounded.getTime());
9100
9119
  newDate.setMinutes(rounded.getMinutes() + interval * i);
9120
+ var hours = formatHours(newDate.getHours());
9101
9121
  var minutes = newDate.getMinutes();
9102
- timeOptions.push(formatHours(newDate.getHours()) + ":" + (minutes === 0 ? '00' : minutes) + " " + (newDate.getHours() < 12 ? 'AM' : 'PM'));
9122
+ var period = newDate.getHours() < 12 ? 'AM' : 'PM';
9123
+ timeOptions.push(hours + ":" + (minutes === 0 ? '00' : minutes) + " " + period);
9103
9124
  }
9104
9125
 
9105
9126
  return timeOptions;
9106
9127
  };
9128
+ var getDuration = function getDuration(timeOption, startTime) {
9129
+ var start = new Date("Janurary 1 2023 " + startTime).getTime();
9130
+ var end = new Date("Janurary 1 2023 " + timeOption).getTime();
9131
+ var diffInMinutes = Math.round((end - start) / 60000);
9132
+
9133
+ if (diffInMinutes < 0) {
9134
+ diffInMinutes = diffInMinutes + 1440;
9135
+ }
9136
+
9137
+ if (diffInMinutes < 60) {
9138
+ return "(" + diffInMinutes + " min" + (diffInMinutes === 1 ? '' : 's') + ")";
9139
+ } else if (diffInMinutes >= 60) {
9140
+ return "(" + +(diffInMinutes / 60).toFixed(2) + " hr" + (diffInMinutes === 60 ? '' : 's') + ")";
9141
+ } else {
9142
+ return undefined;
9143
+ }
9144
+ };
9145
+
9146
+ var formatHours = function formatHours(hours) {
9147
+ if (hours === 0) {
9148
+ return 12;
9149
+ } else if (hours > 12) {
9150
+ return hours - 12;
9151
+ } else {
9152
+ return hours;
9153
+ }
9154
+ };
9107
9155
 
9108
9156
  var TimeFieldDropdown = function TimeFieldDropdown(_ref) {
9109
9157
  var trigger = _ref.trigger,
@@ -9111,7 +9159,9 @@ var TimeFieldDropdown = function TimeFieldDropdown(_ref) {
9111
9159
  startTime = _ref.startTime,
9112
9160
  onOptionClick = _ref.onOptionClick,
9113
9161
  inputValue = _ref.inputValue,
9114
- width = _ref.width;
9162
+ width = _ref.width,
9163
+ _ref$endField = _ref.endField,
9164
+ endField = _ref$endField === void 0 ? false : _ref$endField;
9115
9165
  var startTimeParsed;
9116
9166
 
9117
9167
  if (startTime) {
@@ -9119,7 +9169,7 @@ var TimeFieldDropdown = function TimeFieldDropdown(_ref) {
9119
9169
  }
9120
9170
 
9121
9171
  var timeOptions = React.useMemo(function () {
9122
- return getTimeOptions(interval, startTimeParsed);
9172
+ return getTimeOptions(interval, startTimeParsed, endField && !!startTime);
9123
9173
  }, [interval, startTime]);
9124
9174
 
9125
9175
  var _useState = React.useState(undefined),
@@ -9147,16 +9197,22 @@ var TimeFieldDropdown = function TimeFieldDropdown(_ref) {
9147
9197
  onClick: function onClick() {
9148
9198
  onOptionClick(option);
9149
9199
  }
9150
- }, option);
9200
+ }, React__default.createElement(Inline, {
9201
+ space: 4
9202
+ }, option, endField && startTime && getDuration(option, startTime)));
9151
9203
  })));
9152
9204
  };
9153
9205
 
9154
- var _excluded$2q = ["interval", "startTime"];
9206
+ var _excluded$2q = ["interval", "startTime", "prefix", "endField", "duration"];
9155
9207
 
9156
9208
  var TimeFieldElement = function TimeFieldElement(_ref, forwardedRef) {
9157
9209
  var _ref$interval = _ref.interval,
9158
9210
  interval = _ref$interval === void 0 ? 15 : _ref$interval,
9159
9211
  startTime = _ref.startTime,
9212
+ prefix = _ref.prefix,
9213
+ _ref$endField = _ref.endField,
9214
+ endField = _ref$endField === void 0 ? false : _ref$endField,
9215
+ duration = _ref.duration,
9160
9216
  allOtherProps = _objectWithoutPropertiesLoose(_ref, _excluded$2q);
9161
9217
 
9162
9218
  var internalRef = React.useRef(null);
@@ -9200,17 +9256,148 @@ var TimeFieldElement = function TimeFieldElement(_ref, forwardedRef) {
9200
9256
  onInputChange: function onInputChange(e) {
9201
9257
  return setSelectedDropdownValue(e);
9202
9258
  },
9203
- selectedTimeOption: selectedDropdownValue
9259
+ selectedTimeOption: selectedDropdownValue,
9260
+ prefix: prefix,
9261
+ duration: duration
9204
9262
  })),
9205
9263
  startTime: startTime,
9206
9264
  onOptionClick: onOptionClick,
9207
9265
  inputValue: selectedDropdownValue,
9208
- width: width
9266
+ width: width,
9267
+ endField: endField
9209
9268
  });
9210
9269
  };
9211
9270
 
9271
+ var TimeRangeSelector = React.forwardRef(TimeFieldElement);
9212
9272
  var TimeField = React.forwardRef(TimeFieldElement);
9213
9273
 
9274
+ var styles$U = {"text-field":"_1EJlZ","time-range-field":"_20_Q3","text-field--invalid":"_3vaZG","text-field--prefixed":"_2dh_z","text-field--suffixed":"_2iyg-","time-range-field--invalid":"_22G5J","time-range-field--disabled":"_1bvhh"};
9275
+
9276
+ var TimeRangeEnd = function TimeRangeEnd(_ref) {
9277
+ var startTime = _ref.startTime,
9278
+ onChange = _ref.onChange,
9279
+ interval = _ref.interval,
9280
+ _ref$placeholder = _ref.placeholder,
9281
+ placeholder = _ref$placeholder === void 0 ? '2:00 PM' : _ref$placeholder,
9282
+ duration = _ref.duration,
9283
+ disabled = _ref.disabled,
9284
+ testId = _ref.testId;
9285
+ return React__default.createElement(TimeRangeSelector, {
9286
+ name: "end-time",
9287
+ startTime: startTime,
9288
+ onChange: onChange,
9289
+ placeholder: placeholder,
9290
+ interval: interval,
9291
+ prefix: React__default.createElement(IconArrowRight, {
9292
+ size: "medium",
9293
+ color: GREY400
9294
+ }),
9295
+ duration: duration,
9296
+ endField: true,
9297
+ testId: testId && testId + "-end-time",
9298
+ disabled: disabled
9299
+ });
9300
+ };
9301
+
9302
+ var TimeRangeStart = function TimeRangeStart(_ref) {
9303
+ var startTime = _ref.startTime,
9304
+ onChange = _ref.onChange,
9305
+ interval = _ref.interval,
9306
+ _ref$placeholder = _ref.placeholder,
9307
+ placeholder = _ref$placeholder === void 0 ? '9:00 AM' : _ref$placeholder,
9308
+ id = _ref.id,
9309
+ disabled = _ref.disabled,
9310
+ testId = _ref.testId;
9311
+ return React__default.createElement(TimeRangeSelector, {
9312
+ name: "start-time",
9313
+ startTime: startTime,
9314
+ onChange: onChange,
9315
+ placeholder: placeholder,
9316
+ interval: interval,
9317
+ testId: testId && testId + "-start-time",
9318
+ id: id,
9319
+ disabled: disabled
9320
+ });
9321
+ };
9322
+
9323
+ var TimeRangeField = function TimeRangeField(_ref) {
9324
+ var _classnames;
9325
+
9326
+ var name = _ref.name,
9327
+ inputId = _ref.id,
9328
+ value = _ref.value,
9329
+ _ref$interval = _ref.interval,
9330
+ interval = _ref$interval === void 0 ? 15 : _ref$interval,
9331
+ startTime = _ref.startTime,
9332
+ onChange = _ref.onChange,
9333
+ onBlur = _ref.onBlur,
9334
+ label = _ref.label,
9335
+ caption = _ref.caption,
9336
+ error = _ref.error,
9337
+ placeholder = _ref.placeholder,
9338
+ disabled = _ref.disabled,
9339
+ testId = _ref.testId;
9340
+ var controllers = useRangeFieldControllers({
9341
+ name: name,
9342
+ id: inputId,
9343
+ value: value,
9344
+ onChange: onChange,
9345
+ onBlur: onBlur,
9346
+ error: error
9347
+ });
9348
+ var hasError = controllers.error;
9349
+ var fieldProps = {
9350
+ name: name,
9351
+ id: controllers.id,
9352
+ label: label,
9353
+ caption: caption,
9354
+ error: controllers.error
9355
+ };
9356
+ var _controllers$value = controllers.value,
9357
+ start = _controllers$value.start,
9358
+ end = _controllers$value.end;
9359
+
9360
+ var onStartChange = function onStartChange(inputValue) {
9361
+ controllers.onChange({
9362
+ start: inputValue === '' ? undefined : inputValue,
9363
+ end: end
9364
+ });
9365
+ };
9366
+
9367
+ var onEndChange = function onEndChange(inputValue) {
9368
+ controllers.onChange({
9369
+ start: start,
9370
+ end: inputValue === '' ? undefined : inputValue
9371
+ });
9372
+ };
9373
+
9374
+ var timeRangeDuration = getDuration(end, start);
9375
+ return React__default.createElement(Field, Object.assign({}, fieldProps), React__default.createElement("div", {
9376
+ className: classnames(styles$U['time-range-field'], (_classnames = {}, _classnames[styles$U['time-range-field--invalid']] = hasError, _classnames[styles$U['time-range-field--disabled']] = disabled, _classnames)),
9377
+ "data-testid": testId
9378
+ }, React__default.createElement(TimeRangeStart, {
9379
+ startTime: startTime,
9380
+ interval: interval,
9381
+ onChange: function onChange(value) {
9382
+ return onStartChange(value);
9383
+ },
9384
+ placeholder: placeholder,
9385
+ testId: testId,
9386
+ id: controllers.id,
9387
+ disabled: disabled
9388
+ }), React__default.createElement(TimeRangeEnd, {
9389
+ startTime: start,
9390
+ interval: interval,
9391
+ onChange: function onChange(value) {
9392
+ return onEndChange(value);
9393
+ },
9394
+ placeholder: placeholder,
9395
+ duration: timeRangeDuration,
9396
+ testId: testId,
9397
+ disabled: disabled
9398
+ })));
9399
+ };
9400
+
9214
9401
  var _excluded$2r = ["currencySymbol", "step"];
9215
9402
 
9216
9403
  var CurrencyFieldElement = function CurrencyFieldElement(_ref, ref) {
@@ -9373,7 +9560,7 @@ var BUTTON_THEME = {
9373
9560
  UPSELL: 'upsell'
9374
9561
  };
9375
9562
 
9376
- var styles$U = {"banner":"_vgLin","banner__title":"_63TwY","banner__body":"_3n6S7","banner__body--multilineCTA":"_2pMYs","banner--info":"_ON6Eg","banner__icon":"_1-D-E","banner--success":"_1FFZh","banner--danger":"_2R34O","banner--warning":"_3Cfhe","banner--upsell":"_1SIOw","banner__close":"_3SNQ1","banner--single-line":"_3nLTI"};
9563
+ var styles$V = {"banner":"_vgLin","banner__title":"_63TwY","banner__body":"_3n6S7","banner__body--multilineCTA":"_2pMYs","banner--info":"_ON6Eg","banner__icon":"_1-D-E","banner--success":"_1FFZh","banner--danger":"_2R34O","banner--warning":"_3Cfhe","banner--upsell":"_1SIOw","banner__close":"_3SNQ1","banner--single-line":"_3nLTI"};
9377
9564
 
9378
9565
  var ButtonCTA = function ButtonCTA(_ref) {
9379
9566
  var button = _ref.button,
@@ -9396,7 +9583,7 @@ var ButtonCTA = function ButtonCTA(_ref) {
9396
9583
  }, button.props));
9397
9584
  };
9398
9585
 
9399
- var styles$V = {"banner__caption":"_1jqm8"};
9586
+ var styles$W = {"banner__caption":"_1jqm8"};
9400
9587
 
9401
9588
  var InlineBannerCTA = function InlineBannerCTA(_ref) {
9402
9589
  var primaryButton = _ref.primaryButton,
@@ -9427,7 +9614,7 @@ var InlineBannerCTA = function InlineBannerCTA(_ref) {
9427
9614
  bannerTheme: bannerTheme,
9428
9615
  primaryCTA: true
9429
9616
  })), caption && multiLine && React__default.createElement("div", {
9430
- className: styles$V['banner__caption']
9617
+ className: styles$W['banner__caption']
9431
9618
  }, caption));
9432
9619
  };
9433
9620
 
@@ -9474,14 +9661,14 @@ var InlineBanner = function InlineBanner(_ref) {
9474
9661
  var Layout = multiLine ? Stack : Inline;
9475
9662
  return React__default.createElement("div", {
9476
9663
  "data-testid": testId,
9477
- className: classnames(styles$U['banner'], (_classnames = {}, _classnames[styles$U['banner--info']] = theme === BANNER_THEME.INFO, _classnames[styles$U['banner--warning']] = theme === BANNER_THEME.WARNING, _classnames[styles$U['banner--success']] = theme === BANNER_THEME.SUCCESS, _classnames[styles$U['banner--danger']] = theme === BANNER_THEME.DANGER, _classnames[styles$U['banner--upsell']] = theme === BANNER_THEME.UPSELL, _classnames[styles$U['banner--single-line']] = !multiLine, _classnames)),
9664
+ className: classnames(styles$V['banner'], (_classnames = {}, _classnames[styles$V['banner--info']] = theme === BANNER_THEME.INFO, _classnames[styles$V['banner--warning']] = theme === BANNER_THEME.WARNING, _classnames[styles$V['banner--success']] = theme === BANNER_THEME.SUCCESS, _classnames[styles$V['banner--danger']] = theme === BANNER_THEME.DANGER, _classnames[styles$V['banner--upsell']] = theme === BANNER_THEME.UPSELL, _classnames[styles$V['banner--single-line']] = !multiLine, _classnames)),
9478
9665
  style: positionStyles
9479
9666
  }, React__default.createElement(Inline, {
9480
9667
  alignItems: multiLine ? undefined : 'center',
9481
9668
  flex: ['0 1 auto', 1],
9482
9669
  space: 12
9483
9670
  }, React__default.createElement("div", {
9484
- className: styles$U['banner__icon']
9671
+ className: styles$V['banner__icon']
9485
9672
  }, React__default.createElement(InlineBannerIcon, {
9486
9673
  theme: theme
9487
9674
  })), React__default.createElement(Layout, {
@@ -9491,9 +9678,9 @@ var InlineBanner = function InlineBanner(_ref) {
9491
9678
  flex: ['min-content'],
9492
9679
  flexWrap: multiLine ? undefined : 'wrap'
9493
9680
  }, title && React__default.createElement("div", {
9494
- className: styles$U['banner__title']
9681
+ className: styles$V['banner__title']
9495
9682
  }, title), React__default.createElement("div", {
9496
- className: classnames(styles$U['banner__body'], (_classnames2 = {}, _classnames2[styles$U['banner__body--multilineCTA']] = primaryButton && multiLine, _classnames2))
9683
+ className: classnames(styles$V['banner__body'], (_classnames2 = {}, _classnames2[styles$V['banner__body--multilineCTA']] = primaryButton && multiLine, _classnames2))
9497
9684
  }, children), primaryButton && React__default.createElement(InlineBannerCTA, {
9498
9685
  primaryButton: primaryButton,
9499
9686
  secondaryButton: secondaryButton,
@@ -9501,7 +9688,7 @@ var InlineBanner = function InlineBanner(_ref) {
9501
9688
  multiLine: multiLine,
9502
9689
  bannerTheme: theme
9503
9690
  })), dismissable && React__default.createElement("div", {
9504
- className: styles$U['banner__close']
9691
+ className: styles$V['banner__close']
9505
9692
  }, React__default.createElement(Button$1, {
9506
9693
  theme: "link-icon",
9507
9694
  type: "button",
@@ -9515,7 +9702,7 @@ var PERSISTENT_BANNER_THEME = {
9515
9702
  DANGER: 'danger'
9516
9703
  };
9517
9704
 
9518
- var styles$W = {"persistent-banner":"_1KO1J","persistent-banner--info":"_2mTN3","persistent-banner--danger":"_1YuCF","persistent-banner--upsell":"_tlNFk"};
9705
+ var styles$X = {"persistent-banner":"_1KO1J","persistent-banner--info":"_2mTN3","persistent-banner--danger":"_1YuCF","persistent-banner--upsell":"_tlNFk"};
9519
9706
 
9520
9707
  var PersistentBanner = function PersistentBanner(_ref) {
9521
9708
  var _classNames;
@@ -9544,7 +9731,7 @@ var PersistentBanner = function PersistentBanner(_ref) {
9544
9731
  };
9545
9732
 
9546
9733
  return React__default.createElement("div", {
9547
- className: classnames(styles$W['persistent-banner'], (_classNames = {}, _classNames[styles$W['persistent-banner--info']] = theme === PERSISTENT_BANNER_THEME.INFO, _classNames[styles$W['persistent-banner--danger']] = theme === PERSISTENT_BANNER_THEME.DANGER, _classNames[styles$W['persistent-banner--upsell']] = theme === PERSISTENT_BANNER_THEME.UPSELL, _classNames)),
9734
+ className: classnames(styles$X['persistent-banner'], (_classNames = {}, _classNames[styles$X['persistent-banner--info']] = theme === PERSISTENT_BANNER_THEME.INFO, _classNames[styles$X['persistent-banner--danger']] = theme === PERSISTENT_BANNER_THEME.DANGER, _classNames[styles$X['persistent-banner--upsell']] = theme === PERSISTENT_BANNER_THEME.UPSELL, _classNames)),
9548
9735
  "data-testid": testId
9549
9736
  }, onDismiss ? React__default.createElement(Inline, {
9550
9737
  flex: [1],
@@ -9616,7 +9803,7 @@ var useProgress = function useProgress(progress, maxValue, getMetric) {
9616
9803
  };
9617
9804
  };
9618
9805
 
9619
- var styles$X = {"circular-progress":"_1XR7V","circular-progress__label":"_1BygP","circular-progress__track":"_1Ak-z","circular-progress__indicator":"_22YIp"};
9806
+ var styles$Y = {"circular-progress":"_1XR7V","circular-progress__label":"_1BygP","circular-progress__track":"_1Ak-z","circular-progress__indicator":"_22YIp"};
9620
9807
 
9621
9808
  var CircularProgress = function CircularProgress(_ref) {
9622
9809
  var progress = _ref.progress,
@@ -9631,7 +9818,7 @@ var CircularProgress = function CircularProgress(_ref) {
9631
9818
 
9632
9819
  var determinant = metric.percentage * 2.79;
9633
9820
  return React__default.createElement("div", Object.assign({}, elementProps, {
9634
- className: styles$X['circular-progress'],
9821
+ className: styles$Y['circular-progress'],
9635
9822
  "data-testid": testId
9636
9823
  }), React__default.createElement("svg", {
9637
9824
  viewBox: "0 0 100 100"
@@ -9640,21 +9827,21 @@ var CircularProgress = function CircularProgress(_ref) {
9640
9827
  cy: 50,
9641
9828
  r: 45,
9642
9829
  strokeWidth: "10px",
9643
- className: styles$X['circular-progress__track']
9830
+ className: styles$Y['circular-progress__track']
9644
9831
  }), React__default.createElement("circle", {
9645
9832
  cx: 50,
9646
9833
  cy: 50,
9647
9834
  r: 45,
9648
9835
  strokeWidth: "10px",
9649
- className: styles$X['circular-progress__indicator'],
9836
+ className: styles$Y['circular-progress__indicator'],
9650
9837
  strokeDashoffset: "66",
9651
9838
  strokeDasharray: determinant + " " + (279 - determinant)
9652
9839
  })), React__default.createElement("div", {
9653
- className: styles$X['circular-progress__label']
9840
+ className: styles$Y['circular-progress__label']
9654
9841
  }, children || metric.progress + "/" + metric.maxValue));
9655
9842
  };
9656
9843
 
9657
- var styles$Y = {"progress-bar":"_3nyZN","progress-bar__indicator":"_11TEp","progress-bar__steps":"_3XFTU"};
9844
+ var styles$Z = {"progress-bar":"_3nyZN","progress-bar__indicator":"_11TEp","progress-bar__steps":"_3XFTU"};
9658
9845
 
9659
9846
  var ProgressBar = function ProgressBar(_ref) {
9660
9847
  var progress = _ref.progress,
@@ -9669,15 +9856,15 @@ var ProgressBar = function ProgressBar(_ref) {
9669
9856
  metric = _useProgress.metric;
9670
9857
 
9671
9858
  return React__default.createElement(Stack, null, React__default.createElement("div", Object.assign({}, elementProps, {
9672
- className: styles$Y['progress-bar'],
9859
+ className: styles$Z['progress-bar'],
9673
9860
  "data-testid": testId
9674
9861
  }), React__default.createElement("div", {
9675
- className: styles$Y['progress-bar__indicator'],
9862
+ className: styles$Z['progress-bar__indicator'],
9676
9863
  style: {
9677
9864
  width: metric.percentage + "%"
9678
9865
  }
9679
9866
  })), steps && steps.length > 0 && React__default.createElement("div", {
9680
- className: styles$Y['progress-bar__steps']
9867
+ className: styles$Z['progress-bar__steps']
9681
9868
  }, steps.map(function (step) {
9682
9869
  return React__default.createElement("div", {
9683
9870
  key: step
@@ -9685,7 +9872,7 @@ var ProgressBar = function ProgressBar(_ref) {
9685
9872
  })));
9686
9873
  };
9687
9874
 
9688
- var styles$Z = {"badge":"_2f81N","badge--warning":"_2g1GI","badge--danger":"_2zLnM","badge--success":"_27QOo","badge--info":"_2gmsM"};
9875
+ var styles$_ = {"badge":"_2f81N","badge--warning":"_2g1GI","badge--danger":"_2zLnM","badge--success":"_27QOo","badge--info":"_2gmsM"};
9689
9876
 
9690
9877
  var _excluded$2u = ["children", "theme", "title", "testId"];
9691
9878
 
@@ -9709,7 +9896,7 @@ var Badge = function Badge(_ref, forwardedRef) {
9709
9896
  overlay: title,
9710
9897
  ref: ref
9711
9898
  }, React__default.createElement("div", Object.assign({
9712
- className: classnames(styles$Z['badge'], (_classnames = {}, _classnames[styles$Z['badge--success']] = theme === 'success', _classnames[styles$Z['badge--danger']] = theme === 'danger', _classnames[styles$Z['badge--info']] = theme === 'info', _classnames[styles$Z['badge--warning']] = theme === 'warning', _classnames)),
9899
+ className: classnames(styles$_['badge'], (_classnames = {}, _classnames[styles$_['badge--success']] = theme === 'success', _classnames[styles$_['badge--danger']] = theme === 'danger', _classnames[styles$_['badge--info']] = theme === 'info', _classnames[styles$_['badge--warning']] = theme === 'warning', _classnames)),
9713
9900
  ref: ref,
9714
9901
  "data-testid": testId
9715
9902
  }, otherProps), children));
@@ -9717,9 +9904,9 @@ var Badge = function Badge(_ref, forwardedRef) {
9717
9904
 
9718
9905
  var Badge$1 = React.forwardRef(Badge);
9719
9906
 
9720
- var styles$_ = {"avatar":"_2wJGB","avatar--small":"_3QTSo","avatar__badge":"_2Rl8S","avatar--medium":"_1zwj0","avatar--large":"_3-U6x","avatar--extra-large":"_3qn2q"};
9907
+ var styles$$ = {"avatar":"_2wJGB","avatar--small":"_3QTSo","avatar__badge":"_2Rl8S","avatar--medium":"_1zwj0","avatar--large":"_3-U6x","avatar--extra-large":"_3qn2q"};
9721
9908
 
9722
- var styles$$ = {"avatar-image":"_GKL9P"};
9909
+ var styles$10 = {"avatar-image":"_GKL9P"};
9723
9910
 
9724
9911
  var AvatarImage = function AvatarImage(_ref) {
9725
9912
  var url = _ref.url,
@@ -9744,7 +9931,7 @@ var AvatarImage = function AvatarImage(_ref) {
9744
9931
  }
9745
9932
 
9746
9933
  return React__default.createElement("div", {
9747
- className: styles$$['avatar-image']
9934
+ className: styles$10['avatar-image']
9748
9935
  }, React__default.createElement(IconUserSolid, {
9749
9936
  size: "flexible",
9750
9937
  color: color
@@ -9813,7 +10000,7 @@ var Avatar = function Avatar(_ref) {
9813
10000
 
9814
10001
  var backgroundColor = url ? GREY200 : color;
9815
10002
  return React__default.createElement("div", {
9816
- className: classnames(styles$_['avatar'], (_classnames = {}, _classnames[styles$_['avatar--small']] = size === 'small', _classnames[styles$_['avatar--medium']] = size === 'medium', _classnames[styles$_['avatar--large']] = size === 'large', _classnames[styles$_['avatar--extra-large']] = size === 'extra-large', _classnames)),
10003
+ className: classnames(styles$$['avatar'], (_classnames = {}, _classnames[styles$$['avatar--small']] = size === 'small', _classnames[styles$$['avatar--medium']] = size === 'medium', _classnames[styles$$['avatar--large']] = size === 'large', _classnames[styles$$['avatar--extra-large']] = size === 'extra-large', _classnames)),
9817
10004
  style: {
9818
10005
  backgroundColor: children || url && !showIconInsteadOfImage ? backgroundColor : defaultProfilePictureColors.backgroundColor
9819
10006
  },
@@ -9826,7 +10013,7 @@ var Avatar = function Avatar(_ref) {
9826
10013
  return setShowIconInsteadOfImage(true);
9827
10014
  }
9828
10015
  }), badge && size !== 'small' && React__default.createElement("div", {
9829
- className: styles$_['avatar__badge']
10016
+ className: styles$$['avatar__badge']
9830
10017
  }, badge));
9831
10018
  };
9832
10019
 
@@ -9839,7 +10026,7 @@ var CHIP_THEME = {
9839
10026
  DANGER: 'danger'
9840
10027
  };
9841
10028
 
9842
- var styles$10 = {"chip":"_1fIeV","chip--marketing":"_V4byU","chip--success":"_37gN9","chip--upsell":"_Tw7tp","chip--warning":"_t94VZ","chip--info":"_3SmeO","chip--danger":"_2eoX0"};
10029
+ var styles$11 = {"chip":"_1fIeV","chip--marketing":"_V4byU","chip--success":"_37gN9","chip--upsell":"_Tw7tp","chip--warning":"_t94VZ","chip--info":"_3SmeO","chip--danger":"_2eoX0"};
9843
10030
 
9844
10031
  var Chip = function Chip(_ref) {
9845
10032
  var _classnames;
@@ -9850,11 +10037,11 @@ var Chip = function Chip(_ref) {
9850
10037
  testId = _ref.testId;
9851
10038
  return React__default.createElement("div", {
9852
10039
  "data-testid": testId,
9853
- className: classnames(styles$10['chip'], (_classnames = {}, _classnames[styles$10['chip--marketing']] = theme === CHIP_THEME.MARKETING, _classnames[styles$10['chip--success']] = theme === CHIP_THEME.SUCCESS, _classnames[styles$10['chip--upsell']] = theme === CHIP_THEME.UPSELL, _classnames[styles$10['chip--warning']] = theme === CHIP_THEME.WARNING, _classnames[styles$10['chip--info']] = theme === CHIP_THEME.INFO, _classnames[styles$10['chip--danger']] = theme === CHIP_THEME.DANGER, _classnames))
10040
+ className: classnames(styles$11['chip'], (_classnames = {}, _classnames[styles$11['chip--marketing']] = theme === CHIP_THEME.MARKETING, _classnames[styles$11['chip--success']] = theme === CHIP_THEME.SUCCESS, _classnames[styles$11['chip--upsell']] = theme === CHIP_THEME.UPSELL, _classnames[styles$11['chip--warning']] = theme === CHIP_THEME.WARNING, _classnames[styles$11['chip--info']] = theme === CHIP_THEME.INFO, _classnames[styles$11['chip--danger']] = theme === CHIP_THEME.DANGER, _classnames))
9854
10041
  }, children);
9855
10042
  };
9856
10043
 
9857
- var styles$11 = {"pill":"_23q4Y","pill--default":"_niDEM","pill--success":"_IwDRB","pill--danger":"_MPji-","pill--warning":"_3S2m8","pill--info":"_2G3ML"};
10044
+ var styles$12 = {"pill":"_23q4Y","pill--default":"_niDEM","pill--success":"_IwDRB","pill--danger":"_MPji-","pill--warning":"_3S2m8","pill--info":"_2G3ML"};
9858
10045
 
9859
10046
  var PILL_THEME = {
9860
10047
  INFO: 'info',
@@ -9873,7 +10060,7 @@ var Pill = function Pill(_ref) {
9873
10060
  testId = _ref.testId;
9874
10061
  return React__default.createElement("div", {
9875
10062
  "data-testid": testId,
9876
- className: classnames(styles$11['pill'], (_classnames = {}, _classnames[styles$11['pill--default']] = theme === PILL_THEME.DEFAULT, _classnames[styles$11['pill--warning']] = theme === PILL_THEME.WARNING, _classnames[styles$11['pill--success']] = theme === PILL_THEME.SUCCESS, _classnames[styles$11['pill--danger']] = theme === PILL_THEME.DANGER, _classnames[styles$11['pill--info']] = theme === PILL_THEME.INFO, _classnames))
10063
+ className: classnames(styles$12['pill'], (_classnames = {}, _classnames[styles$12['pill--default']] = theme === PILL_THEME.DEFAULT, _classnames[styles$12['pill--warning']] = theme === PILL_THEME.WARNING, _classnames[styles$12['pill--success']] = theme === PILL_THEME.SUCCESS, _classnames[styles$12['pill--danger']] = theme === PILL_THEME.DANGER, _classnames[styles$12['pill--info']] = theme === PILL_THEME.INFO, _classnames))
9877
10064
  }, children);
9878
10065
  };
9879
10066
 
@@ -9883,9 +10070,9 @@ var EMPTY_STATE_SIZE = {
9883
10070
  LARGE: 'large'
9884
10071
  };
9885
10072
 
9886
- var styles$12 = {"empty-state-container-stack":"_2B8Vd","empty-state-container-stack__content":"_NBTDp","empty-state-container-stack__content--full-page":"_1UWbP","empty-state-container-stack__content--inline-horizontal":"_2BVOy","empty-state-container-stack__body":"_1LuiZ"};
10073
+ var styles$13 = {"empty-state-container-stack":"_2B8Vd","empty-state-container-stack__content":"_NBTDp","empty-state-container-stack__content--full-page":"_1UWbP","empty-state-container-stack__content--inline-horizontal":"_2BVOy","empty-state-container-stack__body":"_1LuiZ"};
9887
10074
 
9888
- var styles$13 = {"empty-state-container-cta":"_1Cx9N","empty-state-container-cta--inside-modal":"_WbcaM"};
10075
+ var styles$14 = {"empty-state-container-cta":"_1Cx9N","empty-state-container-cta--inside-modal":"_WbcaM"};
9889
10076
 
9890
10077
  var EmptyStateContainerCTA = function EmptyStateContainerCTA(_ref) {
9891
10078
  var _actions$primary, _actions$secondary, _classNames;
@@ -9903,7 +10090,7 @@ var EmptyStateContainerCTA = function EmptyStateContainerCTA(_ref) {
9903
10090
  size: BUTTON_SIZES.MIN_WIDTH_100
9904
10091
  });
9905
10092
  return React__default.createElement("div", {
9906
- className: classnames(styles$13['empty-state-container-cta'], (_classNames = {}, _classNames[styles$13['empty-state-container-cta--inside-modal']] = isInsideModal, _classNames))
10093
+ className: classnames(styles$14['empty-state-container-cta'], (_classNames = {}, _classNames[styles$14['empty-state-container-cta--inside-modal']] = isInsideModal, _classNames))
9907
10094
  }, primaryButton, secondaryButton);
9908
10095
  };
9909
10096
 
@@ -9918,7 +10105,7 @@ var EmptyStateContainerStack = function EmptyStateContainerStack(_ref) {
9918
10105
  isPaywall = _ref$isPaywall === void 0 ? false : _ref$isPaywall,
9919
10106
  testId = _ref.testId;
9920
10107
  return React__default.createElement("div", {
9921
- className: styles$12['empty-state-container-stack'],
10108
+ className: styles$13['empty-state-container-stack'],
9922
10109
  "data-testid": testId
9923
10110
  }, React__default.createElement("img", {
9924
10111
  src: mediaUrl,
@@ -9934,7 +10121,7 @@ var EmptyStateContainerStack = function EmptyStateContainerStack(_ref) {
9934
10121
  emphasis: "bold",
9935
10122
  as: "body"
9936
10123
  }, title), React__default.createElement("div", {
9937
- className: styles$12['empty-state-container-stack__body']
10124
+ className: styles$13['empty-state-container-stack__body']
9938
10125
  }, children)), React__default.createElement(Stack, {
9939
10126
  space: 8,
9940
10127
  alignItems: "center"
@@ -9946,7 +10133,7 @@ var EmptyStateContainerStack = function EmptyStateContainerStack(_ref) {
9946
10133
  }, caption)));
9947
10134
  };
9948
10135
 
9949
- var styles$14 = {"empty-state-container-inline":"_eMr1V","empty-state-container-inline--inside-modal":"_2sweG","empty-state-container-inline__content":"_2jreb","empty-state-container-inline__content--full-page":"_3RLfH","empty-state-container-inline__content--inline-horizontal":"_3BMpx","empty-state-container-inline__body":"_2J5vn","empty-state-container-inline__image":"_G2VtA"};
10136
+ var styles$15 = {"empty-state-container-inline":"_eMr1V","empty-state-container-inline--inside-modal":"_2sweG","empty-state-container-inline__content":"_2jreb","empty-state-container-inline__content--full-page":"_3RLfH","empty-state-container-inline__content--inline-horizontal":"_3BMpx","empty-state-container-inline__body":"_2J5vn","empty-state-container-inline__image":"_G2VtA"};
9950
10137
 
9951
10138
  var EmptyStateContainerInline = function EmptyStateContainerInline(_ref) {
9952
10139
  var _classNames, _classnames;
@@ -9967,10 +10154,10 @@ var EmptyStateContainerInline = function EmptyStateContainerInline(_ref) {
9967
10154
  isInsideModal = _useModalContext.isModalMounted;
9968
10155
 
9969
10156
  return React__default.createElement("div", {
9970
- className: classnames(styles$14['empty-state-container-inline'], (_classNames = {}, _classNames[styles$14['empty-state-container-inline--inside-modal']] = isInsideModal, _classNames)),
10157
+ className: classnames(styles$15['empty-state-container-inline'], (_classNames = {}, _classNames[styles$15['empty-state-container-inline--inside-modal']] = isInsideModal, _classNames)),
9971
10158
  "data-testid": testId
9972
10159
  }, React__default.createElement("div", {
9973
- className: classnames(styles$14['empty-state-container-inline__content'], (_classnames = {}, _classnames[styles$14['empty-state-container__content--full-page']] = size === EMPTY_STATE_SIZE.LARGE, _classnames[styles$14['empty-state-container__content--inline-horizontal']] = size === EMPTY_STATE_SIZE.MEDIUM, _classnames))
10160
+ className: classnames(styles$15['empty-state-container-inline__content'], (_classnames = {}, _classnames[styles$15['empty-state-container__content--full-page']] = size === EMPTY_STATE_SIZE.LARGE, _classnames[styles$15['empty-state-container__content--inline-horizontal']] = size === EMPTY_STATE_SIZE.MEDIUM, _classnames))
9974
10161
  }, React__default.createElement(Stack, {
9975
10162
  space: 8
9976
10163
  }, header && React__default.createElement(Text, {
@@ -9979,7 +10166,7 @@ var EmptyStateContainerInline = function EmptyStateContainerInline(_ref) {
9979
10166
  }, header), React__default.createElement(Text, {
9980
10167
  as: "h1"
9981
10168
  }, title)), React__default.createElement("div", {
9982
- className: styles$14['empty-state-container-inline__body']
10169
+ className: styles$15['empty-state-container-inline__body']
9983
10170
  }, children), React__default.createElement(Stack, {
9984
10171
  space: 8,
9985
10172
  marginTop: 12
@@ -9990,7 +10177,7 @@ var EmptyStateContainerInline = function EmptyStateContainerInline(_ref) {
9990
10177
  }), caption && React__default.createElement(Text, {
9991
10178
  as: "caption"
9992
10179
  }, caption))), React__default.createElement("div", {
9993
- className: styles$14['empty-state-container-inline__image']
10180
+ className: styles$15['empty-state-container-inline__image']
9994
10181
  }, React__default.createElement("img", {
9995
10182
  src: mediaUrl,
9996
10183
  alt: String(title),
@@ -10269,6 +10456,7 @@ exports.Text = Text;
10269
10456
  exports.TextAreaField = TextAreaField;
10270
10457
  exports.TextField = TextField;
10271
10458
  exports.TimeField = TimeField;
10459
+ exports.TimeRangeField = TimeRangeField;
10272
10460
  exports.Toggle = Toggle;
10273
10461
  exports.ToolbarSelect = ToolbarSelect;
10274
10462
  exports.Tooltip = Tooltip$1;