@effect-app/vue-components 2.7.9 → 2.7.11
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.
|
@@ -3,13 +3,16 @@ import { type OmegaError } from "./OmegaFormStuff";
|
|
|
3
3
|
type __VLS_Props = {
|
|
4
4
|
generalErrors: (Record<string, StandardSchemaV1Issue[]> | undefined)[];
|
|
5
5
|
errors: OmegaError[];
|
|
6
|
+
hideErrorDetails?: boolean;
|
|
6
7
|
};
|
|
7
8
|
declare var __VLS_6: {
|
|
8
9
|
errors: OmegaError[];
|
|
9
10
|
showedGeneralErrors: string[];
|
|
10
|
-
};
|
|
11
|
+
}, __VLS_13: {};
|
|
11
12
|
type __VLS_Slots = {} & {
|
|
12
13
|
default?: (props: typeof __VLS_6) => any;
|
|
14
|
+
} & {
|
|
15
|
+
icon?: (props: typeof __VLS_13) => any;
|
|
13
16
|
};
|
|
14
17
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
15
18
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
(function(){"use strict";try{if(typeof document<"u"){var a=document.createElement("style");if(a.appendChild(document.createTextNode(
|
|
1
|
+
(function(){"use strict";try{if(typeof document<"u"){var a=document.createElement("style");if(a.appendChild(document.createTextNode('.v-enter-from[data-v-6b2bf87e],.v-leave-to[data-v-6b2bf87e]{max-height:0px;grid-template-rows:0fr;opacity:0}.v-enter-active[data-v-6b2bf87e],.v-leave-active[data-v-6b2bf87e]{display:grid;transition:all .15s}.v-enter-to[data-v-6b2bf87e],.v-leave-from[data-v-6b2bf87e]{grid-template-rows:1fr;max-height:50vh;opacity:1}.error-alert[data-v-6b2bf87e]{transition-behavior:allow-discrete;display:grid;overflow:hidden;min-height:0}.error-alert>*[data-v-6b2bf87e]{min-height:0}.error-list[data-v-6b2bf87e]{list-style-position:inside}.error-list [data-v-6b2bf87e]::marker{margin:0;padding:0}.error-alert-content[data-v-6b2bf87e]{background-color:var(--error-background, #fff5f5);color:var(--error-color, #c92a2a);padding:1em}.error-link[data-v-6b2bf87e]{font-weight:700;position:relative;color:var(--error-color, #c92a2a);cursor:pointer}.error-link[data-v-6b2bf87e]:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:rgba(from var(--error-color, #c92a2a) r g b / .5)}.text-h6[data-v-6b2bf87e]{font-weight:700;font-size:1.25em}.error-message[data-v-6b2bf87e]{font-style:italic}.error-item[data-v-6b2bf87e]{margin-bottom:.5em;overflow:hidden}.error-item>div[data-v-6b2bf87e]{float:right;width:100%;max-width:calc(100% - 1.5em)}.container[data-v-6b2bf87e]{display:flex;gap:1.5em}.container svg[data-v-6b2bf87e]{width:3em}.container .single-error[data-v-6b2bf87e]{display:inline-block}')),document.head.appendChild(a),window.customElements){const e=window.customElements.define;window.customElements.define=function(i,t){const r=t.prototype.connectedCallback;return t.prototype.connectedCallback=function(){if(r&&r.call(this),this.shadowRoot){const o=document.createElement("style");o.appendChild(document.createTextNode('.v-enter-from[data-v-6b2bf87e],.v-leave-to[data-v-6b2bf87e]{max-height:0px;grid-template-rows:0fr;opacity:0}.v-enter-active[data-v-6b2bf87e],.v-leave-active[data-v-6b2bf87e]{display:grid;transition:all .15s}.v-enter-to[data-v-6b2bf87e],.v-leave-from[data-v-6b2bf87e]{grid-template-rows:1fr;max-height:50vh;opacity:1}.error-alert[data-v-6b2bf87e]{transition-behavior:allow-discrete;display:grid;overflow:hidden;min-height:0}.error-alert>*[data-v-6b2bf87e]{min-height:0}.error-list[data-v-6b2bf87e]{list-style-position:inside}.error-list [data-v-6b2bf87e]::marker{margin:0;padding:0}.error-alert-content[data-v-6b2bf87e]{background-color:var(--error-background, #fff5f5);color:var(--error-color, #c92a2a);padding:1em}.error-link[data-v-6b2bf87e]{font-weight:700;position:relative;color:var(--error-color, #c92a2a);cursor:pointer}.error-link[data-v-6b2bf87e]:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:rgba(from var(--error-color, #c92a2a) r g b / .5)}.text-h6[data-v-6b2bf87e]{font-weight:700;font-size:1.25em}.error-message[data-v-6b2bf87e]{font-style:italic}.error-item[data-v-6b2bf87e]{margin-bottom:.5em;overflow:hidden}.error-item>div[data-v-6b2bf87e]{float:right;width:100%;max-width:calc(100% - 1.5em)}.container[data-v-6b2bf87e]{display:flex;gap:1.5em}.container svg[data-v-6b2bf87e]{width:3em}.container .single-error[data-v-6b2bf87e]{display:inline-block}')),this.shadowRoot.appendChild(o)}},e.call(window.customElements,i,t)}}}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();
|
|
2
2
|
import r from "./vue-components.es33.js";
|
|
3
3
|
|
|
4
4
|
import o from "./vue-components.es35.js";
|
|
5
|
-
const
|
|
5
|
+
const m = /* @__PURE__ */ o(r, [["__scopeId", "data-v-6b2bf87e"]]);
|
|
6
6
|
export {
|
|
7
|
-
|
|
7
|
+
m as default
|
|
8
8
|
};
|
|
@@ -1,91 +1,113 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
const D = {
|
|
1
|
+
import { defineComponent as _, getCurrentInstance as B, computed as V, createBlock as i, openBlock as e, Transition as x, withCtx as u, createElementBlock as o, createCommentVNode as p, renderSlot as g, normalizeProps as b, guardReactiveProps as I, resolveDynamicComponent as h, unref as d, normalizeClass as v, createElementVNode as n, toDisplayString as a, Fragment as w, renderList as y, createTextVNode as C } from "vue";
|
|
2
|
+
import { useIntl as L } from "./vue-components.es3.js";
|
|
3
|
+
const M = {
|
|
5
4
|
key: 0,
|
|
6
5
|
class: "error-alert"
|
|
7
|
-
},
|
|
6
|
+
}, j = { class: "container" }, D = {
|
|
7
|
+
key: 0,
|
|
8
|
+
viewBox: "0 0 24 24",
|
|
9
|
+
fill: "none",
|
|
10
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
11
|
+
}, N = { class: "text-h6" }, z = {
|
|
12
|
+
key: 0,
|
|
13
|
+
class: "error-list"
|
|
14
|
+
}, G = ["for"], H = { key: 1 }, T = /* @__PURE__ */ _({
|
|
8
15
|
__name: "OmegaErrorsInternal",
|
|
9
16
|
props: {
|
|
10
17
|
generalErrors: {},
|
|
11
|
-
errors: {}
|
|
18
|
+
errors: {},
|
|
19
|
+
hideErrorDetails: { type: Boolean }
|
|
12
20
|
},
|
|
13
|
-
setup(
|
|
14
|
-
const
|
|
15
|
-
(
|
|
16
|
-
(
|
|
21
|
+
setup(l) {
|
|
22
|
+
const c = B()?.appContext.components.VAlert, k = l, { trans: E } = L(), m = V(() => k.generalErrors ? k.generalErrors.filter((s) => !!s).flatMap(
|
|
23
|
+
(s) => Object.values(s).filter((t) => !!t).flatMap(
|
|
24
|
+
(t) => t.filter(
|
|
17
25
|
(r) => !!r?.message
|
|
18
26
|
).map((r) => r.message)
|
|
19
27
|
)
|
|
20
28
|
) : []);
|
|
21
|
-
return (
|
|
22
|
-
default:
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
(e(),
|
|
26
|
-
class:
|
|
29
|
+
return (s, t) => (e(), i(x, null, {
|
|
30
|
+
default: u(() => [
|
|
31
|
+
l.errors.length || m.value.length ? (e(), o("div", M, [
|
|
32
|
+
g(s.$slots, "default", b(I({ errors: l.errors, showedGeneralErrors: m.value })), () => [
|
|
33
|
+
(e(), i(h(d(c) ? "v-alert" : "div"), {
|
|
34
|
+
class: v([d(c) ? "mb-4" : "error-alert-content", "mb-4"]),
|
|
27
35
|
type: "error",
|
|
28
36
|
variant: "tonal",
|
|
29
37
|
role: "alert",
|
|
30
38
|
"aria-live": "polite"
|
|
31
39
|
}, {
|
|
32
|
-
default:
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
},
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
40
|
+
default: u(() => [
|
|
41
|
+
n("div", j, [
|
|
42
|
+
g(s.$slots, "icon", {}, () => [
|
|
43
|
+
d(c) ? p("", !0) : (e(), o("svg", D, [...t[0] || (t[0] = [
|
|
44
|
+
n("path", {
|
|
45
|
+
d: "M16 2H8L2 8V16L8 22H16L22 16V8L16 2Z",
|
|
46
|
+
stroke: "currentColor",
|
|
47
|
+
"stroke-width": "2",
|
|
48
|
+
"stroke-linecap": "round",
|
|
49
|
+
"stroke-linejoin": "round"
|
|
50
|
+
}, null, -1),
|
|
51
|
+
n("path", {
|
|
52
|
+
d: "M12 8V12",
|
|
53
|
+
stroke: "currentColor",
|
|
54
|
+
"stroke-width": "2",
|
|
55
|
+
"stroke-linecap": "round",
|
|
56
|
+
"stroke-linejoin": "round"
|
|
57
|
+
}, null, -1),
|
|
58
|
+
n("path", {
|
|
59
|
+
d: "M12 16.0195V16",
|
|
60
|
+
stroke: "currentColor",
|
|
61
|
+
"stroke-width": "2",
|
|
62
|
+
"stroke-linecap": "round",
|
|
63
|
+
"stroke-linejoin": "round"
|
|
64
|
+
}, null, -1)
|
|
65
|
+
])]))
|
|
66
|
+
], !0),
|
|
67
|
+
n("div", null, [
|
|
68
|
+
n("div", N, a(d(E)("form.includes_error")) + ": ", 1),
|
|
69
|
+
l.errors.length ? (e(), o("ul", z, [
|
|
70
|
+
(e(!0), o(w, null, y(l.errors, (r) => (e(), o("li", {
|
|
71
|
+
key: r.inputId,
|
|
72
|
+
class: "error-item"
|
|
73
|
+
}, [
|
|
74
|
+
n("div", null, [
|
|
75
|
+
n("label", {
|
|
76
|
+
for: r.inputId,
|
|
77
|
+
class: "error-link"
|
|
78
|
+
}, a(r.label), 9, G),
|
|
79
|
+
t[1] || (t[1] = C(" " + a(" ") + " ", -1)),
|
|
80
|
+
l.hideErrorDetails ? p("", !0) : (e(), o("div", {
|
|
81
|
+
key: 0,
|
|
82
|
+
class: v(["error-message", r.errors.length < 2 && "single-error"])
|
|
83
|
+
}, [
|
|
84
|
+
(e(), i(h(r.errors.length > 1 ? "ul" : "div"), { class: "error-list" }, {
|
|
85
|
+
default: u(() => [
|
|
86
|
+
(e(!0), o(w, null, y(r.errors, (f) => (e(), i(h(r.errors.length > 1 ? "li" : "span"), { key: f }, {
|
|
87
|
+
default: u(() => [
|
|
88
|
+
C(a(f), 1)
|
|
89
|
+
]),
|
|
90
|
+
_: 2
|
|
91
|
+
}, 1024))), 128))
|
|
92
|
+
]),
|
|
93
|
+
_: 2
|
|
94
|
+
}, 1024))
|
|
95
|
+
], 2))
|
|
96
|
+
])
|
|
97
|
+
]))), 128))
|
|
98
|
+
])) : (e(), o("span", H, a(m.value[0]), 1))
|
|
99
|
+
])
|
|
100
|
+
])
|
|
79
101
|
]),
|
|
80
|
-
_:
|
|
102
|
+
_: 3
|
|
81
103
|
}, 8, ["class"]))
|
|
82
104
|
], !0)
|
|
83
|
-
])) :
|
|
105
|
+
])) : p("", !0)
|
|
84
106
|
]),
|
|
85
107
|
_: 3
|
|
86
108
|
}));
|
|
87
109
|
}
|
|
88
110
|
});
|
|
89
111
|
export {
|
|
90
|
-
|
|
112
|
+
T as default
|
|
91
113
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/vue-components",
|
|
3
|
-
"version": "2.7.
|
|
3
|
+
"version": "2.7.11",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@mdi/js": "^7.4.47",
|
|
6
6
|
"effect": "^3.18.0",
|
|
@@ -53,8 +53,8 @@
|
|
|
53
53
|
"highlight.js": "^11.11.1",
|
|
54
54
|
"mitt": "^3.0.1",
|
|
55
55
|
"vue3-highlightjs": "^1.0.5",
|
|
56
|
-
"effect-app": "
|
|
57
|
-
"
|
|
56
|
+
"@effect-app/vue": "2.92.2",
|
|
57
|
+
"effect-app": "3.12.0"
|
|
58
58
|
},
|
|
59
59
|
"scripts": {
|
|
60
60
|
"build": "pnpm build:run",
|
|
@@ -14,57 +14,84 @@
|
|
|
14
14
|
aria-live="polite"
|
|
15
15
|
class="mb-4"
|
|
16
16
|
>
|
|
17
|
-
<div class="
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
17
|
+
<div class="container">
|
|
18
|
+
<slot name="icon">
|
|
19
|
+
<svg
|
|
20
|
+
v-if="!vuetified"
|
|
21
|
+
viewBox="0 0 24 24"
|
|
22
|
+
fill="none"
|
|
23
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
24
|
+
>
|
|
25
|
+
<path
|
|
26
|
+
d="M16 2H8L2 8V16L8 22H16L22 16V8L16 2Z"
|
|
27
|
+
stroke="currentColor"
|
|
28
|
+
stroke-width="2"
|
|
29
|
+
stroke-linecap="round"
|
|
30
|
+
stroke-linejoin="round"
|
|
31
|
+
/>
|
|
32
|
+
<path
|
|
33
|
+
d="M12 8V12"
|
|
34
|
+
stroke="currentColor"
|
|
35
|
+
stroke-width="2"
|
|
36
|
+
stroke-linecap="round"
|
|
37
|
+
stroke-linejoin="round"
|
|
38
|
+
/>
|
|
39
|
+
<path
|
|
40
|
+
d="M12 16.0195V16"
|
|
41
|
+
stroke="currentColor"
|
|
42
|
+
stroke-width="2"
|
|
43
|
+
stroke-linecap="round"
|
|
44
|
+
stroke-linejoin="round"
|
|
45
|
+
/>
|
|
46
|
+
</svg>
|
|
47
|
+
</slot>
|
|
48
|
+
<div>
|
|
49
|
+
<div class="text-h6">
|
|
50
|
+
{{ trans("form.includes_error") }}:
|
|
49
51
|
</div>
|
|
50
|
-
<
|
|
51
|
-
|
|
52
|
-
class="error-
|
|
52
|
+
<ul
|
|
53
|
+
v-if="errors.length"
|
|
54
|
+
class="error-list"
|
|
53
55
|
>
|
|
54
|
-
<
|
|
55
|
-
|
|
56
|
-
:
|
|
57
|
-
|
|
56
|
+
<li
|
|
57
|
+
v-for="error in errors"
|
|
58
|
+
:key="error.inputId"
|
|
59
|
+
class="error-item"
|
|
58
60
|
>
|
|
59
|
-
<
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
61
|
+
<div>
|
|
62
|
+
<label
|
|
63
|
+
:for="error.inputId"
|
|
64
|
+
class="error-link"
|
|
65
|
+
>{{ error.label }}</label>
|
|
66
|
+
{{ " " }}
|
|
67
|
+
<div
|
|
68
|
+
v-if="!hideErrorDetails"
|
|
69
|
+
class="error-message"
|
|
70
|
+
:class="error.errors.length < 2 && 'single-error'"
|
|
71
|
+
>
|
|
72
|
+
<component
|
|
73
|
+
:is="error.errors.length > 1 ? 'ul' : 'div'"
|
|
74
|
+
class="error-list"
|
|
75
|
+
>
|
|
76
|
+
<component
|
|
77
|
+
:is="error.errors.length > 1
|
|
78
|
+
? 'li'
|
|
79
|
+
: 'span'"
|
|
80
|
+
v-for="e in error.errors"
|
|
81
|
+
:key="e"
|
|
82
|
+
>
|
|
83
|
+
{{ e }}
|
|
84
|
+
</component>
|
|
85
|
+
</component>
|
|
86
|
+
</div>
|
|
87
|
+
</div>
|
|
88
|
+
</li>
|
|
89
|
+
</ul>
|
|
90
|
+
<span v-else>
|
|
91
|
+
{{ showedGeneralErrors[0] }}
|
|
92
|
+
</span>
|
|
93
|
+
</div>
|
|
94
|
+
</div>
|
|
68
95
|
</component>
|
|
69
96
|
</slot>
|
|
70
97
|
</div>
|
|
@@ -72,7 +99,6 @@
|
|
|
72
99
|
</template>
|
|
73
100
|
|
|
74
101
|
<script setup lang="ts">
|
|
75
|
-
import { mdiLink } from "@mdi/js"
|
|
76
102
|
import type { StandardSchemaV1Issue } from "@tanstack/vue-form"
|
|
77
103
|
import { computed, getCurrentInstance } from "vue"
|
|
78
104
|
import { useIntl } from "../../utils"
|
|
@@ -85,6 +111,7 @@ const props = defineProps<
|
|
|
85
111
|
{
|
|
86
112
|
generalErrors: (Record<string, StandardSchemaV1Issue[]> | undefined)[]
|
|
87
113
|
errors: OmegaError[]
|
|
114
|
+
hideErrorDetails?: boolean
|
|
88
115
|
}
|
|
89
116
|
>()
|
|
90
117
|
|
|
@@ -145,52 +172,64 @@ const showedGeneralErrors = computed(() => {
|
|
|
145
172
|
|
|
146
173
|
.error-list {
|
|
147
174
|
list-style-position: inside;
|
|
148
|
-
}
|
|
149
175
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
gap: 1.5em;
|
|
155
|
-
align-items: start;
|
|
176
|
+
::marker {
|
|
177
|
+
margin: 0;
|
|
178
|
+
padding: 0;
|
|
179
|
+
}
|
|
156
180
|
}
|
|
157
181
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
182
|
+
.error-alert-content {
|
|
183
|
+
background-color: var(--error-background, #fff5f5);
|
|
184
|
+
color: var(--error-color, #c92a2a);
|
|
185
|
+
padding: 1em;
|
|
186
|
+
}
|
|
162
187
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
188
|
+
.error-link {
|
|
189
|
+
font-weight: bold;
|
|
190
|
+
position: relative;
|
|
191
|
+
color: var(--error-color, #c92a2a);
|
|
192
|
+
cursor: pointer;
|
|
193
|
+
&::after {
|
|
194
|
+
content: "";
|
|
195
|
+
position: absolute;
|
|
196
|
+
left: 0;
|
|
197
|
+
right: 0;
|
|
198
|
+
bottom: 0;
|
|
199
|
+
height: 1px;
|
|
200
|
+
background: rgba(from var(--error-color, #c92a2a) r g b / 0.5);
|
|
166
201
|
}
|
|
167
202
|
}
|
|
168
203
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
204
|
+
.text-h6 {
|
|
205
|
+
font-weight: bold;
|
|
206
|
+
font-size: 1.25em;
|
|
207
|
+
}
|
|
173
208
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
}
|
|
209
|
+
.error-message {
|
|
210
|
+
font-style: italic;
|
|
177
211
|
}
|
|
178
212
|
|
|
179
213
|
.error-item {
|
|
180
|
-
|
|
181
|
-
|
|
214
|
+
margin-bottom: 0.5em;
|
|
215
|
+
overflow: hidden;
|
|
182
216
|
|
|
183
|
-
|
|
184
|
-
|
|
217
|
+
> div {
|
|
218
|
+
float: right;
|
|
219
|
+
width: 100%;
|
|
220
|
+
max-width: calc(100% - 1.5em);
|
|
221
|
+
}
|
|
185
222
|
}
|
|
186
223
|
|
|
187
|
-
.
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
224
|
+
.container {
|
|
225
|
+
display: flex;
|
|
226
|
+
gap: 1.5em;
|
|
227
|
+
|
|
228
|
+
svg {
|
|
229
|
+
width: 3em;
|
|
230
|
+
}
|
|
231
|
+
.single-error {
|
|
232
|
+
display: inline-block;
|
|
233
|
+
}
|
|
195
234
|
}
|
|
196
235
|
</style>
|