mypgs 1.0.0 → 1.1.5

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 (59) hide show
  1. package/README.md +124 -11
  2. package/assets/javascript/_pgs.js +18 -3
  3. package/assets/javascript/components/_dropdown.js +3 -2
  4. package/assets/javascript/components/_slides.js +3 -3
  5. package/assets/javascript/components/_stepTabs.js +157 -0
  6. package/assets/javascript/index.js +1 -1
  7. package/assets/javascript/pgs.d.ts +47 -16
  8. package/assets/scss/base/_body.scss +3 -2
  9. package/assets/scss/base/_general.scss +46 -43
  10. package/assets/scss/base/_heading.scss +17 -15
  11. package/assets/scss/components/_accordion.scss +1 -0
  12. package/assets/scss/components/_dropdown.scss +19 -26
  13. package/assets/scss/components/_notification.scss +4 -4
  14. package/assets/scss/components/_searchbar.scss +2 -2
  15. package/assets/scss/components/_slides.scss +5 -4
  16. package/assets/scss/components/_stepTabs.scss +58 -0
  17. package/assets/scss/components/_steps.scss +4 -3
  18. package/assets/scss/components/_table.scss +1 -1
  19. package/assets/scss/components/_tooltip.scss +11 -6
  20. package/assets/scss/index.scss +29 -32
  21. package/assets/scss/layout/_gap.scss +3 -0
  22. package/assets/scss/mixin/_mx-button.scss +64 -41
  23. package/assets/scss/mixin/_mx-menu.scss +1 -1
  24. package/dist/css/index.css +2149 -1729
  25. package/dist/css/index.css.map +1 -1
  26. package/dist/css/index.min.css +1 -1
  27. package/dist/index.d.ts +45 -15
  28. package/dist/javascript/index.js +139 -100
  29. package/dist/javascript/index.js.map +1 -1
  30. package/dist/javascript/index.min.js +1 -1
  31. package/package.json +2 -2
  32. package/pgs-html-suggestions.vsix +0 -0
  33. package/templates/components/md-accordion.html +23 -0
  34. package/templates/components/md-breadcumbs.html +8 -8
  35. package/templates/components/md-button.html +29 -0
  36. package/templates/components/md-card.html +23 -0
  37. package/templates/components/md-dropdown.html +16 -0
  38. package/templates/components/md-form.html +26 -0
  39. package/templates/components/md-logo.html +7 -0
  40. package/templates/components/md-menu.html +39 -5
  41. package/templates/components/md-modal.html +19 -0
  42. package/templates/components/md-notification.html +4 -1
  43. package/templates/components/md-searchbar.html +6 -1
  44. package/templates/components/md-slides.html +33 -0
  45. package/templates/components/md-stepTabs.html +36 -0
  46. package/templates/components/md-steps.html +25 -0
  47. package/templates/components/md-table.html +24 -0
  48. package/templates/components/md-tooltip.html +1 -0
  49. package/templates/demo.css +51 -0
  50. package/templates/demo.html +24 -0
  51. package/templates/demo.js +141 -0
  52. package/templates/layout/md-body.html +1 -1
  53. package/templates/layout/md-cookieConsent.html +2 -2
  54. package/templates/layout/md-footer.html +21 -2
  55. package/templates/layout/md-header.html +22 -2
  56. package/templates/layout/md-pageShell.html +22 -0
  57. package/templates/layout/md-section.html +25 -0
  58. package/assets/javascript/components/_tabs.js +0 -134
  59. package/assets/scss/components/_tabs.scss +0 -69
@@ -14,15 +14,25 @@
14
14
  position: relative;
15
15
  display: inline-block;
16
16
 
17
+ &[pgs-state~=open] {
18
+ [pgs~="dropdown-content"] {
19
+ transition: opacity .3s ease;
20
+ opacity: 1;
21
+ pointer-events: auto;
22
+
23
+ &::backdrop {
24
+ background: var(--backdrop);
25
+ }
26
+ }
27
+ }
28
+
17
29
  //= CONTENT
18
30
  [pgs~="dropdown-content"] {
19
- visibility: hidden;
31
+ // start view
32
+ display: flex;
20
33
  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;
34
+ pointer-events: none;
35
+ // end view
26
36
  transition-behavior: allow-discrete;
27
37
  border: none;
28
38
  border-radius: calc(var(--border-radius-input) + var(--dropdown-padding));
@@ -33,9 +43,9 @@
33
43
  background: var(--dropdown-background);
34
44
  overflow: initial;
35
45
  z-index: -1;
36
- // overflow: clip;
46
+ margin-top: var(--dropdown-offset);
47
+ padding: var(--dropdown-padding);
37
48
  @include flexColumn;
38
- height: 0;
39
49
 
40
50
  &::before {
41
51
  content: "";
@@ -49,19 +59,6 @@
49
59
  pointer-events: none;
50
60
  z-index: 0;
51
61
  }
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
62
  }
66
63
 
67
64
  //-(LEGACY (default fallback)
@@ -74,10 +71,6 @@
74
71
  right: auto;
75
72
  max-height: var(--dropdown-fallback-max-height);
76
73
  overflow: visible;
77
-
78
- &:popover-open {
79
- margin-top: 0;
80
- }
81
74
  }
82
75
  }
83
76
 
@@ -103,4 +96,4 @@
103
96
  }
104
97
  }
105
98
  }
106
- }
99
+ }
@@ -161,25 +161,25 @@
161
161
  }
162
162
  }
163
163
 
164
- [pgs-state="success"] {
164
+ [pgs-state~="success"] {
165
165
  --notification-background: var(--color-success-background);
166
166
  --notification-background-timer: color-mix(in srgb, var(--color-success-background) 70%, var(--color-white) 30%);
167
167
  --notification-shadow: var(--color-success);
168
168
  }
169
169
 
170
- [pgs-state="error"] {
170
+ [pgs-state~="error"] {
171
171
  --notification-background: var(--color-error-background);
172
172
  --notification-background-timer: color-mix(in srgb, var(--color-error-background) 70%, var(--color-white) 30%);
173
173
  --notification-shadow: var(--color-error);
174
174
  }
175
175
 
176
- [pgs-state="warning"] {
176
+ [pgs-state~="warning"] {
177
177
  --notification-background: var(--color-warning-background);
178
178
  --notification-background-timer: color-mix(in srgb, var(--color-warning-background) 70%, var(--color-white) 30%);
179
179
  --notification-shadow: var(--color-warning);
180
180
  }
181
181
 
182
- [pgs-state="info"] {
182
+ [pgs-state~="info"] {
183
183
  --notification-background: var(--color-box);
184
184
  }
185
185
  }
@@ -39,10 +39,10 @@
39
39
  width: 100%;
40
40
  min-width: 21.4rem;
41
41
  background-color: transparent;
42
- color: ourContrastColor(var(--button-background));
42
+ color: contrast-color(color-mix(in srgb, var(--button-background) 77%, black));
43
43
 
44
44
  &::placeholder {
45
- color: ourContrastColor(var(--button-background));
45
+ color: contrast-color(color-mix(in srgb, var(--button-background) 77%, black));
46
46
  opacity: .6;
47
47
  }
48
48
 
@@ -43,13 +43,11 @@
43
43
  }
44
44
 
45
45
  // &:has([pgs~="slides-container"] .view) {
46
-
47
46
  // &::before,
48
47
  // &::after {
49
48
  // opacity: 1;
50
49
  // }
51
50
  // }
52
-
53
51
  &:has([pgs~="slides-container"] li:first-child.view) {
54
52
  &::before {
55
53
  opacity: 0;
@@ -114,8 +112,6 @@
114
112
  position: absolute;
115
113
  z-index: 4;
116
114
  --button-background: var(--color-box);
117
- padding: var(--gap-texts);
118
- aspect-ratio: 1;
119
115
  top: 50%;
120
116
  translate: 0 -50%;
121
117
 
@@ -141,6 +137,11 @@
141
137
  margin: 0;
142
138
  }
143
139
  }
140
+
141
+ //- mobile
142
+ @media (max-width: $mobile) {
143
+ display: none;
144
+ }
144
145
  }
145
146
 
146
147
  //= DOTS
@@ -0,0 +1,58 @@
1
+ [pgs~=stepTabs] {
2
+ [pgs~=stepTabs-container] {
3
+ [pgs~=tab] {
4
+ display: none;
5
+
6
+ &[pgs-state~=is-active] {
7
+ display: flex;
8
+ }
9
+ }
10
+ }
11
+
12
+ [pgs~=stepTabs-next] {
13
+ --button-background: var(--color-primary);
14
+ --button-color: var(--color-whiteFixed);
15
+ }
16
+
17
+ [pgs~=stepTabs-dots] {
18
+ display: flex;
19
+ gap: var(--gap-texts);
20
+ justify-content: space-between;
21
+ align-items: center;
22
+ position: relative;
23
+ margin-inline: 10%;
24
+ margin-block: var(--gap-texts);
25
+ isolation: isolate;
26
+
27
+ &::before {
28
+ content: "";
29
+ width: 100%;
30
+ border-bottom: var(--border-complete);
31
+ position: absolute;
32
+ top: 50%;
33
+ z-index: -1;
34
+ }
35
+
36
+ [pgs~=stepTabs-dots-dot] {
37
+ @include button(false, true);
38
+ border-radius: 50%;
39
+ --fa-size: 1.8rem;
40
+
41
+ &[pgs-state~=is-completed] {
42
+ cursor: pointer;
43
+ background: var(--color-primary-soft);
44
+ }
45
+
46
+ &[pgs-state~=is-active] {
47
+ background: var(--color-primary);
48
+ scale: 1.2;
49
+
50
+ i {
51
+ --fa-primary-color: var(--color-whiteFixed);
52
+ --fa-secondary-color: var(--color-whiteFixed);
53
+ color: var(--color-whiteFixed);
54
+ }
55
+ }
56
+ }
57
+ }
58
+ }
@@ -7,8 +7,9 @@ ol[pgs~="steps"] {
7
7
  align-items: start;
8
8
  position: relative;
9
9
  --steps-circle-size: 50px;
10
- --steps-line-size: 4px;
11
- --steps-line-color: var(--color-primary-soft);
10
+ --steps-circle-color: var(--color-primary-soft);
11
+ --steps-line-size: 2px;
12
+ --steps-line-color: var(--color-gray);
12
13
 
13
14
  //== CONTENT
14
15
  [pgs~=steps-step-content] {
@@ -23,7 +24,7 @@ ol[pgs~="steps"] {
23
24
  [pgs~=steps-step-circle] {
24
25
  min-width: var(--steps-circle-size);
25
26
  aspect-ratio: 1;
26
- background: var(--color-primary-soft);
27
+ background: var(--steps-circle-color);
27
28
  display: flex;
28
29
  align-items: center;
29
30
  justify-content: center;
@@ -9,7 +9,7 @@
9
9
  --table-row-background-odd: var(--border-box);
10
10
  --table-row-color: var(--color-black);
11
11
 
12
- --table-row-hover-background: var(--color-secondary);
12
+ --table-row-hover-background: var(--color-secondary-soft);
13
13
  --table-row-hover-color: var(--color-blackFixed);
14
14
 
15
15
  width: 100%;
@@ -1,16 +1,21 @@
1
1
  [pgs~="tooltip"][pgs~="dropdown"] {
2
2
  --dropdown-position-right: center;
3
3
  --dropdown-maxwidth: 400px;
4
+ --dropdown-padding: 15px;
4
5
 
5
6
  [pgs~="tooltip-button"][pgs~="dropdown-button"] {
6
- --button-background: var(--color-black);
7
-
8
- i {
9
- --fa-size: .9rem;
10
- }
7
+ // --button-background: var(--color-black);
8
+ --fa-size: .9rem;
11
9
  }
12
10
 
13
11
  [pgs~="tooltip-content"][pgs~="dropdown-content"]:popover-open {
14
- padding: 15px;
12
+ position: fixed;
13
+ position-anchor: unset;
14
+ position-area: unset;
15
+ inset: auto;
16
+ top: var(--dropdown-fallback-top);
17
+ left: var(--dropdown-fallback-left);
18
+ right: auto;
19
+ margin-top: 0;
15
20
  }
16
21
  }
@@ -1,12 +1,10 @@
1
1
  //+ MIXIN
2
2
  @import "./mixin/mixin.scss";
3
-
4
3
  /*
5
4
  |--------------------------------------------------------------------------
6
5
  | Base
7
6
  |--------------------------------------------------------------------------
8
7
  */
9
-
10
8
  @import "base/variables";
11
9
  @import "base/color";
12
10
  @import "base/reset";
@@ -15,50 +13,49 @@
15
13
  @import "base/heading";
16
14
  @import "base/general";
17
15
 
18
-
19
16
  /*
20
17
  |--------------------------------------------------------------------------
21
18
  | Layout
22
19
  |--------------------------------------------------------------------------
23
20
  */
24
-
25
- @import "layout/layout";
26
- @import "layout/flex";
27
- @import "layout/grid";
28
- @import "layout/pageShell";
29
- @import "layout/gap";
30
-
31
-
21
+ [pgs~=initP] {
22
+ @import "layout/layout";
23
+ @import "layout/flex";
24
+ @import "layout/grid";
25
+ @import "layout/pageShell";
26
+ @import "layout/gap";
27
+ }
32
28
 
33
29
  /*
34
30
  |--------------------------------------------------------------------------
35
31
  | Components
36
32
  |--------------------------------------------------------------------------
37
33
  */
38
-
39
- @import "components/button";
40
- @import "components/form";
41
- @import "components/menu";
42
- @import "components/accordion";
43
- @import "components/breadcumbs";
44
- @import "components/dropdown";
45
- @import "components/modals";
46
- @import "components/slides";
47
- @import "components/steps";
48
- @import "components/table";
49
- @import "components/tabs";
50
- @import "components/notification";
51
- @import "components/tooltip";
52
- @import "components/searchbar";
53
- @import "components/logo";
54
-
34
+ [pgs~=initP] {
35
+ @import "components/button";
36
+ @import "components/form";
37
+ @import "components/menu";
38
+ @import "components/accordion";
39
+ @import "components/breadcumbs";
40
+ @import "components/dropdown";
41
+ @import "components/modals";
42
+ @import "components/slides";
43
+ @import "components/steps";
44
+ @import "components/table";
45
+ @import "components/stepTabs";
46
+ @import "components/notification";
47
+ @import "components/tooltip";
48
+ @import "components/searchbar";
49
+ @import "components/logo";
50
+ }
55
51
 
56
52
  /*
57
53
  |--------------------------------------------------------------------------
58
54
  | Patterns
59
55
  |--------------------------------------------------------------------------
60
56
  */
61
-
62
- @import "patterns/header";
63
- @import "patterns/footer";
64
- @import "patterns/cookieConsent";
57
+ [pgs~=initP] {
58
+ @import "patterns/header";
59
+ @import "patterns/footer";
60
+ @import "patterns/cookieConsent";
61
+ }
@@ -9,4 +9,7 @@
9
9
 
10
10
  [pgs~=gapSections] {
11
11
  gap: var(--gap-sections);
12
+ }
13
+ [pgs~=nowrap] {
14
+ flex-wrap: nowrap;
12
15
  }
@@ -1,26 +1,26 @@
1
- @function ourContrastColor($backgorundReferenze) {
2
- @return contrast-color(color-mix(in srgb, $backgorundReferenze 77%, black));
3
- }
4
-
5
1
  //+ VAR
6
2
  @mixin _var-button-color($background, $for: null, $colorNotContrast: var(--color-black)) {
7
- --button-background#{$for}: #{$background};
8
- --button-color#{$for}: #{ourContrastColor(var(--button-background#{$for}))
9
- }
10
-
11
- ;
12
- @supports not (color: contrast-color(red)) {
13
- --button-color#{$for}: #{$colorNotContrast};
14
- }
3
+ @supports (color: contrast-color(red)) {
4
+ --button-color#{$for}: contrast-color(color-mix(in srgb, var(--button-background#{$for}) 77%, black));
5
+ }
15
6
 
16
- color: var(--button-color#{$for});
17
- background: var(--button-background#{$for});
7
+ @supports not (color: contrast-color(red)) {
8
+ --button-color#{$for}: #{$colorNotContrast};
9
+ }
18
10
 
19
- i {
11
+ --button-background#{$for}: #{$background};
20
12
  color: var(--button-color#{$for});
21
- --fa-primary-color: var(--button-color#{$for});
22
- --fa-secondary-color: var(--button-color#{$for});
23
- }
13
+ background: var(--button-background#{$for});
14
+
15
+ &:is(a) {
16
+ color: var(--button-color#{$for});
17
+ }
18
+
19
+ i {
20
+ color: var(--button-color#{$for});
21
+ --fa-primary-color: var(--button-color#{$for});
22
+ --fa-secondary-color: var(--button-color#{$for});
23
+ }
24
24
  }
25
25
 
26
26
  //= BUTTON
@@ -28,7 +28,12 @@ i {
28
28
  --button-border: var(--border-complete);
29
29
  --button-size: 1.5rem;
30
30
  --button-icon-size: 2.0rem;
31
- --button-padding: var(--button-size);
31
+ --button-padding-block: var(--button-size);
32
+ --button-padding-left: calc(var(--button-size) * 2);
33
+ --button-padding-right: calc(var(--button-size) * 2);
34
+ --button-padding: var(--button-padding-block) var(--button-padding-right) var(--button-padding-block) var(--button-padding-left);
35
+ --fa-secondary-opacity: 0.5;
36
+ --fa-size: var(--button-icon-size);
32
37
  @include _var-button-color(var(--color-box));
33
38
  font-family: var(--font);
34
39
  font-size: 1.6rem;
@@ -41,33 +46,44 @@ i {
41
46
  outline: var(--button-border);
42
47
  border-radius: var(--border-radius-input);
43
48
  display: flex;
44
- gap: calc(var(--button-size)/2);
49
+ gap: calc(var(--button-size)/1.5);
45
50
  align-items: center;
46
51
  padding: var(--button-padding);
52
+ height: max-content;
47
53
  width: max-content;
48
-
49
- i {
50
- --fa-secondary-opacity: 0.5;
51
- --fa-size: var(--button-icon-size);
52
- }
53
-
54
- &:disabled {
55
- opacity: 0.2;
56
- cursor: not-allowed;
57
- }
54
+ margin-block: auto;
58
55
 
59
56
  //== onlyIcon
60
57
  @if($onlyIcon ==true) {
58
+ flex: 0 0;
61
59
  aspect-ratio: 1;
60
+ border-radius: 50%;
61
+ justify-content: center;
62
+ align-items: center;
63
+ --button-padding: var(--button-padding-block);
64
+
65
+ i {
66
+ display: inline-grid;
67
+ place-items: center;
68
+ inline-size: calc(var(--button-icon-size) - -2px);
69
+ block-size: var(--button-icon-size);
70
+ line-height: 1;
71
+ aspect-ratio: 1;
72
+ }
62
73
  }
63
74
 
64
75
  @else {
76
+ $button-right: calc(var(--button-size) * 2);
77
+ $button-left: calc(var(--button-size) * 1.5);
78
+
65
79
  &:has(i) {
66
- --button-padding: var(--button-size) calc(var(--button-size) + var(--button-size)/2) var(--button-size) var(--button-size);
80
+ --button-padding-right: #{$button-right};
81
+ --button-padding-left: #{$button-left};
67
82
  }
68
83
 
69
- &:not(:has(i)) {
70
- --button-padding: var(--button-size) calc(var(--button-size) * 2);
84
+ &[pgs-option~="buttonReverse"]:has(i) {
85
+ --button-padding-right: #{$button-left};
86
+ --button-padding-left: #{$button-right};
71
87
  }
72
88
  }
73
89
 
@@ -90,6 +106,11 @@ i {
90
106
  &[aria-current="page"]:not(:hover, :focus-visible) {
91
107
  @include _var-button-color(var(--color-primary), "-current", var(--color-whiteFixed));
92
108
  }
109
+
110
+ &:disabled {
111
+ opacity: 0.2;
112
+ cursor: not-allowed;
113
+ }
93
114
  }
94
115
 
95
116
  //= Button HOVER
@@ -133,9 +154,11 @@ i {
133
154
  --button-size: 0.5rem;
134
155
  display: inline-flex;
135
156
  aspect-ratio: unset;
157
+ margin-block: auto;
158
+ aspect-ratio: 1;
136
159
  }
137
160
 
138
- //== Button BIG
161
+ //= Button BIG
139
162
  @mixin buttonBig($hover: true) {
140
163
  @include button($hover);
141
164
  position: relative;
@@ -160,20 +183,20 @@ i {
160
183
  }
161
184
 
162
185
  //= Button CLOSE
163
- @mixin buttonClose {
186
+ @mixin buttonClose($important: false) {
164
187
  @include button(true, true);
165
- --button-background: var(--color-error-background);
166
- --button-color: var(--color-error);
188
+ --button-background: var(--color-primary-soft);
167
189
  --button-size: 1rem;
168
190
  --button-icon-size: 1.3rem;
169
191
  aspect-ratio: 1;
170
192
  height: max-content;
171
193
 
172
- &:hover {}
173
-
174
- i {
175
- color: var(--color-error);
194
+ @if($important ==true) {
195
+ --button-background: var(--color-error-background);
196
+ --button-color: var(--color-error);
176
197
  }
198
+
199
+ &:hover {}
177
200
  }
178
201
 
179
202
  //= button header
@@ -59,7 +59,7 @@
59
59
  }
60
60
  }
61
61
 
62
- &[pgs-state=open] {
62
+ &[pgs-state~=open] {
63
63
  display: flex;
64
64
  }
65
65
  }