@sumaris-net/ngx-components 2.7.3-rc3 → 2.7.3-rc31

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/esm2022/src/app/admin/users/users.mjs +2 -2
  2. package/esm2022/src/app/core/account/account.page.mjs +1 -1
  3. package/esm2022/src/app/core/form/properties/properties.form.mjs +1 -1
  4. package/esm2022/src/app/core/form/properties/properties.table.mjs +1 -1
  5. package/esm2022/src/app/core/register/register.form.mjs +1 -1
  6. package/esm2022/src/app/core/services/config/core.config.mjs +7 -1
  7. package/esm2022/src/app/core/settings/settings.page.mjs +1 -1
  8. package/esm2022/src/app/core/table/testing/table-validator.service.mjs +4 -1
  9. package/esm2022/src/app/core/table/testing/table.testing.mjs +29 -20
  10. package/esm2022/src/app/shared/form/field.component.mjs +10 -7
  11. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +9 -6
  12. package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +3 -3
  13. package/esm2022/src/app/shared/material/chips/material.chips.mjs +4 -4
  14. package/esm2022/src/app/shared/material/datetime/material.date.mjs +10 -3
  15. package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +29 -3
  16. package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +3 -6
  17. package/esm2022/src/app/shared/material/testing/common.test.mjs +3 -3
  18. package/fesm2022/sumaris-net.ngx-components.mjs +131 -81
  19. package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
  20. package/package.json +1 -1
  21. package/src/app/core/services/config/core.config.d.ts +1 -0
  22. package/src/app/shared/form/field.component.d.ts +5 -3
  23. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +1 -0
  24. package/src/app/shared/material/chips/material.chips.d.ts +1 -1
  25. package/src/app/shared/material/datetime/material.date.d.ts +1 -0
  26. package/src/app/shared/material/datetime/material.datetime.d.ts +1 -0
  27. package/src/app/shared/material/latlong/material.latlong.d.ts +0 -1
  28. package/src/assets/manifest.json +1 -1
  29. package/src/theme/_material.scss +17 -1
  30. package/src/theme/_mixins.scss +6 -4
  31. package/src/theme/_ngx-components.globals.scss +7 -4
  32. package/src/theme/_ngx-components.scss +93 -188
  33. package/src/theme/_ngx-components.table.scss +62 -112
  34. package/src/theme/_ngx-components.tabs.scss +0 -325
@@ -19,14 +19,14 @@
19
19
 
20
20
  --mdc-checkbox-state-layer-size: 20px;
21
21
  --mdc-typography-body1-font-size: 14px;
22
- --mat-table-row-item-label-text-tracking: 0.0178571429em;
23
- --mat-form-field-container-text-tracking: 0.0178571429em;
24
- --mdc-typography-body1-letter-spacing: 0.0178571429em;
22
+ --mat-table-row-item-label-text-tracking: normal;
23
+ --mat-form-field-container-text-tracking: normal;
24
+ --mdc-typography-body1-letter-spacing: normal;
25
25
  --mat-table-row-item-label-text-size: 14px;
26
26
 
27
- --mdc-filled-text-field-container-color: #{$app-form-field-background-color};
28
- --mdc-filled-text-field-disabled-container-color: #{$app-form-field-background-color};
29
- --mat-form-field-state-layer-color: #{$app-form-field-focus-background-color};
27
+ --mdc-filled-text-field-container-color: transparent;
28
+ --mdc-filled-text-field-disabled-container-color: transparent;
29
+ --mat-form-field-state-layer-color: transparent;
30
30
 
31
31
  .mat-mdc-header-cell {
32
32
  color: var(--ion-color-primary);
@@ -107,7 +107,7 @@
107
107
  }
108
108
 
109
109
  /* Add a start padding to content (but not the cell itself) (e.g. tables with odd/event style - like BatchGroupsTable) */
110
- &.mat-cell-content-start-padding {
110
+ &.mat-mdc-cell-content-start-padding {
111
111
 
112
112
  // Reset start padding here (only apply cell's content)
113
113
  padding-inline-start: 0;
@@ -156,6 +156,7 @@
156
156
  }
157
157
  }
158
158
 
159
+ .mat-mdc-cell-date,
159
160
  .mat-cell-date {
160
161
  min-width: 128px;
161
162
  max-width: 128px;
@@ -166,6 +167,7 @@
166
167
  }
167
168
  }
168
169
 
170
+ .mat-mdc-cell-date-time,
169
171
  .mat-cell-date-time {
170
172
  min-width: 145px;
171
173
  max-width: 180px;
@@ -190,9 +192,11 @@
190
192
  }
191
193
 
192
194
  .mat-mdc-cell.computed mat-form-field,
195
+ .mat-mdc-cell-computed,
193
196
  .mat-cell-computed,
194
197
  .mat-mdc-cell ion-text.computed,
195
198
  .mat-mdc-cell.calculated mat-form-field,
199
+ .mat-mdc-cell-calculated,
196
200
  .mat-cell-calculated {
197
201
  color: var(--ion-color-primary-tint);
198
202
  font-style: italic;
@@ -202,6 +206,7 @@
202
206
  .mat-mdc-row {
203
207
 
204
208
  // Disabled row
209
+ &.mat-mdc-row-disabled *,
205
210
  &.mat-row-disabled * {
206
211
  color: inherit;
207
212
  cursor: pointer;
@@ -209,25 +214,28 @@
209
214
  pointer-events: unset !important;
210
215
  }
211
216
 
217
+ &.mat-mdc-row-disabled:hover,
212
218
  &.mat-row-disabled:hover {
213
219
  background-color: var(--ion-color-light);
214
220
 
215
- .mat-cell {
221
+ .mat-mdc-cell {
216
222
  color: var(--ion-color-light-contrast);
217
223
  }
218
224
  }
219
225
 
226
+ &.mat-mdc-row-selected,
220
227
  &.mat-row-selected {
221
228
  background-color: var(--ion-color-secondary100);
222
229
 
223
- &:not(.mat-row-error):hover {
230
+ &:not(.mat-mdc-row-error):not(.mat-row-error):hover {
224
231
  background-color: var(--ion-color-secondary100);
225
232
  }
226
233
 
227
- .mat-cell {
234
+ .mat-mdc-cell {
228
235
  color: var(--ion-color-secondary100-contrast);
229
236
  }
230
237
 
238
+ &.mat-mdc-row-disabled:hover,
231
239
  &.mat-row-disabled:hover {
232
240
  background-color: var(--ion-color-secondary100-shade) !important;
233
241
  }
@@ -235,9 +243,8 @@
235
243
  }
236
244
 
237
245
  // Dirty row
246
+ &.mat-mdc-row-dirty,
238
247
  &.mat-row-dirty {
239
- //border-left: 3px solid var(--ion-color-primary-tint);
240
-
241
248
  // Resize the dirty icon (in the 'actions' column)
242
249
  .mat-column-actions mat-icon.dirty-icon,
243
250
  .mat-column-actions ion-icon.dirty-icon {
@@ -246,10 +253,12 @@
246
253
  }
247
254
 
248
255
  // Error row
256
+ &.mat-mdc-row-error,
249
257
  &.mat-row-error {
250
258
  //border-left: 3px solid var(--ion-color-danger-tint) !important;
251
259
  background-color: var(--ion-color-warning-tint);
252
260
 
261
+ &.mat-mdc-row-disabled:hover,
253
262
  &.mat-row-disabled:hover {
254
263
  background-color: var(--ion-color-warning-shade) !important;
255
264
  }
@@ -267,30 +276,29 @@
267
276
  }
268
277
  }
269
278
 
270
- //.mdc-line-ripple--deactivating {
271
- // display: none;
272
- //}
273
-
274
- mat-mdc-form-field,
275
279
  mat-autocomplete-field,
276
- app-form-field,
280
+ app-form-field {
281
+ width: 100%;
282
+ }
283
+
277
284
  .mat-mdc-form-field {
278
285
  width: 100%;
286
+
279
287
  --mat-form-field-container-text-size: 14px;
280
288
  --mdc-filled-text-field-label-text-size: var(--mat-form-field-container-text-size);
289
+ --mat-select-trigger-text-size: var(--mat-form-field-container-text-size);
281
290
  --mat-mdc-form-field-height: calc(var(--mat-row-height) - 2px);
282
- // TODO
283
- // use -- active- boder : 0;
291
+ --mdc-outlined-text-field-outline-width: 0;
284
292
  height: var(--mat-mdc-form-field-height);
285
- }
286
-
287
- .mat-mdc-form-field {
288
- padding-top: 1px;
289
293
 
290
294
  .mat-mdc-form-field-label {
291
295
  width: 100%;
292
296
  }
293
297
 
298
+ &.mat-form-field-appearance-fill {
299
+ padding-top: 1px; // suppress a redundant line in table
300
+ }
301
+
294
302
  .mat-mdc-text-field-wrapper {
295
303
  max-height: var(--mat-mdc-form-field-height);
296
304
  }
@@ -381,7 +389,8 @@
381
389
  }
382
390
  }
383
391
 
384
- .mat-mdc-form-field-subscript-wrapper {
392
+ .mat-mdc-form-field-subscript-wrapper,
393
+ .mat-mdc-form-field-subscript-wrapper.mat-mdc-form-field-bottom-align {
385
394
  margin-top: -1.5rem;
386
395
  text-align: right;
387
396
  pointer-events: none;
@@ -400,8 +409,6 @@
400
409
  }
401
410
 
402
411
  mat-error {
403
- //font-size: ;
404
- //--mdc-typography-caption-font-size: 10px;
405
412
  font-size: 10px;
406
413
  }
407
414
 
@@ -426,7 +433,17 @@
426
433
  padding-top: 0.4em;
427
434
  }
428
435
 
429
- .mat-cell > .ion-text-nowrap {
436
+ mat-date-time-field,
437
+ mat-latlong-field {
438
+ .mat-mdc-form-field-subscript-wrapper {
439
+ margin-top: -1.5rem;
440
+ text-align: right;
441
+ pointer-events: none;
442
+ }
443
+ }
444
+
445
+
446
+ .mat-mdc-cell > .ion-text-nowrap {
430
447
  width: 100%;
431
448
  overflow: hidden;
432
449
  text-overflow: ellipsis;
@@ -434,17 +451,17 @@
434
451
  }
435
452
 
436
453
  /* Show when hover row */
437
- .mat-cell .visible-hover-row {
454
+ .mat-mdc-cell .visible-hover-row {
438
455
  visibility: hidden;
439
456
  }
440
457
 
441
458
  &:hover {
442
- .mat-cell .visible-hover-row {
459
+ .mat-mdc-cell .visible-hover-row {
443
460
  visibility: visible;
444
461
  }
445
462
  }
446
463
 
447
- .mat-cell .avatar {
464
+ .mat-mdc-cell .avatar {
448
465
  color: #d9d9d9;
449
466
  background-color: #f8f8f8;
450
467
  border: solid 1px #d9d9d9;
@@ -458,103 +475,36 @@
458
475
 
459
476
  /* Special case to have small row */
460
477
  &.compact .mat-mdc-row,
478
+ .mat-mdc-row.mat-mdc-row-small,
461
479
  .mat-mdc-row.mat-row-small {
462
480
  min-height: inherit;
463
481
  --mat-row-height: 33px;
464
482
  --mat-row-max-height: 33px;
465
483
  }
466
484
 
467
- .mat-mdc-row.mat-row-small .mat-cell,
468
- .mat-mdc-row .mat-cell.mat-row-small {
485
+ .mat-mdc-row.mat-mdc-row-small .mat-mdc-cell,
486
+ .mat-mdc-row .mat-mdc-cell.mat-mdc-row-small,
487
+ .mat-mdc-row.mat-row-small .mat-mdc-cell,
488
+ .mat-mdc-row .mat-mdc-cell.mat-row-small {
469
489
  line-height: 15px;
470
490
  @include font-size(12px);
471
491
  }
472
492
 
473
- .mat-row-height-auto { // todo useful ?
493
+ .mat-mdc-row-height-auto,
494
+ .mat-row-height-auto {
474
495
  max-height: unset !important;
475
496
  }
476
497
 
477
- // Make smaller row
478
- // NOTE : useless on angular 15
479
- //&.compact {
480
- // --mat-row-height: 33px;
481
- //
482
- // // TODO test it ! then remove is not need
483
- // .mat-mdc-row {
484
- //
485
- // ion-label {
486
- // display: inline-block;
487
- // margin-top: 5px;
488
- // width: 100%;
489
- // overflow: hidden;
490
- // white-space: nowrap;
491
- // text-overflow: ellipsis;
492
- // }
493
- //
494
- // .mat-badge-content {
495
- // top: -2px;
496
- // }
497
- //
498
- // .mat-icon-button {
499
- // height: 32px;
500
- // width: 32px;
501
- // line-height: 32px;
502
- // }
503
- //
504
- // .mat-mdc-form-field-underline {
505
- // bottom: 6px !important;
506
- // }
507
- //
508
- // .mat-mdc-form-field {
509
- //
510
- // .mat-mdc-form-field-wrapper {
511
- // max-height: 32px;
512
- //
513
- // .mat-mdc-form-field-flex {
514
- //
515
- // .mat-mdc-form-field-infix {
516
- // max-height: 32px;
517
- // padding-top: 0;
518
- // border-top-width: 10px;
519
- //
520
- // .mat-mdc-form-field-label-wrapper {
521
- //
522
- // .mat-mdc-form-field-label {
523
- // top: 12px;
524
- // }
525
- // }
526
- //
527
- // .mat-checkbox {
528
- // display: block;
529
- // position: absolute;
530
- // top: -2px;
531
- //
532
- // .mat-checkbox-ripple {
533
- // height: 32px;
534
- // width: 32px;
535
- // left: calc(50% - 16px);
536
- // top: calc(50% - 16px);
537
- // }
538
- // }
539
- // }
540
- // }
541
- //
542
- // // make click on mat-error transfer to input
543
- // //.mat-mdc-form-field-subscript-wrapper {
544
- // // pointer-events: none;
545
- // //}
546
- //
547
- // mat-error {
548
- // margin-top: 10px;
549
- // }
550
- // }
551
- // }
552
- // }
553
- //}
498
+ // Restore border on last row
499
+ .mdc-data-table__row:last-child .mat-mdc-cell {
500
+ border-bottom-color: var(--mat-table-row-item-outline-color, rgba(0, 0, 0, 0.12)) !important;
501
+ border-bottom-width: var(--mat-table-row-item-outline-width, 1px) !important;
502
+ border-bottom-style: solid !important;
503
+ }
554
504
  }
555
505
 
556
506
  .mat-mdc-paginator {
557
- --mat-paginator-container-size: #{$app-paginator-height};
507
+ --mat-paginator-container-size: var(--app-paginator-height, #{$app-paginator-height});
558
508
  --mat-paginator-container-background-color: whitesmoke;
559
509
  overflow-y: hidden;
560
510
 
@@ -35,328 +35,3 @@
35
35
  .mat-mdc-tab-group.mat-mdc-tab-disabled-visible .mat-mdc-tab-disabled {
36
36
  display: inherit;
37
37
  }
38
-
39
- // --------------------------------------------------
40
- // Material menu
41
- // --------------------------------------------------
42
-
43
-
44
- .mat-menu-panel {
45
-
46
- // Max width = 400px
47
- &.mat-menu-size-400 {
48
- min-width: unset;
49
- width: 400px;
50
- max-width: calc(90vw);
51
- }
52
- // Max width = 75vw
53
- &.mat-menu-size-75vw {
54
- min-width: unset;
55
- width: calc(75vw);
56
- max-width: calc(90vw);
57
- }
58
-
59
- // No padding
60
- &.ion-no-padding {
61
- .mat-menu-content {
62
- padding: 0 !important;
63
- }
64
- }
65
-
66
- // Small menu item (e.g. for actions on a table row)
67
- &.mat-menu-small-item-height .mat-menu-item,
68
- .mat-menu-item.mat-menu-item-small-height
69
- {
70
- padding: 0 8px;
71
- height: 35px;
72
- line-height: 35px;
73
- }
74
- // Reduce the font size, on label just inside a mat-menu (e.g. see trips.page.html)
75
- .mat-menu-content > ion-label {
76
- @include font-size(12px);
77
- }
78
-
79
- .mat-menu-content ion-item > ion-icon[slot="start"] {
80
- margin-right: 16px;
81
- vertical-align: middle;
82
- }
83
-
84
- // Menu title (e.g. see extraction map)
85
- .mat-menu-item.mat-menu-title {
86
- padding: 0 8px;
87
- height: 27px;
88
- line-height: 27px;
89
- @include font-size(12px);
90
- pointer-events: none;
91
- color: var(--ion-color-medium, rgba(0, 0, 0, 0.38));
92
- }
93
- }
94
-
95
- // --------------------------------------------------
96
- // Alert
97
- // --------------------------------------------------
98
-
99
- ion-alert button.alert-button {
100
- cursor: pointer;
101
- }
102
-
103
- // --------------------------------------------------
104
- // Date and time picker
105
- // --------------------------------------------------
106
-
107
- mat-calendar {
108
- .mat-calendar-header {
109
- background-color: var(--ion-color-secondary) !important;
110
- color: var(--ion-color-secondary-contrast) !important;
111
-
112
- button {
113
- color: var(--ion-color-secondary-contrast) !important;
114
- }
115
- }
116
-
117
- .mat-calendar-body-selected {
118
- background-color: var(--ion-color-accent) !important;
119
- color: var(--ion-color-accent-contrast) !important;
120
- font-weight: bold;
121
- }
122
-
123
- .mat-calendar-arrow {
124
- border-top-color: var(--ion-color-secondary-contrast) !important;
125
- }
126
- }
127
-
128
-
129
- .timepicker-backdrop-overlay {
130
- background-color: rgba(0, 0, 0, 0.32);
131
- z-index: 1000;
132
- opacity: 1;
133
- -webkit-tap-highlight-color: transparent;
134
- transition: opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);
135
- }
136
-
137
- ngx-material-timepicker-content {
138
- --clock-hand-color: var(--ion-color-accent) !important;
139
- --clock-face-time-active-color: var(--ion-color-accent-contrast) !important;
140
- // TODO review !
141
- //@extend .mat-dialog-container !optional;
142
-
143
- .timepicker {
144
- box-shadow: unset !important;
145
- border-radius: 4px;
146
-
147
- header {
148
- --dial-background-color: var(--ion-color-secondary) !important;
149
- color: var(--ion-color-secondary-contrast) !important;
150
- }
151
- }
152
-
153
- ngx-material-timepicker-dial-control {
154
- outline-color: var(--ion-color-accent) !important;
155
- input {
156
- outline-color: inherit !important;
157
- }
158
- }
159
- }
160
-
161
- .mat-mdc-form-field-type-mat-chip-grid {
162
- .mat-mdc-form-field-infix {
163
- padding-bottom: 5px !important;
164
- --mdc-chip-container-height: 24px !important;
165
- }
166
- }
167
-
168
-
169
- // --------------------------------------------------
170
- // Pages
171
- // --------------------------------------------------
172
- ion-item {
173
- ion-label.error {
174
- line-height: 16px;
175
- line-break: normal;
176
- overflow: visible;
177
- white-space: normal;
178
- }
179
- }
180
-
181
- // --------------------------------------------------
182
- // Modal
183
- // --------------------------------------------------
184
-
185
- ion-modal.stack-modal {
186
- --box-shadow: 0 28px 48px rgba(0, 0, 0, 0.4);
187
- --backdrop-opacity: var(--ion-backdrop-opacity, 0.32);
188
- }
189
-
190
- ion-modal.modal-large{
191
- --min-height: calc(100% - 50px) !important;
192
- --min-width: calc(100% - 100px) !important;
193
- }
194
- ion-modal.modal-fullscreen {
195
- --min-height: calc(100%) !important;
196
- --min-width: calc(100%) !important;
197
- }
198
-
199
-
200
- // --------------------------------------------------
201
- // Popover
202
- // --------------------------------------------------
203
-
204
- .popover-large {
205
- --min-width: calc(min(500px, 80%));
206
- }
207
-
208
- .popover-notifications {
209
- --popover-top: 0;
210
- --max-height: calc(90vh - 40px /* header + footer height */ - var(--popover-top, 0px) - var(--offset-y, 0px));
211
-
212
- ion-item {
213
- --ion-item-background-color-hover: var(--ion-color-light);
214
- &.unread {
215
- --ion-item-background: rgba(var(--ion-color-secondary100-rgb), 0.2);
216
- --ion-item-background-color-hover: rgba(var(--ion-color-secondary100-rgb), 0.3);
217
- }
218
- }
219
- }
220
-
221
- // --------------------------------------------------
222
- // Large button with icon floating on right
223
- // --------------------------------------------------
224
- .flex-margin ion-icon,
225
- .flex-margin span {
226
- margin-left: auto;
227
- }
228
-
229
- // --------------------------------------------------
230
- // Icon tooltip, and title
231
- // --------------------------------------------------
232
- // Fix Button icon name overrides button's own title on mouse over
233
- /*ion-icon[name='chatbox'] {
234
- pointer-events: none !important;
235
- }*/
236
- .mat-cell {
237
- /* smaller size, for the comment icon */
238
- mat-icon.comment {
239
- @include font-size(16pt);
240
- height: 100%;
241
- vertical-align: center;
242
- color: var(--ion-color-tertiary, grey);
243
-
244
- &.disabled {
245
- color: var(--ion-color-medium, grey);
246
- }
247
- }
248
- }
249
-
250
- // --------------------------------------------------
251
- // Icon inside text
252
- // --------------------------------------------------
253
- mat-icon,
254
- ion-icon {
255
- &.text-size {
256
- font-size: 1em;
257
- width: 1em;
258
- height: 1em;
259
- }
260
- }
261
- ion-button[expand="block"],
262
- ion-button[expand="full"],
263
- .mat-button,
264
- .mat-raised-button {
265
- mat-icon,
266
- ion-icon {
267
- &[slot] {
268
- pointer-events: none;
269
- width: 24px;
270
- height: 24px;
271
- }
272
- &[slot='start'],
273
- &[slot='end'] {
274
- margin-left: unset;
275
- margin-right: unset;
276
- margin-top: 0;
277
- margin-bottom: 0;
278
- }
279
- &t[slot='start'] {
280
- margin-inline-start: -0.3em;
281
- margin-inline-end: 0.3em;
282
- }
283
- &[slot='end'] {
284
- margin-inline-start: 0.3em;
285
- margin-inline-end: -0.3em;
286
- }
287
- &.ion-float-start[slot='start'] {
288
- position: absolute;
289
- left: 0;
290
- }
291
- &.ion-float-end[slot='end'] {
292
- position: absolute;
293
- right: 0;
294
- }
295
- }
296
- }
297
-
298
- // --------------------------------------------------
299
- // Icon multiple
300
- // --------------------------------------------------
301
- ion-icon.icon-secondary,
302
- mat-icon.icon-secondary {
303
- position: absolute;
304
- left: 0;
305
- }
306
-
307
- // --------------------------------------------------
308
- // Toast
309
- // --------------------------------------------------
310
- ion-toast {
311
- --background: var(--ion-color-dark);
312
- --color: var(--ion-color-dark-contrast);
313
- --button-color: var(--ion-color-secondary);
314
-
315
- &.secondary {
316
- --background: var(--ion-color-secondary);
317
- --color: var(--ion-color-secondary-contrast);
318
- --button-color: var(--ion-color-tertiary);
319
- }
320
- &.accent {
321
- --background: var(--ion-color-accent);
322
- --color: var(--ion-color-accent-contrast);
323
- --button-color: var(--ion-color-primary);
324
- }
325
- &.danger {
326
- --background: var(--ion-color-danger);
327
- --color: var(--ion-color-danger-contrast);
328
- --button-color: var(--ion-color-primary);
329
- }
330
-
331
- /* -- workaround because toast animation failed */
332
- --toast-max-height: 75px;
333
-
334
- &.toast-stack-offset-1 {
335
- --toast-stack-offset: 1;
336
- }
337
- &.toast-stack-offset-2 {
338
- --toast-stack-offset: 2;
339
- }
340
- &.toast-stack-offset-3 {
341
- --toast-stack-offset: 3;
342
- }
343
- &.toast-stack-offset-4 {
344
- --toast-stack-offset: 4;
345
- }
346
-
347
- &.toast-stacked-top {
348
- --toast-top: calc(var(--toast-stack-offset, 0) * var(--toast-max-height, 0));
349
- transform: translateY(var(--toast-top));
350
- }
351
- &.toast-stacked-bottom {
352
- --toast-bottom: calc(-1 * var(--toast-stack-offset, 0) * var(--toast-max-height, 0)) !important;
353
- transform: translateY(var(--toast-bottom));
354
- }
355
- }
356
-
357
- // --------------------------------------------------
358
- // Refresher
359
- // --------------------------------------------------
360
- ion-refresher.refresher-native {
361
- z-index: 1000;
362
- }