mypgs 1.3.4 → 1.3.6
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/AI_GUIDELINES.md +1 -1
- package/assets/javascript/patterns/_header.js +77 -79
- package/assets/scss/base/_body.scss +2 -0
- package/assets/scss/base/_color.scss +2 -0
- package/assets/scss/base/_general.scss +2 -0
- package/assets/scss/base/_heading.scss +2 -0
- package/assets/scss/base/_variables.scss +2 -0
- package/assets/scss/components/_accordion.scss +2 -0
- package/assets/scss/components/_button.scss +2 -0
- package/assets/scss/components/_form.scss +2 -0
- package/assets/scss/components/_logo.scss +2 -0
- package/assets/scss/components/_menu.scss +2 -0
- package/assets/scss/components/_modals.scss +2 -0
- package/assets/scss/components/_notification.scss +2 -0
- package/assets/scss/components/_searchbar.scss +2 -0
- package/assets/scss/components/_slides.scss +2 -0
- package/assets/scss/components/_stepTabs.scss +2 -0
- package/assets/scss/components/_steps.scss +2 -0
- package/assets/scss/index.scss +32 -32
- package/assets/scss/layout/_flex.scss +2 -0
- package/assets/scss/layout/_grid.scss +2 -0
- package/assets/scss/layout/_layout.scss +2 -0
- package/assets/scss/layout/_pageShell.scss +2 -0
- package/assets/scss/mixin/_mx-base.scss +5 -2
- package/assets/scss/mixin/_mx-card.scss +5 -1
- package/assets/scss/mixin/_mx-form-addon.scss +4 -1
- package/assets/scss/mixin/_mx-form.scss +6 -3
- package/assets/scss/mixin/_mx-responsive.scss +3 -1
- package/assets/scss/mixin/_settings.scss +31 -0
- package/assets/scss/mixin/mixin.scss +11 -35
- package/assets/scss/patterns/_cookieConsent.scss +3 -1
- package/assets/scss/patterns/_footer.scss +2 -0
- package/assets/scss/patterns/_header.scss +12 -4
- package/dist/css/index.css +75 -25
- package/dist/css/index.css.map +1 -1
- package/dist/css/index.min.css +1 -1
- package/dist/javascript/index.js +77 -78
- package/dist/javascript/index.js.map +1 -1
- package/dist/javascript/index.min.js +1 -1
- package/package.json +1 -1
- package/templates/components/searchbar.html +1 -1
- package/templates/patterns/header.html +2 -2
package/AI_GUIDELINES.md
CHANGED
|
@@ -1,107 +1,111 @@
|
|
|
1
1
|
//# HEADER
|
|
2
2
|
const header = pgs(document).querySelector("header");
|
|
3
|
-
const headerElements = pgs(header).querySelectorAll("header-element");
|
|
4
|
-
headerElements.forEach(element => PGS_header(element));
|
|
5
3
|
|
|
6
4
|
//= HEADER
|
|
7
|
-
function PGS_header(selectHeader) {
|
|
5
|
+
function PGS_header(selectHeader = document) {
|
|
6
|
+
|
|
7
|
+
if (!header) return;
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
const headerElements = pgs(header).querySelectorAll("header-element");
|
|
10
|
+
|
|
11
|
+
if (!headerElements.length) return;
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
let menuAttivate = false;
|
|
15
|
-
let childsWidthSAVE;
|
|
13
|
+
headerElements.forEach(selectHeader => {
|
|
16
14
|
|
|
17
|
-
|
|
15
|
+
//== ACTIVE MOBILE
|
|
16
|
+
let menuAttivate = false;
|
|
17
|
+
let childsWidthSAVE;
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
let style = window.getComputedStyle(headerElement);
|
|
21
|
-
let padding = parseFloat(style.paddingLeft) + parseFloat(style.paddingRight);
|
|
22
|
-
let gap = parseFloat(style.gap);
|
|
23
|
-
let headerElementWidth = parseInt(headerElement.offsetWidth - padding);
|
|
24
|
-
let childsWidth;
|
|
19
|
+
function mobileActive(headerElement) {
|
|
25
20
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
let
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
Array.from(headerElement.children)
|
|
33
|
-
.filter(el => !pgs(el).contains("header-element-onlyMobile"))
|
|
34
|
-
.forEach(child => {
|
|
35
|
-
if (pgs(child).contains("header-element-hamburger")) return;
|
|
36
|
-
childs.push(...child.children);
|
|
37
|
-
});
|
|
21
|
+
//=== header
|
|
22
|
+
let style = window.getComputedStyle(headerElement);
|
|
23
|
+
let padding = parseFloat(style.paddingLeft) + parseFloat(style.paddingRight);
|
|
24
|
+
let gap = parseFloat(style.gap);
|
|
25
|
+
let headerElementWidth = parseInt(headerElement.offsetWidth - padding);
|
|
26
|
+
let childsWidth;
|
|
38
27
|
|
|
39
|
-
|
|
40
|
-
|
|
28
|
+
if (menuAttivate) {
|
|
29
|
+
childsWidth = childsWidthSAVE;
|
|
30
|
+
} else {
|
|
31
|
+
let childs = [];
|
|
41
32
|
|
|
42
|
-
|
|
43
|
-
|
|
33
|
+
// Esclude l'area mobile dedicata e l'hamburger, poi misura i figli sempre visibili su desktop.
|
|
34
|
+
Array.from(headerElement.children)
|
|
35
|
+
.filter(el => !pgs(el).contains("header-element-onlyMobile"))
|
|
36
|
+
.forEach(child => {
|
|
37
|
+
if (pgs(child).contains("header-element-hamburger")) return;
|
|
38
|
+
childs.push(...child.children);
|
|
39
|
+
});
|
|
44
40
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
header.setAttribute("data-header-mobileActive", "true");
|
|
48
|
-
selectHeader.setAttribute("data-header-mobileActive", "true");
|
|
49
|
-
} else if (headerElementWidth < childsWidth) {
|
|
50
|
-
header.setAttribute("data-header-mobileActive", "true");
|
|
51
|
-
headerElement.setAttribute("data-header-mobileActive", "true");
|
|
52
|
-
menuAttivate = true;
|
|
53
|
-
childsWidthSAVE = childsWidth;
|
|
54
|
-
} else {
|
|
55
|
-
header.setAttribute("data-header-mobileActive", "false");
|
|
56
|
-
headerElement.setAttribute("data-header-mobileActive", "false");
|
|
57
|
-
}
|
|
58
|
-
}
|
|
41
|
+
gap = Math.round(gap * (childs.length - 1));
|
|
42
|
+
let childsReduce = childs.reduce((totalWidth, child) => totalWidth + child.offsetWidth, 0) - 2;
|
|
59
43
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
const scheduleMobileActive = () => {
|
|
63
|
-
if (resizeRafId) return;
|
|
64
|
-
resizeRafId = requestAnimationFrame(() => {
|
|
65
|
-
resizeRafId = 0;
|
|
66
|
-
mobileActive(selectHeader);
|
|
67
|
-
});
|
|
68
|
-
};
|
|
44
|
+
childsWidth = childsReduce + gap;
|
|
45
|
+
}
|
|
69
46
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
47
|
+
//===set data
|
|
48
|
+
if (window.innerWidth < 600) {
|
|
49
|
+
pgs(header).state.add("mobileActive");
|
|
50
|
+
pgs(selectHeader).state.add("mobileActive");
|
|
51
|
+
} else if (headerElementWidth < childsWidth) {
|
|
52
|
+
pgs(header).state.add("mobileActive");
|
|
53
|
+
pgs(headerElement).state.add("mobileActive");
|
|
54
|
+
menuAttivate = true;
|
|
55
|
+
childsWidthSAVE = childsWidth;
|
|
56
|
+
} else {
|
|
57
|
+
pgs(header).state.remove("mobileActive");
|
|
58
|
+
pgs(headerElement).state.remove("mobileActive");
|
|
59
|
+
}
|
|
60
|
+
}
|
|
73
61
|
|
|
62
|
+
//== observer (throttled to avoid ResizeObserver loop warnings)
|
|
63
|
+
let resizeRafId = 0;
|
|
64
|
+
const scheduleMobileActive = () => {
|
|
65
|
+
if (resizeRafId) return;
|
|
66
|
+
resizeRafId = requestAnimationFrame(() => {
|
|
67
|
+
resizeRafId = 0;
|
|
68
|
+
mobileActive(selectHeader);
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
let observer = new ResizeObserver(scheduleMobileActive);
|
|
73
|
+
observer.observe(selectHeader);
|
|
74
|
+
scheduleMobileActive();
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
// Ripristina la posizione dell'header quando si esce dalla modalità mobile
|
|
78
|
+
window.addEventListener("resize", () => {
|
|
79
|
+
if (window.innerWidth > 768) header.style.transform = "translateY(0)";
|
|
80
|
+
});
|
|
74
81
|
}
|
|
75
|
-
|
|
76
|
-
|
|
82
|
+
PGS_header();
|
|
77
83
|
|
|
78
84
|
|
|
79
85
|
//= HEADER HEIGHT
|
|
80
|
-
const body = document.querySelector("body");
|
|
81
86
|
function headerHeight() {
|
|
82
|
-
|
|
87
|
+
if (!header) return;
|
|
83
88
|
const wordPressBar = window.getComputedStyle(document.documentElement).marginTop ?? 0;
|
|
89
|
+
const headerHeight = header.offsetHeight
|
|
84
90
|
|
|
85
|
-
const
|
|
86
|
-
|
|
87
|
-
.reduce((sum, h) => sum + h);
|
|
88
|
-
|
|
89
|
-
const height = totalHeight + parseInt(wordPressBar);
|
|
90
|
-
|
|
91
|
-
body.style.setProperty('--heightOfHeader', `${height}px`);
|
|
91
|
+
const body = document.querySelector("body");
|
|
92
|
+
const height = headerHeight + parseInt(wordPressBar);
|
|
92
93
|
const scrollHeight = document.querySelector("header").getAttribute("data-header-scroll") === "true" ? 0 : height;
|
|
94
|
+
body.style.setProperty('--heightOfHeader', `${height}px`);
|
|
93
95
|
body.style.setProperty('--heightOfHeaderScroll', `${scrollHeight}px`);
|
|
94
|
-
|
|
95
96
|
}
|
|
96
97
|
headerHeight()
|
|
97
98
|
window.addEventListener("resize", headerHeight);
|
|
98
99
|
window.addEventListener("scroll", headerHeight);
|
|
99
100
|
|
|
100
101
|
|
|
102
|
+
|
|
103
|
+
|
|
101
104
|
//= SCROLL
|
|
102
105
|
// Nasconde l'header quando si scorre verso il basso e lo mostra quando si scorre verso l'alto su dispositivi con larghezza fino a 900px.
|
|
103
106
|
let lastScrollY = window.scrollY;
|
|
104
107
|
window.addEventListener("scroll", () => {
|
|
108
|
+
if (!header) return;
|
|
105
109
|
let currentScrollY = window.scrollY;
|
|
106
110
|
|
|
107
111
|
if (window.innerHeight <= 900) {
|
|
@@ -122,13 +126,7 @@ window.addEventListener("scroll", () => {
|
|
|
122
126
|
|
|
123
127
|
});
|
|
124
128
|
|
|
125
|
-
// Ripristina la posizione dell'header quando si esce dalla modalità mobile
|
|
126
|
-
window.addEventListener("resize", () => {
|
|
127
|
-
if (window.innerWidth > 768) header.style.transform = "translateY(0)";
|
|
128
|
-
});
|
|
129
129
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
document.querySelector("[pgs~=header-element]").setAttribute("data-header-mobileActive", "true");
|
|
134
|
-
}
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
|
package/assets/scss/index.scss
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
@
|
|
1
|
+
@use "sass:meta";
|
|
2
|
+
@use "./mixin/mixin" as *;
|
|
3
3
|
/*
|
|
4
4
|
|--------------------------------------------------------------------------
|
|
5
5
|
| Base
|
|
6
6
|
|--------------------------------------------------------------------------
|
|
7
7
|
*/
|
|
8
|
-
@
|
|
9
|
-
@
|
|
10
|
-
@
|
|
11
|
-
@
|
|
12
|
-
@
|
|
13
|
-
@
|
|
8
|
+
@include meta.load-css("base/variables");
|
|
9
|
+
@include meta.load-css("base/color");
|
|
10
|
+
@include meta.load-css("base/html");
|
|
11
|
+
@include meta.load-css("base/body");
|
|
12
|
+
@include meta.load-css("base/heading");
|
|
13
|
+
@include meta.load-css("base/general");
|
|
14
14
|
|
|
15
15
|
/*
|
|
16
16
|
|--------------------------------------------------------------------------
|
|
@@ -18,11 +18,11 @@
|
|
|
18
18
|
|--------------------------------------------------------------------------
|
|
19
19
|
*/
|
|
20
20
|
[pgs~=initP] {
|
|
21
|
-
@
|
|
22
|
-
@
|
|
23
|
-
@
|
|
24
|
-
@
|
|
25
|
-
@
|
|
21
|
+
@include meta.load-css("layout/layout");
|
|
22
|
+
@include meta.load-css("layout/flex");
|
|
23
|
+
@include meta.load-css("layout/grid");
|
|
24
|
+
@include meta.load-css("layout/pageShell");
|
|
25
|
+
@include meta.load-css("layout/gap");
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
/*
|
|
@@ -31,21 +31,21 @@
|
|
|
31
31
|
|--------------------------------------------------------------------------
|
|
32
32
|
*/
|
|
33
33
|
[pgs~=initP] {
|
|
34
|
-
@
|
|
35
|
-
@
|
|
36
|
-
@
|
|
37
|
-
@
|
|
38
|
-
@
|
|
39
|
-
@
|
|
40
|
-
@
|
|
41
|
-
@
|
|
42
|
-
@
|
|
43
|
-
@
|
|
44
|
-
@
|
|
45
|
-
@
|
|
46
|
-
@
|
|
47
|
-
@
|
|
48
|
-
@
|
|
34
|
+
@include meta.load-css("components/button");
|
|
35
|
+
@include meta.load-css("components/form");
|
|
36
|
+
@include meta.load-css("components/menu");
|
|
37
|
+
@include meta.load-css("components/accordion");
|
|
38
|
+
@include meta.load-css("components/breadcumbs");
|
|
39
|
+
@include meta.load-css("components/dropdown");
|
|
40
|
+
@include meta.load-css("components/modals");
|
|
41
|
+
@include meta.load-css("components/slides");
|
|
42
|
+
@include meta.load-css("components/steps");
|
|
43
|
+
@include meta.load-css("components/table");
|
|
44
|
+
@include meta.load-css("components/stepTabs");
|
|
45
|
+
@include meta.load-css("components/notification");
|
|
46
|
+
@include meta.load-css("components/tooltip");
|
|
47
|
+
@include meta.load-css("components/searchbar");
|
|
48
|
+
@include meta.load-css("components/logo");
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
/*
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
|--------------------------------------------------------------------------
|
|
55
55
|
*/
|
|
56
56
|
[pgs~=initP] {
|
|
57
|
-
@
|
|
58
|
-
@
|
|
59
|
-
@
|
|
60
|
-
}
|
|
57
|
+
@include meta.load-css("patterns/header");
|
|
58
|
+
@include meta.load-css("patterns/footer");
|
|
59
|
+
@include meta.load-css("patterns/cookieConsent");
|
|
60
|
+
}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
@use "settings" as *;
|
|
2
|
+
@use "mx-responsive" as *;
|
|
3
|
+
|
|
1
4
|
//= TEXTAREA
|
|
2
5
|
@mixin textarea() {
|
|
3
6
|
align-items: flex-start;
|
|
@@ -95,7 +98,7 @@
|
|
|
95
98
|
|
|
96
99
|
|
|
97
100
|
@mixin h1(){
|
|
98
|
-
@include heading($h1,false);
|
|
101
|
+
@include heading($h1, false);
|
|
99
102
|
}
|
|
100
103
|
|
|
101
104
|
@mixin h2(){
|
|
@@ -123,4 +126,4 @@
|
|
|
123
126
|
background-color: $color;
|
|
124
127
|
-webkit-mask: $url center/contain no-repeat;
|
|
125
128
|
mask: $url center/contain no-repeat;
|
|
126
|
-
}
|
|
129
|
+
}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
@use "settings" as *;
|
|
2
|
+
@use "mx-button" as *;
|
|
3
|
+
@use "mx-responsive" as *;
|
|
4
|
+
|
|
1
5
|
@mixin card-insideImg() {
|
|
2
6
|
$cardImgPadding: calc(var(--card-padding) * -1);
|
|
3
7
|
border-radius: var(--border-radius);
|
|
@@ -74,4 +78,4 @@
|
|
|
74
78
|
--fa-secondary-color: var(--color-warning);
|
|
75
79
|
}
|
|
76
80
|
}
|
|
77
|
-
}
|
|
81
|
+
}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
@use "mx-base" as *;
|
|
2
|
+
@use "mx-button" as *;
|
|
3
|
+
|
|
1
4
|
//=FORM
|
|
2
5
|
//== INPUT
|
|
3
6
|
@mixin input($padding: 15px) {
|
|
@@ -268,8 +271,8 @@
|
|
|
268
271
|
&::after {
|
|
269
272
|
$size: 0.4rem;
|
|
270
273
|
content: "";
|
|
271
|
-
top: $size / 2;
|
|
272
|
-
left: $size / 2;
|
|
274
|
+
top: calc($size / 2);
|
|
275
|
+
left: calc($size / 2);
|
|
273
276
|
display: inline-block;
|
|
274
277
|
width: calc(var(--checkbox-size) - $size);
|
|
275
278
|
height: calc(var(--checkbox-size) - $size);
|
|
@@ -519,4 +522,4 @@
|
|
|
519
522
|
}
|
|
520
523
|
}
|
|
521
524
|
}
|
|
522
|
-
}
|
|
525
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
//+ devices
|
|
2
|
+
$watch: 315px;
|
|
3
|
+
$mobile: 430px;
|
|
4
|
+
$big-mobile: 615px;
|
|
5
|
+
$tablet: 800px;
|
|
6
|
+
$big-tablet: 900px;
|
|
7
|
+
$laptop: 1100px;
|
|
8
|
+
|
|
9
|
+
@use "sass:list";
|
|
10
|
+
|
|
11
|
+
@function fibonacci($n) {
|
|
12
|
+
$sequence: 0 1;
|
|
13
|
+
|
|
14
|
+
@for $_ from 1 through $n {
|
|
15
|
+
$last: list.nth($sequence, list.length($sequence));
|
|
16
|
+
$previous: list.nth($sequence, list.length($sequence) - 1);
|
|
17
|
+
$new: $last + $previous;
|
|
18
|
+
|
|
19
|
+
$sequence: list.append($sequence, $new);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
@return list.nth($sequence, list.length($sequence));
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
$base-fibonacci-size: 0.05rem;
|
|
26
|
+
|
|
27
|
+
$h1: fibonacci(11) * $base-fibonacci-size; // 7.2rem
|
|
28
|
+
$h2: fibonacci(10) * $base-fibonacci-size; // 4.45rem
|
|
29
|
+
$h3: fibonacci(9) * $base-fibonacci-size; // 2.75rem
|
|
30
|
+
$h4: fibonacci(8) * $base-fibonacci-size; // 1.7rem
|
|
31
|
+
$h5: fibonacci(8) * $base-fibonacci-size; // 1.7rem
|
|
@@ -1,35 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
@
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
$new: nth($sequence, length($sequence)) + nth($sequence, length($sequence) - 1);
|
|
13
|
-
$sequence: append($sequence, $new);
|
|
14
|
-
}
|
|
15
|
-
@return nth($sequence, length($sequence));
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
$base-fibonacci-size: 0.05rem;
|
|
19
|
-
$h1: fibonacci(11) * $base-fibonacci-size; // 7.12rem
|
|
20
|
-
$h2: fibonacci(10) * $base-fibonacci-size; // 4.4rem
|
|
21
|
-
$h3: fibonacci(9) * $base-fibonacci-size; // 2.72rem
|
|
22
|
-
$h4: fibonacci(8) * $base-fibonacci-size; // 1.68rem
|
|
23
|
-
$h5: fibonacci(8) * $base-fibonacci-size; // 1.68rem
|
|
24
|
-
|
|
25
|
-
//= IMPORT ADVANCED
|
|
26
|
-
@import "mx-base";
|
|
27
|
-
@import "mx-responsive";
|
|
28
|
-
@import "mx-form";
|
|
29
|
-
@import "mx-form-addon";
|
|
30
|
-
@import "mx-button";
|
|
31
|
-
@import "mx-color";
|
|
32
|
-
@import "mx-semantic";
|
|
33
|
-
@import "mx-card";
|
|
34
|
-
|
|
35
|
-
|
|
1
|
+
@forward "settings";
|
|
2
|
+
@forward "mx-base";
|
|
3
|
+
@forward "mx-responsive";
|
|
4
|
+
@forward "mx-form";
|
|
5
|
+
@forward "mx-form-addon";
|
|
6
|
+
@forward "mx-button";
|
|
7
|
+
@forward "mx-color";
|
|
8
|
+
@forward "mx-semantic";
|
|
9
|
+
@forward "mx-card";
|
|
10
|
+
|
|
11
|
+
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
@use "../mixin/mixin" as *;
|
|
2
|
+
|
|
1
3
|
[pgs~=cookieConsent] {
|
|
2
4
|
--cookie-bg: var(--color-box);
|
|
3
5
|
--cookie-color: var(--color-black);
|
|
@@ -82,7 +84,7 @@
|
|
|
82
84
|
|
|
83
85
|
[pgs~=cookieConsent-panel-badge] {
|
|
84
86
|
font-size: 1.35rem;
|
|
85
|
-
border-radius:
|
|
87
|
+
border-radius: 99px;
|
|
86
88
|
padding: 0.25rem 0.75rem;
|
|
87
89
|
background: var(--color-success-background);
|
|
88
90
|
color: var(--color-success);
|