draft-components 0.52.4 → 0.54.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 (65) hide show
  1. package/components/date-picker/calendar-day.d.ts +17 -0
  2. package/components/date-picker/calendar-day.js +19 -0
  3. package/components/date-picker/calendar-day.js.map +1 -0
  4. package/components/date-picker/calendar-header.d.ts +13 -0
  5. package/components/date-picker/calendar-header.js +19 -0
  6. package/components/date-picker/calendar-header.js.map +1 -0
  7. package/components/date-picker/calendar-row.d.ts +7 -0
  8. package/components/date-picker/calendar-row.js +10 -0
  9. package/components/date-picker/calendar-row.js.map +1 -0
  10. package/components/date-picker/calendar.d.ts +13 -0
  11. package/components/date-picker/calendar.js +63 -0
  12. package/components/date-picker/calendar.js.map +1 -0
  13. package/components/date-picker/date-picker.d.ts +11 -0
  14. package/components/date-picker/date-picker.js +49 -0
  15. package/components/date-picker/date-picker.js.map +1 -0
  16. package/components/date-picker/date-range-picker.d.ts +12 -0
  17. package/components/date-picker/date-range-picker.js +103 -0
  18. package/components/date-picker/date-range-picker.js.map +1 -0
  19. package/components/date-picker/index.d.ts +2 -0
  20. package/components/date-picker/index.js +15 -0
  21. package/components/date-picker/index.js.map +1 -0
  22. package/components/date-range-picker-popover/date-preset-list.d.ts +18 -0
  23. package/components/date-range-picker-popover/date-preset-list.js +21 -0
  24. package/components/date-range-picker-popover/date-preset-list.js.map +1 -0
  25. package/components/date-range-picker-popover/date-range-picker-popover.d.ts +20 -0
  26. package/components/date-range-picker-popover/date-range-picker-popover.js +78 -0
  27. package/components/date-range-picker-popover/date-range-picker-popover.js.map +1 -0
  28. package/components/date-range-picker-popover/index.d.ts +1 -0
  29. package/components/date-range-picker-popover/index.js +14 -0
  30. package/components/date-range-picker-popover/index.js.map +1 -0
  31. package/components/index.d.ts +4 -2
  32. package/components/index.js +4 -2
  33. package/components/index.js.map +1 -1
  34. package/components/non-ideal-state-view/non-ideal-state-view.js +1 -1
  35. package/components/non-ideal-state-view/non-ideal-state-view.js.map +1 -1
  36. package/components/toast/toast.d.ts +5 -8
  37. package/components/toast/toast.js +3 -3
  38. package/components/toast/toast.js.map +1 -1
  39. package/components/toaster/index.d.ts +1 -0
  40. package/components/toaster/index.js +14 -0
  41. package/components/toaster/index.js.map +1 -0
  42. package/components/toaster/toaster.d.ts +17 -0
  43. package/components/toaster/toaster.js +78 -0
  44. package/components/toaster/toaster.js.map +1 -0
  45. package/components/toaster/use-toasts.d.ts +22 -0
  46. package/components/toaster/use-toasts.js +42 -0
  47. package/components/toaster/use-toasts.js.map +1 -0
  48. package/css/draft-components.css +2 -2
  49. package/lib/date-helpers.d.ts +34 -0
  50. package/lib/date-helpers.js +102 -0
  51. package/lib/date-helpers.js.map +1 -0
  52. package/lib/index.d.ts +1 -0
  53. package/lib/index.js +2 -1
  54. package/lib/index.js.map +1 -1
  55. package/package.json +1 -5
  56. package/scss/abstracts/_variables.scss +1 -0
  57. package/scss/components/_button.scss +14 -12
  58. package/scss/components/_date-picker.scss +178 -0
  59. package/scss/components/_date-range-picker-popover.scss +112 -0
  60. package/scss/components/_index.scss +3 -0
  61. package/scss/components/_input.scss +1 -1
  62. package/scss/components/_non-ideal-state-view.scss +4 -0
  63. package/scss/components/_toast.scss +26 -17
  64. package/scss/components/_toaster.scss +87 -0
  65. package/scss/themes/_default-theme.scss +27 -5
@@ -0,0 +1,178 @@
1
+ @use 'sass:math' as math;
2
+
3
+ $_calendar-cell-gap: $gap-2x;
4
+ $_calendar-cell-size: px-to-rem(30px);
5
+ $_calendar-day-border: 1px dashed var(--dc-calendar-border-color);
6
+
7
+ .dc-date-picker,
8
+ .dc-date-range-picker {
9
+ display: inline-block;
10
+ }
11
+
12
+ .dc-calendar {
13
+ font-family: var(--dc-font-base);
14
+ }
15
+
16
+ .dc-calendar-header {
17
+ display: flex;
18
+ align-items: center;
19
+ }
20
+
21
+ .dc-calendar-header > * + * {
22
+ margin-left: $gap-1x;
23
+ }
24
+
25
+ .dc-calendar-header__title {
26
+ font-size: $font-size-sm;
27
+ font-weight: $font-weight-normal;
28
+ flex: auto;
29
+ text-align: center;
30
+ color: var(--dc-calendar-text-color);
31
+ }
32
+
33
+ .dc-calendar-header__title::first-letter {
34
+ text-transform: uppercase;
35
+ }
36
+
37
+ .dc-calendar-header__btn {
38
+ color: var(--dc-calendar-arrow-color);
39
+ }
40
+
41
+ .dc-calendar__row-group > * + * {
42
+ margin-top: $_calendar-cell-gap;
43
+ }
44
+
45
+ .dc-calendar__row-group > *:first-child {
46
+ justify-content: flex-end;
47
+ }
48
+
49
+ .dc-calendar-row {
50
+ display: flex;
51
+ }
52
+
53
+ .dc-calendar-row_head {
54
+ margin-bottom: $gap-2x;
55
+ padding: $gap-2x 0;
56
+ border-bottom: 1px solid var(--dc-calendar-border-secondary-color);
57
+ }
58
+
59
+ .dc-calendar-row_head > * {
60
+ font-size: $font-size-xs;
61
+ flex: auto;
62
+ text-align: center;
63
+ color: var(--dc-calendar-text-secondary-color);
64
+ }
65
+
66
+ .dc-calendar-row_head > * + * {
67
+ margin-left: $_calendar-cell-gap;
68
+ }
69
+
70
+ .dc-calendar-day {
71
+ position: relative;
72
+ flex: 0 0 $_calendar-cell-size;
73
+ height: $_calendar-cell-size;
74
+ color: var(--dc-calendar-text-color);
75
+ }
76
+
77
+ .dc-calendar-day::before {
78
+ position: absolute;
79
+ top: 0;
80
+ right: 0;
81
+ bottom: 0;
82
+ left: 0;
83
+ content: '';
84
+ border-radius: inherit;
85
+ }
86
+
87
+ .dc-calendar-day__btn {
88
+ font-size: $font-size-sm;
89
+ line-height: 1;
90
+ position: relative;
91
+ display: inline-block;
92
+ box-sizing: border-box;
93
+ width: $_calendar-cell-size;
94
+ height: $_calendar-cell-size;
95
+ margin: 0;
96
+ padding: 0;
97
+ text-align: center;
98
+ color: inherit;
99
+ border: 1px solid transparent;
100
+ border-radius: 50%;
101
+ background: none;
102
+ appearance: none;
103
+ }
104
+
105
+ .dc-calendar-day__btn:hover {
106
+ z-index: 1;
107
+ border-color: var(--dc-calendar-border-color);
108
+ }
109
+
110
+ .dc-calendar-day__btn:focus {
111
+ z-index: 1;
112
+ outline: none;
113
+ @include focus-ring;
114
+ }
115
+
116
+ .dc-calendar-day_range-preview-start:not(.dc-calendar-day_selected) .dc-calendar-day__btn,
117
+ .dc-calendar-day_range-preview-end:not(.dc-calendar-day_selected) .dc-calendar-day__btn {
118
+ border-color: var(--dc-calendar-border-color);
119
+ }
120
+
121
+ .dc-calendar-day + .dc-calendar-day {
122
+ padding-left: $_calendar-cell-gap;
123
+ }
124
+
125
+ .dc-calendar-day + .dc-calendar-day_range-start,
126
+ .dc-calendar-day + .dc-calendar-day_range-preview-start {
127
+ margin-left: $_calendar-cell-gap;
128
+ padding-left: 0;
129
+ }
130
+
131
+ .dc-calendar-day_in-range::before {
132
+ background: $blue-100;
133
+ }
134
+
135
+ .dc-calendar-day_in-range-preview::before {
136
+ border-top: $_calendar-day-border;
137
+ border-bottom: $_calendar-day-border;
138
+ }
139
+
140
+ .dc-calendar-day_in-range-preview:first-child::before,
141
+ .dc-calendar-day_in-range-preview.dc-calendar-day_range-preview-start::before {
142
+ border-left: $_calendar-day-border;
143
+ }
144
+
145
+ .dc-calendar-day_in-range-preview:last-child::before,
146
+ .dc-calendar-day_in-range-preview.dc-calendar-day_range-preview-end::before {
147
+ border-right: $_calendar-day-border;
148
+ }
149
+
150
+ .dc-calendar-day_range-start,
151
+ .dc-calendar-day_range-preview-start,
152
+ .dc-calendar-day:first-child {
153
+ border-top-left-radius: math.div($_calendar-cell-size, 2);
154
+ border-bottom-left-radius: math.div($_calendar-cell-size, 2);
155
+ }
156
+
157
+ .dc-calendar-day_range-end,
158
+ .dc-calendar-day_range-preview-end,
159
+ .dc-calendar-day:last-child {
160
+ border-top-right-radius: math.div($_calendar-cell-size, 2);
161
+ border-bottom-right-radius: math.div($_calendar-cell-size, 2);
162
+ }
163
+
164
+ .dc-calendar-day_current {
165
+ color: var(--dc-calendar-current-day-text-color);
166
+ }
167
+
168
+ .dc-calendar-day_selected {
169
+ color: var(--dc-calendar-selected-day-text-color);
170
+ }
171
+
172
+ .dc-calendar-day_selected .dc-calendar-day__btn {
173
+ background: var(--dc-calendar-selected-day-bg-color);
174
+ }
175
+
176
+ .dc-calendar-day_selected .dc-calendar-day__btn:hover {
177
+ border-color: var(--dc-calendar-selected-day-bg-color);
178
+ }
@@ -0,0 +1,112 @@
1
+ .dc-date-range-picker-popover {
2
+ max-height: initial !important;
3
+ }
4
+
5
+ .dc-date-range-picker-popover__content {
6
+ }
7
+
8
+ .dc-date-range-picker-popover__content > * + * {
9
+ margin-top: $gap-4x;
10
+ }
11
+
12
+ .dc-date-range-picker-popover__content-body {
13
+ display: flex;
14
+ }
15
+
16
+ .dc-date-range-picker-popover__content-body > * + * {
17
+ margin-left: $gap-4x;
18
+ }
19
+
20
+ .dc-date-range-picker-popover__content-footer {
21
+ display: flex;
22
+ align-items: center;
23
+ justify-content: flex-end;
24
+ width: 100%;
25
+ }
26
+
27
+ .dc-date-range-picker-popover__content-footer > * + * {
28
+ margin-left: $gap-2x;
29
+ }
30
+
31
+ .dc-date-preset-list {
32
+ margin: 0;
33
+ padding: 0;
34
+ list-style: none;
35
+ }
36
+
37
+ .dc-date-preset-list > * + * {
38
+ margin-top: $gap-1x;
39
+ }
40
+
41
+ .dc-date-preset-list-item {
42
+ width: 100%;
43
+ }
44
+
45
+ .dc-date-preset-list-item__btn {
46
+ font-size: $font-size-sm;
47
+ width: 100%;
48
+ padding: $gap-2x $gap-3x;
49
+ cursor: pointer;
50
+ text-align: left;
51
+ color: var(--dc-date-preset-btn-text-color);
52
+ border: none;
53
+ border-radius: $border-radius-md;
54
+ background: var(--dc-date-preset-btn-bg);
55
+ appearance: none;
56
+ }
57
+
58
+ .dc-date-preset-list-item__btn:focus {
59
+ outline: none;
60
+ box-shadow: inset 0 0 0 px-to-rem(2px) var(--dc-focus-border-color);
61
+ }
62
+
63
+ .dc-date-preset-list-item__btn:hover {
64
+ color: var(--dc-date-preset-hover-btn-text-color);
65
+ background: var(--dc-date-preset-hover-btn-bg);
66
+ }
67
+
68
+ .dc-date-preset-list-item__btn_selected,
69
+ .dc-date-preset-list-item__btn_selected:hover {
70
+ color: var(--dc-date-preset-selected-btn-text-color);
71
+ background: var(--dc-date-preset-selected-btn-bg);
72
+ }
73
+
74
+ @media screen and (max-width: 599px) {
75
+ .dc-date-range-picker-popover__content-body {
76
+ display: block;
77
+ }
78
+
79
+ .dc-date-range-picker-popover__content-body > * + * {
80
+ margin-top: $gap-1x;
81
+ margin-left: 0;
82
+ }
83
+
84
+ .dc-date-preset-list {
85
+ display: flex;
86
+ overflow-y: auto;
87
+ max-width: px-to-rem(258px);
88
+ padding-bottom: $gap-3x;
89
+ }
90
+
91
+ .dc-date-preset-list > * + * {
92
+ margin-top: 0;
93
+ margin-left: $gap-2x;
94
+ }
95
+
96
+ .dc-date-preset-list-item {
97
+ white-space: nowrap;
98
+ }
99
+
100
+ .dc-date-preset-list-item__btn {
101
+ border-radius: $border-radius-lg;
102
+ }
103
+
104
+ .dc-date-preset-list-item__btn:not(.dc-date-preset-list-item__btn_selected) {
105
+ color: var(--dc-date-preset-btn-text-color);
106
+ background: var(--dc-date-preset-btn-bg);
107
+ }
108
+
109
+ .dc-date-range-picker-popover__content-footer > * {
110
+ flex: auto;
111
+ }
112
+ }
@@ -10,6 +10,8 @@
10
10
  @import 'number-input';
11
11
  @import 'password-input';
12
12
  @import 'datetime-input';
13
+ @import 'date-picker';
14
+ @import 'date-range-picker-popover';
13
15
  @import 'slider';
14
16
  @import 'textarea';
15
17
  @import 'select';
@@ -26,6 +28,7 @@
26
28
  @import 'non-ideal-state-view';
27
29
  @import 'loading-view';
28
30
  @import 'toast';
31
+ @import 'toaster';
29
32
  @import 'breadcrumbs';
30
33
  @import 'vertical-navigation';
31
34
  @import 'segmented-control';
@@ -34,7 +34,7 @@
34
34
  }
35
35
 
36
36
  .dc-input_invalid {
37
- border-color: var(--dc-input-error-color);
37
+ --dc-input-border-color: var(--dc-input-error-color);
38
38
  }
39
39
 
40
40
  .dc-input_invalid:focus,
@@ -18,6 +18,10 @@
18
18
  color: var(--dc-non-ideal-state-icon-color);
19
19
  }
20
20
 
21
+ .dc-non-ideal-state__description {
22
+ color: var(--dc-non-ideal-state-description-color);
23
+ }
24
+
21
25
  .dc-non-ideal-state__icon_red {
22
26
  color: $red-500;
23
27
  }
@@ -1,15 +1,14 @@
1
1
  .dc-toast-btn {
2
+ font-size: $font-size-sm;
2
3
  padding: $gap-1x $gap-3x;
4
+ cursor: pointer;
3
5
  transition: $transition-quick;
4
6
  transition-property: opacity;
5
7
  opacity: $opacity-65;
6
8
  color: var(--dc-toast-btn-text-color);
7
- cursor: pointer;
8
9
  border: none;
9
10
  border-radius: $border-radius-md;
10
11
  background: var(--dc-toast-btn-bg);
11
- backdrop-filter: blur(10px);
12
- font-size: $font-size-sm;
13
12
  appearance: none;
14
13
 
15
14
  &:hover {
@@ -17,23 +16,27 @@
17
16
  }
18
17
 
19
18
  &:focus {
20
- outline: none;
21
19
  opacity: $opacity-100;
20
+ outline: none;
21
+ box-shadow: 0 0 0 0.125rem $gray-500;
22
22
  }
23
23
  }
24
24
 
25
25
  .dc-toast {
26
+ font-family: var(--dc-font-base);
27
+ font-size: $font-size-sm;
28
+ position: relative;
26
29
  display: inline-flex;
27
30
  box-sizing: border-box;
28
31
  width: auto;
29
- max-width: 38rem;
30
- min-width: 40%;
32
+ min-width: px-to-rem(256px);
33
+ max-width: px-to-rem(600px);
34
+ text-align: left;
31
35
  color: var(--dc-toast-text-color);
32
- border-radius: $border-radius-lg;
36
+ border-radius: $border-radius-xl;
33
37
  background: var(--dc-toast-bg);
34
- font-family: var(--dc-font-base);
35
- font-size: $font-size-sm;
36
38
  }
39
+
37
40
  .dc-toast_full-width {
38
41
  width: 100%;
39
42
  max-width: initial;
@@ -61,31 +64,37 @@
61
64
  }
62
65
 
63
66
  .dc-toast__icon {
64
- margin-right: $gap-3x;
67
+ margin-top: px-to-rem(2px);
68
+ margin-right: $gap-4x;
65
69
  }
70
+
66
71
  .dc-toast_appearance_error .dc-toast__icon {
67
72
  color: $red-500;
68
73
  }
74
+
69
75
  .dc-toast_appearance_warning .dc-toast__icon {
70
76
  color: $orange-500;
71
77
  }
78
+
72
79
  .dc-toast_appearance_success .dc-toast__icon {
73
80
  color: $green-400;
74
81
  }
82
+
75
83
  .dc-toast_appearance_info .dc-toast__icon {
76
- color: $blue-300;
84
+ color: $blue-400;
77
85
  }
78
86
 
79
- .dc-toast__heading,
80
- .dc-toast__message {
81
- margin: 0;
87
+ .dc-toast__message,
88
+ .dc-toast__informative-text {
82
89
  font-size: inherit;
83
90
  font-weight: $font-weight-normal;
84
- line-height: $leading-tight;
91
+ line-height: $leading-normal;
92
+ margin: 0;
85
93
  }
86
94
 
87
- .dc-toast__message {
88
- opacity: $opacity-75;
95
+ .dc-toast__informative-text {
96
+ font-size: 90%;
97
+ color: var(--dc-toast-secondary-text-color);
89
98
  }
90
99
 
91
100
  .dc-toast__content > * + * {
@@ -0,0 +1,87 @@
1
+ .toaster {
2
+ position: fixed;
3
+ z-index: $zindex-toast;
4
+ right: $gap-2x;
5
+ left: $gap-2x;
6
+ box-sizing: border-box;
7
+ margin: 0;
8
+ padding: 0;
9
+ list-style: none;
10
+ pointer-events: none;
11
+ }
12
+
13
+ .toaster_position_top-left,
14
+ .toaster_position_top-center,
15
+ .toaster_position_top-right {
16
+ top: $gap-2x;
17
+ }
18
+
19
+ .toaster_position_bottom-left,
20
+ .toaster_position_bottom-center,
21
+ .toaster_position_bottom-right {
22
+ bottom: $gap-2x;
23
+ }
24
+
25
+ .toaster_position_top-left > *,
26
+ .toaster_position_bottom-left > * {
27
+ text-align: left;
28
+ }
29
+
30
+ .toaster_position_top-center > *,
31
+ .toaster_position_bottom-center > * {
32
+ text-align: center;
33
+ }
34
+
35
+ .toaster_position_top-right > *,
36
+ .toaster_position_bottom-right > * {
37
+ text-align: right;
38
+ }
39
+
40
+ .toaster > * {
41
+ position: absolute;
42
+ right: 0;
43
+ left: 0;
44
+ transition: transform 250ms ease;
45
+ transform: translateX(-50%, 0);
46
+ }
47
+
48
+ .toaster__item {
49
+ animation: 250ms ease forwards;
50
+ pointer-events: all;
51
+ box-shadow: 0 0 0 1px $gray-600, $shadow-lg;
52
+ }
53
+
54
+ @keyframes dc-show-toast-from-top {
55
+ from {
56
+ opacity: 0;
57
+ transform: translateY(-100%) scale(0.75);
58
+ }
59
+ to {
60
+ opacity: 1;
61
+ transform: translateY(0) scale(1);
62
+ }
63
+ }
64
+
65
+ .toaster_position_top-left .toaster__item,
66
+ .toaster_position_top-center .toaster__item,
67
+ .toaster_position_top-right .toaster__item {
68
+ animation-name: dc-show-toast-from-top;
69
+ }
70
+
71
+ @keyframes dc-show-toast-from-bottom {
72
+ from {
73
+ opacity: 0;
74
+ transform: translateY(0) scale(0.75);
75
+ }
76
+ to {
77
+ opacity: 1;
78
+ transform: translateY(-100%) scale(1);
79
+ }
80
+ }
81
+
82
+ .toaster_position_bottom-left .toaster__item,
83
+ .toaster_position_bottom-center .toaster__item,
84
+ .toaster_position_bottom-right .toaster__item {
85
+ animation-name: dc-show-toast-from-bottom;
86
+ }
87
+
@@ -153,6 +153,30 @@
153
153
  --dc-slider-track-bg: #{$gray-400};
154
154
  --dc-slider-fill-track-bg: #{$blue-500};
155
155
 
156
+ /*------------------------------------*\
157
+ #DATE PICKER
158
+ \*------------------------------------*/
159
+ --dc-calendar-text-color: #{$gray-800};
160
+ --dc-calendar-text-secondary-color: #{$gray-500};
161
+ --dc-calendar-border-color: #{$gray-500};
162
+ --dc-calendar-border-secondary-color: #{$gray-200};
163
+ --dc-calendar-arrow-color: #{$blue-600};
164
+ --dc-calendar-current-day-text-color: #{$orange-600};
165
+ --dc-calendar-selected-day-text-color: #{$white};
166
+ --dc-calendar-selected-day-bg-color: #{$blue-500};
167
+
168
+ /*------------------------------------*\
169
+ #DATE RANGE PICKER POPOVER
170
+ \*------------------------------------*/
171
+ --dc-date-preset-btn-text-color: #{$gray-500};
172
+ --dc-date-preset-btn-bg: none;
173
+ --dc-date-preset-phone-btn-text-color: #{$gray-800};
174
+ --dc-date-preset-phone-btn-bg: #{$gray-100};
175
+ --dc-date-preset-hover-btn-text-color: #{$gray-800};
176
+ --dc-date-preset-hover-btn-bg: #{$gray-100};
177
+ --dc-date-preset-selected-btn-text-color: #{$blue-700};
178
+ --dc-date-preset-selected-btn-bg: #{$blue-100};
179
+
156
180
  /*------------------------------------*\
157
181
  #ACTIONS GROUP
158
182
  \*------------------------------------*/
@@ -163,20 +187,18 @@
163
187
  #NON IDEAL STATE VIEW
164
188
  \*------------------------------------*/
165
189
  --dc-non-ideal-state-text-color: var(--dc-primary-text-color);
190
+ --dc-non-ideal-state-description-color: var(--dc-secondary-text-color);
166
191
  --dc-non-ideal-state-icon-color: var(--dc-tertiary-text-color);
167
192
 
168
193
  /*------------------------------------*\
169
194
  #TOAST
170
195
  \*------------------------------------*/
171
- --dc-toast-bg: #{$gray-800};
196
+ --dc-toast-bg: #{$gray-700};
172
197
  --dc-toast-text-color: #{$white};
198
+ --dc-toast-secondary-text-color: #{$gray-300};
173
199
  --dc-toast-btn-bg: #{rgba($white, $opacity-10)};
174
200
  --dc-toast-btn-text-color: #{$white};
175
201
 
176
- @supports (backdrop-filter: blur()) {
177
- --dc-toast-bg: #{rgba($gray-800, $opacity-90)};
178
- }
179
-
180
202
  /*------------------------------------*\
181
203
  #BREADCRUMBS
182
204
  \*------------------------------------*/