@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.
@@ -1,15 +1,15 @@
1
- import { openBlock as t, createElementBlock as r, createElementVNode as o } from "vue";
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(), r("svg", n, [...e[0] || (e[0] = [
8
- o("path", { d: "M2 6h28v6H2zm0 8h28v6H2zm0 8h28v6H2z" }, null, -1)
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 c = { render: l };
11
+ const s = { render: l };
12
12
  export {
13
- c as default,
13
+ s as default,
14
14
  l as render
15
15
  };
@@ -1,15 +1,15 @@
1
- import { openBlock as o, createElementBlock as t, createElementVNode as n } from "vue";
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 o(), t("svg", r, [...e[0] || (e[0] = [
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 s = { render: l };
11
+ const d = { render: l };
12
12
  export {
13
- s as default,
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) transparent;scrollbar-width:thin}.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
+ .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 $, ref as r, computed as o, inject as k, onUnmounted as z, onMounted as D, nextTick as f, watch as v, openBlock as G, createElementBlock as R, normalizeStyle as L, normalizeClass as j, renderSlot as N } from "vue";
3
- import { useModifiers as U } from "../../../utils/create-modifiers.js";
4
- const F = /* @__PURE__ */ $({
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(x, { expose: g, emit: y }) {
25
- const e = x, t = r(null), B = o(() => e.scrollYProp), P = o(() => e.scrollXProp), s = r(!1), c = r(!1), h = () => {
26
- const l = t.value;
27
- if (!l) {
28
- s.value = !1, c.value = !1;
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
- s.value = l.scrollHeight > l.clientHeight, c.value = l.scrollWidth > l.clientWidth;
32
- }, S = o(() => e.yBarWidthInPx + e.yGapInPx), H = o(() => e.xBarWidthInPx + e.xGapInPx), b = o(
33
- () => e.scrollYProp === "hidden" || !s.value ? "0" : `${S.value}px`
34
- ), I = o(
35
- () => e.scrollXProp === "hidden" || !c.value ? "0" : `${H.value}px`
36
- ), W = o(() => `${e.yBarWidthInPx}px`), E = o(() => `${e.xBarWidthInPx}px`), w = k("nmorph");
37
- let a;
38
- const i = y, m = () => {
39
- const l = t.value;
40
- if (!l) return;
41
- const n = Math.trunc(l.scrollLeft), u = Math.trunc(l.scrollTop);
42
- i("update:model-value", { x: n, y: u });
43
- }, M = () => {
44
- i("on-scroll-end");
45
- }, O = (l) => {
46
- i("on-scroll", l), t.value && (e.updateOnlyOnScrollEnd || m(), a !== void 0 && clearTimeout(a), a = setTimeout(() => {
47
- e.updateOnlyOnScrollEnd && m(), M();
48
- }, e.scrollEndDelay));
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
- z(() => {
51
- a !== void 0 && clearTimeout(a);
74
+ He(() => {
75
+ v !== void 0 && clearTimeout(v), b?.disconnect(), V();
52
76
  });
53
- const p = r(!1), T = o(
54
- () => U({
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
- ), d = (l) => {
58
- const { x: n, y: u } = l;
59
- t.value?.scrollTo({
60
- left: n,
61
- top: u,
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
- D(() => {
66
- d(e.modelValue), f(h);
67
- }), v(
68
- () => e.modelValue,
69
- (l) => {
70
- d(l);
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
- ), v(
74
- () => w?.browser.dimensions,
102
+ ), N(
103
+ () => ne?.browser.dimensions,
75
104
  () => {
76
- f(h);
105
+ G(m);
77
106
  },
78
107
  { deep: !0, immediate: !0 }
79
108
  );
80
- const C = o(() => e.cssScrollBehavior), _ = o(() => e.height), V = o(() => e.maxHeight);
81
- g({ scrollDOMContainer: t, moveTo: d });
82
- const X = () => {
83
- p.value = !0;
84
- }, Y = () => {
85
- p.value = !1;
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
- return (l, n) => (G(), R("div", {
88
- ref_key: "scrollDOMContainer",
89
- ref: t,
90
- class: j(T.value),
91
- style: L({
92
- "--bar-width": W.value,
93
- "--bar-height": E.value,
94
- boxSizing: "border-box",
95
- minWidth: "0",
96
- minHeight: "0",
97
- height: _.value,
98
- maxHeight: V.value,
99
- paddingRight: b.value,
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
- N(l.$slots, "default")
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
- F as default
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;overflow:auto hidden;scrollbar-width:thin}.nmorph-emoji-picker .nmorph-emoji-picker__quick-button,.nmorph-emoji-picker .nmorph-emoji-picker__expand-button,.nmorph-emoji-picker .nmorph-emoji-picker__collapse-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__expand-button:disabled,.nmorph-emoji-picker .nmorph-emoji-picker__collapse-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__expand-button:focus,.nmorph-emoji-picker .nmorph-emoji-picker__collapse-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__expand-button:focus-visible,.nmorph-emoji-picker .nmorph-emoji-picker__collapse-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-accent-color)}.nmorph-emoji-picker .nmorph-emoji-picker__quick-button,.nmorph-emoji-picker .nmorph-emoji-picker__expand-button,.nmorph-emoji-picker .nmorph-emoji-picker__collapse-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;border-radius:var(--default-border-radius)}.nmorph-emoji-picker .nmorph-emoji-picker__quick-button,.nmorph-emoji-picker .nmorph-emoji-picker__emoji{font-size:20px;line-height:1}.nmorph-emoji-picker .nmorph-emoji-picker__quick-button:hover:not(:disabled),.nmorph-emoji-picker .nmorph-emoji-picker__emoji:hover:not(:disabled){background:color-mix(in srgb,var(--nmorph-accent-color) 14%,transparent)}.nmorph-emoji-picker .nmorph-emoji-picker__expand-button,.nmorph-emoji-picker .nmorph-emoji-picker__collapse-button{color:var(--nmorph-semi-contrast-text-color);--color: currentColor}.nmorph-emoji-picker .nmorph-emoji-picker__expand-button:hover:not(:disabled),.nmorph-emoji-picker .nmorph-emoji-picker__collapse-button:hover:not(:disabled){color:var(--nmorph-accent-color);background:color-mix(in srgb,var(--nmorph-accent-color) 10%,transparent)}.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}.nmorph-emoji-picker .nmorph-emoji-picker__search{display:flex;flex:1 1 auto;gap:6px;align-items:center;min-width:0;height:34px;padding:0 10px;color:var(--nmorph-semi-contrast-text-color);background:color-mix(in srgb,var(--nmorph-text-color) 5%,transparent);border-radius:var(--default-border-radius);box-shadow:var(--nmorph-shadow-inset);--color: currentColor}.nmorph-emoji-picker .nmorph-emoji-picker__search-input{flex:1 1 auto;min-width:0;padding:0;color:var(--nmorph-text-color);font:inherit;background:transparent;border:0;outline:none;appearance:none}.nmorph-emoji-picker .nmorph-emoji-picker__search-input::placeholder{color:var(--nmorph-placeholder-text-color)}.nmorph-emoji-picker .nmorph-emoji-picker__search-input::-webkit-search-cancel-button{appearance:none}.nmorph-emoji-picker .nmorph-emoji-picker__categories{display:flex;flex:0 0 auto;gap:4px;margin:var(--indentation-02) 0;overflow:auto hidden;scrollbar-width:thin}.nmorph-emoji-picker .nmorph-emoji-picker__category{flex:0 0 auto;max-width:120px;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),.nmorph-emoji-picker .nmorph-emoji-picker__category.nmorph-emoji-picker__category--active{color:var(--nmorph-focus-text-color);background:var(--nmorph-accent-color)}.nmorph-emoji-picker .nmorph-emoji-picker__body{flex:1 1 auto;min-height:0;padding:2px;overflow:hidden auto;scrollbar-gutter:stable}.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}
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}