@rinzai/zen 0.4.2 → 0.6.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 +2 -2
- package/dist/animated-number/index.js +33 -0
- package/dist/avatar/index.js +38 -0
- package/dist/backdrop/index.d.ts +7 -3
- package/dist/backdrop/index.d.ts.map +1 -1
- package/dist/backdrop/index.js +98 -0
- package/dist/badge/index.d.ts +1 -1
- package/dist/badge/index.js +24 -0
- package/dist/button/index.d.ts +10 -3
- package/dist/button/index.d.ts.map +1 -1
- package/dist/button/index.js +54 -0
- package/dist/calendar/index.d.ts +44 -0
- package/dist/calendar/index.d.ts.map +1 -0
- package/dist/calendar/index.js +161 -0
- package/dist/card/index.d.ts +15 -6
- package/dist/card/index.d.ts.map +1 -1
- package/dist/card/index.js +60 -0
- package/dist/chart/donut.d.ts +30 -0
- package/dist/chart/donut.d.ts.map +1 -0
- package/dist/chart/donut.js +96 -0
- package/dist/chart/index.d.ts +81 -0
- package/dist/chart/index.d.ts.map +1 -0
- package/dist/chart/index.js +362 -0
- package/dist/chart/tooltip.d.ts +25 -0
- package/dist/chart/tooltip.d.ts.map +1 -0
- package/dist/chart/tooltip.js +51 -0
- package/dist/checkbox/index.d.ts +20 -0
- package/dist/checkbox/index.d.ts.map +1 -0
- package/dist/checkbox/index.js +61 -0
- package/dist/chip/index.d.ts +12 -0
- package/dist/chip/index.d.ts.map +1 -0
- package/dist/chip/index.js +14 -0
- package/dist/code-block/index.js +36 -0
- package/dist/collapse/index.d.ts +17 -7
- package/dist/collapse/index.d.ts.map +1 -1
- package/dist/collapse/index.js +82 -0
- package/dist/combobox/index.d.ts +89 -0
- package/dist/combobox/index.d.ts.map +1 -0
- package/dist/combobox/index.js +262 -0
- package/dist/confirm-dialog/index.d.ts.map +1 -1
- package/dist/confirm-dialog/index.js +25 -0
- package/dist/date-picker/index.d.ts +48 -0
- package/dist/date-picker/index.d.ts.map +1 -0
- package/dist/date-picker/index.js +112 -0
- package/dist/dialog/index.d.ts +14 -2
- package/dist/dialog/index.d.ts.map +1 -1
- package/dist/dialog/index.js +77 -0
- package/dist/disclosure/index.d.ts +25 -0
- package/dist/disclosure/index.d.ts.map +1 -0
- package/dist/disclosure/index.js +66 -0
- package/dist/editable-cell/index.js +24 -0
- package/dist/field/index.d.ts +42 -3
- package/dist/field/index.d.ts.map +1 -1
- package/dist/field/index.js +66 -0
- package/dist/header/index.js +17 -0
- package/dist/icons/chevron-down.js +21 -0
- package/dist/icons/chevron-left.js +21 -0
- package/dist/icons/chevron-right.js +21 -0
- package/dist/icons/chevron-up.js +21 -0
- package/dist/icons/ellipsis.d.ts +4 -0
- package/dist/icons/ellipsis.d.ts.map +1 -0
- package/dist/icons/ellipsis.js +31 -0
- package/dist/icons/index.d.ts +1 -0
- package/dist/icons/index.d.ts.map +1 -1
- package/dist/icons/search.js +21 -0
- package/dist/icons/x-mark.js +21 -0
- package/dist/index.d.ts +24 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/input/index.d.ts.map +1 -1
- package/dist/input/index.js +16 -0
- package/dist/input-group/index.d.ts.map +1 -1
- package/dist/input-group/index.js +36 -0
- package/dist/inset/index.d.ts +16 -0
- package/dist/inset/index.d.ts.map +1 -0
- package/dist/inset/index.js +23 -0
- package/dist/lib.js +74 -0
- package/dist/menu/index.d.ts +55 -0
- package/dist/menu/index.d.ts.map +1 -0
- package/dist/menu/index.js +118 -0
- package/dist/meter/index.js +41 -0
- package/dist/money-input/index.d.ts +77 -7
- package/dist/money-input/index.d.ts.map +1 -1
- package/dist/money-input/index.js +304 -0
- package/dist/month-picker/index.d.ts +4 -3
- package/dist/month-picker/index.d.ts.map +1 -1
- package/dist/month-picker/index.js +93 -0
- package/dist/page-header/index.js +26 -0
- package/dist/pills/index.d.ts +35 -0
- package/dist/pills/index.d.ts.map +1 -0
- package/dist/pills/index.js +50 -0
- package/dist/popover/index.d.ts +41 -22
- package/dist/popover/index.d.ts.map +1 -1
- package/dist/popover/index.js +75 -0
- package/dist/progress-ring/index.js +49 -0
- package/dist/radio-cards/index.d.ts +34 -0
- package/dist/radio-cards/index.d.ts.map +1 -0
- package/dist/radio-cards/index.js +48 -0
- package/dist/radio-group/index.d.ts +39 -0
- package/dist/radio-group/index.d.ts.map +1 -0
- package/dist/radio-group/index.js +63 -0
- package/dist/segmented/index.d.ts +16 -6
- package/dist/segmented/index.d.ts.map +1 -1
- package/dist/segmented/index.js +58 -0
- package/dist/select/index.d.ts +28 -14
- package/dist/select/index.d.ts.map +1 -1
- package/dist/select/index.js +187 -0
- package/dist/side-nav/index.js +37 -0
- package/dist/skeleton/index.js +12 -0
- package/dist/slider/index.js +34 -0
- package/dist/spinner/index.js +14 -0
- package/dist/tab-bar/index.d.ts +3 -0
- package/dist/tab-bar/index.d.ts.map +1 -1
- package/dist/tab-bar/index.js +34 -0
- package/dist/table/index.js +148 -0
- package/dist/table-of-contents/index.js +37 -0
- package/dist/tabs/index.d.ts +3 -2
- package/dist/tabs/index.d.ts.map +1 -1
- package/dist/tabs/index.js +114 -0
- package/dist/tailwind.css +1 -1
- package/dist/textarea/index.d.ts.map +1 -1
- package/dist/textarea/index.js +16 -0
- package/dist/theme-toggle/index.js +43 -0
- package/dist/theme.css +178 -13
- package/dist/toast/index.d.ts +13 -2
- package/dist/toast/index.d.ts.map +1 -1
- package/dist/toast/index.js +248 -0
- package/dist/toggle/index.d.ts +3 -2
- package/dist/toggle/index.d.ts.map +1 -1
- package/dist/toggle/index.js +26 -0
- package/dist/tooltip/index.d.ts +25 -0
- package/dist/tooltip/index.d.ts.map +1 -0
- package/dist/tooltip/index.js +108 -0
- package/dist/tree/index.d.ts.map +1 -1
- package/dist/tree/index.js +135 -0
- package/dist/utils/cva.js +25 -0
- package/dist/utils/cx.js +6 -0
- package/dist/utils/date.d.ts +37 -0
- package/dist/utils/date.d.ts.map +1 -0
- package/dist/utils/date.js +68 -0
- package/dist/utils/field-chevron.js +19 -0
- package/dist/utils/fx.d.ts +30 -0
- package/dist/utils/fx.d.ts.map +1 -0
- package/dist/utils/fx.js +21 -0
- package/dist/utils/graphics.js +33 -0
- package/dist/utils/indicator.d.ts +24 -0
- package/dist/utils/indicator.d.ts.map +1 -0
- package/dist/utils/indicator.js +37 -0
- package/dist/utils/merge.js +305 -0
- package/dist/utils/money.js +73 -0
- package/dist/utils/month.js +46 -0
- package/dist/utils/slot.d.ts +9 -5
- package/dist/utils/slot.d.ts.map +1 -1
- package/dist/utils/slot.js +25 -0
- package/dist/utils/status-icons.js +48 -0
- package/dist/utils/styles.d.ts +6 -6
- package/dist/utils/styles.d.ts.map +1 -1
- package/dist/utils/styles.js +6 -0
- package/dist/utils/theme.js +200 -0
- package/dist/utils/useAnchoredPopup.d.ts +8 -2
- package/dist/utils/useAnchoredPopup.d.ts.map +1 -1
- package/dist/utils/useAnchoredPopup.js +63 -0
- package/dist/utils/useHydrated.js +9 -0
- package/dist/utils/useVirtualList.js +45 -0
- package/dist/variables.css +22 -0
- package/dist/zen.css +1 -1
- package/package.json +9 -4
- package/dist/actions-menu/index.d.ts +0 -18
- package/dist/actions-menu/index.d.ts.map +0 -1
- package/dist/dropdown/index.d.ts +0 -28
- package/dist/dropdown/index.d.ts.map +0 -1
- package/dist/nav-pills/index.d.ts +0 -31
- package/dist/nav-pills/index.d.ts.map +0 -1
- package/dist/zen.js +0 -2929
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cx as e } from "../utils/cx.js";
|
|
3
|
+
import t, { MenuContent as n, MenuItem as r, MenuSeparator as i, MenuTrigger as a } from "../menu/index.js";
|
|
4
|
+
import { currencySymbol as o, formatAmount as s, formatMoney as c, minorDigits as l, parseMoneyInput as u } from "../utils/money.js";
|
|
5
|
+
import d from "../spinner/index.js";
|
|
6
|
+
import { AlertIcon as f, InfoIcon as p } from "../utils/status-icons.js";
|
|
7
|
+
import m, { InputGroupAddon as h, InputGroupInput as g } from "../input-group/index.js";
|
|
8
|
+
import { FieldChevron as _ } from "../utils/field-chevron.js";
|
|
9
|
+
import { convertMinor as v, rateBetween as y } from "../utils/fx.js";
|
|
10
|
+
import { useEffect as b, useId as x, useRef as S, useState as C } from "react";
|
|
11
|
+
import { Fragment as w, jsx as T, jsxs as E } from "react/jsx-runtime";
|
|
12
|
+
//#region packages/money-input/index.tsx
|
|
13
|
+
function D({ start: t, end: n, compact: r = !1, disabled: i = !1, id: a, autoFocus: o, className: s, "aria-label": c, ...l }) {
|
|
14
|
+
let u = A(l), d = !!u.conversion?.foreign;
|
|
15
|
+
return /* @__PURE__ */ E("div", {
|
|
16
|
+
className: e("zen__money-input flex flex-col gap-1", s),
|
|
17
|
+
children: [/* @__PURE__ */ E(m, {
|
|
18
|
+
invalid: !!u.error,
|
|
19
|
+
"data-foreign": d || void 0,
|
|
20
|
+
className: e(r && "h-7", "data-foreign:border-primary/50"),
|
|
21
|
+
children: [
|
|
22
|
+
t ?? (u.conversion && !i ? /* @__PURE__ */ T(O, { money: u }) : /* @__PURE__ */ T(h, {
|
|
23
|
+
"aria-hidden": !0,
|
|
24
|
+
"data-slot": "symbol",
|
|
25
|
+
children: u.symbol
|
|
26
|
+
})),
|
|
27
|
+
/* @__PURE__ */ T(g, {
|
|
28
|
+
...u.inputProps,
|
|
29
|
+
id: a,
|
|
30
|
+
autoFocus: o,
|
|
31
|
+
disabled: i,
|
|
32
|
+
"aria-label": c,
|
|
33
|
+
className: e("tabular-nums", r ? "text-right" : "text-left")
|
|
34
|
+
}),
|
|
35
|
+
n
|
|
36
|
+
]
|
|
37
|
+
}), u.error ? /* @__PURE__ */ E("p", {
|
|
38
|
+
id: u.errorId,
|
|
39
|
+
role: "alert",
|
|
40
|
+
className: "text-destructive mt-0! flex items-center gap-1.5 text-xs font-medium",
|
|
41
|
+
children: [/* @__PURE__ */ T(f, { className: "shrink-0" }), u.error]
|
|
42
|
+
}) : /* @__PURE__ */ T(k, { money: u })]
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
function O({ money: s, className: c }) {
|
|
46
|
+
let l = s.conversion;
|
|
47
|
+
return l ? /* @__PURE__ */ E(t, { children: [/* @__PURE__ */ E(a, {
|
|
48
|
+
"aria-label": `Currency: ${l.currency}. Change to enter another currency`,
|
|
49
|
+
className: e("group/currency hover:bg-tint/[0.07] focus-visible:ring-ring/50 -ml-1 flex shrink-0 items-center gap-0.5 rounded-md px-1 py-0.5 text-sm outline-hidden focus-visible:ring-2", l.foreign ? "text-primary" : "text-muted-foreground", c),
|
|
50
|
+
children: [l.foreign ? l.currency : s.symbol, /* @__PURE__ */ T(_, { className: "text-inherit duration-150 group-data-popup-open/currency:rotate-180" })]
|
|
51
|
+
}), /* @__PURE__ */ E(n, {
|
|
52
|
+
align: "start",
|
|
53
|
+
offset: 8,
|
|
54
|
+
"aria-label": "Currency",
|
|
55
|
+
className: "max-h-72 w-60 overflow-y-auto",
|
|
56
|
+
children: [
|
|
57
|
+
/* @__PURE__ */ E(r, {
|
|
58
|
+
onSelect: () => l.pick(l.home),
|
|
59
|
+
className: "gap-2 py-1.5",
|
|
60
|
+
children: [/* @__PURE__ */ T("span", {
|
|
61
|
+
className: "w-9 font-medium",
|
|
62
|
+
children: l.home
|
|
63
|
+
}), /* @__PURE__ */ T("span", {
|
|
64
|
+
className: "text-muted-foreground",
|
|
65
|
+
children: "Your currency"
|
|
66
|
+
})]
|
|
67
|
+
}),
|
|
68
|
+
/* @__PURE__ */ T(i, {}),
|
|
69
|
+
/* @__PURE__ */ T("div", {
|
|
70
|
+
className: "text-muted-foreground px-3 pt-1 pb-1.5 text-xs",
|
|
71
|
+
children: "Enter in another currency, converted at today’s rate"
|
|
72
|
+
}),
|
|
73
|
+
l.choices.map((e) => /* @__PURE__ */ E(r, {
|
|
74
|
+
onSelect: () => l.pick(e),
|
|
75
|
+
className: "gap-2 py-1.5",
|
|
76
|
+
children: [/* @__PURE__ */ T("span", {
|
|
77
|
+
className: "w-9 font-medium",
|
|
78
|
+
children: e
|
|
79
|
+
}), /* @__PURE__ */ T("span", {
|
|
80
|
+
className: "text-muted-foreground",
|
|
81
|
+
children: o(e, "en")
|
|
82
|
+
})]
|
|
83
|
+
}, e))
|
|
84
|
+
]
|
|
85
|
+
})] }) : null;
|
|
86
|
+
}
|
|
87
|
+
function k({ money: t, className: n }) {
|
|
88
|
+
let r = t.conversion;
|
|
89
|
+
if (!r || !r.foreign && !r.converted) return null;
|
|
90
|
+
let { home: i, locale: a } = r, o = e("text-muted-foreground flex items-center gap-1.5 text-xs", n);
|
|
91
|
+
if (!r.foreign) {
|
|
92
|
+
let e = r.converted;
|
|
93
|
+
return /* @__PURE__ */ E("p", {
|
|
94
|
+
id: t.hintId,
|
|
95
|
+
role: "status",
|
|
96
|
+
className: o,
|
|
97
|
+
children: [
|
|
98
|
+
/* @__PURE__ */ T(p, { className: "text-primary shrink-0" }),
|
|
99
|
+
"Converted from ",
|
|
100
|
+
c(e.amount, e.currency, a),
|
|
101
|
+
" at ",
|
|
102
|
+
M(e.rate)
|
|
103
|
+
]
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
return /* @__PURE__ */ T("p", {
|
|
107
|
+
id: t.hintId,
|
|
108
|
+
role: "status",
|
|
109
|
+
className: o,
|
|
110
|
+
children: r.status === "idle" || r.status === "loading" ? /* @__PURE__ */ E(w, { children: [/* @__PURE__ */ T(d, { className: "size-3" }), " Getting today’s rate…"] }) : r.rate === null ? /* @__PURE__ */ E(w, { children: [
|
|
111
|
+
/* @__PURE__ */ T(f, { className: "text-destructive shrink-0" }),
|
|
112
|
+
" Couldn’t get exchange rates. Enter the amount in",
|
|
113
|
+
" ",
|
|
114
|
+
i,
|
|
115
|
+
"."
|
|
116
|
+
] }) : /* @__PURE__ */ E(w, { children: [/* @__PURE__ */ T(p, { className: "text-primary shrink-0" }), /* @__PURE__ */ E("span", { children: [
|
|
117
|
+
r.preview !== null && /* @__PURE__ */ E("span", {
|
|
118
|
+
className: "text-foreground font-medium",
|
|
119
|
+
children: [
|
|
120
|
+
"≈ ",
|
|
121
|
+
c(r.preview, i, a),
|
|
122
|
+
" ·",
|
|
123
|
+
" "
|
|
124
|
+
]
|
|
125
|
+
}),
|
|
126
|
+
"1 ",
|
|
127
|
+
r.currency,
|
|
128
|
+
" = ",
|
|
129
|
+
c(Math.round(r.rate * 10 ** l(i)), i, a),
|
|
130
|
+
" (",
|
|
131
|
+
r.source ? `${r.source}, ` : "",
|
|
132
|
+
N(r.date, a),
|
|
133
|
+
")"
|
|
134
|
+
] })] })
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
function A({ value: t, onChange: n, currency: r, locale: i, allowNegative: a = !1, allowEmpty: l = !1, live: d = !1, onCancel: f, convert: p }) {
|
|
138
|
+
let m = p?.initial ?? null, [h, g] = C(() => m?.currency ?? r), _ = !!p && h !== r, S = j(p?.loadRates, _), w = (e) => e === null ? "" : s(e, r, i), [T, E] = C(() => m ? s(m.amount, m.currency, i) : w(t)), [D, O] = C(null), [k, A] = C(null), [M, N] = C(!1), [P, F] = C(!1), I = x(), L = x();
|
|
139
|
+
b(() => {
|
|
140
|
+
!M && !_ && !(d && P) && E(w(t));
|
|
141
|
+
}, [
|
|
142
|
+
t,
|
|
143
|
+
r,
|
|
144
|
+
i
|
|
145
|
+
]);
|
|
146
|
+
let R = (e) => {
|
|
147
|
+
if (!S.table) return null;
|
|
148
|
+
try {
|
|
149
|
+
return y(S.table, e, r);
|
|
150
|
+
} catch {
|
|
151
|
+
return null;
|
|
152
|
+
}
|
|
153
|
+
}, z = _ ? R(h) : null, B = (e) => `Not an amount. Try ${s(3274e3, e, i)} or ${i.endsWith("-IN") ? "1.5L" : "10k"}.`;
|
|
154
|
+
function V(e, t) {
|
|
155
|
+
let n = e.trim();
|
|
156
|
+
if (n === "") {
|
|
157
|
+
if (l) return null;
|
|
158
|
+
O("Enter an amount.");
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
let r;
|
|
162
|
+
try {
|
|
163
|
+
r = u(n, t);
|
|
164
|
+
} catch {
|
|
165
|
+
O(B(t));
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
if (!a && r < 0) {
|
|
169
|
+
O("Amount can't be negative.");
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
return O(null), r;
|
|
173
|
+
}
|
|
174
|
+
function H(e, t, i) {
|
|
175
|
+
let a = e.trim();
|
|
176
|
+
if (a === "") {
|
|
177
|
+
n(null), p?.onForeign?.(null);
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
let o;
|
|
181
|
+
try {
|
|
182
|
+
o = u(a, t);
|
|
183
|
+
} catch {
|
|
184
|
+
n(null);
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
t === r ? (n(o), p?.onForeign?.(null)) : i === null ? n(null) : (n(v(o, i, t, r)), p?.onForeign?.({
|
|
188
|
+
currency: t,
|
|
189
|
+
amount: o,
|
|
190
|
+
rate: i,
|
|
191
|
+
date: S.table.date
|
|
192
|
+
}));
|
|
193
|
+
}
|
|
194
|
+
b(() => {
|
|
195
|
+
d && P && _ && H(T, h, z);
|
|
196
|
+
}, [z]);
|
|
197
|
+
function U() {
|
|
198
|
+
let e = V(T, h);
|
|
199
|
+
if (e === void 0) return !1;
|
|
200
|
+
if (e !== null && _) {
|
|
201
|
+
if (z === null) return O(S.status === "error" ? "Couldn't get today's exchange rate." : "Still getting today's rate…"), !1;
|
|
202
|
+
let t = v(e, z, h, r), i = {
|
|
203
|
+
currency: h,
|
|
204
|
+
amount: e,
|
|
205
|
+
rate: z,
|
|
206
|
+
date: S.table.date
|
|
207
|
+
};
|
|
208
|
+
return A(i), g(r), E(w(t)), n(t), p?.onForeign?.(i), !0;
|
|
209
|
+
}
|
|
210
|
+
return E(w(e)), n(e), e !== t && (A(null), p?.onForeign?.(null)), !0;
|
|
211
|
+
}
|
|
212
|
+
function W() {
|
|
213
|
+
let e = V(T, h);
|
|
214
|
+
e !== void 0 && E(e === null ? "" : s(e, h, i));
|
|
215
|
+
}
|
|
216
|
+
function G(e) {
|
|
217
|
+
g(e), O(null), d && T.trim() && (F(!0), H(T, e, e === r ? null : R(e)));
|
|
218
|
+
}
|
|
219
|
+
let K = (() => {
|
|
220
|
+
if (!_ || z === null || !T.trim()) return null;
|
|
221
|
+
try {
|
|
222
|
+
return v(u(T, h), z, h, r);
|
|
223
|
+
} catch {
|
|
224
|
+
return null;
|
|
225
|
+
}
|
|
226
|
+
})();
|
|
227
|
+
return {
|
|
228
|
+
inputProps: {
|
|
229
|
+
type: "text",
|
|
230
|
+
inputMode: "decimal",
|
|
231
|
+
autoComplete: "off",
|
|
232
|
+
spellCheck: !1,
|
|
233
|
+
value: T,
|
|
234
|
+
"aria-invalid": D ? !0 : void 0,
|
|
235
|
+
"aria-describedby": e(D ? I : (_ || !!k) && L) || void 0,
|
|
236
|
+
onChange: (e) => {
|
|
237
|
+
E(e.target.value), A(null), d && (F(!0), H(e.target.value, h, z));
|
|
238
|
+
},
|
|
239
|
+
onFocus: () => N(!0),
|
|
240
|
+
onBlur: () => {
|
|
241
|
+
N(!1), d ? W() : U();
|
|
242
|
+
},
|
|
243
|
+
onKeyDown: (e) => {
|
|
244
|
+
e.key === "Enter" ? (e.preventDefault(), d ? W() : U()) : e.key === "Escape" && (e.preventDefault(), g(r), E(w(t)), O(null), f?.());
|
|
245
|
+
}
|
|
246
|
+
},
|
|
247
|
+
symbol: o(h, i),
|
|
248
|
+
error: D,
|
|
249
|
+
errorId: I,
|
|
250
|
+
hintId: L,
|
|
251
|
+
text: T,
|
|
252
|
+
setText: E,
|
|
253
|
+
commit: U,
|
|
254
|
+
formatted: t === null ? "" : c(t, r, i),
|
|
255
|
+
conversion: p ? {
|
|
256
|
+
home: r,
|
|
257
|
+
locale: i,
|
|
258
|
+
currency: h,
|
|
259
|
+
foreign: _,
|
|
260
|
+
choices: p.currencies.filter((e) => e !== r && (!S.table || e === S.table.base || e in S.table.rates)),
|
|
261
|
+
pick: G,
|
|
262
|
+
status: S.status,
|
|
263
|
+
rate: z,
|
|
264
|
+
date: S.table?.date ?? null,
|
|
265
|
+
source: p.source,
|
|
266
|
+
preview: K,
|
|
267
|
+
converted: k
|
|
268
|
+
} : null
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
function j(e, t) {
|
|
272
|
+
let [n, r] = C({
|
|
273
|
+
table: null,
|
|
274
|
+
status: "idle"
|
|
275
|
+
}), i = S(e);
|
|
276
|
+
return i.current = e, b(() => {
|
|
277
|
+
let e = i.current;
|
|
278
|
+
if (!e || !t || n.status === "ready" || n.status === "loading") return;
|
|
279
|
+
let a = (e) => r(e ? {
|
|
280
|
+
table: e,
|
|
281
|
+
status: "ready"
|
|
282
|
+
} : {
|
|
283
|
+
table: null,
|
|
284
|
+
status: "error"
|
|
285
|
+
}), o;
|
|
286
|
+
try {
|
|
287
|
+
o = e();
|
|
288
|
+
} catch {
|
|
289
|
+
a(null);
|
|
290
|
+
return;
|
|
291
|
+
}
|
|
292
|
+
o && typeof o.then == "function" ? (r({
|
|
293
|
+
table: null,
|
|
294
|
+
status: "loading"
|
|
295
|
+
}), o.then(a, () => a(null))) : a(o);
|
|
296
|
+
}, [t]), n;
|
|
297
|
+
}
|
|
298
|
+
var M = (e) => e >= 100 ? e.toFixed(2) : e >= 1 ? e.toFixed(4) : e.toPrecision(4), N = (e, t) => new Intl.DateTimeFormat(t, {
|
|
299
|
+
day: "numeric",
|
|
300
|
+
month: "short",
|
|
301
|
+
timeZone: "UTC"
|
|
302
|
+
}).format(/* @__PURE__ */ new Date(`${e}T00:00:00Z`));
|
|
303
|
+
//#endregion
|
|
304
|
+
export { k as MoneyConversionHint, O as MoneyCurrencyMenu, D as default, A as useMoneyInput };
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { Month } from '../utils/month';
|
|
2
|
+
import { ComponentProps } from 'react';
|
|
2
3
|
/**
|
|
3
4
|
* Month selector: a field showing "Sep 2026" that opens a year and a 12-month
|
|
4
5
|
* grid. Months are "YYYY-MM" strings. With `onClear`, the popup also offers
|
|
5
6
|
* `clearLabel` (e.g. "No end") to empty it.
|
|
6
7
|
*/
|
|
7
|
-
export default function MonthPicker({ value, onChange, locale, min, max, id, className, disabled, placeholder, onClear, clearLabel,
|
|
8
|
-
|
|
8
|
+
export default function MonthPicker({ value, onChange, locale, min, max, id, className, disabled, placeholder, onClear, clearLabel, style, ...rest }: MonthPickerProps): import('react').JSX.Element;
|
|
9
|
+
/** Also takes the trigger button's props (aria-*, data-*, onBlur…), so Field can wire it up. */
|
|
10
|
+
export interface MonthPickerProps extends Omit<ComponentProps<'button'>, 'value' | 'onChange' | 'defaultValue'> {
|
|
9
11
|
/** "YYYY-MM", or null for none. */
|
|
10
12
|
value: Month | null;
|
|
11
13
|
onChange: (month: Month) => void;
|
|
@@ -23,6 +25,5 @@ export interface MonthPickerProps {
|
|
|
23
25
|
/** Offers a clear option in the popup (shown when a month is set). */
|
|
24
26
|
onClear?: () => void;
|
|
25
27
|
clearLabel?: string;
|
|
26
|
-
'aria-label'?: string;
|
|
27
28
|
}
|
|
28
29
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/month-picker/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/month-picker/index.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAe,KAAK,KAAK,EAAc,MAAM,kBAAkB,CAAC;AAGvE,OAAO,EAAE,cAAc,EAAY,MAAM,OAAO,CAAC;AAEjD;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAChC,KAAK,EACL,QAAQ,EACR,MAAM,EACN,GAAG,EACH,GAAG,EACH,EAAE,EACF,SAAS,EACT,QAAgB,EAChB,WAA4B,EAC5B,OAAO,EACP,UAAoB,EACpB,KAAK,EACL,GAAG,IAAI,EACV,EAAE,gBAAgB,+BA8FlB;AAED,gGAAgG;AAChG,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,cAAc,CAAC;IAC3G,mCAAmC;IACnC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,GAAG,CAAC,EAAE,KAAK,CAAC;IACZ,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cx as e } from "../utils/cx.js";
|
|
3
|
+
import { useAnchoredPopup as t } from "../utils/useAnchoredPopup.js";
|
|
4
|
+
import { POPUP as n, TRIGGER as r } from "../utils/styles.js";
|
|
5
|
+
import { useFieldProps as i } from "../field/index.js";
|
|
6
|
+
import { FieldChevron as a } from "../utils/field-chevron.js";
|
|
7
|
+
import o from "../icons/chevron-left.js";
|
|
8
|
+
import s from "../icons/chevron-right.js";
|
|
9
|
+
import { formatMonth as c, monthNames as l } from "../utils/month.js";
|
|
10
|
+
import { useState as u } from "react";
|
|
11
|
+
import { Fragment as d, jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
12
|
+
//#region packages/month-picker/index.tsx
|
|
13
|
+
function m({ value: m, onChange: h, locale: g, min: _, max: v, id: y, className: b, disabled: x = !1, placeholder: S = "Pick a month", onClear: C, clearLabel: w = "Clear", style: T, ...E }) {
|
|
14
|
+
let [D, O] = u(() => Number((m ?? (/* @__PURE__ */ new Date()).toISOString()).slice(0, 4))), k = t({ onOpenChange: (e) => e && m && O(Number(m.slice(0, 4))) }), A = i({
|
|
15
|
+
...E,
|
|
16
|
+
id: y
|
|
17
|
+
}), j = l(g), M = (e) => (!_ || e >= _) && (!v || e <= v);
|
|
18
|
+
return /* @__PURE__ */ p(d, { children: [/* @__PURE__ */ p("button", {
|
|
19
|
+
type: "button",
|
|
20
|
+
...E,
|
|
21
|
+
...A,
|
|
22
|
+
id: y,
|
|
23
|
+
disabled: x,
|
|
24
|
+
...k.triggerProps,
|
|
25
|
+
style: {
|
|
26
|
+
...k.triggerProps.style,
|
|
27
|
+
...T
|
|
28
|
+
},
|
|
29
|
+
className: e("zen__month-picker group", r, "w-full", k.open && "border-glow/60 [--glow-border-color:transparent] shadow-[0_0_0_3px_oklch(var(--glow)/0.16),0_0_24px_-6px_oklch(var(--glow)/0.6)]", b),
|
|
30
|
+
children: [/* @__PURE__ */ f("span", {
|
|
31
|
+
className: m ? void 0 : "text-muted-foreground",
|
|
32
|
+
children: m ? c(m, g) : S
|
|
33
|
+
}), /* @__PURE__ */ f(a, { open: k.open })]
|
|
34
|
+
}), /* @__PURE__ */ p("div", {
|
|
35
|
+
...k.popupProps,
|
|
36
|
+
role: "dialog",
|
|
37
|
+
"aria-label": "Choose month",
|
|
38
|
+
className: e("zen__popover", n, "w-64 p-3"),
|
|
39
|
+
children: [
|
|
40
|
+
/* @__PURE__ */ p("div", {
|
|
41
|
+
className: "mb-2 flex items-center justify-between",
|
|
42
|
+
children: [
|
|
43
|
+
/* @__PURE__ */ f("button", {
|
|
44
|
+
type: "button",
|
|
45
|
+
"aria-label": "Previous year",
|
|
46
|
+
onClick: () => O((e) => e - 1),
|
|
47
|
+
className: "hover:bg-muted rounded p-1.5",
|
|
48
|
+
children: /* @__PURE__ */ f(o, { className: "size-4" })
|
|
49
|
+
}),
|
|
50
|
+
/* @__PURE__ */ f("span", {
|
|
51
|
+
className: "text-sm font-semibold tabular-nums",
|
|
52
|
+
"aria-live": "polite",
|
|
53
|
+
children: D
|
|
54
|
+
}),
|
|
55
|
+
/* @__PURE__ */ f("button", {
|
|
56
|
+
type: "button",
|
|
57
|
+
"aria-label": "Next year",
|
|
58
|
+
onClick: () => O((e) => e + 1),
|
|
59
|
+
className: "hover:bg-muted rounded p-1.5",
|
|
60
|
+
children: /* @__PURE__ */ f(s, { className: "size-4" })
|
|
61
|
+
})
|
|
62
|
+
]
|
|
63
|
+
}),
|
|
64
|
+
/* @__PURE__ */ f("div", {
|
|
65
|
+
className: "grid grid-cols-3 gap-1",
|
|
66
|
+
children: j.map((t, n) => {
|
|
67
|
+
let r = `${D}-${String(n + 1).padStart(2, "0")}`, i = r === m;
|
|
68
|
+
return /* @__PURE__ */ f("button", {
|
|
69
|
+
type: "button",
|
|
70
|
+
disabled: !M(r),
|
|
71
|
+
"aria-pressed": i,
|
|
72
|
+
"aria-label": c(r, g, "long"),
|
|
73
|
+
onClick: () => {
|
|
74
|
+
h(r), k.setOpen(!1);
|
|
75
|
+
},
|
|
76
|
+
className: e("rounded-sm py-2 text-sm disabled:cursor-not-allowed disabled:opacity-40", i ? "bg-primary text-primary-foreground" : "hover:bg-muted"),
|
|
77
|
+
children: t
|
|
78
|
+
}, r);
|
|
79
|
+
})
|
|
80
|
+
}),
|
|
81
|
+
C && m && /* @__PURE__ */ f("button", {
|
|
82
|
+
type: "button",
|
|
83
|
+
onClick: () => {
|
|
84
|
+
C(), k.setOpen(!1);
|
|
85
|
+
},
|
|
86
|
+
className: "border-tint/[0.06] text-muted-foreground hover:text-foreground focus-visible:ring-ring/40 mt-2 w-full rounded-lg border-t px-2 pt-2.5 pb-1.5 text-sm outline-hidden focus-visible:ring-2",
|
|
87
|
+
children: w
|
|
88
|
+
})
|
|
89
|
+
]
|
|
90
|
+
})] });
|
|
91
|
+
}
|
|
92
|
+
//#endregion
|
|
93
|
+
export { m as default };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cx as e } from "../utils/cx.js";
|
|
3
|
+
import { jsx as t, jsxs as n } from "react/jsx-runtime";
|
|
4
|
+
//#region packages/page-header/index.tsx
|
|
5
|
+
function r({ eyebrow: r, title: i, lead: a, children: o, className: s }) {
|
|
6
|
+
return /* @__PURE__ */ n("header", {
|
|
7
|
+
className: e("zen__page-header flex flex-col gap-3", s),
|
|
8
|
+
children: [
|
|
9
|
+
r && /* @__PURE__ */ t("p", {
|
|
10
|
+
className: "text-muted-foreground mt-0! text-xs tracking-[0.1em] uppercase",
|
|
11
|
+
children: r
|
|
12
|
+
}),
|
|
13
|
+
/* @__PURE__ */ t("h1", {
|
|
14
|
+
className: "text-aurora text-4xl font-semibold tracking-tight lg:text-5xl",
|
|
15
|
+
children: i
|
|
16
|
+
}),
|
|
17
|
+
a && /* @__PURE__ */ t("p", {
|
|
18
|
+
className: "text-muted-foreground mt-0! max-w-2xl text-lg leading-relaxed",
|
|
19
|
+
children: a
|
|
20
|
+
}),
|
|
21
|
+
o
|
|
22
|
+
]
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { r as default };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ComponentProps } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* A glass track of pills, with an optional glowing pill that slides to the
|
|
4
|
+
* active one: whichever has aria-current="page" (router links such as React
|
|
5
|
+
* Router's NavLink set it themselves) or aria-selected="true". It adds no role
|
|
6
|
+
* of its own; what you wrap it in says what it is. Site navigation:
|
|
7
|
+
*
|
|
8
|
+
* <nav aria-label="Main">
|
|
9
|
+
* <Pills>
|
|
10
|
+
* <PillIndicator />
|
|
11
|
+
* <Pill href="/month" active>Month</Pill>
|
|
12
|
+
* <Pill asChild><NavLink to="/goals">Goals</NavLink></Pill>
|
|
13
|
+
* </Pills>
|
|
14
|
+
* </nav>
|
|
15
|
+
*
|
|
16
|
+
* For tabs that switch panels in place, use Tabs with `<TabList variant="pills">`.
|
|
17
|
+
*/
|
|
18
|
+
export default function Pills({ className, ref, children, ...rest }: PillsProps): import('react').JSX.Element;
|
|
19
|
+
/** The glowing pill under the active item. Place it inside Pills; hidden while none is active. */
|
|
20
|
+
export declare function PillIndicator({ className }: {
|
|
21
|
+
className?: string;
|
|
22
|
+
}): import('react').JSX.Element | null;
|
|
23
|
+
/**
|
|
24
|
+
* One pill: a link. `active` marks the current page. With `asChild`, the
|
|
25
|
+
* styles go onto your own element instead (a router's Link or NavLink).
|
|
26
|
+
*/
|
|
27
|
+
export declare function Pill({ active, asChild, className, children, ...rest }: PillProps): import('react').JSX.Element;
|
|
28
|
+
export type PillsProps = ComponentProps<'div'>;
|
|
29
|
+
export interface PillProps extends ComponentProps<'a'> {
|
|
30
|
+
/** This pill is the current page (aria-current="page"). */
|
|
31
|
+
active?: boolean;
|
|
32
|
+
/** Style the single child element (e.g. a router link) instead of rendering an <a>. */
|
|
33
|
+
asChild?: boolean;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/pills/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAqC,MAAM,OAAO,CAAC;AAO1E;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,UAAU,+BAgB9E;AAED,kGAAkG;AAClG,wBAAgB,aAAa,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,sCAUlE;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,SAAS,+BAQhF;AAED,MAAM,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAE/C,MAAM,WAAW,SAAU,SAAQ,cAAc,CAAC,GAAG,CAAC;IAClD,2DAA2D;IAC3D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uFAAuF;IACvF,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cx as e } from "../utils/cx.js";
|
|
3
|
+
import { Slot as t } from "../utils/slot.js";
|
|
4
|
+
import { PILL as n, PILL_INDICATOR as r, PILL_TRACK as i } from "../utils/styles.js";
|
|
5
|
+
import { useIndicator as a } from "../utils/indicator.js";
|
|
6
|
+
import { createContext as o, useContext as s, useRef as c } from "react";
|
|
7
|
+
import { jsx as l } from "react/jsx-runtime";
|
|
8
|
+
//#region packages/pills/index.tsx
|
|
9
|
+
var u = o(null), d = "[aria-current=\"page\"], [aria-selected=\"true\"]";
|
|
10
|
+
function f({ className: t, ref: n, children: r, ...o }) {
|
|
11
|
+
let s = c(null), f = a(s, d);
|
|
12
|
+
return /* @__PURE__ */ l("div", {
|
|
13
|
+
ref: (e) => {
|
|
14
|
+
s.current = e, typeof n == "function" ? n(e) : n && (n.current = e);
|
|
15
|
+
},
|
|
16
|
+
className: e("zen__pills", i, t),
|
|
17
|
+
...o,
|
|
18
|
+
children: /* @__PURE__ */ l(u.Provider, {
|
|
19
|
+
value: f,
|
|
20
|
+
children: r
|
|
21
|
+
})
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
function p({ className: t }) {
|
|
25
|
+
let n = s(u);
|
|
26
|
+
return n ? /* @__PURE__ */ l("span", {
|
|
27
|
+
"aria-hidden": !0,
|
|
28
|
+
className: e(r, t),
|
|
29
|
+
style: {
|
|
30
|
+
translate: `${n.x}px 0`,
|
|
31
|
+
width: n.w
|
|
32
|
+
}
|
|
33
|
+
}) : null;
|
|
34
|
+
}
|
|
35
|
+
function m({ active: r, asChild: i, className: a, children: o, ...s }) {
|
|
36
|
+
let c = {
|
|
37
|
+
...s,
|
|
38
|
+
"aria-current": r ? "page" : void 0,
|
|
39
|
+
className: e(n, a)
|
|
40
|
+
};
|
|
41
|
+
return i ? (r || delete c["aria-current"], /* @__PURE__ */ l(t, {
|
|
42
|
+
...c,
|
|
43
|
+
children: o
|
|
44
|
+
})) : /* @__PURE__ */ l("a", {
|
|
45
|
+
...c,
|
|
46
|
+
children: o
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
//#endregion
|
|
50
|
+
export { m as Pill, p as PillIndicator, f as default };
|
package/dist/popover/index.d.ts
CHANGED
|
@@ -1,24 +1,43 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
1
|
+
import { ButtonProps } from '../button';
|
|
2
|
+
import { ComponentProps, ReactNode } from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* A panel that opens from a button: a small form, a profile card, settings. A
|
|
5
|
+
* native popover, so outside clicks and Escape close it and focus returns to
|
|
6
|
+
* the button. Put a PopoverTrigger and a PopoverContent inside. Opens and closes
|
|
7
|
+
* on its own, or follows `open` (with `onOpenChange` to hear the user close it).
|
|
8
|
+
* For a hint on hover or focus, use Tooltip; for a list of actions, Menu.
|
|
9
|
+
*/
|
|
10
|
+
export default function Popover({ open, defaultOpen, onOpenChange, children }: PopoverProps): import('react').JSX.Element;
|
|
11
|
+
/** The button that opens and closes the popover. With `asChild`, your own button (e.g. a Button) instead. */
|
|
12
|
+
export declare function PopoverTrigger({ asChild, style, children, ...rest }: PopoverTriggerProps): import('react').JSX.Element;
|
|
13
|
+
/**
|
|
14
|
+
* The panel: glass, below the trigger (above it if there's no room), centred on
|
|
15
|
+
* it by default. A dialog to assistive tech; give it `aria-label` or a heading
|
|
16
|
+
* it's labelled by when it holds a form.
|
|
17
|
+
*/
|
|
18
|
+
export declare function PopoverContent({ align, offset, className, style, children, ...rest }: PopoverContentProps): import('react').JSX.Element;
|
|
19
|
+
/**
|
|
20
|
+
* A button that closes its popover (after its own onClick, unless that calls
|
|
21
|
+
* preventDefault). Takes every Button prop: variant, size, asChild…
|
|
22
|
+
*/
|
|
23
|
+
export declare function PopoverClose({ onClick, ...rest }: ButtonProps): import('react').JSX.Element;
|
|
24
|
+
export interface PopoverProps {
|
|
25
|
+
/** Open or close it from your state; leave it out to let the trigger do it. */
|
|
26
|
+
open?: boolean;
|
|
27
|
+
/** Open when it first appears. */
|
|
28
|
+
defaultOpen?: boolean;
|
|
29
|
+
/** Every open and close: the trigger, outside clicks, Escape, PopoverClose. */
|
|
30
|
+
onOpenChange?: (open: boolean) => void;
|
|
31
|
+
children?: ReactNode;
|
|
32
|
+
}
|
|
33
|
+
export interface PopoverTriggerProps extends ComponentProps<'button'> {
|
|
34
|
+
/** Put the trigger's props on your own button element instead of rendering one. */
|
|
35
|
+
asChild?: boolean;
|
|
36
|
+
}
|
|
37
|
+
export interface PopoverContentProps extends ComponentProps<'div'> {
|
|
38
|
+
/** Centred on the trigger (default), or lined up with its start or end edge. */
|
|
39
|
+
align?: 'start' | 'end' | 'center';
|
|
40
|
+
/** Gap from the trigger, in px. */
|
|
41
|
+
offset?: number;
|
|
19
42
|
}
|
|
20
|
-
type AriaRole = 'tooltip' | 'dialog' | 'alertdialog' | 'menu' | 'listbox' | 'grid' | 'tree';
|
|
21
|
-
type ComponentRole = 'select' | 'label' | 'combobox';
|
|
22
|
-
type Placement = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'right' | 'right-start' | 'right-end' | 'left' | 'left-start' | 'left-end';
|
|
23
|
-
export {};
|
|
24
43
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/popover/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/popover/index.tsx"],"names":[],"mappings":"AAAA,OAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAMlD,OAAO,EAAE,cAAc,EAA6B,SAAS,EAAyB,MAAM,OAAO,CAAC;AAYpG;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAAE,IAAI,EAAE,WAAmB,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,YAAY,+BAclG;AAED,6GAA6G;AAC7G,wBAAgB,cAAc,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,mBAAmB,+BAcxF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAC3B,KAAgB,EAChB,MAAU,EACV,SAAS,EACT,KAAK,EACL,QAAQ,EACR,GAAG,IAAI,EACV,EAAE,mBAAmB,+BAiBrB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,WAAW,+BAW7D;AAED,MAAM,WAAW,YAAY;IACzB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,kCAAkC;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACxB;AAED,MAAM,WAAW,mBAAoB,SAAQ,cAAc,CAAC,QAAQ,CAAC;IACjE,mFAAmF;IACnF,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,mBAAoB,SAAQ,cAAc,CAAC,KAAK,CAAC;IAC9D,gFAAgF;IAChF,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;IACnC,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB"}
|