@nexterajs/ui 0.0.1 → 0.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.
- package/README.md +279 -34
- package/fesm2022/nexterajs-ui-charts.mjs +1096 -0
- package/fesm2022/nexterajs-ui-charts.mjs.map +1 -0
- package/fesm2022/nexterajs-ui-core.mjs +835 -11
- package/fesm2022/nexterajs-ui-core.mjs.map +1 -1
- package/fesm2022/nexterajs-ui-display.mjs +1142 -0
- package/fesm2022/nexterajs-ui-display.mjs.map +1 -0
- package/fesm2022/nexterajs-ui-dropdowns.mjs +621 -69
- package/fesm2022/nexterajs-ui-dropdowns.mjs.map +1 -1
- package/fesm2022/nexterajs-ui-file-uploader.mjs +576 -11
- package/fesm2022/nexterajs-ui-file-uploader.mjs.map +1 -1
- package/fesm2022/nexterajs-ui-forms.mjs +2702 -452
- package/fesm2022/nexterajs-ui-forms.mjs.map +1 -1
- package/fesm2022/nexterajs-ui-grid.mjs +2350 -336
- package/fesm2022/nexterajs-ui-grid.mjs.map +1 -1
- package/fesm2022/nexterajs-ui-intl.mjs +117 -15
- package/fesm2022/nexterajs-ui-intl.mjs.map +1 -1
- package/fesm2022/nexterajs-ui-navigation.mjs +1054 -0
- package/fesm2022/nexterajs-ui-navigation.mjs.map +1 -0
- package/fesm2022/nexterajs-ui-notify.mjs +353 -0
- package/fesm2022/nexterajs-ui-notify.mjs.map +1 -0
- package/fesm2022/nexterajs-ui-overlay.mjs +1671 -0
- package/fesm2022/nexterajs-ui-overlay.mjs.map +1 -0
- package/fesm2022/nexterajs-ui-pivot.mjs +191 -136
- package/fesm2022/nexterajs-ui-pivot.mjs.map +1 -1
- package/fesm2022/nexterajs-ui-shell.mjs +542 -0
- package/fesm2022/nexterajs-ui-shell.mjs.map +1 -0
- package/fesm2022/nexterajs-ui-styling.mjs +568 -3
- package/fesm2022/nexterajs-ui-styling.mjs.map +1 -1
- package/fesm2022/nexterajs-ui-tree-view.mjs +150 -18
- package/fesm2022/nexterajs-ui-tree-view.mjs.map +1 -1
- package/fesm2022/nexterajs-ui-validation.mjs +283 -97
- package/fesm2022/nexterajs-ui-validation.mjs.map +1 -1
- package/fesm2022/nexterajs-ui.mjs +6 -0
- package/fesm2022/nexterajs-ui.mjs.map +1 -1
- package/package.json +37 -2
- package/styles/_dropdown.scss +150 -1
- package/styles/_editor.scss +75 -21
- package/styles/_icons.scss +92 -0
- package/styles/_mixins.scss +104 -1
- package/styles/_scrollbar.scss +134 -0
- package/styles/_status.scss +21 -0
- package/styles/_toast.scss +243 -0
- package/styles/_tokens.scss +467 -2
- package/styles/_widget.scss +14 -3
- package/styles/index.scss +10 -4
- package/types/nexterajs-ui-charts.d.ts +446 -0
- package/types/nexterajs-ui-core.d.ts +515 -30
- package/types/nexterajs-ui-display.d.ts +720 -0
- package/types/nexterajs-ui-dropdowns.d.ts +318 -57
- package/types/nexterajs-ui-file-uploader.d.ts +240 -8
- package/types/nexterajs-ui-forms.d.ts +772 -43
- package/types/nexterajs-ui-grid.d.ts +878 -135
- package/types/nexterajs-ui-intl.d.ts +39 -4
- package/types/nexterajs-ui-navigation.d.ts +531 -0
- package/types/nexterajs-ui-notify.d.ts +149 -0
- package/types/nexterajs-ui-overlay.d.ts +703 -0
- package/types/nexterajs-ui-pivot.d.ts +91 -70
- package/types/nexterajs-ui-shell.d.ts +294 -0
- package/types/nexterajs-ui-styling.d.ts +163 -3
- package/types/nexterajs-ui-tree-view.d.ts +56 -4
- package/types/nexterajs-ui-validation.d.ts +110 -22
- package/types/nexterajs-ui.d.ts +6 -0
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
// @nexterajs/ui — [nxeScrollbar] chrome.
|
|
2
|
+
//
|
|
3
|
+
// A value-for-value port of `perfect-scrollbar.css`, which this replaces. Applications style these
|
|
4
|
+
// rails heavily, so every number and easing is copied rather than chosen — the selector names are
|
|
5
|
+
// the only thing that changed, one-for-one:
|
|
6
|
+
//
|
|
7
|
+
// .ps -> .nxe-scrollbar .ps__rail-x -> .nxe-scrollbar__rail-x
|
|
8
|
+
// .ps--active-x -> .nxe-scrollbar--active-x .ps__thumb-x -> .nxe-scrollbar__thumb-x
|
|
9
|
+
// .ps--focus -> .nxe-scrollbar--focus .ps--clicking -> .nxe-scrollbar--clicking
|
|
10
|
+
// .ps--scrolling-x -> .nxe-scrollbar--scrolling-x (and the -y twins of each)
|
|
11
|
+
//
|
|
12
|
+
// Load this where `perfect-scrollbar/css/perfect-scrollbar.css` used to sit in the cascade —
|
|
13
|
+
// BEFORE the application's own rail overrides — or those overrides stop winning.
|
|
14
|
+
|
|
15
|
+
//
|
|
16
|
+
// Container style
|
|
17
|
+
//
|
|
18
|
+
// The original set `overflow: hidden !important` and drove scrolling entirely from JavaScript:
|
|
19
|
+
// wheel, touch, keyboard and momentum were all reimplemented. This keeps `overflow: auto` and
|
|
20
|
+
// merely hides the native bar, so the browser still does the scrolling — which is more faithful
|
|
21
|
+
// on touch and with a trackpad, and is why the directive needs no input handling of its own.
|
|
22
|
+
// Layout is unchanged either way: a hidden native scrollbar occupies no width, exactly as the
|
|
23
|
+
// simulated rails did.
|
|
24
|
+
.nxe-scrollbar {
|
|
25
|
+
overflow: auto;
|
|
26
|
+
overflow-anchor: none;
|
|
27
|
+
touch-action: auto;
|
|
28
|
+
position: relative;
|
|
29
|
+
|
|
30
|
+
scrollbar-width: none;
|
|
31
|
+
-ms-overflow-style: none;
|
|
32
|
+
|
|
33
|
+
&::-webkit-scrollbar {
|
|
34
|
+
width: 0;
|
|
35
|
+
height: 0;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
//
|
|
40
|
+
// Scrollbar rail styles
|
|
41
|
+
//
|
|
42
|
+
.nxe-scrollbar__rail-x {
|
|
43
|
+
display: none;
|
|
44
|
+
opacity: 0;
|
|
45
|
+
transition:
|
|
46
|
+
background-color 0.2s linear,
|
|
47
|
+
opacity 0.2s linear;
|
|
48
|
+
height: 15px;
|
|
49
|
+
// there must be 'bottom' or 'top' for the x rail
|
|
50
|
+
bottom: 0px;
|
|
51
|
+
// please don't change 'position'
|
|
52
|
+
position: absolute;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.nxe-scrollbar__rail-y {
|
|
56
|
+
display: none;
|
|
57
|
+
opacity: 0;
|
|
58
|
+
transition:
|
|
59
|
+
background-color 0.2s linear,
|
|
60
|
+
opacity 0.2s linear;
|
|
61
|
+
width: 15px;
|
|
62
|
+
// there must be 'right' or 'left' for the y rail
|
|
63
|
+
right: 0;
|
|
64
|
+
// please don't change 'position'
|
|
65
|
+
position: absolute;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.nxe-scrollbar--active-x > .nxe-scrollbar__rail-x,
|
|
69
|
+
.nxe-scrollbar--active-y > .nxe-scrollbar__rail-y {
|
|
70
|
+
display: block;
|
|
71
|
+
background-color: transparent;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.nxe-scrollbar:hover > .nxe-scrollbar__rail-x,
|
|
75
|
+
.nxe-scrollbar:hover > .nxe-scrollbar__rail-y,
|
|
76
|
+
.nxe-scrollbar--focus > .nxe-scrollbar__rail-x,
|
|
77
|
+
.nxe-scrollbar--focus > .nxe-scrollbar__rail-y,
|
|
78
|
+
.nxe-scrollbar--scrolling-x > .nxe-scrollbar__rail-x,
|
|
79
|
+
.nxe-scrollbar--scrolling-y > .nxe-scrollbar__rail-y {
|
|
80
|
+
opacity: 0.6;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.nxe-scrollbar .nxe-scrollbar__rail-x:hover,
|
|
84
|
+
.nxe-scrollbar .nxe-scrollbar__rail-y:hover,
|
|
85
|
+
.nxe-scrollbar .nxe-scrollbar__rail-x:focus,
|
|
86
|
+
.nxe-scrollbar .nxe-scrollbar__rail-y:focus,
|
|
87
|
+
.nxe-scrollbar .nxe-scrollbar__rail-x.nxe-scrollbar--clicking,
|
|
88
|
+
.nxe-scrollbar .nxe-scrollbar__rail-y.nxe-scrollbar--clicking {
|
|
89
|
+
background-color: var(--nxe-ui-neutral-110, #eee);
|
|
90
|
+
opacity: 0.9;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
//
|
|
94
|
+
// Scrollbar thumb styles
|
|
95
|
+
//
|
|
96
|
+
.nxe-scrollbar__thumb-x {
|
|
97
|
+
background-color: var(--nxe-ui-neutral-400, #aaa);
|
|
98
|
+
border-radius: 6px;
|
|
99
|
+
transition:
|
|
100
|
+
background-color 0.2s linear,
|
|
101
|
+
height 0.2s ease-in-out;
|
|
102
|
+
height: 6px;
|
|
103
|
+
// there must be 'bottom' for the x thumb
|
|
104
|
+
bottom: 2px;
|
|
105
|
+
// please don't change 'position'
|
|
106
|
+
position: absolute;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.nxe-scrollbar__thumb-y {
|
|
110
|
+
background-color: var(--nxe-ui-neutral-400, #aaa);
|
|
111
|
+
border-radius: 6px;
|
|
112
|
+
transition:
|
|
113
|
+
background-color 0.2s linear,
|
|
114
|
+
width 0.2s ease-in-out;
|
|
115
|
+
width: 6px;
|
|
116
|
+
// there must be 'right' for the y thumb
|
|
117
|
+
right: 2px;
|
|
118
|
+
// please don't change 'position'
|
|
119
|
+
position: absolute;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.nxe-scrollbar__rail-x:hover > .nxe-scrollbar__thumb-x,
|
|
123
|
+
.nxe-scrollbar__rail-x:focus > .nxe-scrollbar__thumb-x,
|
|
124
|
+
.nxe-scrollbar__rail-x.nxe-scrollbar--clicking .nxe-scrollbar__thumb-x {
|
|
125
|
+
background-color: var(--nxe-ui-text-muted, #999);
|
|
126
|
+
height: 11px;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.nxe-scrollbar__rail-y:hover > .nxe-scrollbar__thumb-y,
|
|
130
|
+
.nxe-scrollbar__rail-y:focus > .nxe-scrollbar__thumb-y,
|
|
131
|
+
.nxe-scrollbar__rail-y.nxe-scrollbar--clicking .nxe-scrollbar__thumb-y {
|
|
132
|
+
background-color: var(--nxe-ui-text-muted, #999);
|
|
133
|
+
width: 11px;
|
|
134
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// Status families (docs/TOKENS.md, "Status families"). `nxe-tag` and `nxe-badge` read the same six
|
|
2
|
+
// families, so the family -> token wiring lives here once: `@include status.families('.nxe-tag')`
|
|
3
|
+
// emits `.nxe-tag-<family>` classes that set the private `--nxe-status-{fg,bg,border}` triple the
|
|
4
|
+
// component's own rules then use. Colours come only from `--nxe-ui-status-*` tokens.
|
|
5
|
+
|
|
6
|
+
$families: neutral, info, attention, success, danger, muted;
|
|
7
|
+
|
|
8
|
+
@mixin families($prefix) {
|
|
9
|
+
@each $family in $families {
|
|
10
|
+
#{$prefix}-#{$family} {
|
|
11
|
+
--nxe-status-fg: var(--nxe-ui-status-#{$family}-fg);
|
|
12
|
+
--nxe-status-bg: var(--nxe-ui-status-#{$family}-bg);
|
|
13
|
+
--nxe-status-border: var(--nxe-ui-status-#{$family}-border);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// `muted` is the one family that is also drawn differently: a dashed edge says "no longer live".
|
|
18
|
+
#{$prefix}-muted {
|
|
19
|
+
--nxe-status-border-style: dashed;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
// @nexterajs/ui — NxeToastService chrome.
|
|
2
|
+
//
|
|
3
|
+
// A value-for-value port of ngx-toastr's `toastr.css`, which this replaces. Every number, colour
|
|
4
|
+
// and easing here is copied deliberately rather than chosen: applications were pinned to that
|
|
5
|
+
// rendering, and "close enough" on a toast is a visible regression nothing tests.
|
|
6
|
+
//
|
|
7
|
+
// Load this where `ngx-toastr/toastr.css` used to sit in the cascade — BEFORE the application's
|
|
8
|
+
// own overrides — or a rule like `width: 350px` on a position class stops winning.
|
|
9
|
+
|
|
10
|
+
/* position */
|
|
11
|
+
.nxe-toast-center-center {
|
|
12
|
+
top: 50%;
|
|
13
|
+
left: 50%;
|
|
14
|
+
transform: translate(-50%, -50%);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.toast-top-center {
|
|
18
|
+
top: 0;
|
|
19
|
+
right: 0;
|
|
20
|
+
width: 100%;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.toast-bottom-center {
|
|
24
|
+
bottom: 0;
|
|
25
|
+
right: 0;
|
|
26
|
+
width: 100%;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.toast-top-full-width {
|
|
30
|
+
top: 0;
|
|
31
|
+
right: 0;
|
|
32
|
+
width: 100%;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.toast-bottom-full-width {
|
|
36
|
+
bottom: 0;
|
|
37
|
+
right: 0;
|
|
38
|
+
width: 100%;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.toast-top-left {
|
|
42
|
+
top: 12px;
|
|
43
|
+
left: 12px;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.toast-top-right {
|
|
47
|
+
top: 12px;
|
|
48
|
+
right: 12px;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.toast-bottom-right {
|
|
52
|
+
right: 12px;
|
|
53
|
+
bottom: 12px;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.toast-bottom-left {
|
|
57
|
+
bottom: 12px;
|
|
58
|
+
left: 12px;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/* toast styles */
|
|
62
|
+
.nxe-toast-title {
|
|
63
|
+
font-weight: bold;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.nxe-toast-message {
|
|
67
|
+
word-wrap: break-word;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.nxe-toast-message a,
|
|
71
|
+
.nxe-toast-message label {
|
|
72
|
+
color: var(--nxe-ui-toast-fg, #ffffff);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.nxe-toast-message a:hover {
|
|
76
|
+
color: var(--nxe-ui-toast-fg-muted, #cccccc);
|
|
77
|
+
text-decoration: none;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.nxe-toast-close {
|
|
81
|
+
position: relative;
|
|
82
|
+
right: -0.3em;
|
|
83
|
+
top: -0.3em;
|
|
84
|
+
float: right;
|
|
85
|
+
font-size: 20px;
|
|
86
|
+
font-weight: bold;
|
|
87
|
+
color: var(--nxe-ui-toast-fg, #ffffff);
|
|
88
|
+
text-shadow: 0 1px 0 var(--nxe-ui-toast-fg, #ffffff);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.nxe-toast-close:hover,
|
|
92
|
+
.nxe-toast-close:focus {
|
|
93
|
+
color: var(--nxe-ui-toast-ink, #000000);
|
|
94
|
+
text-decoration: none;
|
|
95
|
+
cursor: pointer;
|
|
96
|
+
opacity: 0.4;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
button.nxe-toast-close {
|
|
100
|
+
padding: 0;
|
|
101
|
+
cursor: pointer;
|
|
102
|
+
background: transparent;
|
|
103
|
+
border: 0;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.nxe-toast-container {
|
|
107
|
+
pointer-events: none;
|
|
108
|
+
position: fixed;
|
|
109
|
+
z-index: 999999;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.nxe-toast-container * {
|
|
113
|
+
box-sizing: border-box;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.nxe-toast-container .nxe-toast {
|
|
117
|
+
position: relative;
|
|
118
|
+
overflow: hidden;
|
|
119
|
+
margin: 0 0 6px;
|
|
120
|
+
padding: 15px 15px 15px 50px;
|
|
121
|
+
width: 300px;
|
|
122
|
+
border-radius: 3px 3px 3px 3px;
|
|
123
|
+
background-position: 15px center;
|
|
124
|
+
background-repeat: no-repeat;
|
|
125
|
+
background-size: 24px;
|
|
126
|
+
box-shadow: 0 0 12px var(--nxe-ui-toast-shadow-hover, #999999);
|
|
127
|
+
color: var(--nxe-ui-toast-fg, #ffffff);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.nxe-toast-container .nxe-toast:hover {
|
|
131
|
+
box-shadow: 0 0 12px var(--nxe-ui-toast-ink, #000000);
|
|
132
|
+
opacity: 1;
|
|
133
|
+
cursor: pointer;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/* The four icons, as shipped: Font Awesome info-circle, times-circle, check and
|
|
137
|
+
exclamation-triangle, inlined so the toast needs no icon font and no network request. */
|
|
138
|
+
.nxe-toast-info {
|
|
139
|
+
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyB3aWR0aD0nNTEyJyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTI1NiA4QzExOS4wNDMgOCA4IDExOS4wODMgOCAyNTZjMCAxMzYuOTk3IDExMS4wNDMgMjQ4IDI0OCAyNDhzMjQ4LTExMS4wMDMgMjQ4LTI0OEM1MDQgMTE5LjA4MyAzOTIuOTU3IDggMjU2IDh6bTAgMTEwYzIzLjE5NiAwIDQyIDE4LjgwNCA0MiA0MnMtMTguODA0IDQyLTQyIDQyLTQyLTE4LjgwNC00Mi00MiAxOC44MDQtNDIgNDItNDJ6bTU2IDI1NGMwIDYuNjI3LTUuMzczIDEyLTEyIDEyaC04OGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtMjRjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxMnYtNjRoLTEyYy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDY0YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MTAwaDEyYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MjR6Jy8+PC9zdmc+");
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.nxe-toast-error {
|
|
143
|
+
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyB3aWR0aD0nNTEyJyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6bTEyMS42IDMxMy4xYzQuNyA0LjcgNC43IDEyLjMgMCAxN0wzMzggMzc3LjZjLTQuNyA0LjctMTIuMyA0LjctMTcgMEwyNTYgMzEybC02NS4xIDY1LjZjLTQuNyA0LjctMTIuMyA0LjctMTcgMEwxMzQuNCAzMzhjLTQuNy00LjctNC43LTEyLjMgMC0xN2w2NS42LTY1LTY1LjYtNjUuMWMtNC43LTQuNy00LjctMTIuMyAwLTE3bDM5LjYtMzkuNmM0LjctNC43IDEyLjMtNC43IDE3IDBsNjUgNjUuNyA2NS4xLTY1LjZjNC43LTQuNyAxMi4zLTQuNyAxNyAwbDM5LjYgMzkuNmM0LjcgNC43IDQuNyAxMi4zIDAgMTdMMzEyIDI1Nmw2NS42IDY1LjF6Jy8+PC9zdmc+");
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.nxe-toast-success {
|
|
147
|
+
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyB3aWR0aD0nNTEyJyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTE3My44OTggNDM5LjQwNGwtMTY2LjQtMTY2LjRjLTkuOTk3LTkuOTk3LTkuOTk3LTI2LjIwNiAwLTM2LjIwNGwzNi4yMDMtMzYuMjA0YzkuOTk3LTkuOTk4IDI2LjIwNy05Ljk5OCAzNi4yMDQgMEwxOTIgMzEyLjY5IDQzMi4wOTUgNzIuNTk2YzkuOTk3LTkuOTk3IDI2LjIwNy05Ljk5NyAzNi4yMDQgMGwzNi4yMDMgMzYuMjA0YzkuOTk3IDkuOTk3IDkuOTk3IDI2LjIwNiAwIDM2LjIwNGwtMjk0LjQgMjk0LjQwMWMtOS45OTggOS45OTctMjYuMjA3IDkuOTk3LTM2LjIwNC0uMDAxeicvPjwvc3ZnPg==");
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.nxe-toast-warning {
|
|
151
|
+
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1NzYgNTEyJyB3aWR0aD0nNTc2JyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTU2OS41MTcgNDQwLjAxM0M1ODcuOTc1IDQ3Mi4wMDcgNTY0LjgwNiA1MTIgNTI3Ljk0IDUxMkg0OC4wNTRjLTM2LjkzNyAwLTU5Ljk5OS00MC4wNTUtNDEuNTc3LTcxLjk4N0wyNDYuNDIzIDIzLjk4NWMxOC40NjctMzIuMDA5IDY0LjcyLTMxLjk1MSA4My4xNTQgMGwyMzkuOTQgNDE2LjAyOHpNMjg4IDM1NGMtMjUuNDA1IDAtNDYgMjAuNTk1LTQ2IDQ2czIwLjU5NSA0NiA0NiA0NiA0Ni0yMC41OTUgNDYtNDYtMjAuNTk1LTQ2LTQ2LTQ2em0tNDMuNjczLTE2NS4zNDZsNy40MTggMTM2Yy4zNDcgNi4zNjQgNS42MDkgMTEuMzQ2IDExLjk4MiAxMS4zNDZoNDguNTQ2YzYuMzczIDAgMTEuNjM1LTQuOTgyIDExLjk4Mi0xMS4zNDZsNy40MTgtMTM2Yy4zNzUtNi44NzQtNS4wOTgtMTIuNjU0LTExLjk4Mi0xMi42NTRoLTYzLjM4M2MtNi44ODQgMC0xMi4zNTYgNS43OC0xMS45ODEgMTIuNjU0eicvPjwvc3ZnPg==");
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.nxe-toast-container.toast-top-center .nxe-toast,
|
|
155
|
+
.nxe-toast-container.toast-bottom-center .nxe-toast {
|
|
156
|
+
width: 300px;
|
|
157
|
+
margin-left: auto;
|
|
158
|
+
margin-right: auto;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.nxe-toast-container.toast-top-full-width .nxe-toast,
|
|
162
|
+
.nxe-toast-container.toast-bottom-full-width .nxe-toast {
|
|
163
|
+
width: 96%;
|
|
164
|
+
margin-left: auto;
|
|
165
|
+
margin-right: auto;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.nxe-toast {
|
|
169
|
+
// Required for parity, not a change to it. The original toast was a <div>; this one is a
|
|
170
|
+
// custom element, and an unknown element is `display: inline` by default — which would make
|
|
171
|
+
// the `width`, `padding` and `margin` above do nothing at all, silently.
|
|
172
|
+
display: block;
|
|
173
|
+
|
|
174
|
+
background-color: var(--nxe-ui-toast-bg, #030303);
|
|
175
|
+
pointer-events: auto;
|
|
176
|
+
|
|
177
|
+
// ngx-toastr animated between `inactive`/`active`/`removed` states that differ only in
|
|
178
|
+
// opacity, over 300ms ease-in. No movement — matching that exactly, not improving on it.
|
|
179
|
+
opacity: 1;
|
|
180
|
+
transition: opacity 300ms ease-in;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
.nxe-toast-entering,
|
|
184
|
+
.nxe-toast-leaving {
|
|
185
|
+
opacity: 0;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
.nxe-toast-success {
|
|
189
|
+
background-color: var(--nxe-ui-toast-success-bg, #51a351);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
.nxe-toast-error {
|
|
193
|
+
background-color: var(--nxe-ui-toast-error-bg, #bd362f);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
.nxe-toast-info {
|
|
197
|
+
background-color: var(--nxe-ui-toast-info-bg, #2f96b4);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
.nxe-toast-warning {
|
|
201
|
+
background-color: var(--nxe-ui-toast-warning-bg, #f89406);
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
.nxe-toast-progress {
|
|
205
|
+
position: absolute;
|
|
206
|
+
left: 0;
|
|
207
|
+
bottom: 0;
|
|
208
|
+
height: 4px;
|
|
209
|
+
background-color: var(--nxe-ui-toast-ink, #000000);
|
|
210
|
+
opacity: 0.4;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
/* Responsive Design */
|
|
214
|
+
@media all and (max-width: 240px) {
|
|
215
|
+
.nxe-toast-container .nxe-toast.div {
|
|
216
|
+
padding: 8px 8px 8px 50px;
|
|
217
|
+
width: 11em;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
.nxe-toast-container .nxe-toast-close {
|
|
221
|
+
right: -0.2em;
|
|
222
|
+
top: -0.2em;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
@media all and (min-width: 241px) and (max-width: 480px) {
|
|
227
|
+
.nxe-toast-container .nxe-toast.div {
|
|
228
|
+
padding: 8px 8px 8px 50px;
|
|
229
|
+
width: 18em;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
.nxe-toast-container .nxe-toast-close {
|
|
233
|
+
right: -0.2em;
|
|
234
|
+
top: -0.2em;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
@media all and (min-width: 481px) and (max-width: 768px) {
|
|
239
|
+
.nxe-toast-container .nxe-toast.div {
|
|
240
|
+
padding: 15px 15px 15px 50px;
|
|
241
|
+
width: 25em;
|
|
242
|
+
}
|
|
243
|
+
}
|