@keenmate/web-daterangepicker 1.4.0 → 1.6.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keenmate/web-daterangepicker",
3
- "version": "1.4.0",
3
+ "version": "1.6.0",
4
4
  "description": "Lightweight date picker web component with excellent keyboard navigation and range selection",
5
5
  "type": "module",
6
6
  "main": "./dist/web-daterangepicker.umd.js",
@@ -49,7 +49,7 @@
49
49
  .drp-date-picker__badge-cell.badge-number {
50
50
  background-color: var(--drp-badge-number-bg);
51
51
  color: var(--drp-badge-number-color);
52
- font-size: 0.7rem;
52
+ font-size: calc(1.12 * var(--drp-rem)); // 11.2px (was 0.7rem)
53
53
  font-weight: 600;
54
54
  }
55
55
 
@@ -57,7 +57,7 @@
57
57
  .drp-date-picker__badge-cell.badge-count {
58
58
  background-color: var(--drp-badge-count-bg);
59
59
  color: var(--drp-badge-count-color);
60
- font-size: 0.7rem;
60
+ font-size: calc(1.12 * var(--drp-rem)); // 11.2px (was 0.7rem)
61
61
  font-weight: 700;
62
62
  }
63
63
 
@@ -68,7 +68,7 @@
68
68
  .drp-date-picker__badge-cell.badge-text {
69
69
  background-color: var(--drp-badge-text-bg);
70
70
  color: var(--drp-badge-text-color);
71
- font-size: 0.65rem;
71
+ font-size: calc(1.04 * var(--drp-rem)); // 10.4px (was 0.65rem)
72
72
  font-weight: 700;
73
73
  text-transform: uppercase;
74
74
  }
@@ -8,11 +8,23 @@
8
8
  // ==============================================================================
9
9
  // CSS CUSTOM PROPERTIES (CSS VARIABLES)
10
10
  // ==============================================================================
11
- // Define CSS custom properties with SCSS fallbacks for runtime customization
12
- // Using :host for Shadow DOM (web component) and :root for Light DOM (direct class usage)
11
+ // Define CSS custom properties with SCSS fallbacks for runtime customization.
12
+ // Using :host for Shadow DOM (web component) and :root for Light DOM (direct class usage).
13
+ //
14
+ // CSS custom properties inherit through the Shadow DOM boundary, so external
15
+ // :root definitions will cascade into the component. The :host/:root selector
16
+ // here sets defaults that can be overridden.
13
17
 
14
18
  :host,
15
19
  :root {
20
+ // ===========================================================================
21
+ // BASE REM UNIT
22
+ // ===========================================================================
23
+ // Internal 10px-based unit for clean math. Override to scale the component.
24
+ // Default 10px produces same visual output as standard 16px rem.
25
+ // Set to 1rem in Pure Admin (10px base) to scale with document.
26
+ --drp-rem: 10px;
27
+
16
28
  // ===========================================================================
17
29
  // SIZING SCALE SYSTEM (THREE INDEPENDENT MULTIPLIERS)
18
30
  // ===========================================================================
@@ -62,7 +74,7 @@
62
74
  // COLORS (not affected by density)
63
75
  // ===========================================================================
64
76
 
65
- --drp-card-bg: #{$drp-calendar-bg};
77
+ --drp-dropdown-background: #{$drp-calendar-bg};
66
78
  --drp-border-color: #{$drp-border-color};
67
79
  --drp-primary-bg: #{$drp-color-neutral-lighter};
68
80
  --drp-primary-bg-hover: #{$drp-color-neutral-light};
@@ -70,10 +82,15 @@
70
82
  --drp-accent-color-hover: #{$drp-color-accent-dark};
71
83
  --drp-text-primary: #{$drp-color-neutral-darkest};
72
84
  --drp-text-secondary: #{$drp-color-neutral-dark};
73
- --drp-accent-text-color: #{$drp-color-white};
85
+ --drp-text-on-accent: #{$drp-color-white};
74
86
  --drp-button-text-color: #{$drp-color-white};
75
- --drp-tooltip-bg: #{$drp-tooltip-bg};
76
- --drp-tooltip-color: #{$drp-tooltip-color};
87
+ --drp-tooltip-background: #{$drp-tooltip-bg};
88
+ --drp-tooltip-text-color: #{$drp-tooltip-color};
89
+
90
+ // Loading overlay (for async operations)
91
+ --drp-loading-overlay-background: rgba(255, 255, 255, 0.8);
92
+ --drp-loading-spinner-color: var(--drp-border-color);
93
+ --drp-loading-spinner-accent: var(--drp-accent-color);
77
94
 
78
95
  // ===========================================================================
79
96
  // OTHER PROPERTIES (not affected by density)
@@ -94,13 +111,13 @@
94
111
  // Semantic variables for input customization (loosely coupled)
95
112
 
96
113
  // Input colors
97
- --drp-input-background: var(--drp-card-bg);
114
+ --drp-input-background: var(--drp-dropdown-background);
98
115
  --drp-input-color: var(--drp-text-primary);
99
116
  --drp-input-border-color: var(--drp-border-color);
100
117
  --drp-input-border-color-hover: var(--drp-accent-color);
101
118
  --drp-input-border-color-focus: var(--drp-accent-color);
102
119
  --drp-input-placeholder-color: var(--drp-text-secondary);
103
- --drp-input-disabled-background: var(--drp-primary-bg);
120
+ --drp-input-background-disabled: var(--drp-primary-bg);
104
121
 
105
122
  // Input focus state
106
123
  --drp-input-focus-shadow-color: rgba(59, 130, 246, 0.1);
@@ -117,31 +134,31 @@
117
134
  --drp-input-size-xs-font: #{$font-size-xs};
118
135
  --drp-input-size-xs-padding-v: #{$padding-xs};
119
136
  --drp-input-size-xs-padding-h: #{$padding-xs};
120
- --drp-input-size-xs-height: 1.5rem;
137
+ --drp-input-size-xs-height: calc(3.1 * var(--drp-rem)); // 31px
121
138
  --drp-input-size-xs-icon-size: 0.75em;
122
139
 
123
140
  --drp-input-size-sm-font: #{$drp-font-size-sm};
124
141
  --drp-input-size-sm-padding-v: #{$drp-spacing-xs};
125
142
  --drp-input-size-sm-padding-h: #{$drp-spacing-sm};
126
- --drp-input-size-sm-height: 2rem;
143
+ --drp-input-size-sm-height: calc(3.3 * var(--drp-rem)); // 33px
127
144
  --drp-input-size-sm-icon-size: 0.875em;
128
145
 
129
146
  --drp-input-size-md-font: #{$drp-font-size-base};
130
147
  --drp-input-size-md-padding-v: #{$drp-spacing-sm};
131
148
  --drp-input-size-md-padding-h: #{$padding-base};
132
- --drp-input-size-md-height: 2.5rem;
149
+ --drp-input-size-md-height: calc(3.5 * var(--drp-rem)); // 35px
133
150
  --drp-input-size-md-icon-size: 1em;
134
151
 
135
152
  --drp-input-size-lg-font: #{$drp-font-size-lg};
136
153
  --drp-input-size-lg-padding-v: #{$drp-spacing-md};
137
154
  --drp-input-size-lg-padding-h: #{$drp-spacing-md};
138
- --drp-input-size-lg-height: 3rem;
155
+ --drp-input-size-lg-height: calc(3.8 * var(--drp-rem)); // 38px
139
156
  --drp-input-size-lg-icon-size: 1.125em;
140
157
 
141
158
  --drp-input-size-xl-font: #{$font-size-xl};
142
159
  --drp-input-size-xl-padding-v: #{$drp-spacing-md};
143
160
  --drp-input-size-xl-padding-h: #{$drp-spacing-lg};
144
- --drp-input-size-xl-height: 3.5rem;
161
+ --drp-input-size-xl-height: calc(4.1 * var(--drp-rem)); // 41px
145
162
  --drp-input-size-xl-icon-size: 1.25em;
146
163
 
147
164
  // ===========================================================================
@@ -164,7 +181,7 @@
164
181
  --drp-rolling-scrollbar-thumb-hover: var(--drp-accent-color);
165
182
  --drp-rolling-item-bg-hover: var(--drp-primary-bg);
166
183
  --drp-rolling-item-bg-selected: var(--drp-accent-color);
167
- --drp-rolling-item-color-selected: var(--drp-accent-text-color);
184
+ --drp-rolling-item-color-selected: var(--drp-text-on-accent);
168
185
  --drp-rolling-item-bg-selected-hover: var(--drp-accent-color-hover);
169
186
 
170
187
  // ===========================================================================
@@ -178,13 +195,13 @@
178
195
  --drp-day-border-hover: var(--drp-accent-color);
179
196
  --drp-day-today-border: var(--drp-accent-color);
180
197
  --drp-day-selected-bg: var(--drp-accent-color);
181
- --drp-day-selected-color: var(--drp-accent-text-color);
198
+ --drp-day-selected-color: var(--drp-text-on-accent);
182
199
  --drp-day-selected-bg-hover: var(--drp-accent-color-hover);
183
200
  --drp-day-focused-outline: var(--drp-accent-color);
184
201
  --drp-day-disabled-color: var(--drp-text-secondary);
185
202
  --drp-day-other-month-color: var(--drp-text-secondary);
186
203
  --drp-day-range-bg: var(--drp-accent-color);
187
- --drp-day-range-color: var(--drp-accent-text-color);
204
+ --drp-day-range-color: var(--drp-text-on-accent);
188
205
 
189
206
  // ===========================================================================
190
207
  // SUMMARY & ACTIONS SEMANTIC VARIABLES
@@ -210,7 +227,7 @@
210
227
  // ===========================================================================
211
228
 
212
229
  --drp-badge-number-bg: var(--drp-accent-color);
213
- --drp-badge-number-color: var(--drp-accent-text-color);
230
+ --drp-badge-number-color: var(--drp-text-on-accent);
214
231
  --drp-badge-count-bg: #{$drp-color-error};
215
232
  --drp-badge-count-color: #{$drp-color-white};
216
233
  --drp-badge-text-bg: var(--drp-text-secondary);
@@ -266,7 +283,7 @@
266
283
  &:disabled {
267
284
  opacity: #{$drp-opacity-disabled};
268
285
  cursor: not-allowed;
269
- background-color: var(--drp-input-disabled-background);
286
+ background-color: var(--drp-input-background-disabled);
270
287
  }
271
288
 
272
289
  // Size variants
@@ -347,7 +364,7 @@
347
364
  .drp-date-picker {
348
365
  position: absolute;
349
366
  z-index: $drp-z-index-dropdown;
350
- background: var(--drp-card-bg);
367
+ background: var(--drp-dropdown-background);
351
368
  border: var(--drp-border-width-base) solid var(--drp-border-color);
352
369
  border-radius: var(--drp-border-radius);
353
370
  box-shadow: var(--drp-shadow-xl);
@@ -262,7 +262,7 @@
262
262
 
263
263
  display: none;
264
264
  z-index: 100; // Above everything
265
- background: var(--drp-card-bg); // White background to cover calendar below
265
+ background: var(--drp-dropdown-background); // White background to cover calendar below
266
266
  gap: var(--drp-spacing-xs); // Match normal rolling selector gap
267
267
 
268
268
  &--visible {
@@ -12,19 +12,19 @@
12
12
  left: 0;
13
13
  right: 0;
14
14
  bottom: 0;
15
- background-color: rgba(255, 255, 255, 0.8);
15
+ background-color: var(--drp-loading-overlay-background);
16
16
  display: flex;
17
17
  align-items: center;
18
18
  justify-content: center;
19
19
  z-index: $drp-z-index-dropdown;
20
- border-radius: $drp-border-radius;
20
+ border-radius: var(--drp-border-radius);
21
21
  }
22
22
 
23
23
  .drp-date-picker__loading-spinner {
24
24
  width: 40px;
25
25
  height: 40px;
26
- border: 4px solid $drp-color-neutral-light;
27
- border-top-color: $drp-color-accent;
26
+ border: 4px solid var(--drp-loading-spinner-color);
27
+ border-top-color: var(--drp-loading-spinner-accent);
28
28
  border-radius: 50%;
29
29
  animation: drp-spin 0.8s linear infinite;
30
30
  }
@@ -12,8 +12,8 @@
12
12
  .drp-date-picker__tooltip {
13
13
  position: absolute;
14
14
  z-index: $drp-z-index-tooltip;
15
- background-color: var(--drp-tooltip-bg);
16
- color: var(--drp-tooltip-color);
15
+ background-color: var(--drp-tooltip-background);
16
+ color: var(--drp-tooltip-text-color);
17
17
  padding: var(--drp-spacing-xs) var(--drp-spacing-sm);
18
18
  border-radius: var(--drp-border-radius);
19
19
  font-size: var(--drp-font-size-xs);
@@ -31,7 +31,7 @@
31
31
  // Tooltip arrow
32
32
  &-arrow {
33
33
  position: absolute;
34
- background-color: var(--drp-tooltip-bg);
34
+ background-color: var(--drp-tooltip-background);
35
35
  width: $drp-tooltip-arrow-size;
36
36
  height: $drp-tooltip-arrow-size;
37
37
  transform: rotate(45deg);
@@ -10,24 +10,26 @@
10
10
  // ==============================================================================
11
11
  // These are foundational values that can be used across the component
12
12
 
13
- $padding-xs: 0.25rem !default;
14
- $padding-sm: 0.5rem !default;
15
- $padding-base: 0.75rem !default;
16
- $padding-md: 1rem !default;
17
- $padding-lg: 1.5rem !default;
18
-
19
- $border-radius-sm: 0.25rem !default;
20
- $border-radius-base: 0.375rem !default;
21
- $border-radius-md: 0.5rem !default;
13
+ // All values use calc() with --drp-rem (10px base) for clean math
14
+ // Formula: old_rem_value × 16 ÷ 10 = multiplier
15
+ $padding-xs: calc(0.4 * var(--drp-rem)) !default; // 4px (was 0.25rem)
16
+ $padding-sm: calc(0.8 * var(--drp-rem)) !default; // 8px (was 0.5rem)
17
+ $padding-base: calc(1.2 * var(--drp-rem)) !default; // 12px (was 0.75rem)
18
+ $padding-md: calc(1.6 * var(--drp-rem)) !default; // 16px (was 1rem)
19
+ $padding-lg: calc(2.4 * var(--drp-rem)) !default; // 24px (was 1.5rem)
20
+
21
+ $border-radius-sm: calc(0.4 * var(--drp-rem)) !default; // 4px (was 0.25rem)
22
+ $border-radius-base: calc(0.6 * var(--drp-rem)) !default; // 6px (was 0.375rem)
23
+ $border-radius-md: calc(0.8 * var(--drp-rem)) !default; // 8px (was 0.5rem)
22
24
  $border-radius-full: 9999px !default;
23
25
 
24
- $font-size-2xs: 0.625rem !default;
25
- $font-size-xs: 0.75rem !default;
26
- $font-size-sm: 0.875rem !default;
27
- $font-size-base: 1rem !default;
28
- $font-size-lg: 1.125rem !default;
29
- $font-size-xl: 1.25rem !default;
30
- $font-size-2xl: 1.5rem !default;
26
+ $font-size-2xs: calc(1 * var(--drp-rem)) !default; // 10px (was 0.625rem)
27
+ $font-size-xs: calc(1.2 * var(--drp-rem)) !default; // 12px (was 0.75rem)
28
+ $font-size-sm: calc(1.4 * var(--drp-rem)) !default; // 14px (was 0.875rem)
29
+ $font-size-base: calc(1.6 * var(--drp-rem)) !default; // 16px (was 1rem)
30
+ $font-size-lg: calc(1.8 * var(--drp-rem)) !default; // 18px (was 1.125rem)
31
+ $font-size-xl: calc(2 * var(--drp-rem)) !default; // 20px (was 1.25rem)
32
+ $font-size-2xl: calc(2.4 * var(--drp-rem)) !default; // 24px (was 1.5rem)
31
33
 
32
34
  $border-width-base: 1px !default;
33
35
 
@@ -35,11 +37,11 @@ $border-width-base: 1px !default;
35
37
  // SPACING SCALE
36
38
  // ==============================================================================
37
39
 
38
- $drp-spacing-xs: 0.25rem !default;
39
- $drp-spacing-sm: 0.5rem !default;
40
- $drp-spacing-md: 1rem !default;
41
- $drp-spacing-lg: 1.5rem !default;
42
- $drp-spacing-xl: 2rem !default;
40
+ $drp-spacing-xs: calc(0.4 * var(--drp-rem)) !default; // 4px (was 0.25rem)
41
+ $drp-spacing-sm: calc(0.8 * var(--drp-rem)) !default; // 8px (was 0.5rem)
42
+ $drp-spacing-md: calc(1.6 * var(--drp-rem)) !default; // 16px (was 1rem)
43
+ $drp-spacing-lg: calc(2.4 * var(--drp-rem)) !default; // 24px (was 1.5rem)
44
+ $drp-spacing-xl: calc(3.2 * var(--drp-rem)) !default; // 32px (was 2rem)
43
45
 
44
46
  // ==============================================================================
45
47
  // COLOR PALETTE
@@ -164,7 +166,7 @@ $drp-month-year-border-radius: $drp-border-radius !default;
164
166
  // --------------------------------------
165
167
  // Navigation Buttons
166
168
  // --------------------------------------
167
- $drp-nav-size: 2rem !default;
169
+ $drp-nav-size: calc(3.2 * var(--drp-rem)) !default; // 32px (was 2rem)
168
170
  $drp-nav-font-size: $drp-font-size-lg !default;
169
171
  $drp-nav-border-color: $drp-border-color !default;
170
172
  $drp-nav-border-width: $drp-border-width-base !default;
@@ -190,7 +192,7 @@ $drp-rolling-scrollbar-thumb-hover: $drp-color-accent !default;
190
192
  $drp-rolling-item-padding-v: $drp-spacing-xs !default; // Half of sm (0.25rem instead of 0.5rem)
191
193
  $drp-rolling-item-padding-h: $drp-spacing-md !default;
192
194
  $drp-rolling-item-font-size: $drp-font-size-sm !default;
193
- $drp-rolling-item-min-height: 2rem !default;
195
+ $drp-rolling-item-min-height: calc(3.2 * var(--drp-rem)) !default; // 32px (was 2rem)
194
196
  $drp-rolling-item-justify-content: center !default;
195
197
  $drp-rolling-item-bg-hover: $drp-color-neutral-lighter !default;
196
198
  $drp-rolling-item-bg-selected: $drp-color-accent !default;