@semcore/time-picker 3.4.36 → 3.4.37

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/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
+ ## [3.4.37] - 2023-03-28
6
+
7
+ ### Added
8
+
9
+ - Added default color (`--intergalactic-text-primary`) to `Separator` component.
10
+
5
11
  ## [3.4.36] - 2023-03-28
6
12
 
7
13
  ### Changed
@@ -51,22 +51,22 @@ var style = (
51
51
  /*__reshadow_css_start__*/
52
52
  _core.sstyled.insert(
53
53
  /*__inner_css_start__*/
54
- ".___STimePicker_h80ot_gg_{position:relative;width:auto}.___STimePicker_h80ot_gg_.__disabled_h80ot_gg_{color:var(--intergalactic-text-secondary, #6c6e79);cursor:default}.___SPickerInput_h80ot_gg_{box-sizing:content-box;text-align:center;z-index:1}.___SPickerInput_h80ot_gg_.__placeholder_h80ot_gg_{text-overflow:initial}.___SPickerInput_h80ot_gg_._size_m_h80ot_gg_{width:19px}.___SPickerInput_h80ot_gg_._size_l_h80ot_gg_{width:21px}.___SPickerFormat_h80ot_gg_{flex-shrink:0;position:relative;display:inline-flex;padding:0;white-space:nowrap;font-family:inherit;font-weight:var(--intergalactic-medium, 500);line-height:normal;text-decoration:none;align-items:center;border:1px solid var(--intergalactic-border-primary, #c4c7cf);border-radius:0 var(--intergalactic-control-rounded, 6px) var(--intergalactic-control-rounded, 6px)0;outline:0;box-shadow:none;cursor:pointer;box-sizing:border-box;overflow:visible;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;color:var(--intergalactic-text-secondary, #6c6e79);background-color:var(--intergalactic-bg-secondary-neutral, #f4f5f9)}@media (hover:hover){.___SPickerFormat_h80ot_gg_:hover{color:var(--intergalactic-text-secondary, #6c6e79);background-color:var(--intergalactic-bg-secondary-neutral-hover, #e0e1e9)}}.___SPickerFormat_h80ot_gg_.__active_h80ot_gg_,.___SPickerFormat_h80ot_gg_:active{color:var(--intergalactic-text-secondary, #6c6e79);background-color:var(--intergalactic-bg-secondary-neutral-active, #c4c7cf)}.___SPickerFormat_h80ot_gg_._size_m_h80ot_gg_{height:var(--intergalactic-form-control-m, 28px);font-size:var(--intergalactic-fs-200, 14px);margin:0-1px 0 0}.___SPickerFormat_h80ot_gg_._size_m_h80ot_gg_ .___SPickerFormatText_h80ot_gg_{margin:0 var(--intergalactic-spacing-2x, 8px)}.___SPickerFormat_h80ot_gg_._size_l_h80ot_gg_{height:var(--intergalactic-form-control-l, 40px);font-size:var(--intergalactic-fs-300, 16px);margin:0 calc(-1*var(--intergalactic-spacing-1x, 4px))0 0}.___SPickerFormat_h80ot_gg_._size_l_h80ot_gg_ .___SPickerFormatText_h80ot_gg_{margin:0 var(--intergalactic-spacing-3x, 12px)}.___SPickerFormat_h80ot_gg_.__disabled_h80ot_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none;border-color:transparent transparent transparent var(--intergalactic-border-primary, #c4c7cf)}.___SPickerFormat_h80ot_gg_.__keyboardFocused_h80ot_gg_{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.3))}.___STimePickerSeparator_h80ot_gg_.__disabled_h80ot_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);pointer-events:none}"
54
+ ".___STimePicker_oe0rf_gg_{position:relative;width:auto}.___STimePicker_oe0rf_gg_.__disabled_oe0rf_gg_{color:var(--intergalactic-text-secondary, #6c6e79);cursor:default}.___SPickerInput_oe0rf_gg_{box-sizing:content-box;text-align:center;z-index:1}.___SPickerInput_oe0rf_gg_.__placeholder_oe0rf_gg_{text-overflow:initial}.___SPickerInput_oe0rf_gg_._size_m_oe0rf_gg_{width:19px}.___SPickerInput_oe0rf_gg_._size_l_oe0rf_gg_{width:21px}.___SPickerFormat_oe0rf_gg_{flex-shrink:0;position:relative;display:inline-flex;padding:0;white-space:nowrap;font-family:inherit;font-weight:var(--intergalactic-medium, 500);line-height:normal;text-decoration:none;align-items:center;border:1px solid var(--intergalactic-border-primary, #c4c7cf);border-radius:0 var(--intergalactic-control-rounded, 6px) var(--intergalactic-control-rounded, 6px)0;outline:0;box-shadow:none;cursor:pointer;box-sizing:border-box;overflow:visible;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;color:var(--intergalactic-text-secondary, #6c6e79);background-color:var(--intergalactic-bg-secondary-neutral, #f4f5f9)}@media (hover:hover){.___SPickerFormat_oe0rf_gg_:hover{color:var(--intergalactic-text-secondary, #6c6e79);background-color:var(--intergalactic-bg-secondary-neutral-hover, #e0e1e9)}}.___SPickerFormat_oe0rf_gg_.__active_oe0rf_gg_,.___SPickerFormat_oe0rf_gg_:active{color:var(--intergalactic-text-secondary, #6c6e79);background-color:var(--intergalactic-bg-secondary-neutral-active, #c4c7cf)}.___SPickerFormat_oe0rf_gg_._size_m_oe0rf_gg_{height:var(--intergalactic-form-control-m, 28px);font-size:var(--intergalactic-fs-200, 14px);margin:0-1px 0 0}.___SPickerFormat_oe0rf_gg_._size_m_oe0rf_gg_ .___SPickerFormatText_oe0rf_gg_{margin:0 var(--intergalactic-spacing-2x, 8px)}.___SPickerFormat_oe0rf_gg_._size_l_oe0rf_gg_{height:var(--intergalactic-form-control-l, 40px);font-size:var(--intergalactic-fs-300, 16px);margin:0 calc(-1*var(--intergalactic-spacing-1x, 4px))0 0}.___SPickerFormat_oe0rf_gg_._size_l_oe0rf_gg_ .___SPickerFormatText_oe0rf_gg_{margin:0 var(--intergalactic-spacing-3x, 12px)}.___SPickerFormat_oe0rf_gg_.__disabled_oe0rf_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none;border-color:transparent transparent transparent var(--intergalactic-border-primary, #c4c7cf)}.___SPickerFormat_oe0rf_gg_.__keyboardFocused_oe0rf_gg_{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.3))}.___STimePickerSeparator_oe0rf_gg_{color:var(--intergalactic-text-primary, #191b23)}.___STimePickerSeparator_oe0rf_gg_.__disabled_oe0rf_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);pointer-events:none}"
55
55
  /*__inner_css_end__*/
56
- , "h80ot_gg_")
56
+ , "oe0rf_gg_")
57
57
  /*__reshadow_css_end__*/
58
58
  , {
59
- "__STimePicker": "___STimePicker_h80ot_gg_",
60
- "_disabled": "__disabled_h80ot_gg_",
61
- "__SPickerInput": "___SPickerInput_h80ot_gg_",
62
- "_placeholder": "__placeholder_h80ot_gg_",
63
- "_size_m": "_size_m_h80ot_gg_",
64
- "_size_l": "_size_l_h80ot_gg_",
65
- "__SPickerFormat": "___SPickerFormat_h80ot_gg_",
66
- "_active": "__active_h80ot_gg_",
67
- "__SPickerFormatText": "___SPickerFormatText_h80ot_gg_",
68
- "_keyboardFocused": "__keyboardFocused_h80ot_gg_",
69
- "__STimePickerSeparator": "___STimePickerSeparator_h80ot_gg_"
59
+ "__STimePicker": "___STimePicker_oe0rf_gg_",
60
+ "_disabled": "__disabled_oe0rf_gg_",
61
+ "__SPickerInput": "___SPickerInput_oe0rf_gg_",
62
+ "_placeholder": "__placeholder_oe0rf_gg_",
63
+ "_size_m": "_size_m_oe0rf_gg_",
64
+ "_size_l": "_size_l_oe0rf_gg_",
65
+ "__SPickerFormat": "___SPickerFormat_oe0rf_gg_",
66
+ "_active": "__active_oe0rf_gg_",
67
+ "__SPickerFormatText": "___SPickerFormatText_oe0rf_gg_",
68
+ "_keyboardFocused": "__keyboardFocused_oe0rf_gg_",
69
+ "__STimePickerSeparator": "___STimePickerSeparator_oe0rf_gg_"
70
70
  });
71
71
  var MAP_MERIDIEM = {
72
72
  AM: 'PM',
@@ -293,7 +293,7 @@ var TimePickerRoot = /*#__PURE__*/function (_Component) {
293
293
  }, {
294
294
  key: "getFormatProps",
295
295
  value: function getFormatProps() {
296
- var _ref4;
296
+ var _ref5;
297
297
 
298
298
  var _this$asProps2 = this.asProps,
299
299
  size = _this$asProps2.size,
@@ -304,11 +304,11 @@ var TimePickerRoot = /*#__PURE__*/function (_Component) {
304
304
  var valueFulfilled = value === null || value === void 0 ? void 0 : value.split(':').every(function (chunk) {
305
305
  return chunk.length > 0;
306
306
  });
307
- return _ref4 = {
307
+ return _ref5 = {
308
308
  size: size,
309
309
  disabled: disabled,
310
310
  disablePortal: disablePortal
311
- }, (0, _defineProperty2["default"])(_ref4, 'aria-hidden', !valueFulfilled), (0, _defineProperty2["default"])(_ref4, "meridiem", this.meridiem), (0, _defineProperty2["default"])(_ref4, "onClick", this.handleMeridiemClick), (0, _defineProperty2["default"])(_ref4, "getI18nText", getI18nText), _ref4;
311
+ }, (0, _defineProperty2["default"])(_ref5, 'aria-hidden', !valueFulfilled), (0, _defineProperty2["default"])(_ref5, "meridiem", this.meridiem), (0, _defineProperty2["default"])(_ref5, "onClick", this.handleMeridiemClick), (0, _defineProperty2["default"])(_ref5, "getI18nText", getI18nText), _ref5;
312
312
  }
313
313
  }, {
314
314
  key: "render",
@@ -340,8 +340,8 @@ var TimePickerRoot = /*#__PURE__*/function (_Component) {
340
340
  (0, _defineProperty2["default"])(TimePickerRoot, "displayName", 'TimePicker');
341
341
  (0, _defineProperty2["default"])(TimePickerRoot, "style", style);
342
342
  (0, _defineProperty2["default"])(TimePickerRoot, "enhance", [(0, _i18nEnhance["default"])(_intergalacticDynamicLocales.localizedMessages)]);
343
- (0, _defineProperty2["default"])(TimePickerRoot, "defaultProps", function (_ref5) {
344
- var is12Hour = _ref5.is12Hour;
343
+ (0, _defineProperty2["default"])(TimePickerRoot, "defaultProps", function (_ref6) {
344
+ var is12Hour = _ref6.is12Hour;
345
345
  return {
346
346
  defaultValue: '',
347
347
  size: 'm',
@@ -379,12 +379,15 @@ var Separator = /*#__PURE__*/function (_Component2) {
379
379
  (0, _createClass2["default"])(Separator, [{
380
380
  key: "render",
381
381
  value: function render() {
382
- var _ref2 = this.asProps;
382
+ var _ref2 = this.asProps,
383
+ _ref4;
384
+
383
385
  var STimePickerSeparator = _flexBox.Box;
384
- return /*#__PURE__*/_react["default"].createElement(STimePickerSeparator, (0, _core.assignProps)({
386
+ var styles = this.asProps.styles;
387
+ return _ref4 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(STimePickerSeparator, _ref4.cn("STimePickerSeparator", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
385
388
  "onClick": this.handlerClick,
386
389
  "aria-hidden": "true"
387
- }, _ref2));
390
+ }, _ref2))));
388
391
  }
389
392
  }]);
390
393
  return Separator;
@@ -1 +1 @@
1
- {"version":3,"file":"TimePicker.js","names":["MAP_MERIDIEM","AM","PM","MAP_FIELD_TO_TIME","hours","minutes","intOrDefault","value","def","number","Number","parseInt","isNaN","withLeadingZero","String","length","meridiemByHours","formatHoursTo12","nHours","NaN","formatHoursTo24","meridiem","TimePickerRoot","React","createRef","field","event","is12Hour","asProps","time","split","timeToValue","handlers","size","disabled","getI18nText","valueToTime","$onValueChange","handleValueChange","minutesInputRef","hoursInputRef","_getI18nText","_getHoursAndMinutesProps","undefined","_lastMeridiem","disablePortal","valueFulfilled","every","chunk","handleMeridiemClick","STimePicker","Input","styles","Children","label","sstyled","Component","style","i18nEnhance","localizedMessages","defaultValue","children","i18n","locale","Separator","current","focus","STimePickerSeparator","Box","handlerClick","TimePicker","createComponent","Hours","Minutes","Format"],"sources":["../../src/TimePicker.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport Input from '@semcore/input';\nimport { Box } from '@semcore/flex-box';\nimport { Hours, Minutes } from './PickerInput';\nimport Format from './PickerFormat';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\n\nimport style from './style/time-picker.shadow.css';\n\nconst MAP_MERIDIEM = {\n AM: 'PM',\n PM: 'AM',\n};\nconst MAP_FIELD_TO_TIME = {\n hours: 0,\n minutes: 1,\n};\n\nexport function intOrDefault(value, def = 0) {\n const number = Number.parseInt(value);\n return Number.isNaN(number) ? def : number;\n}\n\nexport function withLeadingZero(value) {\n value = String(value);\n if (value.length === 1) return `0${value}`;\n return String(value);\n}\n\nexport function meridiemByHours(hours) {\n return hours >= 12 ? 'PM' : 'AM';\n}\n\nexport function formatHoursTo12(hours /* hours by 24 */) {\n const nHours = intOrDefault(hours, NaN); // if not (:00)\n if (Number.isNaN(nHours)) return hours;\n\n // if not (HH:00)\n if (nHours === 0) return 12; // 0 => 12 PM\n if (nHours > 12) return nHours - 12; // 22 => 12 PM\n\n return hours;\n}\n\nexport function formatHoursTo24(hours /* hours by 12 */, meridiem) {\n const nHours = intOrDefault(hours, NaN); // if not (:00)\n\n if (Number.isNaN(nHours)) return hours;\n\n if (meridiem === 'AM') {\n if (nHours === 12) return 0; // 12 AM => 0\n }\n\n if (meridiem === 'PM') {\n if (nHours < 12) return nHours + 12; // 10 PM => 22\n }\n\n return hours;\n}\n\nclass TimePickerRoot extends Component {\n static displayName = 'TimePicker';\n static style = style;\n static enhance = [i18nEnhance(localizedMessages)];\n static defaultProps = ({ is12Hour }) => ({\n defaultValue: '',\n size: 'm',\n children: (\n <>\n <TimePicker.Hours />\n <TimePicker.Separator />\n <TimePicker.Minutes />\n {is12Hour && <TimePicker.Format />}\n </>\n ),\n i18n: localizedMessages,\n locale: 'en',\n });\n\n hoursInputRef = React.createRef();\n minutesInputRef = React.createRef();\n\n _lastMeridiem = 'AM'; // default AM\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n get value() {\n const { value } = this.asProps;\n return value === null || value === undefined ? ':' : value;\n }\n\n get meridiem() {\n const { value } = this.asProps;\n const [hours = ''] = value.split(':');\n\n const nHours = intOrDefault(hours, NaN);\n\n if (!Number.isNaN(nHours)) {\n this._lastMeridiem = meridiemByHours(nHours);\n }\n\n return this._lastMeridiem;\n }\n\n valueToTime(value) {\n const { is12Hour } = this.asProps;\n let [hours = '', minutes = ''] = value.split(':');\n\n if (is12Hour) hours = formatHoursTo12(hours);\n\n hours = withLeadingZero(hours);\n minutes = withLeadingZero(minutes);\n\n return [hours, minutes];\n }\n\n timeToValue(time, meridiem) {\n const { is12Hour } = this.asProps;\n let [hours = '', minutes = ''] = time;\n\n hours = intOrDefault(hours, hours); // 03 => 3\n minutes = intOrDefault(minutes, minutes); // MM => MM\n\n if (is12Hour) hours = formatHoursTo24(hours, meridiem); // 12 PM -> 0\n\n return `${hours}:${minutes}`;\n }\n\n handleValueChange = (value, field, event) => {\n const { is12Hour } = this.asProps;\n const { meridiem } = this;\n\n let time;\n if (field) {\n time = this.value.split(':');\n time[MAP_FIELD_TO_TIME[field]] = value;\n } else {\n time = value.split(':');\n }\n\n let [hours = '', minutes = ''] = time;\n\n if (is12Hour) hours = String(formatHoursTo12(hours));\n\n value = this.timeToValue([hours, minutes], meridiem);\n this.handlers.value(value, event);\n };\n\n handleMeridiemClick = (event) => {\n const { is12Hour } = this.asProps;\n let { value, meridiem } = this;\n let [hours = '', minutes = ''] = value.split(':');\n\n if (is12Hour) hours = String(formatHoursTo12(hours));\n\n value = this.timeToValue([hours, minutes], MAP_MERIDIEM[meridiem]);\n this.handlers.value(value, event);\n };\n\n _getHoursAndMinutesProps = () => {\n const { is12Hour, size, disabled, getI18nText } = this.asProps;\n const time = this.valueToTime(this.value);\n\n return {\n time,\n size,\n is12Hour,\n disabled,\n $onValueChange: this.handleValueChange,\n minutesInputRef: this.minutesInputRef,\n hoursInputRef: this.hoursInputRef,\n _getI18nText: getI18nText,\n };\n };\n\n getHoursProps = this._getHoursAndMinutesProps;\n getMinutesProps = this._getHoursAndMinutesProps;\n\n getSeparatorProps() {\n return {\n disabled: this.asProps.disabled,\n hoursInputRef: this.hoursInputRef,\n };\n }\n\n getFormatProps() {\n const { size, disabled, disablePortal, value, getI18nText } = this.asProps;\n const valueFulfilled = value?.split(':').every((chunk) => chunk.length > 0);\n\n return {\n size,\n disabled,\n disablePortal,\n ['aria-hidden']: !valueFulfilled,\n meridiem: this.meridiem,\n onClick: this.handleMeridiemClick,\n getI18nText,\n };\n }\n\n render() {\n const STimePicker = Root;\n const { styles, Children, value, is12Hour, getI18nText } = this.asProps;\n const label = value\n ? getI18nText('title', { time: value, meridiem: is12Hour ? this.meridiem : '' })\n : getI18nText('titleEmpty');\n\n return sstyled(styles)(\n <STimePicker\n render={Input}\n aria-label={label}\n aria-valuenow={value || undefined}\n tabIndex={0}\n >\n <Children />\n </STimePicker>,\n );\n }\n}\n\nclass Separator extends Component {\n static defaultProps = {\n children: ':',\n };\n\n handlerClick = () => {\n if (this.asProps.hoursInputRef.current) {\n this.asProps.hoursInputRef.current?.focus();\n }\n };\n\n render() {\n const STimePickerSeparator = Root;\n return <STimePickerSeparator render={Box} onClick={this.handlerClick} aria-hidden=\"true\" />;\n }\n}\n\nconst TimePicker = createComponent(TimePickerRoot, {\n Hours,\n Minutes,\n Separator,\n Format,\n});\n\nexport default TimePicker;\n"],"mappings":"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"}
1
+ {"version":3,"file":"TimePicker.js","names":["MAP_MERIDIEM","AM","PM","MAP_FIELD_TO_TIME","hours","minutes","intOrDefault","value","def","number","Number","parseInt","isNaN","withLeadingZero","String","length","meridiemByHours","formatHoursTo12","nHours","NaN","formatHoursTo24","meridiem","TimePickerRoot","React","createRef","field","event","is12Hour","asProps","time","split","timeToValue","handlers","size","disabled","getI18nText","valueToTime","$onValueChange","handleValueChange","minutesInputRef","hoursInputRef","_getI18nText","_getHoursAndMinutesProps","undefined","_lastMeridiem","disablePortal","valueFulfilled","every","chunk","handleMeridiemClick","STimePicker","Input","styles","Children","label","sstyled","Component","style","i18nEnhance","localizedMessages","defaultValue","children","i18n","locale","Separator","current","focus","STimePickerSeparator","Box","handlerClick","TimePicker","createComponent","Hours","Minutes","Format"],"sources":["../../src/TimePicker.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport Input from '@semcore/input';\nimport { Box } from '@semcore/flex-box';\nimport { Hours, Minutes } from './PickerInput';\nimport Format from './PickerFormat';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\n\nimport style from './style/time-picker.shadow.css';\n\nconst MAP_MERIDIEM = {\n AM: 'PM',\n PM: 'AM',\n};\nconst MAP_FIELD_TO_TIME = {\n hours: 0,\n minutes: 1,\n};\n\nexport function intOrDefault(value, def = 0) {\n const number = Number.parseInt(value);\n return Number.isNaN(number) ? def : number;\n}\n\nexport function withLeadingZero(value) {\n value = String(value);\n if (value.length === 1) return `0${value}`;\n return String(value);\n}\n\nexport function meridiemByHours(hours) {\n return hours >= 12 ? 'PM' : 'AM';\n}\n\nexport function formatHoursTo12(hours /* hours by 24 */) {\n const nHours = intOrDefault(hours, NaN); // if not (:00)\n if (Number.isNaN(nHours)) return hours;\n\n // if not (HH:00)\n if (nHours === 0) return 12; // 0 => 12 PM\n if (nHours > 12) return nHours - 12; // 22 => 12 PM\n\n return hours;\n}\n\nexport function formatHoursTo24(hours /* hours by 12 */, meridiem) {\n const nHours = intOrDefault(hours, NaN); // if not (:00)\n\n if (Number.isNaN(nHours)) return hours;\n\n if (meridiem === 'AM') {\n if (nHours === 12) return 0; // 12 AM => 0\n }\n\n if (meridiem === 'PM') {\n if (nHours < 12) return nHours + 12; // 10 PM => 22\n }\n\n return hours;\n}\n\nclass TimePickerRoot extends Component {\n static displayName = 'TimePicker';\n static style = style;\n static enhance = [i18nEnhance(localizedMessages)];\n static defaultProps = ({ is12Hour }) => ({\n defaultValue: '',\n size: 'm',\n children: (\n <>\n <TimePicker.Hours />\n <TimePicker.Separator />\n <TimePicker.Minutes />\n {is12Hour && <TimePicker.Format />}\n </>\n ),\n i18n: localizedMessages,\n locale: 'en',\n });\n\n hoursInputRef = React.createRef();\n minutesInputRef = React.createRef();\n\n _lastMeridiem = 'AM'; // default AM\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n get value() {\n const { value } = this.asProps;\n return value === null || value === undefined ? ':' : value;\n }\n\n get meridiem() {\n const { value } = this.asProps;\n const [hours = ''] = value.split(':');\n\n const nHours = intOrDefault(hours, NaN);\n\n if (!Number.isNaN(nHours)) {\n this._lastMeridiem = meridiemByHours(nHours);\n }\n\n return this._lastMeridiem;\n }\n\n valueToTime(value) {\n const { is12Hour } = this.asProps;\n let [hours = '', minutes = ''] = value.split(':');\n\n if (is12Hour) hours = formatHoursTo12(hours);\n\n hours = withLeadingZero(hours);\n minutes = withLeadingZero(minutes);\n\n return [hours, minutes];\n }\n\n timeToValue(time, meridiem) {\n const { is12Hour } = this.asProps;\n let [hours = '', minutes = ''] = time;\n\n hours = intOrDefault(hours, hours); // 03 => 3\n minutes = intOrDefault(minutes, minutes); // MM => MM\n\n if (is12Hour) hours = formatHoursTo24(hours, meridiem); // 12 PM -> 0\n\n return `${hours}:${minutes}`;\n }\n\n handleValueChange = (value, field, event) => {\n const { is12Hour } = this.asProps;\n const { meridiem } = this;\n\n let time;\n if (field) {\n time = this.value.split(':');\n time[MAP_FIELD_TO_TIME[field]] = value;\n } else {\n time = value.split(':');\n }\n\n let [hours = '', minutes = ''] = time;\n\n if (is12Hour) hours = String(formatHoursTo12(hours));\n\n value = this.timeToValue([hours, minutes], meridiem);\n this.handlers.value(value, event);\n };\n\n handleMeridiemClick = (event) => {\n const { is12Hour } = this.asProps;\n let { value, meridiem } = this;\n let [hours = '', minutes = ''] = value.split(':');\n\n if (is12Hour) hours = String(formatHoursTo12(hours));\n\n value = this.timeToValue([hours, minutes], MAP_MERIDIEM[meridiem]);\n this.handlers.value(value, event);\n };\n\n _getHoursAndMinutesProps = () => {\n const { is12Hour, size, disabled, getI18nText } = this.asProps;\n const time = this.valueToTime(this.value);\n\n return {\n time,\n size,\n is12Hour,\n disabled,\n $onValueChange: this.handleValueChange,\n minutesInputRef: this.minutesInputRef,\n hoursInputRef: this.hoursInputRef,\n _getI18nText: getI18nText,\n };\n };\n\n getHoursProps = this._getHoursAndMinutesProps;\n getMinutesProps = this._getHoursAndMinutesProps;\n\n getSeparatorProps() {\n return {\n disabled: this.asProps.disabled,\n hoursInputRef: this.hoursInputRef,\n };\n }\n\n getFormatProps() {\n const { size, disabled, disablePortal, value, getI18nText } = this.asProps;\n const valueFulfilled = value?.split(':').every((chunk) => chunk.length > 0);\n\n return {\n size,\n disabled,\n disablePortal,\n ['aria-hidden']: !valueFulfilled,\n meridiem: this.meridiem,\n onClick: this.handleMeridiemClick,\n getI18nText,\n };\n }\n\n render() {\n const STimePicker = Root;\n const { styles, Children, value, is12Hour, getI18nText } = this.asProps;\n const label = value\n ? getI18nText('title', { time: value, meridiem: is12Hour ? this.meridiem : '' })\n : getI18nText('titleEmpty');\n\n return sstyled(styles)(\n <STimePicker\n render={Input}\n aria-label={label}\n aria-valuenow={value || undefined}\n tabIndex={0}\n >\n <Children />\n </STimePicker>,\n );\n }\n}\n\nclass Separator extends Component {\n static defaultProps = {\n children: ':',\n };\n\n handlerClick = () => {\n if (this.asProps.hoursInputRef.current) {\n this.asProps.hoursInputRef.current?.focus();\n }\n };\n\n render() {\n const STimePickerSeparator = Root;\n const { styles } = this.asProps;\n\n return sstyled(styles)(\n <STimePickerSeparator render={Box} onClick={this.handlerClick} aria-hidden=\"true\" />,\n );\n }\n}\n\nconst TimePicker = createComponent(TimePickerRoot, {\n Hours,\n Minutes,\n Separator,\n Format,\n});\n\nexport default TimePicker;\n"],"mappings":"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"}
@@ -93,6 +93,10 @@ SPickerFormat[keyboardFocused] {
93
93
  box-shadow: var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.3));
94
94
  }
95
95
 
96
+ STimePickerSeparator {
97
+ color: var(--intergalactic-text-primary, #191b23);
98
+ }
99
+
96
100
  STimePickerSeparator[disabled] {
97
101
  opacity: var(--intergalactic-disabled-opacity, 0.3);
98
102
  pointer-events: none;
@@ -23,22 +23,22 @@ var style = (
23
23
  /*__reshadow_css_start__*/
24
24
  _sstyled.insert(
25
25
  /*__inner_css_start__*/
26
- ".___STimePicker_h80ot_gg_{position:relative;width:auto}.___STimePicker_h80ot_gg_.__disabled_h80ot_gg_{color:var(--intergalactic-text-secondary, #6c6e79);cursor:default}.___SPickerInput_h80ot_gg_{box-sizing:content-box;text-align:center;z-index:1}.___SPickerInput_h80ot_gg_.__placeholder_h80ot_gg_{text-overflow:initial}.___SPickerInput_h80ot_gg_._size_m_h80ot_gg_{width:19px}.___SPickerInput_h80ot_gg_._size_l_h80ot_gg_{width:21px}.___SPickerFormat_h80ot_gg_{flex-shrink:0;position:relative;display:inline-flex;padding:0;white-space:nowrap;font-family:inherit;font-weight:var(--intergalactic-medium, 500);line-height:normal;text-decoration:none;align-items:center;border:1px solid var(--intergalactic-border-primary, #c4c7cf);border-radius:0 var(--intergalactic-control-rounded, 6px) var(--intergalactic-control-rounded, 6px)0;outline:0;box-shadow:none;cursor:pointer;box-sizing:border-box;overflow:visible;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;color:var(--intergalactic-text-secondary, #6c6e79);background-color:var(--intergalactic-bg-secondary-neutral, #f4f5f9)}@media (hover:hover){.___SPickerFormat_h80ot_gg_:hover{color:var(--intergalactic-text-secondary, #6c6e79);background-color:var(--intergalactic-bg-secondary-neutral-hover, #e0e1e9)}}.___SPickerFormat_h80ot_gg_.__active_h80ot_gg_,.___SPickerFormat_h80ot_gg_:active{color:var(--intergalactic-text-secondary, #6c6e79);background-color:var(--intergalactic-bg-secondary-neutral-active, #c4c7cf)}.___SPickerFormat_h80ot_gg_._size_m_h80ot_gg_{height:var(--intergalactic-form-control-m, 28px);font-size:var(--intergalactic-fs-200, 14px);margin:0-1px 0 0}.___SPickerFormat_h80ot_gg_._size_m_h80ot_gg_ .___SPickerFormatText_h80ot_gg_{margin:0 var(--intergalactic-spacing-2x, 8px)}.___SPickerFormat_h80ot_gg_._size_l_h80ot_gg_{height:var(--intergalactic-form-control-l, 40px);font-size:var(--intergalactic-fs-300, 16px);margin:0 calc(-1*var(--intergalactic-spacing-1x, 4px))0 0}.___SPickerFormat_h80ot_gg_._size_l_h80ot_gg_ .___SPickerFormatText_h80ot_gg_{margin:0 var(--intergalactic-spacing-3x, 12px)}.___SPickerFormat_h80ot_gg_.__disabled_h80ot_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none;border-color:transparent transparent transparent var(--intergalactic-border-primary, #c4c7cf)}.___SPickerFormat_h80ot_gg_.__keyboardFocused_h80ot_gg_{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.3))}.___STimePickerSeparator_h80ot_gg_.__disabled_h80ot_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);pointer-events:none}"
26
+ ".___STimePicker_oe0rf_gg_{position:relative;width:auto}.___STimePicker_oe0rf_gg_.__disabled_oe0rf_gg_{color:var(--intergalactic-text-secondary, #6c6e79);cursor:default}.___SPickerInput_oe0rf_gg_{box-sizing:content-box;text-align:center;z-index:1}.___SPickerInput_oe0rf_gg_.__placeholder_oe0rf_gg_{text-overflow:initial}.___SPickerInput_oe0rf_gg_._size_m_oe0rf_gg_{width:19px}.___SPickerInput_oe0rf_gg_._size_l_oe0rf_gg_{width:21px}.___SPickerFormat_oe0rf_gg_{flex-shrink:0;position:relative;display:inline-flex;padding:0;white-space:nowrap;font-family:inherit;font-weight:var(--intergalactic-medium, 500);line-height:normal;text-decoration:none;align-items:center;border:1px solid var(--intergalactic-border-primary, #c4c7cf);border-radius:0 var(--intergalactic-control-rounded, 6px) var(--intergalactic-control-rounded, 6px)0;outline:0;box-shadow:none;cursor:pointer;box-sizing:border-box;overflow:visible;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;color:var(--intergalactic-text-secondary, #6c6e79);background-color:var(--intergalactic-bg-secondary-neutral, #f4f5f9)}@media (hover:hover){.___SPickerFormat_oe0rf_gg_:hover{color:var(--intergalactic-text-secondary, #6c6e79);background-color:var(--intergalactic-bg-secondary-neutral-hover, #e0e1e9)}}.___SPickerFormat_oe0rf_gg_.__active_oe0rf_gg_,.___SPickerFormat_oe0rf_gg_:active{color:var(--intergalactic-text-secondary, #6c6e79);background-color:var(--intergalactic-bg-secondary-neutral-active, #c4c7cf)}.___SPickerFormat_oe0rf_gg_._size_m_oe0rf_gg_{height:var(--intergalactic-form-control-m, 28px);font-size:var(--intergalactic-fs-200, 14px);margin:0-1px 0 0}.___SPickerFormat_oe0rf_gg_._size_m_oe0rf_gg_ .___SPickerFormatText_oe0rf_gg_{margin:0 var(--intergalactic-spacing-2x, 8px)}.___SPickerFormat_oe0rf_gg_._size_l_oe0rf_gg_{height:var(--intergalactic-form-control-l, 40px);font-size:var(--intergalactic-fs-300, 16px);margin:0 calc(-1*var(--intergalactic-spacing-1x, 4px))0 0}.___SPickerFormat_oe0rf_gg_._size_l_oe0rf_gg_ .___SPickerFormatText_oe0rf_gg_{margin:0 var(--intergalactic-spacing-3x, 12px)}.___SPickerFormat_oe0rf_gg_.__disabled_oe0rf_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none;border-color:transparent transparent transparent var(--intergalactic-border-primary, #c4c7cf)}.___SPickerFormat_oe0rf_gg_.__keyboardFocused_oe0rf_gg_{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.3))}.___STimePickerSeparator_oe0rf_gg_{color:var(--intergalactic-text-primary, #191b23)}.___STimePickerSeparator_oe0rf_gg_.__disabled_oe0rf_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);pointer-events:none}"
27
27
  /*__inner_css_end__*/
28
- , "h80ot_gg_")
28
+ , "oe0rf_gg_")
29
29
  /*__reshadow_css_end__*/
30
30
  , {
31
- "__STimePicker": "___STimePicker_h80ot_gg_",
32
- "_disabled": "__disabled_h80ot_gg_",
33
- "__SPickerInput": "___SPickerInput_h80ot_gg_",
34
- "_placeholder": "__placeholder_h80ot_gg_",
35
- "_size_m": "_size_m_h80ot_gg_",
36
- "_size_l": "_size_l_h80ot_gg_",
37
- "__SPickerFormat": "___SPickerFormat_h80ot_gg_",
38
- "_active": "__active_h80ot_gg_",
39
- "__SPickerFormatText": "___SPickerFormatText_h80ot_gg_",
40
- "_keyboardFocused": "__keyboardFocused_h80ot_gg_",
41
- "__STimePickerSeparator": "___STimePickerSeparator_h80ot_gg_"
31
+ "__STimePicker": "___STimePicker_oe0rf_gg_",
32
+ "_disabled": "__disabled_oe0rf_gg_",
33
+ "__SPickerInput": "___SPickerInput_oe0rf_gg_",
34
+ "_placeholder": "__placeholder_oe0rf_gg_",
35
+ "_size_m": "_size_m_oe0rf_gg_",
36
+ "_size_l": "_size_l_oe0rf_gg_",
37
+ "__SPickerFormat": "___SPickerFormat_oe0rf_gg_",
38
+ "_active": "__active_oe0rf_gg_",
39
+ "__SPickerFormatText": "___SPickerFormatText_oe0rf_gg_",
40
+ "_keyboardFocused": "__keyboardFocused_oe0rf_gg_",
41
+ "__STimePickerSeparator": "___STimePickerSeparator_oe0rf_gg_"
42
42
  });
43
43
  var MAP_MERIDIEM = {
44
44
  AM: 'PM',
@@ -269,7 +269,7 @@ var TimePickerRoot = /*#__PURE__*/function (_Component) {
269
269
  }, {
270
270
  key: "getFormatProps",
271
271
  value: function getFormatProps() {
272
- var _ref4;
272
+ var _ref5;
273
273
 
274
274
  var _this$asProps2 = this.asProps,
275
275
  size = _this$asProps2.size,
@@ -280,11 +280,11 @@ var TimePickerRoot = /*#__PURE__*/function (_Component) {
280
280
  var valueFulfilled = value === null || value === void 0 ? void 0 : value.split(':').every(function (chunk) {
281
281
  return chunk.length > 0;
282
282
  });
283
- return _ref4 = {
283
+ return _ref5 = {
284
284
  size: size,
285
285
  disabled: disabled,
286
286
  disablePortal: disablePortal
287
- }, _defineProperty(_ref4, 'aria-hidden', !valueFulfilled), _defineProperty(_ref4, "meridiem", this.meridiem), _defineProperty(_ref4, "onClick", this.handleMeridiemClick), _defineProperty(_ref4, "getI18nText", getI18nText), _ref4;
287
+ }, _defineProperty(_ref5, 'aria-hidden', !valueFulfilled), _defineProperty(_ref5, "meridiem", this.meridiem), _defineProperty(_ref5, "onClick", this.handleMeridiemClick), _defineProperty(_ref5, "getI18nText", getI18nText), _ref5;
288
288
  }
289
289
  }, {
290
290
  key: "render",
@@ -320,8 +320,8 @@ _defineProperty(TimePickerRoot, "style", style);
320
320
 
321
321
  _defineProperty(TimePickerRoot, "enhance", [i18nEnhance(localizedMessages)]);
322
322
 
323
- _defineProperty(TimePickerRoot, "defaultProps", function (_ref5) {
324
- var is12Hour = _ref5.is12Hour;
323
+ _defineProperty(TimePickerRoot, "defaultProps", function (_ref6) {
324
+ var is12Hour = _ref6.is12Hour;
325
325
  return {
326
326
  defaultValue: '',
327
327
  size: 'm',
@@ -361,12 +361,15 @@ var Separator = /*#__PURE__*/function (_Component2) {
361
361
  _createClass(Separator, [{
362
362
  key: "render",
363
363
  value: function render() {
364
- var _ref2 = this.asProps;
364
+ var _ref2 = this.asProps,
365
+ _ref4;
366
+
365
367
  var STimePickerSeparator = Box;
366
- return /*#__PURE__*/React.createElement(STimePickerSeparator, _assignProps2({
368
+ var styles = this.asProps.styles;
369
+ return _ref4 = sstyled(styles), /*#__PURE__*/React.createElement(STimePickerSeparator, _ref4.cn("STimePickerSeparator", _objectSpread({}, _assignProps2({
367
370
  "onClick": this.handlerClick,
368
371
  "aria-hidden": "true"
369
- }, _ref2));
372
+ }, _ref2))));
370
373
  }
371
374
  }]);
372
375
 
@@ -1 +1 @@
1
- {"version":3,"file":"TimePicker.js","names":["React","createComponent","Component","sstyled","Root","Input","Box","Hours","Minutes","Format","localizedMessages","i18nEnhance","MAP_MERIDIEM","AM","PM","MAP_FIELD_TO_TIME","hours","minutes","intOrDefault","value","def","number","Number","parseInt","isNaN","withLeadingZero","String","length","meridiemByHours","formatHoursTo12","nHours","NaN","formatHoursTo24","meridiem","TimePickerRoot","createRef","field","event","is12Hour","asProps","time","split","timeToValue","handlers","size","disabled","getI18nText","valueToTime","$onValueChange","handleValueChange","minutesInputRef","hoursInputRef","_getI18nText","_getHoursAndMinutesProps","undefined","_lastMeridiem","disablePortal","valueFulfilled","every","chunk","handleMeridiemClick","STimePicker","styles","Children","label","style","defaultValue","children","i18n","locale","Separator","current","focus","STimePickerSeparator","handlerClick","TimePicker"],"sources":["../../src/TimePicker.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport Input from '@semcore/input';\nimport { Box } from '@semcore/flex-box';\nimport { Hours, Minutes } from './PickerInput';\nimport Format from './PickerFormat';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\n\nimport style from './style/time-picker.shadow.css';\n\nconst MAP_MERIDIEM = {\n AM: 'PM',\n PM: 'AM',\n};\nconst MAP_FIELD_TO_TIME = {\n hours: 0,\n minutes: 1,\n};\n\nexport function intOrDefault(value, def = 0) {\n const number = Number.parseInt(value);\n return Number.isNaN(number) ? def : number;\n}\n\nexport function withLeadingZero(value) {\n value = String(value);\n if (value.length === 1) return `0${value}`;\n return String(value);\n}\n\nexport function meridiemByHours(hours) {\n return hours >= 12 ? 'PM' : 'AM';\n}\n\nexport function formatHoursTo12(hours /* hours by 24 */) {\n const nHours = intOrDefault(hours, NaN); // if not (:00)\n if (Number.isNaN(nHours)) return hours;\n\n // if not (HH:00)\n if (nHours === 0) return 12; // 0 => 12 PM\n if (nHours > 12) return nHours - 12; // 22 => 12 PM\n\n return hours;\n}\n\nexport function formatHoursTo24(hours /* hours by 12 */, meridiem) {\n const nHours = intOrDefault(hours, NaN); // if not (:00)\n\n if (Number.isNaN(nHours)) return hours;\n\n if (meridiem === 'AM') {\n if (nHours === 12) return 0; // 12 AM => 0\n }\n\n if (meridiem === 'PM') {\n if (nHours < 12) return nHours + 12; // 10 PM => 22\n }\n\n return hours;\n}\n\nclass TimePickerRoot extends Component {\n static displayName = 'TimePicker';\n static style = style;\n static enhance = [i18nEnhance(localizedMessages)];\n static defaultProps = ({ is12Hour }) => ({\n defaultValue: '',\n size: 'm',\n children: (\n <>\n <TimePicker.Hours />\n <TimePicker.Separator />\n <TimePicker.Minutes />\n {is12Hour && <TimePicker.Format />}\n </>\n ),\n i18n: localizedMessages,\n locale: 'en',\n });\n\n hoursInputRef = React.createRef();\n minutesInputRef = React.createRef();\n\n _lastMeridiem = 'AM'; // default AM\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n get value() {\n const { value } = this.asProps;\n return value === null || value === undefined ? ':' : value;\n }\n\n get meridiem() {\n const { value } = this.asProps;\n const [hours = ''] = value.split(':');\n\n const nHours = intOrDefault(hours, NaN);\n\n if (!Number.isNaN(nHours)) {\n this._lastMeridiem = meridiemByHours(nHours);\n }\n\n return this._lastMeridiem;\n }\n\n valueToTime(value) {\n const { is12Hour } = this.asProps;\n let [hours = '', minutes = ''] = value.split(':');\n\n if (is12Hour) hours = formatHoursTo12(hours);\n\n hours = withLeadingZero(hours);\n minutes = withLeadingZero(minutes);\n\n return [hours, minutes];\n }\n\n timeToValue(time, meridiem) {\n const { is12Hour } = this.asProps;\n let [hours = '', minutes = ''] = time;\n\n hours = intOrDefault(hours, hours); // 03 => 3\n minutes = intOrDefault(minutes, minutes); // MM => MM\n\n if (is12Hour) hours = formatHoursTo24(hours, meridiem); // 12 PM -> 0\n\n return `${hours}:${minutes}`;\n }\n\n handleValueChange = (value, field, event) => {\n const { is12Hour } = this.asProps;\n const { meridiem } = this;\n\n let time;\n if (field) {\n time = this.value.split(':');\n time[MAP_FIELD_TO_TIME[field]] = value;\n } else {\n time = value.split(':');\n }\n\n let [hours = '', minutes = ''] = time;\n\n if (is12Hour) hours = String(formatHoursTo12(hours));\n\n value = this.timeToValue([hours, minutes], meridiem);\n this.handlers.value(value, event);\n };\n\n handleMeridiemClick = (event) => {\n const { is12Hour } = this.asProps;\n let { value, meridiem } = this;\n let [hours = '', minutes = ''] = value.split(':');\n\n if (is12Hour) hours = String(formatHoursTo12(hours));\n\n value = this.timeToValue([hours, minutes], MAP_MERIDIEM[meridiem]);\n this.handlers.value(value, event);\n };\n\n _getHoursAndMinutesProps = () => {\n const { is12Hour, size, disabled, getI18nText } = this.asProps;\n const time = this.valueToTime(this.value);\n\n return {\n time,\n size,\n is12Hour,\n disabled,\n $onValueChange: this.handleValueChange,\n minutesInputRef: this.minutesInputRef,\n hoursInputRef: this.hoursInputRef,\n _getI18nText: getI18nText,\n };\n };\n\n getHoursProps = this._getHoursAndMinutesProps;\n getMinutesProps = this._getHoursAndMinutesProps;\n\n getSeparatorProps() {\n return {\n disabled: this.asProps.disabled,\n hoursInputRef: this.hoursInputRef,\n };\n }\n\n getFormatProps() {\n const { size, disabled, disablePortal, value, getI18nText } = this.asProps;\n const valueFulfilled = value?.split(':').every((chunk) => chunk.length > 0);\n\n return {\n size,\n disabled,\n disablePortal,\n ['aria-hidden']: !valueFulfilled,\n meridiem: this.meridiem,\n onClick: this.handleMeridiemClick,\n getI18nText,\n };\n }\n\n render() {\n const STimePicker = Root;\n const { styles, Children, value, is12Hour, getI18nText } = this.asProps;\n const label = value\n ? getI18nText('title', { time: value, meridiem: is12Hour ? this.meridiem : '' })\n : getI18nText('titleEmpty');\n\n return sstyled(styles)(\n <STimePicker\n render={Input}\n aria-label={label}\n aria-valuenow={value || undefined}\n tabIndex={0}\n >\n <Children />\n </STimePicker>,\n );\n }\n}\n\nclass Separator extends Component {\n static defaultProps = {\n children: ':',\n };\n\n handlerClick = () => {\n if (this.asProps.hoursInputRef.current) {\n this.asProps.hoursInputRef.current?.focus();\n }\n };\n\n render() {\n const STimePickerSeparator = Root;\n return <STimePickerSeparator render={Box} onClick={this.handlerClick} aria-hidden=\"true\" />;\n }\n}\n\nconst TimePicker = createComponent(TimePickerRoot, {\n Hours,\n Minutes,\n Separator,\n Format,\n});\n\nexport default TimePicker;\n"],"mappings":"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"}
1
+ {"version":3,"file":"TimePicker.js","names":["React","createComponent","Component","sstyled","Root","Input","Box","Hours","Minutes","Format","localizedMessages","i18nEnhance","MAP_MERIDIEM","AM","PM","MAP_FIELD_TO_TIME","hours","minutes","intOrDefault","value","def","number","Number","parseInt","isNaN","withLeadingZero","String","length","meridiemByHours","formatHoursTo12","nHours","NaN","formatHoursTo24","meridiem","TimePickerRoot","createRef","field","event","is12Hour","asProps","time","split","timeToValue","handlers","size","disabled","getI18nText","valueToTime","$onValueChange","handleValueChange","minutesInputRef","hoursInputRef","_getI18nText","_getHoursAndMinutesProps","undefined","_lastMeridiem","disablePortal","valueFulfilled","every","chunk","handleMeridiemClick","STimePicker","styles","Children","label","style","defaultValue","children","i18n","locale","Separator","current","focus","STimePickerSeparator","handlerClick","TimePicker"],"sources":["../../src/TimePicker.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport Input from '@semcore/input';\nimport { Box } from '@semcore/flex-box';\nimport { Hours, Minutes } from './PickerInput';\nimport Format from './PickerFormat';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\n\nimport style from './style/time-picker.shadow.css';\n\nconst MAP_MERIDIEM = {\n AM: 'PM',\n PM: 'AM',\n};\nconst MAP_FIELD_TO_TIME = {\n hours: 0,\n minutes: 1,\n};\n\nexport function intOrDefault(value, def = 0) {\n const number = Number.parseInt(value);\n return Number.isNaN(number) ? def : number;\n}\n\nexport function withLeadingZero(value) {\n value = String(value);\n if (value.length === 1) return `0${value}`;\n return String(value);\n}\n\nexport function meridiemByHours(hours) {\n return hours >= 12 ? 'PM' : 'AM';\n}\n\nexport function formatHoursTo12(hours /* hours by 24 */) {\n const nHours = intOrDefault(hours, NaN); // if not (:00)\n if (Number.isNaN(nHours)) return hours;\n\n // if not (HH:00)\n if (nHours === 0) return 12; // 0 => 12 PM\n if (nHours > 12) return nHours - 12; // 22 => 12 PM\n\n return hours;\n}\n\nexport function formatHoursTo24(hours /* hours by 12 */, meridiem) {\n const nHours = intOrDefault(hours, NaN); // if not (:00)\n\n if (Number.isNaN(nHours)) return hours;\n\n if (meridiem === 'AM') {\n if (nHours === 12) return 0; // 12 AM => 0\n }\n\n if (meridiem === 'PM') {\n if (nHours < 12) return nHours + 12; // 10 PM => 22\n }\n\n return hours;\n}\n\nclass TimePickerRoot extends Component {\n static displayName = 'TimePicker';\n static style = style;\n static enhance = [i18nEnhance(localizedMessages)];\n static defaultProps = ({ is12Hour }) => ({\n defaultValue: '',\n size: 'm',\n children: (\n <>\n <TimePicker.Hours />\n <TimePicker.Separator />\n <TimePicker.Minutes />\n {is12Hour && <TimePicker.Format />}\n </>\n ),\n i18n: localizedMessages,\n locale: 'en',\n });\n\n hoursInputRef = React.createRef();\n minutesInputRef = React.createRef();\n\n _lastMeridiem = 'AM'; // default AM\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n get value() {\n const { value } = this.asProps;\n return value === null || value === undefined ? ':' : value;\n }\n\n get meridiem() {\n const { value } = this.asProps;\n const [hours = ''] = value.split(':');\n\n const nHours = intOrDefault(hours, NaN);\n\n if (!Number.isNaN(nHours)) {\n this._lastMeridiem = meridiemByHours(nHours);\n }\n\n return this._lastMeridiem;\n }\n\n valueToTime(value) {\n const { is12Hour } = this.asProps;\n let [hours = '', minutes = ''] = value.split(':');\n\n if (is12Hour) hours = formatHoursTo12(hours);\n\n hours = withLeadingZero(hours);\n minutes = withLeadingZero(minutes);\n\n return [hours, minutes];\n }\n\n timeToValue(time, meridiem) {\n const { is12Hour } = this.asProps;\n let [hours = '', minutes = ''] = time;\n\n hours = intOrDefault(hours, hours); // 03 => 3\n minutes = intOrDefault(minutes, minutes); // MM => MM\n\n if (is12Hour) hours = formatHoursTo24(hours, meridiem); // 12 PM -> 0\n\n return `${hours}:${minutes}`;\n }\n\n handleValueChange = (value, field, event) => {\n const { is12Hour } = this.asProps;\n const { meridiem } = this;\n\n let time;\n if (field) {\n time = this.value.split(':');\n time[MAP_FIELD_TO_TIME[field]] = value;\n } else {\n time = value.split(':');\n }\n\n let [hours = '', minutes = ''] = time;\n\n if (is12Hour) hours = String(formatHoursTo12(hours));\n\n value = this.timeToValue([hours, minutes], meridiem);\n this.handlers.value(value, event);\n };\n\n handleMeridiemClick = (event) => {\n const { is12Hour } = this.asProps;\n let { value, meridiem } = this;\n let [hours = '', minutes = ''] = value.split(':');\n\n if (is12Hour) hours = String(formatHoursTo12(hours));\n\n value = this.timeToValue([hours, minutes], MAP_MERIDIEM[meridiem]);\n this.handlers.value(value, event);\n };\n\n _getHoursAndMinutesProps = () => {\n const { is12Hour, size, disabled, getI18nText } = this.asProps;\n const time = this.valueToTime(this.value);\n\n return {\n time,\n size,\n is12Hour,\n disabled,\n $onValueChange: this.handleValueChange,\n minutesInputRef: this.minutesInputRef,\n hoursInputRef: this.hoursInputRef,\n _getI18nText: getI18nText,\n };\n };\n\n getHoursProps = this._getHoursAndMinutesProps;\n getMinutesProps = this._getHoursAndMinutesProps;\n\n getSeparatorProps() {\n return {\n disabled: this.asProps.disabled,\n hoursInputRef: this.hoursInputRef,\n };\n }\n\n getFormatProps() {\n const { size, disabled, disablePortal, value, getI18nText } = this.asProps;\n const valueFulfilled = value?.split(':').every((chunk) => chunk.length > 0);\n\n return {\n size,\n disabled,\n disablePortal,\n ['aria-hidden']: !valueFulfilled,\n meridiem: this.meridiem,\n onClick: this.handleMeridiemClick,\n getI18nText,\n };\n }\n\n render() {\n const STimePicker = Root;\n const { styles, Children, value, is12Hour, getI18nText } = this.asProps;\n const label = value\n ? getI18nText('title', { time: value, meridiem: is12Hour ? this.meridiem : '' })\n : getI18nText('titleEmpty');\n\n return sstyled(styles)(\n <STimePicker\n render={Input}\n aria-label={label}\n aria-valuenow={value || undefined}\n tabIndex={0}\n >\n <Children />\n </STimePicker>,\n );\n }\n}\n\nclass Separator extends Component {\n static defaultProps = {\n children: ':',\n };\n\n handlerClick = () => {\n if (this.asProps.hoursInputRef.current) {\n this.asProps.hoursInputRef.current?.focus();\n }\n };\n\n render() {\n const STimePickerSeparator = Root;\n const { styles } = this.asProps;\n\n return sstyled(styles)(\n <STimePickerSeparator render={Box} onClick={this.handlerClick} aria-hidden=\"true\" />,\n );\n }\n}\n\nconst TimePicker = createComponent(TimePickerRoot, {\n Hours,\n Minutes,\n Separator,\n Format,\n});\n\nexport default TimePicker;\n"],"mappings":"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"}
@@ -93,6 +93,10 @@ SPickerFormat[keyboardFocused] {
93
93
  box-shadow: var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.3));
94
94
  }
95
95
 
96
+ STimePickerSeparator {
97
+ color: var(--intergalactic-text-primary, #191b23);
98
+ }
99
+
96
100
  STimePickerSeparator[disabled] {
97
101
  opacity: var(--intergalactic-disabled-opacity, 0.3);
98
102
  pointer-events: none;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/time-picker",
3
3
  "description": "Semrush TimePicker Component",
4
- "version": "3.4.36",
4
+ "version": "3.4.37",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "typings": "lib/types/index.d.ts",