kmaterialize 2.0.0 → 2.3.3-1.0.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/LICENSE +21 -21
- package/README.md +55 -91
- package/components/appbar/_navbar.old.scss +223 -0
- package/components/appbar/appbar.css +235 -0
- package/components/appbar/appbar.mjs +54 -0
- package/components/appbar/appbar.test.mjs +9 -0
- package/components/atomic/atomic.mjs +19 -0
- package/components/atomic/component.mjs +67 -0
- package/components/badge/_badges.scss +75 -0
- package/components/badge/badge.mjs +11 -0
- package/components/breadcrumb/_breadcrumb.scss +27 -0
- package/components/button/_buttons.scss +352 -0
- package/components/button/button.mjs +11 -0
- package/components/button/buttons.stories.ts +150 -0
- package/components/button/buttons.ts +282 -0
- package/components/button/examples.iso.js +18 -0
- package/components/button/fabSpec.js +65 -0
- package/components/button/test-button.mjs +16 -0
- package/components/card/_cards.scss +229 -0
- package/components/card/card.mjs +10 -0
- package/components/card/cards.ts +185 -0
- package/components/card/cardsSpec.js +269 -0
- package/components/carousel/_carousel.scss +93 -0
- package/components/carousel/_slider.scss +119 -0
- package/components/carousel/carousel.ts +693 -0
- package/components/carousel/carouselSpec.js +61 -0
- package/components/carousel/slider.ts +431 -0
- package/components/carousel/sliderSpec.js +99 -0
- package/components/checkbox/_checkboxes.scss +281 -0
- package/components/checkbox/checkbox.mdx +24 -0
- package/components/checkbox/checkbox.stories.ts +120 -0
- package/components/chip/chip.mjs +37 -0
- package/components/chip/chip.test.mjs +10 -0
- package/components/chip/chips.css +126 -0
- package/components/chip/chips.mdx +33 -0
- package/components/chip/chips.ts +440 -0
- package/components/chip/chipsSpec.js +165 -0
- package/components/chip/readme.md +323 -0
- package/components/collapsible/_collapsible.scss +82 -0
- package/components/collapsible/collapsible.ts +230 -0
- package/components/collapsible/collapsibleSpec.js +240 -0
- package/components/datepicker/_datepicker.scss +268 -0
- package/components/datepicker/datepicker.ts +1450 -0
- package/components/datepicker/datepickerSpec.js +162 -0
- package/components/dialog/_materialbox.scss +42 -0
- package/components/dialog/_modal.scss +79 -0
- package/components/dialog/materialbox.ts +446 -0
- package/components/dialog/materialboxSpec.js +37 -0
- package/components/dialog/modal.ts +111 -0
- package/components/dialog/modalSpec.js +83 -0
- package/components/dialog/readme.md +5 -0
- package/components/divider/readme.md +15 -0
- package/components/dropdown/_dropdown.scss +83 -0
- package/components/dropdown/dropdown.ts +653 -0
- package/components/dropdown/dropdownSpec.js +108 -0
- package/components/list/_collection.scss +114 -0
- package/components/list/_list.scss +6 -0
- package/components/list/list.mjs +58 -0
- package/components/list/list.test.mjs +16 -0
- package/components/loading/loading.mjs +26 -0
- package/components/loading/loading.test.mjs +10 -0
- package/components/navigation-bar/_old +582 -0
- package/components/navigation-bar/navigation-bar.mdx +20 -0
- package/components/navigation-bar/navigation-bar.stories.ts +39 -0
- package/components/navigation-drawer/_sidenav.scss +247 -0
- package/components/navigation-drawer/sidenav.ts +546 -0
- package/components/navigation-drawer/sidenavSpec.js +124 -0
- package/components/pagination/_pagination.scss +47 -0
- package/components/progress/_preloader.scss +416 -0
- package/components/radio-button/_radio-buttons.scss +112 -0
- package/components/radio-button/radio-buttons.mdx +28 -0
- package/components/radio-button/radio-buttons.stories.ts +51 -0
- package/components/search/autocomplete.ts +620 -0
- package/components/search/autocompleteSpec.js +321 -0
- package/components/slider/_range.scss +157 -0
- package/components/slider/range.ts +216 -0
- package/components/snackbar/_toast.scss +68 -0
- package/components/snackbar/toastSpec.js +132 -0
- package/components/snackbar/toasts.ts +312 -0
- package/components/switch/_switches.scss +121 -0
- package/components/tabs/_tabs.scss +171 -0
- package/components/tabs/tabs.mjs +31 -0
- package/components/tabs/tabs.ts +358 -0
- package/components/tabs/tabsSpec.js +180 -0
- package/components/textfield/_file-input.scss +41 -0
- package/components/textfield/_input-fields.scss +368 -0
- package/components/textfield/_select.scss +104 -0
- package/components/textfield/formfields.css +311 -0
- package/components/textfield/forms.ts +182 -0
- package/components/textfield/formsSpec.js +142 -0
- package/components/textfield/select.ts +472 -0
- package/components/textfield/selectSpec.js +390 -0
- package/components/textfield/textfield.mjs +29 -0
- package/components/textfield/textfield.test.mjs +10 -0
- package/components/timepicker/_timepicker.scss +362 -0
- package/components/timepicker/timepicker.ts +905 -0
- package/components/tooltip/_tooltip.scss +40 -0
- package/components/tooltip/tooltip.ts +380 -0
- package/components/tooltip/tooltipSpec.js +145 -0
- package/dist/css/materialize.colors.min.css +6 -0
- package/dist/css/materialize.css +7578 -6326
- package/dist/css/materialize.min.css +6 -13
- package/dist/css/materialize.min.css.map +1 -0
- package/dist/js/materialize.cjs.js +8410 -0
- package/dist/js/materialize.d.ts +2625 -0
- package/dist/js/materialize.js +8415 -12374
- package/dist/js/materialize.min.js +6 -6
- package/dist/js/materialize.mjs +8382 -0
- package/package.json +82 -47
- package/sass/_colors.scss +417 -0
- package/sass/_global.scss +490 -0
- package/sass/_grid.scss +172 -0
- package/sass/_table_of_contents.scss +28 -0
- package/sass/_tapTarget.scss +102 -0
- package/sass/_typography.scss +58 -0
- package/sass/_variables.scss +56 -0
- package/sass/materialize.scss +51 -0
- package/sass/mixins.module.scss +168 -0
- package/extras/noUiSlider/nouislider.css +0 -406
- package/extras/noUiSlider/nouislider.js +0 -2147
- package/extras/noUiSlider/nouislider.min.js +0 -1
- package/js/anime.min.js +0 -34
- package/js/autocomplete.js +0 -448
- package/js/buttons.js +0 -354
- package/js/cards.js +0 -40
- package/js/carousel.js +0 -717
- package/js/cash.js +0 -960
- package/js/characterCounter.js +0 -136
- package/js/chips.js +0 -481
- package/js/collapsible.js +0 -275
- package/js/component.js +0 -44
- package/js/datepicker.js +0 -975
- package/js/dropdown.js +0 -635
- package/js/forms.js +0 -275
- package/js/global.js +0 -444
- package/js/materialbox.js +0 -453
- package/js/modal.js +0 -382
- package/js/parallax.js +0 -138
- package/js/pushpin.js +0 -148
- package/js/range.js +0 -263
- package/js/scrollspy.js +0 -295
- package/js/select.js +0 -450
- package/js/sidenav.js +0 -580
- package/js/slider.js +0 -359
- package/js/tabs.js +0 -402
- package/js/tapTarget.js +0 -314
- package/js/timepicker.js +0 -647
- package/js/toasts.js +0 -310
- package/js/tooltip.js +0 -303
- package/js/waves.js +0 -335
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
describe('Collapsible Plugin:', () => {
|
|
2
|
+
let collapsible, accordion, popout, expandable, expandablePreselect;
|
|
3
|
+
|
|
4
|
+
const fixture = `<ul class="collapsible expandable" data-collapsible="expandable">
|
|
5
|
+
<li>
|
|
6
|
+
<div class="collapsible-header"><i class="material-icons">filter_drama</i>First</div>
|
|
7
|
+
<div class="collapsible-body"><p>Lorem ipsum dolor sit amet.</p></div>
|
|
8
|
+
</li>
|
|
9
|
+
<li>
|
|
10
|
+
<div class="collapsible-header"><i class="material-icons">place</i>Second</div>
|
|
11
|
+
<div class="collapsible-body"><p>Lorem ipsum dolor sit amet.</p></div>
|
|
12
|
+
</li>
|
|
13
|
+
<li>
|
|
14
|
+
<div class="collapsible-header"><i class="material-icons">whatshot</i>Third</div>
|
|
15
|
+
<div class="collapsible-body"><p>Lorem ipsum dolor sit amet.</p></div>
|
|
16
|
+
</li>
|
|
17
|
+
</ul>
|
|
18
|
+
<ul class="collapsible expandable-preselected" data-collapsible="expandable">
|
|
19
|
+
<li>
|
|
20
|
+
<div class="collapsible-header"><i class="material-icons">filter_drama</i>First</div>
|
|
21
|
+
<div class="collapsible-body"><p>Lorem ipsum dolor sit amet.</p></div>
|
|
22
|
+
</li>
|
|
23
|
+
<li class="active">
|
|
24
|
+
<div class="collapsible-header"><i class="material-icons">place</i>Second</div>
|
|
25
|
+
<div class="collapsible-body"><p>Lorem ipsum dolor sit amet.</p></div>
|
|
26
|
+
</li>
|
|
27
|
+
<li>
|
|
28
|
+
<div class="collapsible-header"><i class="material-icons">whatshot</i>Third</div>
|
|
29
|
+
<div class="collapsible-body"><p>Lorem ipsum dolor sit amet.</p></div>
|
|
30
|
+
</li>
|
|
31
|
+
</ul>
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
<ul class="collapsible accordion" data-collapsible="accordion">
|
|
35
|
+
<li>
|
|
36
|
+
<div class="collapsible-header"><i class="material-icons">filter_drama</i>First</div>
|
|
37
|
+
<div class="collapsible-body"><p>Lorem ipsum dolor sit amet.</p></div>
|
|
38
|
+
</li>
|
|
39
|
+
<li>
|
|
40
|
+
<div class="collapsible-header"><i class="material-icons">place</i>Second</div>
|
|
41
|
+
<div class="collapsible-body"><p>Lorem ipsum dolor sit amet.</p></div>
|
|
42
|
+
</li>
|
|
43
|
+
<li>
|
|
44
|
+
<div class="collapsible-header"><i class="material-icons">whatshot</i>Third</div>
|
|
45
|
+
<div class="collapsible-body"><p>Lorem ipsum dolor sit amet.</p></div>
|
|
46
|
+
</li>
|
|
47
|
+
</ul>
|
|
48
|
+
|
|
49
|
+
<ul class="collapsible popout" data-collapsible="expandable">
|
|
50
|
+
<li>
|
|
51
|
+
<div class="collapsible-header"><i class="material-icons">filter_drama</i>First</div>
|
|
52
|
+
<div class="collapsible-body"><p>Lorem ipsum dolor sit amet.</p></div>
|
|
53
|
+
</li>
|
|
54
|
+
<li>
|
|
55
|
+
<div class="collapsible-header"><i class="material-icons">place</i>Second</div>
|
|
56
|
+
<div class="collapsible-body"><p>Lorem ipsum dolor sit amet.</p></div>
|
|
57
|
+
</li>
|
|
58
|
+
<li>
|
|
59
|
+
<div class="collapsible-header"><i class="material-icons">whatshot</i>Third</div>
|
|
60
|
+
<div class="collapsible-body"><p>Lorem ipsum dolor sit amet.</p></div>
|
|
61
|
+
</li>
|
|
62
|
+
</ul>`;
|
|
63
|
+
|
|
64
|
+
beforeEach(() => {
|
|
65
|
+
XloadHtml(fixture);
|
|
66
|
+
collapsible = document.querySelectorAll('.collapsible');
|
|
67
|
+
expandable = document.querySelector('.expandable');
|
|
68
|
+
expandablePreselect = document.querySelector('.expandable-preselected');
|
|
69
|
+
accordion = document.querySelector('.accordion');
|
|
70
|
+
popout = document.querySelector('.popout');
|
|
71
|
+
M.Collapsible.init(collapsible, { inDuration: 0, outDuration: 0 });
|
|
72
|
+
M.Collapsible.init(expandable, { accordion: false, inDuration: 0, outDuration: 0 });
|
|
73
|
+
M.Collapsible.init(expandablePreselect, { accordion: false, inDuration: 0, outDuration: 0 });
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
afterEach(() => XunloadFixtures());
|
|
77
|
+
|
|
78
|
+
describe('collapsible', () => {
|
|
79
|
+
it('should open all items, keeping all open', (done) => {
|
|
80
|
+
// Collapsible body height should be 0 on start when hidden.
|
|
81
|
+
const headers = expandable.querySelectorAll('.collapsible-header');
|
|
82
|
+
const bodies = expandable.querySelectorAll('.collapsible-body');
|
|
83
|
+
for (let i = 0; i < bodies.length; i++) {
|
|
84
|
+
expect(bodies[i]).hasMaxHeightZero(
|
|
85
|
+
'because collapsible bodies should be hidden initially.'
|
|
86
|
+
);
|
|
87
|
+
//TODO replace with alternative for deprecated jasmine-jquery
|
|
88
|
+
}
|
|
89
|
+
// Collapsible body height should be > 0 after being opened.
|
|
90
|
+
for (let i = 0; i < headers.length; i++) {
|
|
91
|
+
click(headers[i]);
|
|
92
|
+
}
|
|
93
|
+
setTimeout(() => {
|
|
94
|
+
for (let i = 0; i < bodies.length; i++) {
|
|
95
|
+
expect(bodies[i]).notHasMaxHeightZero(
|
|
96
|
+
'because collapsible bodies not visible after being opened.'
|
|
97
|
+
); //TODO replace with alternative for deprecated jasmine-jquery
|
|
98
|
+
}
|
|
99
|
+
done();
|
|
100
|
+
}, 10);
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
it('should allow preopened sections', () => {
|
|
104
|
+
const bodies = expandablePreselect.querySelectorAll('.collapsible-body');
|
|
105
|
+
for (let i = 0; i < bodies.length; i++) {
|
|
106
|
+
const headerLi = bodies[i].parentNode;
|
|
107
|
+
if (i === 1) {
|
|
108
|
+
expect(headerLi).toHaveClass(
|
|
109
|
+
'active',
|
|
110
|
+
'because collapsible header should have active class to be preselected.'
|
|
111
|
+
); //TODO replace with alternative for deprecated jasmine-jquery
|
|
112
|
+
expect(bodies[i]).notHasMaxHeightZero(
|
|
113
|
+
'because collapsible bodies should be visible if preselected.'
|
|
114
|
+
); //TODO replace with alternative for deprecated jasmine-jquery
|
|
115
|
+
} else {
|
|
116
|
+
expect(bodies[i]).hasMaxHeightZero(
|
|
117
|
+
'because collapsible bodies should be hidden initially.'
|
|
118
|
+
); //TODO replace with alternative for deprecated jasmine-jquery
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
it('should open and close programmatically with callbacks', (done) => {
|
|
124
|
+
let openCallback = false;
|
|
125
|
+
let closeCallback = false;
|
|
126
|
+
M.Collapsible.init(expandable, {
|
|
127
|
+
accordion: false,
|
|
128
|
+
onOpenStart: () => {
|
|
129
|
+
openCallback = true;
|
|
130
|
+
},
|
|
131
|
+
onCloseStart: () => {
|
|
132
|
+
closeCallback = true;
|
|
133
|
+
},
|
|
134
|
+
inDuration: 0,
|
|
135
|
+
outDuration: 0
|
|
136
|
+
});
|
|
137
|
+
const bodies = expandable.querySelectorAll('.collapsible-body');
|
|
138
|
+
expect(openCallback).toEqual(false, 'because open callback not yet fired');
|
|
139
|
+
expect(closeCallback).toEqual(false, 'because close callback not yet fired');
|
|
140
|
+
for (let i = 0; i < bodies.length; i++) {
|
|
141
|
+
//TODO replace with alternative for deprecated jasmine-jquery
|
|
142
|
+
expect(bodies[i]).hasMaxHeightZero(
|
|
143
|
+
'because collapsible bodies should be hidden initially.'
|
|
144
|
+
);
|
|
145
|
+
const collapsibleInstance = M.Collapsible.getInstance(bodies[i].parentNode.parentNode);
|
|
146
|
+
collapsibleInstance.open(i);
|
|
147
|
+
}
|
|
148
|
+
expect(openCallback).toEqual(true, 'because open callback fired');
|
|
149
|
+
setTimeout(() => {
|
|
150
|
+
for (let i = 0; i < bodies.length; i++) {
|
|
151
|
+
expect(bodies[i]).notHasMaxHeightZero(
|
|
152
|
+
'because collapsible bodies should be visible after being opened.'
|
|
153
|
+
); //TODO replace with alternative for deprecated jasmine-jquery
|
|
154
|
+
M.Collapsible.getInstance(bodies[i].parentNode.parentNode).close(i);
|
|
155
|
+
}
|
|
156
|
+
expect(closeCallback).toEqual(true, 'because close callback fired');
|
|
157
|
+
setTimeout(() => {
|
|
158
|
+
for (let i = 0; i < bodies.length; i++) {
|
|
159
|
+
expect(bodies[i]).hasMaxHeightZero(
|
|
160
|
+
'because collapsible bodies should be hidden after close.'
|
|
161
|
+
); //TODO replace with alternative for deprecated jasmine-jquery
|
|
162
|
+
}
|
|
163
|
+
done();
|
|
164
|
+
}, 10);
|
|
165
|
+
}, 10);
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
describe('accordion', () => {
|
|
170
|
+
it('should open first and second items, keeping only second open', (done) => {
|
|
171
|
+
// Collapsible body height should be 0 on start when hidden.
|
|
172
|
+
const firstHeader = accordion.querySelector('.collapsible-header');
|
|
173
|
+
const firstBody = accordion.querySelector('.collapsible-body');
|
|
174
|
+
const secondHeader = accordion.querySelectorAll('.collapsible-header')[1];
|
|
175
|
+
const secondBody = accordion.querySelectorAll('.collapsible-body')[1];
|
|
176
|
+
expect(firstBody).hasMaxHeightZero('because accordion bodies should be hidden initially.');
|
|
177
|
+
expect(secondBody).hasMaxHeightZero('because accordion bodies should be hidden initially.');
|
|
178
|
+
// Collapsible body height should be > 0 after being opened.
|
|
179
|
+
firstHeader.click();
|
|
180
|
+
setTimeout(() => {
|
|
181
|
+
expect(firstBody).notHasMaxHeightZero(
|
|
182
|
+
'because accordion bodies not visible after being opened.'
|
|
183
|
+
);
|
|
184
|
+
click(secondHeader);
|
|
185
|
+
setTimeout(() => {
|
|
186
|
+
expect(firstBody).hasMaxHeightZero(
|
|
187
|
+
'because accordion bodies should be hidden when another item is opened.'
|
|
188
|
+
);
|
|
189
|
+
expect(secondBody).notHasMaxHeightZero(
|
|
190
|
+
'because accordion bodies not visible after being opened.'
|
|
191
|
+
);
|
|
192
|
+
done();
|
|
193
|
+
}, 10);
|
|
194
|
+
}, 10);
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
|
|
198
|
+
describe('popout', () => {
|
|
199
|
+
it('should open first and popout', (done) => {
|
|
200
|
+
// Collapsible body height should be 0 on start when hidden.
|
|
201
|
+
const listItems = popout.querySelectorAll('li');
|
|
202
|
+
const firstHeader = popout.querySelector('.collapsible-header');
|
|
203
|
+
const firstBody = popout.querySelector('.collapsible-body');
|
|
204
|
+
expect(firstBody).hasMaxHeightZero('because accordion bodies should be hidden initially.');
|
|
205
|
+
// Expect margin to be > 0 because not popped out.
|
|
206
|
+
for (let i = 0; i < listItems.length; i++) {
|
|
207
|
+
const listItemStyles = getComputedStyle(listItems[i]);
|
|
208
|
+
const marginLeft = parseInt(listItemStyles.getPropertyValue('margin-left'));
|
|
209
|
+
const marginRight = parseInt(listItemStyles.getPropertyValue('margin-right'));
|
|
210
|
+
expect(marginLeft).toBeGreaterThan(
|
|
211
|
+
0,
|
|
212
|
+
'because closed popout items should have horizontal margins.'
|
|
213
|
+
);
|
|
214
|
+
expect(marginRight).toBeGreaterThan(
|
|
215
|
+
0,
|
|
216
|
+
'because closed popout items should have horizontal margins.'
|
|
217
|
+
);
|
|
218
|
+
}
|
|
219
|
+
// expect margin to be 0 because popped out.
|
|
220
|
+
click(firstHeader);
|
|
221
|
+
setTimeout(() => {
|
|
222
|
+
const firstStyles = getComputedStyle(listItems[0]);
|
|
223
|
+
const firstMarginLeft = parseInt(firstStyles.getPropertyValue('margin-left'));
|
|
224
|
+
const firstMarginRight = parseInt(firstStyles.getPropertyValue('margin-right'));
|
|
225
|
+
expect(firstMarginLeft).toEqual(
|
|
226
|
+
0,
|
|
227
|
+
'because opened popout items should have no horizontal margins.'
|
|
228
|
+
);
|
|
229
|
+
expect(firstMarginRight).toEqual(
|
|
230
|
+
0,
|
|
231
|
+
'because opened popout items should have no horizontal margins.'
|
|
232
|
+
);
|
|
233
|
+
expect(firstBody).notHasMaxHeightZero(
|
|
234
|
+
'because accordion bodies not visible after being opened.'
|
|
235
|
+
);
|
|
236
|
+
done();
|
|
237
|
+
}, 300);
|
|
238
|
+
});
|
|
239
|
+
});
|
|
240
|
+
});
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
@use '../../sass/mixins.module.scss' as *;
|
|
2
|
+
|
|
3
|
+
.datepicker-container {
|
|
4
|
+
display: flex;
|
|
5
|
+
flex-direction: column;
|
|
6
|
+
max-width: 325px;
|
|
7
|
+
padding: 0;
|
|
8
|
+
background-color: var(--md-sys-color-inverse-on-surface);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.datepicker-controls {
|
|
12
|
+
display: flex;
|
|
13
|
+
justify-content: space-between;
|
|
14
|
+
width: 280px;
|
|
15
|
+
margin: 0 auto;
|
|
16
|
+
|
|
17
|
+
.selects-container {
|
|
18
|
+
display: flex;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.select-wrapper {
|
|
22
|
+
input {
|
|
23
|
+
height: 49px;
|
|
24
|
+
margin: 4px 0 0 0;
|
|
25
|
+
border-bottom: none;
|
|
26
|
+
border-radius: 4px;
|
|
27
|
+
text-align: center;
|
|
28
|
+
|
|
29
|
+
&:focus {
|
|
30
|
+
color: var(--md-sys-color-primary);
|
|
31
|
+
background-color: color-mix(in srgb, transparent, var(--md-sys-color-primary) 20%);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
&::selection {
|
|
35
|
+
background-color: transparent;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.caret {
|
|
40
|
+
display: none;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.select-dropdown {
|
|
45
|
+
padding: 0;
|
|
46
|
+
vertical-align: middle;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.select-year input,
|
|
50
|
+
.select-month input {
|
|
51
|
+
background-color: transparent;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.select-year input {
|
|
55
|
+
width: 50px;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.select-month input {
|
|
59
|
+
width: 80px;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.month-prev,
|
|
63
|
+
.month-next {
|
|
64
|
+
display: inline-flex;
|
|
65
|
+
align-items: center;
|
|
66
|
+
|
|
67
|
+
@include btn($height: 49px);
|
|
68
|
+
|
|
69
|
+
&:focus {
|
|
70
|
+
background-color: color-mix(in srgb, transparent, var(--md-sys-color-primary) 20%);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.month-prev > svg,
|
|
75
|
+
.month-next > svg {
|
|
76
|
+
fill: var(--md-sys-color-on-surface-variant);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.month-prev, .month-next {
|
|
81
|
+
height: 49px;
|
|
82
|
+
margin-top: 4px;
|
|
83
|
+
cursor: pointer;
|
|
84
|
+
background-color: transparent;
|
|
85
|
+
border: none;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
/* Date Display */
|
|
90
|
+
.datepicker-date-display {
|
|
91
|
+
flex: 1 auto;
|
|
92
|
+
// @removed since v2.2.1-dev regarding Material M3 standards
|
|
93
|
+
// background-color: var(--md-sys-color-primary);
|
|
94
|
+
// color: var(--md-sys-color-on-primary);
|
|
95
|
+
padding: 20px 22px;
|
|
96
|
+
border-bottom: 1px solid var(--md-sys-color-surface-variant-light);
|
|
97
|
+
font-weight: 500;
|
|
98
|
+
|
|
99
|
+
.year-text {
|
|
100
|
+
display: block;
|
|
101
|
+
font-size: 1.5rem;
|
|
102
|
+
line-height: 25px;
|
|
103
|
+
color: var(--md-sys-color-on-primary);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.date-text {
|
|
107
|
+
display: block;
|
|
108
|
+
font-size: 2.8rem;
|
|
109
|
+
line-height: 47px;
|
|
110
|
+
font-weight: 500;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.daterange & {
|
|
114
|
+
.date-text {
|
|
115
|
+
font-size: 1.8rem;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
/* Calendar */
|
|
122
|
+
.datepicker-calendar-container {
|
|
123
|
+
flex: 2.5 auto;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.datepicker-table {
|
|
127
|
+
width: 280px;
|
|
128
|
+
font-size: 1rem;
|
|
129
|
+
margin: 0 auto;
|
|
130
|
+
|
|
131
|
+
thead {
|
|
132
|
+
border-bottom: none;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
th {
|
|
136
|
+
padding: 10px 5px;
|
|
137
|
+
text-align: center;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
tr {
|
|
141
|
+
border: none;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
abbr {
|
|
145
|
+
text-decoration: none;
|
|
146
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.datepicker-day {
|
|
150
|
+
padding: 0;
|
|
151
|
+
color: var(--md-sys-color-on-background);
|
|
152
|
+
// border-radius: 50%;
|
|
153
|
+
|
|
154
|
+
&.is-today {
|
|
155
|
+
color: var(--md-sys-color-primary);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/*&.is-selected button {
|
|
159
|
+
background-color: var(--md-sys-color-primary);
|
|
160
|
+
color: var(--md-sys-color-on-primary);
|
|
161
|
+
}*/
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
// @todo
|
|
166
|
+
.datepicker-day.has-event {}
|
|
167
|
+
// @todo
|
|
168
|
+
.datepicker-day.is-inrange {}
|
|
169
|
+
// @todo
|
|
170
|
+
.datepicker-day.is-startrange {}
|
|
171
|
+
// @todo
|
|
172
|
+
.datepicker-day.is-endrange {}
|
|
173
|
+
|
|
174
|
+
.datepicker-day.is-daterange-start,
|
|
175
|
+
.datepicker-day.is-daterange-end,
|
|
176
|
+
.datepicker-day.is-daterange {
|
|
177
|
+
position: relative;
|
|
178
|
+
|
|
179
|
+
&:before {
|
|
180
|
+
position: absolute;
|
|
181
|
+
top: 5px;
|
|
182
|
+
width: 100%;
|
|
183
|
+
height: 34px;
|
|
184
|
+
content: '';
|
|
185
|
+
background-color: var(--md-sys-color-primary-container);
|
|
186
|
+
z-index: 0;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
.datepicker-day.is-daterange-start:before,
|
|
191
|
+
.datepicker-day.is-daterange-end:before {
|
|
192
|
+
width: 50%;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.datepicker-day.is-daterange-start:before {
|
|
196
|
+
left: 50%;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
.datepicker-day.is-daterange .datepicker-day-button:before {
|
|
200
|
+
background-color: var(--md-sys-color-primary-container);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
.datepicker-day-button {
|
|
204
|
+
background-color: transparent;
|
|
205
|
+
border: none;
|
|
206
|
+
line-height: 34px;
|
|
207
|
+
display: block;
|
|
208
|
+
width: 34px;
|
|
209
|
+
border-radius: 50%;
|
|
210
|
+
margin: 5px;
|
|
211
|
+
padding: 0 5px;
|
|
212
|
+
cursor: pointer;
|
|
213
|
+
color: inherit;
|
|
214
|
+
position: relative;
|
|
215
|
+
z-index: 1;
|
|
216
|
+
|
|
217
|
+
&:hover {
|
|
218
|
+
background-color: color-mix(in srgb, transparent, var(--md-sys-color-primary) 6%);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
&:focus {
|
|
222
|
+
border-color: var(--md-sys-color-primary);
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
.is-selected & {
|
|
226
|
+
background-color: var(--md-sys-color-primary);
|
|
227
|
+
color: var(--md-sys-color-on-primary);
|
|
228
|
+
|
|
229
|
+
&:focus {
|
|
230
|
+
background-color: var(--md-sys-color-surface-variant);
|
|
231
|
+
color: var(--md-sys-color-primary);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
&.is-outside-current-month button,
|
|
236
|
+
&.is-disabled button {
|
|
237
|
+
color: var(--md-sys-color-on-surface);
|
|
238
|
+
pointer-events: none;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
/* Footer */
|
|
243
|
+
.datepicker-footer {
|
|
244
|
+
width: 280px;
|
|
245
|
+
margin: 0 auto;
|
|
246
|
+
padding-bottom: 5px;
|
|
247
|
+
display: flex;
|
|
248
|
+
justify-content: space-between;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
.datepicker-cancel,
|
|
252
|
+
.datepicker-clear,
|
|
253
|
+
.datepicker-today,
|
|
254
|
+
.datepicker-done {
|
|
255
|
+
color: var(--md-sys-color-primary);
|
|
256
|
+
padding: 0 1rem;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
.datepicker-clear {
|
|
260
|
+
color: var(--md-sys-color-error);
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
/* Display modes */
|
|
264
|
+
.datepicker-modal {
|
|
265
|
+
max-width: calc(325px + var(--modal-padding) * 2);
|
|
266
|
+
max-height: none;
|
|
267
|
+
background-color: var(--md-sys-color-inverse-on-surface);
|
|
268
|
+
}
|