@rinzai/zen 0.8.6 → 0.10.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/dist/animated-number/index.d.ts +6 -2
- package/dist/animated-number/index.d.ts.map +1 -1
- package/dist/animated-number/index.js +69 -17
- package/dist/breadcrumbs/index.d.ts +15 -0
- package/dist/breadcrumbs/index.d.ts.map +1 -0
- package/dist/breadcrumbs/index.js +39 -0
- package/dist/calendar-heatmap/index.d.ts +25 -0
- package/dist/calendar-heatmap/index.d.ts.map +1 -0
- package/dist/calendar-heatmap/index.js +48 -0
- package/dist/card/index.d.ts +3 -1
- package/dist/card/index.d.ts.map +1 -1
- package/dist/card/index.js +3 -2
- package/dist/chart/allocation.d.ts +30 -0
- package/dist/chart/allocation.d.ts.map +1 -0
- package/dist/chart/allocation.js +69 -0
- package/dist/chart/donut.d.ts.map +1 -1
- package/dist/chart/donut.js +72 -70
- package/dist/chart/index.d.ts +1 -0
- package/dist/chart/index.d.ts.map +1 -1
- package/dist/chart/index.js +182 -178
- package/dist/code-block/index.d.ts +1 -1
- package/dist/code-block/index.d.ts.map +1 -1
- package/dist/code-block/index.js +31 -22
- package/dist/code-input/index.d.ts +20 -0
- package/dist/code-input/index.d.ts.map +1 -0
- package/dist/code-input/index.js +44 -0
- package/dist/collapse/index.d.ts +3 -2
- package/dist/collapse/index.d.ts.map +1 -1
- package/dist/collapse/index.js +1 -1
- package/dist/command-palette/index.d.ts +37 -0
- package/dist/command-palette/index.d.ts.map +1 -0
- package/dist/command-palette/index.js +120 -0
- package/dist/date-picker/index.d.ts +10 -2
- package/dist/date-picker/index.d.ts.map +1 -1
- package/dist/date-picker/index.js +43 -21
- package/dist/dialog/index.d.ts +13 -3
- package/dist/dialog/index.d.ts.map +1 -1
- package/dist/dialog/index.js +84 -44
- package/dist/editable-cell/index.d.ts +2 -1
- package/dist/editable-cell/index.d.ts.map +1 -1
- package/dist/editable-cell/index.js +24 -17
- package/dist/empty-state/index.d.ts +14 -0
- package/dist/empty-state/index.d.ts.map +1 -0
- package/dist/empty-state/index.js +31 -0
- package/dist/file-drop/index.d.ts +18 -0
- package/dist/file-drop/index.d.ts.map +1 -0
- package/dist/file-drop/index.js +49 -0
- package/dist/filter-bar/index.d.ts +21 -0
- package/dist/filter-bar/index.d.ts.map +1 -0
- package/dist/filter-bar/index.js +90 -0
- package/dist/icon-picker/index.d.ts +38 -0
- package/dist/icon-picker/index.d.ts.map +1 -0
- package/dist/icon-picker/index.js +112 -0
- package/dist/icons/arrow-left.js +23 -0
- package/dist/icons/micro/arrow-trending-down.d.ts +3 -0
- package/dist/icons/micro/arrow-trending-down.d.ts.map +1 -0
- package/dist/icons/micro/arrow-trending-down.js +21 -0
- package/dist/icons/micro/arrow-trending-up.d.ts +3 -0
- package/dist/icons/micro/arrow-trending-up.d.ts.map +1 -0
- package/dist/icons/micro/arrow-trending-up.js +21 -0
- package/dist/index.d.ts +30 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/kbd/index.d.ts +4 -0
- package/dist/kbd/index.d.ts.map +1 -0
- package/dist/kbd/index.js +12 -0
- package/dist/keypad/index.d.ts +20 -0
- package/dist/keypad/index.d.ts.map +1 -0
- package/dist/keypad/index.js +42 -0
- package/dist/lib.js +92 -65
- package/dist/load-more/index.d.ts +19 -0
- package/dist/load-more/index.d.ts.map +1 -0
- package/dist/load-more/index.js +37 -0
- package/dist/menu/index.d.ts +22 -3
- package/dist/menu/index.d.ts.map +1 -1
- package/dist/menu/index.js +132 -45
- package/dist/meter/index.d.ts +3 -1
- package/dist/meter/index.d.ts.map +1 -1
- package/dist/meter/index.js +19 -14
- package/dist/money-input/index.d.ts +3 -3
- package/dist/page-transition/index.d.ts +10 -0
- package/dist/page-transition/index.d.ts.map +1 -0
- package/dist/page-transition/index.js +16 -0
- package/dist/pagination/index.d.ts +26 -0
- package/dist/pagination/index.d.ts.map +1 -0
- package/dist/pagination/index.js +62 -0
- package/dist/progress-ring/index.d.ts +4 -1
- package/dist/progress-ring/index.d.ts.map +1 -1
- package/dist/progress-ring/index.js +47 -38
- package/dist/range-slider/index.d.ts +26 -0
- package/dist/range-slider/index.d.ts.map +1 -0
- package/dist/range-slider/index.js +44 -0
- package/dist/repeat-picker/index.d.ts +22 -0
- package/dist/repeat-picker/index.d.ts.map +1 -0
- package/dist/repeat-picker/index.js +115 -0
- package/dist/skeleton/index.d.ts +12 -2
- package/dist/skeleton/index.d.ts.map +1 -1
- package/dist/skeleton/index.js +11 -5
- package/dist/slider/index.d.ts +2 -0
- package/dist/slider/index.d.ts.map +1 -1
- package/dist/slider/index.js +19 -18
- package/dist/sortable/index.d.ts +33 -0
- package/dist/sortable/index.d.ts.map +1 -0
- package/dist/sortable/index.js +147 -0
- package/dist/sparkline/index.d.ts +15 -0
- package/dist/sparkline/index.d.ts.map +1 -0
- package/dist/sparkline/index.js +56 -0
- package/dist/stepper/index.d.ts +19 -0
- package/dist/stepper/index.d.ts.map +1 -0
- package/dist/stepper/index.js +53 -0
- package/dist/table/index.d.ts +11 -2
- package/dist/table/index.d.ts.map +1 -1
- package/dist/table/index.js +117 -53
- package/dist/table/selection.d.ts +55 -0
- package/dist/table/selection.d.ts.map +1 -0
- package/dist/table/selection.js +83 -0
- package/dist/table/swipe.d.ts +18 -0
- package/dist/table/swipe.d.ts.map +1 -0
- package/dist/table/swipe.js +53 -0
- package/dist/table-of-contents/index.d.ts +1 -0
- package/dist/table-of-contents/index.d.ts.map +1 -1
- package/dist/table-of-contents/index.js +25 -23
- package/dist/tabs/index.d.ts.map +1 -1
- package/dist/tabs/index.js +101 -51
- package/dist/tag-input/index.d.ts +19 -0
- package/dist/tag-input/index.d.ts.map +1 -0
- package/dist/tag-input/index.js +61 -0
- package/dist/theme-toggle/index.js +6 -6
- package/dist/theme.css +340 -8
- package/dist/timeline/index.d.ts +18 -0
- package/dist/timeline/index.d.ts.map +1 -0
- package/dist/timeline/index.js +45 -0
- package/dist/toast/index.js +25 -25
- package/dist/toggle/index.d.ts.map +1 -1
- package/dist/toggle/index.js +1 -1
- package/dist/tree/index.d.ts.map +1 -1
- package/dist/tree/index.js +68 -67
- package/dist/trend/index.d.ts +19 -0
- package/dist/trend/index.d.ts.map +1 -0
- package/dist/trend/index.js +27 -0
- package/dist/utils/date.d.ts +34 -0
- package/dist/utils/date.d.ts.map +1 -1
- package/dist/utils/date.js +45 -12
- package/dist/utils/indicator.d.ts.map +1 -1
- package/dist/utils/indicator.js +1 -1
- package/dist/utils/money.d.ts +3 -1
- package/dist/utils/money.d.ts.map +1 -1
- package/dist/utils/money.js +24 -1
- package/dist/utils/motion.d.ts +3 -0
- package/dist/utils/motion.d.ts.map +1 -0
- package/dist/utils/motion.js +7 -0
- package/dist/utils/repeat.d.ts +17 -0
- package/dist/utils/repeat.d.ts.map +1 -0
- package/dist/utils/repeat.js +38 -0
- package/dist/utils/section-link.d.ts +9 -0
- package/dist/utils/section-link.d.ts.map +1 -0
- package/dist/utils/section-link.js +10 -0
- package/dist/utils/swipe.d.ts +29 -0
- package/dist/utils/swipe.d.ts.map +1 -0
- package/dist/utils/swipe.js +85 -0
- package/dist/utils/theme-wave.d.ts.map +1 -1
- package/dist/utils/theme-wave.js +72 -71
- package/dist/utils/useAnchoredPopup.d.ts.map +1 -1
- package/dist/utils/useAnchoredPopup.js +3 -4
- package/dist/utils/useSeen.d.ts +4 -0
- package/dist/utils/useSeen.d.ts.map +1 -0
- package/dist/utils/useSeen.js +17 -0
- package/dist/zen.css +1 -1
- package/package.json +3 -1
package/dist/menu/index.js
CHANGED
|
@@ -3,34 +3,52 @@ import { cx as e } from "../utils/cx.js";
|
|
|
3
3
|
import { useTypeahead as t } from "../utils/typeahead.js";
|
|
4
4
|
import { useGraphicsMode as n } from "../utils/graphics.js";
|
|
5
5
|
import { Slot as r } from "../utils/slot.js";
|
|
6
|
-
import {
|
|
7
|
-
import { createContext as
|
|
8
|
-
import {
|
|
6
|
+
import { anchorFor as i, anchoredStyle as a, useAnchoredPopup as o } from "../utils/useAnchoredPopup.js";
|
|
7
|
+
import { createContext as s, useContext as c, useEffect as l, useId as u, useLayoutEffect as d, useRef as f, useState as p } from "react";
|
|
8
|
+
import { createPortal as m } from "react-dom";
|
|
9
|
+
import { Fragment as h, jsx as g, jsxs as _ } from "react/jsx-runtime";
|
|
9
10
|
//#region packages/menu/index.tsx
|
|
10
|
-
var d =
|
|
11
|
-
function
|
|
12
|
-
let t =
|
|
11
|
+
var v = typeof window > "u" ? l : d, y = s(() => {}), b = s(null);
|
|
12
|
+
function x(e) {
|
|
13
|
+
let t = c(b);
|
|
13
14
|
if (!t) throw Error(`<${e}> must be inside <Menu>`);
|
|
14
15
|
return t;
|
|
15
16
|
}
|
|
16
|
-
function
|
|
17
|
+
function S({ onOpenChange: e, children: t }) {
|
|
17
18
|
n();
|
|
18
|
-
let r =
|
|
19
|
-
t
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
let r = u(), [i, a] = p(null), s = f(null), c = f(!1), l = o({ onOpenChange: (t) => {
|
|
20
|
+
if (c.current = t, t ? l.popupRef.current?.focus() : d(), !t && s.current) {
|
|
21
|
+
let e = document.activeElement;
|
|
22
|
+
(!e || e === document.body || l.popupRef.current?.contains(e)) && s.current.focus(), s.current = null;
|
|
23
|
+
}
|
|
24
|
+
e?.(t);
|
|
25
|
+
} }), d = () => {
|
|
26
|
+
let e = l.popupRef.current?.getAnimations?.() ?? [];
|
|
27
|
+
Promise.allSettled(e.map((e) => e.finished)).then(() => {
|
|
28
|
+
c.current || a(null);
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
return v(() => {
|
|
32
|
+
if (i && (l.setOpen(!0), i.pointerId !== void 0)) try {
|
|
33
|
+
l.popupRef.current?.setPointerCapture(i.pointerId);
|
|
34
|
+
} catch {}
|
|
35
|
+
}, [i]), /* @__PURE__ */ g(b.Provider, {
|
|
22
36
|
value: {
|
|
23
|
-
popup:
|
|
24
|
-
triggerId: r
|
|
37
|
+
popup: l,
|
|
38
|
+
triggerId: r,
|
|
39
|
+
point: i,
|
|
40
|
+
openAt: (e) => {
|
|
41
|
+
s.current = document.activeElement instanceof HTMLElement ? document.activeElement : null, a({ ...e });
|
|
42
|
+
}
|
|
25
43
|
},
|
|
26
|
-
children: /* @__PURE__ */
|
|
27
|
-
value: () =>
|
|
44
|
+
children: /* @__PURE__ */ g(y.Provider, {
|
|
45
|
+
value: () => l.setOpen(!1),
|
|
28
46
|
children: t
|
|
29
47
|
})
|
|
30
48
|
});
|
|
31
49
|
}
|
|
32
|
-
function
|
|
33
|
-
let { popup: o, triggerId: s } =
|
|
50
|
+
function C({ asChild: t, style: n, children: i, ...a }) {
|
|
51
|
+
let { popup: o, triggerId: s } = x("MenuTrigger"), c = {
|
|
34
52
|
id: s,
|
|
35
53
|
"aria-haspopup": "menu",
|
|
36
54
|
...o.triggerProps,
|
|
@@ -40,19 +58,21 @@ function h({ asChild: t, style: n, children: i, ...a }) {
|
|
|
40
58
|
...n
|
|
41
59
|
}
|
|
42
60
|
};
|
|
43
|
-
return t ? /* @__PURE__ */
|
|
61
|
+
return t ? /* @__PURE__ */ g(r, {
|
|
44
62
|
...c,
|
|
45
63
|
children: i
|
|
46
|
-
}) : /* @__PURE__ */
|
|
64
|
+
}) : /* @__PURE__ */ g("button", {
|
|
47
65
|
type: "button",
|
|
48
66
|
...c,
|
|
49
67
|
className: e("cursor-pointer", c.className),
|
|
50
68
|
children: i
|
|
51
69
|
});
|
|
52
70
|
}
|
|
53
|
-
function
|
|
54
|
-
let { popup:
|
|
55
|
-
|
|
71
|
+
function w({ align: n, offset: r, className: i, style: o, children: s, ...c }) {
|
|
72
|
+
let { popup: l, triggerId: u, point: d } = x("MenuContent");
|
|
73
|
+
n ??= d ? "start" : "end", r ??= d ? 2 : 6;
|
|
74
|
+
let f = t(), p = (e) => {
|
|
75
|
+
let t = Array.from(l.popupRef.current?.querySelectorAll("[role=\"menuitem\"]:not(:disabled)") ?? []), n = t.indexOf(document.activeElement), r = t.length - 1, i = f(e);
|
|
56
76
|
if (i) {
|
|
57
77
|
t.find((e) => e.textContent?.trim().toLowerCase().startsWith(i))?.focus();
|
|
58
78
|
return;
|
|
@@ -65,61 +85,128 @@ function g({ align: n = "end", offset: r = 6, className: a, style: o, children:
|
|
|
65
85
|
}[e.key];
|
|
66
86
|
a !== void 0 && (e.preventDefault(), t[(a + t.length) % t.length]?.focus());
|
|
67
87
|
};
|
|
68
|
-
return /* @__PURE__ */
|
|
69
|
-
"aria-labelledby": d,
|
|
88
|
+
return /* @__PURE__ */ g("div", {
|
|
89
|
+
"aria-labelledby": d ? void 0 : u,
|
|
70
90
|
...c,
|
|
71
|
-
...
|
|
91
|
+
...l.popupProps,
|
|
72
92
|
role: "menu",
|
|
73
93
|
tabIndex: -1,
|
|
74
94
|
onKeyDown: (e) => {
|
|
75
|
-
c.onKeyDown?.(e),
|
|
95
|
+
c.onKeyDown?.(e), p(e);
|
|
76
96
|
},
|
|
77
97
|
style: {
|
|
78
|
-
...
|
|
98
|
+
...a(l.id, {
|
|
79
99
|
align: n,
|
|
80
100
|
offset: r
|
|
81
101
|
}),
|
|
82
102
|
...o
|
|
83
103
|
},
|
|
84
|
-
className: e("zen__popover glass glass-blur text-foreground min-w-44 rounded-xl p-1.5 outline-hidden",
|
|
104
|
+
className: e("zen__popover glass glass-blur text-foreground min-w-44 rounded-xl p-1.5 outline-hidden", i),
|
|
85
105
|
children: s
|
|
86
106
|
});
|
|
87
107
|
}
|
|
88
|
-
var
|
|
89
|
-
function
|
|
90
|
-
let
|
|
108
|
+
var T = 500, E = 8;
|
|
109
|
+
function D({ asChild: t, disabled: n, className: a, onContextMenu: o, onPointerDown: s, onClickCapture: c, children: d, ...p }) {
|
|
110
|
+
let { popup: v, point: y, openAt: b } = x("MenuContextTrigger"), S = u(), C = y?.from === S, w = f(null), D = f(!1), O = () => {
|
|
111
|
+
w.current && clearTimeout(w.current.timer), w.current = null;
|
|
112
|
+
};
|
|
113
|
+
l(() => O, []);
|
|
114
|
+
let k = {
|
|
91
115
|
...p,
|
|
116
|
+
className: e("[-webkit-touch-callout:none]", a),
|
|
117
|
+
"data-popup-open": C && v.open || void 0,
|
|
118
|
+
onContextMenu: (e) => {
|
|
119
|
+
if (o?.(e), !(n || e.defaultPrevented) && (e.preventDefault(), O(), !v.open)) {
|
|
120
|
+
if (e.clientX === 0 && e.clientY === 0) {
|
|
121
|
+
let t = e.target.getBoundingClientRect();
|
|
122
|
+
b({
|
|
123
|
+
x: t.left,
|
|
124
|
+
y: t.bottom,
|
|
125
|
+
from: S
|
|
126
|
+
});
|
|
127
|
+
} else {
|
|
128
|
+
let t = e.nativeEvent, n = "pointerId" in t && e.buttons ? t.pointerId : void 0;
|
|
129
|
+
b({
|
|
130
|
+
x: e.clientX,
|
|
131
|
+
y: e.clientY,
|
|
132
|
+
from: S,
|
|
133
|
+
pointerId: n
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
onPointerDown: (e) => {
|
|
139
|
+
if (s?.(e), D.current = !1, n || e.pointerType !== "touch" || !e.isPrimary) return;
|
|
140
|
+
let t = {
|
|
141
|
+
x: e.clientX,
|
|
142
|
+
y: e.clientY,
|
|
143
|
+
from: S,
|
|
144
|
+
pointerId: e.pointerId
|
|
145
|
+
}, r = e.currentTarget, i = (e) => {
|
|
146
|
+
Math.hypot(e.clientX - t.x, e.clientY - t.y) > E && a();
|
|
147
|
+
}, a = () => {
|
|
148
|
+
O(), r.removeEventListener("pointermove", i), r.removeEventListener("pointerup", a), r.removeEventListener("pointercancel", a);
|
|
149
|
+
};
|
|
150
|
+
r.addEventListener("pointermove", i), r.addEventListener("pointerup", a), r.addEventListener("pointercancel", a), w.current = {
|
|
151
|
+
...t,
|
|
152
|
+
timer: window.setTimeout(() => {
|
|
153
|
+
a(), D.current = !0, v.open || b(t);
|
|
154
|
+
}, T)
|
|
155
|
+
};
|
|
156
|
+
},
|
|
157
|
+
onClickCapture: (e) => {
|
|
158
|
+
c?.(e), D.current && (D.current = !1, e.preventDefault(), e.stopPropagation());
|
|
159
|
+
}
|
|
160
|
+
}, A = y && C && m(/* @__PURE__ */ g("span", {
|
|
161
|
+
"aria-hidden": !0,
|
|
162
|
+
...i(v.id),
|
|
163
|
+
style: {
|
|
164
|
+
...i(v.id).style,
|
|
165
|
+
position: "fixed",
|
|
166
|
+
left: y.x,
|
|
167
|
+
top: y.y
|
|
168
|
+
}
|
|
169
|
+
}), document.body);
|
|
170
|
+
return /* @__PURE__ */ _(h, { children: [g(t ? r : "div", {
|
|
171
|
+
...k,
|
|
172
|
+
children: d
|
|
173
|
+
}), A] });
|
|
174
|
+
}
|
|
175
|
+
var O = "flex w-full cursor-pointer items-center gap-3 rounded-lg px-3 py-2 text-left text-sm outline-hidden select-none hover:bg-tint/[0.07] focus:bg-tint/[0.07] disabled:cursor-not-allowed disabled:opacity-50";
|
|
176
|
+
function k({ icon: t, destructive: n, onSelect: i, asChild: a, className: o, children: s, onClick: l, ...u }) {
|
|
177
|
+
let d = c(y), f = {
|
|
178
|
+
...u,
|
|
92
179
|
role: "menuitem",
|
|
93
180
|
tabIndex: -1,
|
|
94
|
-
className: e(
|
|
181
|
+
className: e(O, n && "text-destructive", o),
|
|
95
182
|
onClick: (e) => {
|
|
96
|
-
|
|
183
|
+
l?.(e), d(), i?.();
|
|
97
184
|
}
|
|
98
185
|
};
|
|
99
|
-
return a ? /* @__PURE__ */
|
|
100
|
-
...
|
|
101
|
-
children:
|
|
102
|
-
}) : /* @__PURE__ */
|
|
186
|
+
return a ? /* @__PURE__ */ g(r, {
|
|
187
|
+
...f,
|
|
188
|
+
children: s
|
|
189
|
+
}) : /* @__PURE__ */ _("button", {
|
|
103
190
|
type: "button",
|
|
104
|
-
...
|
|
105
|
-
children: [t && /* @__PURE__ */
|
|
191
|
+
...f,
|
|
192
|
+
children: [t && /* @__PURE__ */ g("span", {
|
|
106
193
|
"aria-hidden": !0,
|
|
107
194
|
className: e("flex shrink-0", !n && "text-muted-foreground"),
|
|
108
195
|
children: t
|
|
109
|
-
}),
|
|
196
|
+
}), s]
|
|
110
197
|
});
|
|
111
198
|
}
|
|
112
|
-
function
|
|
113
|
-
return /* @__PURE__ */
|
|
199
|
+
function A({ className: t }) {
|
|
200
|
+
return /* @__PURE__ */ g("div", {
|
|
114
201
|
role: "separator",
|
|
115
202
|
className: e("bg-tint/[0.07] mx-2 my-1 h-px", t)
|
|
116
203
|
});
|
|
117
204
|
}
|
|
118
|
-
function
|
|
119
|
-
return /* @__PURE__ */
|
|
205
|
+
function j({ className: t, ...n }) {
|
|
206
|
+
return /* @__PURE__ */ g("div", {
|
|
120
207
|
className: e("flex items-center gap-3 px-3 py-2.5", t),
|
|
121
208
|
...n
|
|
122
209
|
});
|
|
123
210
|
}
|
|
124
211
|
//#endregion
|
|
125
|
-
export {
|
|
212
|
+
export { w as MenuContent, D as MenuContextTrigger, j as MenuHeader, k as MenuItem, A as MenuSeparator, C as MenuTrigger, S as default };
|
package/dist/meter/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { ComponentProps, ReactNode } from 'react';
|
|
|
4
4
|
* a figure and a note. Over the limit it turns red; near it, warm. Announced
|
|
5
5
|
* as a meter, with `valueText` read out instead of the bare number.
|
|
6
6
|
*/
|
|
7
|
-
export default function Meter({ value, max, label, detail, hint, valueText, tone, warnAt, className, ...rest }: MeterProps): import('react').JSX.Element;
|
|
7
|
+
export default function Meter({ value, max, label, detail, hint, valueText, tone, warnAt, marks, className, ...rest }: MeterProps): import('react').JSX.Element;
|
|
8
8
|
/** Also takes the element's own props, e.g. `aria-label` when there's no visible label. */
|
|
9
9
|
export interface MeterProps extends Omit<ComponentProps<'div'>, 'children'> {
|
|
10
10
|
value: number;
|
|
@@ -21,6 +21,8 @@ export interface MeterProps extends Omit<ComponentProps<'div'>, 'children'> {
|
|
|
21
21
|
tone?: 'auto' | 'default' | 'warning' | 'danger';
|
|
22
22
|
/** Fraction of max where `auto` turns to warning (default 0.85). */
|
|
23
23
|
warnAt?: number;
|
|
24
|
+
/** Milestones along the bar, in the same units as value: e.g. [2500, 5000, 7500] of 10000. */
|
|
25
|
+
marks?: number[];
|
|
24
26
|
className?: string;
|
|
25
27
|
}
|
|
26
28
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/meter/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAS,MAAM,OAAO,CAAC;AAEzD;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAC1B,KAAK,EACL,GAAS,EACT,KAAK,EACL,MAAM,EACN,IAAI,EACJ,SAAS,EACT,IAAa,EACb,MAAa,EACb,SAAS,EACT,GAAG,IAAI,EACV,EAAE,UAAU,+
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/meter/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAS,MAAM,OAAO,CAAC;AAEzD;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAC1B,KAAK,EACL,GAAS,EACT,KAAK,EACL,MAAM,EACN,IAAI,EACJ,SAAS,EACT,IAAa,EACb,MAAa,EACb,KAAK,EACL,SAAS,EACT,GAAG,IAAI,EACV,EAAE,UAAU,+BAkEZ;AAED,2FAA2F;AAC3F,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IACvE,KAAK,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,yCAAyC;IACzC,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACjD,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8FAA8F;IAC9F,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB"}
|
package/dist/meter/index.js
CHANGED
|
@@ -3,36 +3,41 @@ import { cx as e } from "../utils/cx.js";
|
|
|
3
3
|
import { useId as t } from "react";
|
|
4
4
|
import { jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
5
5
|
//#region packages/meter/index.tsx
|
|
6
|
-
function i({ value: i, max: a = 100, label: o, detail: s, hint: c, valueText: l, tone: u = "auto", warnAt: d = .85,
|
|
7
|
-
let
|
|
6
|
+
function i({ value: i, max: a = 100, label: o, detail: s, hint: c, valueText: l, tone: u = "auto", warnAt: d = .85, marks: f, className: p, ...m }) {
|
|
7
|
+
let h = t(), g = i > a, _ = a > 0 ? i / a : +(i > 0), v = Math.min(100, Math.max(0, Math.round(_ * 100))), y = u === "auto" ? g ? "danger" : _ >= d ? "warning" : "default" : u;
|
|
8
8
|
return /* @__PURE__ */ r("div", {
|
|
9
|
-
...
|
|
9
|
+
...m,
|
|
10
10
|
role: "meter",
|
|
11
|
-
"aria-labelledby": o ?
|
|
11
|
+
"aria-labelledby": o ? h : m["aria-labelledby"],
|
|
12
12
|
"aria-valuemin": 0,
|
|
13
13
|
"aria-valuemax": a,
|
|
14
14
|
"aria-valuenow": Math.min(i, a),
|
|
15
15
|
"aria-valuetext": l,
|
|
16
|
-
className: e("zen__meter grid grid-cols-2 gap-y-1.5",
|
|
16
|
+
className: e("zen__meter grid grid-cols-2 gap-y-1.5", p),
|
|
17
17
|
children: [
|
|
18
18
|
o && /* @__PURE__ */ n("span", {
|
|
19
|
-
id:
|
|
19
|
+
id: h,
|
|
20
20
|
className: "text-sm font-medium",
|
|
21
21
|
children: o
|
|
22
22
|
}),
|
|
23
23
|
s && /* @__PURE__ */ n("span", {
|
|
24
|
-
className: e("col-start-2 text-right text-sm tabular-nums",
|
|
24
|
+
className: e("col-start-2 text-right text-sm tabular-nums", y === "danger" ? "text-destructive" : "text-muted-foreground"),
|
|
25
25
|
children: s
|
|
26
26
|
}),
|
|
27
|
-
/* @__PURE__ */
|
|
28
|
-
className: "bg-muted col-span-2 h-2 overflow-hidden rounded-full",
|
|
29
|
-
children: /* @__PURE__ */ n("div", {
|
|
30
|
-
className: e("zen__meter-fill ease-out-soft h-full rounded-full transition-[width] duration-700",
|
|
31
|
-
style: { width: `${
|
|
32
|
-
})
|
|
27
|
+
/* @__PURE__ */ r("div", {
|
|
28
|
+
className: "bg-muted relative col-span-2 h-2 overflow-hidden rounded-full",
|
|
29
|
+
children: [/* @__PURE__ */ n("div", {
|
|
30
|
+
className: e("zen__meter-fill ease-out-soft h-full rounded-full transition-[width] duration-700", y === "danger" ? "bg-destructive shadow-[0_0_12px_oklch(var(--destructive)/calc(0.7*var(--glow-k)))]" : y === "warning" ? "bg-accent-foreground shadow-[0_0_12px_oklch(var(--accent-foreground)/calc(0.6*var(--glow-k)))]" : "from-primary to-glow-2 bg-gradient-to-r shadow-[0_0_12px_oklch(var(--glow)/calc(0.6*var(--glow-k)))]"),
|
|
31
|
+
style: { width: `${v}%` }
|
|
32
|
+
}), f?.map((e) => /* @__PURE__ */ n("span", {
|
|
33
|
+
"aria-hidden": !0,
|
|
34
|
+
"data-reached": i >= e || void 0,
|
|
35
|
+
className: "zen__meter-mark bg-tint/25 data-reached:bg-background/70 absolute inset-y-0 w-0.5 -translate-x-1/2 transition-colors duration-700",
|
|
36
|
+
style: { left: `${a > 0 ? Math.min(100, e / a * 100) : 0}%` }
|
|
37
|
+
}, e))]
|
|
33
38
|
}),
|
|
34
39
|
c && /* @__PURE__ */ n("span", {
|
|
35
|
-
className: e("col-span-2 text-xs",
|
|
40
|
+
className: e("col-span-2 text-xs", y === "danger" ? "text-destructive" : "text-muted-foreground"),
|
|
36
41
|
children: c
|
|
37
42
|
})
|
|
38
43
|
]
|
|
@@ -3,9 +3,9 @@ import { Money } from '../utils/money';
|
|
|
3
3
|
import { ChangeEvent, ComponentProps, KeyboardEvent, ReactNode } from 'react';
|
|
4
4
|
/**
|
|
5
5
|
* Amount input in one currency. Shows grouped digits for the locale (1,52,000
|
|
6
|
-
* for en-IN) and accepts shorthand: 1.5L, 2cr, 10k, 1.2m
|
|
7
|
-
* Enter; Escape reverts. Values are integer minor
|
|
8
|
-
* when empty.
|
|
6
|
+
* for en-IN) and accepts shorthand: 1.5L, 2cr, 10k, 1.2m, and sums: 120+45.50,
|
|
7
|
+
* 3*12.99. Commits on blur or Enter; Escape reverts. Values are integer minor
|
|
8
|
+
* units (paise, cents), or null when empty.
|
|
9
9
|
*
|
|
10
10
|
* With `convert`, the symbol becomes a currency switch: type an amount in e.g.
|
|
11
11
|
* USD and it's converted at the rates you load (in the browser; the amount is
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ComponentProps } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* The page's content, which changes between pages: wrap your route's outlet in
|
|
4
|
+
* it, and when the router changes page in a view transition (React Router's
|
|
5
|
+
* `viewTransition`, or document.startViewTransition yourself) the old page
|
|
6
|
+
* fades out as the new one rises in, while everything outside (header, nav)
|
|
7
|
+
* stays still. One per page.
|
|
8
|
+
*/
|
|
9
|
+
export default function PageTransition({ className, style, ...rest }: ComponentProps<'div'>): import('react').JSX.Element;
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/page-transition/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEvC;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,CAAC,KAAK,CAAC,+BAQ1F"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cx as e } from "../utils/cx.js";
|
|
3
|
+
import { jsx as t } from "react/jsx-runtime";
|
|
4
|
+
//#region packages/page-transition/index.tsx
|
|
5
|
+
function n({ className: n, style: r, ...i }) {
|
|
6
|
+
return /* @__PURE__ */ t("div", {
|
|
7
|
+
className: e("zen__page-transition", n),
|
|
8
|
+
style: {
|
|
9
|
+
viewTransitionName: "zen-page",
|
|
10
|
+
...r
|
|
11
|
+
},
|
|
12
|
+
...i
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
//#endregion
|
|
16
|
+
export { n as default };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ComponentProps, ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* The pages a long list is split into: previous and next, the first and last
|
|
4
|
+
* pages, and those around the current one (`page`, from 1). Pages are buttons
|
|
5
|
+
* calling `onPageChange`, or with `href`, links (render them with your router's
|
|
6
|
+
* Link through `renderLink`).
|
|
7
|
+
*/
|
|
8
|
+
export default function Pagination({ page, count, onPageChange, href, renderLink, siblings, className, 'aria-label': label, }: PaginationProps): import('react').JSX.Element | null;
|
|
9
|
+
/** The pages to show: the first, the last, `siblings` either side of `page`, and a gap where pages are skipped. */
|
|
10
|
+
export declare function pageRange(page: number, count: number, siblings?: number): (number | 'gap')[];
|
|
11
|
+
export interface PaginationProps {
|
|
12
|
+
/** The current page, from 1. */
|
|
13
|
+
page: number;
|
|
14
|
+
/** How many pages there are. With fewer than 2, nothing is shown. */
|
|
15
|
+
count: number;
|
|
16
|
+
onPageChange?: (page: number) => void;
|
|
17
|
+
/** Pages as links: the URL of each. */
|
|
18
|
+
href?: (page: number) => string;
|
|
19
|
+
/** Renders a page link, e.g. with your router's Link. */
|
|
20
|
+
renderLink?: (props: ComponentProps<'a'>, page: number) => ReactNode;
|
|
21
|
+
/** Pages shown either side of the current one. */
|
|
22
|
+
siblings?: number;
|
|
23
|
+
className?: string;
|
|
24
|
+
'aria-label'?: string;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/pagination/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAC/B,IAAI,EACJ,KAAK,EACL,YAAY,EACZ,IAAI,EACJ,UAAwC,EACxC,QAAY,EACZ,SAAS,EACT,YAAY,EAAE,KAAe,GAChC,EAAE,eAAe,sCA6CjB;AAED,mHAAmH;AACnH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,SAAI,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,CAavF;AAED,MAAM,WAAW,eAAe;IAC5B,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,uCAAuC;IACvC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAChC,yDAAyD;IACzD,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,KAAK,SAAS,CAAC;IACrE,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cx as e } from "../utils/cx.js";
|
|
3
|
+
import { buttonVariants as t } from "../button/index.js";
|
|
4
|
+
import n from "../icons/chevron-left.js";
|
|
5
|
+
import r from "../icons/chevron-right.js";
|
|
6
|
+
import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
7
|
+
//#region packages/pagination/index.tsx
|
|
8
|
+
function o({ page: o, count: c, onPageChange: l, href: u, renderLink: d = (e) => /* @__PURE__ */ i("a", { ...e }), siblings: f = 1, className: p, "aria-label": m = "Pages" }) {
|
|
9
|
+
if (c < 2) return null;
|
|
10
|
+
let h = (n, r, a) => {
|
|
11
|
+
let o = n < 1 || n > c, s = e(t({
|
|
12
|
+
variant: "ghost",
|
|
13
|
+
size: "icon"
|
|
14
|
+
}), "min-w-9 w-auto px-2 tabular-nums", a.current && "bg-primary/15 text-foreground shadow-[inset_0_0_0_1px_oklch(var(--primary)/0.3),0_0_18px_-6px_oklch(var(--glow)/calc(0.6*var(--glow-k)))] hover:bg-primary/20"), f = {
|
|
15
|
+
"aria-label": a["aria-label"],
|
|
16
|
+
"aria-current": a.current ? "page" : void 0,
|
|
17
|
+
className: s
|
|
18
|
+
};
|
|
19
|
+
return u && !o ? d({
|
|
20
|
+
...f,
|
|
21
|
+
href: u(n),
|
|
22
|
+
onClick: l && (() => l(n)),
|
|
23
|
+
children: r
|
|
24
|
+
}, n) : /* @__PURE__ */ i("button", {
|
|
25
|
+
type: "button",
|
|
26
|
+
...f,
|
|
27
|
+
disabled: o,
|
|
28
|
+
onClick: () => !a.current && l?.(n),
|
|
29
|
+
children: r
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
return /* @__PURE__ */ i("nav", {
|
|
33
|
+
"aria-label": m,
|
|
34
|
+
className: e("zen__pagination", p),
|
|
35
|
+
children: /* @__PURE__ */ a("ul", {
|
|
36
|
+
className: "flex items-center gap-1",
|
|
37
|
+
children: [
|
|
38
|
+
/* @__PURE__ */ i("li", { children: h(o - 1, /* @__PURE__ */ i(n, { className: "size-4" }), { "aria-label": "Previous page" }) }),
|
|
39
|
+
s(o, c, f).map((e, t) => /* @__PURE__ */ i("li", { children: e === "gap" ? /* @__PURE__ */ i("span", {
|
|
40
|
+
"aria-hidden": !0,
|
|
41
|
+
className: "text-muted-foreground grid w-6 place-items-center",
|
|
42
|
+
children: "…"
|
|
43
|
+
}) : h(e, e, {
|
|
44
|
+
"aria-label": `Page ${e}`,
|
|
45
|
+
current: e === o
|
|
46
|
+
}) }, e === "gap" ? `gap${t}` : e)),
|
|
47
|
+
/* @__PURE__ */ i("li", { children: h(o + 1, /* @__PURE__ */ i(r, { className: "size-4" }), { "aria-label": "Next page" }) })
|
|
48
|
+
]
|
|
49
|
+
})
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
function s(e, t, n = 1) {
|
|
53
|
+
let r = /* @__PURE__ */ new Set([1, t]);
|
|
54
|
+
for (let i = e - n; i <= e + n; i++) i >= 1 && i <= t && r.add(i);
|
|
55
|
+
let i = [...r].sort((e, t) => e - t), a = [];
|
|
56
|
+
return i.forEach((e, t) => {
|
|
57
|
+
let n = e - (i[t - 1] ?? e);
|
|
58
|
+
n === 2 ? a.push(e - 1) : n > 2 && a.push("gap"), a.push(e);
|
|
59
|
+
}), a;
|
|
60
|
+
}
|
|
61
|
+
//#endregion
|
|
62
|
+
export { o as default, s as pageRange };
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
/**
|
|
2
|
+
/**
|
|
3
|
+
* Circular progress, 0–1, with optional content in the middle. Reaching 1
|
|
4
|
+
* while shown sends out a ring of glow, once.
|
|
5
|
+
*/
|
|
3
6
|
export default function ProgressRing({ value, size, stroke, label, children, className }: ProgressRingProps): import('react').JSX.Element;
|
|
4
7
|
export interface ProgressRingProps {
|
|
5
8
|
/** Progress from 0 to 1; values outside are clamped. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/progress-ring/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/progress-ring/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAY,MAAM,OAAO,CAAC;AAE5C;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,KAAK,EAAE,IAAS,EAAE,MAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,iBAAiB,+BAqDnH;AAED,MAAM,WAAW,iBAAiB;IAC9B,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB"}
|
|
@@ -1,49 +1,58 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cx as e } from "../utils/cx.js";
|
|
3
|
-
import {
|
|
3
|
+
import { useState as t } from "react";
|
|
4
|
+
import { jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
4
5
|
//#region packages/progress-ring/index.tsx
|
|
5
|
-
function
|
|
6
|
-
let
|
|
7
|
-
return /* @__PURE__ */
|
|
6
|
+
function i({ value: i, size: a = 84, stroke: o = 7, label: s, children: c, className: l }) {
|
|
7
|
+
let u = (a - o) / 2, d = 2 * Math.PI * u, f = Math.min(Math.max(i, 0), 1), [p, m] = t(f), [h, g] = t(0);
|
|
8
|
+
return f !== p && (m(f), p < 1 && f === 1 && g(h + 1)), /* @__PURE__ */ r("div", {
|
|
8
9
|
role: "progressbar",
|
|
9
|
-
"aria-label":
|
|
10
|
+
"aria-label": s,
|
|
10
11
|
"aria-valuemin": 0,
|
|
11
12
|
"aria-valuemax": 100,
|
|
12
|
-
"aria-valuenow": Math.round(
|
|
13
|
-
className: e("zen__progress-ring relative grid shrink-0 place-items-center",
|
|
13
|
+
"aria-valuenow": Math.round(f * 100),
|
|
14
|
+
className: e("zen__progress-ring relative grid shrink-0 place-items-center", l),
|
|
14
15
|
style: {
|
|
15
|
-
width:
|
|
16
|
-
height:
|
|
16
|
+
width: a,
|
|
17
|
+
height: a
|
|
17
18
|
},
|
|
18
|
-
children: [
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
19
|
+
children: [
|
|
20
|
+
/* @__PURE__ */ r("svg", {
|
|
21
|
+
width: a,
|
|
22
|
+
height: a,
|
|
23
|
+
viewBox: `0 0 ${a} ${a}`,
|
|
24
|
+
className: "-rotate-90",
|
|
25
|
+
"aria-hidden": !0,
|
|
26
|
+
children: [/* @__PURE__ */ n("circle", {
|
|
27
|
+
cx: a / 2,
|
|
28
|
+
cy: a / 2,
|
|
29
|
+
r: u,
|
|
30
|
+
fill: "none",
|
|
31
|
+
strokeWidth: o,
|
|
32
|
+
className: "stroke-tint/[0.07]"
|
|
33
|
+
}), /* @__PURE__ */ n("circle", {
|
|
34
|
+
cx: a / 2,
|
|
35
|
+
cy: a / 2,
|
|
36
|
+
r: u,
|
|
37
|
+
fill: "none",
|
|
38
|
+
strokeWidth: o,
|
|
39
|
+
strokeLinecap: "round",
|
|
40
|
+
strokeDasharray: d,
|
|
41
|
+
strokeDashoffset: d * (1 - f),
|
|
42
|
+
className: "zen__progress-ring-arc stroke-primary [filter:drop-shadow(0_0_6px_oklch(var(--glow)/calc(0.45*var(--glow-k))))] transition-[stroke-dashoffset] duration-700 ease-out"
|
|
43
|
+
})]
|
|
44
|
+
}),
|
|
45
|
+
h > 0 && /* @__PURE__ */ n("span", {
|
|
46
|
+
"aria-hidden": !0,
|
|
47
|
+
className: "zen__ring-burst border-primary pointer-events-none absolute inset-0 rounded-full",
|
|
48
|
+
style: { borderWidth: o }
|
|
49
|
+
}, h),
|
|
50
|
+
/* @__PURE__ */ n("div", {
|
|
51
|
+
className: "absolute inset-0 grid place-items-center text-center",
|
|
52
|
+
children: c
|
|
53
|
+
})
|
|
54
|
+
]
|
|
46
55
|
});
|
|
47
56
|
}
|
|
48
57
|
//#endregion
|
|
49
|
-
export {
|
|
58
|
+
export { i as default };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Two thumbs on one track, for a span such as an amount from $50 to $500:
|
|
3
|
+
* two native range inputs (keyboard, forms and screen readers work as on
|
|
4
|
+
* Slider), the span between them filled. The thumbs can meet but not cross.
|
|
5
|
+
*/
|
|
6
|
+
export default function RangeSlider({ value: [low, high], min, max, step, onValueChange, onValueCommit, label, thumbLabels, valueText, disabled, className, }: RangeSliderProps): import('react').JSX.Element;
|
|
7
|
+
export interface RangeSliderProps {
|
|
8
|
+
/** The span, low then high. */
|
|
9
|
+
value: readonly [number, number];
|
|
10
|
+
min?: number;
|
|
11
|
+
max?: number;
|
|
12
|
+
step?: number;
|
|
13
|
+
/** While dragging (every step). */
|
|
14
|
+
onValueChange?: (value: [number, number]) => void;
|
|
15
|
+
/** Once the user lets go: the moment to save or filter. */
|
|
16
|
+
onValueCommit?: (value: [number, number]) => void;
|
|
17
|
+
/** Accessible name of the pair, e.g. "Amount". */
|
|
18
|
+
label: string;
|
|
19
|
+
/** Each thumb's name (default "Minimum", "Maximum"). */
|
|
20
|
+
thumbLabels?: readonly [string, string];
|
|
21
|
+
/** Spoken value of a thumb, e.g. (v) => `$${v}`. */
|
|
22
|
+
valueText?: (value: number) => string;
|
|
23
|
+
disabled?: boolean;
|
|
24
|
+
className?: string;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/range-slider/index.tsx"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAChC,KAAK,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,EAClB,GAAO,EACP,GAAS,EACT,IAAQ,EACR,aAAa,EACb,aAAa,EACb,KAAK,EACL,WAAoC,EACpC,SAAS,EACT,QAAQ,EACR,SAAS,GACZ,EAAE,gBAAgB,+BAiDlB;AAED,MAAM,WAAW,gBAAgB;IAC7B,+BAA+B;IAC/B,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IAClD,2DAA2D;IAC3D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IAClD,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,WAAW,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,oDAAoD;IACpD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB"}
|