mypgs 1.1.5 → 1.3.3

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 (80) hide show
  1. package/AI_GUIDELINES.md +353 -0
  2. package/README.md +483 -53
  3. package/assets/javascript/_imports.js +26 -0
  4. package/assets/javascript/_pgs.js +53 -2
  5. package/assets/javascript/components/_accordion.js +114 -66
  6. package/assets/javascript/components/_dropdown.js +199 -98
  7. package/assets/javascript/components/_menu.js +33 -69
  8. package/assets/javascript/components/_modals.js +44 -3
  9. package/assets/javascript/components/_notifications.js +162 -0
  10. package/assets/javascript/components/_slides.js +11 -1
  11. package/assets/javascript/components/_stepTabs.js +16 -4
  12. package/assets/javascript/components/_steps.js +32 -6
  13. package/assets/javascript/functions/_formValidate.js +4 -5
  14. package/assets/javascript/index.js +8 -4
  15. package/assets/javascript/patterns/_cookieConsent.js +8 -2
  16. package/assets/javascript/patterns/_header.js +1 -1
  17. package/assets/javascript/pgs.d.ts +17 -2
  18. package/assets/scss/base/_html.scss +23 -1
  19. package/assets/scss/components/_dropdown.scss +24 -88
  20. package/assets/scss/components/_logo.scss +1 -1
  21. package/assets/scss/components/_menu.scss +129 -15
  22. package/assets/scss/components/_modals.scss +15 -3
  23. package/assets/scss/components/_notification.scss +11 -14
  24. package/assets/scss/components/_tooltip.scss +2 -9
  25. package/assets/scss/index.scss +0 -1
  26. package/assets/scss/layout/_gap.scss +7 -1
  27. package/assets/scss/layout/_layout.scss +0 -12
  28. package/assets/scss/layout/_pageShell.scss +102 -108
  29. package/assets/scss/mixin/_mx-form.scss +1 -3
  30. package/assets/scss/mixin/_mx-responsive.scss +2 -2
  31. package/assets/scss/mixin/_mx-semantic.scss +0 -60
  32. package/assets/scss/mixin/mixin.scss +0 -1
  33. package/assets/scss/patterns/_footer.scss +1 -0
  34. package/assets/scss/patterns/_header.scss +20 -18
  35. package/dist/css/index.css +325 -1161
  36. package/dist/css/index.css.map +1 -1
  37. package/dist/css/index.min.css +1 -1
  38. package/dist/index.d.ts +17 -2
  39. package/dist/javascript/index.js +985 -412
  40. package/dist/javascript/index.js.map +1 -1
  41. package/dist/javascript/index.min.js +1 -1
  42. package/package.json +7 -2
  43. package/templates/components/{md-accordion.html → accordion.html} +2 -2
  44. package/templates/components/dropdown.html +91 -0
  45. package/templates/components/menu.html +41 -0
  46. package/templates/components/modal.html +78 -0
  47. package/templates/components/notification.html +35 -0
  48. package/templates/components/{md-slides.html → slides.html} +5 -5
  49. package/templates/components/{md-steps.html → steps.html} +7 -7
  50. package/templates/components/{md-tooltip.html → tooltip.html} +4 -2
  51. package/templates/demo.css +18 -0
  52. package/templates/demo.html +4 -5
  53. package/templates/demo.js +53 -52
  54. package/templates/layout/flex.html +89 -0
  55. package/templates/layout/grid.html +89 -0
  56. package/templates/layout/pageShell.html +59 -0
  57. package/templates/layout/section.html +40 -0
  58. package/templates/{layout/md-footer.html → patterns/footer.html} +1 -0
  59. package/templates/{layout/md-header.html → patterns/header.html} +6 -9
  60. package/assets/javascript/components/_exeNotifications.js +0 -85
  61. package/assets/javascript/functions/_notifications.js +0 -74
  62. package/assets/javascript/functions/_sendForm.js +0 -100
  63. package/assets/scss/base/_reset.scss +0 -15
  64. package/assets/scss/mixin/_mx-menu.scss +0 -154
  65. package/templates/components/md-dropdown.html +0 -16
  66. package/templates/components/md-menu.html +0 -40
  67. package/templates/components/md-modal.html +0 -19
  68. package/templates/components/md-notification.html +0 -13
  69. package/templates/layout/md-pageShell.html +0 -22
  70. package/templates/layout/md-section.html +0 -25
  71. /package/templates/components/{md-breadcumbs.html → breadcumbs.html} +0 -0
  72. /package/templates/components/{md-button.html → button.html} +0 -0
  73. /package/templates/components/{md-card.html → card.html} +0 -0
  74. /package/templates/components/{md-form.html → form.html} +0 -0
  75. /package/templates/components/{md-logo.html → logo.html} +0 -0
  76. /package/templates/components/{md-searchbar.html → searchbar.html} +0 -0
  77. /package/templates/components/{md-stepTabs.html → stepTabs.html} +0 -0
  78. /package/templates/components/{md-table.html → table.html} +0 -0
  79. /package/templates/layout/{md-body.html → body.html} +0 -0
  80. /package/templates/{layout/md-cookieConsent.html → patterns/cookieConsent.html} +0 -0
@@ -1,68 +1,43 @@
1
1
  //# pageShell
2
+ $aside-size: 400px;
3
+ $content-size: 500px;
4
+ $pageShell-test-gap: 4rem;
5
+
6
+ @mixin pageShell-aside-flow() {
7
+ position: relative;
8
+ top: auto;
9
+ max-height: none;
10
+ overflow: visible;
11
+ scrollbar-gutter: auto;
12
+ width: 100%;
13
+ min-width: 100%;
14
+ }
2
15
 
3
16
  [pgs~="pageShell"] {
4
- --pageShell-aside-left-width: 400px;
5
- --pageShell-aside-right-width: 400px;
6
- --pageShell-aside-width-total: 0px;
7
- --pageShell-content-min-width: 500px;
8
- --pageShell-content-max-width: var(--page-width);
17
+ --pageShell-aside-sticky-top: 0;
18
+ --pageShell-asideLeft-width: #{$aside-size};
19
+ --pageShell-asideRight-width: #{$aside-size};
20
+ --pageShell-content-width: 500px;
9
21
  --pageShell-gap: var(--gap-elements);
10
- --pageShell-aside-sticky-top: 10svh;
11
- --pageShell-aside-sticky-bottom: var(--pageShell-gap);
12
- --pageShell-aside-count: 0;
13
- --pageShell-gap-count: 0;
14
- --pageShell-max-width: calc(
15
- var(--pageShell-content-max-width) +
16
- var(--pageShell-aside-width-total) +
17
- (var(--pageShell-gap) * var(--pageShell-gap-count))
18
- );
19
-
20
- display: grid;
21
- grid-template-columns: minmax(0, var(--pageShell-content-max-width));
22
- grid-template-areas: "content";
22
+ display: flex;
23
+ flex-wrap: wrap;
23
24
  gap: var(--pageShell-gap);
24
- padding-inline: var(--padding-page);
25
25
  margin-inline: auto;
26
26
  align-items: start;
27
27
  justify-content: center;
28
28
  width: 100%;
29
- max-width: calc(var(--pageShell-max-width) + (var(--padding-page) * 2));
30
-
31
- &:has(> [pgs~="pageShell-asideLeft"]) {
32
- --pageShell-aside-width-total: var(--pageShell-aside-left-width);
33
- --pageShell-aside-count: 1;
34
- --pageShell-gap-count: 1;
35
- grid-template-columns:
36
- var(--pageShell-aside-left-width)
37
- minmax(var(--pageShell-content-min-width), var(--pageShell-content-max-width));
38
- grid-template-areas: "aside-left content";
39
- }
40
-
41
- &:has(> [pgs~="pageShell-asideRight"]) {
42
- --pageShell-aside-width-total: var(--pageShell-aside-right-width);
43
- --pageShell-aside-count: 1;
44
- --pageShell-gap-count: 1;
45
- grid-template-columns:
46
- minmax(var(--pageShell-content-min-width), var(--pageShell-content-max-width))
47
- var(--pageShell-aside-right-width);
48
- grid-template-areas: "content aside-right";
49
- }
29
+ max-width: calc(var(--page-width) + (var(--padding-page) * 2));
30
+ padding-bottom: var(--page-top);
31
+ padding-inline: var(--padding-page);
32
+ container-type: inline-size;
50
33
 
51
- &:has(> [pgs~="pageShell-asideLeft"]):has(> [pgs~="pageShell-asideRight"]) {
52
- --pageShell-aside-width-total: calc(var(--pageShell-aside-left-width) + var(--pageShell-aside-right-width));
53
- --pageShell-aside-count: 2;
54
- --pageShell-gap-count: 2;
55
- grid-template-columns:
56
- var(--pageShell-aside-left-width)
57
- minmax(var(--pageShell-content-min-width), var(--pageShell-content-max-width))
58
- var(--pageShell-aside-right-width);
59
- grid-template-areas: "aside-left content aside-right";
60
- }
61
-
62
34
  [pgs~="pageShell-content"] {
63
35
  grid-area: content;
64
- width: 100%;
65
- min-width: 0;
36
+ flex: 999 1 var(--pageShell-content-width);
37
+ min-width: min(100%, var(--pageShell-content-width));
38
+ width: min(100%, var(--page-width));
39
+ max-width: var(--page-width);
40
+ padding-top: var(--page-top);
66
41
  }
67
42
 
68
43
  [pgs~="pageShell-asideLeft"],
@@ -73,11 +48,12 @@
73
48
  position: sticky;
74
49
  top: var(--pageShell-aside-sticky-top);
75
50
  width: 100%;
76
- max-height: calc(100svh - var(--pageShell-aside-sticky-top) - var(--pageShell-aside-sticky-bottom));
51
+ max-height: 100svh;
77
52
  overflow-y: auto;
78
53
  overscroll-behavior: contain;
79
54
  scrollbar-gutter: stable;
80
55
  scrollbar-width: none;
56
+ padding-top: var(--page-top);
81
57
 
82
58
  &::-webkit-scrollbar {
83
59
  display: none;
@@ -86,86 +62,104 @@
86
62
  >* {
87
63
  width: 100%;
88
64
  }
65
+
66
+ &:is([pgs~="pageShell-asideLeft"]) {
67
+ grid-area: asideLeft;
68
+ flex: 1 1 var(--pageShell-asideLeft-width);
69
+ min-width: min(100%, var(--pageShell-asideLeft-width));
70
+ max-width: var(--pageShell-asideLeft-width);
71
+ }
72
+
73
+ &:is([pgs~="pageShell-asideRight"]) {
74
+ grid-area: asideRight;
75
+ flex: 1 1 var(--pageShell-asideRight-width);
76
+ min-width: min(100%, var(--pageShell-asideRight-width));
77
+ max-width: var(--pageShell-asideRight-width);
78
+ }
89
79
  }
90
80
 
81
+ &:has(> [pgs~="pageShell-asideLeft"]) {
82
+ max-width: calc(var(--page-width) + var(--pageShell-asideLeft-width) + var(--pageShell-gap) + (var(--padding-page) * 2));
83
+ }
91
84
 
92
- [pgs~="pageShell-asideLeft"] {
93
- grid-area: aside-left;
94
- max-width: var(--pageShell-aside-left-width);
85
+ &:has(> [pgs~="pageShell-asideRight"]) {
86
+ max-width: calc(var(--page-width) + var(--pageShell-asideRight-width) + var(--pageShell-gap) + (var(--padding-page) * 2));
95
87
  }
96
88
 
97
- [pgs~="pageShell-asideRight"] {
98
- grid-area: aside-right;
99
- max-width: var(--pageShell-aside-right-width);
89
+ &:has(> [pgs~="pageShell-asideLeft"]):has(> [pgs~="pageShell-asideRight"]) {
90
+ max-width: calc(var(--page-width) + var(--pageShell-asideLeft-width) + var(--pageShell-asideRight-width) + (var(--pageShell-gap) * 2) + (var(--padding-page) * 2));
100
91
  }
101
92
 
102
- @media (max-width: 1500px) {
103
- &:has(> [pgs~="pageShell-asideLeft"]):has(> [pgs~="pageShell-asideRight"]) {
104
- grid-template-columns: minmax(0, var(--pageShell-content-max-width));
105
- grid-template-areas:
106
- "aside-left"
107
- "content"
108
- "aside-right";
93
+ //== RESPONSIVE ==//
109
94
 
110
- [pgs~="pageShell-asideLeft"],
111
- [pgs~="pageShell-asideRight"] {
112
- position: relative;
113
- top: auto;
114
- max-height: none;
115
- max-width: none;
116
- overflow: visible;
95
+ &:has(> [pgs~="pageShell-asideLeft"]) {
96
+ @container (max-width: calc(#{$aside-size} + #{$content-size} + #{$pageShell-test-gap})) {
97
+ [pgs~="pageShell-asideLeft"] {
98
+ @include pageShell-aside-flow;
99
+ }
100
+
101
+ [pgs~="pageShell-content"] {
102
+ padding-top: 0;
103
+ min-width: 100%;
117
104
  }
118
105
  }
119
106
  }
120
107
 
121
- //- laptop
122
- @media (max-width: $laptop){
123
- &:has(> [pgs~="pageShell-asideLeft"]):has(> [pgs~="pageShell-asideRight"]) {
124
- grid-template-columns: minmax(0, var(--pageShell-content-max-width));
125
- grid-template-areas:
126
- "aside-left"
127
- "content"
128
- "aside-right";
108
+ &:has(> [pgs~="pageShell-asideRight"]) {
109
+ @container (max-width: calc(#{$content-size} + #{$aside-size} + #{$pageShell-test-gap})) {
110
+ [pgs~="pageShell-asideRight"] {
111
+ @include pageShell-aside-flow;
112
+ padding-top: 0;
113
+ min-width: 100%;
114
+ }
129
115
  }
116
+ }
130
117
 
131
- &:has(> [pgs~="pageShell-asideLeft"]):not(:has(> [pgs~="pageShell-asideRight"])) {
132
- grid-template-columns: minmax(0, var(--pageShell-content-max-width));
118
+ &:has(> [pgs~="pageShell-asideLeft"]):has(> [pgs~="pageShell-asideRight"]) {
119
+ @container (max-width: calc(#{$aside-size} + #{$content-size} + #{$aside-size} + (#{$pageShell-test-gap} * 2))) {
120
+ display: grid;
121
+ grid-template-columns: var(--pageShell-asideLeft-width) minmax(0, var(--page-width));
133
122
  grid-template-areas:
134
- "aside-left"
135
- "content";
136
- }
123
+ "asideLeft content"
124
+ "asideLeft asideRight";
125
+ justify-content: center;
137
126
 
138
- &:has(> [pgs~="pageShell-asideRight"]):not(:has(> [pgs~="pageShell-asideLeft"])) {
139
- grid-template-columns: minmax(0, var(--pageShell-content-max-width));
140
- grid-template-areas:
141
- "content"
142
- "aside-right";
127
+ [pgs~="pageShell-asideRight"] {
128
+ @include pageShell-aside-flow;
129
+ padding-top: 0;
130
+ min-width: min(100%, var(--pageShell-asideRight-width));
131
+ }
143
132
  }
144
133
 
145
- [pgs~="pageShell-asideLeft"],
146
- [pgs~="pageShell-asideRight"] {
147
- position: relative;
148
- top: auto;
149
- max-height: none;
150
- max-width: none;
151
- overflow: visible;
134
+ @container (max-width: calc(#{$aside-size} + #{$content-size} + #{$pageShell-test-gap})) {
135
+ display: flex;
136
+
137
+ [pgs~="pageShell-asideLeft"],
138
+ [pgs~="pageShell-asideRight"] {
139
+ @include pageShell-aside-flow;
140
+ }
141
+
142
+ [pgs~="pageShell-content"],
143
+ [pgs~="pageShell-asideRight"] {
144
+ padding-top: 0;
145
+ min-width: 100%;
146
+ }
152
147
  }
153
148
  }
154
149
 
155
- @media (max-width: $tablet) {
150
+ @container (max-width: #{$content-size}) {
151
+ padding-top: var(--page-top);
152
+
153
+ [pgs~="pageShell-content"],
156
154
  [pgs~="pageShell-asideLeft"],
157
- [pgs~="pageShell-asideRight"],
158
- [pgs~="pageShell-content"] {
159
- width: 100%;
160
- max-width: none;
155
+ [pgs~="pageShell-asideRight"] {
156
+ padding-top: 0;
157
+ min-width: 100% !important;
161
158
  }
162
159
 
163
160
  [pgs~="pageShell-asideLeft"],
164
161
  [pgs~="pageShell-asideRight"] {
165
- position: relative;
166
- top: auto;
167
- max-height: none;
168
- overflow: visible;
162
+ @include pageShell-aside-flow;
169
163
  }
170
164
  }
171
165
  }
@@ -453,9 +453,7 @@
453
453
  input[disabled],
454
454
  input[disabled]:is([type="checkbox"], [type="radio"])+label,
455
455
  label:has(+ input[disabled]:not([type="checkbox"], [type="radio"])),
456
- label:has(+ :is(textarea[disabled], select[disabled])),
457
- label.disabled,
458
- .disabled {
456
+ label:has(+ :is(textarea[disabled], select[disabled])) {
459
457
  @include disabled();
460
458
  }
461
459
 
@@ -19,11 +19,11 @@
19
19
  }
20
20
 
21
21
  //== row
22
- @mixin flexRow() {
22
+ @mixin flexRow($wrap: wrap) {
23
23
  display: flex;
24
24
  gap: var(--gap-texts);
25
25
  flex-direction: row;
26
- flex-wrap: wrap;
26
+ flex-wrap: $wrap;
27
27
  }
28
28
 
29
29
  @mixin flexRowElements() {
@@ -83,65 +83,5 @@
83
83
  // }
84
84
  }
85
85
 
86
- //= ASIDE
87
- //== SECTION ASIDE
88
- @mixin sectionAside {
89
- @include sectionNoPadding();
90
- }
91
-
92
- //== CONTAINER ASIDE
93
- @mixin containerAside() {
94
- --aside-width: 400px;
95
- width: 100%;
96
- max-width: calc(var(--section-width) + var(--aside-width));
97
-
98
- //+ tablet
99
- @media (min-width: $tablet) {
100
- padding-inline: var(--padding-page);
101
- margin-inline: auto;
102
- @include flexRowElements();
103
- flex-wrap: nowrap;
104
- }
105
-
106
- //- tablet
107
- @media (max-width: $tablet) {
108
- @include flexColumnElements();
109
- padding-inline: var(--padding-page);
110
- }
111
- }
112
-
113
- //== ASIDE
114
- @mixin aside($sticky: false) {
115
- @include flexColumn;
116
- align-items: flex-start;
117
- isolation: isolate;
118
- border-radius: var(--border-radius);
119
- width: 100%;
120
-
121
- @if($sticky ==true) {
122
- position: sticky;
123
- top: var(--page-top);
124
- }
125
-
126
- >* {
127
- width: 100%;
128
- }
129
86
 
130
- @at-root body:has(header[data-header-scroll=true]) #{&} {
131
87
 
132
- //+ tablet
133
- @media (min-width: $tablet) {
134
- top: 10svh !important;
135
- }
136
- }
137
-
138
- //+ tablet
139
- @media (min-width: $tablet) {
140
- max-width: var(--aside-width, 400px);
141
- }
142
-
143
- //- tablet
144
- @media (max-width: $tablet) {
145
- position: static;
146
- }
147
- }
@@ -25,7 +25,6 @@ $h5: fibonacci(8) * $base-fibonacci-size; // 1.68rem
25
25
  //= IMPORT ADVANCED
26
26
  @import "mx-base";
27
27
  @import "mx-responsive";
28
- @import "mx-menu";
29
28
  @import "mx-form";
30
29
  @import "mx-form-addon";
31
30
  @import "mx-button";
@@ -9,6 +9,7 @@
9
9
  container-type: inline-size;
10
10
  color-scheme: dark;
11
11
  position: relative;
12
+ isolation: isolate;
12
13
 
13
14
  //= DARKMODE
14
15
  [pgs~="toggleDarkmode"] {
@@ -29,7 +29,7 @@
29
29
  padding-inline: var(--header-padding-inline);
30
30
  color: var(--header-color);
31
31
  pointer-events: auto;
32
-
32
+
33
33
  //== ALL
34
34
  >* {
35
35
  display: contents;
@@ -54,29 +54,44 @@
54
54
  gap: 5px;
55
55
  justify-content: center;
56
56
  aspect-ratio: 1;
57
+ position: relative;
57
58
 
58
59
  &::before,
59
60
  &::after {
60
61
  content: "";
61
62
  width: 20px;
62
- height: 0;
63
- border: 2px solid var(--header-color);
63
+ height: 4px;
64
+ background-color: var(--header-color);
64
65
  display: block;
65
66
  border-radius: 20px;
66
67
  transition: transform 300ms;
67
68
  position: relative;
68
69
  }
69
70
 
71
+ &::before {
72
+ opacity: 0.6;
73
+ }
74
+
70
75
  //=== OPEN
71
76
  &[aria-expanded="true"] {
72
77
  gap: 0px;
73
78
 
79
+ &::before,
80
+ &::after {
81
+ position: absolute;
82
+ inset: 0;
83
+ top: 50%;
84
+ left: 50%;
85
+ translate: -50% -50%;
86
+ }
87
+
74
88
  &::before {
75
- transform: rotate(45deg);
89
+ transform: rotate(-45deg);
90
+ opacity: 0.6;
76
91
  }
77
92
 
78
93
  &::after {
79
- transform: rotate(-45deg) translate(3px, -2px);
94
+ transform: rotate(45deg);
80
95
  }
81
96
  }
82
97
  }
@@ -127,17 +142,4 @@
127
142
  padding-inline: var(--header-padding-block);
128
143
  }
129
144
  }
130
-
131
- //= LINK ADMIN WORDPRESS
132
- .wordpressMyMenu {
133
- display: flex;
134
- gap: var(--gap-texts);
135
-
136
- a {
137
- --button-background: #3a70ac;
138
- // --button-color: var(--color-whiteFixed);
139
- padding: var(--button-size);
140
- max-width: max-content;
141
- }
142
- }
143
145
  }