ngx-strata 0.5.0 → 0.5.2

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 (29) hide show
  1. package/assets/styles/components/_breadcrumb.scss +4 -0
  2. package/assets/styles/components/_number-stepper.scss +260 -0
  3. package/assets/styles/components/_skeleton.scss +115 -0
  4. package/assets/styles/components/action-menu.scss +20 -2
  5. package/assets/styles/components/input-field.scss +19 -2
  6. package/assets/styles/components/item.scss +15 -2
  7. package/assets/styles/components/modal.scss +237 -22
  8. package/assets/styles/components/notification.scss +287 -41
  9. package/assets/styles/components/segmented-control.scss +20 -0
  10. package/assets/styles/components/select.scss +18 -0
  11. package/assets/styles/components/sidemenu.scss +8 -1
  12. package/assets/styles/components/tabs.scss +7 -0
  13. package/assets/styles/public-api.scss +2 -0
  14. package/assets/styles/semantics/color-semantic.scss +8 -0
  15. package/dist/strata/strata.css +1 -1
  16. package/fesm2022/ngx-strata.mjs +695 -51
  17. package/fesm2022/ngx-strata.mjs.map +1 -1
  18. package/package.json +1 -1
  19. package/skills/ngx-strata/SKILL.md +5 -1
  20. package/skills/ngx-strata/components/badge.md +24 -0
  21. package/skills/ngx-strata/components/breadcrumb.md +4 -1
  22. package/skills/ngx-strata/components/item.md +21 -9
  23. package/skills/ngx-strata/components/modal.md +36 -5
  24. package/skills/ngx-strata/components/notification.md +51 -5
  25. package/skills/ngx-strata/components/number-stepper.md +84 -0
  26. package/skills/ngx-strata/components/segmented-control.md +3 -0
  27. package/skills/ngx-strata/components/skeleton.md +59 -0
  28. package/skills/ngx-strata/components/tabs.md +6 -1
  29. package/types/ngx-strata.d.ts +200 -17
@@ -49,6 +49,16 @@ st-modal-header {
49
49
  }
50
50
  }
51
51
 
52
+ st-modal-body {
53
+ --st-modal-body-padding: var(--st-size-sm);
54
+
55
+ display: block;
56
+ flex: 1;
57
+ min-height: 0;
58
+ overflow-y: auto;
59
+ padding: var(--st-modal-body-padding);
60
+ }
61
+
52
62
  st-modal-footer {
53
63
  --st-modal-footer-bg: var(--st-modal-bg-color, var(--st-color-bg-default));
54
64
  --st-modal-footer-border-color: var(--st-border);
@@ -64,12 +74,6 @@ st-modal-footer {
64
74
  padding: var(--st-modal-footer-padding);
65
75
  border-top: 1px solid var(--st-modal-footer-border-color);
66
76
  background-color: var(--st-modal-footer-bg);
67
- position: sticky;
68
- bottom: 0;
69
- z-index: 5;
70
- margin-top: var(--st-size-sm);
71
- margin-left: calc(-1 * var(--st-size-sm));
72
- margin-right: calc(-1 * var(--st-size-sm));
73
77
  border-bottom-left-radius: var(--st-modal-border-radius);
74
78
  border-bottom-right-radius: var(--st-modal-border-radius);
75
79
 
@@ -127,19 +131,56 @@ st-modal {
127
131
  width: var(--st-modal-width);
128
132
  max-width: min(var(--st-modal-max-width), calc(100vw - (var(--st-modal-viewport-margin) * 2)));
129
133
  max-height: calc(100vh - (var(--st-modal-viewport-margin) * 2));
134
+ overflow: hidden;
130
135
 
131
136
  st-modal-header {
132
137
  flex-shrink: 0;
133
138
  }
134
139
 
135
140
  .modal-content {
136
- padding: var(--st-size-sm);
137
- overflow-y: auto;
141
+ display: flex;
142
+ flex-direction: column;
138
143
  flex: 1;
139
144
  min-height: 0;
145
+ overflow: hidden;
146
+
147
+ > * {
148
+ display: flex;
149
+ flex-direction: column;
150
+ flex: 1;
151
+ min-height: 0;
152
+ overflow: hidden;
153
+ }
154
+
155
+ &:not(:has(st-modal-body)):not(:has(st-modal-footer)) {
156
+ padding: var(--st-size-sm);
157
+ overflow-y: auto;
158
+
159
+ > * {
160
+ display: block;
161
+ flex: initial;
162
+ min-height: initial;
163
+ overflow: visible;
164
+ }
165
+ }
166
+
167
+ &:has(st-modal-footer):not(:has(st-modal-body)) {
168
+ > * {
169
+ display: flex;
170
+ flex-direction: column;
171
+ flex: 1;
172
+ min-height: 0;
173
+ overflow-y: auto;
174
+ padding: var(--st-size-sm) var(--st-size-sm) 0;
140
175
 
141
- &:has(st-modal-footer) {
142
- padding-bottom: 0;
176
+ st-modal-footer {
177
+ position: sticky;
178
+ bottom: 0;
179
+ margin-top: auto;
180
+ margin-left: calc(-1 * var(--st-size-sm));
181
+ margin-right: calc(-1 * var(--st-size-sm));
182
+ }
183
+ }
143
184
  }
144
185
  }
145
186
 
@@ -167,12 +208,122 @@ st-modal {
167
208
  --st-modal-bg-color: var(--st-color-bg-raised);
168
209
  }
169
210
 
211
+ &.st-modal-placement-center {
212
+ justify-self: center;
213
+ align-self: center;
214
+ animation: st-modal-fade-in 0.2s cubic-bezier(0.16, 1, 0.3, 1);
215
+ }
216
+
217
+ &.st-modal-placement-right {
218
+ @media (min-width: 768px) {
219
+ justify-self: end;
220
+ align-self: stretch;
221
+ height: 100% !important;
222
+ height: 100dvh !important;
223
+ max-height: 100% !important;
224
+ max-height: 100dvh !important;
225
+ border-radius: 0 !important;
226
+ border-top: none !important;
227
+ border-right: none !important;
228
+ border-bottom: none !important;
229
+ border-left: 1px solid var(--st-border-faded) !important;
230
+ box-shadow: var(--st-shadow-4);
231
+ animation: st-modal-slide-in-right 0.25s cubic-bezier(0.16, 1, 0.3, 1);
232
+
233
+ &.st-modal-size-xs {
234
+ --st-modal-max-width: 320px;
235
+ --st-modal-width: 320px;
236
+ }
237
+
238
+ &.st-modal-size-sm {
239
+ --st-modal-max-width: 400px;
240
+ --st-modal-width: 400px;
241
+ }
242
+
243
+ &.st-modal-size-md {
244
+ --st-modal-max-width: 560px;
245
+ --st-modal-width: 560px;
246
+ }
247
+
248
+ &.st-modal-size-lg {
249
+ --st-modal-max-width: 800px;
250
+ --st-modal-width: 800px;
251
+ }
252
+
253
+ st-modal-header {
254
+ border-top-left-radius: 0;
255
+ border-top-right-radius: 0;
256
+ }
257
+
258
+ st-modal-footer {
259
+ border-bottom-left-radius: 0;
260
+ border-bottom-right-radius: 0;
261
+ }
262
+ }
263
+ }
264
+
265
+ &.st-modal-placement-left {
266
+ @media (min-width: 768px) {
267
+ justify-self: start;
268
+ align-self: stretch;
269
+ height: 100% !important;
270
+ height: 100dvh !important;
271
+ max-height: 100% !important;
272
+ max-height: 100dvh !important;
273
+ border-radius: 0 !important;
274
+ border-top: none !important;
275
+ border-left: none !important;
276
+ border-bottom: none !important;
277
+ border-right: 1px solid var(--st-border-faded) !important;
278
+ box-shadow: var(--st-shadow-4);
279
+ animation: st-modal-slide-in-left 0.25s cubic-bezier(0.16, 1, 0.3, 1);
280
+
281
+ &.st-modal-size-xs {
282
+ --st-modal-max-width: 320px;
283
+ --st-modal-width: 320px;
284
+ }
285
+
286
+ &.st-modal-size-sm {
287
+ --st-modal-max-width: 400px;
288
+ --st-modal-width: 400px;
289
+ }
290
+
291
+ &.st-modal-size-md {
292
+ --st-modal-max-width: 560px;
293
+ --st-modal-width: 560px;
294
+ }
295
+
296
+ &.st-modal-size-lg {
297
+ --st-modal-max-width: 800px;
298
+ --st-modal-width: 800px;
299
+ }
300
+
301
+ st-modal-header {
302
+ border-top-left-radius: 0;
303
+ border-top-right-radius: 0;
304
+ }
305
+
306
+ st-modal-footer {
307
+ border-bottom-left-radius: 0;
308
+ border-bottom-right-radius: 0;
309
+ }
310
+ }
311
+ }
312
+
313
+ &.st-modal-placement-bottom {
314
+ @media (min-width: 768px) {
315
+ justify-self: center;
316
+ align-self: center;
317
+ animation: st-modal-fade-in 0.2s cubic-bezier(0.16, 1, 0.3, 1);
318
+ }
319
+ }
320
+
170
321
  &.hidden-under-other-modal {
171
322
  filter: var(--st-modal-covered-modal-filter);
172
323
  }
173
324
 
174
325
  @media (max-width: 767.98px) {
175
- &:not(.st-modal-size-xs):not(.st-modal-size-sm) {
326
+ &:not(.st-modal-size-xs):not(.st-modal-size-sm):not(.st-modal-placement-bottom) {
176
327
  --st-modal-viewport-margin: 0px;
177
328
  --st-modal-border-radius: 0px;
178
329
  --st-modal-max-width: 100%;
@@ -194,22 +345,20 @@ st-modal {
194
345
  box-shadow: none !important;
195
346
  margin: 0 !important;
196
347
 
348
+ &.st-modal-placement-right {
349
+ animation: st-modal-slide-in-right 0.25s cubic-bezier(0.16, 1, 0.3, 1);
350
+ }
351
+
352
+ &.st-modal-placement-left {
353
+ animation: st-modal-slide-in-left 0.25s cubic-bezier(0.16, 1, 0.3, 1);
354
+ }
355
+
197
356
  .modal-content {
198
357
  display: flex;
199
358
  flex-direction: column;
200
359
  flex: 1;
201
360
  min-height: 0;
202
361
 
203
- &:has(st-modal-footer) {
204
- &,
205
- :has(st-modal-footer) {
206
- display: flex;
207
- flex-direction: column;
208
- flex: 1;
209
- min-height: 0;
210
- }
211
- }
212
-
213
362
  > * {
214
363
  display: flex;
215
364
  flex-direction: column;
@@ -218,12 +367,40 @@ st-modal {
218
367
  }
219
368
 
220
369
  st-modal-footer {
221
- margin-top: auto !important;
370
+ margin-top: auto;
222
371
  border-bottom-left-radius: 0;
223
372
  border-bottom-right-radius: 0;
224
373
  }
225
374
  }
226
375
  }
376
+
377
+ &.st-modal-placement-bottom {
378
+ position: fixed;
379
+ left: 0;
380
+ right: 0;
381
+ bottom: 0;
382
+ top: auto;
383
+ width: 100% !important;
384
+ max-width: 100% !important;
385
+ max-height: calc(100dvh - var(--st-size-xl)) !important;
386
+ border-radius: var(--st-border-radius-xl) var(--st-border-radius-xl) 0 0 !important;
387
+ border-left: none !important;
388
+ border-right: none !important;
389
+ border-bottom: none !important;
390
+ border-top: 1px solid var(--st-border-faded) !important;
391
+ box-shadow: var(--st-shadow-4) !important;
392
+ animation: st-modal-slide-in-bottom 0.25s cubic-bezier(0.16, 1, 0.3, 1);
393
+
394
+ st-modal-header {
395
+ border-top-left-radius: var(--st-border-radius-xl);
396
+ border-top-right-radius: var(--st-border-radius-xl);
397
+ }
398
+
399
+ st-modal-footer {
400
+ border-bottom-left-radius: 0;
401
+ border-bottom-right-radius: 0;
402
+ }
403
+ }
227
404
  }
228
405
  }
229
406
 
@@ -271,4 +448,42 @@ st-modal-container {
271
448
  grid-column: 1;
272
449
  grid-row: 1;
273
450
  }
451
+ }
452
+
453
+ @keyframes st-modal-fade-in {
454
+ from {
455
+ opacity: 0;
456
+ transform: scale(0.97);
457
+ }
458
+ to {
459
+ opacity: 1;
460
+ transform: scale(1);
461
+ }
462
+ }
463
+
464
+ @keyframes st-modal-slide-in-right {
465
+ from {
466
+ transform: translateX(100%);
467
+ }
468
+ to {
469
+ transform: translateX(0);
470
+ }
471
+ }
472
+
473
+ @keyframes st-modal-slide-in-left {
474
+ from {
475
+ transform: translateX(-100%);
476
+ }
477
+ to {
478
+ transform: translateX(0);
479
+ }
480
+ }
481
+
482
+ @keyframes st-modal-slide-in-bottom {
483
+ from {
484
+ transform: translateY(100%);
485
+ }
486
+ to {
487
+ transform: translateY(0);
488
+ }
274
489
  }