mypgs 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.
Files changed (79) hide show
  1. package/README.md +33 -0
  2. package/assets/javascript/_pgs.js +214 -0
  3. package/assets/javascript/base/_darkmode.js +121 -0
  4. package/assets/javascript/base/_object.js +42 -0
  5. package/assets/javascript/components/_accordion.js +77 -0
  6. package/assets/javascript/components/_dropdown.js +107 -0
  7. package/assets/javascript/components/_exeNotifications.js +85 -0
  8. package/assets/javascript/components/_menu.js +92 -0
  9. package/assets/javascript/components/_modals.js +123 -0
  10. package/assets/javascript/components/_slides.js +183 -0
  11. package/assets/javascript/components/_steps.js +27 -0
  12. package/assets/javascript/components/_tabs.js +134 -0
  13. package/assets/javascript/functions/_formValidate.js +217 -0
  14. package/assets/javascript/functions/_notifications.js +74 -0
  15. package/assets/javascript/functions/_scrollY.js +77 -0
  16. package/assets/javascript/functions/_sendForm.js +100 -0
  17. package/assets/javascript/index.js +20 -0
  18. package/assets/javascript/patterns/_cookieConsent.js +209 -0
  19. package/assets/javascript/patterns/_header.js +134 -0
  20. package/assets/javascript/pgs.d.ts +23 -0
  21. package/assets/scss/base/_body.scss +151 -0
  22. package/assets/scss/base/_color.scss +56 -0
  23. package/assets/scss/base/_general.scss +58 -0
  24. package/assets/scss/base/_heading.scss +20 -0
  25. package/assets/scss/base/_html.scss +4 -0
  26. package/assets/scss/base/_reset.scss +15 -0
  27. package/assets/scss/base/_variables.scss +39 -0
  28. package/assets/scss/components/_accordion.scss +91 -0
  29. package/assets/scss/components/_breadcumbs.scss +40 -0
  30. package/assets/scss/components/_button.scss +28 -0
  31. package/assets/scss/components/_dropdown.scss +106 -0
  32. package/assets/scss/components/_form.scss +53 -0
  33. package/assets/scss/components/_logo.scss +51 -0
  34. package/assets/scss/components/_menu.scss +23 -0
  35. package/assets/scss/components/_modals.scss +120 -0
  36. package/assets/scss/components/_notification.scss +193 -0
  37. package/assets/scss/components/_searchbar.scss +68 -0
  38. package/assets/scss/components/_slides.scss +198 -0
  39. package/assets/scss/components/_steps.scss +111 -0
  40. package/assets/scss/components/_table.scss +59 -0
  41. package/assets/scss/components/_tabs.scss +69 -0
  42. package/assets/scss/components/_tooltip.scss +16 -0
  43. package/assets/scss/index.scss +64 -0
  44. package/assets/scss/layout/_flex.scss +47 -0
  45. package/assets/scss/layout/_gap.scss +12 -0
  46. package/assets/scss/layout/_grid.scss +11 -0
  47. package/assets/scss/layout/_layout.scss +41 -0
  48. package/assets/scss/layout/_pageShell.scss +171 -0
  49. package/assets/scss/mixin/_mx-base.scss +126 -0
  50. package/assets/scss/mixin/_mx-button.scss +186 -0
  51. package/assets/scss/mixin/_mx-card.scss +77 -0
  52. package/assets/scss/mixin/_mx-color.scss +34 -0
  53. package/assets/scss/mixin/_mx-form-addon.scss +180 -0
  54. package/assets/scss/mixin/_mx-form.scss +512 -0
  55. package/assets/scss/mixin/_mx-menu.scss +154 -0
  56. package/assets/scss/mixin/_mx-responsive.scss +353 -0
  57. package/assets/scss/mixin/_mx-semantic.scss +147 -0
  58. package/assets/scss/mixin/mixin.scss +36 -0
  59. package/assets/scss/patterns/_cookieConsent.scss +101 -0
  60. package/assets/scss/patterns/_footer.scss +180 -0
  61. package/assets/scss/patterns/_header.scss +143 -0
  62. package/dist/css/index.css +7026 -0
  63. package/dist/css/index.css.map +1 -0
  64. package/dist/css/index.min.css +1 -0
  65. package/dist/index.d.ts +24 -0
  66. package/dist/javascript/index.js +2034 -0
  67. package/dist/javascript/index.js.map +1 -0
  68. package/dist/javascript/index.min.js +1 -0
  69. package/package.json +40 -0
  70. package/templates/components/md-breadcumbs.html +23 -0
  71. package/templates/components/md-menu.html +6 -0
  72. package/templates/components/md-notification.html +10 -0
  73. package/templates/components/md-searchbar.html +24 -0
  74. package/templates/components/md-tooltip.html +5 -0
  75. package/templates/layout/md-body.html +20 -0
  76. package/templates/layout/md-cookieConsent.html +51 -0
  77. package/templates/layout/md-footer.html +16 -0
  78. package/templates/layout/md-header.html +43 -0
  79. package/webpack.config.js +131 -0
@@ -0,0 +1,39 @@
1
+ //+ MIXIN
2
+ // = SETTINGS
3
+ :root {
4
+ --font: 'Urbanist', sans-serif;
5
+ --font-titoli: var(--font);
6
+ --padding: 30px;
7
+ --padding-2: calc(var(--padding)/2);
8
+ --padding-page: 5vw;
9
+ --border-radius: 4.5rem;
10
+ --border-radius-external: calc(var(--border-radius) + var(--padding));
11
+ --border-radius-input: 2.25rem;
12
+ --border: 1.5px solid;
13
+ --border-color: light-dark(#ebebeb, #353535);
14
+ --border-complete: var(--border) var(--border-color);
15
+ --border-complete-hover: var(--border) var(--color-white);
16
+ --box-shadow: 0px 0px 38px 0px #0000000d;
17
+ --text-shadow: 0px 0px 50px #000000;
18
+ --backdrop: #0000003e;
19
+ --blur: blur(20px);
20
+ --page-top: 20svh;
21
+ --page-width: 1280px;
22
+ --page-space: clamp(var(--padding-page), calc((100% - var(--section-width)) / 2 + var(--padding-page)), 100%);
23
+ --gap-texts: 1.0rem;
24
+ --gap-elements: 4.0rem;
25
+ --gap-sections: calc(1.0rem + 15svh);
26
+ --fa-primary-color: var(--color-icon-primary);
27
+ --fa-primary-opacity: 1;
28
+ --fa-secondary-color: var(--color-icon-sceondary);
29
+ --fa-secondary-opacity: 1;
30
+ --fa-size: inherit;
31
+ --focus-visible: 3px solid var(--color-link);
32
+
33
+ --heightOfHeader: 13.3rem; ///preload fittizio
34
+
35
+ //- mobile
36
+ @media (max-width: $mobile) {
37
+ --gap-sections: calc(7.3rem + 8svh);
38
+ }
39
+ }
@@ -0,0 +1,91 @@
1
+ //# ACCORDION
2
+ [pgs~=accordion] {
3
+ padding: 0 !important;
4
+ flex-direction: column !important;
5
+ display: block !important;
6
+ width: 100% !important;
7
+ position: relative;
8
+ user-select: unset !important;
9
+
10
+ &:not([pgs-state~=open]) {
11
+ @include button(true);
12
+ --button-background: var(--color-box);
13
+ --button-size: var(--padding-2);
14
+ }
15
+
16
+ //= BUTTON
17
+ [pgs~="accordion-button"] {
18
+ padding: var(--button-padding);
19
+ cursor: pointer;
20
+ @include flexRow;
21
+ appearance: none;
22
+ border: 0;
23
+ background: transparent;
24
+ flex-wrap: nowrap;
25
+ box-shadow: none;
26
+ outline: none;
27
+ font: inherit;
28
+ color: inherit;
29
+ line-height: inherit;
30
+ text-align: inherit;
31
+ border-radius: var(--border-radius-input);
32
+ width: 100%;
33
+ $url: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M371.515%20229.055L219.516%20373.033C211.797%20380.344%20201.891%20384%20192%20384S172.203%20380.344%20164.484%20373.033L12.485%20229.055C-3.546%20213.87%20-4.233%20188.561%2010.97%20172.532C26.157%20156.472%2051.485%20155.785%2067.516%20171.001L192%20288.921L316.484%20171.001C332.499%20155.754%20357.827%20156.441%20373.03%20172.532C388.233%20188.561%20387.546%20213.87%20371.515%20229.055Z'/%3E%3C/svg%3E");
34
+
35
+ &::after {
36
+ @include iconSvgBase64($url);
37
+ margin-left: auto;
38
+ }
39
+ }
40
+
41
+ //= CONTENT
42
+ [pgs~="accordion-content"] {
43
+ padding-left: var(--button-padding);
44
+ @include flexColumn();
45
+ visibility: hidden;
46
+ opacity: 0;
47
+ max-height: 0;
48
+ top: 20px;
49
+ left: 0;
50
+ width: 100%;
51
+ font-weight: normal;
52
+ transition: padding 500ms, opacity 1000ms;
53
+ overflow: hidden;
54
+ }
55
+
56
+ //= OPEN
57
+ &[pgs-state~=open] {
58
+ @include button(false);
59
+ --button-background: var(--color-box);
60
+ --button-size: var(--padding-2);
61
+ margin-top: var(--padding);
62
+
63
+ [pgs~="accordion-button"] {
64
+ padding-inline: var(--padding);
65
+ padding-top: var(--padding);
66
+
67
+ &::after {
68
+ rotate: 180deg;
69
+ }
70
+
71
+ >i {
72
+ padding: .5rem;
73
+ background: color-mix(in srgb, var(--fa-primary-color) 5%, var(--color-white) 95%);
74
+ border-radius: .8rem;
75
+ display: table;
76
+ position: absolute;
77
+ top: calc(var(--padding) * -1);
78
+ left: var(--padding);
79
+ font-size: 40px;
80
+ }
81
+ }
82
+
83
+ [pgs~="accordion-content"] {
84
+ padding: calc(var(--button-size) * 2);
85
+ padding-top: var(--button-size);
86
+ visibility: visible;
87
+ opacity: 1;
88
+ max-height: unset;
89
+ }
90
+ }
91
+ }
@@ -0,0 +1,40 @@
1
+ [pgs~=breadcrumb] {
2
+ font-size: 1.4rem;
3
+ line-height: 1;
4
+ list-style: none;
5
+ margin: 0;
6
+ padding: 0;
7
+ display: flex;
8
+ align-items: center;
9
+ flex-wrap: wrap;
10
+ gap: 0;
11
+
12
+ [pgs~=breadcrumb-item] {
13
+ display: inline-flex;
14
+ align-items: center;
15
+
16
+ a {
17
+ color: var(--color-primary-strong);
18
+ text-decoration: none;
19
+ font-weight: 500;
20
+
21
+ &:hover {
22
+ color: var(--color-primary);
23
+ text-decoration: underline;
24
+ }
25
+ }
26
+
27
+ [aria-current="page"] {
28
+ color: var(--color-primary);
29
+ font-weight: 600;
30
+ }
31
+
32
+ [pgs~=breadcrumb-item-separator] {
33
+ color: var(--color-primary-soft);
34
+ margin: 0 8px;
35
+ display: inline-flex;
36
+ align-items: center;
37
+ }
38
+ }
39
+
40
+ }
@@ -0,0 +1,28 @@
1
+ //# BUTTON
2
+ [pgs~=button] {
3
+ @include button()
4
+ }
5
+
6
+ [pgs~=buttonNohover] {
7
+ @include button(false)
8
+ }
9
+
10
+ [pgs~=buttonIcon] {
11
+ @include button(true, true);
12
+ }
13
+
14
+ [pgs~=buttonStrong] {
15
+ @include button(true, false, true)
16
+ }
17
+
18
+ [pgs~=buttonMini] {
19
+ @include buttonMini();
20
+ }
21
+
22
+ [pgs~=buttonBig] {
23
+ @include buttonBig()
24
+ }
25
+
26
+ [pgs~=buttonClose] {
27
+ @include buttonClose();
28
+ }
@@ -0,0 +1,106 @@
1
+ //# DROPDOWN
2
+ [pgs~="dropdown"] {
3
+ --dropdown-position: bottom center;
4
+ --dropdown-offset: 10px;
5
+ --dropdown-padding: 10px;
6
+ --dropdown-maxwidth: min(500px, 50vw);
7
+ --dropdown-background: var(--color-box);
8
+ --dropdown-color: var(--color-black);
9
+ --dropdown-fallback-top: 0px;
10
+ --dropdown-fallback-left: 0px;
11
+ --dropdown-fallback-max-height: none;
12
+ --dropdown-arrow-size: 12px;
13
+ --dropdown-arrow-left: 50%;
14
+ position: relative;
15
+ display: inline-block;
16
+
17
+ //= CONTENT
18
+ [pgs~="dropdown-content"] {
19
+ visibility: hidden;
20
+ opacity: 0;
21
+ max-height: 0;
22
+ transition:
23
+ opacity 200ms ease-in-out,
24
+ visibility 200ms ease-in-out,
25
+ max-height 100ms ease-in-out;
26
+ transition-behavior: allow-discrete;
27
+ border: none;
28
+ border-radius: calc(var(--border-radius-input) + var(--dropdown-padding));
29
+ box-sizing: border-box;
30
+ width: max-content;
31
+ max-width: min(var(--dropdown-maxwidth), calc(100vw - 16px));
32
+ color: var(--dropdown-color);
33
+ background: var(--dropdown-background);
34
+ overflow: initial;
35
+ z-index: -1;
36
+ // overflow: clip;
37
+ @include flexColumn;
38
+ height: 0;
39
+
40
+ &::before {
41
+ content: "";
42
+ position: absolute;
43
+ top: calc(var(--dropdown-arrow-size) / -2);
44
+ left: var(--dropdown-arrow-left);
45
+ width: var(--dropdown-arrow-size);
46
+ height: var(--dropdown-arrow-size);
47
+ background: var(--dropdown-background);
48
+ transform: translateX(-50%) rotate(45deg);
49
+ pointer-events: none;
50
+ z-index: 0;
51
+ }
52
+
53
+ &:popover-open {
54
+ margin-top: var(--dropdown-offset);
55
+ padding: var(--dropdown-padding);
56
+ visibility: visible;
57
+ opacity: 1;
58
+ max-height: max-content;
59
+ height: unset;
60
+
61
+ &::backdrop {
62
+ background: var(--backdrop);
63
+ }
64
+ }
65
+ }
66
+
67
+ //-(LEGACY (default fallback)
68
+ @supports not ((anchor-name: var(--dropdown-anchor)) and (position-anchor: var(--dropdown-anchor)) and (position-area: bottom) and (top: anchor(bottom))) {
69
+ [pgs~="dropdown-content"] {
70
+ position: fixed;
71
+ inset: auto;
72
+ top: var(--dropdown-fallback-top);
73
+ left: var(--dropdown-fallback-left);
74
+ right: auto;
75
+ max-height: var(--dropdown-fallback-max-height);
76
+ overflow: visible;
77
+
78
+ &:popover-open {
79
+ margin-top: 0;
80
+ }
81
+ }
82
+ }
83
+
84
+ //+( MODERN (Anchor Positioning)
85
+ @supports (anchor-name: var(--dropdown-anchor)) and (position-anchor: var(--dropdown-anchor)) and (position-area: bottom) and (top: anchor(bottom)) {
86
+ [pgs~="dropdown-button"] {
87
+ anchor-name: var(--dropdown-anchor);
88
+ }
89
+
90
+ [pgs~="dropdown-content"] {
91
+ position: fixed;
92
+ position-anchor: var(--dropdown-anchor);
93
+ inset: auto;
94
+ top: 0;
95
+ right: 0;
96
+
97
+ @supports (top: anchor(bottom)) {
98
+ top: anchor(bottom);
99
+ }
100
+
101
+ @supports (position-area: bottom) {
102
+ position-area: var(--dropdown-position);
103
+ }
104
+ }
105
+ }
106
+ }
@@ -0,0 +1,53 @@
1
+ //# FORM
2
+ [pgs~=textarea] {
3
+ @include textarea();
4
+ }
5
+
6
+ [pgs~=label] {
7
+ @include label();
8
+ }
9
+
10
+ [pgs~=legend] {
11
+ @include legend();
12
+ }
13
+
14
+ [pgs~=required] {
15
+ @include required();
16
+ }
17
+
18
+ [pgs~=input] {
19
+ @include input();
20
+ }
21
+
22
+ [pgs~=select] {
23
+ @include select();
24
+ }
25
+
26
+ [pgs~=checkboxBackground] {
27
+ @include checkboxBackground();
28
+ }
29
+
30
+ [pgs~=twoState] {
31
+ @include twoState();
32
+ }
33
+
34
+ [pgs~=toggle] {
35
+ @include toggle();
36
+ }
37
+
38
+ [pgs~=chips] {
39
+ @include chips();
40
+ }
41
+
42
+ [pgs~=radio],
43
+ [pgs~=checkbox] {
44
+ @include checkbox();
45
+ }
46
+
47
+ [pgs~=form] {
48
+ @include form();
49
+ }
50
+
51
+ [pgs~=formError] {
52
+ @include formError();
53
+ }
@@ -0,0 +1,51 @@
1
+ //# LOGO
2
+ [pgs~="logo"] {
3
+ display: flex;
4
+ min-width: max-content;
5
+ --logo-height: var(--header-size, 6.0rem);
6
+ --logo-finter: invert(1) hue-rotate(180deg) brightness(1.5);
7
+
8
+ //== DARKMODE
9
+ @at-root [data-darkmode=true] #{&}[pgs~="logo-darkmode"] [pgs~="logo-image"] {
10
+ filter: var(--logo-finter);
11
+ }
12
+
13
+ //== FIXED DARKMODE
14
+ &[pgs~="logo-darkmodeFixed"][pgs~="logo-darkmode"] [pgs~="logo-image"] {
15
+ filter: var(--logo-finter);
16
+ }
17
+
18
+
19
+ //- tablet
20
+ @media (max-width: $tablet) {
21
+ min-width: var(--logo-height);
22
+ }
23
+
24
+ //= LOGO
25
+ >*:not([pgs~="logo-text"]) {
26
+ height: var(--logo-height);
27
+ object-fit: contain;
28
+ object-position: left;
29
+ align-items: center;
30
+ width: initial;
31
+
32
+ lottie-player,
33
+ object {
34
+ max-width: var(--logo-height);
35
+ }
36
+ }
37
+
38
+ //= SENZA LOGO
39
+ &:has([pgs~="logo-text"]) {
40
+ display: flex;
41
+ align-items: center;
42
+ filter: unset !important;
43
+
44
+ [pgs~="logo-text"] {
45
+ font-family: var(--font-titoli);
46
+ font-size: 20px;
47
+ font-weight: 600;
48
+ text-wrap: nowrap;
49
+ }
50
+ }
51
+ }
@@ -0,0 +1,23 @@
1
+ //# MENU
2
+ [pgs~=menuHorizontal] {
3
+ @include menu(row);
4
+
5
+ li.menu-item-has-children {
6
+ @include menu(column);
7
+ }
8
+ }
9
+ [pgs~=menuHorizontalNotHeader] {
10
+ @include menu(row, false);
11
+
12
+ li.menu-item-has-children {
13
+ @include menu(column);
14
+ }
15
+ }
16
+
17
+ [pgs~=menuVertical] {
18
+ @include menu(column)
19
+ }
20
+
21
+ [pgs~=menuFooter] {
22
+ @include menuFooter()
23
+ }
@@ -0,0 +1,120 @@
1
+ html:has(dialog[open]) {
2
+ overflow: hidden;
3
+ position: relative;
4
+ scrollbar-gutter: stable;
5
+ cursor: pointer;
6
+ }
7
+
8
+ //= MODAL
9
+ [pgs~="modal"] {
10
+
11
+ //#OPTION
12
+ //== CONTAINER ID
13
+ &[pgs-option~="containerID[]"] {}
14
+ }
15
+
16
+ //= DIALOG
17
+ dialog[pgs~="modal-dialog"] {
18
+ --modal-backdrop: var(--backdrop);
19
+ --modal-background: var(--color-box);
20
+ --modal-color: var(--color-black);
21
+ border: none;
22
+ min-width: 100%;
23
+ min-height: 100svh;
24
+ padding-inline: var(--padding-page);
25
+ padding-bottom: var(--padding);
26
+ padding-top: var(--page-top);
27
+ background: var(--modal-backdrop);
28
+ transition: opacity 600ms ease;
29
+ margin: 0;
30
+ opacity: 1;
31
+ transition-behavior: allow-discrete;
32
+
33
+ &::backdrop {
34
+ // height: 0;
35
+ // display: none;
36
+ }
37
+
38
+ @at-root dialog:not(:has([pgs~="modal-dialog-content"])) {
39
+ cursor: pointer;
40
+ }
41
+
42
+ //- big-mobile
43
+ @media (max-width: $big-mobile) {
44
+ padding-inline: 0;
45
+ }
46
+
47
+ //=== CONTENT
48
+ [pgs~="modal-dialog-content"] {
49
+ @include sectionNoPadding();
50
+ padding: 0;
51
+ cursor: auto;
52
+ container-type: inline-size;
53
+ background: var(--modal-background);
54
+ color: var(--modal-color);
55
+ border-radius: var(--border-radius);
56
+ position: relative;
57
+
58
+ >* {
59
+ padding: var(--padding);
60
+ }
61
+
62
+ //==== HEADER
63
+ [pgs~="modal-dialog-content-header"] {
64
+ @include flexRow();
65
+ border-bottom: var(--border-complete);
66
+ border-radius: var(--border-radius) var(--border-radius) 0 0;
67
+ z-index: 1;
68
+
69
+ [pgs~="modal-close"] {
70
+ margin-left: auto;
71
+ }
72
+ }
73
+
74
+ //=== SCROLL
75
+ &:has([pgs~="modal-dialog-content-scroll"]) {
76
+ max-height: calc(90svh - var(--heightOfHeader));
77
+ overflow: hidden;
78
+
79
+ [pgs~="modal-dialog-content-scroll"] {
80
+ overflow: auto;
81
+ max-height: 100%;
82
+ }
83
+ }
84
+ }
85
+
86
+ //== CLOSE
87
+ >[pgs~="modal-close"] {
88
+ position: fixed !important;
89
+ right: var(--padding-page);
90
+ top: calc(var(--heightOfHeader) + var(--padding));
91
+ z-index: 1;
92
+
93
+ @at-root dialog:not(:has(>[pgs~="modal-close"])) {
94
+ padding-top: var(--padding-page);
95
+ }
96
+ }
97
+
98
+ //#OPTION
99
+
100
+ //== RIGHT
101
+ &[pgs-option~="right"] {
102
+ [pgs~="modal-dialog-content"] {
103
+ margin-left: auto;
104
+ margin-right: unset;
105
+ width: min(400px, 100%);
106
+ min-width: unset;
107
+ }
108
+ }
109
+
110
+ //== TOP LEVEL
111
+ &:not([pgs-option~="topLevel"]) {
112
+ height: 100svh;
113
+ top: 0;
114
+ overflow-y: auto;
115
+ padding-top: calc(var(--heightOfHeader) + var(--padding));
116
+ z-index: 90;
117
+ position: fixed;
118
+ inset: 0;
119
+ }
120
+ }