@7shifts/sous-chef 2.5.1 → 2.8.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
@@ -163,7 +163,7 @@ var Inline = function Inline(props) {
163
163
  }));
164
164
  };
165
165
 
166
- var styles$2 = {"spinner":"_2wtfD","rotator":"_2Jprn","spinner--block":"_Jmh8M","path":"_3zucL","dash":"_3ZqYM","path--mint":"_3XYKx","path--disabled":"_1pYbs","path--contrast":"_3ofDF"};
166
+ var styles$2 = {"spinner":"_2wtfD","rotator":"_2Jprn","spinner--block":"_Jmh8M","path":"_3zucL","dash":"_3ZqYM","path--mint":"_3XYKx","path--disabled":"_1pYbs","path--contrast":"_3ofDF","path--pride":"_e0OH1"};
167
167
 
168
168
  var Spinner = function Spinner(_ref) {
169
169
  var _classnames;
@@ -183,7 +183,75 @@ var Spinner = function Spinner(_ref) {
183
183
  height: size,
184
184
  viewBox: "0 0 66 66",
185
185
  "data-testid": "spinner"
186
- }, React__default.createElement("circle", {
186
+ }, React__default.createElement("defs", null, React__default.createElement("linearGradient", {
187
+ id: "prideGradient"
188
+ }, React__default.createElement("stop", {
189
+ offset: "0",
190
+ stopColor: "#000000"
191
+ }), React__default.createElement("stop", {
192
+ offset: "0.0500",
193
+ stopColor: "#000000"
194
+ }), React__default.createElement("stop", {
195
+ offset: "0.0501",
196
+ stopColor: "#ffafc7"
197
+ }), React__default.createElement("stop", {
198
+ offset: "0.15",
199
+ stopColor: "#ffafc7"
200
+ }), React__default.createElement("stop", {
201
+ offset: "0.1501",
202
+ stopColor: "#73d7ee"
203
+ }), React__default.createElement("stop", {
204
+ offset: "0.25",
205
+ stopColor: "#73d7ee"
206
+ }), React__default.createElement("stop", {
207
+ offset: "0.2501",
208
+ stopColor: "#613915"
209
+ }), React__default.createElement("stop", {
210
+ offset: "0.35",
211
+ stopColor: "#613915"
212
+ }), React__default.createElement("stop", {
213
+ offset: "0.3501",
214
+ stopColor: "#ffffff"
215
+ }), React__default.createElement("stop", {
216
+ offset: "0.45",
217
+ stopColor: "#ffffff"
218
+ }), React__default.createElement("stop", {
219
+ offset: "0.4501",
220
+ stopColor: "#e50000"
221
+ }), React__default.createElement("stop", {
222
+ offset: "0.55",
223
+ stopColor: "#e50000"
224
+ }), React__default.createElement("stop", {
225
+ offset: "0.5501",
226
+ stopColor: "#ff8d00"
227
+ }), React__default.createElement("stop", {
228
+ offset: "0.65",
229
+ stopColor: "#ff8d00"
230
+ }), React__default.createElement("stop", {
231
+ offset: "0.6501",
232
+ stopColor: "#ddee00"
233
+ }), React__default.createElement("stop", {
234
+ offset: "0.75",
235
+ stopColor: "#ddee00"
236
+ }), React__default.createElement("stop", {
237
+ offset: "0.7501",
238
+ stopColor: "#028121"
239
+ }), React__default.createElement("stop", {
240
+ offset: "0.85",
241
+ stopColor: "#028121"
242
+ }), React__default.createElement("stop", {
243
+ offset: "0.8501",
244
+ stopColor: "#004cff"
245
+ }), React__default.createElement("stop", {
246
+ offset: "0.95",
247
+ stopColor: "#004cff"
248
+ }), React__default.createElement("stop", {
249
+ offset: "0.9501",
250
+ stopColor: "#760088"
251
+ }), React__default.createElement("stop", {
252
+ offset: "1",
253
+ stopColor: "#760088"
254
+ }))), React__default.createElement("circle", {
187
255
  className: classnames(styles$2['path'], styles$2["path--" + theme]),
188
256
  fill: "none",
189
257
  strokeWidth: "6",
@@ -2735,6 +2803,28 @@ var IconUndo = function IconUndo(props) {
2735
2803
 
2736
2804
  IconUndo.displayName = 'IconUndo';
2737
2805
 
2806
+ var IconUniversity = function IconUniversity(props) {
2807
+ return React__default.createElement("svg", Object.assign({
2808
+ viewBox: "0 0 20 20",
2809
+ fill: "none",
2810
+ xmlns: "http://www.w3.org/2000/svg",
2811
+ "data-testid": "icon-university",
2812
+ style: getIconStyles(props)
2813
+ }, props), React__default.createElement("g", {
2814
+ clipPath: "url(#icon-university_svg__a)"
2815
+ }, React__default.createElement("path", {
2816
+ d: "M19.375 17.5h-.625v-1.563a.937.937 0 0 0-.938-.937H16.25V8.125H15V15h-2.5V8.125h-1.25V15h-2.5V8.125H7.5V15H5V8.125H3.75V15H2.187a.937.937 0 0 0-.937.938V17.5H.625a.625.625 0 0 0-.625.625v.313a.313.313 0 0 0 .313.312h19.375a.313.313 0 0 0 .312-.313v-.312a.625.625 0 0 0-.625-.625ZM2.5 16.25h15v1.25h-15v-1.25ZM19.698 5.312l-9.105-3.966a1.875 1.875 0 0 0-1.186 0L.302 5.312A.469.469 0 0 0 0 5.752v.343c0 .259.21.468.469.468h.781v.47c0 .258.21.468.469.468H18.28c.26 0 .469-.21.469-.469v-.468h.781c.26 0 .469-.21.469-.47v-.342a.469.469 0 0 0-.302-.439ZM17.5 6.25h-15v-.531L9.842 2.52a.625.625 0 0 1 .316 0L17.5 5.72v.531Z",
2817
+ fill: "currentColor"
2818
+ })), React__default.createElement("defs", null, React__default.createElement("clipPath", {
2819
+ id: "icon-university_svg__a"
2820
+ }, React__default.createElement("path", {
2821
+ fill: "#fff",
2822
+ d: "M0 0h20v20H0z"
2823
+ }))));
2824
+ };
2825
+
2826
+ IconUniversity.displayName = 'IconUniversity';
2827
+
2738
2828
  var IconUserComputer = function IconUserComputer(props) {
2739
2829
  return React__default.createElement("svg", Object.assign({
2740
2830
  viewBox: "0 0 20 20",
@@ -3609,7 +3699,7 @@ var useFieldControllers = function useFieldControllers(_ref) {
3609
3699
  return formik.setFieldValue(name, e.target.value);
3610
3700
  },
3611
3701
  onBlur: _onBlur ? function (e) {
3612
- controllers.onBlur(e);
3702
+ _onBlur && _onBlur(e.target.value);
3613
3703
  currencyBlur();
3614
3704
  } : function () {
3615
3705
  formik.setFieldTouched(name);
@@ -4491,7 +4581,7 @@ var useRadioGroupFieldControllers = function useRadioGroupFieldControllers(_ref)
4491
4581
  error: error !== undefined ? controllers.error : formikState.error,
4492
4582
  value: value !== undefined ? controllers.value : formikState.value,
4493
4583
  onChange: function onChange(e) {
4494
- formik.setFieldValue(name, e.target.checked);
4584
+ formik.setFieldValue(name, e.target.value);
4495
4585
  _onChange && _onChange(e.target.value);
4496
4586
  }
4497
4587
  });
@@ -5117,8 +5207,17 @@ var DatePickerCalendar = function DatePickerCalendar(_ref) {
5117
5207
  children = _ref.children,
5118
5208
  onBlur = _ref.onBlur,
5119
5209
  onFocus = _ref.onFocus,
5120
- tabIndex = _ref.tabIndex;
5210
+ tabIndex = _ref.tabIndex,
5211
+ showCalendar = _ref.showCalendar,
5212
+ onClickOutside = _ref.onClickOutside;
5121
5213
  var inputPosition = inputNode.getBoundingClientRect();
5214
+ var calendarRef = React.useRef(null);
5215
+ useOnClickOutside(calendarRef, onClickOutside);
5216
+
5217
+ if (!showCalendar) {
5218
+ return null;
5219
+ }
5220
+
5122
5221
  return React__default.createElement(Portal, null, React__default.createElement("div", {
5123
5222
  className: classNames.overlayWrapper,
5124
5223
  onBlur: onBlur,
@@ -5128,7 +5227,8 @@ var DatePickerCalendar = function DatePickerCalendar(_ref) {
5128
5227
  zIndex: 9999,
5129
5228
  left: inputPosition.left,
5130
5229
  top: inputPosition.top + window.scrollY + inputPosition.height + 3
5131
- }
5230
+ },
5231
+ ref: calendarRef
5132
5232
  }, React__default.createElement("div", {
5133
5233
  className: classNames.overlay
5134
5234
  }, children)));
@@ -5198,6 +5298,11 @@ var DateField = function DateField(_ref) {
5198
5298
  _ref$readOnly = _ref.readOnly,
5199
5299
  readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly;
5200
5300
  var inputRef = React.useRef();
5301
+
5302
+ var _useState = React.useState(false),
5303
+ showCalendar = _useState[0],
5304
+ setShowCalendar = _useState[1];
5305
+
5201
5306
  var controllers = useDateFieldControllers({
5202
5307
  name: name,
5203
5308
  id: inputId,
@@ -5239,24 +5344,37 @@ var DateField = function DateField(_ref) {
5239
5344
  defaultValue: defaultValue,
5240
5345
  value: controllers.value || '',
5241
5346
  onDayChange: controllers.onChange,
5242
- onDayPickerHide: controllers.onBlur,
5347
+ onDayPickerHide: function onDayPickerHide() {
5348
+ controllers.onBlur();
5349
+ setShowCalendar(false);
5350
+ },
5243
5351
  overlayComponent: function overlayComponent(props) {
5244
5352
  return React__default.createElement(DatePickerCalendar, Object.assign({}, props, {
5245
- inputNode: inputRef.current
5353
+ inputNode: inputRef.current,
5354
+ showCalendar: showCalendar,
5355
+ onClickOutside: function onClickOutside() {
5356
+ return setShowCalendar(false);
5357
+ }
5246
5358
  }));
5247
5359
  },
5248
5360
  dayPickerProps: dayPickerProps,
5249
5361
  inputProps: {
5250
5362
  name: name,
5251
5363
  id: controllers.id,
5252
- className: classnames(inputStyles['date-field'], (_classnames = {}, _classnames[inputStyles['date--invalid']] = hasError, _classnames)),
5364
+ className: classnames(inputStyles['date-field'], (_classnames = {}, _classnames[inputStyles['date-field--invalid']] = hasError, _classnames)),
5253
5365
  'data-testid': "date-field-" + name,
5254
5366
  'aria-describedby': hasError ? controllers.id + "-error-message" : controllers.id + "-describer",
5255
5367
  'aria-invalid': hasError,
5256
5368
  autoComplete: 'off',
5257
5369
  ref: inputRef,
5258
5370
  readOnly: readOnly,
5259
- disabled: disabled
5371
+ disabled: disabled,
5372
+ onFocus: function onFocus() {
5373
+ return setShowCalendar(true);
5374
+ }
5375
+ },
5376
+ onDayPickerShow: function onDayPickerShow() {
5377
+ return setShowCalendar(true);
5260
5378
  }
5261
5379
  })));
5262
5380
  };
@@ -5294,7 +5412,7 @@ var useRangeFieldControllers = function useRangeFieldControllers(_ref) {
5294
5412
 
5295
5413
  if (formik && formikState) {
5296
5414
  return _extends({}, initialControllers, {
5297
- error: error !== undefined ? initialControllers.error : formikState.error,
5415
+ error: error !== undefined ? initialControllers.error : getFormikError(formikState.error),
5298
5416
  value: value !== undefined ? initialControllers.value : formikState.value,
5299
5417
  onChange: _onChange ? initialControllers.onChange : function (newValue) {
5300
5418
  formik.setFieldValue(name, newValue === undefined ? null : newValue);
@@ -5308,12 +5426,33 @@ var useRangeFieldControllers = function useRangeFieldControllers(_ref) {
5308
5426
  return initialControllers;
5309
5427
  };
5310
5428
 
5429
+ var getFormikError = function getFormikError(error) {
5430
+ if (!error) {
5431
+ return undefined;
5432
+ }
5433
+
5434
+ if (typeof error === 'string') {
5435
+ return error;
5436
+ }
5437
+
5438
+ if (error.start) {
5439
+ return error.start;
5440
+ }
5441
+
5442
+ if (error.end) {
5443
+ return error.end;
5444
+ }
5445
+
5446
+ return undefined;
5447
+ };
5448
+
5311
5449
  var styles$s = {"container":"_1Ini2","wrapper":"_21VnL","interactionDisabled":"_wJ6Cb","DayPicker-Day":"_1c48y","navBar":"_3KwsN","todayButton":"_10CBO","navButtonInteractionDisabled":"_dHL-D","navButtonPrev":"_6kNi3","navButtonNext":"_13W_e","months":"_1FeSY","month":"_wU6A4","caption":"_AMbAo","weekdays":"_1LEst","weekdaysRow":"_2XECo","weekday":"_1C5ry","body":"_11F-Y","week":"_3MAFk","day":"_mG73F","disabled":"_2pgnH","selected":"_MtLaz","outside":"_CRqyX","footer":"_2KG9-","today":"_2JA2y","overlayWrapper":"_1JWbc","overlay":"_2tL6g","weekNumber":"_3u72O","text-field":"_25rf7","date-range-field":"_3qVhi","text-field--invalid":"_2M9Ud","text-field--prefixed":"_3TUb2","text-field--suffixed":"_foqL0","date-range-field--invalid":"_3df9R","date-range-field--disabled":"_2Nkht"};
5312
5450
 
5313
5451
  var FromDate = function FromDate(_ref) {
5314
5452
  var name = _ref.name,
5315
5453
  id = _ref.id,
5316
5454
  format = _ref.format,
5455
+ disabledDays = _ref.disabledDays,
5317
5456
  start = _ref.start,
5318
5457
  end = _ref.end,
5319
5458
  placeholder = _ref.placeholder,
@@ -5321,12 +5460,29 @@ var FromDate = function FromDate(_ref) {
5321
5460
  disabled = _ref.disabled,
5322
5461
  readOnly = _ref.readOnly,
5323
5462
  onChange = _ref.onChange,
5324
- onDayClick = _ref.onDayClick;
5463
+ _onDayClick = _ref.onDayClick;
5464
+
5465
+ var _useState = React.useState(false),
5466
+ showCalendar = _useState[0],
5467
+ setShowCalendar = _useState[1];
5468
+
5325
5469
  var inputRef = React.useRef();
5326
5470
  var modifiers = {
5327
5471
  from: start,
5328
5472
  to: end
5329
5473
  };
5474
+ var disabledDaysChecks = end ? [{
5475
+ after: end
5476
+ }] : [];
5477
+
5478
+ if (disabledDays) {
5479
+ if (Array.isArray(disabledDays)) {
5480
+ disabledDaysChecks.push.apply(disabledDaysChecks, disabledDays);
5481
+ } else {
5482
+ disabledDaysChecks.push(disabledDays);
5483
+ }
5484
+ }
5485
+
5330
5486
  var dayPickerProps = {
5331
5487
  classNames: styles$s,
5332
5488
  months: MONTH_NAMES,
@@ -5340,12 +5496,18 @@ var FromDate = function FromDate(_ref) {
5340
5496
  from: start,
5341
5497
  to: end
5342
5498
  }],
5343
- disabledDays: {
5344
- after: end
5345
- },
5499
+ disabledDays: disabledDaysChecks,
5346
5500
  toMonth: end,
5347
5501
  modifiers: modifiers,
5348
- onDayClick: onDayClick
5502
+ onDayClick: function onDayClick(_, activeModifiers) {
5503
+ var isDateDisabled = Object.keys(activeModifiers).find(function (modifier) {
5504
+ return modifier;
5505
+ });
5506
+
5507
+ if (!Boolean(isDateDisabled)) {
5508
+ _onDayClick();
5509
+ }
5510
+ }
5349
5511
  };
5350
5512
  return React__default.createElement(DayPickerInput, {
5351
5513
  format: format,
@@ -5356,9 +5518,16 @@ var FromDate = function FromDate(_ref) {
5356
5518
  parseDate: parseDate,
5357
5519
  placeholder: placeholder,
5358
5520
  onDayChange: onChange,
5521
+ onDayPickerHide: function onDayPickerHide() {
5522
+ return setShowCalendar(false);
5523
+ },
5359
5524
  overlayComponent: function overlayComponent(props) {
5360
5525
  return React__default.createElement(DatePickerCalendar, Object.assign({}, props, {
5361
- inputNode: inputRef.current
5526
+ inputNode: inputRef.current,
5527
+ showCalendar: showCalendar,
5528
+ onClickOutside: function onClickOutside() {
5529
+ return setShowCalendar(false);
5530
+ }
5362
5531
  }));
5363
5532
  },
5364
5533
  dayPickerProps: dayPickerProps,
@@ -5370,7 +5539,13 @@ var FromDate = function FromDate(_ref) {
5370
5539
  readOnly: readOnly,
5371
5540
  disabled: disabled,
5372
5541
  'data-testid': "range-picker-field-from-" + name,
5373
- type: 'text'
5542
+ type: 'text',
5543
+ onFocus: function onFocus() {
5544
+ return setShowCalendar(true);
5545
+ }
5546
+ },
5547
+ onDayPickerShow: function onDayPickerShow() {
5548
+ return setShowCalendar(true);
5374
5549
  }
5375
5550
  });
5376
5551
  };
@@ -5378,17 +5553,36 @@ var FromDate = function FromDate(_ref) {
5378
5553
  var ToDate = function ToDate(_ref, ref) {
5379
5554
  var name = _ref.name,
5380
5555
  format = _ref.format,
5556
+ disabledDays = _ref.disabledDays,
5381
5557
  start = _ref.start,
5382
5558
  end = _ref.end,
5383
5559
  placeholder = _ref.placeholder,
5384
5560
  weekStart = _ref.weekStart,
5385
5561
  disabled = _ref.disabled,
5386
5562
  readOnly = _ref.readOnly,
5387
- onChange = _ref.onChange;
5563
+ onChange = _ref.onChange,
5564
+ _onBlur = _ref.onBlur;
5565
+
5566
+ var _useState = React.useState(false),
5567
+ showCalendar = _useState[0],
5568
+ setShowCalendar = _useState[1];
5569
+
5388
5570
  var modifiers = {
5389
5571
  from: start,
5390
5572
  to: end
5391
5573
  };
5574
+ var disabledDaysChecks = start ? [{
5575
+ before: start
5576
+ }] : [];
5577
+
5578
+ if (disabledDays) {
5579
+ if (Array.isArray(disabledDays)) {
5580
+ disabledDaysChecks.push.apply(disabledDaysChecks, disabledDays);
5581
+ } else {
5582
+ disabledDaysChecks.push(disabledDays);
5583
+ }
5584
+ }
5585
+
5392
5586
  var dayPickerProps = {
5393
5587
  classNames: styles$s,
5394
5588
  months: MONTH_NAMES,
@@ -5402,9 +5596,7 @@ var ToDate = function ToDate(_ref, ref) {
5402
5596
  from: start,
5403
5597
  to: end
5404
5598
  }],
5405
- disabledDays: {
5406
- before: start
5407
- },
5599
+ disabledDays: disabledDaysChecks,
5408
5600
  modifiers: modifiers,
5409
5601
  month: end || start,
5410
5602
  fromMonth: start
@@ -5418,9 +5610,16 @@ var ToDate = function ToDate(_ref, ref) {
5418
5610
  parseDate: parseDate,
5419
5611
  placeholder: placeholder,
5420
5612
  onDayChange: onChange,
5613
+ onDayPickerHide: function onDayPickerHide() {
5614
+ return setShowCalendar(false);
5615
+ },
5421
5616
  overlayComponent: function overlayComponent(props) {
5422
5617
  return React__default.createElement(DatePickerCalendar, Object.assign({}, props, {
5423
- inputNode: ref === null || ref === void 0 ? void 0 : ref.current
5618
+ inputNode: ref === null || ref === void 0 ? void 0 : ref.current,
5619
+ showCalendar: showCalendar,
5620
+ onClickOutside: function onClickOutside() {
5621
+ return setShowCalendar(false);
5622
+ }
5424
5623
  }));
5425
5624
  },
5426
5625
  dayPickerProps: dayPickerProps,
@@ -5431,7 +5630,16 @@ var ToDate = function ToDate(_ref, ref) {
5431
5630
  readOnly: readOnly,
5432
5631
  disabled: disabled,
5433
5632
  'data-testid': "range-picker-field-to-" + name,
5434
- type: 'text'
5633
+ type: 'text',
5634
+ onFocus: function onFocus() {
5635
+ return setShowCalendar(true);
5636
+ },
5637
+ onBlur: function onBlur() {
5638
+ setTimeout(_onBlur, 200);
5639
+ }
5640
+ },
5641
+ onDayPickerShow: function onDayPickerShow() {
5642
+ return setShowCalendar(true);
5435
5643
  }
5436
5644
  });
5437
5645
  };
@@ -5439,11 +5647,12 @@ var ToDate = function ToDate(_ref, ref) {
5439
5647
  var ToDate$1 = React.forwardRef(ToDate);
5440
5648
 
5441
5649
  var DateRangeField = function DateRangeField(_ref) {
5442
- var _classnames, _classnames2;
5650
+ var _classnames;
5443
5651
 
5444
5652
  var name = _ref.name,
5445
5653
  inputId = _ref.id,
5446
5654
  value = _ref.value,
5655
+ disabledDays = _ref.disabledDays,
5447
5656
  _ref$format = _ref.format,
5448
5657
  format = _ref$format === void 0 ? 'MM/dd/yyyy' : _ref$format,
5449
5658
  onChange = _ref.onChange,
@@ -5478,7 +5687,7 @@ var DateRangeField = function DateRangeField(_ref) {
5478
5687
  start = _controllers$value.start,
5479
5688
  end = _controllers$value.end;
5480
5689
  return React__default.createElement(Field, Object.assign({}, fieldProps), React__default.createElement("div", {
5481
- className: classnames(styles$s['date-range-field'], (_classnames = {}, _classnames[styles$s['date-range-field--invalid']] = hasError, _classnames), (_classnames2 = {}, _classnames2[styles$s['date-range-field--disabled']] = disabled, _classnames2))
5690
+ className: classnames(styles$s['date-range-field'], (_classnames = {}, _classnames[styles$s['date-range-field--invalid']] = hasError, _classnames[styles$s['date-range-field--disabled']] = disabled, _classnames))
5482
5691
  }, React__default.createElement(IconCalendarAlt, {
5483
5692
  size: "medium",
5484
5693
  color: GREY400
@@ -5491,6 +5700,7 @@ var DateRangeField = function DateRangeField(_ref) {
5491
5700
  placeholder: placeholder || format.toUpperCase(),
5492
5701
  weekStart: weekStart,
5493
5702
  disabled: disabled,
5703
+ disabledDays: disabledDays,
5494
5704
  readOnly: readOnly,
5495
5705
  onChange: function onChange(val) {
5496
5706
  return controllers.onChange({
@@ -5514,7 +5724,9 @@ var DateRangeField = function DateRangeField(_ref) {
5514
5724
  placeholder: placeholder || format.toUpperCase(),
5515
5725
  weekStart: weekStart,
5516
5726
  disabled: disabled,
5727
+ disabledDays: disabledDays,
5517
5728
  readOnly: readOnly,
5729
+ onBlur: controllers.onBlur,
5518
5730
  onChange: function onChange(val) {
5519
5731
  return controllers.onChange({
5520
5732
  start: start,
@@ -5554,6 +5766,10 @@ var WeekField = function WeekField(_ref) {
5554
5766
  hoverDate = _useState[0],
5555
5767
  setHoverDate = _useState[1];
5556
5768
 
5769
+ var _useState2 = React.useState(false),
5770
+ showCalendar = _useState2[0],
5771
+ setShowCalendar = _useState2[1];
5772
+
5557
5773
  var inputRef = React.useRef();
5558
5774
  var controllers = useDateFieldControllers({
5559
5775
  name: name,
@@ -5636,21 +5852,31 @@ var WeekField = function WeekField(_ref) {
5636
5852
  onDayPickerHide: controllers.onBlur,
5637
5853
  overlayComponent: function overlayComponent(props) {
5638
5854
  return React__default.createElement(DatePickerCalendar, Object.assign({}, props, {
5639
- inputNode: inputRef.current
5855
+ inputNode: inputRef.current,
5856
+ showCalendar: showCalendar,
5857
+ onClickOutside: function onClickOutside() {
5858
+ return setShowCalendar(false);
5859
+ }
5640
5860
  }));
5641
5861
  },
5642
5862
  dayPickerProps: dayPickerProps,
5643
5863
  inputProps: {
5644
5864
  name: name,
5645
5865
  id: controllers.id,
5646
- className: classnames(inputStyles['date-field'], (_classnames = {}, _classnames[inputStyles['date--invalid']] = hasError, _classnames)),
5866
+ className: classnames(inputStyles['date-field'], (_classnames = {}, _classnames[inputStyles['date-field--invalid']] = hasError, _classnames)),
5647
5867
  'data-testid': "week-field-" + name,
5648
5868
  'aria-describedby': hasError ? controllers.id + "-error-message" : controllers.id + "-describer",
5649
5869
  'aria-invalid': hasError,
5650
5870
  autoComplete: 'off',
5651
5871
  ref: inputRef,
5652
5872
  readOnly: readOnly,
5653
- disabled: disabled
5873
+ disabled: disabled,
5874
+ onFocus: function onFocus() {
5875
+ return setShowCalendar(true);
5876
+ }
5877
+ },
5878
+ onDayPickerShow: function onDayPickerShow() {
5879
+ return setShowCalendar(true);
5654
5880
  }
5655
5881
  })));
5656
5882
  };
@@ -5683,6 +5909,135 @@ var TimeFieldElement = function TimeFieldElement(_ref, ref) {
5683
5909
 
5684
5910
  var TimeField = React.forwardRef(TimeFieldElement);
5685
5911
 
5912
+ var _excluded$7 = ["currencySymbol"];
5913
+
5914
+ var CurrencyFieldElement = function CurrencyFieldElement(_ref, ref) {
5915
+ var _ref$currencySymbol = _ref.currencySymbol,
5916
+ currencySymbol = _ref$currencySymbol === void 0 ? "$" : _ref$currencySymbol,
5917
+ allOtherProps = _objectWithoutPropertiesLoose(_ref, _excluded$7);
5918
+
5919
+ var _useTextField = useTextField(_extends({}, allOtherProps, {
5920
+ ref: ref
5921
+ })),
5922
+ inputProps = _useTextField.inputProps,
5923
+ fieldProps = _useTextField.fieldProps;
5924
+
5925
+ return React__default.createElement(Field, Object.assign({}, fieldProps), React__default.createElement(AffixContainer, {
5926
+ prefix: currencySymbol
5927
+ }, React__default.createElement("input", Object.assign({}, inputProps, {
5928
+ type: 'number',
5929
+ inputMode: 'decimal',
5930
+ step: '0.01',
5931
+ min: 0,
5932
+ onKeyDown: function onKeyDown(e) {
5933
+ if (e.key === 'e' || e.key === '-') {
5934
+ e.preventDefault();
5935
+ return;
5936
+ }
5937
+
5938
+ inputProps.onKeyDown(e);
5939
+ },
5940
+ onBlur: function onBlur(e) {
5941
+ e.currentTarget.value = parseFloat(e.currentTarget.value).toFixed(2);
5942
+ inputProps.onChange(e);
5943
+ inputProps.onBlur(e);
5944
+ }
5945
+ }))));
5946
+ };
5947
+
5948
+ var CurrencyField = React.forwardRef(CurrencyFieldElement);
5949
+
5950
+ var _excluded$8 = ["max", "min", "precision", "stepSize"];
5951
+
5952
+ var PercentageElement = function PercentageElement(_ref, ref) {
5953
+ var _ref$max = _ref.max,
5954
+ max = _ref$max === void 0 ? 100 : _ref$max,
5955
+ _ref$min = _ref.min,
5956
+ min = _ref$min === void 0 ? 0 : _ref$min,
5957
+ _ref$precision = _ref.precision,
5958
+ precision = _ref$precision === void 0 ? 0 : _ref$precision,
5959
+ _ref$stepSize = _ref.stepSize,
5960
+ stepSize = _ref$stepSize === void 0 ? 1 : _ref$stepSize,
5961
+ allOtherProps = _objectWithoutPropertiesLoose(_ref, _excluded$8);
5962
+
5963
+ var _useTextField = useTextField(_extends({}, allOtherProps, {
5964
+ ref: ref
5965
+ })),
5966
+ inputProps = _useTextField.inputProps,
5967
+ fieldProps = _useTextField.fieldProps;
5968
+
5969
+ var inputMode = precision > 0 ? 'decimal' : 'numeric';
5970
+
5971
+ var decimalDigitsCount = function decimalDigitsCount(input) {
5972
+ var decimalIndex = input.indexOf('.');
5973
+ return decimalIndex === -1 ? 0 : input.length - decimalIndex - 1;
5974
+ };
5975
+
5976
+ var inputIsValid = function inputIsValid(valueAsString) {
5977
+ if (valueAsString.startsWith('00')) {
5978
+ return false;
5979
+ }
5980
+
5981
+ if (valueAsString === '-' || valueAsString === '.') {
5982
+ return true;
5983
+ }
5984
+
5985
+ if (valueAsString.indexOf('-') > 0) {
5986
+ return false;
5987
+ }
5988
+
5989
+ return decimalDigitsCount(valueAsString) <= precision;
5990
+ };
5991
+
5992
+ var keyPressIsValid = function keyPressIsValid(keyPress, value) {
5993
+ if (keyPress == 'e' || keyPress == '+' || keyPress == '-' && min >= 0) {
5994
+ return false;
5995
+ }
5996
+
5997
+ if (keyPress == '.' && (precision == 0 || Number(value) == max)) {
5998
+ return false;
5999
+ }
6000
+
6001
+ return true;
6002
+ };
6003
+
6004
+ return React__default.createElement(Field, Object.assign({}, fieldProps), React__default.createElement(AffixContainer, {
6005
+ suffix: '%'
6006
+ }, React__default.createElement("input", Object.assign({}, inputProps, {
6007
+ type: 'number',
6008
+ inputMode: inputMode,
6009
+ step: stepSize,
6010
+ max: max,
6011
+ min: min,
6012
+ onKeyDown: function onKeyDown(e) {
6013
+ var value = e.currentTarget.value + e.key;
6014
+
6015
+ if (e.key.length === 1 && (!keyPressIsValid(e.key, value) || !inputIsValid(value))) {
6016
+ e.preventDefault();
6017
+ return;
6018
+ }
6019
+
6020
+ inputProps.onKeyDown(e);
6021
+ },
6022
+ onChange: function onChange(e) {
6023
+ var number = Number(e.target.value);
6024
+
6025
+ if (number > max) {
6026
+ e.target.value = String(max);
6027
+ }
6028
+
6029
+ if (number < min) {
6030
+ e.target.value = String(min);
6031
+ }
6032
+
6033
+ inputProps.onChange(e);
6034
+ inputProps.onBlur(e);
6035
+ }
6036
+ }))));
6037
+ };
6038
+
6039
+ var PercentageField = React.forwardRef(PercentageElement);
6040
+
5686
6041
  var styles$u = {"caption":"_1QDLF","label":"_2wiMV","toggle":"_1ui8X","toggle__label":"_1YRJT","toggle__caption":"_1jEiW","toggle__switch":"_3tNyE"};
5687
6042
 
5688
6043
  var Toggle = function Toggle(_ref) {
@@ -5856,7 +6211,7 @@ var FooterContainer = function FooterContainer(_ref2) {
5856
6211
 
5857
6212
  var styles$z = {"badge":"_2f81N","badge--warning":"_2g1GI","badge--danger":"_2zLnM","badge--success":"_27QOo","badge--info":"_2gmsM"};
5858
6213
 
5859
- var _excluded$7 = ["children", "theme", "title"];
6214
+ var _excluded$9 = ["children", "theme", "title"];
5860
6215
 
5861
6216
  var Badge = function Badge(_ref, forwardedRef) {
5862
6217
  var _classnames;
@@ -5864,7 +6219,7 @@ var Badge = function Badge(_ref, forwardedRef) {
5864
6219
  var children = _ref.children,
5865
6220
  theme = _ref.theme,
5866
6221
  title = _ref.title,
5867
- otherProps = _objectWithoutPropertiesLoose(_ref, _excluded$7);
6222
+ otherProps = _objectWithoutPropertiesLoose(_ref, _excluded$9);
5868
6223
 
5869
6224
  var internalRef = React.useRef(null);
5870
6225
  var ref = forwardedRef || internalRef;
@@ -5999,6 +6354,7 @@ exports.Avatar = Avatar;
5999
6354
  exports.Badge = Badge$1;
6000
6355
  exports.Button = Button$1;
6001
6356
  exports.CheckboxField = CheckboxField;
6357
+ exports.CurrencyField = CurrencyField;
6002
6358
  exports.DataTable = DataTable;
6003
6359
  exports.DataTableCell = DataTableCell;
6004
6360
  exports.DataTableEditableCell = DataTableEditableCell;
@@ -6118,6 +6474,7 @@ exports.IconTimesOctagon = IconTimesOctagon;
6118
6474
  exports.IconTrash = IconTrash;
6119
6475
  exports.IconUnderline = IconUnderline;
6120
6476
  exports.IconUndo = IconUndo;
6477
+ exports.IconUniversity = IconUniversity;
6121
6478
  exports.IconUserComputer = IconUserComputer;
6122
6479
  exports.IconUserLight = IconUserLight;
6123
6480
  exports.IconUserPlus = IconUserPlus;
@@ -6137,6 +6494,7 @@ exports.ModalFooter = ModalFooter;
6137
6494
  exports.MultiSelectField = MultiSelectField;
6138
6495
  exports.PaginationControls = PaginationControls;
6139
6496
  exports.PasswordField = PasswordField;
6497
+ exports.PercentageField = PercentageField;
6140
6498
  exports.PillSelectField = PillSelectField;
6141
6499
  exports.RadioGroupField = RadioGroupField;
6142
6500
  exports.RadioGroupOption = RadioGroupOption;