@dreamcommerce/aurora 3.1.41 → 3.1.43-1

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 (17) hide show
  1. package/build/cjs/packages/aurora/src/components/calendar/styled_day_picker/components/custom_months_dropdown.js +0 -1
  2. package/build/cjs/packages/aurora/src/components/calendar/styled_day_picker/components/custom_months_dropdown.js.map +1 -1
  3. package/build/cjs/packages/aurora/src/components/calendar/styled_day_picker/components/custom_years_dropdown.js +0 -1
  4. package/build/cjs/packages/aurora/src/components/calendar/styled_day_picker/components/custom_years_dropdown.js.map +1 -1
  5. package/build/cjs/packages/aurora/src/components/color_picker/components/pure_color_picker.js +12 -4
  6. package/build/cjs/packages/aurora/src/components/color_picker/components/pure_color_picker.js.map +1 -1
  7. package/build/cjs/packages/aurora/src/components/time_picker/time_picker.js +53 -26
  8. package/build/cjs/packages/aurora/src/components/time_picker/time_picker.js.map +1 -1
  9. package/build/esm/packages/aurora/src/components/calendar/styled_day_picker/components/custom_months_dropdown.js +0 -1
  10. package/build/esm/packages/aurora/src/components/calendar/styled_day_picker/components/custom_months_dropdown.js.map +1 -1
  11. package/build/esm/packages/aurora/src/components/calendar/styled_day_picker/components/custom_years_dropdown.js +0 -1
  12. package/build/esm/packages/aurora/src/components/calendar/styled_day_picker/components/custom_years_dropdown.js.map +1 -1
  13. package/build/esm/packages/aurora/src/components/color_picker/components/pure_color_picker.js +13 -5
  14. package/build/esm/packages/aurora/src/components/color_picker/components/pure_color_picker.js.map +1 -1
  15. package/build/esm/packages/aurora/src/components/time_picker/time_picker.js +54 -27
  16. package/build/esm/packages/aurora/src/components/time_picker/time_picker.js.map +1 -1
  17. package/package.json +1 -1
@@ -51,7 +51,6 @@ var CustomMonthsDropdown = function CustomMonthsDropdown(props) {
51
51
  padding: "small",
52
52
  hasBorder: false,
53
53
  hasMinDropdownWidth: false,
54
- stopPropagation: true,
55
54
  className: "aurora-h-6 hover:aurora-bg-hover"
56
55
  }));
57
56
  };
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -50,7 +50,6 @@ var CustomYearsDropdown = function CustomYearsDropdown(props) {
50
50
  padding: "small",
51
51
  hasBorder: false,
52
52
  hasMinDropdownWidth: false,
53
- stopPropagation: true,
54
53
  className: "aurora-h-6 hover:aurora-bg-hover"
55
54
  }));
56
55
  };
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -39,15 +39,22 @@ var ColorPickerPure = /*#__PURE__*/React__default['default'].forwardRef(function
39
39
  handleSave = _useColorPicker.handleSave;
40
40
  var safeValue = utils.objectToString(color);
41
41
  var defaultStyles = styles.getStyles(true);
42
- var handleClosePopover = function handleClosePopover() {
42
+ var openedAtRef = React.useRef(null);
43
+ var handleOpenChange = function handleOpenChange(value) {
44
+ if (value) {
45
+ setIsColorPickerOpened(true);
46
+ return;
47
+ }
48
+ var elapsed = openedAtRef.current ? performance.now() - openedAtRef.current : null;
49
+ if (elapsed !== null && elapsed < 500) {
50
+ return;
51
+ }
43
52
  handleSave();
44
53
  setIsColorPickerOpened(false);
45
54
  };
46
55
  return /*#__PURE__*/React__default['default'].createElement(popover.Popover, {
47
56
  open: isColorPickerOpened,
48
- onOpenChange: function onOpenChange(value) {
49
- return !value && handleClosePopover();
50
- }
57
+ onOpenChange: handleOpenChange
51
58
  }, /*#__PURE__*/React__default['default'].createElement(context['default'], {
52
59
  value: safeValue,
53
60
  defaultStyles: defaultStyles,
@@ -58,6 +65,7 @@ var ColorPickerPure = /*#__PURE__*/React__default['default'].forwardRef(function
58
65
  }, /*#__PURE__*/React__default['default'].createElement(popover_trigger.PopoverTrigger, {
59
66
  onClick: function onClick(ev) {
60
67
  ev.preventDefault();
68
+ openedAtRef.current = performance.now();
61
69
  setIsColorPickerOpened(true);
62
70
  },
63
71
  disabled: disabled,
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qFAAyF;AAC7G,sBAAsB,iFAAqF;AAC3G,qBAAqB,uFAA2F;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qFAAyF;AAC7G,sBAAsB,iFAAqF;AAC3G,qBAAqB,uFAA2F;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -35,56 +35,82 @@ var TimePicker = function TimePicker(_ref) {
35
35
  _useState6 = _rollupPluginBabelHelpers.slicedToArray(_useState5, 2),
36
36
  tempMinute = _useState6[0],
37
37
  setTempMinute = _useState6[1];
38
+ var _useState7 = React.useState(undefined),
39
+ _useState8 = _rollupPluginBabelHelpers.slicedToArray(_useState7, 2),
40
+ validationError = _useState8[0],
41
+ setValidationError = _useState8[1];
38
42
  var isCancelledRef = React.useRef(false);
39
43
  var parsedTime = React.useMemo(function () {
40
44
  return value ? time_picker_utils.TimePickerUtils.parseStringToTime(value) : undefined;
41
45
  }, [value]);
46
+ var formatTempForDisplay = function formatTempForDisplay(hour, minute) {
47
+ if (hour === null && minute === null) {
48
+ return '';
49
+ }
50
+ var hourStr = hour === null ? 'gg' : String(hour).padStart(2, '0');
51
+ var minuteStr = minute === null ? 'mm' : String(minute).padStart(2, '0');
52
+ return "".concat(hourStr, ":").concat(minuteStr);
53
+ };
42
54
  var displayValue = React.useMemo(function () {
43
55
  if (open) {
44
- if (tempHour === null && tempMinute === null) {
45
- return '';
46
- }
47
- return time_picker_utils.TimePickerUtils.formatTimeForDisplay(tempHour !== null && tempHour !== void 0 ? tempHour : 0, tempMinute !== null && tempMinute !== void 0 ? tempMinute : 0);
56
+ return formatTempForDisplay(tempHour, tempMinute);
48
57
  }
49
58
  return parsedTime ? time_picker_utils.TimePickerUtils.formatTimeForDisplay(parsedTime.hour, parsedTime.minute) : '';
50
59
  }, [open, tempHour, tempMinute, parsedTime]);
51
- var initializeTempValues = function initializeTempValues() {
52
- if (parsedTime) {
53
- setTempHour(parsedTime.hour);
54
- setTempMinute(parsedTime.minute);
55
- } else {
56
- setTempHour(null);
57
- setTempMinute(null);
60
+ var mergedErrors = React.useMemo(function () {
61
+ if (validationError && errors) {
62
+ return Array.isArray(errors) ? [validationError].concat(_rollupPluginBabelHelpers.toConsumableArray(errors)) : [validationError, errors];
58
63
  }
64
+ if (validationError) return validationError;
65
+ return errors;
66
+ }, [errors, validationError]);
67
+ var initializeTempValues = function initializeTempValues() {
68
+ var _parsedTime$hour, _parsedTime$minute;
69
+ setTempHour((_parsedTime$hour = parsedTime === null || parsedTime === void 0 ? void 0 : parsedTime.hour) !== null && _parsedTime$hour !== void 0 ? _parsedTime$hour : null);
70
+ setTempMinute((_parsedTime$minute = parsedTime === null || parsedTime === void 0 ? void 0 : parsedTime.minute) !== null && _parsedTime$minute !== void 0 ? _parsedTime$minute : null);
71
+ setValidationError(undefined);
59
72
  };
60
73
  var saveValue = function saveValue() {
61
74
  if (tempHour === null && tempMinute === null) {
62
75
  onChange === null || onChange === void 0 ? void 0 : onChange('');
63
- } else {
64
- var formattedValue = time_picker_utils.TimePickerUtils.formatTimeToString(tempHour !== null && tempHour !== void 0 ? tempHour : 0, tempMinute !== null && tempMinute !== void 0 ? tempMinute : 0);
65
- onChange === null || onChange === void 0 ? void 0 : onChange(formattedValue);
76
+ setValidationError(undefined);
77
+ return true;
66
78
  }
79
+ if (tempHour === null || tempMinute === null) {
80
+ // Added error message just to trigger the error state, not showing error message to the user
81
+ setValidationError('Select both hour and minute');
82
+ return false;
83
+ }
84
+ var formattedValue = time_picker_utils.TimePickerUtils.formatTimeToString(tempHour, tempMinute);
85
+ onChange === null || onChange === void 0 ? void 0 : onChange(formattedValue);
86
+ setValidationError(undefined);
87
+ return true;
67
88
  };
68
89
  var handleHourChange = function handleHourChange(hour) {
90
+ setTempHour(hour);
69
91
  if (hour === null) {
70
- setTempHour(null);
71
- setTempMinute(null);
92
+ if (tempMinute === null) {
93
+ setValidationError(undefined);
94
+ }
72
95
  } else {
73
- setTempHour(hour);
74
96
  if (tempMinute === null) {
75
97
  setTempMinute(0);
76
98
  }
99
+ setValidationError(undefined);
77
100
  }
78
101
  };
79
102
  var handleMinuteChange = function handleMinuteChange(minute) {
103
+ setTempMinute(minute);
80
104
  if (minute === null) {
81
- setTempHour(null);
82
- setTempMinute(null);
105
+ if (tempHour === null) {
106
+ setValidationError(undefined);
107
+ }
83
108
  } else {
84
- setTempMinute(minute);
109
+ // Auto-set hour if it was null, then clear error since both are now set
85
110
  if (tempHour === null) {
86
111
  setTempHour(0);
87
112
  }
113
+ setValidationError(undefined);
88
114
  }
89
115
  };
90
116
  var handleOpenChange = function handleOpenChange(newOpen) {
@@ -92,10 +118,9 @@ var TimePicker = function TimePicker(_ref) {
92
118
  isCancelledRef.current = false;
93
119
  initializeTempValues();
94
120
  setOpen(true);
121
+ } else if (!isCancelledRef.current && !saveValue()) {
122
+ setOpen(true);
95
123
  } else {
96
- if (!isCancelledRef.current) {
97
- saveValue();
98
- }
99
124
  setOpen(false);
100
125
  }
101
126
  };
@@ -105,8 +130,10 @@ var TimePicker = function TimePicker(_ref) {
105
130
  setOpen(false);
106
131
  };
107
132
  var handleChoose = function handleChoose() {
108
- saveValue();
109
- setOpen(false);
133
+ var saved = saveValue();
134
+ if (saved) {
135
+ setOpen(false);
136
+ }
110
137
  };
111
138
  return /*#__PURE__*/React__default['default'].createElement(popover.Popover, {
112
139
  open: open,
@@ -119,7 +146,7 @@ var TimePicker = function TimePicker(_ref) {
119
146
  value: displayValue,
120
147
  placeholder: placeholder,
121
148
  disabled: disabled,
122
- errors: errors
149
+ errors: mergedErrors
123
150
  })), /*#__PURE__*/React__default['default'].createElement(time_picker_content.TimePickerContent, {
124
151
  hour: tempHour,
125
152
  minute: tempMinute,
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -43,7 +43,6 @@ var CustomMonthsDropdown = function CustomMonthsDropdown(props) {
43
43
  padding: "small",
44
44
  hasBorder: false,
45
45
  hasMinDropdownWidth: false,
46
- stopPropagation: true,
47
46
  className: "aurora-h-6 hover:aurora-bg-hover"
48
47
  }));
49
48
  };
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -42,7 +42,6 @@ var CustomYearsDropdown = function CustomYearsDropdown(props) {
42
42
  padding: "small",
43
43
  hasBorder: false,
44
44
  hasMinDropdownWidth: false,
45
- stopPropagation: true,
46
45
  className: "aurora-h-6 hover:aurora-bg-hover"
47
46
  }));
48
47
  };
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -1,4 +1,4 @@
1
- import React__default from 'react';
1
+ import React__default, { useRef } from 'react';
2
2
  import { objectWithoutProperties as _objectWithoutProperties, objectSpread2 as _objectSpread2 } from '../../../../../../_virtual/_rollupPluginBabelHelpers.js';
3
3
  import { cn } from '../../../utilities/cn.js';
4
4
  import { Popover } from '../../popover/popover.js';
@@ -31,15 +31,22 @@ var ColorPickerPure = /*#__PURE__*/React__default.forwardRef(function (_ref, ref
31
31
  handleSave = _useColorPicker.handleSave;
32
32
  var safeValue = objectToString(color);
33
33
  var defaultStyles = getStyles(true);
34
- var handleClosePopover = function handleClosePopover() {
34
+ var openedAtRef = useRef(null);
35
+ var handleOpenChange = function handleOpenChange(value) {
36
+ if (value) {
37
+ setIsColorPickerOpened(true);
38
+ return;
39
+ }
40
+ var elapsed = openedAtRef.current ? performance.now() - openedAtRef.current : null;
41
+ if (elapsed !== null && elapsed < 500) {
42
+ return;
43
+ }
35
44
  handleSave();
36
45
  setIsColorPickerOpened(false);
37
46
  };
38
47
  return /*#__PURE__*/React__default.createElement(Popover, {
39
48
  open: isColorPickerOpened,
40
- onOpenChange: function onOpenChange(value) {
41
- return !value && handleClosePopover();
42
- }
49
+ onOpenChange: handleOpenChange
43
50
  }, /*#__PURE__*/React__default.createElement(PickerContextWrapper, {
44
51
  value: safeValue,
45
52
  defaultStyles: defaultStyles,
@@ -50,6 +57,7 @@ var ColorPickerPure = /*#__PURE__*/React__default.forwardRef(function (_ref, ref
50
57
  }, /*#__PURE__*/React__default.createElement(PopoverTrigger, {
51
58
  onClick: function onClick(ev) {
52
59
  ev.preventDefault();
60
+ openedAtRef.current = performance.now();
53
61
  setIsColorPickerOpened(true);
54
62
  },
55
63
  disabled: disabled,
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,qFAAyF;AACxH,iCAAiC,iFAAqF;AACtH,0BAA0B,uFAA2F;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,qFAAyF;AACxH,iCAAiC,iFAAqF;AACtH,0BAA0B,uFAA2F;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -1,5 +1,5 @@
1
1
  import React__default, { useState, useRef, useMemo } from 'react';
2
- import { slicedToArray as _slicedToArray } from '../../../../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { slicedToArray as _slicedToArray, toConsumableArray as _toConsumableArray } from '../../../../../_virtual/_rollupPluginBabelHelpers.js';
3
3
  import { cn } from '../../utilities/cn.js';
4
4
  import { Popover } from '../popover/popover.js';
5
5
  import { PopoverTrigger } from '../popover/components/popover_trigger.js';
@@ -27,56 +27,82 @@ var TimePicker = function TimePicker(_ref) {
27
27
  _useState6 = _slicedToArray(_useState5, 2),
28
28
  tempMinute = _useState6[0],
29
29
  setTempMinute = _useState6[1];
30
+ var _useState7 = useState(undefined),
31
+ _useState8 = _slicedToArray(_useState7, 2),
32
+ validationError = _useState8[0],
33
+ setValidationError = _useState8[1];
30
34
  var isCancelledRef = useRef(false);
31
35
  var parsedTime = useMemo(function () {
32
36
  return value ? TimePickerUtils.parseStringToTime(value) : undefined;
33
37
  }, [value]);
38
+ var formatTempForDisplay = function formatTempForDisplay(hour, minute) {
39
+ if (hour === null && minute === null) {
40
+ return '';
41
+ }
42
+ var hourStr = hour === null ? 'gg' : String(hour).padStart(2, '0');
43
+ var minuteStr = minute === null ? 'mm' : String(minute).padStart(2, '0');
44
+ return "".concat(hourStr, ":").concat(minuteStr);
45
+ };
34
46
  var displayValue = useMemo(function () {
35
47
  if (open) {
36
- if (tempHour === null && tempMinute === null) {
37
- return '';
38
- }
39
- return TimePickerUtils.formatTimeForDisplay(tempHour !== null && tempHour !== void 0 ? tempHour : 0, tempMinute !== null && tempMinute !== void 0 ? tempMinute : 0);
48
+ return formatTempForDisplay(tempHour, tempMinute);
40
49
  }
41
50
  return parsedTime ? TimePickerUtils.formatTimeForDisplay(parsedTime.hour, parsedTime.minute) : '';
42
51
  }, [open, tempHour, tempMinute, parsedTime]);
43
- var initializeTempValues = function initializeTempValues() {
44
- if (parsedTime) {
45
- setTempHour(parsedTime.hour);
46
- setTempMinute(parsedTime.minute);
47
- } else {
48
- setTempHour(null);
49
- setTempMinute(null);
52
+ var mergedErrors = useMemo(function () {
53
+ if (validationError && errors) {
54
+ return Array.isArray(errors) ? [validationError].concat(_toConsumableArray(errors)) : [validationError, errors];
50
55
  }
56
+ if (validationError) return validationError;
57
+ return errors;
58
+ }, [errors, validationError]);
59
+ var initializeTempValues = function initializeTempValues() {
60
+ var _parsedTime$hour, _parsedTime$minute;
61
+ setTempHour((_parsedTime$hour = parsedTime === null || parsedTime === void 0 ? void 0 : parsedTime.hour) !== null && _parsedTime$hour !== void 0 ? _parsedTime$hour : null);
62
+ setTempMinute((_parsedTime$minute = parsedTime === null || parsedTime === void 0 ? void 0 : parsedTime.minute) !== null && _parsedTime$minute !== void 0 ? _parsedTime$minute : null);
63
+ setValidationError(undefined);
51
64
  };
52
65
  var saveValue = function saveValue() {
53
66
  if (tempHour === null && tempMinute === null) {
54
67
  onChange === null || onChange === void 0 ? void 0 : onChange('');
55
- } else {
56
- var formattedValue = TimePickerUtils.formatTimeToString(tempHour !== null && tempHour !== void 0 ? tempHour : 0, tempMinute !== null && tempMinute !== void 0 ? tempMinute : 0);
57
- onChange === null || onChange === void 0 ? void 0 : onChange(formattedValue);
68
+ setValidationError(undefined);
69
+ return true;
58
70
  }
71
+ if (tempHour === null || tempMinute === null) {
72
+ // Added error message just to trigger the error state, not showing error message to the user
73
+ setValidationError('Select both hour and minute');
74
+ return false;
75
+ }
76
+ var formattedValue = TimePickerUtils.formatTimeToString(tempHour, tempMinute);
77
+ onChange === null || onChange === void 0 ? void 0 : onChange(formattedValue);
78
+ setValidationError(undefined);
79
+ return true;
59
80
  };
60
81
  var handleHourChange = function handleHourChange(hour) {
82
+ setTempHour(hour);
61
83
  if (hour === null) {
62
- setTempHour(null);
63
- setTempMinute(null);
84
+ if (tempMinute === null) {
85
+ setValidationError(undefined);
86
+ }
64
87
  } else {
65
- setTempHour(hour);
66
88
  if (tempMinute === null) {
67
89
  setTempMinute(0);
68
90
  }
91
+ setValidationError(undefined);
69
92
  }
70
93
  };
71
94
  var handleMinuteChange = function handleMinuteChange(minute) {
95
+ setTempMinute(minute);
72
96
  if (minute === null) {
73
- setTempHour(null);
74
- setTempMinute(null);
97
+ if (tempHour === null) {
98
+ setValidationError(undefined);
99
+ }
75
100
  } else {
76
- setTempMinute(minute);
101
+ // Auto-set hour if it was null, then clear error since both are now set
77
102
  if (tempHour === null) {
78
103
  setTempHour(0);
79
104
  }
105
+ setValidationError(undefined);
80
106
  }
81
107
  };
82
108
  var handleOpenChange = function handleOpenChange(newOpen) {
@@ -84,10 +110,9 @@ var TimePicker = function TimePicker(_ref) {
84
110
  isCancelledRef.current = false;
85
111
  initializeTempValues();
86
112
  setOpen(true);
113
+ } else if (!isCancelledRef.current && !saveValue()) {
114
+ setOpen(true);
87
115
  } else {
88
- if (!isCancelledRef.current) {
89
- saveValue();
90
- }
91
116
  setOpen(false);
92
117
  }
93
118
  };
@@ -97,8 +122,10 @@ var TimePicker = function TimePicker(_ref) {
97
122
  setOpen(false);
98
123
  };
99
124
  var handleChoose = function handleChoose() {
100
- saveValue();
101
- setOpen(false);
125
+ var saved = saveValue();
126
+ if (saved) {
127
+ setOpen(false);
128
+ }
102
129
  };
103
130
  return /*#__PURE__*/React__default.createElement(Popover, {
104
131
  open: open,
@@ -111,7 +138,7 @@ var TimePicker = function TimePicker(_ref) {
111
138
  value: displayValue,
112
139
  placeholder: placeholder,
113
140
  disabled: disabled,
114
- errors: errors
141
+ errors: mergedErrors
115
142
  })), /*#__PURE__*/React__default.createElement(TimePickerContent, {
116
143
  hour: tempHour,
117
144
  minute: tempMinute,
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@dreamcommerce/aurora",
3
3
  "packageManager": "yarn@3.2.0",
4
4
  "sideEffects": false,
5
- "version": "3.1.41",
5
+ "version": "3.1.43-1",
6
6
  "description": "aurora",
7
7
  "author": "zefirek",
8
8
  "license": "MIT",