@7shifts/sous-chef 2.9.0 → 2.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.
Files changed (34) hide show
  1. package/dist/feedback/InlineBanner/ButtonCTA/ButtonCTA.d.ts +10 -0
  2. package/dist/feedback/InlineBanner/ButtonCTA/index.d.ts +1 -0
  3. package/dist/feedback/InlineBanner/InlineBanner.d.ts +13 -0
  4. package/dist/feedback/InlineBanner/InlineBannerCTA/InlineBannerCTA.d.ts +11 -0
  5. package/dist/feedback/InlineBanner/InlineBannerCTA/index.d.ts +1 -0
  6. package/dist/feedback/InlineBanner/InlineBannerIcon/InlineBannerIcon.d.ts +6 -0
  7. package/dist/feedback/InlineBanner/InlineBannerIcon/index.d.ts +1 -0
  8. package/dist/feedback/InlineBanner/constants.d.ts +11 -0
  9. package/dist/feedback/InlineBanner/index.d.ts +1 -0
  10. package/dist/feedback/InlineBanner/types.d.ts +1 -0
  11. package/dist/feedback/index.d.ts +2 -0
  12. package/dist/forms/AsyncSelectField/AsyncSelectField.d.ts +12 -0
  13. package/dist/forms/AsyncSelectField/CustomList/CustomList.d.ts +8 -0
  14. package/dist/forms/AsyncSelectField/CustomList/index.d.ts +1 -0
  15. package/dist/forms/AsyncSelectField/index.d.ts +1 -0
  16. package/dist/forms/AsyncSelectField/types.d.ts +5 -0
  17. package/dist/forms/DateField/DateField.d.ts +1 -0
  18. package/dist/forms/SelectField/CustomControl/CustomControl.d.ts +5 -5
  19. package/dist/forms/SelectField/CustomOption/CustomOption.d.ts +5 -5
  20. package/dist/forms/SelectField/SelectField.d.ts +2 -2
  21. package/dist/forms/SelectField/useSelectField.d.ts +12 -0
  22. package/dist/forms/index.d.ts +3 -1
  23. package/dist/index.css +136 -0
  24. package/dist/index.js +464 -59
  25. package/dist/index.js.map +1 -1
  26. package/dist/index.modern.js +460 -59
  27. package/dist/index.modern.js.map +1 -1
  28. package/dist/overlay/Calendar/Calendar.d.ts +23 -0
  29. package/dist/overlay/Calendar/constants.d.ts +8 -0
  30. package/dist/overlay/Calendar/domain.d.ts +7 -0
  31. package/dist/overlay/Calendar/index.d.ts +1 -0
  32. package/dist/overlay/Calendar/types.d.ts +2 -0
  33. package/dist/overlay/index.d.ts +2 -1
  34. package/package.json +7 -3
package/dist/index.js CHANGED
@@ -6,15 +6,19 @@ var classnames = _interopDefault(require('classnames'));
6
6
  var ReactDOM = _interopDefault(require('react-dom'));
7
7
  var Select = require('react-select');
8
8
  var Select__default = _interopDefault(Select);
9
+ var AsyncSelect = _interopDefault(require('react-select/async'));
10
+ var lodashEs = require('lodash-es');
9
11
  var DayPickerInput = _interopDefault(require('react-day-picker/DayPickerInput'));
10
12
  var dateFns = require('date-fns');
11
- var reactDayPicker = require('react-day-picker');
13
+ var DayPicker = require('react-day-picker');
14
+ var DayPicker__default = _interopDefault(DayPicker);
12
15
  var dateFnsFormat = _interopDefault(require('date-fns/format'));
13
16
  var dateFnsParse = _interopDefault(require('date-fns/parse'));
14
17
  var startOfDay = _interopDefault(require('date-fns/startOfDay'));
15
18
  var eachDayOfInterval = _interopDefault(require('date-fns/eachDayOfInterval'));
16
19
  var parseTime = _interopDefault(require('time-autocomplete/src/core/AMPMParser'));
17
20
  var ReactModal = _interopDefault(require('react-modal'));
21
+ require('react-day-picker/lib/style.css');
18
22
 
19
23
  function _extends() {
20
24
  _extends = Object.assign || function (target) {
@@ -3215,7 +3219,7 @@ var getLocalTranslation = function getLocalTranslation(key) {
3215
3219
 
3216
3220
  if (translationParts.length > 1) {
3217
3221
  var literal = translationParts[1];
3218
- return literal.charAt(0).toUpperCase() + literal.slice(1).toLowerCase();
3222
+ return literal.charAt(0).toUpperCase() + literal.slice(1).toLowerCase().replaceAll('_', ' ');
3219
3223
  }
3220
3224
 
3221
3225
  return key;
@@ -4939,10 +4943,20 @@ var getSelectStyles$1 = function getSelectStyles(_ref) {
4939
4943
  },
4940
4944
  noOptionsMessage: function noOptionsMessage() {
4941
4945
  return {
4942
- color: GREY500,
4946
+ color: GREY400,
4943
4947
  textAlign: 'center',
4944
4948
  padding: '8px',
4945
- fontFamily: FONT_FAMILY
4949
+ fontFamily: FONT_FAMILY,
4950
+ fontSize: '14px'
4951
+ };
4952
+ },
4953
+ loadingMessage: function loadingMessage() {
4954
+ return {
4955
+ color: GREY400,
4956
+ textAlign: 'center',
4957
+ padding: '8px',
4958
+ fontFamily: FONT_FAMILY,
4959
+ fontSize: '14px'
4946
4960
  };
4947
4961
  },
4948
4962
  singleValue: function singleValue(base, state) {
@@ -5124,7 +5138,7 @@ function CustomControl(_ref) {
5124
5138
  props = _objectWithoutPropertiesLoose(_ref, _excluded$5);
5125
5139
 
5126
5140
  var selectedOption = (_props$getValue = props.getValue()) === null || _props$getValue === void 0 ? void 0 : _props$getValue[0];
5127
- return React__default.createElement(Select.components.Control, Object.assign({}, props), CustomControl && selectedOption ? React__default.createElement("div", {
5141
+ return React__default.createElement(Select.components.Control, Object.assign({}, props), CustomPrefixComponent && selectedOption ? React__default.createElement("div", {
5128
5142
  className: styles$r['custom-control'],
5129
5143
  style: {
5130
5144
  paddingLeft: selectedOption ? 8 : 0
@@ -5148,13 +5162,13 @@ function CustomOption$1(_ref) {
5148
5162
  return React__default.createElement(Select.components.Option, Object.assign({}, props), React__default.createElement(CustomComponent, Object.assign({}, props), children));
5149
5163
  }
5150
5164
 
5151
- var SelectField = function SelectField(_ref) {
5165
+ var useSelectField = function useSelectField(_ref) {
5152
5166
  var _ref$asToolbarFilter = _ref.asToolbarFilter,
5153
5167
  asToolbarFilter = _ref$asToolbarFilter === void 0 ? false : _ref$asToolbarFilter,
5154
5168
  caption = _ref.caption,
5155
5169
  disabled = _ref.disabled,
5156
5170
  error = _ref.error,
5157
- inputId = _ref.id,
5171
+ id = _ref.id,
5158
5172
  _ref$isClearable = _ref.isClearable,
5159
5173
  isClearable = _ref$isClearable === void 0 ? false : _ref$isClearable,
5160
5174
  label = _ref.label,
@@ -5166,32 +5180,22 @@ var SelectField = function SelectField(_ref) {
5166
5180
  onBlur = _ref.onBlur,
5167
5181
  onChange = _ref.onChange,
5168
5182
  placeholder = _ref.placeholder,
5169
- prefix = _ref.prefix,
5170
5183
  value = _ref.value,
5171
5184
  UserCustomOption = _ref.CustomOption,
5172
5185
  SelectedOptionPrefix = _ref.SelectedOptionPrefix;
5173
5186
  var controllers = useSelectFieldControllers({
5174
5187
  error: error,
5175
- id: inputId,
5188
+ id: id,
5176
5189
  name: name,
5177
5190
  onChange: onChange,
5178
5191
  onBlur: onBlur,
5179
5192
  value: value
5180
5193
  });
5181
5194
  var hasError = !!controllers.error;
5182
- var fieldProps = {
5183
- caption: caption,
5184
- error: controllers.error,
5185
- id: controllers.id,
5186
- label: label,
5187
- name: name
5188
- };
5189
5195
  var defaultNoOptionsMessage = noOptionsMessage && typeof noOptionsMessage === 'string' ? function () {
5190
5196
  return noOptionsMessage;
5191
5197
  } : undefined;
5192
- return React__default.createElement(Field, Object.assign({}, fieldProps), React__default.createElement(AffixContainer, {
5193
- prefix: prefix
5194
- }, React__default.createElement(Select__default, {
5198
+ var selectProps = {
5195
5199
  closeMenuOnScroll: function closeMenuOnScroll(e) {
5196
5200
  if (menuShouldScrollIntoView || !e.target) {
5197
5201
  return false;
@@ -5228,7 +5232,110 @@ var SelectField = function SelectField(_ref) {
5228
5232
  asToolbarFilter: asToolbarFilter
5229
5233
  }),
5230
5234
  value: controllers.value
5231
- })));
5235
+ };
5236
+ var fieldProps = {
5237
+ caption: caption,
5238
+ error: controllers.error,
5239
+ id: controllers.id,
5240
+ label: label,
5241
+ name: name
5242
+ };
5243
+ return {
5244
+ selectProps: selectProps,
5245
+ fieldProps: fieldProps
5246
+ };
5247
+ };
5248
+
5249
+ var SelectField = function SelectField(props) {
5250
+ var _useSelectField = useSelectField(props),
5251
+ fieldProps = _useSelectField.fieldProps,
5252
+ selectProps = _useSelectField.selectProps;
5253
+
5254
+ return React__default.createElement(Field, Object.assign({}, fieldProps), React__default.createElement(AffixContainer, {
5255
+ prefix: props.prefix
5256
+ }, React__default.createElement(Select__default, Object.assign({}, selectProps))));
5257
+ };
5258
+
5259
+ var styles$s = {"custom-list":"_uC4zU"};
5260
+
5261
+ var _excluded$7 = ["children", "hasMoreOptions", "hasMoreOptionsFirstLoad"];
5262
+
5263
+ var CustomList = function CustomList(_ref) {
5264
+ var children = _ref.children,
5265
+ hasMoreOptions = _ref.hasMoreOptions,
5266
+ hasMoreOptionsFirstLoad = _ref.hasMoreOptionsFirstLoad,
5267
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$7);
5268
+
5269
+ var showFooter = hasMoreOptions;
5270
+
5271
+ if (props.selectProps.inputValue === '' && typeof hasMoreOptionsFirstLoad === 'boolean') {
5272
+ showFooter = hasMoreOptionsFirstLoad;
5273
+ }
5274
+
5275
+ return React__default.createElement(Select.components.MenuList, Object.assign({}, props), React__default.createElement(React.Fragment, null, children, showFooter && React__default.createElement(Inline, {
5276
+ justifyContent: "center"
5277
+ }, React__default.createElement("div", {
5278
+ className: styles$s['custom-list']
5279
+ }, getLocalizedString('main.START_TYPING_TO_SEE_MORE_OPTIONS')))));
5280
+ };
5281
+
5282
+ var _excluded$8 = ["loadOptions"];
5283
+
5284
+ var AsyncSelectField = function AsyncSelectField(_ref) {
5285
+ var loadOptions = _ref.loadOptions,
5286
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$8);
5287
+
5288
+ var _useState = React.useState(false),
5289
+ hasMoreOptions = _useState[0],
5290
+ setHasMoreOptions = _useState[1];
5291
+
5292
+ var _useState2 = React.useState(),
5293
+ hasMoreOptionsFirstLoad = _useState2[0],
5294
+ setHasMoreOptionsFirstLoad = _useState2[1];
5295
+
5296
+ var handleLoadOptions = function handleLoadOptions(inputValue, callback) {
5297
+ if (hasMoreOptions) {
5298
+ setHasMoreOptions(false);
5299
+ }
5300
+
5301
+ return loadOptions(inputValue).then(function (_ref2) {
5302
+ var hasMore = _ref2.hasMore,
5303
+ options = _ref2.options;
5304
+ setHasMoreOptions(hasMore);
5305
+
5306
+ if (hasMoreOptionsFirstLoad === undefined) {
5307
+ setHasMoreOptionsFirstLoad(hasMore);
5308
+ }
5309
+
5310
+ callback(options);
5311
+ return options;
5312
+ });
5313
+ };
5314
+
5315
+ var _useSelectField = useSelectField(_extends({}, props, {
5316
+ options: []
5317
+ })),
5318
+ fieldProps = _useSelectField.fieldProps,
5319
+ selectProps = _useSelectField.selectProps;
5320
+
5321
+ return React__default.createElement(Field, Object.assign({}, fieldProps), React__default.createElement(AffixContainer, {
5322
+ prefix: props.prefix
5323
+ }, React__default.createElement(AsyncSelect, Object.assign({}, selectProps, {
5324
+ components: _extends({}, selectProps.components, {
5325
+ MenuList: function MenuList(props) {
5326
+ return React__default.createElement(CustomList, Object.assign({}, props, {
5327
+ hasMoreOptions: hasMoreOptions,
5328
+ hasMoreOptionsFirstLoad: hasMoreOptionsFirstLoad
5329
+ }));
5330
+ }
5331
+ }),
5332
+ cacheOptions: false,
5333
+ defaultOptions: true,
5334
+ loadOptions: lodashEs.debounce(handleLoadOptions, 500, {
5335
+ leading: true,
5336
+ trailing: false
5337
+ })
5338
+ }))));
5232
5339
  };
5233
5340
 
5234
5341
  var useDateFieldControllers = function useDateFieldControllers(_ref) {
@@ -5310,14 +5417,14 @@ var DatePickerCalendar = function DatePickerCalendar(_ref) {
5310
5417
 
5311
5418
  var inputStyles = {"text-field":"_1btTx","date-field":"_1Sc9D","text-field--invalid":"_2feYp","date-field--invalid":"_2SNat","text-field--prefixed":"_E18JV","date-field--prefixed":"_jLolW","text-field--suffixed":"_27J43","date-field--suffixed":"_3eTNi"};
5312
5419
 
5313
- var styles$s = {"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"};
5420
+ var dayStyles = {"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"};
5314
5421
 
5315
5422
  function parseDate(str, format, locale) {
5316
5423
  var parsed = dateFnsParse(str, format, new Date(), {
5317
5424
  locale: locale
5318
5425
  });
5319
5426
 
5320
- if (str.length === format.length && reactDayPicker.DateUtils.isDate(parsed)) {
5427
+ if (str.length === format.length && DayPicker.DateUtils.isDate(parsed)) {
5321
5428
  return parsed;
5322
5429
  }
5323
5430
 
@@ -5370,7 +5477,8 @@ var DateField = function DateField(_ref) {
5370
5477
  disabled = _ref.disabled,
5371
5478
  defaultValue = _ref.defaultValue,
5372
5479
  _ref$readOnly = _ref.readOnly,
5373
- readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly;
5480
+ readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
5481
+ onMonthChange = _ref.onMonthChange;
5374
5482
  var inputRef = React.useRef();
5375
5483
 
5376
5484
  var _useState = React.useState(false),
@@ -5394,7 +5502,7 @@ var DateField = function DateField(_ref) {
5394
5502
  error: controllers.error
5395
5503
  };
5396
5504
  var dayPickerProps = {
5397
- classNames: styles$s,
5505
+ classNames: dayStyles,
5398
5506
  disabledDays: function disabledDays(day) {
5399
5507
  return _disabledDays && _disabledDays(setToMidnight(day));
5400
5508
  },
@@ -5403,7 +5511,8 @@ var DateField = function DateField(_ref) {
5403
5511
  weekdaysLong: DAYS,
5404
5512
  weekdaysShort: DAYS.map(function (day) {
5405
5513
  return day.substring(0, 2);
5406
- })
5514
+ }),
5515
+ onMonthChange: onMonthChange
5407
5516
  };
5408
5517
  return React__default.createElement(Field, Object.assign({}, fieldProps), React__default.createElement(AffixContainer, {
5409
5518
  prefix: React__default.createElement(IconCalendarAlt, {
@@ -5411,7 +5520,7 @@ var DateField = function DateField(_ref) {
5411
5520
  })
5412
5521
  }, React__default.createElement(DayPickerInput, {
5413
5522
  format: format,
5414
- classNames: styles$s,
5523
+ classNames: dayStyles,
5415
5524
  formatDate: formatDate,
5416
5525
  parseDate: parseDate,
5417
5526
  placeholder: placeholder || format.toUpperCase(),
@@ -5811,7 +5920,7 @@ var DateRangeField = function DateRangeField(_ref) {
5811
5920
  })));
5812
5921
  };
5813
5922
 
5814
- var styles$u = {"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"};
5923
+ var weekStyles = {"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"};
5815
5924
 
5816
5925
  var WeekField = function WeekField(_ref) {
5817
5926
  var _classnames;
@@ -5886,7 +5995,7 @@ var WeekField = function WeekField(_ref) {
5886
5995
  };
5887
5996
 
5888
5997
  var dayPickerProps = {
5889
- classNames: styles$u,
5998
+ classNames: weekStyles,
5890
5999
  disabledDays: function disabledDays(day) {
5891
6000
  return _disabledDays && _disabledDays(setToMidnight(day));
5892
6001
  },
@@ -5916,7 +6025,7 @@ var WeekField = function WeekField(_ref) {
5916
6025
  })
5917
6026
  }, React__default.createElement(DayPickerInput, {
5918
6027
  format: format,
5919
- classNames: styles$u,
6028
+ classNames: weekStyles,
5920
6029
  formatDate: formatDate,
5921
6030
  parseDate: parseDate,
5922
6031
  placeholder: placeholder || format.toUpperCase(),
@@ -5955,14 +6064,14 @@ var WeekField = function WeekField(_ref) {
5955
6064
  })));
5956
6065
  };
5957
6066
 
5958
- var _excluded$7 = ["placeholder", "autoComplete"];
6067
+ var _excluded$9 = ["placeholder", "autoComplete"];
5959
6068
 
5960
6069
  var TimeFieldElement = function TimeFieldElement(_ref, ref) {
5961
6070
  var _ref$placeholder = _ref.placeholder,
5962
6071
  placeholder = _ref$placeholder === void 0 ? '9am' : _ref$placeholder,
5963
6072
  _ref$autoComplete = _ref.autoComplete,
5964
6073
  autoComplete = _ref$autoComplete === void 0 ? 'off' : _ref$autoComplete,
5965
- allOtherProps = _objectWithoutPropertiesLoose(_ref, _excluded$7);
6074
+ allOtherProps = _objectWithoutPropertiesLoose(_ref, _excluded$9);
5966
6075
 
5967
6076
  var _useTextField = useTextField(_extends({}, allOtherProps, {
5968
6077
  placeholder: placeholder,
@@ -5983,12 +6092,12 @@ var TimeFieldElement = function TimeFieldElement(_ref, ref) {
5983
6092
 
5984
6093
  var TimeField = React.forwardRef(TimeFieldElement);
5985
6094
 
5986
- var _excluded$8 = ["currencySymbol"];
6095
+ var _excluded$a = ["currencySymbol"];
5987
6096
 
5988
6097
  var CurrencyFieldElement = function CurrencyFieldElement(_ref, ref) {
5989
6098
  var _ref$currencySymbol = _ref.currencySymbol,
5990
6099
  currencySymbol = _ref$currencySymbol === void 0 ? "$" : _ref$currencySymbol,
5991
- allOtherProps = _objectWithoutPropertiesLoose(_ref, _excluded$8);
6100
+ allOtherProps = _objectWithoutPropertiesLoose(_ref, _excluded$a);
5992
6101
 
5993
6102
  var _useTextField = useTextField(_extends({}, allOtherProps, {
5994
6103
  ref: ref
@@ -6021,7 +6130,7 @@ var CurrencyFieldElement = function CurrencyFieldElement(_ref, ref) {
6021
6130
 
6022
6131
  var CurrencyField = React.forwardRef(CurrencyFieldElement);
6023
6132
 
6024
- var _excluded$9 = ["max", "min", "precision", "stepSize"];
6133
+ var _excluded$b = ["max", "min", "precision", "stepSize"];
6025
6134
 
6026
6135
  var PercentageElement = function PercentageElement(_ref, ref) {
6027
6136
  var _ref$max = _ref.max,
@@ -6032,7 +6141,7 @@ var PercentageElement = function PercentageElement(_ref, ref) {
6032
6141
  precision = _ref$precision === void 0 ? 0 : _ref$precision,
6033
6142
  _ref$stepSize = _ref.stepSize,
6034
6143
  stepSize = _ref$stepSize === void 0 ? 1 : _ref$stepSize,
6035
- allOtherProps = _objectWithoutPropertiesLoose(_ref, _excluded$9);
6144
+ allOtherProps = _objectWithoutPropertiesLoose(_ref, _excluded$b);
6036
6145
 
6037
6146
  var _useTextField = useTextField(_extends({}, allOtherProps, {
6038
6147
  ref: ref
@@ -6112,9 +6221,148 @@ var PercentageElement = function PercentageElement(_ref, ref) {
6112
6221
 
6113
6222
  var PercentageField = React.forwardRef(PercentageElement);
6114
6223
 
6115
- var styles$v = {"overlay":"_2puqJ","overlay--after-open":"_1167h","overlay--before-close":"_t_t7L","content":"_wQQ_2","content--after-open":"_3jwux","content--before-close":"_2c2QP"};
6224
+ var BANNER_THEME = {
6225
+ INFO: 'info',
6226
+ WARNING: 'warning',
6227
+ SUCCESS: 'success',
6228
+ DANGER: 'danger',
6229
+ UPSELL: 'upsell'
6230
+ };
6231
+ var BUTTON_THEME = {
6232
+ HOLLOW: 'hollow',
6233
+ UPSELL: 'upsell'
6234
+ };
6235
+
6236
+ 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"};
6237
+
6238
+ var ButtonCTA = function ButtonCTA(_ref) {
6239
+ var button = _ref.button,
6240
+ bannerTheme = _ref.bannerTheme,
6241
+ _ref$primaryCTA = _ref.primaryCTA,
6242
+ primaryCTA = _ref$primaryCTA === void 0 ? false : _ref$primaryCTA;
6243
+
6244
+ if (button.type !== Button$1 || button.props.theme) {
6245
+ return button;
6246
+ }
6247
+
6248
+ if (bannerTheme === BANNER_THEME.UPSELL && primaryCTA) {
6249
+ return React__default.cloneElement(button, _extends({
6250
+ theme: BUTTON_THEME.UPSELL
6251
+ }, button.props));
6252
+ }
6253
+
6254
+ return React__default.cloneElement(button, _extends({
6255
+ theme: BUTTON_THEME.HOLLOW
6256
+ }, button.props));
6257
+ };
6258
+
6259
+ var styles$v = {"banner__caption":"_1jqm8"};
6260
+
6261
+ var InlineBannerCTA = function InlineBannerCTA(_ref) {
6262
+ var primaryButton = _ref.primaryButton,
6263
+ secondaryButton = _ref.secondaryButton,
6264
+ caption = _ref.caption,
6265
+ multiLine = _ref.multiLine,
6266
+ bannerTheme = _ref.bannerTheme;
6267
+ return React__default.createElement(Stack, {
6268
+ space: 12,
6269
+ "data-testid": "banner_ctas"
6270
+ }, multiLine ? React__default.createElement(Inline, {
6271
+ space: 12
6272
+ }, React__default.createElement(ButtonCTA, {
6273
+ button: primaryButton,
6274
+ bannerTheme: bannerTheme,
6275
+ primaryCTA: true
6276
+ }), secondaryButton && React__default.createElement(ButtonCTA, {
6277
+ button: secondaryButton,
6278
+ bannerTheme: bannerTheme
6279
+ })) : React__default.createElement(Inline, {
6280
+ space: 12
6281
+ }, secondaryButton && React__default.createElement(ButtonCTA, {
6282
+ button: secondaryButton,
6283
+ bannerTheme: bannerTheme
6284
+ }), React__default.createElement(ButtonCTA, {
6285
+ button: primaryButton,
6286
+ bannerTheme: bannerTheme,
6287
+ primaryCTA: true
6288
+ })), caption && multiLine && React__default.createElement("div", {
6289
+ className: styles$v['banner__caption']
6290
+ }, caption));
6291
+ };
6292
+
6293
+ var InlineBannerIcon = function InlineBannerIcon(_ref) {
6294
+ var theme = _ref.theme;
6116
6295
 
6117
- var styles$w = {"header":"_36nxW","sub-header":"_2XwRD"};
6296
+ switch (theme) {
6297
+ case BANNER_THEME.INFO:
6298
+ return React__default.createElement(IconInfoCircle, null);
6299
+
6300
+ case BANNER_THEME.WARNING:
6301
+ return React__default.createElement(IconExclaimationTriangle, null);
6302
+
6303
+ case BANNER_THEME.SUCCESS:
6304
+ return React__default.createElement(IconCheck, null);
6305
+
6306
+ case BANNER_THEME.DANGER:
6307
+ return React__default.createElement(IconTimesOctagon, null);
6308
+
6309
+ case BANNER_THEME.UPSELL:
6310
+ return React__default.createElement(IconAward, null);
6311
+ }
6312
+ };
6313
+
6314
+ var InlineBanner = function InlineBanner(_ref) {
6315
+ var _classnames, _classnames2;
6316
+
6317
+ var children = _ref.children,
6318
+ _ref$theme = _ref.theme,
6319
+ theme = _ref$theme === void 0 ? BANNER_THEME.INFO : _ref$theme,
6320
+ title = _ref.title,
6321
+ onClose = _ref.onClose,
6322
+ caption = _ref.caption,
6323
+ primaryButton = _ref.primaryButton,
6324
+ secondaryButton = _ref.secondaryButton;
6325
+ var multiLine = !!title;
6326
+ var dismissable = !!onClose;
6327
+ var Layout = multiLine ? Stack : Inline;
6328
+ return React__default.createElement("div", {
6329
+ "data-testid": "inline_banner",
6330
+ 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))
6331
+ }, React__default.createElement(Inline, {
6332
+ alignItems: multiLine ? undefined : 'center',
6333
+ flex: ['0 1 auto', 1],
6334
+ space: 12
6335
+ }, React__default.createElement("div", {
6336
+ className: styles$u['banner__icon']
6337
+ }, React__default.createElement(InlineBannerIcon, {
6338
+ theme: theme
6339
+ })), React__default.createElement(Layout, {
6340
+ justifyContent: multiLine ? undefined : 'space-between',
6341
+ alignItems: multiLine ? undefined : 'center',
6342
+ space: multiLine ? 8 : 12,
6343
+ "data-testid": "banner-body-container"
6344
+ }, title && React__default.createElement("div", {
6345
+ className: styles$u['banner__title']
6346
+ }, title), React__default.createElement("div", {
6347
+ className: classnames(styles$u['banner__body'], (_classnames2 = {}, _classnames2[styles$u['banner__body--multilineCTA']] = primaryButton && multiLine, _classnames2))
6348
+ }, children), primaryButton && React__default.createElement(InlineBannerCTA, {
6349
+ primaryButton: primaryButton,
6350
+ secondaryButton: secondaryButton,
6351
+ caption: caption,
6352
+ multiLine: multiLine,
6353
+ bannerTheme: theme
6354
+ })), dismissable && React__default.createElement("div", {
6355
+ className: styles$u['banner__close']
6356
+ }, React__default.createElement(Button$1, {
6357
+ theme: "link-icon",
6358
+ type: "button",
6359
+ onClick: onClose
6360
+ }, React__default.createElement(IconTimes, null)))));
6361
+ };
6362
+
6363
+ var styles$w = {"overlay":"_2puqJ","overlay--after-open":"_1167h","overlay--before-close":"_t_t7L","content":"_wQQ_2","content--after-open":"_3jwux","content--before-close":"_2c2QP"};
6364
+
6365
+ var styles$x = {"header":"_36nxW","sub-header":"_2XwRD"};
6118
6366
 
6119
6367
  var ModalHeader = function ModalHeader(_ref) {
6120
6368
  var header = _ref.header,
@@ -6126,12 +6374,12 @@ var ModalHeader = function ModalHeader(_ref) {
6126
6374
  flex: [1],
6127
6375
  alignItems: "center"
6128
6376
  }, React__default.createElement("span", {
6129
- className: styles$w['header']
6377
+ className: styles$x['header']
6130
6378
  }, header), React__default.createElement(Button$1, {
6131
6379
  theme: "link-icon",
6132
6380
  onClick: onClose
6133
6381
  }, React__default.createElement(IconTimes, null))), subHeader && React__default.createElement("div", {
6134
- className: styles$w['sub-header']
6382
+ className: styles$x['sub-header']
6135
6383
  }, subHeader));
6136
6384
  };
6137
6385
 
@@ -6167,14 +6415,14 @@ var Modal = function Modal(_ref) {
6167
6415
  contentLabel: "Modal",
6168
6416
  appElement: rootElementId && document.getElementById(rootElementId) || undefined,
6169
6417
  overlayClassName: {
6170
- base: styles$v['overlay'],
6171
- afterOpen: styles$v['overlay--after-open'],
6172
- beforeClose: styles$v['overlay--before-close']
6418
+ base: styles$w['overlay'],
6419
+ afterOpen: styles$w['overlay--after-open'],
6420
+ beforeClose: styles$w['overlay--before-close']
6173
6421
  },
6174
6422
  className: {
6175
- base: styles$v['content'],
6176
- afterOpen: styles$v['content--after-open'],
6177
- beforeClose: styles$v['content--before-close']
6423
+ base: styles$w['content'],
6424
+ afterOpen: styles$w['content--after-open'],
6425
+ beforeClose: styles$w['content--before-close']
6178
6426
  }
6179
6427
  }, React__default.createElement(ModalHeader, {
6180
6428
  header: header,
@@ -6187,16 +6435,16 @@ Modal.setAppElement = function (rootElement) {
6187
6435
  ReactModal.setAppElement(rootElement);
6188
6436
  };
6189
6437
 
6190
- var styles$x = {"modal-body":"_2J-ku"};
6438
+ var styles$y = {"modal-body":"_2J-ku"};
6191
6439
 
6192
6440
  var ModalBody = function ModalBody(_ref) {
6193
6441
  var children = _ref.children;
6194
6442
  return React__default.createElement("div", {
6195
- className: styles$x['modal-body']
6443
+ className: styles$y['modal-body']
6196
6444
  }, children);
6197
6445
  };
6198
6446
 
6199
- var styles$y = {"modal-footer":"_LKOr5","tertiary-container":"_Qktd-"};
6447
+ var styles$z = {"modal-footer":"_LKOr5","tertiary-container":"_Qktd-"};
6200
6448
 
6201
6449
  var ModalFooter = function ModalFooter(_ref) {
6202
6450
  var children = _ref.children,
@@ -6217,7 +6465,7 @@ var ModalFooter = function ModalFooter(_ref) {
6217
6465
  return React__default.createElement(FooterContainer, null, React__default.createElement(Inline, {
6218
6466
  justifyContent: "space-between"
6219
6467
  }, React__default.createElement("div", {
6220
- className: classnames((_classnames = {}, _classnames[styles$y['tertiary-container']] = tertiaryButton && tertiaryButton.props.theme.startsWith('link'), _classnames))
6468
+ className: classnames((_classnames = {}, _classnames[styles$z['tertiary-container']] = tertiaryButton && tertiaryButton.props.theme.startsWith('link'), _classnames))
6221
6469
  }, tertiaryButton || React__default.createElement("div", null)), React__default.createElement(Inline, {
6222
6470
  space: 12
6223
6471
  }, secondaryButton, primaryButton)));
@@ -6245,7 +6493,7 @@ var FooterContainer = function FooterContainer(_ref2) {
6245
6493
  var childrenItens = React__default.Children.toArray(children);
6246
6494
  var hasCustomAlignment = childrenItens.length === 1 && childrenItens[0].type === Inline;
6247
6495
  return React__default.createElement("div", {
6248
- className: styles$y['modal-footer']
6496
+ className: styles$z['modal-footer']
6249
6497
  }, React__default.createElement(Inline, {
6250
6498
  justifyContent: "end",
6251
6499
  space: 12,
@@ -6253,9 +6501,163 @@ var FooterContainer = function FooterContainer(_ref2) {
6253
6501
  }, children));
6254
6502
  };
6255
6503
 
6256
- var styles$z = {"badge":"_2f81N","badge--warning":"_2g1GI","badge--danger":"_2zLnM","badge--success":"_27QOo","badge--info":"_2gmsM"};
6504
+ var CALENDAR_MODE = {
6505
+ DAY: 'day',
6506
+ WEEK: 'week'
6507
+ };
6508
+ var CALENDAR_PLACEMENT = {
6509
+ BOTTOM: 'bottom',
6510
+ TOP: 'top'
6511
+ };
6512
+
6513
+ var calculateCalendarPosition = function calculateCalendarPosition(placement, anchorPosition, calendarDimensions) {
6514
+ if (!calendarDimensions) {
6515
+ return {
6516
+ left: 0,
6517
+ top: 0
6518
+ };
6519
+ }
6520
+
6521
+ var horizontalPosition = getHorizontalPosition(anchorPosition, calendarDimensions);
6522
+ var verticalPosition = getVerticalPosition(anchorPosition, placement, calendarDimensions);
6523
+ return _extends({}, horizontalPosition, verticalPosition);
6524
+ };
6525
+
6526
+ var getHorizontalPosition = function getHorizontalPosition(anchorPosition, calendarDimensions) {
6527
+ var innerWidth = window.innerWidth;
6528
+ var calendarRight = anchorPosition.left + calendarDimensions.width;
6529
+
6530
+ if (innerWidth > calendarRight + BUFFER) {
6531
+ return {
6532
+ left: anchorPosition.left
6533
+ };
6534
+ }
6535
+
6536
+ return {
6537
+ left: anchorPosition.right - calendarDimensions.width
6538
+ };
6539
+ };
6540
+
6541
+ var getVerticalPosition = function getVerticalPosition(anchorPosition, placement, calendarDimensions) {
6542
+ var calendarTopAboveTrigger = anchorPosition.top - calendarDimensions.height - PADDING;
6543
+ var calendarTopBelowTrigger = anchorPosition.bottom + PADDING;
6544
+
6545
+ if (placement === CALENDAR_PLACEMENT.TOP) {
6546
+ if (calendarTopAboveTrigger < 0) {
6547
+ return {
6548
+ top: anchorPosition.bottom + PADDING
6549
+ };
6550
+ }
6551
+
6552
+ return {
6553
+ top: calendarTopAboveTrigger + window.scrollY
6554
+ };
6555
+ } else {
6556
+ if (calendarTopBelowTrigger + calendarDimensions.height > window.innerHeight) {
6557
+ return {
6558
+ top: calendarTopAboveTrigger + window.scrollY
6559
+ };
6560
+ }
6561
+
6562
+ return {
6563
+ top: calendarTopBelowTrigger + window.scrollY
6564
+ };
6565
+ }
6566
+ };
6567
+
6568
+ var Calendar = function Calendar(_ref) {
6569
+ var _ref$mode = _ref.mode,
6570
+ mode = _ref$mode === void 0 ? CALENDAR_MODE.DAY : _ref$mode,
6571
+ _ref$position = _ref.position,
6572
+ position = _ref$position === void 0 ? CALENDAR_PLACEMENT.BOTTOM : _ref$position,
6573
+ _ref$weekStart = _ref.weekStart,
6574
+ weekStart = _ref$weekStart === void 0 ? 0 : _ref$weekStart,
6575
+ selected = _ref.selected,
6576
+ onSelect = _ref.onSelect,
6577
+ onClickOutside = _ref.onClickOutside,
6578
+ disabledDays = _ref.disabledDays,
6579
+ anchorRef = _ref.anchorRef;
6580
+
6581
+ var _useState = React.useState(null),
6582
+ calendarRef = _useState[0],
6583
+ setCalendarRef = _useState[1];
6584
+
6585
+ var style = mode === CALENDAR_MODE.DAY ? dayStyles : weekStyles;
6586
+ var anchorNode = anchorRef.current;
6587
+ useOnClickOutside({
6588
+ current: calendarRef
6589
+ }, function (event) {
6590
+ var _anchorRef$current;
6591
+
6592
+ if (!((_anchorRef$current = anchorRef.current) !== null && _anchorRef$current !== void 0 && _anchorRef$current.contains(event === null || event === void 0 ? void 0 : event.srcElement))) {
6593
+ onClickOutside();
6594
+ }
6595
+ });
6596
+ var weekRange = selected ? createWeekRange(selected, weekStart) : undefined;
6597
+ var selectedRange = weekRange && {
6598
+ from: weekRange.start,
6599
+ to: weekRange.end
6600
+ };
6601
+
6602
+ var handleSelect = function handleSelect(day) {
6603
+ var selectedDate = setToMidnight(day);
6604
+
6605
+ if (mode === CALENDAR_MODE.DAY) {
6606
+ onSelect(selectedDate);
6607
+ } else {
6608
+ var _weekRange = createWeekRange(selectedDate, weekStart);
6609
+
6610
+ onSelect(_weekRange.start);
6611
+ }
6612
+
6613
+ setTimeout(function () {
6614
+ onClickOutside();
6615
+ }, 100);
6616
+ };
6617
+
6618
+ if (!anchorNode) {
6619
+ return null;
6620
+ }
6621
+
6622
+ var anchorPosition = anchorNode.getBoundingClientRect();
6623
+ var calendarPosition = calculateCalendarPosition(position, anchorPosition, calendarRef === null || calendarRef === void 0 ? void 0 : calendarRef.getBoundingClientRect());
6624
+ return React__default.createElement(Portal, null, React__default.createElement("div", {
6625
+ className: style.overlayWrapper
6626
+ }, React__default.createElement("div", {
6627
+ className: style.overlay,
6628
+ ref: function ref(_ref2) {
6629
+ return setCalendarRef(_ref2);
6630
+ },
6631
+ style: _extends({}, calendarPosition, {
6632
+ zIndex: Z_INDEX_LAYERS.MODAL
6633
+ })
6634
+ }, React__default.createElement(DayPicker__default, {
6635
+ format: "MM/dd/yyyy",
6636
+ classNames: style,
6637
+ onDayClick: function onDayClick(day, activeModifiers) {
6638
+ var isDateDisabled = Object.keys(activeModifiers).find(function (modifier) {
6639
+ return modifier.includes('disabled');
6640
+ });
6641
+
6642
+ if (!Boolean(isDateDisabled)) {
6643
+ handleSelect(day);
6644
+ }
6645
+ },
6646
+ selectedDays: mode === CALENDAR_MODE.DAY ? selected : selectedRange,
6647
+ disabledDays: disabledDays,
6648
+ months: MONTH_NAMES,
6649
+ weekdaysLong: DAYS,
6650
+ weekdaysShort: DAYS.map(function (day) {
6651
+ return day.substring(0, 2);
6652
+ }),
6653
+ showOutsideDays: mode === CALENDAR_MODE.WEEK,
6654
+ firstDayOfWeek: weekStart
6655
+ }))));
6656
+ };
6657
+
6658
+ var styles$A = {"badge":"_2f81N","badge--warning":"_2g1GI","badge--danger":"_2zLnM","badge--success":"_27QOo","badge--info":"_2gmsM"};
6257
6659
 
6258
- var _excluded$a = ["children", "theme", "title"];
6660
+ var _excluded$c = ["children", "theme", "title"];
6259
6661
 
6260
6662
  var Badge = function Badge(_ref, forwardedRef) {
6261
6663
  var _classnames;
@@ -6263,7 +6665,7 @@ var Badge = function Badge(_ref, forwardedRef) {
6263
6665
  var children = _ref.children,
6264
6666
  theme = _ref.theme,
6265
6667
  title = _ref.title,
6266
- otherProps = _objectWithoutPropertiesLoose(_ref, _excluded$a);
6668
+ otherProps = _objectWithoutPropertiesLoose(_ref, _excluded$c);
6267
6669
 
6268
6670
  var internalRef = React.useRef(null);
6269
6671
  var ref = forwardedRef || internalRef;
@@ -6276,16 +6678,16 @@ var Badge = function Badge(_ref, forwardedRef) {
6276
6678
  overlay: title,
6277
6679
  ref: ref
6278
6680
  }, React__default.createElement("div", Object.assign({
6279
- 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)),
6681
+ className: classnames(styles$A['badge'], (_classnames = {}, _classnames[styles$A['badge--success']] = theme === 'success', _classnames[styles$A['badge--danger']] = theme === 'danger', _classnames[styles$A['badge--info']] = theme === 'info', _classnames[styles$A['badge--warning']] = theme === 'warning', _classnames)),
6280
6682
  ref: ref
6281
6683
  }, otherProps), children));
6282
6684
  };
6283
6685
 
6284
6686
  var Badge$1 = React.forwardRef(Badge);
6285
6687
 
6286
- var styles$A = {"avatar":"_2wJGB","avatar--small":"_3QTSo","avatar__badge":"_2Rl8S","avatar--medium":"_1zwj0","avatar--large":"_3-U6x","avatar--extra-large":"_3qn2q"};
6688
+ var styles$B = {"avatar":"_2wJGB","avatar--small":"_3QTSo","avatar__badge":"_2Rl8S","avatar--medium":"_1zwj0","avatar--large":"_3-U6x","avatar--extra-large":"_3qn2q"};
6287
6689
 
6288
- var styles$B = {"avatar-image":"_GKL9P"};
6690
+ var styles$C = {"avatar-image":"_GKL9P"};
6289
6691
 
6290
6692
  var AvatarImage = function AvatarImage(_ref) {
6291
6693
  var url = _ref.url,
@@ -6310,7 +6712,7 @@ var AvatarImage = function AvatarImage(_ref) {
6310
6712
  }
6311
6713
 
6312
6714
  return React__default.createElement("div", {
6313
- className: styles$B['avatar-image']
6715
+ className: styles$C['avatar-image']
6314
6716
  }, React__default.createElement(IconUserSolid, {
6315
6717
  size: "flexible",
6316
6718
  color: color
@@ -6378,7 +6780,7 @@ var Avatar = function Avatar(_ref) {
6378
6780
 
6379
6781
  var backgroundColor = url ? GREY200 : color;
6380
6782
  return React__default.createElement("div", {
6381
- className: classnames(styles$A['avatar'], (_classnames = {}, _classnames[styles$A['avatar--small']] = size === 'small', _classnames[styles$A['avatar--medium']] = size === 'medium', _classnames[styles$A['avatar--large']] = size === 'large', _classnames[styles$A['avatar--extra-large']] = size === 'extra-large', _classnames)),
6783
+ className: classnames(styles$B['avatar'], (_classnames = {}, _classnames[styles$B['avatar--small']] = size === 'small', _classnames[styles$B['avatar--medium']] = size === 'medium', _classnames[styles$B['avatar--large']] = size === 'large', _classnames[styles$B['avatar--extra-large']] = size === 'extra-large', _classnames)),
6382
6784
  style: {
6383
6785
  backgroundColor: children || url && !showIconInsteadOfImage ? backgroundColor : defaultProfilePictureColors.backgroundColor
6384
6786
  }
@@ -6390,13 +6792,15 @@ var Avatar = function Avatar(_ref) {
6390
6792
  return setShowIconInsteadOfImage(true);
6391
6793
  }
6392
6794
  }), badge && size !== 'small' && React__default.createElement("div", {
6393
- className: styles$A['avatar__badge']
6795
+ className: styles$B['avatar__badge']
6394
6796
  }, badge));
6395
6797
  };
6396
6798
 
6799
+ exports.AsyncSelectField = AsyncSelectField;
6397
6800
  exports.Avatar = Avatar;
6398
6801
  exports.Badge = Badge$1;
6399
6802
  exports.Button = Button$1;
6803
+ exports.Calendar = Calendar;
6400
6804
  exports.CheckboxField = CheckboxField;
6401
6805
  exports.CurrencyField = CurrencyField;
6402
6806
  exports.DataTable = DataTable;
@@ -6532,6 +6936,7 @@ exports.IconVolume = IconVolume;
6532
6936
  exports.IconVolumeMute = IconVolumeMute;
6533
6937
  exports.IconWrench = IconWrench;
6534
6938
  exports.Inline = Inline;
6939
+ exports.InlineBanner = InlineBanner;
6535
6940
  exports.Modal = Modal;
6536
6941
  exports.ModalBody = ModalBody;
6537
6942
  exports.ModalFooter = ModalFooter;