@semcore/date-picker 2.8.3 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/lib/cjs/DatePicker.js +2 -1
  3. package/lib/cjs/DatePicker.js.map +1 -1
  4. package/lib/cjs/components/ButtonTrigger.js +3 -9
  5. package/lib/cjs/components/ButtonTrigger.js.map +1 -1
  6. package/lib/cjs/components/Calendar.js +22 -22
  7. package/lib/cjs/components/PickerAbstract.js +8 -9
  8. package/lib/cjs/components/PickerAbstract.js.map +1 -1
  9. package/lib/cjs/components/RangePickerAbstract.js +9 -11
  10. package/lib/cjs/components/RangePickerAbstract.js.map +1 -1
  11. package/lib/cjs/components/index.js +13 -18
  12. package/lib/cjs/components/index.js.map +1 -1
  13. package/lib/cjs/index.d.ts +355 -0
  14. package/lib/cjs/index.js +5 -39
  15. package/lib/cjs/index.js.map +1 -1
  16. package/lib/cjs/style/calendar.shadow.css +44 -44
  17. package/lib/cjs/style/date-picker.shadow.css +4 -2
  18. package/lib/cjs/utils/shortDateRangeFormat.js +1 -0
  19. package/lib/cjs/utils/shortDateRangeFormat.js.map +1 -1
  20. package/lib/es6/DatePicker.js +2 -1
  21. package/lib/es6/DatePicker.js.map +1 -1
  22. package/lib/es6/components/ButtonTrigger.js +3 -9
  23. package/lib/es6/components/ButtonTrigger.js.map +1 -1
  24. package/lib/es6/components/Calendar.js +22 -22
  25. package/lib/es6/components/PickerAbstract.js +8 -9
  26. package/lib/es6/components/PickerAbstract.js.map +1 -1
  27. package/lib/es6/components/RangePickerAbstract.js +9 -11
  28. package/lib/es6/components/RangePickerAbstract.js.map +1 -1
  29. package/lib/es6/components/index.js +13 -18
  30. package/lib/es6/components/index.js.map +1 -1
  31. package/lib/es6/index.d.ts +355 -0
  32. package/lib/es6/index.js +0 -3
  33. package/lib/es6/index.js.map +1 -1
  34. package/lib/es6/style/calendar.shadow.css +44 -44
  35. package/lib/es6/style/date-picker.shadow.css +4 -2
  36. package/lib/es6/utils/shortDateRangeFormat.js +1 -0
  37. package/lib/es6/utils/shortDateRangeFormat.js.map +1 -1
  38. package/lib/types/index.d.ts +1 -1
  39. package/package.json +7 -4
  40. package/src/DatePicker.jsx +1 -1
  41. package/src/components/ButtonTrigger.jsx +2 -3
  42. package/src/components/PickerAbstract.jsx +0 -1
  43. package/src/components/RangePickerAbstract.jsx +10 -10
  44. package/src/index.d.ts +1 -1
  45. package/src/index.js +0 -3
  46. package/src/style/calendar.shadow.css +44 -44
  47. package/src/style/date-picker.shadow.css +4 -2
  48. package/src/utils/shortDateRangeFormat.js +1 -0
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/date-picker",
3
3
  "description": "SEMRush DatePicker Component",
4
- "version": "2.8.3",
4
+ "version": "3.0.0",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "typings": "lib/types/index.d.ts",
@@ -14,14 +14,14 @@
14
14
  },
15
15
  "dependencies": {
16
16
  "@semcore/utils": "^3.27",
17
- "@semcore/base-trigger": "^2",
17
+ "@semcore/base-trigger": "^3.0.0",
18
18
  "@semcore/flex-box": "^4",
19
- "@semcore/button": "^3.3.2",
19
+ "@semcore/button": "^4",
20
20
  "@semcore/divider": "^2",
21
21
  "@semcore/icon": "^2.16",
22
22
  "@semcore/dropdown": "^2",
23
23
  "@semcore/typography": "^3",
24
- "dayjs": "^1.8"
24
+ "dayjs": "1.8.36"
25
25
  },
26
26
  "peerDependencies": {
27
27
  "@semcore/core": "^1.11",
@@ -34,5 +34,8 @@
34
34
  "type": "git",
35
35
  "url": "https://github.com/semrush/intergalactic.git",
36
36
  "directory": "semcore/date-picker"
37
+ },
38
+ "devDependencies": {
39
+ "@semcore/jest-preset-ui": "1.0.0"
37
40
  }
38
41
  }
@@ -52,7 +52,7 @@ export class DatePickerRoot extends PickerAbstract {
52
52
  <>
53
53
  <DatePicker.Header />
54
54
  <DatePicker.Calendar />
55
- <Divider ml={-4} w="calc(100% + 32px)" />
55
+ <Divider ml={-4} mt={4} w="calc(100% + 32px)" />
56
56
  <DatePicker.Today />
57
57
  </>
58
58
  ),
@@ -1,11 +1,10 @@
1
- import React, { ComponentProps } from 'react';
1
+ import React from 'react';
2
2
  import BaseTrigger from '@semcore/base-trigger';
3
- import { Box } from '@semcore/flex-box';
4
3
  import addonTextChildren from '@semcore/utils/lib/addonTextChildren';
5
4
  import Calendar from '@semcore/icon/Calendar/m';
6
5
  import createComponent, { Root } from '@semcore/core';
7
6
 
8
- const ButtonTriggerRoot = ({ Children, size }) => {
7
+ const ButtonTriggerRoot = ({ Children }) => {
9
8
  return (
10
9
  <Root render={BaseTrigger}>
11
10
  <ButtonTrigger.Addon tag={Calendar} />
@@ -131,7 +131,6 @@ class PickerAbstract extends Component {
131
131
  }
132
132
 
133
133
  getPopperProps() {
134
- const { interaction } = this.asProps;
135
134
  const Picker = this[CORE_INSTANCE];
136
135
  return {
137
136
  tabIndex: 0,
@@ -109,7 +109,7 @@ class RangePickerAbstract extends Component {
109
109
  const day = this.keyDiff[e.keyCode];
110
110
 
111
111
  const setNextDisplayedPeriod = (next_highlighted) => {
112
- const [_, right_period] = next_highlighted;
112
+ const [, right_period] = next_highlighted;
113
113
 
114
114
  if (right_period) {
115
115
  const month_right_period = right_period.getMonth();
@@ -193,13 +193,7 @@ class RangePickerAbstract extends Component {
193
193
 
194
194
  getPopperProps() {
195
195
  const Picker = this[CORE_INSTANCE];
196
- const {
197
- value,
198
- periods = this.getDefaultPeriods(),
199
- unclearable,
200
- getI18nText,
201
- interaction,
202
- } = this.asProps;
196
+ const { value, periods = this.getDefaultPeriods(), unclearable, getI18nText } = this.asProps;
203
197
  const { dirtyValue } = this.state;
204
198
 
205
199
  const buttons = (
@@ -292,8 +286,14 @@ class RangePickerAbstract extends Component {
292
286
  }
293
287
 
294
288
  getCalendarProps(props, index) {
295
- const { locale, displayedPeriod, disabled, value, highlighted, onHighlightedChange } =
296
- this.asProps;
289
+ const {
290
+ locale,
291
+ displayedPeriod,
292
+ disabled,
293
+ value,
294
+ highlighted,
295
+ onHighlightedChange,
296
+ } = this.asProps;
297
297
  const { dirtyValue } = this.state;
298
298
 
299
299
  return {
package/src/index.d.ts CHANGED
@@ -100,7 +100,7 @@ export interface IDatePickerProps extends IDropdownProps, IWithI18nEnhanceProps
100
100
  * Component size
101
101
  * @default m
102
102
  */
103
- size?: 'm' | 'l' | 'xl';
103
+ size?: 'm' | 'l';
104
104
  /**
105
105
  * The selected date, accepts everything which is accepted by `new Date()`
106
106
  * */
package/src/index.js CHANGED
@@ -2,10 +2,7 @@ export { default as DatePicker } from './DatePicker';
2
2
  export * from './DatePicker';
3
3
 
4
4
  export { default as DateRangePicker } from './DateRangePicker';
5
- export * from './DateRangePicker';
6
5
 
7
6
  export { default as MonthPicker } from './MonthPicker';
8
- export * from './MonthPicker';
9
7
 
10
8
  export { default as MonthRangePicker } from './MonthRangePicker';
11
- export * from './MonthRangePicker';
@@ -29,8 +29,8 @@ SWeekDay {
29
29
  display: flex;
30
30
  align-items: center;
31
31
  justify-content: center;
32
- color: var(--gray60);
33
- font-size: var(--fs-100);
32
+ color: var(--gray-500);
33
+ font-size: var(--fs-200);
34
34
  font-weight: 400;
35
35
  overflow: hidden;
36
36
  }
@@ -43,7 +43,7 @@ SCalendarUnit {
43
43
  text-align: center;
44
44
  vertical-align: middle;
45
45
  border: 1px solid transparent;
46
- color: var(--gray20);
46
+ color: var(--gray-800);
47
47
  outline: 0;
48
48
  box-shadow: none;
49
49
  overflow: visible;
@@ -53,11 +53,11 @@ SCalendarUnit {
53
53
  background: transparent;
54
54
 
55
55
  align-items: center;
56
- border-radius: 4px;
56
+ border-radius: var(--rounded-m);
57
57
  box-sizing: border-box;
58
58
  cursor: pointer;
59
59
  display: flex;
60
- font-size: 12px;
60
+ font-size: var(--fs-200);
61
61
  justify-content: center;
62
62
  min-height: 32px;
63
63
  min-width: 32px;
@@ -66,12 +66,12 @@ SCalendarUnit {
66
66
  outline: none;
67
67
 
68
68
  &:hover {
69
- color: var(--gray20);
70
- background: color-mod(var(--stone) alpha(20%));
69
+ color: var(--gray-800);
70
+ background: var(--gray-100);
71
71
  }
72
72
 
73
73
  &:focus-visible {
74
- box-shadow: var(--keyborad-focus);
74
+ box-shadow: var(--keyboard-focus);
75
75
  }
76
76
  }
77
77
 
@@ -80,13 +80,13 @@ SCalendarUnit[today] {
80
80
  content: '';
81
81
  position: absolute;
82
82
  display: block;
83
- top: 2px;
84
- left: 2px;
85
- border-radius: 3px;
86
- width: calc(100% - 4px);
87
- height: calc(100% - 4px);
83
+ top: 1px;
84
+ left: 1px;
85
+ border-radius: var(--rounded-m);
86
+ width: calc(100% - 2px);
87
+ height: calc(100% - 2px);
88
88
  box-sizing: border-box;
89
- border: 1px solid color-mod(black alpha(20%));
89
+ border: 1px solid var(--gray-200);
90
90
  }
91
91
  }
92
92
 
@@ -98,79 +98,83 @@ SCalendarUnit[today]SCalendarUnit[endSelected] {
98
98
  }
99
99
 
100
100
  SCalendarUnit[selected] {
101
- background: color-mod(var(--light-blue) alpha(10%));
101
+ background: var(--blue-100);
102
102
  border-radius: 0;
103
- color: var(--gray20);
103
+ color: var(--gray-800);
104
104
 
105
105
  &:hover {
106
- background: color-mod(var(--light-blue) alpha(30%));
106
+ background: var(--blue-400);
107
107
  }
108
108
  }
109
109
 
110
110
  SCalendarUnit[highlighted] {
111
- background: color-mod(var(--light-blue) alpha(20%));
111
+ background: color-mod(var(--blue-400) alpha(20%));
112
112
  border-radius: 0;
113
- color: var(--gray20);
113
+ color: var(--gray-800);
114
114
 
115
115
  &:hover {
116
- background: color-mod(var(--light-blue) alpha(30%));
116
+ background: color-mod(var(--blue-400) alpha(30%));
117
117
  }
118
118
  }
119
119
 
120
120
  SCalendarUnit[startSelected] {
121
- background: var(--light-blue);
122
- border-bottom-left-radius: 4px;
121
+ border-bottom-left-radius: var(--rounded-m);
123
122
  border-bottom-right-radius: 0;
124
- border-top-left-radius: 4px;
123
+ border-top-left-radius: var(--rounded-m);
125
124
  border-top-right-radius: 0;
126
125
  color: white;
126
+ background: var(--blue-300);
127
127
 
128
128
  &:hover {
129
129
  color: white;
130
- background: color-mod(var(--light-blue) shade(12%));
130
+ background: var(--blue-400);
131
131
  }
132
132
  }
133
133
 
134
134
  SCalendarUnit[endSelected] {
135
- background: var(--light-blue);
135
+ background: var(--blue-300);
136
136
  border-bottom-left-radius: 0;
137
- border-bottom-right-radius: 4px;
137
+ border-bottom-right-radius: var(--rounded-m);
138
138
  border-top-left-radius: 0;
139
- border-top-right-radius: 4px;
139
+ border-top-right-radius: var(--rounded-m);
140
140
  color: white;
141
141
 
142
142
  &:hover {
143
143
  color: white;
144
- background: color-mod(var(--light-blue) shade(12%));
144
+ background: var(--blue-400);
145
145
  }
146
146
  }
147
147
 
148
148
  SCalendarUnit[startHighlighted] {
149
- border-bottom-left-radius: 4px;
149
+ border-bottom-left-radius: var(--rounded-m);
150
150
  border-bottom-right-radius: 0;
151
- border-top-left-radius: 4px;
151
+ border-top-left-radius: var(--rounded-m);
152
152
  border-top-right-radius: 0;
153
153
  }
154
154
 
155
155
  SCalendarUnit[endHighlighted] {
156
156
  border-bottom-left-radius: 0;
157
- border-bottom-right-radius: 4px;
157
+ border-bottom-right-radius: var(--rounded-m);
158
158
  border-top-left-radius: 0;
159
- border-top-right-radius: 4px;
159
+ border-top-right-radius: var(--rounded-m);
160
160
  }
161
161
 
162
162
  SCalendarUnit[startHighlighted]SCalendarUnit[endHighlighted] {
163
- border-bottom-left-radius: 4px;
164
- border-bottom-right-radius: 4px;
165
- border-top-left-radius: 4px;
166
- border-top-right-radius: 4px;
163
+ border-bottom-left-radius: var(--rounded-m);
164
+ border-bottom-right-radius: var(--rounded-m);
165
+ border-top-left-radius: var(--rounded-m);
166
+ border-top-right-radius: var(--rounded-m);
167
167
  }
168
168
 
169
169
  SCalendarUnit[startSelected]SCalendarUnit[endSelected] {
170
- border-bottom-left-radius: 4px;
171
- border-bottom-right-radius: 4px;
172
- border-top-left-radius: 4px;
173
- border-top-right-radius: 4px;
170
+ border-bottom-left-radius: var(--rounded-m);
171
+ border-bottom-right-radius: var(--rounded-m);
172
+ border-top-left-radius: var(--rounded-m);
173
+ border-top-right-radius: var(--rounded-m);
174
+ }
175
+
176
+ SCalendarUnit[outdated] {
177
+ opacity: 0.2;
174
178
  }
175
179
 
176
180
  SCalendarUnit[disabled] {
@@ -179,10 +183,6 @@ SCalendarUnit[disabled] {
179
183
  pointer-events: none;
180
184
  }
181
185
 
182
- SCalendarUnit[outdated] {
183
- opacity: 0.2;
184
- }
185
-
186
186
  @media (prefers-reduced-motion) {
187
187
  SCalendarUnit {
188
188
  transition: none;
@@ -17,16 +17,18 @@ SPopper {
17
17
  }
18
18
 
19
19
  &:focus {
20
- box-shadow: var(--keyborad-focus);
20
+ box-shadow: var(--keyboard-focus);
21
21
  }
22
22
  }
23
23
 
24
24
  SHeader {
25
25
  display: flex;
26
+ align-items: center;
26
27
  }
27
28
 
28
29
  STitle {
29
- font-size: var(--fs-100);
30
+ font-size: var(--fs-200);
31
+ color: var(--gray-800);
30
32
  height: 32px;
31
33
  width: 100%;
32
34
  display: flex;
@@ -47,6 +47,7 @@ export default function shortDateRangeFormat(dates, { locale = 'en-US', ...optio
47
47
  }
48
48
 
49
49
  if (isSimilarYear) {
50
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
50
51
  const { year, ...newOptions } = options;
51
52
  if (getDayJSLocale(locale) === 'en') {
52
53
  return `${new Intl.DateTimeFormat(locale, newOptions).format(