@nmorph/nmorph-ui-kit 2.2.44 → 2.2.46
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/dist/assets/icons/burger.svg.js +5 -5
- package/dist/assets/icons/chevron-up.svg.js +4 -4
- package/dist/components/basic/nmorph-scroll/NmorphScroll.css +1 -1
- package/dist/components/basic/nmorph-scroll/NmorphScroll.vue.js +179 -74
- package/dist/components/data/nmorph-emoji-picker/NmorphEmojiPicker.css +1 -1
- package/dist/components/data/nmorph-emoji-picker/NmorphEmojiPicker.vue.js +285 -251
- package/dist/emoji/base.js +77 -0
- package/dist/emoji/index.d.ts +2 -0
- package/dist/emoji/index.js +16 -0
- package/dist/emoji/locales/en.js +41 -0
- package/dist/emoji/locales/ru.js +41 -0
- package/dist/emoji/locales/zh.js +41 -0
- package/dist/hooks/use-common-styles.js +92 -12
- package/dist/index.es.js +861 -855
- package/dist/index.umd.js +107 -27
- package/dist/package.json.js +1 -1
- package/dist/src/components/basic/nmorph-scroll/NmorphScroll.vue.d.ts +1 -0
- package/dist/src/components/data/nmorph-emoji-picker/types.d.ts +1 -0
- package/dist/src/components/form/nmorph-text-input/NmorphTextInput.vue.d.ts +1 -1
- package/dist/src/components/form/nmorph-textarea/NmorphTextarea.vue.d.ts +1 -1
- package/dist/src/components/navigation/nmorph-backtop/NmorphBacktop.vue.d.ts +1 -1
- package/dist/src/emoji/base.d.ts +20 -0
- package/dist/src/emoji/index.d.ts +8 -0
- package/dist/src/emoji/locales/en.d.ts +3 -0
- package/dist/src/emoji/locales/ru.d.ts +3 -0
- package/dist/src/emoji/locales/zh.d.ts +3 -0
- package/dist/src/main.d.ts +1 -0
- package/dist/style.css +1 -1
- package/package.json +17 -1
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { openBlock as t, createElementBlock as
|
|
1
|
+
import { openBlock as t, createElementBlock as o, createElementVNode as r } from "vue";
|
|
2
2
|
const n = {
|
|
3
3
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4
4
|
viewBox: "0 0 32 32"
|
|
5
5
|
};
|
|
6
6
|
function l(m, e) {
|
|
7
|
-
return t(),
|
|
8
|
-
|
|
7
|
+
return t(), o("svg", n, [...e[0] || (e[0] = [
|
|
8
|
+
r("path", { d: "M2 6h28v6H2zm0 8h28v6H2zm0 8h28v6H2z" }, null, -1)
|
|
9
9
|
])]);
|
|
10
10
|
}
|
|
11
|
-
const
|
|
11
|
+
const s = { render: l };
|
|
12
12
|
export {
|
|
13
|
-
|
|
13
|
+
s as default,
|
|
14
14
|
l as render
|
|
15
15
|
};
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { openBlock as
|
|
1
|
+
import { openBlock as t, createElementBlock as o, createElementVNode as n } from "vue";
|
|
2
2
|
const r = {
|
|
3
3
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4
4
|
viewBox: "0 0 32 32"
|
|
5
5
|
};
|
|
6
6
|
function l(c, e) {
|
|
7
|
-
return
|
|
7
|
+
return t(), o("svg", r, [...e[0] || (e[0] = [
|
|
8
8
|
n("path", { d: "M2 20 16 8l14 12-2 2-12-10L4 22Z" }, null, -1)
|
|
9
9
|
])]);
|
|
10
10
|
}
|
|
11
|
-
const
|
|
11
|
+
const d = { render: l };
|
|
12
12
|
export {
|
|
13
|
-
|
|
13
|
+
d as default,
|
|
14
14
|
l as render
|
|
15
15
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.nmorph-scroll{--thumb-color: var(--nmorph-scroll-thumb-color, var(--nmorph-text-color));color-scheme:var(--nmorph-scroll-color-scheme, light);scrollbar-color:var(--thumb-color)
|
|
1
|
+
.nmorph-scroll{--thumb-color: var(--nmorph-scroll-thumb-color, var(--nmorph-text-color));position:relative;overflow:hidden;color-scheme:var(--nmorph-scroll-color-scheme, light)}.nmorph-scroll__viewport{display:inherit;flex-direction:inherit;flex-wrap:inherit;grid-auto-flow:inherit;grid-template-columns:inherit;grid-template-rows:inherit;gap:inherit;justify-content:inherit;align-content:inherit;align-items:inherit;box-sizing:border-box;width:100%;height:100%;color-scheme:inherit;scrollbar-width:none;-ms-overflow-style:none}.nmorph-scroll__viewport::-webkit-scrollbar{display:none;width:0;height:0;background:transparent}.nmorph-scroll__bar{position:absolute;z-index:1;background:transparent;border-radius:var(--border-radius-40);box-shadow:var(--nmorph-shadow-inset);opacity:.78;transition:opacity ease-in-out .16s,background-color ease-in-out .16s;touch-action:none}.nmorph-scroll__bar--vertical{top:0;right:0;width:var(--bar-width)}.nmorph-scroll__bar--horizontal{right:0;bottom:0;left:0;height:var(--bar-height)}.nmorph-scroll__thumb{position:absolute;top:0;left:0;background-color:var(--thumb-color);border-radius:var(--border-radius-40);cursor:pointer;transition:background-color ease-in-out .16s;touch-action:none}.nmorph-scroll__thumb--vertical{width:100%}.nmorph-scroll__thumb--horizontal{height:100%}.nmorph-scroll--show-bars .nmorph-scroll__bar,.nmorph-scroll__bar:hover{opacity:1}.nmorph-scroll--dragging .nmorph-scroll__thumb{cursor:grabbing}.nmorph-scroll::-webkit-scrollbar{width:var(--bar-width);height:var(--bar-height);background-color:transparent;cursor:pointer;transition:width ease-in-out .2s}.nmorph-scroll::-webkit-scrollbar-button,.nmorph-scroll::-webkit-scrollbar-button:single-button,.nmorph-scroll::-webkit-scrollbar-button:double-button,.nmorph-scroll::-webkit-scrollbar-button:vertical:start:decrement,.nmorph-scroll::-webkit-scrollbar-button:vertical:end:increment,.nmorph-scroll::-webkit-scrollbar-button:horizontal:start:decrement,.nmorph-scroll::-webkit-scrollbar-button:horizontal:end:increment{display:none!important;width:0!important;min-width:0!important;max-width:0!important;height:0!important;min-height:0!important;max-height:0!important;background:transparent!important;background-image:none!important;border:0!important;appearance:none}.nmorph-scroll::-webkit-scrollbar-track{background:transparent;border-radius:var(--border-radius-40);box-shadow:var(--nmorph-shadow-inset)}.nmorph-scroll::-webkit-scrollbar-thumb{background-color:var(--thumb-color);border-radius:var(--border-radius-40)}.nmorph-scroll::-webkit-scrollbar-corner{background-color:transparent}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import './NmorphScroll.css';
|
|
2
|
-
import { defineComponent as
|
|
3
|
-
import { useModifiers as
|
|
4
|
-
const
|
|
2
|
+
import { defineComponent as Pe, ref as c, computed as n, inject as we, onUnmounted as He, onMounted as ze, nextTick as G, watch as N, openBlock as T, createElementBlock as W, normalizeStyle as h, normalizeClass as Be, createElementVNode as M, renderSlot as Te, createCommentVNode as U } from "vue";
|
|
3
|
+
import { useModifiers as We } from "../../../utils/create-modifiers.js";
|
|
4
|
+
const ke = /* @__PURE__ */ Pe({
|
|
5
5
|
__name: "NmorphScroll",
|
|
6
6
|
props: {
|
|
7
7
|
height: { default: "100%" },
|
|
@@ -21,95 +21,200 @@ const F = /* @__PURE__ */ $({
|
|
|
21
21
|
yGapInPx: { default: 0 }
|
|
22
22
|
},
|
|
23
23
|
emits: ["on-scroll", "update:model-value", "on-scroll-end"],
|
|
24
|
-
setup(
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
setup(j, { expose: q, emit: A }) {
|
|
25
|
+
const l = j, F = c(null), s = c(null), J = n(() => l.scrollYProp), K = n(() => l.scrollXProp), f = c(!1), g = c(!1), i = c({
|
|
26
|
+
clientWidth: 0,
|
|
27
|
+
clientHeight: 0,
|
|
28
|
+
scrollWidth: 0,
|
|
29
|
+
scrollHeight: 0,
|
|
30
|
+
scrollLeft: 0,
|
|
31
|
+
scrollTop: 0
|
|
32
|
+
}), y = c(!1);
|
|
33
|
+
let b, a, _ = "";
|
|
34
|
+
const m = () => {
|
|
35
|
+
const e = s.value;
|
|
36
|
+
if (!e) {
|
|
37
|
+
f.value = !1, g.value = !1, i.value = {
|
|
38
|
+
clientWidth: 0,
|
|
39
|
+
clientHeight: 0,
|
|
40
|
+
scrollWidth: 0,
|
|
41
|
+
scrollHeight: 0,
|
|
42
|
+
scrollLeft: 0,
|
|
43
|
+
scrollTop: 0
|
|
44
|
+
};
|
|
29
45
|
return;
|
|
30
46
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
const t = {
|
|
48
|
+
clientWidth: e.clientWidth,
|
|
49
|
+
clientHeight: e.clientHeight,
|
|
50
|
+
scrollWidth: e.scrollWidth,
|
|
51
|
+
scrollHeight: e.scrollHeight,
|
|
52
|
+
scrollLeft: e.scrollLeft,
|
|
53
|
+
scrollTop: e.scrollTop
|
|
54
|
+
};
|
|
55
|
+
i.value = t, f.value = t.scrollHeight > t.clientHeight, g.value = t.scrollWidth > t.clientWidth;
|
|
56
|
+
}, Q = n(() => l.yBarWidthInPx + l.yGapInPx), Z = n(() => l.xBarWidthInPx + l.xGapInPx), ee = n(
|
|
57
|
+
() => l.scrollYProp === "hidden" || !f.value ? "0" : `${Q.value}px`
|
|
58
|
+
), te = n(
|
|
59
|
+
() => l.scrollXProp === "hidden" || !g.value ? "0" : `${Z.value}px`
|
|
60
|
+
), k = n(() => `${l.yBarWidthInPx}px`), E = n(() => `${l.xBarWidthInPx}px`), oe = n(() => B.value ? E.value : "0px"), le = n(() => z.value ? k.value : "0px"), ne = we("nmorph");
|
|
61
|
+
let v;
|
|
62
|
+
const P = A, I = () => {
|
|
63
|
+
const e = s.value;
|
|
64
|
+
if (!e) return;
|
|
65
|
+
const t = Math.trunc(e.scrollLeft), o = Math.trunc(e.scrollTop);
|
|
66
|
+
P("update:model-value", { x: t, y: o });
|
|
67
|
+
}, re = () => {
|
|
68
|
+
P("on-scroll-end");
|
|
69
|
+
}, ae = (e) => {
|
|
70
|
+
m(), P("on-scroll", e), s.value && (l.updateOnlyOnScrollEnd || I(), v !== void 0 && clearTimeout(v), v = setTimeout(() => {
|
|
71
|
+
l.updateOnlyOnScrollEnd && I(), re();
|
|
72
|
+
}, l.scrollEndDelay));
|
|
49
73
|
};
|
|
50
|
-
|
|
51
|
-
|
|
74
|
+
He(() => {
|
|
75
|
+
v !== void 0 && clearTimeout(v), b?.disconnect(), V();
|
|
52
76
|
});
|
|
53
|
-
const
|
|
54
|
-
() =>
|
|
55
|
-
"nmorph-scroll":
|
|
77
|
+
const w = c(!1), ie = n(
|
|
78
|
+
() => We({
|
|
79
|
+
"nmorph-scroll": {
|
|
80
|
+
"show-bars": w.value || y.value,
|
|
81
|
+
dragging: y.value
|
|
82
|
+
}
|
|
56
83
|
})
|
|
57
|
-
),
|
|
58
|
-
const { x:
|
|
59
|
-
|
|
60
|
-
left:
|
|
61
|
-
top:
|
|
84
|
+
), H = (e) => {
|
|
85
|
+
const { x: t, y: o } = e;
|
|
86
|
+
s.value?.scrollTo({
|
|
87
|
+
left: t,
|
|
88
|
+
top: o,
|
|
62
89
|
behavior: "smooth"
|
|
63
90
|
});
|
|
64
91
|
};
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
92
|
+
ze(() => {
|
|
93
|
+
H(l.modelValue), G(m), typeof ResizeObserver < "u" && s.value && (b = new ResizeObserver(() => {
|
|
94
|
+
m();
|
|
95
|
+
}), b.observe(s.value));
|
|
96
|
+
}), N(
|
|
97
|
+
() => l.modelValue,
|
|
98
|
+
(e) => {
|
|
99
|
+
H(e);
|
|
71
100
|
},
|
|
72
101
|
{ deep: !0, immediate: !0 }
|
|
73
|
-
),
|
|
74
|
-
() =>
|
|
102
|
+
), N(
|
|
103
|
+
() => ne?.browser.dimensions,
|
|
75
104
|
() => {
|
|
76
|
-
|
|
105
|
+
G(m);
|
|
77
106
|
},
|
|
78
107
|
{ deep: !0, immediate: !0 }
|
|
79
108
|
);
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
109
|
+
const se = n(() => l.cssScrollBehavior), ce = n(() => l.height), ue = n(() => l.maxHeight), de = n(() => ({
|
|
110
|
+
"--bar-width": k.value,
|
|
111
|
+
"--bar-height": E.value,
|
|
112
|
+
boxSizing: "border-box",
|
|
113
|
+
minWidth: "0",
|
|
114
|
+
minHeight: "0",
|
|
115
|
+
height: ce.value,
|
|
116
|
+
maxHeight: ue.value
|
|
117
|
+
})), he = n(() => ({
|
|
118
|
+
paddingRight: ee.value,
|
|
119
|
+
paddingBottom: te.value,
|
|
120
|
+
overflowX: K.value,
|
|
121
|
+
overflowY: J.value,
|
|
122
|
+
scrollBehavior: se.value
|
|
123
|
+
})), z = n(() => l.scrollYProp !== "hidden" && f.value), B = n(() => l.scrollXProp !== "hidden" && g.value), me = n(
|
|
124
|
+
() => Math.max(0, i.value.clientHeight - (B.value ? l.xBarWidthInPx : 0))
|
|
125
|
+
), ve = n(
|
|
126
|
+
() => Math.max(0, i.value.clientWidth - (z.value ? l.yBarWidthInPx : 0))
|
|
127
|
+
), p = (e) => e === "y" ? me.value : ve.value, L = (e) => e === "y" ? i.value.clientHeight : i.value.clientWidth, O = (e) => e === "y" ? i.value.scrollHeight : i.value.scrollWidth, D = (e) => e === "y" ? i.value.scrollTop : i.value.scrollLeft, pe = (e) => Math.min(p(e), Math.max(18, e === "y" ? l.yBarWidthInPx * 3 : l.xBarWidthInPx * 3)), S = (e) => Math.max(0, O(e) - L(e)), u = (e) => {
|
|
128
|
+
const t = p(e), o = O(e), r = L(e);
|
|
129
|
+
return t <= 0 || o <= r ? 0 : Math.min(t, Math.max(pe(e), r / o * t));
|
|
130
|
+
}, C = (e) => {
|
|
131
|
+
const t = S(e), o = Math.max(0, p(e) - u(e));
|
|
132
|
+
return !t || !o ? 0 : D(e) / t * o;
|
|
133
|
+
}, fe = n(() => ({
|
|
134
|
+
height: `${u("y")}px`,
|
|
135
|
+
transform: `translate3d(0, ${C("y")}px, 0)`
|
|
136
|
+
})), ge = n(() => ({
|
|
137
|
+
width: `${u("x")}px`,
|
|
138
|
+
transform: `translate3d(${C("x")}px, 0, 0)`
|
|
139
|
+
})), R = (e, t) => {
|
|
140
|
+
const o = s.value;
|
|
141
|
+
if (!o) return;
|
|
142
|
+
const r = Math.max(0, Math.min(S(e), t));
|
|
143
|
+
e === "y" ? o.scrollTop = r : o.scrollLeft = r, m();
|
|
144
|
+
}, V = () => {
|
|
145
|
+
a && (window.removeEventListener("pointermove", X), window.removeEventListener("pointerup", x), window.removeEventListener("pointercancel", x), a = void 0, y.value = !1, document.body && (document.body.style.userSelect = _));
|
|
146
|
+
}, X = (e) => {
|
|
147
|
+
if (!a) return;
|
|
148
|
+
const o = (a.axis === "y" ? e.clientY : e.clientX) - a.pointerStart, r = Math.max(1, a.trackSize - a.thumbSize), d = o / r * a.maxScroll;
|
|
149
|
+
R(a.axis, a.scrollStart + d);
|
|
150
|
+
}, x = () => {
|
|
151
|
+
V();
|
|
152
|
+
}, Y = (e, t) => {
|
|
153
|
+
t.preventDefault(), t.stopPropagation();
|
|
154
|
+
const o = p(e), r = u(e), d = S(e);
|
|
155
|
+
!o || !r || !d || (a = {
|
|
156
|
+
axis: e,
|
|
157
|
+
pointerStart: e === "y" ? t.clientY : t.clientX,
|
|
158
|
+
scrollStart: D(e),
|
|
159
|
+
trackSize: o,
|
|
160
|
+
thumbSize: r,
|
|
161
|
+
maxScroll: d
|
|
162
|
+
}, y.value = !0, _ = document.body?.style.userSelect ?? "", document.body && (document.body.style.userSelect = "none"), window.addEventListener("pointermove", X), window.addEventListener("pointerup", x), window.addEventListener("pointercancel", x));
|
|
163
|
+
}, $ = (e, t) => {
|
|
164
|
+
if (t.target.closest(".nmorph-scroll__thumb")) return;
|
|
165
|
+
const r = t.currentTarget.getBoundingClientRect(), d = e === "y" ? t.clientY - r.top : t.clientX - r.left, xe = Math.max(1, p(e) - u(e)), be = (d - u(e) / 2) / xe * S(e);
|
|
166
|
+
R(e, be);
|
|
86
167
|
};
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
paddingBottom: I.value,
|
|
101
|
-
overflowX: P.value,
|
|
102
|
-
overflowY: B.value,
|
|
103
|
-
scrollBehavior: C.value
|
|
104
|
-
}),
|
|
105
|
-
onScroll: O,
|
|
106
|
-
onMouseenter: X,
|
|
107
|
-
onMouseleave: Y
|
|
168
|
+
q({ scrollDOMContainer: s, moveTo: H });
|
|
169
|
+
const ye = () => {
|
|
170
|
+
w.value = !0;
|
|
171
|
+
}, Se = () => {
|
|
172
|
+
w.value = !1;
|
|
173
|
+
};
|
|
174
|
+
return (e, t) => (T(), W("div", {
|
|
175
|
+
ref_key: "scrollRoot",
|
|
176
|
+
ref: F,
|
|
177
|
+
class: Be(ie.value),
|
|
178
|
+
style: h(de.value),
|
|
179
|
+
onMouseenter: ye,
|
|
180
|
+
onMouseleave: Se
|
|
108
181
|
}, [
|
|
109
|
-
|
|
182
|
+
M("div", {
|
|
183
|
+
ref_key: "scrollDOMContainer",
|
|
184
|
+
ref: s,
|
|
185
|
+
class: "nmorph-scroll__viewport",
|
|
186
|
+
style: h(he.value),
|
|
187
|
+
onScroll: ae
|
|
188
|
+
}, [
|
|
189
|
+
Te(e.$slots, "default")
|
|
190
|
+
], 36),
|
|
191
|
+
z.value ? (T(), W("div", {
|
|
192
|
+
key: 0,
|
|
193
|
+
class: "nmorph-scroll__bar nmorph-scroll__bar--vertical",
|
|
194
|
+
style: h({ bottom: oe.value }),
|
|
195
|
+
onPointerdown: t[1] || (t[1] = (o) => $("y", o))
|
|
196
|
+
}, [
|
|
197
|
+
M("div", {
|
|
198
|
+
class: "nmorph-scroll__thumb nmorph-scroll__thumb--vertical",
|
|
199
|
+
style: h(fe.value),
|
|
200
|
+
onPointerdown: t[0] || (t[0] = (o) => Y("y", o))
|
|
201
|
+
}, null, 36)
|
|
202
|
+
], 36)) : U("", !0),
|
|
203
|
+
B.value ? (T(), W("div", {
|
|
204
|
+
key: 1,
|
|
205
|
+
class: "nmorph-scroll__bar nmorph-scroll__bar--horizontal",
|
|
206
|
+
style: h({ right: le.value }),
|
|
207
|
+
onPointerdown: t[3] || (t[3] = (o) => $("x", o))
|
|
208
|
+
}, [
|
|
209
|
+
M("div", {
|
|
210
|
+
class: "nmorph-scroll__thumb nmorph-scroll__thumb--horizontal",
|
|
211
|
+
style: h(ge.value),
|
|
212
|
+
onPointerdown: t[2] || (t[2] = (o) => Y("x", o))
|
|
213
|
+
}, null, 36)
|
|
214
|
+
], 36)) : U("", !0)
|
|
110
215
|
], 38));
|
|
111
216
|
}
|
|
112
217
|
});
|
|
113
218
|
export {
|
|
114
|
-
|
|
219
|
+
ke as default
|
|
115
220
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.nmorph-emoji-picker{--nmorph-emoji-picker-width: 300px;--nmorph-emoji-picker-height: 260px;--nmorph-emoji-picker-columns: 8;--nmorph-emoji-picker-cell-size: 32px;box-sizing:border-box;width:min(100%,var(--nmorph-emoji-picker-width));min-width:0;color:var(--nmorph-text-color);font:inherit}.nmorph-emoji-picker .nmorph-emoji-picker__compact,.nmorph-emoji-picker .nmorph-emoji-picker__panel{box-sizing:border-box;width:100%;background:var(--nmorph-main-color);border-radius:var(--default-border-radius);box-shadow:var(--nmorph-shadow-inset)}.nmorph-emoji-picker .nmorph-emoji-picker__compact{display:flex;gap:var(--indentation-02);align-items:center;min-height:48px;padding:var(--indentation-02)}.nmorph-emoji-picker .nmorph-emoji-picker__quick-list{display:flex;flex:1 1 auto;gap:4px;min-width:0
|
|
1
|
+
.nmorph-emoji-picker{--nmorph-emoji-picker-width: 300px;--nmorph-emoji-picker-height: 260px;--nmorph-emoji-picker-columns: 8;--nmorph-emoji-picker-cell-size: 32px;--nmorph-emoji-picker-toggle-size: 28px;--nmorph-emoji-picker-scrollbar-size: 6px;--nmorph-emoji-picker-hover-background: color-mix(in srgb, var(--nmorph-text-color) 8%, transparent);--nmorph-emoji-picker-active-background: color-mix(in srgb, var(--nmorph-text-color) 12%, var(--nmorph-main-color));--nmorph-emoji-picker-focus-ring: color-mix(in srgb, var(--nmorph-text-color) 24%, transparent);--nmorph-emoji-picker-toggle-inset: calc(var(--indentation-02) + 2px);--nmorph-emoji-picker-toggle-reserve: calc( var(--nmorph-emoji-picker-toggle-size) + var(--nmorph-emoji-picker-toggle-inset) + var(--indentation-02) );position:relative;box-sizing:border-box;width:min(100%,var(--nmorph-emoji-picker-width));min-width:0;color:var(--nmorph-text-color);font:inherit}.nmorph-emoji-picker .nmorph-emoji-picker__compact,.nmorph-emoji-picker .nmorph-emoji-picker__panel{box-sizing:border-box;width:100%;background:var(--nmorph-main-color);border-radius:var(--default-border-radius);box-shadow:var(--nmorph-shadow-inset)}.nmorph-emoji-picker .nmorph-emoji-picker__compact{display:flex;gap:var(--indentation-02);align-items:center;min-height:48px;padding:var(--indentation-02)}.nmorph-emoji-picker .nmorph-emoji-picker__quick-list{display:flex;flex:1 1 auto;gap:4px;min-width:0}.nmorph-emoji-picker .nmorph-emoji-picker__quick-button,.nmorph-emoji-picker .nmorph-emoji-picker__category,.nmorph-emoji-picker .nmorph-emoji-picker__emoji{margin:0;color:inherit;font:inherit;background:transparent;border:0;box-shadow:none;cursor:pointer;appearance:none}.nmorph-emoji-picker .nmorph-emoji-picker__quick-button:disabled,.nmorph-emoji-picker .nmorph-emoji-picker__category:disabled,.nmorph-emoji-picker .nmorph-emoji-picker__emoji:disabled{cursor:not-allowed;opacity:.5}.nmorph-emoji-picker .nmorph-emoji-picker__quick-button:focus,.nmorph-emoji-picker .nmorph-emoji-picker__category:focus,.nmorph-emoji-picker .nmorph-emoji-picker__emoji:focus{outline:none}.nmorph-emoji-picker .nmorph-emoji-picker__quick-button:focus-visible,.nmorph-emoji-picker .nmorph-emoji-picker__category:focus-visible,.nmorph-emoji-picker .nmorph-emoji-picker__emoji:focus-visible{box-shadow:var(--nmorph-shadow-inset),0 0 0 1px var(--nmorph-emoji-picker-focus-ring)}.nmorph-emoji-picker .nmorph-emoji-picker__quick-button,.nmorph-emoji-picker .nmorph-emoji-picker__emoji{display:inline-flex;flex:0 0 var(--nmorph-emoji-picker-cell-size);justify-content:center;align-items:center;width:var(--nmorph-emoji-picker-cell-size);height:var(--nmorph-emoji-picker-cell-size);padding:0;font-size:20px;line-height:1;border-radius:var(--default-border-radius)}.nmorph-emoji-picker .nmorph-emoji-picker__quick-button:hover:not(:disabled),.nmorph-emoji-picker .nmorph-emoji-picker__emoji:hover:not(:disabled){background:var(--nmorph-emoji-picker-hover-background)}.nmorph-emoji-picker .nmorph-emoji-picker__toggle-button{position:absolute;top:var(--nmorph-emoji-picker-toggle-inset);right:var(--nmorph-emoji-picker-toggle-inset);z-index:2;width:var(--nmorph-emoji-picker-toggle-size);min-width:var(--nmorph-emoji-picker-toggle-size);height:var(--nmorph-emoji-picker-toggle-size);min-height:var(--nmorph-emoji-picker-toggle-size);color:var(--nmorph-semi-contrast-text-color);--height: var(--nmorph-emoji-picker-toggle-size);--size: var(--nmorph-emoji-picker-toggle-size);--nmorph-selection-control-inline-padding: 0;--color: currentColor}.nmorph-emoji-picker .nmorph-emoji-picker__toggle-button .nmorph-checkbox__content,.nmorph-emoji-picker .nmorph-emoji-picker__toggle-button .nmorph-checkbox__fake{width:var(--nmorph-emoji-picker-toggle-size);min-width:var(--nmorph-emoji-picker-toggle-size);height:var(--nmorph-emoji-picker-toggle-size);min-height:var(--nmorph-emoji-picker-toggle-size)}.nmorph-emoji-picker .nmorph-emoji-picker__toggle-button .nmorph-checkbox__fake{padding:0;color:currentColor}.nmorph-emoji-picker .nmorph-emoji-picker__toggle-button .nmorph-icon{--color: currentColor}.nmorph-emoji-picker .nmorph-emoji-picker__toggle-button input:focus-visible{outline:none;opacity:0;scale:1}.nmorph-emoji-picker .nmorph-emoji-picker__toggle-button input:focus-visible+.nmorph-checkbox__fake{outline:1px solid var(--nmorph-emoji-picker-focus-ring);outline-offset:1px}.nmorph-emoji-picker .nmorph-emoji-picker__toggle-button:hover:not(.nmorph-checkbox--disabled){color:var(--nmorph-text-color);--color: var(--nmorph-text-color)}.nmorph-emoji-picker .nmorph-emoji-picker__toggle-button:hover:not(.nmorph-checkbox--disabled) .nmorph-icon{--color: var(--nmorph-text-color)}.nmorph-emoji-picker .nmorph-emoji-picker__button-label{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;white-space:nowrap;clip-path:inset(50%)}.nmorph-emoji-picker .nmorph-emoji-picker__panel{display:flex;flex-direction:column;height:var(--nmorph-emoji-picker-height);min-height:180px;max-height:min(60vh,var(--nmorph-emoji-picker-height));padding:var(--indentation-02);overflow:hidden}.nmorph-emoji-picker .nmorph-emoji-picker__toolbar{display:flex;flex:0 0 auto;gap:var(--indentation-02);align-items:center;min-width:0;padding:2px}.nmorph-emoji-picker.nmorph-emoji-picker--collapsible .nmorph-emoji-picker__compact,.nmorph-emoji-picker.nmorph-emoji-picker--collapsible .nmorph-emoji-picker__toolbar{padding-right:var(--nmorph-emoji-picker-toggle-reserve)}.nmorph-emoji-picker .nmorph-emoji-picker__search{flex:1 1 auto;min-width:0}.nmorph-emoji-picker .nmorph-emoji-picker__categories{display:flex;flex:0 0 auto;gap:4px;align-items:flex-start;min-width:0;margin:var(--indentation-02) 0;padding:0 2px}.nmorph-emoji-picker .nmorph-emoji-picker__categories .nmorph-scroll__bar--horizontal{right:2px;left:2px}.nmorph-emoji-picker .nmorph-emoji-picker__category{display:inline-flex;flex:0 0 auto;justify-content:center;align-items:center;max-width:120px;min-height:28px;padding:0 10px;overflow:hidden;color:var(--nmorph-semi-contrast-text-color);font-size:var(--font-size-extra-small);line-height:var(--line-height-regular);white-space:nowrap;text-overflow:ellipsis;border-radius:var(--default-border-radius)}.nmorph-emoji-picker .nmorph-emoji-picker__category:hover:not(:disabled){color:var(--nmorph-text-color);background:var(--nmorph-emoji-picker-hover-background)}.nmorph-emoji-picker .nmorph-emoji-picker__category.nmorph-emoji-picker__category--active{color:var(--nmorph-text-color);background:var(--nmorph-emoji-picker-active-background);box-shadow:var(--nmorph-shadow-inset)}.nmorph-emoji-picker .nmorph-emoji-picker__body{flex:1 1 auto;min-height:0}.nmorph-emoji-picker .nmorph-emoji-picker__body-content{box-sizing:border-box;min-height:100%;padding:2px}.nmorph-emoji-picker .nmorph-emoji-picker__section{display:grid;gap:4px}.nmorph-emoji-picker .nmorph-emoji-picker__section+.nmorph-emoji-picker__section{margin-top:var(--indentation-02)}.nmorph-emoji-picker .nmorph-emoji-picker__section-title{padding:0 4px;color:var(--nmorph-semi-contrast-text-color);font-weight:600;font-size:var(--font-size-extra-small);line-height:var(--line-height-regular)}.nmorph-emoji-picker .nmorph-emoji-picker__grid{display:grid;grid-template-columns:repeat(var(--nmorph-emoji-picker-columns),minmax(0,1fr));gap:2px}.nmorph-emoji-picker .nmorph-emoji-picker__emoji{width:100%;min-width:0}.nmorph-emoji-picker .nmorph-emoji-picker__emoji-symbol{display:block;line-height:1}.nmorph-emoji-picker .nmorph-emoji-picker__empty{display:grid;gap:var(--indentation-02);place-items:center;min-height:100%;padding:var(--indentation-04);color:var(--nmorph-semi-contrast-text-color);text-align:center;--color: currentColor}.nmorph-emoji-picker.nmorph-emoji-picker--disabled{opacity:.65}
|