@topvisor/ui 0.0.36 → 0.0.37
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/.chunks/datepicker-6d57a408.es.js +275 -0
- package/.chunks/datepicker-6d57a408.es.js.map +1 -0
- package/.chunks/datepicker-a0840577.amd.js +234 -0
- package/.chunks/datepicker-a0840577.amd.js.map +1 -0
- package/.chunks/{forms-2891e074.amd.js → forms-1aa30229.amd.js} +3 -3
- package/.chunks/forms-1aa30229.amd.js.map +1 -0
- package/.chunks/{forms-db4cb24d.es.js → forms-7be951a7.es.js} +217 -201
- package/.chunks/forms-7be951a7.es.js.map +1 -0
- package/.chunks/{popup-e49a9bab.amd.js → popup-604c0a49.amd.js} +341 -341
- package/.chunks/popup-604c0a49.amd.js.map +1 -0
- package/.chunks/{popup-0f540839.es.js → popup-b9517276.es.js} +383 -383
- package/.chunks/popup-b9517276.es.js.map +1 -0
- package/README.md +62 -62
- package/core/core.amd.js +1 -1
- package/core/core.js +1 -1
- package/forms/forms.amd.js +1 -1
- package/forms/forms.js +10 -9
- package/forms/helpers.amd.js.map +1 -1
- package/forms/helpers.js.map +1 -1
- package/forms.css +1 -1
- package/formsExt/formsExt.amd.js +2 -2
- package/formsExt/formsExt.amd.js.map +1 -1
- package/formsExt/formsExt.js +97 -84
- package/formsExt/formsExt.js.map +1 -1
- package/formsExt.css +1 -1
- package/icomoon/demo-files/demo.css +161 -161
- package/icomoon/demo-files/demo.js +30 -30
- package/icomoon/demo.html +2945 -2945
- package/icomoon/fonts/Topvisor-2.svg +232 -232
- package/icomoon/style.css +647 -647
- package/package.json +19 -19
- package/popup/popup.amd.js +1 -1
- package/popup/popup.amd.js.map +1 -1
- package/popup/popup.js +1 -1
- package/popup/popup.js.map +1 -1
- package/popup/worker.amd.js +1 -1
- package/popup/worker.amd.js.map +1 -1
- package/popup/worker.js +2 -2
- package/popup/worker.js.map +1 -1
- package/tabs/tabs.amd.js +1 -1
- package/tabs/tabs.js +1 -1
- package/utils/date.amd.js +1 -1
- package/utils/date.js +1 -1
- package/utils/device.amd.js +1 -1
- package/utils/device.js +1 -1
- package/utils/dom.amd.js.map +1 -1
- package/utils/dom.js.map +1 -1
- package/.chunks/datepicker-1e725859.amd.js +0 -234
- package/.chunks/datepicker-1e725859.amd.js.map +0 -1
- package/.chunks/datepicker-ad465c48.es.js +0 -275
- package/.chunks/datepicker-ad465c48.es.js.map +0 -1
- package/.chunks/forms-2891e074.amd.js.map +0 -1
- package/.chunks/forms-db4cb24d.es.js.map +0 -1
- package/.chunks/popup-0f540839.es.js.map +0 -1
- package/.chunks/popup-e49a9bab.amd.js.map +0 -1
package/formsExt/formsExt.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { T as
|
|
3
|
-
const
|
|
1
|
+
import { defineComponent as B, ref as V, watch as w, toRef as g, computed as k, openBlock as i, createElementBlock as n, normalizeClass as m, toDisplayString as v, createCommentVNode as y, createElementVNode as f, createVNode as h, withKeys as b, withModifiers as A, createBlock as C, withCtx as _, createTextVNode as $, mergeProps as K, renderSlot as E, Fragment as I, renderList as M, withDirectives as H, vModelRadio as z } from "vue";
|
|
2
|
+
import { T as N, B as T, _ as G, I as P } from "../.chunks/forms-7be951a7.es.js";
|
|
3
|
+
const R = {
|
|
4
4
|
key: 0,
|
|
5
5
|
class: "top-editArea_title"
|
|
6
|
-
},
|
|
6
|
+
}, U = { class: "top-editArea_footer" }, X = /* @__PURE__ */ B({
|
|
7
7
|
__name: "editArea",
|
|
8
8
|
props: {
|
|
9
9
|
modelValue: {},
|
|
@@ -22,33 +22,33 @@ const N = {
|
|
|
22
22
|
hint: {}
|
|
23
23
|
},
|
|
24
24
|
emits: ["update:modelValue", "cancel"],
|
|
25
|
-
setup(p, { emit:
|
|
26
|
-
const r = p,
|
|
27
|
-
g(
|
|
28
|
-
|
|
25
|
+
setup(p, { emit: u }) {
|
|
26
|
+
const r = p, o = V(""), l = V(r.modelValue);
|
|
27
|
+
w(g(r, "modelValue"), () => {
|
|
28
|
+
l.value = r.modelValue;
|
|
29
29
|
});
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
},
|
|
33
|
-
|
|
30
|
+
const t = k(() => l.value !== r.modelValue), d = (e) => {
|
|
31
|
+
u("update:modelValue", e);
|
|
32
|
+
}, a = () => {
|
|
33
|
+
u("cancel"), l.value = r.modelValue;
|
|
34
34
|
};
|
|
35
|
-
return (e,
|
|
36
|
-
class:
|
|
35
|
+
return (e, s) => (i(), n("div", {
|
|
36
|
+
class: m({
|
|
37
37
|
"top-editArea": !0,
|
|
38
38
|
"top-editArea-attachedToKeyboard": e.attachToKeyboard
|
|
39
39
|
})
|
|
40
40
|
}, [
|
|
41
|
-
e.title ? (
|
|
42
|
-
|
|
43
|
-
class:
|
|
41
|
+
e.title ? (i(), n("div", R, v(e.title), 1)) : y("", !0),
|
|
42
|
+
f("div", {
|
|
43
|
+
class: m({
|
|
44
44
|
"top-editArea_form": !0,
|
|
45
45
|
"top-error": e.isError,
|
|
46
|
-
"top-focus":
|
|
46
|
+
"top-focus": o.value == "focus"
|
|
47
47
|
})
|
|
48
48
|
}, [
|
|
49
|
-
|
|
50
|
-
modelValue:
|
|
51
|
-
"onUpdate:modelValue":
|
|
49
|
+
h(N, {
|
|
50
|
+
modelValue: l.value,
|
|
51
|
+
"onUpdate:modelValue": s[0] || (s[0] = (c) => l.value = c),
|
|
52
52
|
name: e.name,
|
|
53
53
|
placeholder: e.placeholder,
|
|
54
54
|
rows: e.rows,
|
|
@@ -59,33 +59,33 @@ const N = {
|
|
|
59
59
|
isError: e.isError,
|
|
60
60
|
hint: e.hint,
|
|
61
61
|
class: "top-editArea_element",
|
|
62
|
-
onFocus:
|
|
63
|
-
onBlur:
|
|
62
|
+
onFocus: s[1] || (s[1] = (c) => o.value = "focus"),
|
|
63
|
+
onBlur: s[2] || (s[2] = (c) => o.value = ""),
|
|
64
64
|
onKeyup: [
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
b(a, ["esc"]),
|
|
66
|
+
s[3] || (s[3] = b(A((c) => d(l.value), ["ctrl"]), ["enter"]))
|
|
67
67
|
]
|
|
68
68
|
}, null, 8, ["modelValue", "name", "placeholder", "rows", "minHeight", "expandable", "disabled", "readonly", "isError", "hint", "onKeyup"]),
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
f("div", U, [
|
|
70
|
+
t.value && (!e.attachToKeyboard || e.modelValue) ? (i(), C(T, {
|
|
71
71
|
key: 0,
|
|
72
72
|
class: "top-editArea_button",
|
|
73
73
|
color: "theme",
|
|
74
74
|
icon: e.attachToKeyboard ? "" : "",
|
|
75
|
-
onClick:
|
|
75
|
+
onClick: a
|
|
76
76
|
}, {
|
|
77
|
-
default:
|
|
78
|
-
|
|
77
|
+
default: _(() => [
|
|
78
|
+
$(v(e.attachToKeyboard ? "" : e.cancelText), 1)
|
|
79
79
|
]),
|
|
80
80
|
_: 1
|
|
81
|
-
}, 8, ["icon"])) :
|
|
82
|
-
|
|
81
|
+
}, 8, ["icon"])) : y("", !0),
|
|
82
|
+
h(T, {
|
|
83
83
|
class: "top-editArea_button",
|
|
84
84
|
icon: e.attachToKeyboard ? "" : "",
|
|
85
|
-
onClick:
|
|
85
|
+
onClick: s[4] || (s[4] = (c) => d(l.value))
|
|
86
86
|
}, {
|
|
87
|
-
default:
|
|
88
|
-
|
|
87
|
+
default: _(() => [
|
|
88
|
+
$(v(e.attachToKeyboard ? "" : e.submitText), 1)
|
|
89
89
|
]),
|
|
90
90
|
_: 1
|
|
91
91
|
}, 8, ["icon"])
|
|
@@ -93,7 +93,7 @@ const N = {
|
|
|
93
93
|
], 2)
|
|
94
94
|
], 2));
|
|
95
95
|
}
|
|
96
|
-
}),
|
|
96
|
+
}), D = {
|
|
97
97
|
"top-editArea": "top-editArea",
|
|
98
98
|
"top-editArea_title": "top-editArea_title",
|
|
99
99
|
"top-editArea_form": "top-editArea_form",
|
|
@@ -102,9 +102,9 @@ const N = {
|
|
|
102
102
|
"top-textarea_textarea": "top-textarea_textarea",
|
|
103
103
|
"top-editArea_footer": "top-editArea_footer",
|
|
104
104
|
"top-editArea-attachedToKeyboard": "top-editArea-attachedToKeyboard"
|
|
105
|
-
},
|
|
106
|
-
$style:
|
|
107
|
-
},
|
|
105
|
+
}, F = {
|
|
106
|
+
$style: D
|
|
107
|
+
}, oe = /* @__PURE__ */ G(X, [["__cssModules", F]]), S = { class: "top-editInput" }, L = /* @__PURE__ */ B({
|
|
108
108
|
__name: "editInput",
|
|
109
109
|
props: {
|
|
110
110
|
modelValue: {},
|
|
@@ -112,42 +112,42 @@ const N = {
|
|
|
112
112
|
button: {}
|
|
113
113
|
},
|
|
114
114
|
emits: ["update:modelValue"],
|
|
115
|
-
setup(p, { emit:
|
|
116
|
-
const r = p,
|
|
117
|
-
g(
|
|
118
|
-
|
|
115
|
+
setup(p, { emit: u }) {
|
|
116
|
+
const r = p, o = V(r.modelValue);
|
|
117
|
+
w(g(r.modelValue), () => {
|
|
118
|
+
o.value = r.modelValue;
|
|
119
119
|
});
|
|
120
|
-
const
|
|
121
|
-
|
|
120
|
+
const l = () => {
|
|
121
|
+
u("update:modelValue", o.value);
|
|
122
122
|
};
|
|
123
|
-
return (
|
|
124
|
-
|
|
125
|
-
onKeydownCapture:
|
|
126
|
-
onKeydown:
|
|
127
|
-
modelValue:
|
|
128
|
-
"onUpdate:modelValue":
|
|
123
|
+
return (t, d) => (i(), n("div", S, [
|
|
124
|
+
h(P, K(t.input, {
|
|
125
|
+
onKeydownCapture: d[0] || (d[0] = b(A((a) => o.value = t.modelValue, ["stop"]), ["esc"])),
|
|
126
|
+
onKeydown: b(A(l, ["stop"]), ["enter"]),
|
|
127
|
+
modelValue: o.value,
|
|
128
|
+
"onUpdate:modelValue": d[1] || (d[1] = (a) => o.value = a)
|
|
129
129
|
}), null, 16, ["onKeydown", "modelValue"]),
|
|
130
|
-
|
|
130
|
+
o.value !== t.modelValue ? (i(), C(T, K({
|
|
131
131
|
key: 0,
|
|
132
132
|
icon: "",
|
|
133
133
|
styling: "soft"
|
|
134
|
-
},
|
|
135
|
-
default:
|
|
136
|
-
E(
|
|
134
|
+
}, t.button, { onClick: l }), {
|
|
135
|
+
default: _(() => [
|
|
136
|
+
E(t.$slots, "default")
|
|
137
137
|
]),
|
|
138
138
|
_: 3
|
|
139
|
-
}, 16)) :
|
|
139
|
+
}, 16)) : y("", !0)
|
|
140
140
|
]));
|
|
141
141
|
}
|
|
142
|
-
}),
|
|
142
|
+
}), j = {
|
|
143
143
|
"top-editInput": "top-editInput",
|
|
144
144
|
"top-input": "top-input"
|
|
145
|
-
},
|
|
146
|
-
$style:
|
|
147
|
-
},
|
|
145
|
+
}, q = {
|
|
146
|
+
$style: j
|
|
147
|
+
}, te = /* @__PURE__ */ G(L, [["__cssModules", q]]), J = ["data-top-icon", "onClick"], O = {
|
|
148
148
|
key: 0,
|
|
149
149
|
class: "top-radioGroup_circle"
|
|
150
|
-
},
|
|
150
|
+
}, Q = ["value", "disabled"], W = /* @__PURE__ */ B({
|
|
151
151
|
__name: "radioGroup",
|
|
152
152
|
props: {
|
|
153
153
|
modelValue: {},
|
|
@@ -157,38 +157,51 @@ const N = {
|
|
|
157
157
|
isError: { type: Boolean }
|
|
158
158
|
},
|
|
159
159
|
emits: ["update:modelValue"],
|
|
160
|
-
setup(p, { emit:
|
|
161
|
-
const r = p,
|
|
160
|
+
setup(p, { emit: u }) {
|
|
161
|
+
const r = p, o = k({
|
|
162
162
|
get() {
|
|
163
163
|
return r.modelValue;
|
|
164
164
|
},
|
|
165
|
-
set(
|
|
166
|
-
|
|
165
|
+
set(t) {
|
|
166
|
+
u("update:modelValue", t);
|
|
167
167
|
}
|
|
168
|
-
});
|
|
169
|
-
return (
|
|
170
|
-
class:
|
|
168
|
+
}), l = "radioGroup-" + Math.random();
|
|
169
|
+
return (t, d) => (i(), n("div", {
|
|
170
|
+
class: m({
|
|
171
171
|
"top-radioGroup": !0,
|
|
172
172
|
"top-scrollBarXHidding": !0,
|
|
173
|
-
["top-size_" +
|
|
174
|
-
"top-error":
|
|
173
|
+
["top-size_" + t.size]: !!t.size,
|
|
174
|
+
"top-error": t.isError
|
|
175
175
|
})
|
|
176
176
|
}, [
|
|
177
|
-
(
|
|
178
|
-
class:
|
|
179
|
-
"top-radioGroup_item-selected": a.value ===
|
|
177
|
+
(i(!0), n(I, null, M(t.radiosProps, (a) => (i(), n("label", {
|
|
178
|
+
class: m({
|
|
179
|
+
"top-radioGroup_item-selected": a.value === o.value,
|
|
180
180
|
"top-radioGroup_item": !0,
|
|
181
|
+
"top-forms-focusable": !0,
|
|
181
182
|
"top-disabled": a.disabled
|
|
182
183
|
}),
|
|
183
184
|
"data-top-icon": a.icon,
|
|
184
|
-
onClick: (
|
|
185
|
+
onClick: (e) => o.value = a.value
|
|
185
186
|
}, [
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
187
|
+
$(v(a.title) + " ", 1),
|
|
188
|
+
t.showIndicator ? (i(), n("span", O)) : y("", !0),
|
|
189
|
+
H(f("input", {
|
|
190
|
+
"onUpdate:modelValue": d[0] || (d[0] = (e) => o.value = e),
|
|
191
|
+
name: l,
|
|
192
|
+
type: "radio",
|
|
193
|
+
class: m({
|
|
194
|
+
"top-unvisible": !0
|
|
195
|
+
}),
|
|
196
|
+
value: a.value,
|
|
197
|
+
disabled: a.disabled
|
|
198
|
+
}, null, 8, Q), [
|
|
199
|
+
[z, o.value]
|
|
200
|
+
])
|
|
201
|
+
], 10, J))), 256))
|
|
189
202
|
], 2));
|
|
190
203
|
}
|
|
191
|
-
}),
|
|
204
|
+
}), Y = {
|
|
192
205
|
"top-scrollBarXHidding": "top-scrollBarXHidding",
|
|
193
206
|
"top-radioGroup": "top-radioGroup",
|
|
194
207
|
"top-radioGroup_item": "top-radioGroup_item",
|
|
@@ -196,12 +209,12 @@ const N = {
|
|
|
196
209
|
"top-radioGroup_circle": "top-radioGroup_circle",
|
|
197
210
|
"top-disabled": "top-disabled",
|
|
198
211
|
"top-error": "top-error"
|
|
199
|
-
},
|
|
200
|
-
$style:
|
|
201
|
-
},
|
|
212
|
+
}, Z = {
|
|
213
|
+
$style: Y
|
|
214
|
+
}, ae = /* @__PURE__ */ G(W, [["__cssModules", Z]]);
|
|
202
215
|
export {
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
216
|
+
oe as EditArea,
|
|
217
|
+
te as EditInput,
|
|
218
|
+
ae as RadioGroup
|
|
206
219
|
};
|
|
207
220
|
//# sourceMappingURL=formsExt.js.map
|
package/formsExt/formsExt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formsExt.js","sources":["../../src/components/formsExt/editArea/editArea.vue","../../src/components/formsExt/editInput/editInput.vue","../../src/components/formsExt/radioGroup/radioGroup.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref, toRef, watch, computed } from 'vue';\nimport Button from '@/components/forms/button/button.vue';\nimport type { Props, Emits } from './editArea';\nimport Textarea from '@/components/forms/textarea/textarea.vue';\n\n// TODO: добавить переменную top-forms-fixed-height и использовать ее при добавлении отступов у страницы\n\nconst props = withDefaults(defineProps<Props>(), {\n\tcancelText: 'Отмена',\n\tsubmitText: 'Отправить',\n\texpandable: true,\n});\n\nconst emit = defineEmits<Emits>();\n\nconst state = ref('');\n\n/**\n * Локальное значение modelValue, будет проброшено вверх только в случае отправки формы\n */\nconst localValue = ref(props.modelValue);\n\nwatch(toRef(props, 'modelValue'), () => {\n\tlocalValue.value = props.modelValue;\n});\n\nconst isChanged = computed(() => localValue.value !== props.modelValue);\n\nconst submit = (value: string) => {\n\temit('update:modelValue', value);\n};\n\nconst cancel = () => {\n\temit('cancel');\n\n\t// сброс введенного значения\n\tlocalValue.value = props.modelValue;\n};\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t'top-editArea': true,\n\t\t\t'top-editArea-attachedToKeyboard': attachToKeyboard,\n\t\t}\"\n\t>\n\t\t<div\n\t\t\tv-if=\"title\"\n\t\t\tclass=\"top-editArea_title\"\n\t\t>\n\t\t\t{{ title }}\n\t\t</div>\n\n\t\t<div\n\t\t\t:class=\"{\n\t\t\t\t'top-editArea_form': true,\n\t\t\t\t'top-error': isError,\n\t\t\t\t'top-focus': state == 'focus',\n\t\t\t}\"\n\t\t>\n\t\t\t<Textarea\n\t\t\t\tv-model=\"localValue\"\n\t\t\t\t:name=\"name\"\n\t\t\t\t:placeholder=\"placeholder\"\n\t\t\t\t:rows=\"rows\"\n\t\t\t\t:minHeight=\"minHeight\"\n\t\t\t\t:expandable=\"expandable\"\n\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t:readonly=\"readonly\"\n\t\t\t\t:isError=\"isError\"\n\t\t\t\t:hint=\"hint\"\n\t\t\t\tclass=\"top-editArea_element\"\n\t\t\t\t@focus=\"state = 'focus'\"\n\t\t\t\t@blur=\"state = ''\"\n\t\t\t\t@keyup.esc=\"cancel\"\n\t\t\t\t@keyup.ctrl.enter=\"submit(localValue)\"\n\t\t\t/>\n\n\t\t\t<div class=\"top-editArea_footer\">\n\t\t\t\t<Button\n\t\t\t\t\tv-if=\"isChanged && (!attachToKeyboard || modelValue)\"\n\t\t\t\t\tclass=\"top-editArea_button\"\n\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\t:icon=\"attachToKeyboard ? '': ''\"\n\t\t\t\t\t@click=\"cancel\"\n\t\t\t\t>\n\t\t\t\t\t{{ attachToKeyboard ? '' : cancelText }}\n\t\t\t\t</Button>\n\n\t\t\t\t<Button\n\t\t\t\t\tclass=\"top-editArea_button\"\n\t\t\t\t\t:icon=\"attachToKeyboard ? '': ''\"\n\t\t\t\t\t@click=\"submit(localValue)\"\n\t\t\t\t>\n\t\t\t\t\t{{ attachToKeyboard ? '' : submitText }}\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<style module>\n.top-editArea {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 6px;\n}\n\n.top-editArea_title {\n\tfont-size: 12px;\n}\n\n.top-editArea_form {\n\tbackground: var(--top-forms-background-color);\n\toutline-color: var(--color-theme-75);\n\toutline-offset: 0;\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.top-editArea_form:hover {\n\tbackground: var(--top-forms-background-color-hover);\n}\n\n/* textarea в EditArea */\n.top-textarea {\n\twidth: 100%;\n}\n\n.top-editArea_element.top-textarea_textarea {\n\tborder: none;\n\toutline: none;\n\tanimation: none;\n}\n\n/* footer */\n.top-editArea_footer {\n\tpadding: var(--top-forms-padding);\n\tdisplay: flex;\n\tjustify-content: flex-end;\n\tgap: var(--top-forms-padding);\n}\n\n/* attachedToKeyboard */\n.top-editArea-attachedToKeyboard {\n\tbackground: var(--top-forms-background-color);\n\tmargin-bottom: env(keyboard-inset-height, 0);\n\tposition: fixed;\n\tbottom: 0;\n\tright: 0;\n\tleft: 0;\n\tz-index: 2;\n\tgap: 0;\n}\n\n.top-editArea-attachedToKeyboard .top-editArea_form {\n\tborder-radius: 0;\n\tborder: none;\n\tborder-top: 1px solid var(--top-forms-border-color);\n}\n\n.top-editArea-attachedToKeyboard .top-editArea_title {\n\tborder-top: 1px solid var(--color-line-2-opacity);\n\tpadding: var(--top-forms-padding);\n}\n\n.top-editArea-attachedToKeyboard .top-editArea_footer > [data-top-icon] {\n\tborder-radius: 100%;\n}\n</style>","<script setup lang=\"ts\">\nimport { ref, toRef, watch } from 'vue';\nimport type { Props, Emits } from './editInput';\nimport Input from '@/components/forms/input/input.vue';\nimport Button from '@/components/forms/button/button.vue';\n\nconst props = defineProps<Props>();\n\nconst intermediateValue = ref(props.modelValue);\n\nwatch(toRef(props.modelValue), () => {\n\tintermediateValue.value = props.modelValue;\n});\n\nconst emit = defineEmits<Emits>();\n\nconst submit = () => {\n\temit('update:modelValue', intermediateValue.value);\n};\n</script>\n\n<template>\n\t<div class=\"top-editInput\">\n\t\t<Input\n\t\t\t:=\"input\"\n\t\t\t@keydown.esc.capture.stop=\"intermediateValue = modelValue\"\n\t\t\t@keydown.enter.stop=\"submit\"\n\t\t\tv-model=\"intermediateValue\"\n\t\t/>\n\n\t\t<Button\n\t\t\tv-if=\"intermediateValue !== modelValue\"\n\t\t\ticon=\"\"\n\t\t\tstyling=\"soft\"\n\t\t\t:=\"button\"\n\t\t\t@click=\"submit\"\n\t\t>\n\t\t\t<!-- @slot Слот Button -->\n\t\t\t<slot></slot>\n\t\t</Button>\n\t</div>\n</template>\n\n<style module>\n.top-editInput {\n\twidth: 220px;\n\tflex-grow: 1;\n\tdisplay: flex;\n\talign-items: flex-end;\n\tgap: var(--top-gap-1);\n}\n\n.top-editInput .top-input {\n\twidth: unset;\n\tflex-grow: 1;\n}\n</style>","<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport type { Props, Emits } from './radioGroup';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tsize: 's',\n});\n\nconst emit = defineEmits<Emits>();\n\nconst localValue = computed({\n\tget() {\n\t\treturn props.modelValue;\n\t},\n\n\tset(value) {\n\t\temit('update:modelValue', value);\n\t},\n});\n\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t['top-radioGroup']: true,\n\t\t\t['top-scrollBarXHidding']: true,\n\t\t\t['top-size_' + size]: !!size,\n\t\t\t['top-error']: isError,\n\t\t}\"\n\t>\n\t\t<div\n\t\t\tv-for=\"item of radiosProps\"\n\t\t\t:class=\"{\n\t\t\t\t['top-radioGroup_item-selected']: item.value === localValue,\n\t\t\t\t['top-radioGroup_item']: true,\n\t\t\t\t['top-disabled']: item.disabled,\n\t\t\t}\"\n\t\t\t:data-top-icon=\"item.icon\"\n\t\t\t@click=\"localValue = item.value\"\n\t\t>\n\t\t\t{{ item.title }}\n\n\t\t\t<span\n\t\t\t\tv-if=\"showIndicator\"\n\t\t\t\tclass=\"top-radioGroup_circle\"\n\t\t\t></span>\n\t\t</div>\n\t</div>\n</template>\n\n<style module>\n@import \"./styles/top-scrollBar.css\";\n\n.top-radioGroup {\n\tuser-select: none;\n\tbox-sizing: border-box;\n\tborder-radius: 8px;\n\tbackground-color: var(--color-theme-50);\n\theight: var(--top-forms-base-height);\n\tpadding: 2px;\n\tgap: 2px;\n\tdisplay: flex;\n\talign-items: flex-start;\n}\n\n.top-radioGroup_item {\n\tcursor: pointer;\n\tbox-sizing: border-box;\n\tborder-radius: 6px;\n\theight: calc(var(--top-forms-base-height) - 4px);\n\tpadding: 0 16px;\n\tfont-weight: 600;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tflex-grow: 1;\n\tgap: 4px;\n}\n\n.top-radioGroup_item:hover {\n\tbackground-color: var(--color-theme-25);\n\tbox-shadow: 0px 4px 32px 0px rgba(4, 9, 84, 0.10), 0px 0px 4px 0px rgba(4, 9, 84, 0.08);\n}\n\n/* selected */\n.top-radioGroup_item-selected {\n\tpointer-events: none;\n\tbackground-color: var(--color-bg-3);\n\tbox-shadow: 0px 4px 32px 0px rgba(4, 9, 84, 0.10), 0px 0px 4px 0px rgba(4, 9, 84, 0.08);\n}\n\n/* circle */\n.top-radioGroup_circle {\n\tpadding: 3px;\n\tmargin-left: auto;\n\tdisplay: flex;\n}\n\n.top-radioGroup_circle:before {\n\tcontent: \"\";\n\tborder: 1px solid var(--color-line-3-opacity);\n\tborder-radius: 50%;\n\tbox-sizing: border-box;\n\twidth: calc(var(--top-forms-option-height) - 3px * 2);\n\theight: calc(var(--top-forms-option-height) - 3px * 2);\n}\n\n.top-radioGroup_item:hover .top-radioGroup_circle:before {\n\tborder-color: var(--color-primary);\n}\n\n/* circle selected */\n.top-radioGroup_item-selected .top-radioGroup_circle:before {\n\tborder-color: var(--color-primary);\n\tborder-width: 5px;\n}\n\n.top-radioGroup_item-selected:hover .top-radioGroup_circle:before {\n\tborder-color: var(--color-primary-2);\n}\n\n/* top-disabled */\n.top-radioGroup_item.top-disabled {\n\t--top-icon-color: var(--color-text-3);\n\n\tcolor: var(--color-text-3);\n}\n\n.top-radioGroup_item.top-disabled .top-radioGroup_circle:before {\n\tborder-color: var(--color-theme-400);\n\tbackground-color: var(--color-theme-50);\n}\n\n/* top-error */\n.top-radioGroup.top-error .top-radioGroup_item:not(.top-disabled) .top-radioGroup_circle:before {\n\tborder-color: var(--color-negative);\n}\n\n.top-radioGroup.top-error .top-radioGroup_item:hover .top-radioGroup_circle:before {\n\tborder-color: var(--color-negative-2);\n}\n</style>"],"names":["state","ref","localValue","props","watch","toRef","isChanged","computed","submit","value","emit","cancel","intermediateValue"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;iBAgBMA,IAAQC,EAAI,EAAE,GAKdC,IAAaD,EAAIE,EAAM,UAAU;AAEvC,IAAAC,EAAMC,EAAMF,GAAO,YAAY,GAAG,MAAM;AACvC,MAAAD,EAAW,QAAQC,EAAM;AAAA,IAAA,CACzB;AAED,UAAMG,IAAYC,EAAS,MAAML,EAAW,UAAUC,EAAM,UAAU,GAEhEK,IAAS,CAACC,MAAkB;AACjC,MAAAC,EAAK,qBAAqBD,CAAK;AAAA,IAAA,GAG1BE,IAAS,MAAM;AACpB,MAAAD,EAAK,QAAQ,GAGbR,EAAW,QAAQC,EAAM;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBC7BpBS,IAAoBX,EAAIE,EAAM,UAAU;AAE9C,IAAAC,EAAMC,EAAMF,EAAM,UAAU,GAAG,MAAM;AACpC,MAAAS,EAAkB,QAAQT,EAAM;AAAA,IAAA,CAChC;AAID,UAAMK,IAAS,MAAM;AACf,MAAAE,EAAA,qBAAqBE,EAAkB,KAAK;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBCP5CV,IAAaK,EAAS;AAAA,MAC3B,MAAM;AACL,eAAOJ,EAAM;AAAA,MACd;AAAA,MAEA,IAAIM,GAAO;AACV,QAAAC,EAAK,qBAAqBD,CAAK;AAAA,MAChC;AAAA,IAAA,CACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"formsExt.js","sources":["../../src/components/formsExt/editArea/editArea.vue","../../src/components/formsExt/editInput/editInput.vue","../../src/components/formsExt/radioGroup/radioGroup.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { ref, toRef, watch, computed } from 'vue';\r\nimport Button from '@/components/forms/button/button.vue';\r\nimport type { Props, Emits } from './editArea';\r\nimport Textarea from '@/components/forms/textarea/textarea.vue';\r\n\r\n// TODO: добавить переменную top-forms-fixed-height и использовать ее при добавлении отступов у страницы\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n\tcancelText: 'Отмена',\r\n\tsubmitText: 'Отправить',\r\n\texpandable: true,\r\n});\r\n\r\nconst emit = defineEmits<Emits>();\r\n\r\nconst state = ref('');\r\n\r\n/**\r\n * Локальное значение modelValue, будет проброшено вверх только в случае отправки формы\r\n */\r\nconst localValue = ref(props.modelValue);\r\n\r\nwatch(toRef(props, 'modelValue'), () => {\r\n\tlocalValue.value = props.modelValue;\r\n});\r\n\r\nconst isChanged = computed(() => localValue.value !== props.modelValue);\r\n\r\nconst submit = (value: string) => {\r\n\temit('update:modelValue', value);\r\n};\r\n\r\nconst cancel = () => {\r\n\temit('cancel');\r\n\r\n\t// сброс введенного значения\r\n\tlocalValue.value = props.modelValue;\r\n};\r\n</script>\r\n\r\n<template>\r\n\t<div\r\n\t\t:class=\"{\r\n\t\t\t'top-editArea': true,\r\n\t\t\t'top-editArea-attachedToKeyboard': attachToKeyboard,\r\n\t\t}\"\r\n\t>\r\n\t\t<div\r\n\t\t\tv-if=\"title\"\r\n\t\t\tclass=\"top-editArea_title\"\r\n\t\t>\r\n\t\t\t{{ title }}\r\n\t\t</div>\r\n\r\n\t\t<div\r\n\t\t\t:class=\"{\r\n\t\t\t\t'top-editArea_form': true,\r\n\t\t\t\t'top-error': isError,\r\n\t\t\t\t'top-focus': state == 'focus',\r\n\t\t\t}\"\r\n\t\t>\r\n\t\t\t<Textarea\r\n\t\t\t\tv-model=\"localValue\"\r\n\t\t\t\t:name=\"name\"\r\n\t\t\t\t:placeholder=\"placeholder\"\r\n\t\t\t\t:rows=\"rows\"\r\n\t\t\t\t:minHeight=\"minHeight\"\r\n\t\t\t\t:expandable=\"expandable\"\r\n\t\t\t\t:disabled=\"disabled\"\r\n\t\t\t\t:readonly=\"readonly\"\r\n\t\t\t\t:isError=\"isError\"\r\n\t\t\t\t:hint=\"hint\"\r\n\t\t\t\tclass=\"top-editArea_element\"\r\n\t\t\t\t@focus=\"state = 'focus'\"\r\n\t\t\t\t@blur=\"state = ''\"\r\n\t\t\t\t@keyup.esc=\"cancel\"\r\n\t\t\t\t@keyup.ctrl.enter=\"submit(localValue)\"\r\n\t\t\t/>\r\n\r\n\t\t\t<div class=\"top-editArea_footer\">\r\n\t\t\t\t<Button\r\n\t\t\t\t\tv-if=\"isChanged && (!attachToKeyboard || modelValue)\"\r\n\t\t\t\t\tclass=\"top-editArea_button\"\r\n\t\t\t\t\tcolor=\"theme\"\r\n\t\t\t\t\t:icon=\"attachToKeyboard ? '': ''\"\r\n\t\t\t\t\t@click=\"cancel\"\r\n\t\t\t\t>\r\n\t\t\t\t\t{{ attachToKeyboard ? '' : cancelText }}\r\n\t\t\t\t</Button>\r\n\r\n\t\t\t\t<Button\r\n\t\t\t\t\tclass=\"top-editArea_button\"\r\n\t\t\t\t\t:icon=\"attachToKeyboard ? '': ''\"\r\n\t\t\t\t\t@click=\"submit(localValue)\"\r\n\t\t\t\t>\r\n\t\t\t\t\t{{ attachToKeyboard ? '' : submitText }}\r\n\t\t\t\t</Button>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<style module>\r\n.top-editArea {\r\n\tdisplay: flex;\r\n\tflex-direction: column;\r\n\tgap: 6px;\r\n}\r\n\r\n.top-editArea_title {\r\n\tfont-size: 12px;\r\n}\r\n\r\n.top-editArea_form {\r\n\tbackground: var(--top-forms-background-color);\r\n\toutline-color: var(--color-theme-75);\r\n\toutline-offset: 0;\r\n\tdisplay: flex;\r\n\tflex-direction: column;\r\n}\r\n\r\n.top-editArea_form:hover {\r\n\tbackground: var(--top-forms-background-color-hover);\r\n}\r\n\r\n/* textarea в EditArea */\r\n.top-textarea {\r\n\twidth: 100%;\r\n}\r\n\r\n.top-editArea_element.top-textarea_textarea {\r\n\tborder: none;\r\n\toutline: none;\r\n\tanimation: none;\r\n}\r\n\r\n/* footer */\r\n.top-editArea_footer {\r\n\tpadding: var(--top-forms-padding);\r\n\tdisplay: flex;\r\n\tjustify-content: flex-end;\r\n\tgap: var(--top-forms-padding);\r\n}\r\n\r\n/* attachedToKeyboard */\r\n.top-editArea-attachedToKeyboard {\r\n\tbackground: var(--top-forms-background-color);\r\n\tmargin-bottom: env(keyboard-inset-height, 0);\r\n\tposition: fixed;\r\n\tbottom: 0;\r\n\tright: 0;\r\n\tleft: 0;\r\n\tz-index: 2;\r\n\tgap: 0;\r\n}\r\n\r\n.top-editArea-attachedToKeyboard .top-editArea_form {\r\n\tborder-radius: 0;\r\n\tborder: none;\r\n\tborder-top: 1px solid var(--top-forms-border-color);\r\n}\r\n\r\n.top-editArea-attachedToKeyboard .top-editArea_title {\r\n\tborder-top: 1px solid var(--color-line-2-opacity);\r\n\tpadding: var(--top-forms-padding);\r\n}\r\n\r\n.top-editArea-attachedToKeyboard .top-editArea_footer > [data-top-icon] {\r\n\tborder-radius: 100%;\r\n}\r\n</style>","<script setup lang=\"ts\">\r\nimport { ref, toRef, watch } from 'vue';\r\nimport type { Props, Emits } from './editInput';\r\nimport Input from '@/components/forms/input/input.vue';\r\nimport Button from '@/components/forms/button/button.vue';\r\n\r\nconst props = defineProps<Props>();\r\n\r\nconst intermediateValue = ref(props.modelValue);\r\n\r\nwatch(toRef(props.modelValue), () => {\r\n\tintermediateValue.value = props.modelValue;\r\n});\r\n\r\nconst emit = defineEmits<Emits>();\r\n\r\nconst submit = () => {\r\n\temit('update:modelValue', intermediateValue.value);\r\n};\r\n</script>\r\n\r\n<template>\r\n\t<div class=\"top-editInput\">\r\n\t\t<Input\r\n\t\t\t:=\"input\"\r\n\t\t\t@keydown.esc.capture.stop=\"intermediateValue = modelValue\"\r\n\t\t\t@keydown.enter.stop=\"submit\"\r\n\t\t\tv-model=\"intermediateValue\"\r\n\t\t/>\r\n\r\n\t\t<Button\r\n\t\t\tv-if=\"intermediateValue !== modelValue\"\r\n\t\t\ticon=\"\"\r\n\t\t\tstyling=\"soft\"\r\n\t\t\t:=\"button\"\r\n\t\t\t@click=\"submit\"\r\n\t\t>\r\n\t\t\t<!-- @slot Слот Button -->\r\n\t\t\t<slot></slot>\r\n\t\t</Button>\r\n\t</div>\r\n</template>\r\n\r\n<style module>\r\n.top-editInput {\r\n\twidth: 220px;\r\n\tflex-grow: 1;\r\n\tdisplay: flex;\r\n\talign-items: flex-end;\r\n\tgap: var(--top-gap-1);\r\n}\r\n\r\n.top-editInput .top-input {\r\n\twidth: unset;\r\n\tflex-grow: 1;\r\n}\r\n</style>","<script setup lang=\"ts\">\r\nimport { computed } from 'vue';\r\nimport type { Props, Emits } from './radioGroup';\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n\tsize: 's',\r\n});\r\n\r\nconst emit = defineEmits<Emits>();\r\n\r\nconst localValue = computed({\r\n\tget() {\r\n\t\treturn props.modelValue;\r\n\t},\r\n\r\n\tset(value) {\r\n\t\temit('update:modelValue', value);\r\n\t},\r\n});\r\n\r\nconst uid = 'radioGroup-' + Math.random();\r\n</script>\r\n\r\n<template>\r\n\t<div\r\n\t\t:class=\"{\r\n\t\t\t['top-radioGroup']: true,\r\n\t\t\t['top-scrollBarXHidding']: true,\r\n\t\t\t['top-size_' + size]: !!size,\r\n\t\t\t['top-error']: isError,\r\n\t\t}\"\r\n\t>\r\n\t\t<label\r\n\t\t\tv-for=\"item of radiosProps\"\r\n\t\t\t:class=\"{\r\n\t\t\t\t['top-radioGroup_item-selected']: item.value === localValue,\r\n\t\t\t\t['top-radioGroup_item']: true,\r\n\t\t\t\t['top-forms-focusable']: true,\r\n\t\t\t\t['top-disabled']: item.disabled,\r\n\t\t\t}\"\r\n\t\t\t:data-top-icon=\"item.icon\"\r\n\t\t\t@click=\"localValue = item.value\"\r\n\t\t>\r\n\t\t\t{{ item.title }}\r\n\r\n\t\t\t<span\r\n\t\t\t\tv-if=\"showIndicator\"\r\n\t\t\t\tclass=\"top-radioGroup_circle\"\r\n\t\t\t></span>\r\n\r\n\t\t\t<!-- Для нативной навигации -->\r\n\t\t\t<input\r\n\t\t\t\tv-model=\"localValue\"\r\n\t\t\t\t:name=\"uid\"\r\n\t\t\t\ttype=\"radio\"\r\n\t\t\t\t:class=\"{\r\n\t\t\t\t\t['top-unvisible']: true,\r\n\t\t\t\t}\"\r\n\t\t\t\t:value=\"item.value\"\r\n\t\t\t\t:disabled=\"item.disabled\"\r\n\t\t\t/>\r\n\t\t</label>\r\n\t</div>\r\n</template>\r\n\r\n<style module>\r\n@import \"./styles/top-scrollBar.css\";\r\n\r\n.top-radioGroup {\r\n\tuser-select: none;\r\n\tbox-sizing: border-box;\r\n\tborder-radius: 8px;\r\n\tbackground-color: var(--color-theme-50);\r\n\theight: var(--top-forms-base-height);\r\n\tpadding: 2px;\r\n\tgap: 2px;\r\n\tdisplay: flex;\r\n\talign-items: flex-start;\r\n}\r\n\r\n.top-radioGroup_item {\r\n\tcursor: pointer;\r\n\tbox-sizing: border-box;\r\n\tborder-radius: 6px;\r\n\theight: calc(var(--top-forms-base-height) - 4px);\r\n\tpadding: 0 16px;\r\n\tfont-weight: 600;\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n\tflex-grow: 1;\r\n\tgap: 4px;\r\n}\r\n\r\n.top-radioGroup_item:hover {\r\n\tbackground-color: var(--color-theme-25);\r\n\tbox-shadow: 0px 4px 32px 0px rgba(4, 9, 84, 0.10), 0px 0px 4px 0px rgba(4, 9, 84, 0.08);\r\n}\r\n\r\n/* selected */\r\n.top-radioGroup_item-selected {\r\n\tpointer-events: none;\r\n\tbackground-color: var(--color-bg-3);\r\n\tbox-shadow: 0px 4px 32px 0px rgba(4, 9, 84, 0.10), 0px 0px 4px 0px rgba(4, 9, 84, 0.08);\r\n}\r\n\r\n/* circle */\r\n.top-radioGroup_circle {\r\n\tcontent: \"\";\r\n\tbox-sizing: border-box;\r\n\tborder: 1px solid var(--color-line-3-opacity);\r\n\tborder-radius: 50%;\r\n\tpadding: 3px;\r\n\tmargin-left: auto;\r\n\twidth: calc(var(--top-forms-option-height) - 3px * 2);\r\n\theight: calc(var(--top-forms-option-height) - 3px * 2);\r\n}\r\n\r\n.top-radioGroup_item:hover .top-radioGroup_circle:before {\r\n\tborder-color: var(--color-primary);\r\n}\r\n\r\n/* circle selected */\r\n.top-radioGroup_item-selected .top-radioGroup_circle {\r\n\tborder-color: var(--color-primary);\r\n\tborder-width: 5px;\r\n}\r\n\r\n.top-radioGroup_item-selected:hover .top-radioGroup_circle {\r\n\tborder-color: var(--color-primary-2);\r\n}\r\n\r\n/* top-disabled */\r\n.top-radioGroup_item.top-disabled {\r\n\t--top-icon-color: var(--color-text-3);\r\n\r\n\tcolor: var(--color-text-3);\r\n}\r\n\r\n.top-radioGroup_item.top-disabled .top-radioGroup_circle {\r\n\tborder-color: var(--color-theme-400);\r\n\tbackground-color: var(--color-theme-50);\r\n}\r\n\r\n/* top-error */\r\n.top-radioGroup.top-error .top-radioGroup_item:not(.top-disabled) .top-radioGroup_circle {\r\n\tborder-color: var(--color-negative);\r\n}\r\n</style>"],"names":["state","ref","localValue","props","watch","toRef","isChanged","computed","submit","value","emit","cancel","intermediateValue","uid"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;iBAgBMA,IAAQC,EAAI,EAAE,GAKdC,IAAaD,EAAIE,EAAM,UAAU;AAEvC,IAAAC,EAAMC,EAAMF,GAAO,YAAY,GAAG,MAAM;AACvC,MAAAD,EAAW,QAAQC,EAAM;AAAA,IAAA,CACzB;AAED,UAAMG,IAAYC,EAAS,MAAML,EAAW,UAAUC,EAAM,UAAU,GAEhEK,IAAS,CAACC,MAAkB;AACjC,MAAAC,EAAK,qBAAqBD,CAAK;AAAA,IAAA,GAG1BE,IAAS,MAAM;AACpB,MAAAD,EAAK,QAAQ,GAGbR,EAAW,QAAQC,EAAM;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBC7BpBS,IAAoBX,EAAIE,EAAM,UAAU;AAE9C,IAAAC,EAAMC,EAAMF,EAAM,UAAU,GAAG,MAAM;AACpC,MAAAS,EAAkB,QAAQT,EAAM;AAAA,IAAA,CAChC;AAID,UAAMK,IAAS,MAAM;AACf,MAAAE,EAAA,qBAAqBE,EAAkB,KAAK;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBCP5CV,IAAaK,EAAS;AAAA,MAC3B,MAAM;AACL,eAAOJ,EAAM;AAAA,MACd;AAAA,MAEA,IAAIM,GAAO;AACV,QAAAC,EAAK,qBAAqBD,CAAK;AAAA,MAChC;AAAA,IAAA,CACA,GAEKI,IAAM,gBAAgB,KAAK,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/formsExt.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.top-editArea{display:flex;flex-direction:column;gap:6px}.top-editArea_title{font-size:12px}.top-editArea_form{background:var(--top-forms-background-color);outline-color:var(--color-theme-75);outline-offset:0;display:flex;flex-direction:column}.top-editArea_form:hover{background:var(--top-forms-background-color-hover)}.top-textarea{width:100%}.top-editArea_element.top-textarea_textarea{border:none;outline:none;animation:none}.top-editArea_footer{padding:var(--top-forms-padding);display:flex;justify-content:flex-end;gap:var(--top-forms-padding)}.top-editArea-attachedToKeyboard{background:var(--top-forms-background-color);margin-bottom:env(keyboard-inset-height,0);position:fixed;bottom:0;right:0;left:0;z-index:2;gap:0}.top-editArea-attachedToKeyboard .top-editArea_form{border-radius:0;border:none;border-top:1px solid var(--top-forms-border-color)}.top-editArea-attachedToKeyboard .top-editArea_title{border-top:1px solid var(--color-line-2-opacity);padding:var(--top-forms-padding)}.top-editArea-attachedToKeyboard .top-editArea_footer>[data-top-icon]{border-radius:100%}.top-editInput{width:220px;flex-grow:1;display:flex;align-items:flex-end;gap:var(--top-gap-1)}.top-editInput .top-input{width:unset;flex-grow:1}.top-scrollBarXHidding{scrollbar-width:none;overflow-x:auto;overflow-y:hidden}.top-scrollBarXHidding:hover{scrollbar-width:thin}.top-scrollBarXHidding::-webkit-scrollbar{height:6px;display:none}.top-scrollBarXHidding:hover::-webkit-scrollbar{display:block;scrollbar-width:thin}.top-scrollBarXHidding::-webkit-scrollbar-track{background-color:transparent;box-shadow:inset #0000000f 0 0 0 10px}.top-scrollBarXHidding::-webkit-scrollbar-track:hover{box-shadow:inset #00000014 0 0 0 10px}.top-scrollBarXHidding::-webkit-scrollbar-track:active{box-shadow:inset #0000001a 0 0 0 10px}.top-scrollBarXHidding::-webkit-scrollbar-thumb{background-color:var(--color-line-1-opacity)}.top-scrollBarXHidding::-webkit-scrollbar-thumb:hover{background-color:var(--color-line-2-opacity)}.top-scrollBarXHidding::-webkit-scrollbar-thumb:active{background-color:var(--color-line-3-opacity)}.top-scrollBarXHidding::-webkit-scrollbar-button{width:0;height:0}.top-radioGroup{-webkit-user-select:none;user-select:none;box-sizing:border-box;border-radius:8px;background-color:var(--color-theme-50);height:var(--top-forms-base-height);padding:2px;gap:2px;display:flex;align-items:flex-start}.top-radioGroup_item{cursor:pointer;box-sizing:border-box;border-radius:6px;height:calc(var(--top-forms-base-height) - 4px);padding:0 16px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-grow:1;gap:4px}.top-radioGroup_item:hover{background-color:var(--color-theme-25);box-shadow:0 4px 32px #0409541a,0 0 4px #04095414}.top-radioGroup_item-selected{pointer-events:none;background-color:var(--color-bg-3);box-shadow:0 4px 32px #0409541a,0 0 4px #04095414}.top-radioGroup_circle{
|
|
1
|
+
.top-editArea{display:flex;flex-direction:column;gap:6px}.top-editArea_title{font-size:12px}.top-editArea_form{background:var(--top-forms-background-color);outline-color:var(--color-theme-75);outline-offset:0;display:flex;flex-direction:column}.top-editArea_form:hover{background:var(--top-forms-background-color-hover)}.top-textarea{width:100%}.top-editArea_element.top-textarea_textarea{border:none;outline:none;animation:none}.top-editArea_footer{padding:var(--top-forms-padding);display:flex;justify-content:flex-end;gap:var(--top-forms-padding)}.top-editArea-attachedToKeyboard{background:var(--top-forms-background-color);margin-bottom:env(keyboard-inset-height,0);position:fixed;bottom:0;right:0;left:0;z-index:2;gap:0}.top-editArea-attachedToKeyboard .top-editArea_form{border-radius:0;border:none;border-top:1px solid var(--top-forms-border-color)}.top-editArea-attachedToKeyboard .top-editArea_title{border-top:1px solid var(--color-line-2-opacity);padding:var(--top-forms-padding)}.top-editArea-attachedToKeyboard .top-editArea_footer>[data-top-icon]{border-radius:100%}.top-editInput{width:220px;flex-grow:1;display:flex;align-items:flex-end;gap:var(--top-gap-1)}.top-editInput .top-input{width:unset;flex-grow:1}.top-scrollBarXHidding{scrollbar-width:none;overflow-x:auto;overflow-y:hidden}.top-scrollBarXHidding:hover{scrollbar-width:thin}.top-scrollBarXHidding::-webkit-scrollbar{height:6px;display:none}.top-scrollBarXHidding:hover::-webkit-scrollbar{display:block;scrollbar-width:thin}.top-scrollBarXHidding::-webkit-scrollbar-track{background-color:transparent;box-shadow:inset #0000000f 0 0 0 10px}.top-scrollBarXHidding::-webkit-scrollbar-track:hover{box-shadow:inset #00000014 0 0 0 10px}.top-scrollBarXHidding::-webkit-scrollbar-track:active{box-shadow:inset #0000001a 0 0 0 10px}.top-scrollBarXHidding::-webkit-scrollbar-thumb{background-color:var(--color-line-1-opacity)}.top-scrollBarXHidding::-webkit-scrollbar-thumb:hover{background-color:var(--color-line-2-opacity)}.top-scrollBarXHidding::-webkit-scrollbar-thumb:active{background-color:var(--color-line-3-opacity)}.top-scrollBarXHidding::-webkit-scrollbar-button{width:0;height:0}.top-radioGroup{-webkit-user-select:none;user-select:none;box-sizing:border-box;border-radius:8px;background-color:var(--color-theme-50);height:var(--top-forms-base-height);padding:2px;gap:2px;display:flex;align-items:flex-start}.top-radioGroup_item{cursor:pointer;box-sizing:border-box;border-radius:6px;height:calc(var(--top-forms-base-height) - 4px);padding:0 16px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-grow:1;gap:4px}.top-radioGroup_item:hover{background-color:var(--color-theme-25);box-shadow:0 4px 32px #0409541a,0 0 4px #04095414}.top-radioGroup_item-selected{pointer-events:none;background-color:var(--color-bg-3);box-shadow:0 4px 32px #0409541a,0 0 4px #04095414}.top-radioGroup_circle{content:"";box-sizing:border-box;border:1px solid var(--color-line-3-opacity);border-radius:50%;padding:3px;margin-left:auto;width:calc(var(--top-forms-option-height) - 3px * 2);height:calc(var(--top-forms-option-height) - 3px * 2)}.top-radioGroup_item:hover .top-radioGroup_circle:before{border-color:var(--color-primary)}.top-radioGroup_item-selected .top-radioGroup_circle{border-color:var(--color-primary);border-width:5px}.top-radioGroup_item-selected:hover .top-radioGroup_circle{border-color:var(--color-primary-2)}.top-radioGroup_item.top-disabled{--top-icon-color: var(--color-text-3);color:var(--color-text-3)}.top-radioGroup_item.top-disabled .top-radioGroup_circle{border-color:var(--color-theme-400);background-color:var(--color-theme-50)}.top-radioGroup.top-error .top-radioGroup_item:not(.top-disabled) .top-radioGroup_circle{border-color:var(--color-negative)}
|