@keenmate/web-daterangepicker 1.7.0-rc01 → 1.8.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.
@@ -1,370 +0,0 @@
1
- // ==============================================================================
2
- // DATE RANGE PICKER - HEADER & NAVIGATION
3
- // ==============================================================================
4
- // Month/year header, navigation buttons, and rolling selector
5
-
6
- @use 'variables' as *;
7
-
8
- // ==============================================================================
9
- // CALENDAR HEADER
10
- // ==============================================================================
11
-
12
- .drp-date-picker__header {
13
- display: flex;
14
- align-items: center;
15
- justify-content: space-between;
16
- margin-bottom: var(--drp-spacing-md);
17
- gap: var(--drp-spacing-sm);
18
-
19
- // Static header (used in unified navigation mode)
20
- &--static {
21
- justify-content: center;
22
-
23
- .drp-date-picker__month-year {
24
- cursor: default;
25
-
26
- &:hover {
27
- background-color: transparent;
28
- }
29
- }
30
- }
31
- }
32
-
33
- // ==============================================================================
34
- // MONTH/YEAR DISPLAY (CLICKABLE TO OPEN ROLLING SELECTOR)
35
- // ==============================================================================
36
-
37
- .drp-date-picker__month-year {
38
- flex: 1;
39
- text-align: center;
40
- font-weight: var(--drp-font-weight-semibold);
41
- font-size: var(--drp-font-size-base);
42
- color: var(--drp-header-text-color);
43
- padding: var(--drp-spacing-sm) var(--drp-spacing-md);
44
- border-radius: var(--drp-border-radius);
45
- cursor: pointer;
46
-
47
- &:hover {
48
- background-color: var(--drp-header-bg-hover);
49
- }
50
-
51
- &:active {
52
- background-color: var(--drp-header-bg-active);
53
- }
54
- }
55
-
56
- // ==============================================================================
57
- // NAVIGATION BUTTONS (PREVIOUS/NEXT MONTH)
58
- // ==============================================================================
59
-
60
- .drp-date-picker__nav {
61
- width: $drp-nav-size;
62
- height: $drp-nav-size;
63
- display: flex;
64
- align-items: center;
65
- justify-content: center;
66
- border: var(--drp-border-width-base) solid var(--drp-nav-border-color);
67
- border-radius: var(--drp-border-radius);
68
- background: transparent;
69
- cursor: pointer;
70
- font-size: var(--drp-font-size-lg);
71
- color: var(--drp-nav-text-color);
72
-
73
- &:hover {
74
- background-color: var(--drp-nav-bg-hover);
75
- border-color: var(--drp-nav-border-hover);
76
- }
77
-
78
- &:active {
79
- background-color: var(--drp-nav-bg-active);
80
- }
81
-
82
- // Disabled state
83
- &--disabled,
84
- &[disabled] {
85
- opacity: $drp-nav-opacity-disabled;
86
- cursor: not-allowed;
87
- pointer-events: none;
88
-
89
- &:hover {
90
- background-color: transparent;
91
- border-color: var(--drp-nav-border-color);
92
- }
93
- }
94
-
95
- &--prev::before {
96
- content: '‹';
97
- }
98
-
99
- &--next::before {
100
- content: '›';
101
- }
102
- }
103
-
104
- // ==============================================================================
105
- // ROLLING SELECTOR VIEW (MONTH/YEAR SELECTION)
106
- // ==============================================================================
107
-
108
- .drp-date-picker__rolling-selector {
109
- // Absolutely positioned to overlay calendar grid
110
- position: absolute;
111
- inset: 0; // Fill entire container from all edges
112
- display: none;
113
- z-index: 10; // Above calendar grid
114
-
115
- &.drp-date-picker__rolling-selector--visible {
116
- display: flex;
117
-
118
- // Hide calendar grid when rolling selector is visible
119
- ~ .drp-date-picker__weekdays,
120
- ~ .drp-date-picker__days {
121
- visibility: hidden; // Keeps elements in layout flow (maintains container height)
122
- }
123
- }
124
-
125
- gap: var(--drp-spacing-xs);
126
- }
127
-
128
- .drp-date-picker__rolling-list {
129
- flex: 1;
130
- min-width: 0; // Allow flex child to shrink below content size (enables ellipsis on items)
131
- height: 100%; // Fill parent height
132
- overflow-y: auto;
133
- border: var(--drp-border-width-base) solid var(--drp-rolling-border-color);
134
- border-radius: var(--drp-border-radius);
135
-
136
- // Flex layout to control child item sizing
137
- display: flex;
138
- flex-direction: column;
139
-
140
- // Smooth scrolling
141
- scroll-behavior: smooth;
142
-
143
- // Custom scrollbar
144
- &::-webkit-scrollbar {
145
- width: $drp-rolling-scrollbar-width;
146
- }
147
-
148
- &::-webkit-scrollbar-track {
149
- background: var(--drp-rolling-bg);
150
- }
151
-
152
- &::-webkit-scrollbar-thumb {
153
- background: var(--drp-rolling-scrollbar-thumb);
154
- border-radius: 3px;
155
-
156
- &:hover {
157
- background: var(--drp-rolling-scrollbar-thumb-hover);
158
- }
159
- }
160
- }
161
-
162
- .drp-date-picker__rolling-item {
163
- padding: #{$drp-rolling-item-padding-v} #{$drp-rolling-item-padding-h};
164
- cursor: pointer;
165
- font-size: #{$drp-rolling-item-font-size};
166
- min-height: $drp-rolling-item-min-height;
167
- flex-shrink: 0;
168
-
169
- // Flexbox for vertical and horizontal centering
170
- display: flex;
171
- align-items: center;
172
- justify-content: var(--drp-rolling-item-justify-content, #{$drp-rolling-item-justify-content});
173
-
174
- &:hover {
175
- background-color: var(--drp-rolling-item-bg-hover);
176
- }
177
-
178
- &--selected {
179
- background-color: var(--drp-rolling-item-bg-selected);
180
- color: var(--drp-rolling-item-color-selected);
181
- font-weight: $drp-rolling-item-font-weight-selected;
182
-
183
- &:hover {
184
- background-color: var(--drp-rolling-item-bg-selected-hover);
185
- }
186
- }
187
- }
188
-
189
- // Text wrapper for ellipsis support
190
- .drp-date-picker__rolling-item-text {
191
- // Text overflow handling for long month names
192
- overflow: hidden;
193
- text-overflow: ellipsis;
194
- white-space: nowrap;
195
- width: 100%;
196
- min-width: 0; // Allow flex child to shrink below content size
197
- }
198
-
199
- // ==============================================================================
200
- // UNIFIED NAVIGATION (MULTI-MONTH CALENDARS)
201
- // ==============================================================================
202
-
203
- // Unified header - appears above all months
204
- .drp-date-picker__unified-header {
205
- display: flex;
206
- align-items: center;
207
- justify-content: space-between;
208
- margin-bottom: var(--drp-spacing-lg);
209
- gap: var(--drp-spacing-sm);
210
- padding: 0 var(--drp-spacing-sm);
211
- }
212
-
213
- // Date range display in unified header (e.g., "Jan 2025 - Jun 2025")
214
- .drp-date-picker__unified-range {
215
- flex: 1;
216
- text-align: center;
217
- font-weight: var(--drp-font-weight-semibold);
218
- font-size: var(--drp-font-size-lg);
219
- color: var(--drp-unified-range-text-color);
220
- padding: var(--drp-spacing-sm) var(--drp-spacing-md);
221
- border-radius: var(--drp-border-radius);
222
- cursor: pointer;
223
-
224
- &:hover {
225
- background-color: var(--drp-unified-range-bg-hover);
226
- }
227
-
228
- &:active {
229
- background-color: var(--drp-unified-range-bg-active);
230
- }
231
-
232
- // Non-interactive state (when unifiedHeaderInteractive is false)
233
- &--static {
234
- cursor: default !important;
235
-
236
- &:hover {
237
- background-color: transparent;
238
- }
239
-
240
- &:active {
241
- background-color: transparent;
242
- }
243
- }
244
- }
245
-
246
- // Unified rolling selector - overlay for all months
247
- .drp-date-picker__unified-rolling-selector {
248
- position: absolute;
249
- // Position below unified header
250
- top: calc(var(--drp-spacing-lg) + var(--drp-spacing-lg) * 2);
251
- // Center horizontally
252
- left: 50%;
253
- transform: translateX(-50%);
254
-
255
- // Size constraints (responsive but limited)
256
- width: min(90%, 450px); // 90% of calendar width or 450px, whichever is smaller
257
- height: 350px;
258
- max-height: 350px;
259
-
260
- display: none;
261
- z-index: 100; // Above everything
262
- background: var(--drp-dropdown-background); // White background to cover calendar below
263
- gap: var(--drp-spacing-xs); // Match normal rolling selector gap
264
-
265
- &--visible {
266
- display: flex;
267
- }
268
-
269
- // Apply rolling list styles to child lists
270
- .drp-date-picker__rolling-list {
271
- flex: 1;
272
- min-width: 0;
273
- height: 100%;
274
- overflow-y: auto;
275
- border: var(--drp-border-width-base) solid var(--drp-rolling-border-color);
276
- border-radius: var(--drp-border-radius);
277
- display: flex;
278
- flex-direction: column;
279
- scroll-behavior: smooth;
280
-
281
- // Custom scrollbar
282
- &::-webkit-scrollbar {
283
- width: $drp-rolling-scrollbar-width;
284
- }
285
-
286
- &::-webkit-scrollbar-track {
287
- background: var(--drp-rolling-bg);
288
- }
289
-
290
- &::-webkit-scrollbar-thumb {
291
- background: var(--drp-rolling-scrollbar-thumb);
292
- border-radius: 3px;
293
-
294
- &:hover {
295
- background: var(--drp-rolling-scrollbar-thumb-hover);
296
- }
297
- }
298
- }
299
-
300
- // Apply rolling item styles to child items
301
- .drp-date-picker__rolling-item {
302
- padding: #{$drp-rolling-item-padding-v} #{$drp-rolling-item-padding-h};
303
- cursor: pointer;
304
- font-size: #{$drp-rolling-item-font-size};
305
- min-height: $drp-rolling-item-min-height;
306
- flex-shrink: 0;
307
- display: flex;
308
- align-items: center;
309
- justify-content: var(--drp-rolling-item-justify-content, #{$drp-rolling-item-justify-content});
310
-
311
- &:hover {
312
- background-color: var(--drp-rolling-item-bg-hover);
313
- }
314
-
315
- &--selected {
316
- background-color: var(--drp-rolling-item-bg-selected);
317
- color: var(--drp-rolling-item-color-selected);
318
- font-weight: $drp-rolling-item-font-weight-selected;
319
-
320
- &:hover {
321
- background-color: var(--drp-rolling-item-bg-selected-hover);
322
- }
323
- }
324
-
325
- &--disabled {
326
- color: var(--drp-unified-rolling-disabled-color);
327
- opacity: 0.4;
328
- cursor: not-allowed;
329
- }
330
- }
331
-
332
- // Text wrapper for ellipsis support
333
- .drp-date-picker__rolling-item-text {
334
- overflow: hidden;
335
- text-overflow: ellipsis;
336
- white-space: nowrap;
337
- width: 100%;
338
- min-width: 0;
339
- }
340
- }
341
-
342
- // When unified navigation is enabled, hide individual month headers nav buttons
343
- // but keep the month/year text visible (it becomes static display, not clickable)
344
- .drp-date-picker--unified-nav {
345
- .drp-date-picker__month {
346
- .drp-date-picker__header {
347
- // Hide nav buttons in individual month headers
348
- .drp-date-picker__nav {
349
- display: none;
350
- }
351
-
352
- // Make month/year display static (not clickable)
353
- .drp-date-picker__month-year {
354
- cursor: default;
355
- font-size: var(--drp-font-size-base);
356
- font-weight: var(--drp-font-weight-normal);
357
- color: var(--drp-unified-month-color);
358
-
359
- &:hover {
360
- background-color: transparent;
361
- }
362
- }
363
- }
364
-
365
- // Hide individual month rolling selectors
366
- .drp-date-picker__rolling-selector {
367
- display: none !important;
368
- }
369
- }
370
- }
@@ -1,39 +0,0 @@
1
- /**
2
- * Loading Overlay & Spinner Styles
3
- *
4
- * Used during async validation (e.g., when validateRangeCallback is processing).
5
- */
6
-
7
- @use 'variables' as *;
8
-
9
- .drp-date-picker__loading-overlay {
10
- position: absolute;
11
- top: 0;
12
- left: 0;
13
- right: 0;
14
- bottom: 0;
15
- background-color: var(--drp-loading-overlay-background);
16
- display: flex;
17
- align-items: center;
18
- justify-content: center;
19
- z-index: $drp-z-index-dropdown;
20
- border-radius: var(--drp-border-radius);
21
- }
22
-
23
- .drp-date-picker__loading-spinner {
24
- width: 40px;
25
- height: 40px;
26
- border: 4px solid var(--drp-loading-spinner-color);
27
- border-top-color: var(--drp-loading-spinner-accent);
28
- border-radius: 50%;
29
- animation: drp-spin 0.8s linear infinite;
30
- }
31
-
32
- @keyframes drp-spin {
33
- 0% {
34
- transform: rotate(0deg);
35
- }
36
- 100% {
37
- transform: rotate(360deg);
38
- }
39
- }
@@ -1,50 +0,0 @@
1
- // ==============================================================================
2
- // DATE RANGE PICKER - MODIFIERS
3
- // ==============================================================================
4
-
5
- @use 'variables' as *;
6
-
7
- // ==============================================================================
8
- // TRANSITIONS (OPT-IN FOR PERFORMANCE)
9
- // ==============================================================================
10
- // By default, no transitions for maximum performance
11
- // Add enable-transitions attribute to enable smooth animations
12
-
13
- .drp-date-picker.drp-transitions-enabled {
14
- // Badges - scale animation on hover
15
- .drp-date-picker__badge-cell {
16
- transition: transform var(--drp-transition-fast) var(--drp-easing-snappy);
17
- }
18
-
19
- // Nav buttons - background and border changes
20
- .drp-date-picker__nav {
21
- transition: background-color var(--drp-transition-fast) var(--drp-easing-snappy),
22
- border-color var(--drp-transition-fast) var(--drp-easing-snappy);
23
- }
24
-
25
- // Action buttons - background and border changes
26
- .drp-date-picker__action-btn {
27
- transition: background-color var(--drp-transition-fast) var(--drp-easing-snappy),
28
- border-color var(--drp-transition-fast) var(--drp-easing-snappy);
29
- }
30
-
31
- // Month/year selector - background change
32
- .drp-date-picker__month-year {
33
- transition: background-color var(--drp-transition-fast) var(--drp-easing-snappy);
34
- }
35
-
36
- // Rolling selector items - background change
37
- .drp-date-picker__rolling-item {
38
- transition: background-color var(--drp-transition-fast) var(--drp-easing-snappy);
39
- }
40
- }
41
-
42
- // ==============================================================================
43
- // INLINE MODE MODIFIER
44
- // ==============================================================================
45
-
46
- .drp-date-picker--inline {
47
- position: static;
48
- display: block;
49
- box-shadow: none;
50
- }
@@ -1,100 +0,0 @@
1
- // ==============================================================================
2
- // DATE RANGE PICKER - SUMMARY & ACTIONS
3
- // ==============================================================================
4
- // Selection summary (days/nights count) and action buttons (Today, Clear, Apply)
5
-
6
- @use 'variables' as *;
7
-
8
- // ==============================================================================
9
- // SELECTION SUMMARY (DAYS/NIGHTS COUNT)
10
- // ==============================================================================
11
-
12
- .drp-date-picker__summary {
13
- text-align: center;
14
- padding: var(--drp-spacing-md);
15
- border-top: var(--drp-border-width-base) solid var(--drp-summary-border-color);
16
- font-size: var(--drp-font-size-sm);
17
- color: var(--drp-summary-text-color);
18
-
19
- &--visible {
20
- display: block;
21
- }
22
-
23
- &--hidden {
24
- display: none;
25
- }
26
- }
27
-
28
- .drp-date-picker__summary-count {
29
- font-weight: var(--drp-font-weight-semibold);
30
- color: var(--drp-summary-count-color);
31
- font-size: var(--drp-font-size-base);
32
- }
33
-
34
- // ==============================================================================
35
- // ACTION BUTTONS
36
- // ==============================================================================
37
-
38
- .drp-date-picker__actions {
39
- display: flex;
40
- gap: var(--drp-spacing-sm);
41
- justify-content: space-between;
42
- padding-top: var(--drp-spacing-sm);
43
- border-top: var(--drp-border-width-base) solid var(--drp-summary-border-color);
44
- }
45
-
46
- .drp-date-picker__button {
47
- flex: 1;
48
- padding: var(--drp-spacing-sm) var(--drp-spacing-md);
49
- border: var(--drp-border-width-base) solid var(--drp-button-border-color);
50
- border-radius: var(--drp-border-radius);
51
- background: transparent;
52
- cursor: pointer;
53
- font-family: inherit;
54
- font-size: var(--drp-font-size-sm);
55
- font-weight: var(--drp-font-weight-medium);
56
-
57
- &:hover {
58
- background-color: var(--drp-button-bg-hover);
59
- border-color: var(--drp-button-border-hover);
60
- }
61
-
62
- // Disabled state
63
- &:disabled,
64
- &[disabled] {
65
- opacity: var(--drp-disabled-opacity, $drp-opacity-disabled);
66
- cursor: not-allowed;
67
- pointer-events: none; // Critical - prevents all mouse interactions
68
-
69
- &:hover {
70
- background-color: transparent;
71
- border-color: var(--drp-button-border-color);
72
- }
73
- }
74
-
75
- // Today Button
76
- &--today {
77
- color: var(--drp-button-today-color);
78
- }
79
-
80
- // Clear Button
81
- &--clear {
82
- color: var(--drp-button-clear-color);
83
- }
84
-
85
- // Apply Button (primary action)
86
- &--apply {
87
- background-color: var(--drp-button-apply-bg);
88
- color: var(--drp-button-apply-color);
89
- border-color: var(--drp-button-apply-border);
90
-
91
- &:hover {
92
- background-color: var(--drp-button-apply-bg-hover);
93
- }
94
- }
95
-
96
- // Cancel Button
97
- &--cancel {
98
- color: var(--drp-button-cancel-color);
99
- }
100
- }
@@ -1,39 +0,0 @@
1
- // ==============================================================================
2
- // DATE RANGE PICKER - TOOLTIPS
3
- // ==============================================================================
4
- // Floating UI tooltips for badge hover information
5
-
6
- @use 'variables' as *;
7
-
8
- // ==============================================================================
9
- // FLOATING UI TOOLTIPS
10
- // ==============================================================================
11
-
12
- .drp-date-picker__tooltip {
13
- position: absolute;
14
- z-index: $drp-z-index-tooltip;
15
- background-color: var(--drp-tooltip-background);
16
- color: var(--drp-tooltip-text-color);
17
- padding: var(--drp-spacing-xs) var(--drp-spacing-sm);
18
- border-radius: var(--drp-border-radius);
19
- font-size: var(--drp-font-size-xs);
20
- line-height: $drp-tooltip-line-height;
21
- max-width: $drp-tooltip-max-width;
22
- word-wrap: break-word;
23
- pointer-events: none;
24
- opacity: 0;
25
- transition: opacity var(--drp-transition-fast) var(--drp-easing-snappy);
26
-
27
- &--visible {
28
- opacity: 1;
29
- }
30
-
31
- // Tooltip arrow
32
- &-arrow {
33
- position: absolute;
34
- background-color: var(--drp-tooltip-background);
35
- width: $drp-tooltip-arrow-size;
36
- height: $drp-tooltip-arrow-size;
37
- transform: rotate(45deg);
38
- }
39
- }