platform-core-ng 21.1.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 (37) hide show
  1. package/README.md +73 -0
  2. package/fesm2022/platform-core-ng.mjs +7139 -0
  3. package/fesm2022/platform-core-ng.mjs.map +1 -0
  4. package/package.json +20 -0
  5. package/styles/base/_breakpoints.scss +1 -0
  6. package/styles/base/_interaction-mixins.scss +37 -0
  7. package/styles/base/_tokens.scss +255 -0
  8. package/styles/base/reset.scss +66 -0
  9. package/styles/base/scrollbar.scss +22 -0
  10. package/styles/base/theme.scss +424 -0
  11. package/styles/base/typography.scss +50 -0
  12. package/styles/components/index.scss +7 -0
  13. package/styles/components/mail-client.scss +2165 -0
  14. package/styles/components/master-detail.scss +137 -0
  15. package/styles/components/mobile-list-directives.scss +355 -0
  16. package/styles/control/button.scss +565 -0
  17. package/styles/control/switch.scss +85 -0
  18. package/styles/data/table/base.scss +31 -0
  19. package/styles/data/table/pattern-admin.scss +136 -0
  20. package/styles/data/table/pattern-screen.scss +36 -0
  21. package/styles/data/table.scss +3 -0
  22. package/styles/form/checkbox.scss +97 -0
  23. package/styles/form/input.scss +201 -0
  24. package/styles/form/number.scss +17 -0
  25. package/styles/form/radio.scss +84 -0
  26. package/styles/form/range.scss +118 -0
  27. package/styles/form/select.scss +50 -0
  28. package/styles/form/textarea.scss +65 -0
  29. package/styles/foundation.scss +16 -0
  30. package/styles/index.scss +1 -0
  31. package/styles/profiles/b/index.scss +4 -0
  32. package/styles/profiles/b/layout.scss +88 -0
  33. package/styles/profiles/b/theme.scss +44 -0
  34. package/styles/profiles/screen/index.scss +3 -0
  35. package/styles/profiles/screen/layout.scss +125 -0
  36. package/styles/profiles/screen/theme.scss +131 -0
  37. package/types/platform-core-ng.d.ts +3217 -0
@@ -0,0 +1,137 @@
1
+ //@use '../base/tokens' as tk;
2
+ //
3
+ //.list-page-layout--master-detail,
4
+ //s-list-page-layout.list-page-layout--master-detail .list-page-layout {
5
+ // --list-page-layout-sidebar-width: 16rem;
6
+ // --list-page-master-width: 20rem;
7
+ // --list-page-layout-main-gap: 0.75rem;
8
+ // --list-page-layout-main-padding: 0.875rem 1rem 1rem;
9
+ // --list-page-layout-desktop-radius: 0.875rem;
10
+ //}
11
+ //
12
+ //.list-page-layout--master-detail .list-page-sidebar,
13
+ //s-list-page-layout.list-page-layout--master-detail .list-page-sidebar {
14
+ // grid-template-rows: auto auto auto minmax(0, 1fr) auto;
15
+ // height: 100%;
16
+ // border-right: 1px solid var(--list-page-sidebar-border-color, #{tk.$color-divider});
17
+ //}
18
+ //
19
+ //.list-page-layout--master-detail .list-page-layout__content-desktop,
20
+ //s-list-page-layout.list-page-layout--master-detail .list-page-layout__content-desktop {
21
+ // border: 1px solid var(--list-page-master-detail-border-color, #{tk.$color-border});
22
+ // box-sizing: border-box;
23
+ //}
24
+ //
25
+ //.list-page-layout--master-detail .list-page-layout__content-desktop > .card,
26
+ //s-list-page-layout.list-page-layout--master-detail .list-page-layout__content-desktop > .card {
27
+ // height: 100%;
28
+ // border: 0;
29
+ // border-radius: 0;
30
+ //}
31
+ //
32
+ //.list-page-layout--master-detail .list-page-layout__content-desktop > .card > .card__body,
33
+ //s-list-page-layout.list-page-layout--master-detail .list-page-layout__content-desktop > .card > .card__body {
34
+ // height: 100%;
35
+ // min-height: 0;
36
+ // align-items: stretch;
37
+ // gap: 0;
38
+ // padding: 0;
39
+ // overflow: hidden;
40
+ //}
41
+ //
42
+ //.list-page-layout--master-detail .card__body-main--list,
43
+ //s-list-page-layout.list-page-layout--master-detail .card__body-main--list {
44
+ // flex: 0 0 var(--list-page-master-width, 26rem);
45
+ // height: 100%;
46
+ // overflow: auto;
47
+ // border-right: 1px solid var(--list-page-master-detail-border-color, #{tk.$color-divider});
48
+ // background: var(--list-page-master-bg, #{tk.$color-surface});
49
+ //}
50
+ //
51
+ //.list-page-layout--master-detail .card__aside--detail,
52
+ //s-list-page-layout.list-page-layout--master-detail .card__aside--detail {
53
+ // flex: 1 1 auto;
54
+ // min-width: 0;
55
+ // height: 100%;
56
+ // display: grid;
57
+ // align-content: start;
58
+ // gap: 0.875rem;
59
+ // padding: 1rem;
60
+ // overflow: auto;
61
+ // box-sizing: border-box;
62
+ // background: var(--list-page-detail-bg, #{tk.$color-surface});
63
+ //}
64
+ //
65
+ //.list-page-layout--master-detail .card__aside--detail > .card,
66
+ //s-list-page-layout.list-page-layout--master-detail .card__aside--detail > .card {
67
+ // min-width: 0;
68
+ //}
69
+ //
70
+ //.list-page-layout--master-detail .card__aside--detail .card__header,
71
+ //s-list-page-layout.list-page-layout--master-detail .card__aside--detail .card__header {
72
+ // min-height: 3.25rem;
73
+ // padding: 0 1rem;
74
+ //}
75
+ //
76
+ //.list-page-layout--master-detail .card__aside--detail .status-dot,
77
+ //s-list-page-layout.list-page-layout--master-detail .card__aside--detail .status-dot {
78
+ // min-width: 0;
79
+ //}
80
+ //
81
+ //.list-page-layout--master-detail .card__aside--detail .status-dot__label,
82
+ //s-list-page-layout.list-page-layout--master-detail .card__aside--detail .status-dot__label {
83
+ // min-width: 0;
84
+ // overflow: hidden;
85
+ // text-overflow: ellipsis;
86
+ //}
87
+ //
88
+ //.list-page-layout--master-detail .card__aside--detail .card__body,
89
+ //s-list-page-layout.list-page-layout--master-detail .card__aside--detail .card__body {
90
+ // padding: 1rem;
91
+ //}
92
+ //
93
+ //.list-page-layout--master-detail .card__aside--detail .card__footer,
94
+ //s-list-page-layout.list-page-layout--master-detail .card__aside--detail .card__footer {
95
+ // min-height: 3.25rem;
96
+ // padding: 0 1rem;
97
+ //}
98
+ //
99
+ //.list-page-layout--master-detail .card__aside--detail .list-item,
100
+ //s-list-page-layout.list-page-layout--master-detail .card__aside--detail .list-item {
101
+ // padding: 0.75rem;
102
+ //}
103
+ //
104
+ //.list-page-layout--master-detail .card__aside--detail .list-item__title,
105
+ //s-list-page-layout.list-page-layout--master-detail .card__aside--detail .list-item__title {
106
+ // overflow: hidden;
107
+ // display: -webkit-box;
108
+ // overflow-wrap: break-word;
109
+ // -webkit-box-orient: vertical;
110
+ // -webkit-line-clamp: 2;
111
+ //}
112
+ //
113
+ //.list-page-layout--master-detail .list-page-avatar,
114
+ //s-list-page-layout.list-page-layout--master-detail .list-page-avatar {
115
+ // background: linear-gradient(
116
+ // 180deg,
117
+ // var(--avatar-role-start, #{tk.$color-primary-300}),
118
+ // var(--avatar-role-end, #{tk.$color-primary})
119
+ // );
120
+ //}
121
+ //
122
+ //@media (min-width: 1440px) {
123
+ // .list-page-layout--master-detail,
124
+ // s-list-page-layout.list-page-layout--master-detail .list-page-layout {
125
+ // --list-page-layout-sidebar-width: 18rem;
126
+ // --list-page-master-width: 25rem;
127
+ // }
128
+ //}
129
+ //
130
+ //@media (max-width: 1180px) {
131
+ // .list-page-layout--master-detail,
132
+ // s-list-page-layout.list-page-layout--master-detail .list-page-layout {
133
+ // --list-page-layout-sidebar-width: 15rem;
134
+ // --list-page-master-width: 18.5rem;
135
+ // --list-page-layout-main-padding: 0.75rem;
136
+ // }
137
+ //}
@@ -0,0 +1,355 @@
1
+ m-list > .m-list.m-list--feed {
2
+ margin: 0;
3
+ border: 0;
4
+ border-radius: 0;
5
+ overflow: hidden;
6
+ background: #ffffff;
7
+ box-shadow: none;
8
+ }
9
+
10
+ m-list > .m-list.m-list--feed .m-item {
11
+ align-items: center;
12
+ background: #ffffff;
13
+ }
14
+
15
+ m-list > .m-list.m-list--feed .m-item--clickable:hover {
16
+ background: #f8fafc;
17
+ }
18
+
19
+ m-list > .m-list.m-list--feed .m-item__start,
20
+ m-list > .m-list.m-list--feed .m-item__media {
21
+ align-items: center;
22
+ }
23
+
24
+ m-list > .m-list.m-list--feed .m-item__actions {
25
+ min-width: 20px;
26
+ max-width: 46px;
27
+ overflow: visible;
28
+ color: #aeb6c2;
29
+ }
30
+
31
+ .m-item .m-item-menu-icon {
32
+ width: 28px;
33
+ height: 28px;
34
+ display: inline-flex;
35
+ align-items: center;
36
+ justify-content: center;
37
+ color: #111111;
38
+ }
39
+
40
+ .m-item .m-item-menu-chevron {
41
+ width: 22px;
42
+ height: 22px;
43
+ display: inline-flex;
44
+ align-items: center;
45
+ justify-content: center;
46
+ color: #98a1af;
47
+ }
48
+
49
+ .m-item .m-item-profile-avatar {
50
+ width: var(--m-item-avatar-size, 40px);
51
+ height: var(--m-item-avatar-size, 40px);
52
+ flex: 0 0 var(--m-item-avatar-size, 40px);
53
+ display: inline-grid;
54
+ place-items: center;
55
+ border-radius: 999px;
56
+ background:
57
+ radial-gradient(
58
+ circle at 50% 28%,
59
+ rgb(255 255 255 / 55%) 0 12%,
60
+ transparent 13%
61
+ ),
62
+ var(--m-item-profile-avatar-bg, linear-gradient(135deg, #64748b, #cbd5e1));
63
+ box-shadow: inset 0 0 0 1px rgb(15 23 42 / 6%);
64
+ color: #ffffff;
65
+ font-size: 17px;
66
+ font-weight: 700;
67
+ }
68
+
69
+ .m-item-profile-avatar--amber,
70
+ .m-item-profile-avatar--orange {
71
+ --m-item-profile-avatar-bg: linear-gradient(135deg, #c2410c, #fed7aa);
72
+ }
73
+
74
+ .m-item-profile-avatar--blue,
75
+ .m-item-profile-avatar--sky {
76
+ --m-item-profile-avatar-bg: linear-gradient(135deg, #2563eb, #7dd3fc);
77
+ }
78
+
79
+ .m-item-profile-avatar--cyan {
80
+ --m-item-profile-avatar-bg: linear-gradient(135deg, #0f766e, #67e8f9);
81
+ }
82
+
83
+ .m-item-profile-avatar--green,
84
+ .m-item-profile-avatar--mint {
85
+ --m-item-profile-avatar-bg: linear-gradient(135deg, #166534, #86efac);
86
+ }
87
+
88
+ .m-item-profile-avatar--purple {
89
+ --m-item-profile-avatar-bg: linear-gradient(135deg, #9333ea, #7dd3fc);
90
+ }
91
+
92
+ .m-item-profile-avatar--rose {
93
+ --m-item-profile-avatar-bg: linear-gradient(135deg, #f97316, #f9a8d4);
94
+ }
95
+
96
+ .m-item-profile-avatar--slate {
97
+ --m-item-profile-avatar-bg: linear-gradient(135deg, #111827, #cbd5e1);
98
+ }
99
+
100
+ .m-item-profile-avatar--warm {
101
+ --m-item-profile-avatar-bg: linear-gradient(135deg, #7c2d12, #fed7aa);
102
+ }
103
+
104
+ .m-item .m-item-profile-title {
105
+ display: inline-flex;
106
+ align-items: center;
107
+ gap: 12px;
108
+ min-width: 0;
109
+ }
110
+
111
+ .m-item .m-item-profile-name {
112
+ min-width: 0;
113
+ overflow: hidden;
114
+ color: #111827;
115
+ font-size: 17px;
116
+ font-weight: 500;
117
+ line-height: 24px;
118
+ text-overflow: ellipsis;
119
+ white-space: nowrap;
120
+ }
121
+
122
+ .m-item .m-item-presence {
123
+ width: 8px;
124
+ height: 8px;
125
+ flex: 0 0 auto;
126
+ box-sizing: border-box;
127
+ border: 2px solid #b9c1cc;
128
+ border-radius: 999px;
129
+ background: #ffffff;
130
+ }
131
+
132
+ .m-item .m-item-presence--online {
133
+ border-color: #31c86a;
134
+ background: #31c86a;
135
+ }
136
+
137
+ .m-item .m-item-avatar-frame {
138
+ width: var(--m-item-avatar-size, 48px);
139
+ height: var(--m-item-avatar-size, 48px);
140
+ flex: 0 0 var(--m-item-avatar-size, 48px);
141
+ }
142
+
143
+ .m-item .m-item-avatar-portrait,
144
+ .m-item .m-item-avatar-face {
145
+ position: relative;
146
+ display: inline-flex;
147
+ overflow: hidden;
148
+ border-radius: 999px;
149
+ background:
150
+ radial-gradient(circle at 50% 38%, #f7cbb4 0 20%, transparent 21%),
151
+ radial-gradient(
152
+ circle at 50% 29%,
153
+ var(--m-item-avatar-hair, #26313f) 0 25%,
154
+ transparent 26%
155
+ ),
156
+ linear-gradient(
157
+ 180deg,
158
+ var(--m-item-avatar-sky, #d7f4f7) 0 58%,
159
+ var(--m-item-avatar-shirt, #4bb7c8) 59% 100%
160
+ );
161
+ box-shadow: inset 0 0 0 1px rgb(15 23 42 / 6%);
162
+ }
163
+
164
+ .m-item .m-item-avatar-portrait::before,
165
+ .m-item .m-item-avatar-face::before {
166
+ position: absolute;
167
+ left: 50%;
168
+ top: 52%;
169
+ width: 40%;
170
+ height: 18%;
171
+ border-radius: 999px 999px 0 0;
172
+ background: var(--m-item-avatar-shirt, #4bb7c8);
173
+ transform: translateX(-50%);
174
+ content: "";
175
+ }
176
+
177
+ .m-item .m-item-avatar-portrait::after,
178
+ .m-item .m-item-avatar-face::after {
179
+ position: absolute;
180
+ left: 50%;
181
+ top: 36%;
182
+ width: 5px;
183
+ height: 5px;
184
+ border-radius: 50%;
185
+ background: #1f2937;
186
+ box-shadow: 10px 0 0 #1f2937;
187
+ transform: translateX(-8px);
188
+ content: "";
189
+ }
190
+
191
+ .m-item .m-item-avatar-portrait {
192
+ width: var(--m-item-avatar-size, 48px);
193
+ height: var(--m-item-avatar-size, 48px);
194
+ }
195
+
196
+ .m-item .m-item-avatar-group {
197
+ display: grid;
198
+ grid-template-columns: repeat(2, 23px);
199
+ grid-template-rows: repeat(2, 23px);
200
+ gap: 2px;
201
+ align-content: center;
202
+ justify-content: center;
203
+ overflow: visible;
204
+ }
205
+
206
+ .m-item .m-item-avatar-face {
207
+ width: 23px;
208
+ height: 23px;
209
+ }
210
+
211
+ .m-item .m-item-avatar-face::after {
212
+ width: 2px;
213
+ height: 2px;
214
+ box-shadow: 5px 0 0 #1f2937;
215
+ transform: translateX(-4px);
216
+ }
217
+
218
+ .m-item .m-item-avatar-icon {
219
+ --m-item-avatar-icon-size: 35px;
220
+
221
+ width: var(--m-item-avatar-icon-size);
222
+ height: var(--m-item-avatar-icon-size);
223
+ flex: 0 0 var(--m-item-avatar-icon-size);
224
+ display: inline-grid;
225
+ place-items: center;
226
+ border-radius: var(--m-item-avatar-icon-radius, 999px);
227
+ background: var(--m-item-avatar-icon-bg, #34d399);
228
+ color: #ffffff;
229
+ box-shadow: inset 0 0 0 1px rgb(255 255 255 / 45%);
230
+ }
231
+
232
+ .m-item-avatar-icon--circle {
233
+ --m-item-avatar-icon-radius: 999px;
234
+ }
235
+
236
+ .m-item-avatar-icon--rounded-square {
237
+ --m-item-avatar-icon-radius: 8px;
238
+ }
239
+
240
+ .m-item-avatar-icon--square {
241
+ --m-item-avatar-icon-radius: 4px;
242
+ }
243
+
244
+ .m-item-avatar-tone--amber,
245
+ .m-item-avatar-tone--orange,
246
+ .m-item-avatar-tone--warm {
247
+ --m-item-avatar-hair: #3b2415;
248
+ --m-item-avatar-sky: #ffedd5;
249
+ --m-item-avatar-shirt: #f97316;
250
+ }
251
+
252
+ .m-item-avatar-tone--blue,
253
+ .m-item-avatar-tone--sky {
254
+ --m-item-avatar-hair: #1e3a8a;
255
+ --m-item-avatar-sky: #dbeafe;
256
+ --m-item-avatar-shirt: #3b82f6;
257
+ }
258
+
259
+ .m-item-avatar-tone--cyan,
260
+ .m-item-avatar-tone--mint {
261
+ --m-item-avatar-hair: #1e293b;
262
+ --m-item-avatar-sky: #d9f8fb;
263
+ --m-item-avatar-shirt: #33b6cd;
264
+ }
265
+
266
+ .m-item-avatar-tone--green {
267
+ --m-item-avatar-hair: #1f2937;
268
+ --m-item-avatar-sky: #dcfce7;
269
+ --m-item-avatar-shirt: #22c55e;
270
+ }
271
+
272
+ .m-item-avatar-tone--purple {
273
+ --m-item-avatar-hair: #111827;
274
+ --m-item-avatar-sky: #f5d0fe;
275
+ --m-item-avatar-shirt: #8b5cf6;
276
+ }
277
+
278
+ .m-item-avatar-tone--rose {
279
+ --m-item-avatar-hair: #26202a;
280
+ --m-item-avatar-sky: #fde2e4;
281
+ --m-item-avatar-shirt: #60c7be;
282
+ }
283
+
284
+ .m-item-avatar-tone--slate {
285
+ --m-item-avatar-hair: #111827;
286
+ --m-item-avatar-sky: #e5e7eb;
287
+ --m-item-avatar-shirt: #64748b;
288
+ }
289
+
290
+ .m-item-avatar-icon--amber,
291
+ .m-item-avatar-icon--orange,
292
+ .m-item-avatar-icon--warm {
293
+ --m-item-avatar-icon-bg: linear-gradient(135deg, #f97316, #fb923c);
294
+ }
295
+
296
+ .m-item-avatar-icon--blue,
297
+ .m-item-avatar-icon--sky {
298
+ --m-item-avatar-icon-bg: linear-gradient(135deg, #3b82f6, #60a5fa);
299
+ }
300
+
301
+ .m-item-avatar-icon--cyan,
302
+ .m-item-avatar-icon--mint {
303
+ --m-item-avatar-icon-bg: linear-gradient(135deg, #06b6d4, #14b8a6);
304
+ }
305
+
306
+ .m-item-avatar-icon--green {
307
+ --m-item-avatar-icon-bg: linear-gradient(135deg, #22c55e, #34d399);
308
+ }
309
+
310
+ .m-item-avatar-icon--purple {
311
+ --m-item-avatar-icon-bg: linear-gradient(135deg, #8b5cf6, #a78bfa);
312
+ }
313
+
314
+ .m-item-avatar-icon--rose {
315
+ --m-item-avatar-icon-bg: linear-gradient(135deg, #f43f5e, #fb7185);
316
+ }
317
+
318
+ .m-item-avatar-icon--slate {
319
+ --m-item-avatar-icon-bg: linear-gradient(135deg, #475569, #94a3b8);
320
+ }
321
+
322
+ .m-item .m-item-indicator {
323
+ min-width: 20px;
324
+ display: inline-flex;
325
+ align-items: center;
326
+ justify-content: flex-end;
327
+ }
328
+
329
+ .m-item .m-item-badge {
330
+ min-width: 18px;
331
+ height: 18px;
332
+ padding: 0 5px;
333
+ display: inline-flex;
334
+ align-items: center;
335
+ justify-content: center;
336
+ box-sizing: border-box;
337
+ border-radius: 9px;
338
+ background: #f52936;
339
+ color: #ffffff;
340
+ font-size: 11px;
341
+ font-weight: 700;
342
+ line-height: 18px;
343
+ }
344
+
345
+ .m-item .m-item-unread-dot {
346
+ width: 9px;
347
+ height: 9px;
348
+ border-radius: 999px;
349
+ background: #f52936;
350
+ box-shadow: 0 0 0 1px rgb(245 41 54 / 12%);
351
+ }
352
+
353
+ .m-item .m-item-marker {
354
+ color: #aeb6c2;
355
+ }