mypgs 1.3.2 → 1.3.4

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 (73) hide show
  1. package/AI_GUIDELINES.md +353 -0
  2. package/README.md +483 -53
  3. package/assets/javascript/_imports.js +12 -11
  4. package/assets/javascript/_pgs.js +16 -1
  5. package/assets/javascript/components/_accordion.js +18 -9
  6. package/assets/javascript/components/_dropdown.js +176 -120
  7. package/assets/javascript/components/_menu.js +15 -116
  8. package/assets/javascript/components/_modals.js +0 -1
  9. package/assets/javascript/components/_notifications.js +2 -3
  10. package/assets/javascript/components/_slides.js +0 -1
  11. package/assets/javascript/components/_stepTabs.js +0 -1
  12. package/assets/javascript/components/_steps.js +0 -1
  13. package/assets/javascript/patterns/_cookieConsent.js +8 -2
  14. package/assets/javascript/pgs.d.ts +12 -1
  15. package/assets/scss/base/_html.scss +23 -1
  16. package/assets/scss/components/_dropdown.scss +24 -88
  17. package/assets/scss/components/_menu.scss +129 -15
  18. package/assets/scss/components/_modals.scss +15 -3
  19. package/assets/scss/components/_notification.scss +11 -14
  20. package/assets/scss/components/_tooltip.scss +2 -9
  21. package/assets/scss/index.scss +0 -1
  22. package/assets/scss/layout/_gap.scss +7 -1
  23. package/assets/scss/layout/_layout.scss +0 -12
  24. package/assets/scss/layout/_pageShell.scss +104 -105
  25. package/assets/scss/mixin/_mx-form.scss +16 -6
  26. package/assets/scss/mixin/_mx-responsive.scss +2 -2
  27. package/assets/scss/mixin/_mx-semantic.scss +0 -60
  28. package/assets/scss/mixin/mixin.scss +0 -1
  29. package/assets/scss/patterns/_footer.scss +1 -0
  30. package/assets/scss/patterns/_header.scss +20 -18
  31. package/dist/css/index.css +264 -1179
  32. package/dist/css/index.css.map +1 -1
  33. package/dist/css/index.min.css +1 -1
  34. package/dist/index.d.ts +12 -1
  35. package/dist/javascript/index.js +264 -272
  36. package/dist/javascript/index.js.map +1 -1
  37. package/dist/javascript/index.min.js +1 -1
  38. package/package.json +1 -1
  39. package/templates/components/{md-accordion.html → accordion.html} +2 -2
  40. package/templates/components/dropdown.html +91 -0
  41. package/templates/components/menu.html +41 -0
  42. package/templates/components/modal.html +78 -0
  43. package/templates/components/notification.html +35 -0
  44. package/templates/components/{md-slides.html → slides.html} +5 -5
  45. package/templates/components/{md-steps.html → steps.html} +7 -7
  46. package/templates/components/{md-tooltip.html → tooltip.html} +4 -2
  47. package/templates/demo.css +18 -0
  48. package/templates/demo.html +4 -5
  49. package/templates/demo.js +53 -52
  50. package/templates/layout/flex.html +89 -0
  51. package/templates/layout/grid.html +89 -0
  52. package/templates/layout/pageShell.html +59 -0
  53. package/templates/layout/section.html +40 -0
  54. package/templates/{layout/md-footer.html → patterns/footer.html} +1 -0
  55. package/templates/{layout/md-header.html → patterns/header.html} +6 -9
  56. package/assets/scss/base/_reset.scss +0 -15
  57. package/assets/scss/mixin/_mx-menu.scss +0 -154
  58. package/templates/components/md-dropdown.html +0 -16
  59. package/templates/components/md-menu.html +0 -40
  60. package/templates/components/md-modal.html +0 -19
  61. package/templates/components/md-notification.html +0 -13
  62. package/templates/layout/md-pageShell.html +0 -22
  63. package/templates/layout/md-section.html +0 -25
  64. /package/templates/components/{md-breadcumbs.html → breadcumbs.html} +0 -0
  65. /package/templates/components/{md-button.html → button.html} +0 -0
  66. /package/templates/components/{md-card.html → card.html} +0 -0
  67. /package/templates/components/{md-form.html → form.html} +0 -0
  68. /package/templates/components/{md-logo.html → logo.html} +0 -0
  69. /package/templates/components/{md-searchbar.html → searchbar.html} +0 -0
  70. /package/templates/components/{md-stepTabs.html → stepTabs.html} +0 -0
  71. /package/templates/components/{md-table.html → table.html} +0 -0
  72. /package/templates/layout/{md-body.html → body.html} +0 -0
  73. /package/templates/{layout/md-cookieConsent.html → patterns/cookieConsent.html} +0 -0
@@ -1,4 +1,26 @@
1
1
  [pgs~="htmlBase"] {
2
2
  scroll-behavior: smooth;
3
3
  font-size: 62.5%;
4
- }
4
+
5
+ margin: 0;
6
+ padding: 0;
7
+ box-sizing: border-box;
8
+ scroll-margin-top: calc(var(--heightOfHeader) + 5vh);
9
+
10
+ // Reset properties
11
+ * {
12
+ margin: 0;
13
+ padding: 0;
14
+ box-sizing: border-box;
15
+ scroll-margin-top: calc(var(--heightOfHeader) + 5vh);
16
+ }
17
+
18
+ &:root,
19
+ :root {
20
+ interpolate-size: allow-keywords;
21
+ }
22
+
23
+ @view-transition {
24
+ navigation: auto;
25
+ }
26
+ }
@@ -1,99 +1,35 @@
1
- //# DROPDOWN
1
+ //# DROPDOWN
2
2
  [pgs~="dropdown"] {
3
- --dropdown-position: bottom center;
4
- --dropdown-offset: 10px;
5
- --dropdown-padding: 10px;
6
- --dropdown-maxwidth: min(500px, 50vw);
7
3
  --dropdown-background: var(--color-box);
8
4
  --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%;
5
+ --dropdown-border: var(--border-complete);
6
+ --dropdown-padding: 1rem;
7
+ --dropdown-inline-size: max-content;
8
+ --dropdown-max-inline-size: min(400px, calc(100vw - 16px));
9
+ --dropdown-left: 0px;
10
+ --dropdown-top: 0px;
11
+ --dropdown-display: block;
14
12
  position: relative;
15
- display: inline-block;
16
13
 
17
- &[pgs-state~=open] {
18
- [pgs~="dropdown-content"] {
19
- transition: opacity .3s ease;
20
- opacity: 1;
21
- pointer-events: auto;
14
+ &:not([pgs-state~="open"])>[pgs~="dropdown-content"] {
15
+ display: none;
16
+ }
22
17
 
23
- &::backdrop {
24
- background: var(--backdrop);
25
- }
26
- }
18
+ &[pgs-state~="open"]>[pgs~="dropdown-content"] {
19
+ display: var(--dropdown-display);
27
20
  }
28
21
 
29
- //= CONTENT
30
- [pgs~="dropdown-content"] {
31
- // start view
32
- display: flex;
33
- opacity: 0;
34
- pointer-events: none;
35
- // end view
36
- transition-behavior: allow-discrete;
37
- border: none;
22
+ >[pgs~="dropdown-content"] {
23
+ position: fixed;
24
+ inset: var(--dropdown-top) auto auto var(--dropdown-left);
25
+ z-index: 1000;
26
+ inline-size: var(--dropdown-inline-size);
27
+ max-inline-size: var(--dropdown-max-inline-size);
28
+ overflow: auto;
29
+ padding: var(--dropdown-padding);
30
+ border: var(--dropdown-border);
38
31
  border-radius: calc(var(--border-radius-input) + var(--dropdown-padding));
39
- box-sizing: border-box;
40
- width: max-content;
41
- max-width: min(var(--dropdown-maxwidth), calc(100vw - 16px));
42
- color: var(--dropdown-color);
43
32
  background: var(--dropdown-background);
44
- overflow: initial;
45
- z-index: -1;
46
- margin-top: var(--dropdown-offset);
47
- padding: var(--dropdown-padding);
48
- @include flexColumn;
49
-
50
- &::before {
51
- content: "";
52
- position: absolute;
53
- top: calc(var(--dropdown-arrow-size) / -2);
54
- left: var(--dropdown-arrow-left);
55
- width: var(--dropdown-arrow-size);
56
- height: var(--dropdown-arrow-size);
57
- background: var(--dropdown-background);
58
- transform: translateX(-50%) rotate(45deg);
59
- pointer-events: none;
60
- z-index: 0;
61
- }
62
- }
63
-
64
- //-(LEGACY (default fallback)
65
- @supports not ((anchor-name: var(--dropdown-anchor)) and (position-anchor: var(--dropdown-anchor)) and (position-area: bottom) and (top: anchor(bottom))) {
66
- [pgs~="dropdown-content"] {
67
- position: fixed;
68
- inset: auto;
69
- top: var(--dropdown-fallback-top);
70
- left: var(--dropdown-fallback-left);
71
- right: auto;
72
- max-height: var(--dropdown-fallback-max-height);
73
- overflow: visible;
74
- }
75
- }
76
-
77
- //+( MODERN (Anchor Positioning)
78
- @supports (anchor-name: var(--dropdown-anchor)) and (position-anchor: var(--dropdown-anchor)) and (position-area: bottom) and (top: anchor(bottom)) {
79
- [pgs~="dropdown-button"] {
80
- anchor-name: var(--dropdown-anchor);
81
- }
82
-
83
- [pgs~="dropdown-content"] {
84
- position: fixed;
85
- position-anchor: var(--dropdown-anchor);
86
- inset: auto;
87
- top: 0;
88
- right: 0;
89
-
90
- @supports (top: anchor(bottom)) {
91
- top: anchor(bottom);
92
- }
93
-
94
- @supports (position-area: bottom) {
95
- position-area: var(--dropdown-position);
96
- }
97
- }
33
+ color: var(--dropdown-color);
98
34
  }
99
- }
35
+ }
@@ -1,23 +1,137 @@
1
1
  //# MENU
2
- [pgs~=menuHorizontal] {
3
- @include menu(row);
2
+ [pgs~=menu] {
3
+ ul {
4
+ display: flex;
5
+ font-weight: 600;
6
+ align-items: center;
7
+ column-gap: var(--gap-texts);
8
+ row-gap: 1.0rem;
9
+ flex-wrap: nowrap;
4
10
 
5
- li.menu-item-has-children {
6
- @include menu(column);
11
+ ul {
12
+ display: none;
13
+ }
14
+
15
+ //== Content
16
+ >li {
17
+ >a {
18
+ flex-grow: 1;
19
+ min-width: fit-content;
20
+ @include button();
21
+
22
+ >span {
23
+ line-height: 1.6;
24
+ flex-grow: 1;
25
+ }
26
+ }
27
+
28
+ li {
29
+ width: -webkit-fill-available;
30
+ }
31
+ }
7
32
  }
8
- }
9
- [pgs~=menuHorizontalNotHeader] {
10
- @include menu(row, false);
11
33
 
12
- li.menu-item-has-children {
13
- @include menu(column);
34
+ //== buttonIcon
35
+ [pgs~=menu-buttonIcon] {
36
+ --button-size: 0.9rem;
37
+ margin-right: -15px;
38
+ margin-block: auto;
39
+ width: 40px;
40
+ aspect-ratio: 1;
41
+ padding: 0;
42
+ justify-content: center;
43
+ cursor: pointer;
44
+ translate: -15px;
45
+
46
+ &[aria-expanded="true"] span {
47
+ rotate: 180deg;
48
+ }
49
+
50
+ span {
51
+ transition: all 300ms;
52
+ }
14
53
  }
15
- }
16
54
 
17
- [pgs~=menuVertical] {
18
- @include menu(column)
19
- }
55
+ //== horizontal
56
+ &[pgs-option~=horizontal] {
57
+ >ul {
58
+ flex-direction: row;
59
+
60
+ >li {
61
+ >a {
62
+ width: max-content;
63
+ }
64
+ }
65
+
66
+ //=== Sub menu
67
+ >li:has(ul) {
68
+ --dropdown-display: flex;
69
+ display: flex;
70
+ gap: 0.2rem;
71
+ flex-wrap: nowrap;
72
+
73
+ >a {
74
+ border-radius: var(--border-radius-input);
75
+ // box-shadow: var(--box-shadow);
76
+ }
77
+
78
+ ul {
79
+ li a {
80
+ min-width: 100% !important;
81
+ }
82
+ }
20
83
 
21
- [pgs~=menuFooter] {
22
- @include menuFooter()
84
+ &[pgs-state~=open]>ul {
85
+ display: flex;
86
+ }
87
+ }
88
+ }
89
+ }
90
+
91
+ //== verical
92
+ ul,
93
+ &[pgs-option~=vertical],
94
+ &:not([pgs-option~=horizontal]) {
95
+ :is(ul) {
96
+ flex-direction: column;
97
+
98
+ li {
99
+ width: 100%;
100
+
101
+ >a {
102
+ width: 100%;
103
+ }
104
+ }
105
+
106
+ //=== Sub menu
107
+ >li:has(ul) {
108
+ @include flexRow;
109
+ flex-wrap: nowrap;
110
+ align-items: center;
111
+ position: relative;
112
+
113
+ >a {
114
+ max-width: calc(100% - var(--gap-texts) - 40px);
115
+ }
116
+
117
+ >ul {
118
+ flex-basis: 100%;
119
+ // --dropdown-maxwidth: 100%;
120
+ }
121
+
122
+ &:not([pgs-state~=open]) ul {
123
+ display: none;
124
+ }
125
+ }
126
+ }
127
+ }
128
+
129
+ //== menuHeader
130
+ &[pgs-option~=menuHeader] {
131
+ >ul>li>a {
132
+ @include button_header();
133
+ }
134
+ }
23
135
  }
136
+
137
+ //
@@ -54,6 +54,7 @@ dialog[pgs~="modal-dialog"] {
54
54
  color: var(--modal-color);
55
55
  border-radius: var(--border-radius);
56
56
  position: relative;
57
+ gap: 0;
57
58
 
58
59
  >* {
59
60
  padding: var(--padding);
@@ -61,7 +62,8 @@ dialog[pgs~="modal-dialog"] {
61
62
 
62
63
  //==== HEADER
63
64
  [pgs~="modal-dialog-content-header"] {
64
- @include flexRow();
65
+ @include flexRow(nowrap);
66
+ padding-bottom: calc(var(--padding) / 2);
65
67
  border-bottom: var(--border-complete);
66
68
  border-radius: var(--border-radius) var(--border-radius) 0 0;
67
69
  z-index: 1;
@@ -75,8 +77,9 @@ dialog[pgs~="modal-dialog"] {
75
77
  &:has([pgs~="modal-dialog-content-scroll"]) {
76
78
  max-height: calc(90svh - var(--heightOfHeader));
77
79
  overflow: hidden;
78
-
80
+
79
81
  [pgs~="modal-dialog-content-scroll"] {
82
+ padding-top: calc(var(--padding) / 2);
80
83
  overflow: auto;
81
84
  max-height: 100%;
82
85
  }
@@ -96,7 +99,16 @@ dialog[pgs~="modal-dialog"] {
96
99
  }
97
100
 
98
101
  //#OPTION
99
-
102
+ //== LEFT
103
+ &[pgs-option~="left"] {
104
+ [pgs~="modal-dialog-content"] {
105
+ margin-left: unset;
106
+ margin-right: auto;
107
+ width: min(400px, 100%);
108
+ min-width: unset;
109
+ }
110
+ }
111
+
100
112
  //== RIGHT
101
113
  &[pgs-option~="right"] {
102
114
  [pgs~="modal-dialog-content"] {
@@ -1,9 +1,5 @@
1
-
2
-
3
1
  //= NOTIFICATION GROUP / TRIGGER
4
- [pgs~="notificationTrigger"]{}
5
-
6
-
2
+ [pgs~="notificationTrigger"] {}
7
3
 
8
4
  //= NOTIFICATION STYLE
9
5
  @mixin notification($position: center) {
@@ -46,11 +42,11 @@
46
42
  --notification-background: var(--color-box);
47
43
  --notification-background-timer: color-mix(in srgb, var(--color-box) 95%, var(--color-black) 5%);
48
44
  --notification-color: unset;
49
- --notification-shadow: unset;
45
+ --notification-shadow-color: unset;
46
+ --notification-shadow-perc: 0px 0px 150px 20px;
50
47
  --notification-timeout: unset;
51
48
  display: flex;
52
49
  gap: var(--gap-texts);
53
- border: var(--border-complete);
54
50
  background: var(--notification-background);
55
51
  flex-direction: row;
56
52
  opacity: 1;
@@ -58,7 +54,7 @@
58
54
  overflow: hidden;
59
55
  transition: all 280ms;
60
56
  align-items: center;
61
- box-shadow: 0px 0px 200px 20px var(--notification-shadow);
57
+ box-shadow: var(--notification-shadow-perc) var(--notification-shadow-color);
62
58
  border-radius: var(--border-radius-input);
63
59
  max-width: 90vw;
64
60
  margin-inline: auto;
@@ -115,15 +111,15 @@
115
111
 
116
112
  p,
117
113
  >i {
118
- --fa-primary-color: var(--notification-shadow);
119
- --fa-secondary-color: color-mix(in srgb, var(--notification-shadow) 50%, var(--color-white) 50%);
114
+ --fa-primary-color: var(--notification-shadow-color);
115
+ --fa-secondary-color: color-mix(in srgb, var(--notification-shadow-color) 50%, var(--color-white) 50%);
120
116
  color: var(--notification-color);
121
117
  margin-right: 5px;
122
118
  z-index: 1;
123
119
  line-height: unset;
124
120
 
125
121
  &:is(i) {
126
- color: var(--notification-shadow);
122
+ color: var(--notification-shadow-color);
127
123
  font-size: 2.5rem;
128
124
  }
129
125
  }
@@ -145,6 +141,7 @@
145
141
  //== hover
146
142
  &:is(a) {
147
143
  border-color: var(--color-primary-soft);
144
+ border: var(--border);
148
145
 
149
146
  &:hover {
150
147
  background-color: var(--color-white);
@@ -164,19 +161,19 @@
164
161
  [pgs-state~="success"] {
165
162
  --notification-background: var(--color-success-background);
166
163
  --notification-background-timer: color-mix(in srgb, var(--color-success-background) 70%, var(--color-white) 30%);
167
- --notification-shadow: var(--color-success);
164
+ --notification-shadow-color: var(--color-success);
168
165
  }
169
166
 
170
167
  [pgs-state~="error"] {
171
168
  --notification-background: var(--color-error-background);
172
169
  --notification-background-timer: color-mix(in srgb, var(--color-error-background) 70%, var(--color-white) 30%);
173
- --notification-shadow: var(--color-error);
170
+ --notification-shadow-color: var(--color-error);
174
171
  }
175
172
 
176
173
  [pgs-state~="warning"] {
177
174
  --notification-background: var(--color-warning-background);
178
175
  --notification-background-timer: color-mix(in srgb, var(--color-warning-background) 70%, var(--color-white) 30%);
179
- --notification-shadow: var(--color-warning);
176
+ --notification-shadow-color: var(--color-warning);
180
177
  }
181
178
 
182
179
  [pgs-state~="info"] {
@@ -8,14 +8,7 @@
8
8
  --fa-size: .9rem;
9
9
  }
10
10
 
11
- [pgs~="tooltip-content"][pgs~="dropdown-content"]:popover-open {
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;
11
+ [pgs~="tooltip-content"][pgs~="dropdown-content"]{
12
+
20
13
  }
21
14
  }
@@ -7,7 +7,6 @@
7
7
  */
8
8
  @import "base/variables";
9
9
  @import "base/color";
10
- @import "base/reset";
11
10
  @import "base/html";
12
11
  @import "base/body";
13
12
  @import "base/heading";
@@ -3,13 +3,19 @@
3
3
  gap: var(--gap-texts);
4
4
  }
5
5
 
6
- [pgs~=gapElements]{
6
+ [pgs~=gapElements] {
7
7
  gap: var(--gap-elements);
8
8
  }
9
9
 
10
10
  [pgs~=gapSections] {
11
11
  gap: var(--gap-sections);
12
12
  }
13
+
14
+ //# wrap
13
15
  [pgs~=nowrap] {
14
16
  flex-wrap: nowrap;
17
+ }
18
+
19
+ [pgs~=wrap] {
20
+ flex-wrap: wrap;
15
21
  }
@@ -3,18 +3,6 @@
3
3
  @include main;
4
4
  }
5
5
 
6
- [pgs~=aside] {
7
- @include aside;
8
- }
9
-
10
- [pgs~=containerAside] {
11
- @include containerAside;
12
- }
13
-
14
- [pgs~=sectionAside] {
15
- @include sectionNoPadding;
16
- }
17
-
18
6
  [pgs~=sectionNoPadding] {
19
7
  @include sectionNoPadding;
20
8
  }