haze-ui 1.32.0 → 1.33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +87 -1210
- package/dist/coi-serviceworker.LICENSE +21 -0
- package/dist/coi-serviceworker.js +118 -0
- package/dist/components/Countdown/Countdown.js +49 -0
- package/dist/components/Countdown/index.js +3 -0
- package/dist/components/HoverCard/HoverCard.js +63 -43
- package/dist/components/ImageCrop/ImageCrop.js +188 -0
- package/dist/components/ImageCrop/image-crop-geometry.js +81 -0
- package/dist/components/ImageCrop/index.js +3 -0
- package/dist/components/LocaleProvider/ar-sa.js +6 -0
- package/dist/components/LocaleProvider/de-de.js +6 -0
- package/dist/components/LocaleProvider/es-es.js +6 -0
- package/dist/components/LocaleProvider/fr-fr.js +6 -0
- package/dist/components/LocaleProvider/it-it.js +6 -0
- package/dist/components/LocaleProvider/ja-jp.js +6 -0
- package/dist/components/LocaleProvider/ko-kr.js +6 -0
- package/dist/components/LocaleProvider/locale.js +6 -0
- package/dist/components/LocaleProvider/pt-br.js +6 -0
- package/dist/components/LocaleProvider/ru-ru.js +6 -0
- package/dist/components/LocaleProvider/zh-cn.js +6 -0
- package/dist/components/Resizable/index.js +1 -1
- package/dist/components/Splitter/Splitter.js +199 -0
- package/dist/components/Splitter/index.js +3 -0
- package/dist/css/countdown.css +4 -0
- package/dist/css/image-crop.css +4 -0
- package/dist/css/splitter.css +4 -0
- package/dist/css-manifest.json +4 -3
- package/dist/haze-ui.css +12 -0
- package/dist/hooks/useHotkeys.js +78 -24
- package/dist/index.js +277 -274
- package/dist/mcp-docs.json +210 -9
- package/dist/registry.json +71 -5
- package/dist/robots.txt +4 -0
- package/dist/sitemap.xml +160 -0
- package/dist/types/components/ConfigProvider/ConfigContext.d.ts +2 -1
- package/dist/types/components/Countdown/Countdown.d.ts +30 -0
- package/dist/types/components/Countdown/index.d.ts +2 -0
- package/dist/types/components/HoverCard/HoverCard.d.ts +18 -1
- package/dist/types/components/ImageCrop/ImageCrop.d.ts +67 -0
- package/dist/types/components/ImageCrop/image-crop-geometry.d.ts +65 -0
- package/dist/types/components/ImageCrop/index.d.ts +3 -0
- package/dist/types/components/LocaleProvider/locale.d.ts +6 -0
- package/dist/types/components/Resizable/index.d.ts +0 -2
- package/dist/types/components/Splitter/Splitter.d.ts +33 -0
- package/dist/types/components/Splitter/index.d.ts +2 -0
- package/dist/types/headless/index.d.ts +7 -6
- package/dist/types/hooks/useHotkeys.d.ts +16 -4
- package/dist/types/index.d.ts +7 -2
- package/package.json +23 -4
|
@@ -184,6 +184,12 @@ var e = {
|
|
|
184
184
|
moreTags: "+{count}"
|
|
185
185
|
},
|
|
186
186
|
spinner: { loading: "불러오는 중" },
|
|
187
|
+
splitter: {
|
|
188
|
+
collapseLead: "앞쪽 창 접기",
|
|
189
|
+
expandLead: "앞쪽 창 펼치기",
|
|
190
|
+
collapseTrail: "뒤쪽 창 접기",
|
|
191
|
+
expandTrail: "뒤쪽 창 펼치기"
|
|
192
|
+
},
|
|
187
193
|
sources: {
|
|
188
194
|
label: "출처",
|
|
189
195
|
expand: "발췌 보기",
|
|
@@ -184,6 +184,12 @@ var e = {
|
|
|
184
184
|
moreTags: "+{count}"
|
|
185
185
|
},
|
|
186
186
|
spinner: { loading: "Loading" },
|
|
187
|
+
splitter: {
|
|
188
|
+
collapseLead: "Collapse leading pane",
|
|
189
|
+
expandLead: "Expand leading pane",
|
|
190
|
+
collapseTrail: "Collapse trailing pane",
|
|
191
|
+
expandTrail: "Expand trailing pane"
|
|
192
|
+
},
|
|
187
193
|
sources: {
|
|
188
194
|
label: "Sources",
|
|
189
195
|
expand: "Show excerpt",
|
|
@@ -184,6 +184,12 @@ var e = {
|
|
|
184
184
|
moreTags: "+{count}"
|
|
185
185
|
},
|
|
186
186
|
spinner: { loading: "Carregando" },
|
|
187
|
+
splitter: {
|
|
188
|
+
collapseLead: "Recolher o painel anterior",
|
|
189
|
+
expandLead: "Expandir o painel anterior",
|
|
190
|
+
collapseTrail: "Recolher o painel seguinte",
|
|
191
|
+
expandTrail: "Expandir o painel seguinte"
|
|
192
|
+
},
|
|
187
193
|
sources: {
|
|
188
194
|
label: "Fontes",
|
|
189
195
|
expand: "Mostrar trecho",
|
|
@@ -184,6 +184,12 @@ var e = {
|
|
|
184
184
|
moreTags: "+{count}"
|
|
185
185
|
},
|
|
186
186
|
spinner: { loading: "Загрузка" },
|
|
187
|
+
splitter: {
|
|
188
|
+
collapseLead: "Свернуть переднюю панель",
|
|
189
|
+
expandLead: "Развернуть переднюю панель",
|
|
190
|
+
collapseTrail: "Свернуть заднюю панель",
|
|
191
|
+
expandTrail: "Развернуть заднюю панель"
|
|
192
|
+
},
|
|
187
193
|
sources: {
|
|
188
194
|
label: "Источники",
|
|
189
195
|
expand: "Показать отрывок",
|
|
@@ -184,6 +184,12 @@ var e = {
|
|
|
184
184
|
moreTags: "+{count}"
|
|
185
185
|
},
|
|
186
186
|
spinner: { loading: "加载中" },
|
|
187
|
+
splitter: {
|
|
188
|
+
collapseLead: "收起前侧窗格",
|
|
189
|
+
expandLead: "展开前侧窗格",
|
|
190
|
+
collapseTrail: "收起后侧窗格",
|
|
191
|
+
expandTrail: "展开后侧窗格"
|
|
192
|
+
},
|
|
187
193
|
sources: {
|
|
188
194
|
label: "引用来源",
|
|
189
195
|
expand: "展开摘录",
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { ResizableGroup as e, ResizableHandle as t, ResizablePanel as n } from "./Resizable.js";
|
|
3
|
-
export { e as ResizableGroup, t as ResizableHandle, n as ResizablePanel
|
|
3
|
+
export { e as ResizableGroup, t as ResizableHandle, n as ResizablePanel };
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
|
|
2
|
+
"use client";
|
|
3
|
+
import { classnames as e } from "../../utils/classnames.js";
|
|
4
|
+
import { getDirection as t } from "../../utils/direction.js";
|
|
5
|
+
import { useStrings as n } from "../LocaleProvider/useStrings.js";
|
|
6
|
+
/* empty css */
|
|
7
|
+
import { Children as r, cloneElement as i, createContext as a, isValidElement as o, useContext as s, useRef as c } from "react";
|
|
8
|
+
import { jsx as l, jsxs as u } from "react/jsx-runtime";
|
|
9
|
+
import { isControl as d, useControl as ee, useThru as f, watch as p } from "react-use-control";
|
|
10
|
+
//#region src/lib/components/Splitter/Splitter.tsx
|
|
11
|
+
var m = a(null);
|
|
12
|
+
function h() {
|
|
13
|
+
if (s(m) === null) throw Error("SplitterPane must be used within <Splitter>");
|
|
14
|
+
}
|
|
15
|
+
var g = 5, _ = 2 ** 53 - 1, v = (e) => Math.round(e * 100) / 100;
|
|
16
|
+
function y(e, t, n) {
|
|
17
|
+
return Math.min(Math.max(e, t), n);
|
|
18
|
+
}
|
|
19
|
+
function b(e, t, n) {
|
|
20
|
+
return {
|
|
21
|
+
lo: Math.max(e.min, n - t.max),
|
|
22
|
+
hi: Math.min(e.max, n - t.min)
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
var te = "haze-Splitter__splitterBase", ne = "haze-Splitter__splitterHorizontal", x = "haze-Splitter__splitterVertical";
|
|
26
|
+
function S({ orientation: a = "horizontal", sizes: s, onSizesChange: h, children: S, className: C, ...N }) {
|
|
27
|
+
let P = r.toArray(S).filter(o).map((e) => {
|
|
28
|
+
if (e.type !== w) throw Error("Splitter children must be <SplitterPane> elements");
|
|
29
|
+
return e;
|
|
30
|
+
}), F = P.length, I = () => Array.from({ length: F }, () => 100 / F), L = d(s), [R, ae] = ee(f(L ? s : void 0, p((e) => h?.(e))), L ? I : s ?? I), z = (e) => {
|
|
31
|
+
let t = R[e];
|
|
32
|
+
return t === void 0 ? 100 / F : t;
|
|
33
|
+
}, B = (e) => {
|
|
34
|
+
let t = P[e]?.props;
|
|
35
|
+
return {
|
|
36
|
+
min: t?.min ?? 0,
|
|
37
|
+
max: t?.max ?? Infinity
|
|
38
|
+
};
|
|
39
|
+
}, V = c(null), H = c(null), U = n("splitter"), W = c(/* @__PURE__ */ new Map()), G = (e) => P[e]?.props.collapsible === !0, K = (e) => z(e) === 0, q = (e) => {
|
|
40
|
+
let t = B(e);
|
|
41
|
+
return K(e) ? {
|
|
42
|
+
...t,
|
|
43
|
+
min: 0
|
|
44
|
+
} : t;
|
|
45
|
+
}, J = (e, t) => {
|
|
46
|
+
let n = Math.min(e, t), r = z(n) + z(n + 1);
|
|
47
|
+
if (K(e)) {
|
|
48
|
+
let { lo: i, hi: a } = b(B(e), B(t), r), o = y(W.current.get(e) ?? r / 2, i, a);
|
|
49
|
+
W.current.delete(e);
|
|
50
|
+
let s = e === n ? o : r - o;
|
|
51
|
+
X(n, s, r);
|
|
52
|
+
} else W.current.set(e, z(e)), X(n, e === n ? 0 : r, r);
|
|
53
|
+
}, Y = () => a === "horizontal" && t(V.current) === "rtl", X = (e, t, n) => {
|
|
54
|
+
let r = v(t), i = v(n - r);
|
|
55
|
+
ae((t) => {
|
|
56
|
+
if (e + 1 >= t.length || t[e] === r) return t;
|
|
57
|
+
let n = t.slice();
|
|
58
|
+
return n[e] = r, n[e + 1] = i, n;
|
|
59
|
+
});
|
|
60
|
+
}, Z = (e) => a === "horizontal" ? e.clientX : e.clientY, oe = () => {
|
|
61
|
+
let e = V.current;
|
|
62
|
+
if (e === null) return 0;
|
|
63
|
+
let t = 0;
|
|
64
|
+
for (let n of e.querySelectorAll("[data-slot='pane']")) {
|
|
65
|
+
let e = n.getBoundingClientRect();
|
|
66
|
+
t += a === "horizontal" ? e.width : e.height;
|
|
67
|
+
}
|
|
68
|
+
return t;
|
|
69
|
+
}, se = (e, t) => {
|
|
70
|
+
if (t.button !== 0) return;
|
|
71
|
+
let n = oe();
|
|
72
|
+
if (!(n > 0)) return;
|
|
73
|
+
let r = z(e) + z(e + 1), { lo: i, hi: a } = b(q(e), q(e + 1), r);
|
|
74
|
+
t.preventDefault();
|
|
75
|
+
let o = t.currentTarget;
|
|
76
|
+
if (H.current = {
|
|
77
|
+
pointerId: t.pointerId,
|
|
78
|
+
origin: Z(t),
|
|
79
|
+
extent: n,
|
|
80
|
+
leadIndex: e,
|
|
81
|
+
startLead: z(e),
|
|
82
|
+
pairSum: r,
|
|
83
|
+
lo: i,
|
|
84
|
+
hi: a,
|
|
85
|
+
lastLead: z(e)
|
|
86
|
+
}, typeof o.setPointerCapture == "function") try {
|
|
87
|
+
o.setPointerCapture(t.pointerId);
|
|
88
|
+
} catch {}
|
|
89
|
+
}, ce = (e) => {
|
|
90
|
+
let t = H.current;
|
|
91
|
+
if (t?.pointerId !== e.pointerId) return;
|
|
92
|
+
K(t.leadIndex) && W.current.delete(t.leadIndex), K(t.leadIndex + 1) && W.current.delete(t.leadIndex + 1);
|
|
93
|
+
let n = Z(e) - t.origin, r = (Y() ? -n : n) / t.extent * 100, i = y(t.startLead + r, t.lo, t.hi);
|
|
94
|
+
v(i) !== v(t.lastLead) && (t.lastLead = i, X(t.leadIndex, i, t.pairSum));
|
|
95
|
+
}, Q = (e) => {
|
|
96
|
+
if (H.current?.pointerId !== e.pointerId) return;
|
|
97
|
+
H.current = null;
|
|
98
|
+
let t = e.currentTarget;
|
|
99
|
+
if (typeof t.releasePointerCapture == "function") try {
|
|
100
|
+
t.releasePointerCapture(e.pointerId);
|
|
101
|
+
} catch {}
|
|
102
|
+
}, le = (e, t) => {
|
|
103
|
+
let n = a === "horizontal" ? "ArrowRight" : "ArrowDown", r = a === "horizontal" ? "ArrowLeft" : "ArrowUp", { key: i } = t;
|
|
104
|
+
if (i !== n && i !== r && i !== "Home" && i !== "End") return;
|
|
105
|
+
let o = z(e) + z(e + 1), { lo: s, hi: c } = b(q(e), q(e + 1), o), l = z(e);
|
|
106
|
+
t.preventDefault();
|
|
107
|
+
let u = Y(), d = y(l + (i === n ? u ? -5 : g : i === r ? u ? g : -5 : i === "Home" ? -_ : _), s, c);
|
|
108
|
+
d !== l && X(e, d, o);
|
|
109
|
+
}, $ = [];
|
|
110
|
+
return P.forEach((t, n) => {
|
|
111
|
+
if (n > 0) {
|
|
112
|
+
let t = n - 1, r = z(t) + z(n), { lo: i, hi: o } = b(q(t), q(n), r);
|
|
113
|
+
$.push(/* @__PURE__ */ u("div", {
|
|
114
|
+
"data-slot": "divider",
|
|
115
|
+
className: e([T, a === "horizontal" ? re : E]),
|
|
116
|
+
children: [
|
|
117
|
+
/* @__PURE__ */ l("div", {
|
|
118
|
+
"data-slot": "divider-handle",
|
|
119
|
+
role: "separator",
|
|
120
|
+
"aria-orientation": a === "horizontal" ? "vertical" : "horizontal",
|
|
121
|
+
tabIndex: 0,
|
|
122
|
+
"aria-valuenow": Math.round(z(t)),
|
|
123
|
+
"aria-valuemin": Math.round(i),
|
|
124
|
+
"aria-valuemax": Math.round(o),
|
|
125
|
+
onKeyDown: (e) => le(t, e),
|
|
126
|
+
onPointerDown: (e) => se(t, e),
|
|
127
|
+
onPointerMove: ce,
|
|
128
|
+
onPointerUp: Q,
|
|
129
|
+
onPointerCancel: Q,
|
|
130
|
+
className: e([ie])
|
|
131
|
+
}),
|
|
132
|
+
G(t) && /* @__PURE__ */ l("button", {
|
|
133
|
+
type: "button",
|
|
134
|
+
"data-slot": "divider-collapse",
|
|
135
|
+
"data-side": "lead",
|
|
136
|
+
"aria-expanded": !K(t),
|
|
137
|
+
"aria-label": K(t) ? U.expandLead : U.collapseLead,
|
|
138
|
+
onClick: () => J(t, n),
|
|
139
|
+
className: e([O, a === "horizontal" ? k : j]),
|
|
140
|
+
children: D
|
|
141
|
+
}, `splitter-collapse-lead-${n}`),
|
|
142
|
+
G(n) && /* @__PURE__ */ l("button", {
|
|
143
|
+
type: "button",
|
|
144
|
+
"data-slot": "divider-collapse",
|
|
145
|
+
"data-side": "trail",
|
|
146
|
+
"aria-expanded": !K(n),
|
|
147
|
+
"aria-label": K(n) ? U.expandTrail : U.collapseTrail,
|
|
148
|
+
onClick: () => J(n, t),
|
|
149
|
+
className: e([O, a === "horizontal" ? A : M]),
|
|
150
|
+
children: D
|
|
151
|
+
}, `splitter-collapse-trail-${n}`)
|
|
152
|
+
]
|
|
153
|
+
}, `splitter-divider-${n}`));
|
|
154
|
+
}
|
|
155
|
+
$.push(i(t, { style: {
|
|
156
|
+
...t.props.style,
|
|
157
|
+
flexGrow: z(n)
|
|
158
|
+
} }));
|
|
159
|
+
}), /* @__PURE__ */ l(m.Provider, {
|
|
160
|
+
value: !0,
|
|
161
|
+
children: l("div", {
|
|
162
|
+
ref: V,
|
|
163
|
+
"data-slot": "splitter",
|
|
164
|
+
...N,
|
|
165
|
+
className: e([
|
|
166
|
+
te,
|
|
167
|
+
a === "horizontal" ? ne : x,
|
|
168
|
+
C
|
|
169
|
+
]),
|
|
170
|
+
children: $
|
|
171
|
+
})
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
var C = "haze-Splitter__paneBase";
|
|
175
|
+
function w({ min: t, max: n, collapsible: r, children: i, className: a, ...o }) {
|
|
176
|
+
return h(), /* @__PURE__ */ l("div", {
|
|
177
|
+
"data-slot": "pane",
|
|
178
|
+
...o,
|
|
179
|
+
className: e([C, a]),
|
|
180
|
+
children: i
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
var T = "haze-Splitter__dividerBase", re = "haze-Splitter__dividerHorizontal", E = "haze-Splitter__dividerVertical", ie = "haze-Splitter__dividerHandle", D = /* @__PURE__ */ l("svg", {
|
|
184
|
+
width: "12",
|
|
185
|
+
height: "12",
|
|
186
|
+
viewBox: "0 0 16 16",
|
|
187
|
+
fill: "none",
|
|
188
|
+
"aria-hidden": "true",
|
|
189
|
+
focusable: "false",
|
|
190
|
+
children: l("path", {
|
|
191
|
+
d: "M10.5 3 5.5 8l5 5",
|
|
192
|
+
stroke: "currentColor",
|
|
193
|
+
strokeWidth: "1.75",
|
|
194
|
+
strokeLinecap: "round",
|
|
195
|
+
strokeLinejoin: "round"
|
|
196
|
+
})
|
|
197
|
+
}), O = "haze-Splitter__collapseButtonBase", k = "haze-Splitter__collapseLeadHorizontal", A = "haze-Splitter__collapseTrailHorizontal", j = "haze-Splitter__collapseLeadVertical", M = "haze-Splitter__collapseTrailVertical";
|
|
198
|
+
//#endregion
|
|
199
|
+
export { S as Splitter, w as SplitterPane };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/* haze-ui image-crop — generated by scripts/split-css.mjs, do not edit */
|
|
2
|
+
@layer haze {
|
|
3
|
+
.haze-ImageCrop__root{max-width:100%;font-family:var(--haze-font-sans);display:block}.haze-ImageCrop__sourceClass{display:none}.haze-ImageCrop__frame{border-radius:var(--haze-radius-md);background:var(--haze-color-bg-muted);-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.haze-ImageCrop__canvasClass{width:100%;height:auto;display:block}.haze-ImageCrop__loading{box-sizing:border-box;aspect-ratio:4/3;border-radius:var(--haze-radius-md);background:var(--haze-color-bg-subtle);width:100%}.haze-ImageCrop__cropBox{box-sizing:border-box;border:1px solid var(--haze-color-primary);border-radius:var(--haze-radius-sm);cursor:move;touch-action:none;position:absolute;box-shadow:0 0 0 9999px #00000073}.haze-ImageCrop__cropBox:focus-visible{box-shadow:0 0 0 9999px #00000073,inset 0 0 0 var(--haze-space-1) var(--haze-color-focus-ring);outline:none}.haze-ImageCrop__cropBox[aria-disabled=true]{cursor:not-allowed}@media (forced-colors:active){.haze-ImageCrop__cropBox{box-shadow:none;border-color:highlight}.haze-ImageCrop__cropBox:focus-visible{box-shadow:inset 0 0 0 var(--haze-space-1) Highlight}}.haze-ImageCrop__cropCircle{border-radius:var(--haze-radius-full)}.haze-ImageCrop__handleBase{width:var(--haze-space-6);height:var(--haze-space-6);touch-action:none;position:absolute}.haze-ImageCrop__handleBase:before{content:"";inset:calc((var(--haze-space-6) - var(--haze-space-2)) / 2);box-sizing:border-box;border:1px solid var(--haze-color-primary);border-radius:var(--haze-radius-sm);background:var(--haze-color-bg);position:absolute}@media (forced-colors:active){.haze-ImageCrop__handleBase:before{background:canvastext;border-color:canvastext}}.haze-ImageCrop__nw{top:calc(var(--haze-space-6) / -2);left:calc(var(--haze-space-6) / -2);cursor:nw-resize}.haze-ImageCrop__ne{top:calc(var(--haze-space-6) / -2);right:calc(var(--haze-space-6) / -2);cursor:ne-resize}.haze-ImageCrop__sw{bottom:calc(var(--haze-space-6) / -2);left:calc(var(--haze-space-6) / -2);cursor:sw-resize}.haze-ImageCrop__se{bottom:calc(var(--haze-space-6) / -2);right:calc(var(--haze-space-6) / -2);cursor:se-resize}.haze-ImageCrop__notice{box-sizing:border-box;aspect-ratio:4/3;border:1px dashed var(--haze-color-border);border-radius:var(--haze-radius-md);width:100%;color:var(--haze-color-text-muted);font-size:var(--haze-text-sm);justify-content:center;align-items:center;display:flex}.haze-ImageCrop__srOnly{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}
|
|
4
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/* haze-ui splitter — generated by scripts/split-css.mjs, do not edit */
|
|
2
|
+
@layer haze {
|
|
3
|
+
.haze-Splitter__splitterBase{box-sizing:border-box;min-width:0;min-height:0;display:flex;overflow:hidden}.haze-Splitter__splitterHorizontal{flex-direction:row;height:100%}.haze-Splitter__splitterVertical{flex-direction:column;width:100%}.haze-Splitter__paneBase{box-sizing:border-box;flex-shrink:0;flex-basis:0;min-width:0;min-height:0;overflow:auto}.haze-Splitter__dividerBase{background:var(--haze-color-border);-webkit-transition:background var(--haze-duration-fast);transition:background var(--haze-duration-fast);-webkit-background-clip:content-box;background-clip:content-box;flex:none;position:relative}.haze-Splitter__dividerBase:hover{background:linear-gradient(to right, transparent 0, var(--haze-color-primary) 50%, transparent 100%) center/2px 100% no-repeat,var(--haze-color-bg-subtle)}.haze-Splitter__dividerBase:has(>:focus-visible){background:linear-gradient(to right, transparent 0, var(--haze-color-primary) 50%, transparent 100%) center/2px 100% no-repeat,var(--haze-color-bg-subtle)}.haze-Splitter__dividerBase:has(>:focus-visible){box-shadow:inset 0 0 0 2px var(--haze-color-focus-ring);outline:none}.haze-Splitter__dividerBase:hover>[data-slot=divider-collapse],.haze-Splitter__dividerBase:focus-within>[data-slot=divider-collapse],.haze-Splitter__dividerBase>[data-slot=divider-collapse]:focus-visible{opacity:1;pointer-events:auto}@media (forced-colors:active){.haze-Splitter__dividerBase{background:canvastext;-webkit-background-clip:content-box;background-clip:content-box}.haze-Splitter__dividerBase:hover{background:highlight;-webkit-background-clip:content-box;background-clip:content-box}.haze-Splitter__dividerBase:has(>:focus-visible){background:highlight;-webkit-background-clip:content-box;background-clip:content-box}.haze-Splitter__dividerBase:has(>:focus-visible){outline-offset:-2px;outline:2px solid highlight}}.haze-Splitter__dividerHorizontal{width:2px;height:100%;padding-inline:calc((var(--haze-space-6) - 2px) / 2);cursor:col-resize}@media (pointer:coarse){.haze-Splitter__dividerHorizontal{padding-inline:21px}}.haze-Splitter__dividerVertical{width:100%;height:2px;padding-block:calc((var(--haze-space-6) - 2px) / 2);cursor:row-resize}.haze-Splitter__dividerVertical:hover,.haze-Splitter__dividerVertical:focus-visible{background:linear-gradient(to bottom, transparent 0, var(--haze-color-primary) 50%, transparent 100%) center/100% 2px no-repeat,var(--haze-color-bg-subtle)}@media (pointer:coarse){.haze-Splitter__dividerVertical{padding-block:21px}}.haze-Splitter__dividerHandle{touch-action:none;position:absolute;inset:0}.haze-Splitter__dividerHandle:focus-visible{outline:none}.haze-Splitter__collapseButtonBase{box-sizing:border-box;width:var(--haze-space-6);height:var(--haze-space-6);border-radius:var(--haze-radius-sm);background:var(--haze-color-bg-muted);color:var(--haze-color-text-secondary);cursor:pointer;opacity:0;pointer-events:none;-webkit-transition:opacity var(--haze-duration-fast);transition:opacity var(--haze-duration-fast);border:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute}.haze-Splitter__collapseButtonBase:hover{color:var(--haze-color-text)}.haze-Splitter__collapseButtonBase:focus-visible{outline:2px solid var(--haze-color-focus-ring);outline-offset:1px}@media (forced-colors:active){.haze-Splitter__collapseButtonBase{background:canvas;border:1px solid buttonborder}}.haze-Splitter__collapseLeadHorizontal{top:var(--haze-space-1);left:50%;transform:translate(-50%)}.haze-Splitter__collapseLeadHorizontal svg{transform:rotate(0)}html[dir=rtl] .haze-Splitter__collapseLeadHorizontal svg{transform:rotate(180deg)}.haze-Splitter__collapseTrailHorizontal{bottom:var(--haze-space-1);left:50%;transform:translate(-50%)}.haze-Splitter__collapseTrailHorizontal svg{transform:rotate(180deg)}html[dir=rtl] .haze-Splitter__collapseTrailHorizontal svg{transform:rotate(0)}.haze-Splitter__collapseLeadVertical{inset-inline-start:var(--haze-space-1);top:50%;transform:translateY(-50%)}.haze-Splitter__collapseLeadVertical svg{transform:rotate(90deg)}.haze-Splitter__collapseTrailVertical{inset-inline-end:var(--haze-space-1);top:50%;transform:translateY(-50%)}.haze-Splitter__collapseTrailVertical svg{transform:rotate(-90deg)}
|
|
4
|
+
}
|
package/dist/css-manifest.json
CHANGED
|
@@ -58,6 +58,7 @@
|
|
|
58
58
|
"ConversationItem": "conversation-list",
|
|
59
59
|
"ConversationList": "conversation-list",
|
|
60
60
|
"CountUp": "count-up",
|
|
61
|
+
"Countdown": "countdown",
|
|
61
62
|
"DataTable": "data-table",
|
|
62
63
|
"DateRangePicker": "date-range-picker",
|
|
63
64
|
"DateRangePickerCore": "date-range-picker",
|
|
@@ -97,6 +98,7 @@
|
|
|
97
98
|
"HoverCard": "hover-card",
|
|
98
99
|
"Icon": "icon",
|
|
99
100
|
"Image": "image",
|
|
101
|
+
"ImageCrop": "image-crop",
|
|
100
102
|
"Indicator": "indicator",
|
|
101
103
|
"InlineCompletion": "inline-completion",
|
|
102
104
|
"InlineEdit": "inline-edit",
|
|
@@ -171,9 +173,8 @@
|
|
|
171
173
|
"Sources": "sources",
|
|
172
174
|
"Sparkline": "sparkline",
|
|
173
175
|
"Spinner": "spinner",
|
|
174
|
-
"
|
|
175
|
-
"
|
|
176
|
-
"SplitterPanel": "resizable",
|
|
176
|
+
"Splitter": "splitter",
|
|
177
|
+
"SplitterPane": "splitter",
|
|
177
178
|
"Spoiler": "spoiler",
|
|
178
179
|
"Stat": "stat",
|
|
179
180
|
"StatGroup": "stat",
|
package/dist/haze-ui.css
CHANGED
|
@@ -170,6 +170,10 @@
|
|
|
170
170
|
.haze-CountUp__base{font-variant-numeric:tabular-nums;font-family:var(--haze-font-sans);font-size:inherit;color:inherit}
|
|
171
171
|
}
|
|
172
172
|
|
|
173
|
+
@layer haze {
|
|
174
|
+
.haze-Countdown__base{font-variant-numeric:tabular-nums;font-family:var(--haze-font-sans);font-size:inherit;color:inherit}
|
|
175
|
+
}
|
|
176
|
+
|
|
173
177
|
@layer haze {
|
|
174
178
|
.haze-CellEditor__editorInput{min-width:0;margin-block:calc(-1 * var(--haze-space-1))}
|
|
175
179
|
.haze-DataTable__root{flex-direction:column;display:flex}.haze-DataTable__scrollArea{overflow-x:auto}.haze-DataTable__stickyScrollArea{flex:1;min-height:0;overflow:auto}.haze-DataTable__virtualArea{-webkit-scrollbar-gutter:stable;-ms-scrollbar-gutter:stable;scrollbar-gutter:stable;flex:1;min-height:0;overflow:auto hidden}.haze-DataTable__fixedLayout{table-layout:fixed}.haze-DataTable__virtualRowTable{height:100%}.haze-DataTable__tableBase{border-collapse:collapse;width:100%;font-family:var(--haze-font-sans);font-size:var(--haze-text-sm);color:var(--haze-color-text)}.haze-DataTable__stickyHead th{z-index:2;background:var(--haze-color-bg);box-shadow:var(--haze-shadow-sm);position:sticky;top:0}.haze-DataTable__sortButton{align-items:center;gap:var(--haze-space-1);font:inherit;font-weight:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0;display:inline-flex}.haze-DataTable__sortButton:hover{color:var(--haze-color-primary)}.haze-DataTable__sortButton:focus-visible{border-radius:var(--haze-radius-sm);box-shadow:0 0 0 3px var(--haze-color-focus-ring);outline:none}.haze-DataTable__sortIcon{color:var(--haze-color-text-muted);font-size:var(--haze-text-xs)}.haze-DataTable__rowHover:hover{background:var(--haze-color-bg-subtle)}.haze-DataTable__rowSelected,.haze-DataTable__rowSelected:hover{background:var(--haze-color-primary-subtle)}.haze-DataTable__clickableRow{cursor:pointer}.haze-DataTable__checkCell{white-space:nowrap;width:1%}.haze-DataTable__checkCellCol{white-space:nowrap}.haze-DataTable__fixedCell{z-index:1;background:var(--haze-color-bg);position:sticky}tr:hover .haze-DataTable__fixedCell{background:var(--haze-color-bg-subtle)}tr .haze-DataTable__fixedCellSelected,tr:hover .haze-DataTable__fixedCellSelected{background:var(--haze-color-primary-subtle)}.haze-DataTable__fixedHeadCell{z-index:3}.haze-DataTable__fixedLeftEdge{clip-path:inset(0 -8px 0 0);box-shadow:6px 0 8px -6px var(--haze-color-border)}.haze-DataTable__fixedRightEdge{clip-path:inset(0 0 0 -8px);box-shadow:-6px 0 8px -6px var(--haze-color-border)}.haze-DataTable__emptyCell{padding:0}.haze-DataTable__footer{margin-top:var(--haze-space-3);justify-content:flex-end;align-items:center;display:flex}.haze-DataTable__toolbar{margin-bottom:var(--haze-space-3);justify-content:flex-end;display:flex}.haze-DataTable__footerMenu{-webkit-margin-end:auto;margin-inline-end:auto}.haze-DataTable__columnsTrigger{align-items:center;gap:var(--haze-space-1);padding:var(--haze-space-1) var(--haze-space-2);border:1px solid var(--haze-color-border);border-radius:var(--haze-radius-md);background:var(--haze-color-bg);color:var(--haze-color-text);font-size:var(--haze-text-sm);font-family:var(--haze-font-sans);display:inline-flex}.haze-DataTable__columnsTrigger:hover{border-color:var(--haze-color-border-hover);background:var(--haze-color-bg-subtle)}.haze-DataTable__toggleRow{padding:var(--haze-space-1) var(--haze-space-2);border-radius:var(--haze-radius-sm);cursor:pointer;font-size:var(--haze-text-sm);align-items:center;display:flex}.haze-DataTable__toggleRow:hover{background:var(--haze-color-bg-subtle)}.haze-DataTable__resizableHead{position:relative}.haze-DataTable__resizeHandle{top:0;bottom:0;z-index:1;cursor:col-resize;touch-action:none;border-radius:var(--haze-radius-sm);width:6px;position:absolute;inset-inline-end:-3px}.haze-DataTable__resizeHandle:after{content:"";top:25%;bottom:25%;background:var(--haze-color-border);width:1px;position:absolute;inset-inline-end:2.5px}.haze-DataTable__resizeHandle:hover:after,.haze-DataTable__resizeHandle:focus-visible:after{background:var(--haze-color-primary);top:0;bottom:0}.haze-DataTable__resizeHandle:focus-visible{box-shadow:0 0 0 3px var(--haze-color-focus-ring);outline:none}.haze-DataTable__expander{width:var(--haze-space-5);height:var(--haze-space-5);-webkit-margin-end:var(--haze-space-1);color:var(--haze-color-text-muted);font-size:var(--haze-text-xs);vertical-align:middle;cursor:pointer;border-radius:var(--haze-radius-sm);background:0 0;border:none;justify-content:center;align-items:center;margin-inline-end:var(--haze-space-1);padding:0;display:inline-flex}.haze-DataTable__expander:hover{color:var(--haze-color-text);background:var(--haze-color-bg-subtle)}.haze-DataTable__expander:focus-visible{box-shadow:0 0 0 3px var(--haze-color-focus-ring);outline:none}.haze-DataTable__expanderIcon{-webkit-transition:-webkit-transform var(--haze-duration-fast) var(--haze-ease);transition:transform var(--haze-duration-fast) var(--haze-ease)}[aria-expanded=true] .haze-DataTable__expanderIcon{transform:rotate(90deg)}.haze-DataTable__panelCell{padding:var(--haze-space-3);background:var(--haze-color-bg-subtle)}.haze-DataTable__treeIndent{vertical-align:middle;display:inline-block}.haze-DataTable__summaryFoot td{padding:var(--haze-space-2) var(--haze-space-3);border-top:2px solid var(--haze-color-border);color:var(--haze-color-text);font-weight:var(--haze-weight-semibold);white-space:nowrap}.haze-DataTable__stickyFoot td{z-index:2;background:var(--haze-color-bg);box-shadow:var(--haze-shadow-sm);position:sticky;bottom:0}.haze-DataTable__editableCell{cursor:text}.haze-DataTable__editableCell:focus-visible{box-shadow:inset 0 0 0 2px var(--haze-color-primary);outline:none}
|
|
@@ -275,6 +279,10 @@
|
|
|
275
279
|
.haze-ImagePreview__overlay{border-radius:var(--haze-radius-none);color:var(--haze-color-text);font-family:var(--haze-font-sans);background:0 0;border:none;width:100vw;max-width:100vw;height:100vh;max-height:100vh;margin:0;padding:0;overflow:hidden}.haze-ImagePreview__overlay[open]{justify-content:center;align-items:center;display:flex}.haze-ImagePreview__overlay::backdrop{background:#000000b8}.haze-ImagePreview__overlay[open][data-state=open]{-webkit-animation:haze-image-preview-in-haze-ImagePreview__overlay var(--haze-duration-normal) var(--haze-ease);animation:haze-image-preview-in-haze-ImagePreview__overlay var(--haze-duration-normal) var(--haze-ease)}.haze-ImagePreview__overlay[open][data-state=closed]{-webkit-animation:haze-image-preview-out-haze-ImagePreview__overlay var(--haze-duration-fast) var(--haze-ease);animation:haze-image-preview-out-haze-ImagePreview__overlay var(--haze-duration-fast) var(--haze-ease)}.haze-ImagePreview__overlay[open][data-state=open]::backdrop{-webkit-animation:haze-image-backdrop-in-haze-ImagePreview__overlay var(--haze-duration-normal) var(--haze-ease);animation:haze-image-backdrop-in-haze-ImagePreview__overlay var(--haze-duration-normal) var(--haze-ease)}.haze-ImagePreview__overlay[open][data-state=closed]::backdrop{-webkit-animation:haze-image-backdrop-out-haze-ImagePreview__overlay var(--haze-duration-fast) var(--haze-ease);animation:haze-image-backdrop-out-haze-ImagePreview__overlay var(--haze-duration-fast) var(--haze-ease)}@keyframes haze-image-preview-in-haze-ImagePreview__overlay{0%{opacity:0}}@keyframes haze-image-preview-out-haze-ImagePreview__overlay{to{opacity:0}}@keyframes haze-image-backdrop-in-haze-ImagePreview__overlay{0%{opacity:0}}@keyframes haze-image-backdrop-out-haze-ImagePreview__overlay{to{opacity:0}}.haze-ImagePreview__previewImg{object-fit:contain;transform-origin:50%;-webkit-user-select:none;user-select:none;touch-action:none;max-width:90%;max-height:90%}.haze-ImagePreview__imgPannable{cursor:-webkit-grab;cursor:grab}.haze-ImagePreview__imgPanning{cursor:-webkit-grabbing;cursor:grabbing}.haze-ImagePreview__imgAnimated{-webkit-transition:-webkit-transform var(--haze-duration-normal) var(--haze-ease);transition:transform var(--haze-duration-normal) var(--haze-ease)}.haze-ImagePreview__toolbar{top:var(--haze-space-4);align-items:center;gap:var(--haze-space-1);width:fit-content;padding:var(--haze-space-1);border:1px solid var(--haze-color-border);border-radius:var(--haze-radius-lg);background:var(--haze-color-bg);box-shadow:var(--haze-shadow-lg);margin-inline:auto;display:flex;position:absolute;left:0;right:0}.haze-ImagePreview__toolButton{width:var(--haze-space-8);height:var(--haze-space-8);border-radius:var(--haze-radius-md);color:var(--haze-color-text);font-family:var(--haze-font-sans);font-size:var(--haze-text-sm);font-weight:var(--haze-weight-medium);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}.haze-ImagePreview__toolButton svg{width:var(--haze-space-5);height:var(--haze-space-5)}.haze-ImagePreview__toolButton:hover:not(:disabled){background:var(--haze-color-bg-muted)}.haze-ImagePreview__toolButton:disabled{color:var(--haze-color-text-muted);cursor:not-allowed}.haze-ImagePreview__toolButton:focus-visible{box-shadow:0 0 0 3px var(--haze-color-focus-ring);outline:none}
|
|
276
280
|
}
|
|
277
281
|
|
|
282
|
+
@layer haze {
|
|
283
|
+
.haze-ImageCrop__root{max-width:100%;font-family:var(--haze-font-sans);display:block}.haze-ImageCrop__sourceClass{display:none}.haze-ImageCrop__frame{border-radius:var(--haze-radius-md);background:var(--haze-color-bg-muted);-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.haze-ImageCrop__canvasClass{width:100%;height:auto;display:block}.haze-ImageCrop__loading{box-sizing:border-box;aspect-ratio:4/3;border-radius:var(--haze-radius-md);background:var(--haze-color-bg-subtle);width:100%}.haze-ImageCrop__cropBox{box-sizing:border-box;border:1px solid var(--haze-color-primary);border-radius:var(--haze-radius-sm);cursor:move;touch-action:none;position:absolute;box-shadow:0 0 0 9999px #00000073}.haze-ImageCrop__cropBox:focus-visible{box-shadow:0 0 0 9999px #00000073,inset 0 0 0 var(--haze-space-1) var(--haze-color-focus-ring);outline:none}.haze-ImageCrop__cropBox[aria-disabled=true]{cursor:not-allowed}@media (forced-colors:active){.haze-ImageCrop__cropBox{box-shadow:none;border-color:highlight}.haze-ImageCrop__cropBox:focus-visible{box-shadow:inset 0 0 0 var(--haze-space-1) Highlight}}.haze-ImageCrop__cropCircle{border-radius:var(--haze-radius-full)}.haze-ImageCrop__handleBase{width:var(--haze-space-6);height:var(--haze-space-6);touch-action:none;position:absolute}.haze-ImageCrop__handleBase:before{content:"";inset:calc((var(--haze-space-6) - var(--haze-space-2)) / 2);box-sizing:border-box;border:1px solid var(--haze-color-primary);border-radius:var(--haze-radius-sm);background:var(--haze-color-bg);position:absolute}@media (forced-colors:active){.haze-ImageCrop__handleBase:before{background:canvastext;border-color:canvastext}}.haze-ImageCrop__nw{top:calc(var(--haze-space-6) / -2);left:calc(var(--haze-space-6) / -2);cursor:nw-resize}.haze-ImageCrop__ne{top:calc(var(--haze-space-6) / -2);right:calc(var(--haze-space-6) / -2);cursor:ne-resize}.haze-ImageCrop__sw{bottom:calc(var(--haze-space-6) / -2);left:calc(var(--haze-space-6) / -2);cursor:sw-resize}.haze-ImageCrop__se{bottom:calc(var(--haze-space-6) / -2);right:calc(var(--haze-space-6) / -2);cursor:se-resize}.haze-ImageCrop__notice{box-sizing:border-box;aspect-ratio:4/3;border:1px dashed var(--haze-color-border);border-radius:var(--haze-radius-md);width:100%;color:var(--haze-color-text-muted);font-size:var(--haze-text-sm);justify-content:center;align-items:center;display:flex}.haze-ImageCrop__srOnly{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}
|
|
284
|
+
}
|
|
285
|
+
|
|
278
286
|
@layer haze {
|
|
279
287
|
.haze-Indicator__host{display:inline-flex;position:relative}.haze-Indicator__badge{top:0;-webkit-translate:50% -50%;-moz-translate:50% -50%;-ms-translate:50% -50%;min-width:var(--haze-space-4);height:var(--haze-space-4);padding-inline:var(--haze-space-1);border-radius:var(--haze-radius-full);border:var(--haze-indicator-ring-width,2px) solid var(--haze-color-bg);background:var(--haze-color-danger);color:var(--haze-color-text-inverse);font-family:var(--haze-font-sans);font-size:var(--haze-text-xs);font-weight:var(--haze-weight-medium);pointer-events:none;justify-content:center;align-items:center;line-height:1;display:inline-flex;position:absolute;inset-inline-end:0;translate:50% -50%}@media (forced-colors:active){.haze-Indicator__badge{color:marktext;background:mark;border-color:canvas}}.haze-Indicator__dot{min-width:var(--haze-space-2);height:var(--haze-space-2);border-radius:var(--haze-radius-full);padding-inline:0}.haze-Indicator__top-start{-webkit-translate:-50% -50%;-moz-translate:-50% -50%;-ms-translate:-50% -50%;inset-inline:0 auto;translate:-50% -50%}.haze-Indicator__bottom-start{top:auto;bottom:0;-webkit-translate:-50% 50%;-moz-translate:-50% 50%;-ms-translate:-50% 50%;inset-inline:0 auto;translate:-50% 50%}.haze-Indicator__bottom-end{-webkit-translate:50% 50%;-moz-translate:50% 50%;-ms-translate:50% 50%;top:auto;bottom:0;translate:50% 50%}.haze-Indicator__primary{background:var(--haze-color-primary)}.haze-Indicator__danger{background:var(--haze-color-danger)}.haze-Indicator__success{background:var(--haze-color-success)}.haze-Indicator__warning{background:var(--haze-color-warning);color:var(--haze-color-text)}
|
|
280
288
|
}
|
|
@@ -444,6 +452,10 @@
|
|
|
444
452
|
.haze-Spinner__base{animation:.8s linear infinite spin-haze-Spinner__base;display:inline-flex}@media (prefers-reduced-motion:reduce){.haze-Spinner__base{animation-duration:.01ms;animation-iteration-count:1}}@keyframes spin-haze-Spinner__base{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (forced-colors:active){.haze-Spinner__base svg circle{stroke:graytext}.haze-Spinner__base svg path{stroke:canvastext}}.haze-Spinner__sm{width:16px;height:16px}.haze-Spinner__md{width:24px;height:24px}.haze-Spinner__lg{width:32px;height:32px}
|
|
445
453
|
}
|
|
446
454
|
|
|
455
|
+
@layer haze {
|
|
456
|
+
.haze-Splitter__splitterBase{box-sizing:border-box;min-width:0;min-height:0;display:flex;overflow:hidden}.haze-Splitter__splitterHorizontal{flex-direction:row;height:100%}.haze-Splitter__splitterVertical{flex-direction:column;width:100%}.haze-Splitter__paneBase{box-sizing:border-box;flex-shrink:0;flex-basis:0;min-width:0;min-height:0;overflow:auto}.haze-Splitter__dividerBase{background:var(--haze-color-border);-webkit-transition:background var(--haze-duration-fast);transition:background var(--haze-duration-fast);-webkit-background-clip:content-box;background-clip:content-box;flex:none;position:relative}.haze-Splitter__dividerBase:hover{background:linear-gradient(to right, transparent 0, var(--haze-color-primary) 50%, transparent 100%) center/2px 100% no-repeat,var(--haze-color-bg-subtle)}.haze-Splitter__dividerBase:has(>:focus-visible){background:linear-gradient(to right, transparent 0, var(--haze-color-primary) 50%, transparent 100%) center/2px 100% no-repeat,var(--haze-color-bg-subtle)}.haze-Splitter__dividerBase:has(>:focus-visible){box-shadow:inset 0 0 0 2px var(--haze-color-focus-ring);outline:none}.haze-Splitter__dividerBase:hover>[data-slot=divider-collapse],.haze-Splitter__dividerBase:focus-within>[data-slot=divider-collapse],.haze-Splitter__dividerBase>[data-slot=divider-collapse]:focus-visible{opacity:1;pointer-events:auto}@media (forced-colors:active){.haze-Splitter__dividerBase{background:canvastext;-webkit-background-clip:content-box;background-clip:content-box}.haze-Splitter__dividerBase:hover{background:highlight;-webkit-background-clip:content-box;background-clip:content-box}.haze-Splitter__dividerBase:has(>:focus-visible){background:highlight;-webkit-background-clip:content-box;background-clip:content-box}.haze-Splitter__dividerBase:has(>:focus-visible){outline-offset:-2px;outline:2px solid highlight}}.haze-Splitter__dividerHorizontal{width:2px;height:100%;padding-inline:calc((var(--haze-space-6) - 2px) / 2);cursor:col-resize}@media (pointer:coarse){.haze-Splitter__dividerHorizontal{padding-inline:21px}}.haze-Splitter__dividerVertical{width:100%;height:2px;padding-block:calc((var(--haze-space-6) - 2px) / 2);cursor:row-resize}.haze-Splitter__dividerVertical:hover,.haze-Splitter__dividerVertical:focus-visible{background:linear-gradient(to bottom, transparent 0, var(--haze-color-primary) 50%, transparent 100%) center/100% 2px no-repeat,var(--haze-color-bg-subtle)}@media (pointer:coarse){.haze-Splitter__dividerVertical{padding-block:21px}}.haze-Splitter__dividerHandle{touch-action:none;position:absolute;inset:0}.haze-Splitter__dividerHandle:focus-visible{outline:none}.haze-Splitter__collapseButtonBase{box-sizing:border-box;width:var(--haze-space-6);height:var(--haze-space-6);border-radius:var(--haze-radius-sm);background:var(--haze-color-bg-muted);color:var(--haze-color-text-secondary);cursor:pointer;opacity:0;pointer-events:none;-webkit-transition:opacity var(--haze-duration-fast);transition:opacity var(--haze-duration-fast);border:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute}.haze-Splitter__collapseButtonBase:hover{color:var(--haze-color-text)}.haze-Splitter__collapseButtonBase:focus-visible{outline:2px solid var(--haze-color-focus-ring);outline-offset:1px}@media (forced-colors:active){.haze-Splitter__collapseButtonBase{background:canvas;border:1px solid buttonborder}}.haze-Splitter__collapseLeadHorizontal{top:var(--haze-space-1);left:50%;transform:translate(-50%)}.haze-Splitter__collapseLeadHorizontal svg{transform:rotate(0)}html[dir=rtl] .haze-Splitter__collapseLeadHorizontal svg{transform:rotate(180deg)}.haze-Splitter__collapseTrailHorizontal{bottom:var(--haze-space-1);left:50%;transform:translate(-50%)}.haze-Splitter__collapseTrailHorizontal svg{transform:rotate(180deg)}html[dir=rtl] .haze-Splitter__collapseTrailHorizontal svg{transform:rotate(0)}.haze-Splitter__collapseLeadVertical{inset-inline-start:var(--haze-space-1);top:50%;transform:translateY(-50%)}.haze-Splitter__collapseLeadVertical svg{transform:rotate(90deg)}.haze-Splitter__collapseTrailVertical{inset-inline-end:var(--haze-space-1);top:50%;transform:translateY(-50%)}.haze-Splitter__collapseTrailVertical svg{transform:rotate(-90deg)}
|
|
457
|
+
}
|
|
458
|
+
|
|
447
459
|
@layer haze {
|
|
448
460
|
.haze-Spoiler__root{display:block}.haze-Spoiler__clip{position:relative;overflow:hidden}.haze-Spoiler__clip:after{content:"";inset-inline:0;height:var(--haze-space-8);background:linear-gradient(transparent, var(--haze-spoiler-fade-bg,var(--haze-color-bg)));pointer-events:none;position:absolute;bottom:0}@media (forced-colors:active){.haze-Spoiler__clip:after{background:0 0;border-top:1px dotted graytext}}.haze-Spoiler__toggle{appearance:none;padding:var(--haze-space-1) 0;margin-top:var(--haze-space-1);cursor:pointer;color:var(--haze-color-primary);font-family:var(--haze-font-sans);font-size:var(--haze-text-sm);background:0 0;border:none}.haze-Spoiler__toggle:hover{color:var(--haze-color-primary-hover);-webkit-text-decoration:underline;text-decoration:underline}
|
|
449
461
|
}
|
package/dist/hooks/useHotkeys.js
CHANGED
|
@@ -33,45 +33,99 @@ function i(e) {
|
|
|
33
33
|
}
|
|
34
34
|
function a(e, t) {
|
|
35
35
|
let n = i(e);
|
|
36
|
-
|
|
37
|
-
let { modifiers: r, key: a } = n;
|
|
38
|
-
return r.has("ctrl") && !t.ctrlKey || r.has("shift") && !t.shiftKey || r.has("alt") && !t.altKey || r.has("meta") && !t.metaKey || !r.has("ctrl") && t.ctrlKey || !r.has("alt") && t.altKey || !r.has("meta") && t.metaKey ? !1 : a.length === 1 ? t.key.toLowerCase() === a.toLowerCase() : t.key === a;
|
|
36
|
+
return n !== null && o(n, t);
|
|
39
37
|
}
|
|
40
|
-
function o(e) {
|
|
38
|
+
function o(e, t) {
|
|
39
|
+
let { modifiers: n, key: r } = e;
|
|
40
|
+
return n.has("ctrl") && !t.ctrlKey || n.has("shift") && !t.shiftKey || n.has("alt") && !t.altKey || n.has("meta") && !t.metaKey || !n.has("ctrl") && t.ctrlKey || !n.has("alt") && t.altKey || !n.has("meta") && t.metaKey ? !1 : r.length === 1 ? t.key.toLowerCase() === r.toLowerCase() : t.key === r;
|
|
41
|
+
}
|
|
42
|
+
function s(e) {
|
|
43
|
+
let t = [];
|
|
44
|
+
for (let n of e.split(/\s+/)) {
|
|
45
|
+
if (n === "") continue;
|
|
46
|
+
let e = i(n);
|
|
47
|
+
if (e === null) return null;
|
|
48
|
+
t.push(e);
|
|
49
|
+
}
|
|
50
|
+
return t.length >= 2 ? t : null;
|
|
51
|
+
}
|
|
52
|
+
function c(e) {
|
|
41
53
|
if (!(e instanceof HTMLElement)) return !1;
|
|
42
54
|
if (e.isContentEditable) return !0;
|
|
43
55
|
let t = e.tagName;
|
|
44
56
|
return t === "INPUT" || t === "TEXTAREA" || t === "SELECT";
|
|
45
57
|
}
|
|
46
|
-
function
|
|
58
|
+
function l(...e) {
|
|
47
59
|
return e.join(",");
|
|
48
60
|
}
|
|
49
|
-
function
|
|
50
|
-
let { enabled: i = !0, target:
|
|
61
|
+
function u(n, r = {}) {
|
|
62
|
+
let { enabled: i = !0, target: l, eventName: u = "keydown", allowInInput: d = !1, sequenceTimeout: f = 1e3 } = r, p = t(n);
|
|
63
|
+
e(() => {
|
|
64
|
+
p.current = n;
|
|
65
|
+
});
|
|
66
|
+
let m = t({
|
|
67
|
+
progress: /* @__PURE__ */ new Map(),
|
|
68
|
+
timer: null
|
|
69
|
+
});
|
|
51
70
|
e(() => {
|
|
52
|
-
u.current = n;
|
|
53
|
-
}), e(() => {
|
|
54
71
|
if (!i) return;
|
|
55
|
-
let e =
|
|
72
|
+
let e = l === void 0 ? window : "current" in l ? l.current : l;
|
|
56
73
|
if (e === null) return;
|
|
57
|
-
let t = (
|
|
58
|
-
let
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
74
|
+
let t = () => {
|
|
75
|
+
let e = m.current;
|
|
76
|
+
e.timer !== null && (clearTimeout(e.timer), e.timer = null);
|
|
77
|
+
}, n = () => {
|
|
78
|
+
t(), m.current.progress.clear();
|
|
79
|
+
}, r = (e) => {
|
|
80
|
+
let r = e;
|
|
81
|
+
if (!d && c(r.target)) return;
|
|
82
|
+
let i = p.current, l = /* @__PURE__ */ new Map();
|
|
83
|
+
for (let e of Object.keys(i)) {
|
|
84
|
+
let t = !1;
|
|
85
|
+
for (let n of e.split(",")) {
|
|
86
|
+
let e = n.trim();
|
|
87
|
+
if (!/\s/.test(e)) {
|
|
88
|
+
if (a(e, r)) {
|
|
89
|
+
t = !0;
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
let i = s(e);
|
|
95
|
+
if (i === null) continue;
|
|
96
|
+
let c = m.current.progress.get(e) ?? 0, u = i[c];
|
|
97
|
+
if (u !== void 0 && o(u, r)) {
|
|
98
|
+
if (c + 1 === i.length) {
|
|
99
|
+
t = !0;
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
l.set(e, c + 1);
|
|
103
|
+
} else {
|
|
104
|
+
let t = i[0];
|
|
105
|
+
t !== void 0 && o(t, r) && l.set(e, 1);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
if (t) {
|
|
109
|
+
let t = i[e];
|
|
110
|
+
if (!t) continue;
|
|
111
|
+
n(), r.preventDefault(), r.stopPropagation(), t(r);
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
66
114
|
}
|
|
115
|
+
l.size > 0 ? (t(), m.current.progress = l, m.current.timer = setTimeout(() => {
|
|
116
|
+
m.current.progress.clear(), m.current.timer = null;
|
|
117
|
+
}, f)) : n();
|
|
118
|
+
};
|
|
119
|
+
return e.addEventListener(u, r), () => {
|
|
120
|
+
e.removeEventListener(u, r), n();
|
|
67
121
|
};
|
|
68
|
-
return e.addEventListener(c, t), () => e.removeEventListener(c, t);
|
|
69
122
|
}, [
|
|
70
123
|
i,
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
124
|
+
l,
|
|
125
|
+
u,
|
|
126
|
+
d,
|
|
127
|
+
f
|
|
74
128
|
]);
|
|
75
129
|
}
|
|
76
130
|
//#endregion
|
|
77
|
-
export {
|
|
131
|
+
export { l as hotkey, u as useHotkeys };
|