@iamproperty/components 3.4.5 → 3.4.7
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/assets/css/components/accordion.css +1 -0
- package/assets/css/components/accordion.css.map +1 -0
- package/assets/css/components/alert.css +1 -0
- package/assets/css/components/alert.css.map +1 -0
- package/assets/css/components/applied-filters.css +1 -0
- package/assets/css/components/applied-filters.css.map +1 -0
- package/assets/css/components/buttons.css +1 -0
- package/assets/css/components/buttons.css.map +1 -0
- package/assets/css/components/card.css +1 -0
- package/assets/css/components/card.css.map +1 -0
- package/assets/css/components/carousel.css +1 -0
- package/assets/css/components/carousel.css.map +1 -0
- package/assets/css/components/charts.css +1 -0
- package/assets/css/components/charts.css.map +1 -0
- package/assets/css/components/container.css +1 -0
- package/assets/css/components/container.css.map +1 -0
- package/assets/css/components/dialog.css +1 -0
- package/assets/css/components/dialog.css.map +1 -0
- package/assets/css/components/forms.css +1 -0
- package/assets/css/components/forms.css.map +1 -0
- package/assets/css/components/header.css +1 -0
- package/assets/css/components/header.css.map +1 -0
- package/assets/css/components/lists.css +1 -0
- package/assets/css/components/lists.css.map +1 -0
- package/assets/css/components/nav.css +1 -0
- package/assets/css/components/nav.css.map +1 -0
- package/assets/css/components/pagination.css +1 -0
- package/assets/css/components/pagination.css.map +1 -0
- package/assets/css/components/panel.css +1 -0
- package/assets/css/components/panel.css.map +1 -0
- package/assets/css/components/property-searchbar.css +1 -0
- package/assets/css/components/property-searchbar.css.map +1 -0
- package/assets/css/components/snapshot.css +1 -0
- package/assets/css/components/snapshot.css.map +1 -0
- package/assets/css/components/stepper.css +1 -0
- package/assets/css/components/stepper.css.map +1 -0
- package/assets/css/components/table.css +1 -0
- package/assets/css/components/table.css.map +1 -0
- package/assets/css/components/tabs.css +1 -0
- package/assets/css/components/tabs.css.map +1 -0
- package/assets/css/components/testimonial.css +1 -0
- package/assets/css/components/testimonial.css.map +1 -0
- package/assets/css/components/timeline.css +1 -0
- package/assets/css/components/timeline.css.map +1 -0
- package/assets/css/components/tooltips.css +1 -0
- package/assets/css/components/tooltips.css.map +1 -0
- package/assets/css/core.min.css +1 -1
- package/assets/css/core.min.css.map +1 -1
- package/assets/css/style.min.css +1 -1
- package/assets/css/style.min.css.map +1 -1
- package/assets/fonts/qanelas-bold-webfont.woff +0 -0
- package/assets/fonts/qanelas-bold-webfont.woff2 +0 -0
- package/assets/js/bundle.js +68 -0
- package/assets/js/components/accordion/accordion.component.js +33 -0
- package/assets/js/components/accordion/accordion.component.min.js +14 -0
- package/assets/js/components/accordion/accordion.component.min.js.map +1 -0
- package/assets/js/components/applied-filters/applied-filters.component.js +26 -0
- package/assets/js/components/card/card.component.js +91 -0
- package/assets/js/components/card/card.component.min.js +21 -0
- package/assets/js/components/card/card.component.min.js.map +1 -0
- package/assets/js/components/filterlist/filterlist.component.js +49 -0
- package/assets/js/components/filterlist/filterlist.component.min.js +23 -0
- package/assets/js/components/filterlist/filterlist.component.min.js.map +1 -0
- package/assets/js/components/header/header.component.js +51 -0
- package/assets/js/components/header/header.component.min.js +30 -0
- package/assets/js/components/header/header.component.min.js.map +1 -0
- package/assets/js/components/pagination/pagination.component.js +34 -0
- package/assets/js/components/table/table.component.js +104 -0
- package/assets/js/components/table/table.component.min.js +24 -0
- package/assets/js/components/table/table.component.min.js.map +1 -0
- package/assets/js/components/tabs/tabs.component.js +34 -0
- package/assets/js/components/tabs/tabs.component.min.js +17 -0
- package/assets/js/components/tabs/tabs.component.min.js.map +1 -0
- package/assets/js/dynamic.js +74 -0
- package/assets/js/dynamic.min.js +5 -0
- package/assets/js/dynamic.min.js.map +1 -0
- package/assets/js/flat-components.js +79 -0
- package/assets/js/modules/accordion.js +11 -14
- package/assets/js/modules/applied-filters.js +100 -0
- package/assets/js/modules/data-layer.js +45 -0
- package/assets/js/modules/filterlist.js +32 -0
- package/assets/js/modules/helpers.js +80 -47
- package/assets/js/modules/pagination.js +33 -0
- package/assets/js/modules/table.js +507 -420
- package/assets/js/modules/tabs.js +97 -0
- package/assets/js/modules/youtubevideo.js +53 -61
- package/assets/js/scripts.bundle.js +111 -984
- package/assets/js/scripts.bundle.js.map +1 -1
- package/assets/js/scripts.bundle.min.js +3 -4
- package/assets/js/scripts.bundle.min.js.map +1 -1
- package/assets/js/tests/filterlist.spec.js +22 -0
- package/assets/js/tests/pagination.spec.js +15 -0
- package/assets/js/tests/table.spec.js +147 -0
- package/assets/sass/_components.scss +1 -2
- package/assets/sass/_corefiles.scss +5 -4
- package/assets/sass/_fonts.scss +4 -4
- package/assets/sass/_func.scss +1 -0
- package/assets/sass/_functions/functions.scss +6 -0
- package/assets/sass/_functions/mixins.scss +9 -9
- package/assets/sass/_functions/utilities.scss +16 -0
- package/assets/sass/_functions/variables.scss +128 -86
- package/assets/sass/_tests/colours.spec.scss +1 -1
- package/assets/sass/_tests/mixins.spec.scss +1 -1
- package/assets/sass/_tests/typography.spec.scss +2 -2
- package/assets/sass/components/accordion.scss +9 -6
- package/assets/sass/components/applied-filters.scss +65 -0
- package/assets/sass/components/card.scss +178 -227
- package/assets/sass/components/charts.scss +4 -0
- package/assets/sass/components/container.scss +13 -8
- package/assets/sass/components/dialog.scss +202 -0
- package/assets/sass/components/forms.scss +39 -5
- package/assets/sass/components/header.scss +34 -11
- package/assets/sass/components/lists.scss +15 -0
- package/assets/sass/components/nav.scss +5 -1
- package/assets/sass/components/pagination.scss +140 -0
- package/assets/sass/components/panel.scss +3 -4
- package/assets/sass/components/snapshot.scss +1 -1
- package/assets/sass/components/table.scss +419 -0
- package/assets/sass/components/tabs.scss +52 -36
- package/assets/sass/components/timeline.scss +2 -2
- package/assets/sass/foundations/icons.scss +1 -1
- package/assets/sass/{components → foundations}/links.scss +29 -2
- package/assets/sass/foundations/reboot.scss +21 -15
- package/assets/sass/foundations/root.scss +12 -5
- package/assets/sass/foundations/type.scss +90 -66
- package/assets/svg/illustrations/table.svg +165 -0
- package/assets/ts/README.md +12 -0
- package/assets/ts/bundle.ts +87 -0
- package/assets/ts/components/accordion/README.md +17 -0
- package/assets/ts/components/accordion/accordion.component.ts +43 -0
- package/assets/ts/components/applied-filters/README.md +5 -0
- package/assets/ts/components/applied-filters/applied-filters.component.ts +33 -0
- package/assets/ts/components/card/README.md +22 -0
- package/assets/ts/components/card/card.component.ts +117 -0
- package/assets/ts/components/filterlist/README.md +17 -0
- package/assets/ts/components/filterlist/filterlist.component.ts +60 -0
- package/assets/ts/components/header/README.md +26 -0
- package/assets/ts/components/header/header.component.ts +61 -0
- package/assets/ts/components/pagination/README.md +11 -0
- package/assets/ts/components/pagination/pagination.component.ts +45 -0
- package/assets/ts/components/table/README.md +23 -0
- package/assets/ts/components/table/table.component.ts +128 -0
- package/assets/ts/components/tabs/README.md +18 -0
- package/assets/ts/components/tabs/tabs.component.ts +41 -0
- package/assets/ts/dynamic.ts +98 -0
- package/assets/ts/flat-components.ts +100 -0
- package/assets/ts/html.d.ts +4 -0
- package/assets/ts/modules/accordion.ts +15 -21
- package/assets/ts/modules/applied-filters.ts +146 -0
- package/assets/ts/modules/data-layer.ts +58 -0
- package/assets/ts/modules/filterlist.ts +46 -0
- package/assets/ts/modules/helpers.ts +93 -55
- package/assets/ts/modules/pagination.ts +44 -0
- package/assets/ts/modules/table.ts +598 -433
- package/assets/ts/modules/tabs.ts +136 -0
- package/assets/ts/modules/youtubevideo.ts +58 -63
- package/assets/ts/tests/filterlist.spec.ts +29 -0
- package/assets/ts/tests/pagination.spec.ts +21 -0
- package/assets/ts/tests/table.spec.ts +191 -0
- package/dist/components.es.js +1359 -1356
- package/dist/components.umd.js +103 -54
- package/dist/style.css +1 -1
- package/package.json +20 -12
- package/src/components/Accordion/Accordion.spec.js +1 -1
- package/src/components/Accordion/Accordion.vue +7 -5
- package/src/components/Accordion/AccordionItem.vue +3 -6
- package/src/components/Accordion/README.md +0 -2
- package/src/components/AppliedFilters/AppliedFilters.vue +20 -0
- package/src/components/AppliedFilters/README.md +5 -0
- package/src/components/Card/Card.vue +11 -112
- package/src/components/Card/README.md +16 -18
- package/src/components/Carousel/Carousel.vue +49 -10
- package/src/components/Chart/Chart.vue +46 -4
- package/src/components/Filterlist/Filterlist.vue +20 -0
- package/src/components/Filterlist/README.md +17 -0
- package/src/components/Header/Header.spec.js +5 -4
- package/src/components/Header/Header.vue +14 -20
- package/src/components/Pagination/Pagination.vue +30 -0
- package/src/components/Pagination/README.md +11 -0
- package/src/components/Snapshot/Snapshot.vue +1 -1
- package/src/components/Table/README.md +29 -44
- package/src/components/Table/Table.spec.js +5 -37
- package/src/components/Table/Table.vue +16 -91
- package/src/components/Tabs/README.md +0 -2
- package/src/components/Tabs/Tab.vue +3 -2
- package/src/components/Tabs/Tabs.vue +8 -64
- package/src/foundations/YoutubeVideo/YoutubeVideo.vue +1 -1
- package/src/index.js +3 -2
- package/assets/fonts/qanelassoft-extrabold-webfont.woff +0 -0
- package/assets/fonts/qanelassoft-extrabold-webfont.woff2 +0 -0
- package/assets/js/main.js +0 -57
- package/assets/js/modules/modal.js +0 -69
- package/assets/sass/components/cardDeck.scss +0 -108
- package/assets/sass/components/modal.scss +0 -136
- package/assets/sass/components/tables.scss +0 -291
- package/assets/ts/main.ts +0 -68
- package/assets/ts/modules/modal.ts +0 -91
- package/src/components/CardDeck/CardDeck.spec.js +0 -99
- package/src/components/CardDeck/CardDeck.vue +0 -77
- package/src/components/CardDeck/README.md +0 -25
- package/src/components/Modal/Modal.spec.js +0 -22
- package/src/components/Modal/Modal.vue +0 -43
- package/src/components/Modal/README.md +0 -20
|
@@ -1,17 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
<div class="tabs__links">
|
|
7
|
-
<label v-for="(value,index) in tabLinks()" :key="index" :for="value.id" class="link" v-on:click="openTab(index)">
|
|
8
|
-
{{value.tabTitle}}
|
|
9
|
-
</label>
|
|
10
|
-
</div>
|
|
11
|
-
<div class="tabs">
|
|
12
|
-
<slot></slot>
|
|
13
|
-
</div>
|
|
14
|
-
</div>
|
|
2
|
+
<iam-tabs ref="wrapper">
|
|
3
|
+
<slot></slot>
|
|
4
|
+
</iam-tabs>
|
|
15
5
|
</template>
|
|
16
6
|
|
|
17
7
|
<style lang="scss">
|
|
@@ -19,59 +9,13 @@
|
|
|
19
9
|
</style>
|
|
20
10
|
|
|
21
11
|
<script>
|
|
22
|
-
|
|
23
|
-
name: 'Tabs',
|
|
24
|
-
data () {
|
|
25
|
-
return {
|
|
26
|
-
tabsID: 'tabs_'+Math.random().toString(36).substr(2, 9)
|
|
27
|
-
}
|
|
28
|
-
},
|
|
29
|
-
computed: {
|
|
30
|
-
tabLinks (){
|
|
31
|
-
return () => {
|
|
32
|
-
|
|
33
|
-
const tabLinks = [];
|
|
34
|
-
let i = 1;
|
|
35
|
-
|
|
36
|
-
for (const [key, value] of Object.entries(this.$slots.default())) {
|
|
37
|
-
|
|
38
|
-
// Check if the value in the object is actually a tab and has the correct data
|
|
39
|
-
if(value.props && value.props.title){
|
|
40
|
-
|
|
41
|
-
let tabTitle = value.props.title;
|
|
12
|
+
import iamTabs from '../../../assets/ts/components/tabs/tabs.component'
|
|
42
13
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
id: this.tabsID+"_tab"+i++,
|
|
46
|
-
tabTitle: tabTitle
|
|
47
|
-
}
|
|
14
|
+
if (!window.customElements.get('iam-tabs'))
|
|
15
|
+
window.customElements.define('iam-tabs', iamTabs);
|
|
48
16
|
|
|
49
|
-
tabLinks.push(tab);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
17
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
},
|
|
57
|
-
methods: {
|
|
58
|
-
openTab: function (index) {
|
|
59
|
-
|
|
60
|
-
let i = 0;
|
|
61
|
-
for (const [key, value] of Object.entries(this.$slots.default())) {
|
|
62
|
-
|
|
63
|
-
if(value.props && value.props.title){
|
|
64
|
-
|
|
65
|
-
if(i == index){
|
|
66
|
-
|
|
67
|
-
console.log(value)
|
|
68
|
-
value.type.data().show = true;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
i++;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
18
|
+
export default {
|
|
19
|
+
name: 'Tabs'
|
|
76
20
|
}
|
|
77
21
|
</script>
|
package/src/index.js
CHANGED
|
@@ -10,13 +10,11 @@ export { default as Accordion } from './components/Accordion/Accordion.vue'
|
|
|
10
10
|
export { default as AccordionItem } from './components/Accordion/AccordionItem.vue'
|
|
11
11
|
export { default as Banner } from './components/Banner/Banner.vue'
|
|
12
12
|
export { default as Card } from './components/Card/Card.vue'
|
|
13
|
-
export { default as CardDeck } from './components/CardDeck/CardDeck.vue'
|
|
14
13
|
export { default as Carousel } from './components/Carousel/Carousel.vue'
|
|
15
14
|
export { default as Header } from './components/Header/Header.vue'
|
|
16
15
|
export { default as Testimonial } from './components/Testimonial/Testimonial.vue'
|
|
17
16
|
export { default as PropertySearchbar } from './components/PropertySearchbar/PropertySearchbar.vue'
|
|
18
17
|
export { default as Nav } from './components/Nav/Nav.vue'
|
|
19
|
-
export { default as Modal } from './components/Modal/Modal.vue'
|
|
20
18
|
|
|
21
19
|
export { default as Stepper } from './components/Stepper/Stepper.vue'
|
|
22
20
|
export { default as Step } from './components/Stepper/Step.vue'
|
|
@@ -24,3 +22,6 @@ export { default as Tabs } from './components/Tabs/Tabs.vue'
|
|
|
24
22
|
export { default as Tab } from './components/Tabs/Tab.vue'
|
|
25
23
|
export { default as Alert } from './components/Alert/Alert.vue'
|
|
26
24
|
export { default as NoteFeed } from './components/NoteFeed/NoteFeed.vue'
|
|
25
|
+
|
|
26
|
+
export { default as AppliedFilters } from './components/AppliedFilters/AppliedFilters.vue'
|
|
27
|
+
export { default as Filterlist } from './components/Filterlist/Filterlist.vue'
|
|
Binary file
|
|
Binary file
|
package/assets/js/main.js
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
// Modules
|
|
3
|
-
import * as helpers from './modules/helpers.js';
|
|
4
|
-
import nav from './modules/nav.js';
|
|
5
|
-
import table from './modules/table.js';
|
|
6
|
-
import accordion from './modules/accordion.js';
|
|
7
|
-
import testimonial from './modules/testimonial.js';
|
|
8
|
-
import carousel from './modules/carousel.js';
|
|
9
|
-
import form from './modules/form.js';
|
|
10
|
-
import youtubeVideo from './modules/youtubevideo.js';
|
|
11
|
-
import modal from './modules/modal.js';
|
|
12
|
-
// Attach classes to dom elements
|
|
13
|
-
document.addEventListener("DOMContentLoaded", function () {
|
|
14
|
-
helpers.addBodyClasses(document.body);
|
|
15
|
-
helpers.addGlobalEvents(document.body);
|
|
16
|
-
helpers.checkElements(document.body);
|
|
17
|
-
console.log('test.js');
|
|
18
|
-
// ANav
|
|
19
|
-
Array.from(document.querySelectorAll('.nav')).forEach((arrayElement) => {
|
|
20
|
-
nav(arrayElement);
|
|
21
|
-
});
|
|
22
|
-
// Advanced tables
|
|
23
|
-
Array.from(document.querySelectorAll('.table__wrapper')).forEach((arrayElement) => {
|
|
24
|
-
table(arrayElement);
|
|
25
|
-
});
|
|
26
|
-
// Accordions
|
|
27
|
-
Array.from(document.querySelectorAll('.accordion')).forEach((arrayElement) => {
|
|
28
|
-
accordion(arrayElement);
|
|
29
|
-
});
|
|
30
|
-
// Testimonial
|
|
31
|
-
Array.from(document.querySelectorAll('.testimonial')).forEach((arrayElement) => {
|
|
32
|
-
testimonial(arrayElement);
|
|
33
|
-
});
|
|
34
|
-
// Carousel
|
|
35
|
-
Array.from(document.querySelectorAll('.carousel')).forEach((arrayElement) => {
|
|
36
|
-
carousel(arrayElement);
|
|
37
|
-
});
|
|
38
|
-
// Form
|
|
39
|
-
Array.from(document.querySelectorAll('form')).forEach((arrayElement) => {
|
|
40
|
-
form(arrayElement);
|
|
41
|
-
});
|
|
42
|
-
// Modal
|
|
43
|
-
Array.from(document.querySelectorAll('.modal')).forEach((arrayElement) => {
|
|
44
|
-
modal(arrayElement);
|
|
45
|
-
});
|
|
46
|
-
// YouTube videos
|
|
47
|
-
Array.from(document.querySelectorAll('.youtube-embed')).forEach((arrayElement) => {
|
|
48
|
-
new youtubeVideo(arrayElement);
|
|
49
|
-
});
|
|
50
|
-
window.addEventListener('hashchange', function () {
|
|
51
|
-
const hash = location.hash.replace('#', '');
|
|
52
|
-
const label = document.querySelector(`label[for="${hash}"]`);
|
|
53
|
-
if (label instanceof HTMLElement) {
|
|
54
|
-
label.click();
|
|
55
|
-
}
|
|
56
|
-
}, false);
|
|
57
|
-
});
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
const modal = (element) => {
|
|
3
|
-
const links = element.querySelectorAll('.modal__outer a, .modal__outer button');
|
|
4
|
-
const firstLink = links[0];
|
|
5
|
-
const lastLink = links[links.length - 1];
|
|
6
|
-
const modalID = element.getAttribute('id');
|
|
7
|
-
const closeModal = function () {
|
|
8
|
-
const button = document.querySelector('[href="' + window.location.hash + '"]');
|
|
9
|
-
button.focus();
|
|
10
|
-
window.location.hash = "close";
|
|
11
|
-
history.replaceState("", document.title, window.location.pathname + window.location.search);
|
|
12
|
-
// If there is more than one video lets make sure there is only one playing at a time.
|
|
13
|
-
if (typeof window.player != "undefined" && typeof window.player.pauseVideo == "function")
|
|
14
|
-
window.player.pauseVideo();
|
|
15
|
-
};
|
|
16
|
-
// Trap the tab focus inside
|
|
17
|
-
element.addEventListener('keydown', function (e) {
|
|
18
|
-
if (e.key === "Tab" && e.shiftKey && document.activeElement == firstLink) {
|
|
19
|
-
e.preventDefault();
|
|
20
|
-
lastLink.focus();
|
|
21
|
-
}
|
|
22
|
-
else if (e.key === "Tab" && !e.shiftKey && document.activeElement == lastLink) {
|
|
23
|
-
e.preventDefault();
|
|
24
|
-
firstLink.focus();
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
// ESC will close the open modal
|
|
28
|
-
document.addEventListener("keydown", function (e) {
|
|
29
|
-
if (e.key === "Escape" && document.querySelector('.modal:target'))
|
|
30
|
-
closeModal();
|
|
31
|
-
});
|
|
32
|
-
element.addEventListener('click', function (e) {
|
|
33
|
-
for (var target = e.target; target && target != this; target = target.parentNode) {
|
|
34
|
-
// Close links will close the model by default but we want to remove the hash link also
|
|
35
|
-
if (target.matches('[href="#close"]')) {
|
|
36
|
-
e.preventDefault();
|
|
37
|
-
closeModal();
|
|
38
|
-
break;
|
|
39
|
-
}
|
|
40
|
-
// Dock the modal to the right or left to make the content behind readable
|
|
41
|
-
else if (target.matches('.modal__dock--right')) {
|
|
42
|
-
e.preventDefault();
|
|
43
|
-
if (!element.classList.contains('modal--left'))
|
|
44
|
-
element.classList.add('modal--right');
|
|
45
|
-
element.classList.remove('modal--left');
|
|
46
|
-
break;
|
|
47
|
-
}
|
|
48
|
-
else if (target.matches('.modal__dock--left')) {
|
|
49
|
-
e.preventDefault();
|
|
50
|
-
if (!element.classList.contains('modal--right'))
|
|
51
|
-
element.classList.add('modal--left');
|
|
52
|
-
element.classList.remove('modal--right');
|
|
53
|
-
break;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
function locationHashChanged() {
|
|
58
|
-
if (location.hash === '#' + modalID) {
|
|
59
|
-
console.log("Modal is now open");
|
|
60
|
-
const videoButton = document.querySelector('.modal:target .modal__inner > .youtube-embed:first-child:last-child a');
|
|
61
|
-
console.log(videoButton);
|
|
62
|
-
if (videoButton) {
|
|
63
|
-
videoButton.click();
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
window.onhashchange = locationHashChanged;
|
|
68
|
-
};
|
|
69
|
-
export default modal;
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
@use "../_func" as *;
|
|
2
|
-
|
|
3
|
-
// #region Card Deck
|
|
4
|
-
.card-deck.container:not([data-card-type="simple"]) {
|
|
5
|
-
|
|
6
|
-
padding-bottom: 3rem;
|
|
7
|
-
|
|
8
|
-
> .row:first-child {
|
|
9
|
-
padding-top: 0.5rem;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
&[class*="bg-"] {
|
|
13
|
-
padding-bottom: 5rem;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
// #endregion
|
|
17
|
-
|
|
18
|
-
// #region Fake container query that transforms the card into a vertical card
|
|
19
|
-
@mixin vertical-card(){
|
|
20
|
-
.card-header__wrapper {
|
|
21
|
-
position: absolute;
|
|
22
|
-
top: 0;
|
|
23
|
-
left: 0;
|
|
24
|
-
width: 45.8%;
|
|
25
|
-
height: 100%;
|
|
26
|
-
padding: 0;
|
|
27
|
-
}
|
|
28
|
-
.card-header__wrapper ~ .card-body,
|
|
29
|
-
.card-header__wrapper ~ .card-footer {
|
|
30
|
-
padding-left: calc(45.8% + #{$card-spacer-x + $card-spacer-x});
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
@media screen and (min-width: 36em) and (max-width: 61.99em) {
|
|
35
|
-
|
|
36
|
-
.card-deck .row-cols-sm-1 {
|
|
37
|
-
@include vertical-card();
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
@include media-breakpoint-up(md) {
|
|
42
|
-
|
|
43
|
-
.card-deck:not(.card-deck--featured) .row-cols-md-1 {
|
|
44
|
-
|
|
45
|
-
@include vertical-card();
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
// #endregion
|
|
49
|
-
|
|
50
|
-
// #region Featured Card deck
|
|
51
|
-
.card-deck--featured {
|
|
52
|
-
|
|
53
|
-
> .row > .col:nth-child(4) ~ .col {
|
|
54
|
-
display: none;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
> .row > .col:not(:first-child) .card-header__wrapper {
|
|
58
|
-
display: none;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
.row-cols-sm-1 > .col:not(:first-child) .card-header__wrapper ~ .card-body {
|
|
62
|
-
padding-left: 1.5rem;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
.card-footer {
|
|
66
|
-
display: none;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
@include media-breakpoint-up(md) {
|
|
70
|
-
|
|
71
|
-
> .row {
|
|
72
|
-
display: grid;
|
|
73
|
-
grid-template-columns: 1fr 1fr 41.66666667%;
|
|
74
|
-
grid-template-rows: auto auto auto;
|
|
75
|
-
gap: var(--gutter-y) var(--gutter-x);
|
|
76
|
-
grid-template-areas:
|
|
77
|
-
"featured featured card2"
|
|
78
|
-
"featured featured card3"
|
|
79
|
-
"featured featured card4";
|
|
80
|
-
margin-top:0;
|
|
81
|
-
}
|
|
82
|
-
> .row > .col:first-child {
|
|
83
|
-
grid-area: featured;
|
|
84
|
-
}
|
|
85
|
-
> .row > .col:not(:first-child) {
|
|
86
|
-
min-height: 0;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
> .row > .col:nth-child(2) {
|
|
90
|
-
grid-area: card2;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
> .row > .col:nth-child(3) {
|
|
94
|
-
grid-area: card3;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
> .row > .col:nth-child(4) {
|
|
98
|
-
grid-area: card4;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
> .row > .col {
|
|
102
|
-
width: 100%;
|
|
103
|
-
margin-top:0;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
// #endregion
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
@use "sass:math";
|
|
2
|
-
@use "../_func" as *;
|
|
3
|
-
|
|
4
|
-
.modal {
|
|
5
|
-
display: none;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
.modal:target {
|
|
9
|
-
display: block;
|
|
10
|
-
position: fixed;
|
|
11
|
-
top: 0;
|
|
12
|
-
left: 0;
|
|
13
|
-
width: 100%;
|
|
14
|
-
height: 100%;
|
|
15
|
-
background: rgba(0,0,0,0.25);
|
|
16
|
-
z-index: var(--index-overlay);
|
|
17
|
-
border: none;
|
|
18
|
-
overscroll-behavior: contain;
|
|
19
|
-
|
|
20
|
-
> a:first-child {
|
|
21
|
-
|
|
22
|
-
position: absolute;
|
|
23
|
-
top: 0;
|
|
24
|
-
left: 0;
|
|
25
|
-
width: 100%;
|
|
26
|
-
height: 100%;
|
|
27
|
-
opacity: 0;
|
|
28
|
-
cursor: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 512 512'%3e%3cg transform='rotate(45 256 256)'%3e%3crect id='r' x='16' y='216' width='480' height='80' rx='14'/%3e%3cuse href='%23r' transform='rotate(90 256 256)'/%3e%3c/g%3e%3c/svg%3e") 8 8, pointer;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
> button {
|
|
32
|
-
display: none;
|
|
33
|
-
|
|
34
|
-
@include media-breakpoint-up(md) {
|
|
35
|
-
display: block;
|
|
36
|
-
position: absolute;
|
|
37
|
-
z-index: var(--index-focus);
|
|
38
|
-
top: 50%;
|
|
39
|
-
transform: translate(0,-50%);
|
|
40
|
-
overflow: hidden;
|
|
41
|
-
text-indent: 300%;
|
|
42
|
-
width: 2rem;
|
|
43
|
-
height: 2rem;
|
|
44
|
-
|
|
45
|
-
&.btn:not(:hover):not(:focus) {
|
|
46
|
-
background-color: white;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
&.modal__dock--left {
|
|
50
|
-
right: calc(50% + #{rem(math.div(820,2))} + 1rem);
|
|
51
|
-
|
|
52
|
-
&:after {
|
|
53
|
-
transform: rotate(-180deg);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
&.modal__dock--right {
|
|
57
|
-
left: calc(50% + #{rem(math.div(820,2))} + 1rem);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
&.modal--left button.modal__dock--left {
|
|
64
|
-
display: none;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
&.modal--left button.modal__dock--right {
|
|
68
|
-
left: calc(#{rem(640)} + 2rem);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
&.modal--right button.modal__dock--right {
|
|
72
|
-
display: none;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
&.modal--right button.modal__dock--left {
|
|
76
|
-
right: calc(#{rem(640)} + 2rem);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
.modal__outer {
|
|
82
|
-
|
|
83
|
-
position: absolute;
|
|
84
|
-
top: 50%;
|
|
85
|
-
left: 50%;
|
|
86
|
-
width: 90%;
|
|
87
|
-
max-width: rem(820);
|
|
88
|
-
height: fit-content;
|
|
89
|
-
max-height: 90%;
|
|
90
|
-
overflow: visible;
|
|
91
|
-
transform: translate(-50%,-50%);
|
|
92
|
-
|
|
93
|
-
> .btn:first-child {
|
|
94
|
-
position: absolute;
|
|
95
|
-
top: 0;
|
|
96
|
-
right: 0;
|
|
97
|
-
margin-top: -0.75rem;
|
|
98
|
-
margin-right: -0.75rem;
|
|
99
|
-
z-index: var(--index-focus);
|
|
100
|
-
|
|
101
|
-
&:not(:hover):not(:focus):not(:active){
|
|
102
|
-
background: white;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
@include media-breakpoint-up(md) {
|
|
106
|
-
.modal--left & {
|
|
107
|
-
left: 1rem;
|
|
108
|
-
transform: translate(0,-50%);
|
|
109
|
-
max-width: 40rem;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
.modal--right & {
|
|
113
|
-
left: auto;
|
|
114
|
-
right: 1rem;
|
|
115
|
-
transform: translate(0,-50%);
|
|
116
|
-
max-width: 40rem;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
.modal__inner {
|
|
122
|
-
background: white;
|
|
123
|
-
overscroll-behavior: contain;
|
|
124
|
-
height: fit-content;
|
|
125
|
-
max-height: 90vh;
|
|
126
|
-
overflow: auto;
|
|
127
|
-
|
|
128
|
-
& > *:first-child {
|
|
129
|
-
|
|
130
|
-
padding: 1rem;
|
|
131
|
-
@include media-breakpoint-up(sm) {
|
|
132
|
-
|
|
133
|
-
padding: 2rem;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}
|