@cadriciel/layout-cerema 0.0.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 (34) hide show
  1. package/fesm2022/cadriciel-layout-cerema.mjs +1576 -0
  2. package/fesm2022/cadriciel-layout-cerema.mjs.map +1 -0
  3. package/package.json +35 -0
  4. package/src/assets/layout/images/avatar.png +0 -0
  5. package/src/assets/layout/images/logo-cadriciel.png +0 -0
  6. package/src/assets/layout/images/logo-cerema.png +0 -0
  7. package/src/assets/layout/images/logo-cerema.svg +4 -0
  8. package/src/assets/layout/images/logo-dark.svg +3 -0
  9. package/src/assets/layout/images/logo-light.svg +3 -0
  10. package/src/lib/cerema-styles.scss +41 -0
  11. package/src/lib/cerema-tailwind.css +10 -0
  12. package/src/lib/styles/_breadcrumb.scss +18 -0
  13. package/src/lib/styles/_config.scss +8 -0
  14. package/src/lib/styles/_content.scss +20 -0
  15. package/src/lib/styles/_fonts.scss +32 -0
  16. package/src/lib/styles/_footer.scss +26 -0
  17. package/src/lib/styles/_main.scss +29 -0
  18. package/src/lib/styles/_responsive.scss +181 -0
  19. package/src/lib/styles/_sass_variables.scss +1 -0
  20. package/src/lib/styles/_sidebar.scss +3 -0
  21. package/src/lib/styles/_topbar.scss +230 -0
  22. package/src/lib/styles/_utils.scss +19 -0
  23. package/src/lib/styles/layout.scss +15 -0
  24. package/src/lib/styles/sidebar/_sidebar_slim.scss +146 -0
  25. package/src/lib/styles/sidebar/_sidebar_slim_plus.scss +158 -0
  26. package/src/lib/styles/sidebar/_sidebar_vertical.scss +132 -0
  27. package/src/lib/styles/theme/_dark.scss +10 -0
  28. package/src/lib/styles/theme/_light.scss +10 -0
  29. package/src/lib/styles/theme/_primary.scss +10 -0
  30. package/src/lib/styles/theme/_themes.scss +3 -0
  31. package/src/lib/styles/variables/_common.scss +15 -0
  32. package/src/lib/styles/variables/_dark.scss +3 -0
  33. package/src/lib/styles/variables/_light.scss +3 -0
  34. package/types/cadriciel-layout-cerema.d.ts +112 -0
@@ -0,0 +1,181 @@
1
+ @media screen and (min-width: 992px) {
2
+ .layout-container {
3
+ &.layout-static {
4
+ .layout-sidebar {
5
+ transition: transform var(--layout-section-transition-duration);
6
+ }
7
+
8
+ .layout-content-wrapper {
9
+ margin-left: 14rem;
10
+ }
11
+ }
12
+
13
+ &.layout-static-inactive {
14
+ .layout-sidebar {
15
+ transform: translateX(-100%);
16
+ }
17
+
18
+ .layout-content-wrapper {
19
+ margin-left: 0;
20
+ }
21
+ }
22
+
23
+ &.layout-overlay {
24
+ .layout-content-wrapper {
25
+ margin-left: 0;
26
+ }
27
+
28
+ .layout-sidebar {
29
+ z-index: 999;
30
+ transform: translateX(-100%);
31
+ transition: transform var(--layout-section-transition-duration);
32
+ box-shadow: 3px 0 4px #0000001a;
33
+ }
34
+
35
+ &.layout-overlay-active {
36
+ .layout-sidebar {
37
+ transform: translateX(0);
38
+ }
39
+ }
40
+ }
41
+ }
42
+ }
43
+
44
+ @media screen and (max-width: (991px)) {
45
+ .blocked-scroll {
46
+ overflow: hidden;
47
+ }
48
+
49
+ .layout-topbar {
50
+ height: 9rem;
51
+ flex-wrap: wrap;
52
+ padding: 1rem 1rem 0 1rem;
53
+
54
+ .app-logo {
55
+ span {
56
+ display: none;
57
+ }
58
+ }
59
+
60
+ .topbar-menubutton {
61
+ display: flex;
62
+ align-items: center;
63
+ justify-content: center;
64
+ position: fixed;
65
+ bottom: 0;
66
+ right: 0;
67
+ width: 4.5rem;
68
+ height: 4.5rem;
69
+ margin: 0;
70
+ border-top-right-radius: 0;
71
+ border-bottom-left-radius: 0;
72
+ border-top-left-radius: 30px;
73
+ background: var(--primary-color);
74
+ transition: background-color var(--layout-section-transition-duration);
75
+
76
+ &:hover {
77
+ background-color: var(--p-primary-400);
78
+ }
79
+
80
+ span {
81
+ top: 30px;
82
+ left: 20px;
83
+ background: var(--primary-color-text);
84
+
85
+ &:before,
86
+ &:after {
87
+ background: var(--primary-color-text);
88
+ }
89
+ }
90
+ }
91
+
92
+ .topbar-menu {
93
+ order: 1;
94
+ width: 100%;
95
+ margin: 0;
96
+ }
97
+
98
+ .topbar-search {
99
+ &.topbar-search-active {
100
+ .search-input-wrapper {
101
+ width: 120px;
102
+ }
103
+ }
104
+ }
105
+
106
+ .topbar-profile {
107
+ .topbar-profile-button {
108
+ .profile-details,
109
+ .profile-name,
110
+ i {
111
+ display: none;
112
+ }
113
+ }
114
+ }
115
+ }
116
+
117
+ .layout-content-wrapper {
118
+ margin-left: 0;
119
+ padding-top: 9rem;
120
+ height: calc(100% - 9rem);
121
+
122
+ .layout-content {
123
+ border-top-right-radius: 30px;
124
+ height: calc(100vh - 9rem);
125
+ }
126
+ }
127
+
128
+ .layout-sidebar {
129
+ box-shadow: 0 0 1rem rgba(0, 0, 0, 0.15);
130
+ transform: translateY(100%);
131
+ width: 100%;
132
+ top: 9rem;
133
+ height: calc(100% - 9rem);
134
+ mix-blend-mode: normal;
135
+ backdrop-filter: blur(200px);
136
+ border-radius: 30px 30px 0px 0px;
137
+ transition: transform var(--layout-section-transition-duration);
138
+ }
139
+
140
+ .layout-container {
141
+ &.layout-mobile-active {
142
+ .layout-topbar {
143
+ .topbar-menubutton {
144
+ span {
145
+ width: 0;
146
+
147
+ &:before {
148
+ width: 2rem;
149
+ left: 0;
150
+ transform: translateY(9px) rotate(45deg);
151
+ }
152
+
153
+ &:after {
154
+ width: 2rem;
155
+ transform: translateY(-9px) rotate(-45deg);
156
+ }
157
+ }
158
+ }
159
+ }
160
+
161
+ .layout-sidebar {
162
+ transform: translateY(0);
163
+ }
164
+ }
165
+
166
+ .layout-search {
167
+ .search-container {
168
+ width: 75vw;
169
+ }
170
+ }
171
+ }
172
+ }
173
+
174
+ @media screen and (min-width: 1960px) {
175
+ .landing-wrapper,
176
+ .layout-content-inner {
177
+ width: 1504px;
178
+ margin-left: auto !important;
179
+ margin-right: auto !important;
180
+ }
181
+ }
@@ -0,0 +1 @@
1
+ $breakpoint: 992px !default;
@@ -0,0 +1,3 @@
1
+ @use './sidebar/_sidebar_vertical';
2
+ @use './sidebar/_sidebar_slim';
3
+ @use './sidebar/_sidebar_slim_plus';
@@ -0,0 +1,230 @@
1
+ .layout-topbar {
2
+ height: 5rem;
3
+ padding: 0 2rem 0 1rem;
4
+ position: fixed;
5
+ left: 0;
6
+ top: 0;
7
+ width: 100%;
8
+ z-index: 1000;
9
+ display: flex;
10
+ align-items: center;
11
+ background-color: var(--v-body-bg);
12
+
13
+ .app-logo {
14
+ display: flex;
15
+ align-items: center;
16
+ flex-shrink: 0;
17
+
18
+ img {
19
+ width: 3rem;
20
+ }
21
+
22
+ span {
23
+ font-size: 2rem;
24
+ font-weight: 700;
25
+ margin-left: 0.5rem;
26
+ color: var(--v-menuitem-text-color);
27
+ }
28
+ }
29
+
30
+ .topbar-menubutton {
31
+ position: relative;
32
+ width: 3rem;
33
+ height: 3rem;
34
+ margin-left: 3rem;
35
+ border-radius: var(--border-radius);
36
+ flex-shrink: 0;
37
+
38
+ span {
39
+ width: 2rem;
40
+ height: 4px;
41
+ display: block;
42
+ position: absolute;
43
+ top: 18px;
44
+ left: 7px;
45
+ border-radius: 7px;
46
+ -webkit-transition-duration: 0.5s;
47
+ transition-duration: 0.5s;
48
+ transition-timing-function: swing;
49
+ background-color: var(--v-menuitem-text-color-secondary);
50
+
51
+ &:before {
52
+ width: 1rem;
53
+ height: 4px;
54
+ content: '';
55
+ position: absolute;
56
+ right: 0;
57
+ top: -9px;
58
+ border-radius: 7px;
59
+ -webkit-transition-duration: 0.5s;
60
+ transition-duration: 0.5s;
61
+ transition-timing-function: swing;
62
+ background-color: var(--v-menuitem-text-color-secondary);
63
+ }
64
+
65
+ &:after {
66
+ width: 1rem;
67
+ height: 4px;
68
+ content: '';
69
+ position: absolute;
70
+ left: 0;
71
+ top: 9px;
72
+ border-radius: 7px;
73
+ -webkit-transition-duration: 0.5s;
74
+ transition-duration: 0.5s;
75
+ transition-timing-function: swing;
76
+ background-color: var(--v-menuitem-text-color-secondary);
77
+ }
78
+ }
79
+
80
+ &:hover {
81
+ background-color: var(--v-menuitem-hover-bg);
82
+ }
83
+ }
84
+
85
+ .topbar-menu {
86
+ list-style-type: none;
87
+ padding: 0;
88
+ margin: 0 3rem;
89
+ display: flex;
90
+ gap: 0.5rem;
91
+ flex: 1 1 auto;
92
+ overflow: auto;
93
+
94
+ > li {
95
+ display: flex;
96
+ align-items: center;
97
+ transition: background-color var(--transition-duration);
98
+ border-radius: var(--border-radius);
99
+ padding: 0.5rem;
100
+ cursor: pointer;
101
+
102
+ a {
103
+ font-size: 1.25rem;
104
+ font-weight: 400;
105
+ white-space: nowrap;
106
+ padding-right: 1.375rem;
107
+ color: var(--v-menuitem-text-color-secondary);
108
+ opacity: 0.7;
109
+ &.active-route {
110
+ opacity: 1;
111
+ color: var(--v-menuitem-text-color);
112
+ }
113
+ }
114
+
115
+ i {
116
+ color: var(--v-menuitem-text-color-secondary);
117
+ font-size: 0.875rem;
118
+ margin-left: 0.5rem;
119
+ display: none;
120
+ }
121
+
122
+ &:hover {
123
+ background-color: var(--v-menuitem-hover-bg);
124
+
125
+ a {
126
+ padding-right: 0;
127
+ }
128
+
129
+ i {
130
+ display: block;
131
+ }
132
+ }
133
+
134
+ &.topbar-menu-empty {
135
+ color: var(--v-menuitem-text-color);
136
+ cursor: auto;
137
+
138
+ &:hover {
139
+ background-color: transparent;
140
+ }
141
+ }
142
+ }
143
+ }
144
+
145
+ .topbar-actions {
146
+ display: flex;
147
+ align-items: center;
148
+ flex-shrink: 0;
149
+ gap: 1rem;
150
+ margin-left: auto;
151
+ }
152
+
153
+ .topbar-search {
154
+ display: flex;
155
+ align-items: center;
156
+ flex-shrink: 0;
157
+
158
+ .search-input-wrapper {
159
+ position: relative;
160
+ width: 0;
161
+ opacity: 0;
162
+ visibility: hidden;
163
+ transition: 400ms cubic-bezier(0.86, 0, 0.07, 1);
164
+
165
+ .p-inputtext {
166
+ width: 100%;
167
+ position: relative;
168
+ border-radius: 40px;
169
+ padding: 9px;
170
+ }
171
+
172
+ span {
173
+ font-size: 18px;
174
+ margin-top: -9px;
175
+ }
176
+ }
177
+
178
+ &.topbar-search-active {
179
+ .search-input-wrapper {
180
+ margin-left: 1rem;
181
+ width: 190px;
182
+ opacity: 1;
183
+ visibility: visible;
184
+
185
+ i {
186
+ display: block;
187
+ }
188
+ }
189
+ }
190
+ }
191
+
192
+ .topbar-profile {
193
+ border-radius: var(--border-radius);
194
+ position: relative;
195
+ flex-shrink: 0;
196
+
197
+ .topbar-profile-button {
198
+ display: flex;
199
+ align-items: center;
200
+ cursor: pointer;
201
+
202
+ > img {
203
+ width: 36px;
204
+ margin-right: 0.75rem;
205
+ }
206
+
207
+ .profile-details {
208
+ display: flex;
209
+ flex-direction: column;
210
+ align-items: start;
211
+ }
212
+
213
+ .profile-name {
214
+ color: var(--v-menuitem-text-color);
215
+ font-weight: 700;
216
+ }
217
+
218
+ .profile-job {
219
+ line-height: 1;
220
+ color: var(--v-menuitem-text-color-secondary);
221
+ }
222
+
223
+ i {
224
+ margin-left: 0.75rem;
225
+ color: var(--v-menuitem-text-color-secondary);
226
+ transition: transform var(--layout-section-transition-duration);
227
+ }
228
+ }
229
+ }
230
+ }
@@ -0,0 +1,19 @@
1
+ .card {
2
+ background: var(--surface-card);
3
+ padding: 1.5rem;
4
+ margin-bottom: 1rem;
5
+ box-shadow: 0px 3px 4px rgba(0, 0, 0, 0.1), 0px 24px 36px rgba(0, 0, 0, 0.04);
6
+ border-radius: 14px;
7
+
8
+ &:last-child {
9
+ margin-bottom: 0;
10
+ }
11
+ }
12
+
13
+ .p-toast {
14
+ &.p-toast-top-right,
15
+ &.p-toast-top-left,
16
+ &.p-toast-top-center {
17
+ top: 7rem;
18
+ }
19
+ }
@@ -0,0 +1,15 @@
1
+ @use './_sass_variables';
2
+ @use './variables/_common';
3
+ @use './variables/_light';
4
+ @use './variables/_dark';
5
+ @use './_fonts';
6
+ @use './theme/_themes';
7
+ @use './_main';
8
+ @use './_sidebar';
9
+ @use './_topbar';
10
+ @use './_breadcrumb';
11
+ @use './_footer';
12
+ @use './_content';
13
+ @use './_responsive';
14
+ @use './_utils';
15
+ @use './_config';
@@ -0,0 +1,146 @@
1
+ @media screen and (min-width: 992px) {
2
+ .layout-container {
3
+ &.layout-slim {
4
+ .layout-topbar {
5
+ .app-logo {
6
+ span {
7
+ display: none;
8
+ }
9
+ }
10
+ }
11
+
12
+ .topbar-menubutton {
13
+ display: none;
14
+ }
15
+
16
+ .layout-sidebar {
17
+ width: 5rem;
18
+ overflow: visible;
19
+
20
+ .layout-menu-container {
21
+ overflow: auto;
22
+ display: flex;
23
+ justify-content: center;
24
+ padding: 0;
25
+
26
+ &::-webkit-scrollbar {
27
+ display: none;
28
+ }
29
+ }
30
+ }
31
+
32
+ .layout-content-wrapper {
33
+ margin-left: 5rem;
34
+ }
35
+
36
+ .layout-menu {
37
+ ul {
38
+ display: none;
39
+ }
40
+
41
+ li.active-menuitem {
42
+ > ul {
43
+ display: block;
44
+ }
45
+ }
46
+
47
+ .layout-root-menuitem {
48
+ > .layout-menuitem-root-text {
49
+ display: none;
50
+ }
51
+
52
+ > a {
53
+ display: flex;
54
+ align-items: center;
55
+ justify-content: center;
56
+ border-radius: 50%;
57
+ cursor: pointer;
58
+ outline: none;
59
+ transition: background-color var(--layout-section-transition-duration);
60
+ width: 3.5rem;
61
+ height: 3.5rem;
62
+ margin: 0 auto 1rem auto;
63
+ color: var(--v-menuitem-text-color);
64
+
65
+ &:hover {
66
+ background: var(--v-menuitem-hover-bg);
67
+ }
68
+
69
+ .layout-submenu-toggler {
70
+ display: none;
71
+ }
72
+
73
+ .layout-menuitem-icon {
74
+ font-size: 1.75rem;
75
+ }
76
+
77
+ .layout-menuitem-text {
78
+ display: none;
79
+ }
80
+ }
81
+
82
+ > ul {
83
+ position: absolute;
84
+ left: 5rem;
85
+ top: 0;
86
+ min-width: 15rem;
87
+ background-color: var(--surface-overlay);
88
+ border-radius: var(--border-radius);
89
+ box-shadow:
90
+ 0px 4px 10px rgb(0 0 0 / 3%),
91
+ 0px 0px 2px rgb(0 0 0 / 6%),
92
+ 0px 2px 6px rgb(0 0 0 / 12%);
93
+ padding: 1rem;
94
+ max-height: 20rem;
95
+ overflow: auto;
96
+ z-index: 999;
97
+
98
+ a {
99
+ color: var(--v-overlay-menuitem-text-color);
100
+
101
+ &:hover {
102
+ background: var(--v-overlay-menuitem-hover-bg);
103
+ }
104
+ }
105
+
106
+ li {
107
+ a {
108
+ padding-left: 0.5rem;
109
+ }
110
+
111
+ li {
112
+ a {
113
+ padding-left: 1.5rem;
114
+ }
115
+
116
+ li {
117
+ a {
118
+ padding-left: 2.5rem;
119
+ }
120
+
121
+ li {
122
+ a {
123
+ padding-left: 3.5rem;
124
+ }
125
+
126
+ li {
127
+ a {
128
+ padding-left: 4.5rem;
129
+ }
130
+
131
+ li {
132
+ a {
133
+ padding-left: 5.5rem;
134
+ }
135
+ }
136
+ }
137
+ }
138
+ }
139
+ }
140
+ }
141
+ }
142
+ }
143
+ }
144
+ }
145
+ }
146
+ }