Skip to content

Commit af74354

Browse files
committed
feat: add RelativeRangeDatePicker component
1 parent 6a73684 commit af74354

38 files changed

+2040
-8
lines changed

package-lock.json

Lines changed: 49 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@
6060
"@gravity-ui/prettier-config": "^1.1.0",
6161
"@gravity-ui/stylelint-config": "^4.0.1",
6262
"@gravity-ui/tsconfig": "^1.0.0",
63-
"@gravity-ui/uikit": "^6.0.0",
63+
"@gravity-ui/uikit": "^6.1.1",
6464
"@storybook/addon-a11y": "^7.6.15",
6565
"@storybook/addon-essentials": "^7.6.15",
6666
"@storybook/addon-viewport": "^7.6.15",

src/components/DatePicker/__stories__/DatePicker.stories.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,7 @@ export const Default = {
3939
: undefined,
4040
};
4141
return (
42-
// eslint-disable-next-line jsx-a11y/label-has-associated-control
43-
<label>
42+
<label htmlFor={props.id}>
4443
<span style={{marginInlineEnd: 4}}>Event date</span>
4544
<DatePicker {...props} />
4645
</label>
@@ -49,7 +48,7 @@ export const Default = {
4948
args: {
5049
onUpdate: (res) => {
5150
toaster.add({
52-
name: 'calendar-on-change-cb',
51+
name: 'date-picker-on-change-cb',
5352
title: 'onUpdate callback',
5453
theme: 'success',
5554
content: (

src/components/RelativeDatePicker/RelativeDatePicker.scss

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@ $block: '.#{variables.$ns}relative-date-picker';
99

1010
outline: none;
1111

12+
&__input {
13+
&_mobile {
14+
pointer-events: none;
15+
}
16+
}
17+
1218
&__field {
1319
width: 100%;
1420
}
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
@use '../variables';
2+
3+
$block: '.#{variables.$ns}relative-range-date-picker';
4+
5+
#{$block} {
6+
position: relative;
7+
8+
display: inline-flex;
9+
10+
&__input {
11+
&_mobile {
12+
pointer-events: none;
13+
}
14+
}
15+
16+
&__mobile-trigger {
17+
--_--g-date-mobile-trigger-clear-width: 0px;
18+
--_--g-date-mobile-trigger-errors-width: 0px;
19+
--_--g-date-mobile-trigger-button-width: 24px;
20+
21+
position: absolute;
22+
inset: 0;
23+
inset-inline-end: calc(
24+
var(--g-spacing-2) + var(--_--g-date-mobile-trigger-button-width) +
25+
var(--_--g-date-mobile-trigger-clear-width) +
26+
var(--_--g-date-mobile-trigger-errors-width)
27+
);
28+
29+
opacity: 0;
30+
31+
&_size_s {
32+
--_--g-date-mobile-trigger-button-width: 20px;
33+
}
34+
&_size_l {
35+
--_--g-date-mobile-trigger-button-width: 28px;
36+
}
37+
&_size_xl {
38+
--_--g-date-mobile-trigger-button-width: 36px;
39+
}
40+
41+
&_has-clear {
42+
--_--g-date-mobile-trigger-clear-width: calc(
43+
var(--_--g-date-mobile-trigger-button-width) + 2px
44+
);
45+
}
46+
&_has-errors {
47+
--_--g-date-mobile-trigger-errors-width: calc(
48+
var(--_--g-date-mobile-trigger-button-width) + 2px
49+
);
50+
}
51+
}
52+
53+
&__value-label {
54+
display: flex;
55+
56+
width: 100%;
57+
58+
& > div {
59+
flex: 1 0 0;
60+
}
61+
62+
&-content {
63+
display: flex;
64+
flex-direction: column;
65+
}
66+
67+
&-tooltip {
68+
--g-popover-max-width: 'none';
69+
}
70+
71+
&-item,
72+
&-to,
73+
&-tz {
74+
text-align: center;
75+
}
76+
77+
&-tz {
78+
margin-block-start: 5px;
79+
80+
color: var(--g-color-text-hint);
81+
}
82+
}
83+
}

0 commit comments

Comments
 (0)