@semcore/time-picker 16.1.14-prerelease.9 → 16.2.0-prerelease.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 (85) hide show
  1. package/CHANGELOG.md +3 -4
  2. package/lib/cjs/PickerFormat.js +81 -0
  3. package/lib/cjs/PickerFormat.js.map +1 -0
  4. package/lib/cjs/PickerInput.js +286 -0
  5. package/lib/cjs/PickerInput.js.map +1 -0
  6. package/lib/cjs/TimePicker.js +348 -0
  7. package/lib/cjs/TimePicker.js.map +1 -0
  8. package/lib/cjs/index.d.js +2 -0
  9. package/lib/cjs/index.d.js.map +1 -0
  10. package/lib/cjs/index.js +8 -9
  11. package/lib/cjs/index.js.map +1 -1
  12. package/lib/cjs/style/time-picker.shadow.css +116 -0
  13. package/lib/cjs/translations/__intergalactic-dynamic-locales.js +16 -16
  14. package/lib/cjs/translations/__intergalactic-dynamic-locales.js.map +1 -1
  15. package/lib/es6/PickerFormat.js +75 -0
  16. package/lib/es6/PickerFormat.js.map +1 -0
  17. package/lib/es6/PickerInput.js +281 -0
  18. package/lib/es6/PickerInput.js.map +1 -0
  19. package/lib/es6/TimePicker.js +339 -0
  20. package/lib/es6/TimePicker.js.map +1 -0
  21. package/lib/es6/index.d.js +2 -0
  22. package/lib/es6/index.d.js.map +1 -0
  23. package/lib/es6/index.js +2 -2
  24. package/lib/es6/index.js.map +1 -1
  25. package/lib/es6/style/time-picker.shadow.css +116 -0
  26. package/lib/es6/translations/__intergalactic-dynamic-locales.js +15 -15
  27. package/lib/es6/translations/__intergalactic-dynamic-locales.js.map +1 -1
  28. package/lib/esm/PickerFormat.mjs +67 -0
  29. package/lib/esm/PickerInput.mjs +263 -0
  30. package/lib/esm/TimePicker.mjs +297 -0
  31. package/lib/esm/index.mjs +7 -2
  32. package/lib/esm/style/time-picker.shadow.css +116 -0
  33. package/lib/esm/translations/__intergalactic-dynamic-locales.mjs +1 -1
  34. package/lib/types/index.d.ts +63 -2
  35. package/package.json +8 -8
  36. package/vite.config.ts +4 -1
  37. package/lib/cjs/component/PickerFormat/PickerFormat.js +0 -84
  38. package/lib/cjs/component/PickerFormat/PickerFormat.js.map +0 -1
  39. package/lib/cjs/component/PickerFormat/PickerFormat.type.js +0 -2
  40. package/lib/cjs/component/PickerFormat/PickerFormat.type.js.map +0 -1
  41. package/lib/cjs/component/PickerFormat/picker-format.shadow.css +0 -61
  42. package/lib/cjs/component/PickerInput/PickerInput.js +0 -228
  43. package/lib/cjs/component/PickerInput/PickerInput.js.map +0 -1
  44. package/lib/cjs/component/PickerInput/PickerInput.type.js +0 -2
  45. package/lib/cjs/component/PickerInput/PickerInput.type.js.map +0 -1
  46. package/lib/cjs/component/PickerInput/picker-input.shadow.css +0 -11
  47. package/lib/cjs/component/TimePicker/TimePicker.js +0 -220
  48. package/lib/cjs/component/TimePicker/TimePicker.js.map +0 -1
  49. package/lib/cjs/component/TimePicker/TimePicker.type.js +0 -2
  50. package/lib/cjs/component/TimePicker/TimePicker.type.js.map +0 -1
  51. package/lib/cjs/component/TimePicker/time-picker.shadow.css +0 -34
  52. package/lib/cjs/entity/TimePickerEntity.js +0 -73
  53. package/lib/cjs/entity/TimePickerEntity.js.map +0 -1
  54. package/lib/es6/component/PickerFormat/PickerFormat.js +0 -79
  55. package/lib/es6/component/PickerFormat/PickerFormat.js.map +0 -1
  56. package/lib/es6/component/PickerFormat/PickerFormat.type.js +0 -2
  57. package/lib/es6/component/PickerFormat/PickerFormat.type.js.map +0 -1
  58. package/lib/es6/component/PickerFormat/picker-format.shadow.css +0 -61
  59. package/lib/es6/component/PickerInput/PickerInput.js +0 -222
  60. package/lib/es6/component/PickerInput/PickerInput.js.map +0 -1
  61. package/lib/es6/component/PickerInput/PickerInput.type.js +0 -2
  62. package/lib/es6/component/PickerInput/PickerInput.type.js.map +0 -1
  63. package/lib/es6/component/PickerInput/picker-input.shadow.css +0 -11
  64. package/lib/es6/component/TimePicker/TimePicker.js +0 -216
  65. package/lib/es6/component/TimePicker/TimePicker.js.map +0 -1
  66. package/lib/es6/component/TimePicker/TimePicker.type.js +0 -2
  67. package/lib/es6/component/TimePicker/TimePicker.type.js.map +0 -1
  68. package/lib/es6/component/TimePicker/time-picker.shadow.css +0 -34
  69. package/lib/es6/entity/TimePickerEntity.js +0 -66
  70. package/lib/es6/entity/TimePickerEntity.js.map +0 -1
  71. package/lib/esm/component/PickerFormat/PickerFormat.mjs +0 -84
  72. package/lib/esm/component/PickerFormat/picker-format.shadow.css +0 -61
  73. package/lib/esm/component/PickerInput/PickerInput.mjs +0 -227
  74. package/lib/esm/component/PickerInput/picker-input.shadow.css +0 -11
  75. package/lib/esm/component/TimePicker/TimePicker.mjs +0 -220
  76. package/lib/esm/component/TimePicker/time-picker.shadow.css +0 -34
  77. package/lib/esm/entity/TimePickerEntity.mjs +0 -65
  78. package/lib/types/component/PickerFormat/PickerFormat.d.ts +0 -17
  79. package/lib/types/component/PickerFormat/PickerFormat.type.d.ts +0 -16
  80. package/lib/types/component/PickerInput/PickerInput.d.ts +0 -54
  81. package/lib/types/component/PickerInput/PickerInput.type.d.ts +0 -13
  82. package/lib/types/component/TimePicker/TimePicker.d.ts +0 -3
  83. package/lib/types/component/TimePicker/TimePicker.type.d.ts +0 -50
  84. package/lib/types/entity/TimePickerEntity.d.ts +0 -22
  85. package/lib/types/translations/__intergalactic-dynamic-locales.d.ts +0 -114
@@ -0,0 +1,116 @@
1
+ STimePicker {
2
+ position: relative;
3
+ width: auto;
4
+ outline: none;
5
+
6
+ SPickerInput {
7
+ box-sizing: content-box;
8
+ text-align: center;
9
+ z-index: 1;
10
+ height: 1.5em;
11
+
12
+ &[placeholder] {
13
+ text-overflow: initial;
14
+ }
15
+ &:focus {
16
+ outline: none;
17
+ background-color: var(--intergalactic-bg-highlight-focus, oklch(0.524 0.266 263.1 / 0.116));
18
+ }
19
+ }
20
+ }
21
+
22
+ /*STimePicker[keyboardFocused]:focus {*/
23
+ /* box-shadow: var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5));*/
24
+ /*}*/
25
+
26
+ STimePicker[disabled] {
27
+ color: var(--intergalactic-text-secondary, oklch(0.088 0.026 147.7 / 0.583));
28
+ cursor: default;
29
+ }
30
+
31
+ SPickerInput[size='m'] {
32
+ width: 19px;
33
+ margin: 0 var(--intergalactic-spacing-2x, 8px);
34
+ padding: 0;
35
+ }
36
+
37
+ SPickerInput[size='l'] {
38
+ width: 21px;
39
+ margin: 0 var(--intergalactic-spacing-2x, 8px);
40
+ padding: 0;
41
+ }
42
+
43
+ SPickerFormat {
44
+ flex-shrink: 0;
45
+ position: relative;
46
+ display: inline-flex;
47
+ padding: 0;
48
+ white-space: nowrap;
49
+ font-family: inherit;
50
+ font-weight: var(--intergalactic-medium, 500);
51
+ line-height: normal;
52
+ text-decoration: none;
53
+ align-items: center;
54
+ border: 1px solid var(--intergalactic-border-primary, oklch(0.137 0.026 175.7 / 0.161));
55
+ border-radius: 0 var(--intergalactic-control-rounded, 6px)
56
+ var(--intergalactic-control-rounded, 6px) 0;
57
+ box-shadow: none;
58
+ cursor: pointer;
59
+ box-sizing: border-box;
60
+ overflow: visible;
61
+ user-select: none;
62
+ touch-action: manipulation;
63
+ -webkit-tap-highlight-color: transparent;
64
+ color: var(--intergalactic-text-secondary, oklch(0.088 0.026 147.7 / 0.583));
65
+ background-color: var(--intergalactic-bg-secondary-neutral, oklch(0.98 0.001 180));
66
+
67
+ &:hover {
68
+ color: var(--intergalactic-text-secondary, oklch(0.088 0.026 147.7 / 0.583));
69
+ background-color: var(--intergalactic-bg-secondary-neutral-hover, oklch(0.96 0.001 180));
70
+ }
71
+
72
+ &:active,
73
+ &[active] {
74
+ color: var(--intergalactic-text-secondary, oklch(0.088 0.026 147.7 / 0.583));
75
+ background-color: var(--intergalactic-bg-secondary-neutral-active, oklch(0.94 0.002 180));
76
+ }
77
+ }
78
+
79
+ SPickerFormat[size='m'] {
80
+ height: var(--intergalactic-form-control-m, 28px);
81
+ font-size: var(--intergalactic-fs-200, 14px);
82
+ /* disable-tokens-validator */
83
+ margin: 0 -1px 0 0;
84
+ & SPickerFormatText {
85
+ margin: 0 var(--intergalactic-spacing-2x, 8px);
86
+ }
87
+ }
88
+
89
+ SPickerFormat[size='l'] {
90
+ height: var(--intergalactic-form-control-l, 40px);
91
+ font-size: var(--intergalactic-fs-300, 16px);
92
+ margin: 0 -1px 0 0;
93
+ & SPickerFormatText {
94
+ margin: 0 var(--intergalactic-spacing-3x, 12px);
95
+ }
96
+ }
97
+
98
+ SPickerFormat[disabled] {
99
+ opacity: var(--intergalactic-disabled-opacity, 0.4);
100
+ cursor: default;
101
+ pointer-events: none;
102
+ border-color: transparent transparent transparent var(--intergalactic-border-primary, oklch(0.137 0.026 175.7 / 0.161));
103
+ }
104
+
105
+ /*SPickerFormat[keyboardFocused] {*/
106
+ /* box-shadow: var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5));*/
107
+ /*}*/
108
+
109
+ STimePickerSeparator {
110
+ color: var(--intergalactic-text-primary, oklch(0.1 0.03 137 / 0.899));
111
+ }
112
+
113
+ STimePickerSeparator[disabled] {
114
+ opacity: var(--intergalactic-disabled-opacity, 0.4);
115
+ pointer-events: none;
116
+ }
@@ -12,7 +12,7 @@ import sv from "./sv.json.mjs";
12
12
  import tr from "./tr.json.mjs";
13
13
  import vi from "./vi.json.mjs";
14
14
  import zh from "./zh.json.mjs";
15
- const localizedMessages = {
15
+ var localizedMessages = {
16
16
  de,
17
17
  en,
18
18
  es,
@@ -1,2 +1,63 @@
1
- export { default } from './component/TimePicker/TimePicker';
2
- export * from './component/TimePicker/TimePicker.type';
1
+ import type { PropGetterFn, UnknownProperties, Intergalactic } from '@semcore/core';
2
+ import type { Box, BoxProps } from '@semcore/flex-box';
3
+ import type { InputProps, InputValueProps } from '@semcore/input';
4
+ import type React from 'react';
5
+
6
+ /** @deprecated */
7
+ export interface ITimePickerProps extends TimePickerProps, UnknownProperties {}
8
+ export type TimePickerProps = Omit<InputProps, 'size'> & {
9
+ /** Time in the hh:mm format */
10
+ value?: string;
11
+ /** Default value if `value` property is not provided */
12
+ defaultValue?: string;
13
+ /** The event responses upon time changing */
14
+ onChange?: (time: string, event?: React.SyntheticEvent) => void;
15
+ /** In charge of the component blocking */
16
+ disabled?: boolean;
17
+ /** Control size
18
+ * @default m */
19
+ size?: 'm' | 'l';
20
+ /** 12-hour time format */
21
+ is12Hour?: boolean;
22
+ /** Specifies the locale for i18n support */
23
+ locale?: string;
24
+ };
25
+
26
+ /** @deprecated */
27
+ export interface ITimePickerItemProps extends TimePickerItemProps, UnknownProperties {}
28
+ export type TimePickerItemProps = InputValueProps & {
29
+ /** Step for changing of the values in the dropdown list */
30
+ step?: number;
31
+ };
32
+
33
+ /** @deprecated */
34
+ export interface ITimePickerFormatProps extends TimePickerFormatProps, UnknownProperties {}
35
+ export type TimePickerFormatProps = BoxProps & {};
36
+
37
+ /** @deprecated */
38
+ export interface ITimePickerContext extends TimePickerContext, UnknownProperties {}
39
+ export type TimePickerContext = {
40
+ getHoursProps: PropGetterFn;
41
+ getFormatProps: PropGetterFn;
42
+ getMinutesProps: PropGetterFn;
43
+ };
44
+
45
+ /** @deprecated */
46
+ export interface ITimePickerHandlers extends TimePickerHandlers, UnknownProperties {}
47
+ export type TimePickerHandlers = {
48
+ value: (value: string) => void;
49
+ };
50
+
51
+ declare const TimePicker: Intergalactic.Component<
52
+ 'div',
53
+ TimePickerProps,
54
+ TimePickerContext,
55
+ [handlers: TimePickerHandlers]
56
+ > & {
57
+ Hours: Intergalactic.Component<'div', TimePickerItemProps>;
58
+ Minutes: Intergalactic.Component<'div', TimePickerItemProps>;
59
+ Separator: typeof Box;
60
+ Format: Intergalactic.Component<'div', TimePickerFormatProps>;
61
+ };
62
+
63
+ export default TimePicker;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/time-picker",
3
3
  "description": "Semrush TimePicker Component",
4
- "version": "16.1.14-prerelease.9",
4
+ "version": "16.2.0-prerelease.1",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "typings": "lib/types/index.d.ts",
@@ -14,12 +14,13 @@
14
14
  "types": "./lib/types/index.d.ts"
15
15
  },
16
16
  "dependencies": {
17
- "@semcore/button": "16.0.13-prerelease.9",
18
- "@semcore/input": "16.1.2-prerelease.9",
19
- "@semcore/select": "16.1.12"
17
+ "@semcore/flex-box": "16.1.0-prerelease.1",
18
+ "@semcore/button": "16.1.0-prerelease.1",
19
+ "@semcore/input": "16.2.0-prerelease.1",
20
+ "@semcore/select": "16.2.0-prerelease.1"
20
21
  },
21
22
  "peerDependencies": {
22
- "@semcore/base-components": "^16.4.3-prerelease.9"
23
+ "@semcore/base-components": "^16.6.0-prerelease.1"
23
24
  },
24
25
  "repository": {
25
26
  "type": "git",
@@ -27,11 +28,10 @@
27
28
  "directory": "semcore/time-picker"
28
29
  },
29
30
  "devDependencies": {
30
- "@semcore/core": "16.5.1",
31
- "@semcore/base-components": "16.4.3-prerelease.9",
31
+ "@semcore/core": "16.6.0-prerelease.1",
32
32
  "@semcore/testing-utils": "1.0.0"
33
33
  },
34
34
  "scripts": {
35
- "build": "pnpm semcore-builder && pnpm vite build"
35
+ "build": "pnpm semcore-builder --source=js && pnpm vite build"
36
36
  }
37
37
  }
package/vite.config.ts CHANGED
@@ -7,7 +7,10 @@ export default mergeConfig(
7
7
  defineConfig({
8
8
  build: {
9
9
  lib: {
10
- entry: './src/index.ts',
10
+ entry: './src/index.js',
11
+ },
12
+ rollupOptions: {
13
+ external: ['react', 'react-dom', 'react/jsx-runtime', /@babel\/runtime\/*/, /@semcore\/*/],
11
14
  },
12
15
  },
13
16
  }),
@@ -1,84 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
- var _core = require("@semcore/core");
10
- var _baseComponents = require("@semcore/base-components");
11
- var _uniqueID = _interopRequireDefault(require("@semcore/core/lib/utils/uniqueID"));
12
- var _react = _interopRequireDefault(require("react"));
13
- /*!__reshadow-styles__:"./picker-format.shadow.css"*/
14
- const style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SPickerFormat_11qxx_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;-webkit-text-decoration:none;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;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_11qxx_gg_:hover{color:var(--intergalactic-text-secondary, #6c6e79);background-color:var(--intergalactic-bg-secondary-neutral-hover, #e0e1e9)}}.___SPickerFormat_11qxx_gg_.__active_11qxx_gg_,.___SPickerFormat_11qxx_gg_:active{color:var(--intergalactic-text-secondary, #6c6e79);background-color:var(--intergalactic-bg-secondary-neutral-active, #c4c7cf)}.___SPickerFormat_11qxx_gg_._size_m_11qxx_gg_{height:var(--intergalactic-form-control-m, 28px);font-size:var(--intergalactic-fs-200, 14px);margin:0-1px 0 0}.___SPickerFormat_11qxx_gg_._size_m_11qxx_gg_ .___SPickerFormatText_11qxx_gg_{margin:0 var(--intergalactic-spacing-2x, 8px)}.___SPickerFormat_11qxx_gg_._size_l_11qxx_gg_{height:var(--intergalactic-form-control-l, 40px);font-size:var(--intergalactic-fs-300, 16px);margin:0-1px 0 0}.___SPickerFormat_11qxx_gg_._size_l_11qxx_gg_ .___SPickerFormatText_11qxx_gg_{margin:0 var(--intergalactic-spacing-3x, 12px)}.___SPickerFormat_11qxx_gg_.__disabled_11qxx_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none;border-color:transparent transparent transparent var(--intergalactic-border-primary, #c4c7cf)}", /*__inner_css_end__*/"11qxx_gg_"),
15
- /*__reshadow_css_end__*/
16
- {
17
- "__SPickerFormat": "___SPickerFormat_11qxx_gg_",
18
- "_disabled": "__disabled_11qxx_gg_",
19
- "_active": "__active_11qxx_gg_",
20
- "_size_m": "_size_m_11qxx_gg_",
21
- "__SPickerFormatText": "___SPickerFormatText_11qxx_gg_",
22
- "_size_l": "_size_l_11qxx_gg_"
23
- });
24
- class TimePickerFormat extends _core.Component {
25
- constructor(...args) {
26
- super(...args);
27
- (0, _defineProperty2.default)(this, "state", {
28
- changedFormatNotice: ''
29
- });
30
- (0, _defineProperty2.default)(this, "handleClick", () => {
31
- setTimeout(() => {
32
- const {
33
- meridiem,
34
- getI18nText
35
- } = this.asProps;
36
- this.setState({
37
- changedFormatNotice: getI18nText('changedFormatNotice', {
38
- meridiem
39
- })
40
- });
41
- }, 0);
42
- setTimeout(() => {
43
- this.setState({
44
- changedFormatNotice: ''
45
- });
46
- }, 2000);
47
- });
48
- }
49
- render() {
50
- var _ref = this.asProps,
51
- _ref2;
52
- const SPickerFormat = _baseComponents.Box;
53
- const {
54
- Children,
55
- meridiem,
56
- styles,
57
- getI18nText,
58
- uid
59
- } = this.asProps;
60
- const {
61
- changedFormatNotice
62
- } = this.state;
63
- const SPickerFormatText = 'span';
64
- return _ref2 = (0, _core.sstyled)(styles), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(SPickerFormat, _ref2.cn("SPickerFormat", {
65
- ...(0, _core.assignProps)({
66
- "type": 'button',
67
- "tag": 'button',
68
- "tabIndex": 0,
69
- "onClick": this.handleClick,
70
- "aria-describedby": `${uid}_describe`
71
- }, _ref)
72
- }), Children.origin ? /*#__PURE__*/_react.default.createElement(Children, _ref2.cn("Children", {})) : /*#__PURE__*/_react.default.createElement(SPickerFormatText, _ref2.cn("SPickerFormatText", {}), meridiem)), /*#__PURE__*/_react.default.createElement(_baseComponents.ScreenReaderOnly, _ref2.cn("ScreenReaderOnly", {
73
- "role": 'status',
74
- "aria-live": 'polite'
75
- }), changedFormatNotice), /*#__PURE__*/_react.default.createElement(_baseComponents.ScreenReaderOnly, _ref2.cn("ScreenReaderOnly", {
76
- "aria-hidden": 'true',
77
- "id": `${uid}_describe`
78
- }), getI18nText('formatToggler')));
79
- }
80
- }
81
- (0, _defineProperty2.default)(TimePickerFormat, "style", style);
82
- (0, _defineProperty2.default)(TimePickerFormat, "enhance", [(0, _uniqueID.default)()]);
83
- var _default = exports.default = TimePickerFormat;
84
- //# sourceMappingURL=PickerFormat.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PickerFormat.js","names":["_core","require","_baseComponents","_uniqueID","_interopRequireDefault","_react","style","sstyled","insert","TimePickerFormat","Component","constructor","args","_defineProperty2","default","changedFormatNotice","setTimeout","meridiem","getI18nText","asProps","setState","render","_ref","_ref2","SPickerFormat","Box","Children","styles","uid","state","SPickerFormatText","createElement","Fragment","cn","assignProps","handleClick","origin","ScreenReaderOnly","uniqueIDEnhancement","_default","exports"],"sources":["../../../../src/component/PickerFormat/PickerFormat.tsx"],"sourcesContent":["import { Box, ScreenReaderOnly } from '@semcore/base-components';\nimport { Component, sstyled, Root } from '@semcore/core';\nimport uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';\nimport React from 'react';\n\nimport style from './picker-format.shadow.css';\nimport type { TimePickerFormatProps, TimePickerFormatPropsInternal } from './PickerFormat.type';\n\nclass TimePickerFormat extends Component<TimePickerFormatProps, typeof TimePickerFormat.enhance, {}, TimePickerFormatPropsInternal> {\n static style = style;\n static enhance = [uniqueIDEnhancement()] as const;\n\n state = {\n changedFormatNotice: '',\n };\n\n handleClick = () => {\n setTimeout(() => {\n const { meridiem, getI18nText } = this.asProps;\n this.setState({ changedFormatNotice: getI18nText('changedFormatNotice', { meridiem }) });\n }, 0);\n\n setTimeout(() => {\n this.setState({ changedFormatNotice: '' });\n }, 2000);\n };\n\n render() {\n const SPickerFormat = Root;\n const { Children, meridiem, styles, getI18nText, uid } = this.asProps;\n const { changedFormatNotice } = this.state;\n const SPickerFormatText = 'span';\n\n return sstyled(styles)(\n <>\n <SPickerFormat\n render={Box}\n type='button'\n tag='button'\n tabIndex={0}\n onClick={this.handleClick}\n aria-describedby={`${uid}_describe`}\n >\n {Children.origin ? <Children /> : <SPickerFormatText>{meridiem}</SPickerFormatText>}\n </SPickerFormat>\n <ScreenReaderOnly role='status' aria-live='polite'>\n {changedFormatNotice}\n </ScreenReaderOnly>\n <ScreenReaderOnly aria-hidden='true' id={`${uid}_describe`}>\n {getI18nText('formatToggler')}\n </ScreenReaderOnly>\n </>,\n );\n }\n}\n\nexport default TimePickerFormat;\n"],"mappings":";;;;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AADA,IAAAC,eAAA,GAAAD,OAAA;AAEA,IAAAE,SAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,MAAA,GAAAD,sBAAA,CAAAH,OAAA;AAA0B;AAAA,MAAAK,KAAA,8BAAAN,KAAA,CAAAO,OAAA,CAAAC,MAAA;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAK1B,MAAMC,gBAAgB,SAASC,eAAS,CAA4F;EAAAC,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,iBAI1H;MACNC,mBAAmB,EAAE;IACvB,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA,uBAEa,MAAM;MAClBE,UAAU,CAAC,MAAM;QACf,MAAM;UAAEC,QAAQ;UAAEC;QAAY,CAAC,GAAG,IAAI,CAACC,OAAO;QAC9C,IAAI,CAACC,QAAQ,CAAC;UAAEL,mBAAmB,EAAEG,WAAW,CAAC,qBAAqB,EAAE;YAAED;UAAS,CAAC;QAAE,CAAC,CAAC;MAC1F,CAAC,EAAE,CAAC,CAAC;MAELD,UAAU,CAAC,MAAM;QACf,IAAI,CAACI,QAAQ,CAAC;UAAEL,mBAAmB,EAAE;QAAG,CAAC,CAAC;MAC5C,CAAC,EAAE,IAAI,CAAC;IACV,CAAC;EAAA;EAEDM,MAAMA,CAAA,EAAG;IAAA,IAAAC,IAAA,QAAAH,OAAA;MAAAI,KAAA;IACP,MAAMC,aAAa,GAQLC,mBAAG;IAPjB,MAAM;MAAEC,QAAQ;MAAET,QAAQ;MAAEU,MAAM;MAAET,WAAW;MAAEU;IAAI,CAAC,GAAG,IAAI,CAACT,OAAO;IACrE,MAAM;MAAEJ;IAAoB,CAAC,GAAG,IAAI,CAACc,KAAK;IAC1C,MAAMC,iBAAiB,GAAG,MAAM;IAEhC,OAAAP,KAAA,GAAO,IAAAhB,aAAO,EAACoB,MAAM,CAAC,eACpBtB,MAAA,CAAAS,OAAA,CAAAiB,aAAA,CAAA1B,MAAA,CAAAS,OAAA,CAAAkB,QAAA,qBACE3B,MAAA,CAAAS,OAAA,CAAAiB,aAAA,CAACP,aAAa,EAAAD,KAAA,CAAAU,EAAA;MAAA,OAAAjC,KAAA,CAAAkC,WAAA;QAAA,QAEP,QAAQ;QAAA,OACT,QAAQ;QAAA,YACF,CAAC;QAAA,WACF,IAAI,CAACC,WAAW;QAAA,oBACP,GAAGP,GAAG;MAAW,GAAAN,IAAA;IAAA,IAElCI,QAAQ,CAACU,MAAM,gBAAG/B,MAAA,CAAAS,OAAA,CAAAiB,aAAA,CAACL,QAAQ,EAAAH,KAAA,CAAAU,EAAA,gBAAE,CAAC,gBAAG5B,MAAA,CAAAS,OAAA,CAAAiB,aAAA,CAACD,iBAAiB,EAAAP,KAAA,CAAAU,EAAA,2BAAEhB,QAA4B,CACrE,CAAC,eAChBZ,MAAA,CAAAS,OAAA,CAAAiB,aAAA,CAAC7B,eAAA,CAAAmC,gBAAgB,EAAAd,KAAA,CAAAU,EAAA;MAAA,QAAM,QAAQ;MAAA,aAAW;IAAQ,IAC/ClB,mBACe,CAAC,eACnBV,MAAA,CAAAS,OAAA,CAAAiB,aAAA,CAAC7B,eAAA,CAAAmC,gBAAgB,EAAAd,KAAA,CAAAU,EAAA;MAAA,eAAa,MAAM;MAAA,MAAK,GAAGL,GAAG;IAAW,IACvDV,WAAW,CAAC,eAAe,CACZ,CAClB,CAAC;EAEP;AACF;AAAC,IAAAL,gBAAA,CAAAC,OAAA,EA9CKL,gBAAgB,WACLH,KAAK;AAAA,IAAAO,gBAAA,CAAAC,OAAA,EADhBL,gBAAgB,aAEH,CAAC,IAAA6B,iBAAmB,EAAC,CAAC,CAAC;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAA1B,OAAA,GA8C3BL,gBAAgB","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=PickerFormat.type.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PickerFormat.type.js","names":[],"sources":["../../../../src/component/PickerFormat/PickerFormat.type.ts"],"sourcesContent":["import type { BoxProps } from '@semcore/base-components';\nimport type { useI18n } from '@semcore/core/lib/utils/enhances/WithI18n';\n\nimport type { TimePickerMeridiem } from '../TimePicker/TimePicker.type';\n\nexport type TimePickerFormatProps = BoxProps & {};\n\nexport type TimePickerFormatPropsInternal = {\n /** @Internal */\n getI18nText: ReturnType<typeof useI18n>;\n /** @Internal */\n size: 'm' | 'l';\n /** @Internal */\n disabled: boolean;\n /** @Internal */\n meridiem: TimePickerMeridiem;\n /** @Internal */\n onClick: (event: React.SyntheticEvent) => void;\n};\n"],"mappings":"","ignoreList":[]}
@@ -1,61 +0,0 @@
1
- SPickerFormat {
2
- flex-shrink: 0;
3
- position: relative;
4
- display: inline-flex;
5
- padding: 0;
6
- white-space: nowrap;
7
- font-family: inherit;
8
- font-weight: var(--intergalactic-medium, 500);
9
- line-height: normal;
10
- text-decoration: none;
11
- align-items: center;
12
- border: 1px solid var(--intergalactic-border-primary, #c4c7cf);
13
- border-radius: 0 var(--intergalactic-control-rounded, 6px)
14
- var(--intergalactic-control-rounded, 6px) 0;
15
- box-shadow: none;
16
- cursor: pointer;
17
- box-sizing: border-box;
18
- overflow: visible;
19
- user-select: none;
20
- touch-action: manipulation;
21
- -webkit-tap-highlight-color: transparent;
22
- color: var(--intergalactic-text-secondary, #6c6e79);
23
- background-color: var(--intergalactic-bg-secondary-neutral, #f4f5f9);
24
-
25
- &:hover {
26
- color: var(--intergalactic-text-secondary, #6c6e79);
27
- background-color: var(--intergalactic-bg-secondary-neutral-hover, #e0e1e9);
28
- }
29
-
30
- &:active,
31
- &[active] {
32
- color: var(--intergalactic-text-secondary, #6c6e79);
33
- background-color: var(--intergalactic-bg-secondary-neutral-active, #c4c7cf);
34
- }
35
- }
36
-
37
- SPickerFormat[size='m'] {
38
- height: var(--intergalactic-form-control-m, 28px);
39
- font-size: var(--intergalactic-fs-200, 14px);
40
- /* disable-tokens-validator */
41
- margin: 0 -1px 0 0;
42
- & SPickerFormatText {
43
- margin: 0 var(--intergalactic-spacing-2x, 8px);
44
- }
45
- }
46
-
47
- SPickerFormat[size='l'] {
48
- height: var(--intergalactic-form-control-l, 40px);
49
- font-size: var(--intergalactic-fs-300, 16px);
50
- margin: 0 -1px 0 0;
51
- & SPickerFormatText {
52
- margin: 0 var(--intergalactic-spacing-3x, 12px);
53
- }
54
- }
55
-
56
- SPickerFormat[disabled] {
57
- opacity: var(--intergalactic-disabled-opacity, 0.3);
58
- cursor: default;
59
- pointer-events: none;
60
- border-color: transparent transparent transparent var(--intergalactic-border-primary, #c4c7cf);
61
- }
@@ -1,228 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.Minutes = exports.Hours = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
- var _core = require("@semcore/core");
10
- var _assignProps2 = require("@semcore/core/lib/utils/assignProps");
11
- var _input = _interopRequireDefault(require("@semcore/input"));
12
- var _select = _interopRequireDefault(require("@semcore/select"));
13
- var _react = _interopRequireDefault(require("react"));
14
- /*!__reshadow-styles__:"./picker-input.shadow.css"*/
15
- const style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SPickerInput_1bwib_gg_._size_l_1bwib_gg_,.___SPickerInput_1bwib_gg_._size_m_1bwib_gg_{width:19px;margin:0 var(--intergalactic-spacing-2x, 8px);padding:0}.___SPickerInput_1bwib_gg_._size_l_1bwib_gg_{width:21px}", /*__inner_css_end__*/"1bwib_gg_"),
16
- /*__reshadow_css_end__*/
17
- {
18
- "__SPickerInput": "___SPickerInput_1bwib_gg_",
19
- "_size_m": "_size_m_1bwib_gg_",
20
- "_size_l": "_size_l_1bwib_gg_"
21
- });
22
- function getOptions(minMax, step = 1) {
23
- const [min, max] = minMax;
24
- const length = Number(((max + 1 - min) / step).toFixed(0));
25
- const options = Array(length).fill('');
26
- let numValue = min;
27
- return options.map((_i, index) => {
28
- numValue = index === 0 ? numValue : numValue + step;
29
- const value = String(numValue).padStart(2, '0');
30
- return /*#__PURE__*/_react.default.createElement(_select.default.Option, {
31
- value: value,
32
- key: value
33
- }, value);
34
- });
35
- }
36
- class AbstractPickerInput extends _core.Component {
37
- constructor(...args) {
38
- super(...args);
39
- (0, _defineProperty2.default)(this, "state", {
40
- dirtyValue: undefined,
41
- visible: false
42
- });
43
- (0, _defineProperty2.default)(this, "inputRef", /*#__PURE__*/_react.default.createRef());
44
- (0, _defineProperty2.default)(this, "parseValueWithMinMax", value => {
45
- const [min, max] = this.minMax;
46
- const numberValue = isNaN(Number(value)) ? min : Number(value);
47
- return String(Math.max(min, Math.min(max, numberValue)));
48
- });
49
- (0, _defineProperty2.default)(this, "handleChange", (value, event) => {
50
- event.stopPropagation();
51
- const inputValue = value.replace(/[^0-9]/g, '');
52
- const numberValue = Number(inputValue);
53
- if (!Number.isNaN(numberValue)) {
54
- this.setState({
55
- dirtyValue: inputValue.slice(-2)
56
- });
57
- }
58
- });
59
- (0, _defineProperty2.default)(this, "handleBlur", event => this.submitChanges(event));
60
- (0, _defineProperty2.default)(this, "handleSelect", (value, event) => {
61
- this.dispatchOnChange(value, event);
62
- });
63
- (0, _defineProperty2.default)(this, "handleVisibleChange", visible => this.setState({
64
- visible
65
- }));
66
- }
67
- dispatchOnChange(value, event) {
68
- this.setState({
69
- dirtyValue: undefined
70
- });
71
- this.asProps.$onValueChange(value, this.field, event);
72
- }
73
- submitChanges(event) {
74
- let {
75
- dirtyValue
76
- } = this.state;
77
- if (dirtyValue !== undefined) {
78
- // if changes value
79
- if (dirtyValue) dirtyValue = this.parseValueWithMinMax(dirtyValue); // if not ""
80
- this.dispatchOnChange(dirtyValue, event);
81
- }
82
- }
83
- render() {
84
- var _ref = this.asProps,
85
- _ref2;
86
- const SPickerInput = _select.default.Trigger;
87
- const {
88
- styles,
89
- step,
90
- onSelect,
91
- time,
92
- size,
93
- disabled,
94
- onVisibleChange,
95
- ariaLabel,
96
- ...other
97
- } = this.asProps;
98
- const {
99
- dirtyValue,
100
- visible
101
- } = this.state;
102
- const value = dirtyValue === undefined ? time : dirtyValue;
103
- return _ref2 = (0, _core.sstyled)(styles), /*#__PURE__*/_react.default.createElement(_select.default, _ref2.cn("Select", {
104
- ...other,
105
- "interaction": 'focus',
106
- "size": size,
107
- "onChange": (0, _assignProps2.callAllEventHandlers)(onSelect, this.handleSelect),
108
- "onVisibleChange": (0, _assignProps2.callAllEventHandlers)(onVisibleChange, this.handleVisibleChange),
109
- "visible": visible,
110
- "value": time,
111
- "defaultHighlightedIndex": time ? null : 0
112
- }), /*#__PURE__*/_react.default.createElement(SPickerInput, _ref2.cn("SPickerInput", {
113
- ...(0, _core.assignProps)({
114
- "tag": _input.default.Value,
115
- "ref": this.inputRef,
116
- "inputMode": 'numeric',
117
- "size": size,
118
- "disabled": disabled,
119
- "neighborLocation": false,
120
- "value": value,
121
- "aria-label": ariaLabel,
122
- "onChange": this.handleChange,
123
- "onBlur": this.handleBlur,
124
- "onKeyDown": this.handleKeyDown
125
- }, _ref)
126
- })), /*#__PURE__*/_react.default.createElement(_select.default.Menu, {
127
- hMax: 180
128
- }, getOptions(this.minMax, step)));
129
- }
130
- }
131
- (0, _defineProperty2.default)(AbstractPickerInput, "style", style);
132
- (0, _defineProperty2.default)(AbstractPickerInput, "defaultProps", _ => ({
133
- placeholder: '00',
134
- offset: [-8, 4]
135
- }));
136
- class Hours extends AbstractPickerInput {
137
- constructor(...args) {
138
- super(...args);
139
- (0, _defineProperty2.default)(this, "handleKeyDown", event => {
140
- const {
141
- currentTarget
142
- } = event;
143
- if (event.key === 'Enter') {
144
- this.submitChanges(event);
145
- }
146
- if (event.key === 'ArrowRight') {
147
- if (currentTarget.selectionStart && currentTarget.selectionStart >= currentTarget.value.length && currentTarget.selectionStart === currentTarget.selectionEnd) {
148
- event.preventDefault();
149
- this.focusNext();
150
- }
151
- }
152
- });
153
- }
154
- get field() {
155
- return 'hours';
156
- }
157
- get minMax() {
158
- const {
159
- is12Hour
160
- } = this.asProps;
161
- return is12Hour ? [1, 12] : [0, 23];
162
- }
163
- focusNext() {
164
- if (this.asProps.minutesInputRef.current) {
165
- this.setState({
166
- visible: false
167
- });
168
- this.asProps.minutesInputRef.current.focus();
169
- }
170
- }
171
- componentDidUpdate(_, prevState) {
172
- const {
173
- dirtyValue
174
- } = this.state;
175
- if (prevState.dirtyValue === undefined || dirtyValue === undefined) return;
176
- if (prevState.dirtyValue.length === 1 && dirtyValue.length === 2) {
177
- this.focusNext();
178
- }
179
- }
180
- }
181
- exports.Hours = Hours;
182
- (0, _defineProperty2.default)(Hours, "defaultProps", props => ({
183
- ...AbstractPickerInput.defaultProps(props),
184
- ml: props.size === 'l' ? 3 : undefined
185
- }));
186
- class Minutes extends AbstractPickerInput {
187
- constructor(...args) {
188
- super(...args);
189
- (0, _defineProperty2.default)(this, "handleKeyDown", event => {
190
- const {
191
- currentTarget
192
- } = event;
193
- if (event.key === 'ArrowLeft') {
194
- if (currentTarget.selectionStart && currentTarget.selectionStart <= 0 && currentTarget.selectionStart === currentTarget.selectionEnd) {
195
- event.preventDefault();
196
- this.focusPrev();
197
- }
198
- }
199
- if (event.key === 'Backspace') {
200
- if (currentTarget.value.length === 0) {
201
- event.preventDefault();
202
- this.focusPrev();
203
- }
204
- }
205
- if (event.key === 'Enter') this.submitChanges(event);
206
- });
207
- }
208
- get field() {
209
- return 'minutes';
210
- }
211
- get minMax() {
212
- return [0, 59];
213
- }
214
- focusPrev() {
215
- if (this.asProps.hoursInputRef.current) {
216
- this.setState({
217
- visible: false
218
- });
219
- this.asProps.hoursInputRef.current.focus();
220
- }
221
- }
222
- }
223
- exports.Minutes = Minutes;
224
- (0, _defineProperty2.default)(Minutes, "defaultProps", props => ({
225
- ...AbstractPickerInput.defaultProps(props),
226
- mr: props.size === 'l' ? 3 : undefined
227
- }));
228
- //# sourceMappingURL=PickerInput.js.map