@oneluiz/dual-datepicker 3.2.0 → 3.3.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.
@@ -0,0 +1,202 @@
1
+ /**
2
+ * Bootstrap Theme for ng-dual-datepicker
3
+ *
4
+ * Import this file in your styles.scss to apply Bootstrap styling:
5
+ * @import '@oneluiz/dual-datepicker/themes/bootstrap';
6
+ *
7
+ * Make sure you have Bootstrap CSS already loaded in your project.
8
+ */
9
+
10
+ .datepicker-wrapper.theme-bootstrap {
11
+
12
+ .datepicker-input {
13
+ display: block;
14
+ width: 100%;
15
+ padding: 0.375rem 0.75rem;
16
+ font-size: 1rem;
17
+ font-weight: 400;
18
+ line-height: 1.5;
19
+ color: #212529;
20
+ background-color: #fff;
21
+ background-clip: padding-box;
22
+ border: 1px solid #dee2e6;
23
+ border-radius: 0.375rem;
24
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
25
+ cursor: pointer;
26
+
27
+ &:hover {
28
+ border-color: #86b7fe;
29
+ }
30
+
31
+ &:focus {
32
+ color: #212529;
33
+ background-color: #fff;
34
+ border-color: #86b7fe;
35
+ outline: 0;
36
+ box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
37
+ }
38
+
39
+ &::placeholder {
40
+ color: #6c757d;
41
+ opacity: 1;
42
+ }
43
+
44
+ &:disabled,
45
+ &[readonly] {
46
+ background-color: #e9ecef;
47
+ opacity: 1;
48
+ }
49
+ }
50
+
51
+ .date-picker-dropdown {
52
+ background: #fff;
53
+ border: 1px solid #dee2e6;
54
+ border-radius: 0.375rem;
55
+ box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
56
+ }
57
+
58
+ .date-picker-presets {
59
+ button {
60
+ background-color: #fff;
61
+ border: 1px solid #dee2e6;
62
+ color: #0d6efd;
63
+ padding: 0.375rem 0.75rem;
64
+ border-radius: 0.375rem;
65
+ font-size: 0.875rem;
66
+ font-weight: 500;
67
+ cursor: pointer;
68
+ transition: all 0.15s ease-in-out;
69
+
70
+ &:hover {
71
+ background-color: #0d6efd;
72
+ border-color: #0d6efd;
73
+ color: #fff;
74
+ }
75
+
76
+ &:active,
77
+ &:focus {
78
+ box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
79
+ }
80
+ }
81
+
82
+ .btn-close-calendar {
83
+ background-color: #fff;
84
+ border: 1px solid #dee2e6;
85
+ color: #dc3545;
86
+
87
+ &:hover {
88
+ background-color: #dc3545;
89
+ border-color: #dc3545;
90
+ color: #fff;
91
+ }
92
+ }
93
+ }
94
+
95
+ .date-picker-header {
96
+ button {
97
+ background-color: #fff;
98
+ border: 1px solid #dee2e6;
99
+ color: #212529;
100
+ border-radius: 0.375rem;
101
+ padding: 0.25rem 0.5rem;
102
+
103
+ &:hover {
104
+ background-color: #e9ecef;
105
+ border-color: #dee2e6;
106
+ }
107
+ }
108
+ }
109
+
110
+ .day {
111
+ color: #212529;
112
+ border-radius: 0.375rem;
113
+
114
+ &:hover:not(.disabled):not(.selected):not(.in-range) {
115
+ background-color: #e9ecef;
116
+ }
117
+
118
+ &.selected {
119
+ background-color: #0d6efd;
120
+ color: #fff;
121
+ font-weight: 600;
122
+ }
123
+
124
+ &.in-range {
125
+ background-color: rgba(13, 110, 253, 0.1);
126
+ color: #0d6efd;
127
+ }
128
+
129
+ &.today {
130
+ border: 2px solid #0d6efd;
131
+ font-weight: 600;
132
+ }
133
+
134
+ &.disabled {
135
+ color: #6c757d;
136
+ background-color: transparent;
137
+ cursor: not-allowed;
138
+ opacity: 0.5;
139
+ }
140
+ }
141
+
142
+ .selected-ranges {
143
+ .range-tag {
144
+ background-color: #0d6efd;
145
+ color: #fff;
146
+ border: none;
147
+ border-radius: 0.375rem;
148
+ padding: 0.25rem 0.75rem;
149
+ font-size: 0.875rem;
150
+ }
151
+
152
+ .btn-remove {
153
+ background-color: transparent;
154
+ border: none;
155
+ color: #fff;
156
+
157
+ &:hover {
158
+ color: #dc3545;
159
+ }
160
+ }
161
+ }
162
+
163
+ .date-picker-footer {
164
+ border-top: 1px solid #dee2e6;
165
+
166
+ .btn-clear,
167
+ .btn-cancel {
168
+ background-color: #fff;
169
+ border: 1px solid #dee2e6;
170
+ color: #6c757d;
171
+ padding: 0.375rem 0.75rem;
172
+ border-radius: 0.375rem;
173
+
174
+ &:hover {
175
+ background-color: #e9ecef;
176
+ border-color: #dee2e6;
177
+ color: #495057;
178
+ }
179
+ }
180
+
181
+ .btn-apply {
182
+ background-color: #0d6efd;
183
+ border: 1px solid #0d6efd;
184
+ color: #fff;
185
+ padding: 0.375rem 0.75rem;
186
+ border-radius: 0.375rem;
187
+ font-weight: 500;
188
+
189
+ &:hover {
190
+ background-color: #0b5ed7;
191
+ border-color: #0a58ca;
192
+ }
193
+
194
+ &:disabled {
195
+ background-color: #6c757d;
196
+ border-color: #6c757d;
197
+ opacity: 0.65;
198
+ cursor: not-allowed;
199
+ }
200
+ }
201
+ }
202
+ }
@@ -0,0 +1,209 @@
1
+ /**
2
+ * Bulma Theme for ng-dual-datepicker
3
+ *
4
+ * Import this file in your styles.scss to apply Bulma styling:
5
+ * @import '@oneluiz/dual-datepicker/themes/bulma';
6
+ *
7
+ * Make sure you have Bulma CSS already loaded in your project.
8
+ */
9
+
10
+ .datepicker-wrapper.theme-bulma {
11
+
12
+ .datepicker-input {
13
+ display: block;
14
+ width: 100%;
15
+ padding: calc(0.5em - 1px) calc(0.75em - 1px);
16
+ font-size: 1rem;
17
+ line-height: 1.5;
18
+ color: #363636;
19
+ background-color: #fff;
20
+ border: 1px solid #dbdbdb;
21
+ border-radius: 4px;
22
+ box-shadow: inset 0 0.0625em 0.125em rgba(10, 10, 10, 0.05);
23
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
24
+ cursor: pointer;
25
+
26
+ &:hover {
27
+ border-color: #b5b5b5;
28
+ }
29
+
30
+ &:focus {
31
+ border-color: #3273dc;
32
+ box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25);
33
+ outline: 0;
34
+ }
35
+
36
+ &::placeholder {
37
+ color: #b5b5b5;
38
+ }
39
+
40
+ &:disabled,
41
+ &[readonly] {
42
+ background-color: #f5f5f5;
43
+ border-color: #f5f5f5;
44
+ box-shadow: none;
45
+ color: #7a7a7a;
46
+ opacity: 1;
47
+ }
48
+ }
49
+
50
+ .date-picker-dropdown {
51
+ background: #fff;
52
+ border: 1px solid #dbdbdb;
53
+ border-radius: 6px;
54
+ box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.02);
55
+ }
56
+
57
+ .date-picker-presets {
58
+ button {
59
+ background-color: #fff;
60
+ border: 1px solid #dbdbdb;
61
+ color: #3273dc;
62
+ padding: calc(0.5em - 1px) 1em;
63
+ border-radius: 4px;
64
+ font-size: 0.875rem;
65
+ font-weight: 600;
66
+ cursor: pointer;
67
+ transition: all 0.15s ease-in-out;
68
+
69
+ &:hover {
70
+ background-color: #3273dc;
71
+ border-color: #3273dc;
72
+ color: #fff;
73
+ }
74
+
75
+ &:active,
76
+ &:focus {
77
+ box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25);
78
+ outline: 0;
79
+ }
80
+ }
81
+
82
+ .btn-close-calendar {
83
+ background-color: #fff;
84
+ border: 1px solid #dbdbdb;
85
+ color: #f14668;
86
+
87
+ &:hover {
88
+ background-color: #f14668;
89
+ border-color: #f14668;
90
+ color: #fff;
91
+ }
92
+ }
93
+ }
94
+
95
+ .date-picker-header {
96
+ button {
97
+ background-color: #fff;
98
+ border: 1px solid #dbdbdb;
99
+ color: #363636;
100
+ border-radius: 4px;
101
+ padding: 0.25em 0.5em;
102
+
103
+ &:hover {
104
+ background-color: #f5f5f5;
105
+ border-color: #b5b5b5;
106
+ }
107
+
108
+ &:focus {
109
+ border-color: #3273dc;
110
+ box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25);
111
+ }
112
+ }
113
+ }
114
+
115
+ .day {
116
+ color: #363636;
117
+ border-radius: 4px;
118
+
119
+ &:hover:not(.disabled):not(.selected):not(.in-range) {
120
+ background-color: #f5f5f5;
121
+ }
122
+
123
+ &.selected {
124
+ background-color: #3273dc;
125
+ color: #fff;
126
+ font-weight: 600;
127
+ }
128
+
129
+ &.in-range {
130
+ background-color: rgba(50, 115, 220, 0.1);
131
+ color: #3273dc;
132
+ }
133
+
134
+ &.today {
135
+ border: 2px solid #3273dc;
136
+ font-weight: 600;
137
+ }
138
+
139
+ &.disabled {
140
+ color: #b5b5b5;
141
+ background-color: transparent;
142
+ cursor: not-allowed;
143
+ opacity: 0.5;
144
+ }
145
+ }
146
+
147
+ .selected-ranges {
148
+ .range-tag {
149
+ background-color: #3273dc;
150
+ color: #fff;
151
+ border: none;
152
+ border-radius: 4px;
153
+ padding: 0.25em 0.75em;
154
+ font-size: 0.875rem;
155
+ }
156
+
157
+ .btn-remove {
158
+ background-color: transparent;
159
+ border: none;
160
+ color: #fff;
161
+
162
+ &:hover {
163
+ color: #f14668;
164
+ }
165
+ }
166
+ }
167
+
168
+ .date-picker-footer {
169
+ border-top: 1px solid #dbdbdb;
170
+
171
+ .btn-clear,
172
+ .btn-cancel {
173
+ background-color: #fff;
174
+ border: 1px solid #dbdbdb;
175
+ color: #7a7a7a;
176
+ padding: calc(0.5em - 1px) 1em;
177
+ border-radius: 4px;
178
+
179
+ &:hover {
180
+ background-color: #f5f5f5;
181
+ border-color: #b5b5b5;
182
+ color: #363636;
183
+ }
184
+ }
185
+
186
+ .btn-apply {
187
+ background-color: #3273dc;
188
+ border: 1px solid transparent;
189
+ color: #fff;
190
+ padding: calc(0.5em - 1px) 1em;
191
+ border-radius: 4px;
192
+ font-weight: 600;
193
+
194
+ &:hover {
195
+ background-color: #2366d1;
196
+ }
197
+
198
+ &:focus {
199
+ box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25);
200
+ }
201
+
202
+ &:disabled {
203
+ background-color: #7a7a7a;
204
+ opacity: 0.5;
205
+ cursor: not-allowed;
206
+ }
207
+ }
208
+ }
209
+ }
@@ -0,0 +1,236 @@
1
+ /**
2
+ * Custom Theme Template for ng-dual-datepicker
3
+ *
4
+ * This is a template file that you can copy and customize.
5
+ * Import this file in your styles.scss and modify the CSS variables:
6
+ * @import '@oneluiz/dual-datepicker/themes/custom';
7
+ *
8
+ * Or create your own theme file based on this template.
9
+ */
10
+
11
+ .datepicker-wrapper.theme-custom {
12
+ /* CSS Variables for easy customization */
13
+ --dp-primary-color: #3b82f6;
14
+ --dp-primary-hover: #2563eb;
15
+ --dp-danger-color: #ef4444;
16
+ --dp-danger-hover: #dc2626;
17
+ --dp-text-color: #1f2937;
18
+ --dp-text-muted: #6b7280;
19
+ --dp-border-color: #d1d5db;
20
+ --dp-border-hover: #9ca3af;
21
+ --dp-bg-color: #ffffff;
22
+ --dp-bg-hover: #f3f4f6;
23
+ --dp-bg-disabled: #f9fafb;
24
+ --dp-border-radius: 0.375rem;
25
+ --dp-transition: all 0.15s ease;
26
+
27
+ .datepicker-input {
28
+ display: block;
29
+ width: 100%;
30
+ padding: 0.5rem 0.75rem;
31
+ font-size: 1rem;
32
+ font-weight: 400;
33
+ line-height: 1.5;
34
+ color: var(--dp-text-color);
35
+ background-color: var(--dp-bg-color);
36
+ border: 1px solid var(--dp-border-color);
37
+ border-radius: var(--dp-border-radius);
38
+ transition: var(--dp-transition);
39
+ cursor: pointer;
40
+
41
+ &:hover {
42
+ border-color: var(--dp-border-hover);
43
+ }
44
+
45
+ &:focus {
46
+ border-color: var(--dp-primary-color);
47
+ outline: 0;
48
+ box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
49
+ }
50
+
51
+ &::placeholder {
52
+ color: var(--dp-text-muted);
53
+ opacity: 1;
54
+ }
55
+
56
+ &:disabled,
57
+ &[readonly] {
58
+ background-color: var(--dp-bg-disabled);
59
+ opacity: 1;
60
+ cursor: not-allowed;
61
+ }
62
+ }
63
+
64
+ .date-picker-dropdown {
65
+ background: var(--dp-bg-color);
66
+ border: 1px solid var(--dp-border-color);
67
+ border-radius: var(--dp-border-radius);
68
+ box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
69
+ }
70
+
71
+ .date-picker-presets {
72
+ button {
73
+ background-color: var(--dp-bg-color);
74
+ border: 1px solid var(--dp-border-color);
75
+ color: var(--dp-primary-color);
76
+ padding: 0.5rem 1rem;
77
+ border-radius: var(--dp-border-radius);
78
+ font-size: 0.875rem;
79
+ font-weight: 500;
80
+ cursor: pointer;
81
+ transition: var(--dp-transition);
82
+
83
+ &:hover {
84
+ background-color: var(--dp-primary-color);
85
+ border-color: var(--dp-primary-color);
86
+ color: var(--dp-bg-color);
87
+ }
88
+
89
+ &:focus {
90
+ outline: 0;
91
+ box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
92
+ }
93
+ }
94
+
95
+ .btn-close-calendar {
96
+ background-color: var(--dp-bg-color);
97
+ border: 1px solid var(--dp-border-color);
98
+ color: var(--dp-danger-color);
99
+
100
+ &:hover {
101
+ background-color: var(--dp-danger-color);
102
+ border-color: var(--dp-danger-color);
103
+ color: var(--dp-bg-color);
104
+ }
105
+ }
106
+ }
107
+
108
+ .date-picker-header {
109
+ button {
110
+ background-color: var(--dp-bg-color);
111
+ border: 1px solid var(--dp-border-color);
112
+ color: var(--dp-text-color);
113
+ border-radius: var(--dp-border-radius);
114
+ padding: 0.375rem 0.75rem;
115
+
116
+ &:hover {
117
+ background-color: var(--dp-bg-hover);
118
+ }
119
+
120
+ &:focus {
121
+ outline: 0;
122
+ box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.1);
123
+ }
124
+ }
125
+ }
126
+
127
+ .day {
128
+ color: var(--dp-text-color);
129
+ border-radius: var(--dp-border-radius);
130
+ transition: var(--dp-transition);
131
+
132
+ &:hover:not(.disabled):not(.selected):not(.in-range) {
133
+ background-color: var(--dp-bg-hover);
134
+ }
135
+
136
+ &.selected {
137
+ background-color: var(--dp-primary-color);
138
+ color: var(--dp-bg-color);
139
+ font-weight: 600;
140
+ }
141
+
142
+ &.in-range {
143
+ background-color: rgba(59, 130, 246, 0.1);
144
+ color: var(--dp-primary-color);
145
+ }
146
+
147
+ &.today {
148
+ border: 2px solid var(--dp-primary-color);
149
+ font-weight: 600;
150
+ }
151
+
152
+ &.disabled {
153
+ color: var(--dp-text-muted);
154
+ background-color: transparent;
155
+ cursor: not-allowed;
156
+ opacity: 0.5;
157
+ }
158
+ }
159
+
160
+ .selected-ranges {
161
+ .range-tag {
162
+ background-color: var(--dp-primary-color);
163
+ color: var(--dp-bg-color);
164
+ border: none;
165
+ border-radius: var(--dp-border-radius);
166
+ padding: 0.375rem 0.75rem;
167
+ font-size: 0.875rem;
168
+ }
169
+
170
+ .btn-remove {
171
+ background-color: transparent;
172
+ border: none;
173
+ color: var(--dp-bg-color);
174
+
175
+ &:hover {
176
+ color: var(--dp-danger-color);
177
+ }
178
+ }
179
+ }
180
+
181
+ .date-picker-footer {
182
+ border-top: 1px solid var(--dp-border-color);
183
+
184
+ .btn-clear,
185
+ .btn-cancel {
186
+ background-color: var(--dp-bg-color);
187
+ border: 1px solid var(--dp-border-color);
188
+ color: var(--dp-text-muted);
189
+ padding: 0.5rem 1rem;
190
+ border-radius: var(--dp-border-radius);
191
+
192
+ &:hover {
193
+ background-color: var(--dp-bg-hover);
194
+ color: var(--dp-text-color);
195
+ }
196
+ }
197
+
198
+ .btn-apply {
199
+ background-color: var(--dp-primary-color);
200
+ border: 1px solid var(--dp-primary-color);
201
+ color: var(--dp-bg-color);
202
+ padding: 0.5rem 1rem;
203
+ border-radius: var(--dp-border-radius);
204
+ font-weight: 500;
205
+
206
+ &:hover {
207
+ background-color: var(--dp-primary-hover);
208
+ border-color: var(--dp-primary-hover);
209
+ }
210
+
211
+ &:focus {
212
+ outline: 0;
213
+ box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
214
+ }
215
+
216
+ &:disabled {
217
+ background-color: var(--dp-text-muted);
218
+ border-color: var(--dp-text-muted);
219
+ opacity: 0.5;
220
+ cursor: not-allowed;
221
+ }
222
+ }
223
+ }
224
+ }
225
+
226
+ /*
227
+ * CUSTOMIZATION EXAMPLE:
228
+ *
229
+ * Override the CSS variables in your own stylesheet:
230
+ *
231
+ * .datepicker-wrapper.theme-custom {
232
+ * --dp-primary-color: #ff6b6b;
233
+ * --dp-primary-hover: #ee5a6f;
234
+ * --dp-border-radius: 0.5rem;
235
+ * }
236
+ */