@lazar-ui/kit 0.1.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 +182 -0
- package/dist/Overlay-RmiBtqDR.mjs +1011 -0
- package/dist/accordion.css +1 -0
- package/dist/accordion.d.ts +53 -0
- package/dist/accordion.js +48 -0
- package/dist/alert.css +1 -0
- package/dist/alert.d.ts +33 -0
- package/dist/alert.js +20 -0
- package/dist/avatar.css +1 -0
- package/dist/avatar.d.ts +34 -0
- package/dist/avatar.js +41 -0
- package/dist/badge.css +1 -0
- package/dist/badge.d.ts +33 -0
- package/dist/badge.js +23 -0
- package/dist/breadcrumbs.css +1 -0
- package/dist/breadcrumbs.d.ts +80 -0
- package/dist/breadcrumbs.js +63 -0
- package/dist/button.css +1 -0
- package/dist/button.d.ts +66 -0
- package/dist/button.js +46 -0
- package/dist/camelCase-PtIYufW8.mjs +528 -0
- package/dist/card.css +1 -0
- package/dist/card.d.ts +42 -0
- package/dist/card.js +24 -0
- package/dist/checkbox.css +1 -0
- package/dist/checkbox.d.ts +41 -0
- package/dist/checkbox.js +42 -0
- package/dist/clsx-OuTLNxxd.mjs +16 -0
- package/dist/config-provider.d.ts +78 -0
- package/dist/config-provider.js +14 -0
- package/dist/css/palettes/indigo.css +104 -0
- package/dist/css/palettes/monochrome.css +104 -0
- package/dist/css/semantic.css +113 -0
- package/dist/dialog.css +1 -0
- package/dist/dialog.d.ts +91 -0
- package/dist/dialog.js +75 -0
- package/dist/drawer.css +1 -0
- package/dist/drawer.d.ts +128 -0
- package/dist/drawer.js +106 -0
- package/dist/empty-state.css +1 -0
- package/dist/empty-state.d.ts +33 -0
- package/dist/empty-state.js +52 -0
- package/dist/error-boundary.css +1 -0
- package/dist/error-boundary.d.ts +55 -0
- package/dist/error-boundary.js +37 -0
- package/dist/flex.css +1 -0
- package/dist/flex.d.ts +68 -0
- package/dist/flex.js +73 -0
- package/dist/form-field.css +1 -0
- package/dist/form-field.d.ts +27 -0
- package/dist/form-field.js +22 -0
- package/dist/getComponentSlots-DwAYUFNk.mjs +16 -0
- package/dist/getVariantClassName-D7Nhpuec.mjs +8 -0
- package/dist/input.css +1 -0
- package/dist/input.d.ts +39 -0
- package/dist/input.js +146 -0
- package/dist/isValidReactNode-CmYwTWCE.mjs +18 -0
- package/dist/menu.css +1 -0
- package/dist/menu.d.ts +94 -0
- package/dist/menu.js +135 -0
- package/dist/pagination.css +1 -0
- package/dist/pagination.d.ts +40 -0
- package/dist/pagination.js +74 -0
- package/dist/popover.css +1 -0
- package/dist/popover.d.ts +54 -0
- package/dist/popover.js +65 -0
- package/dist/select.css +1 -0
- package/dist/select.d.ts +64 -0
- package/dist/select.js +170 -0
- package/dist/separator.css +1 -0
- package/dist/separator.d.ts +25 -0
- package/dist/separator.js +24 -0
- package/dist/skeleton.css +1 -0
- package/dist/skeleton.d.ts +38 -0
- package/dist/skeleton.js +27 -0
- package/dist/spinner.css +1 -0
- package/dist/spinner.d.ts +31 -0
- package/dist/spinner.js +29 -0
- package/dist/switch.css +1 -0
- package/dist/switch.d.ts +44 -0
- package/dist/switch.js +37 -0
- package/dist/table.css +1 -0
- package/dist/table.d.ts +60 -0
- package/dist/table.js +40 -0
- package/dist/tabs.css +1 -0
- package/dist/tabs.d.ts +69 -0
- package/dist/tabs.js +79 -0
- package/dist/textarea.css +1 -0
- package/dist/textarea.d.ts +53 -0
- package/dist/textarea.js +46 -0
- package/dist/tooltip.css +1 -0
- package/dist/tooltip.d.ts +38 -0
- package/dist/tooltip.js +99 -0
- package/dist/useLocale-D2Z0JH0l.mjs +70 -0
- package/dist/useModalOverlay-D5Bs9FCB.mjs +486 -0
- package/dist/useOverlayPosition-DVu1Qziq.mjs +451 -0
- package/dist/useOverlayTriggerState-BIo1Jcba.mjs +221 -0
- package/dist/utils.d.ts +58 -0
- package/dist/utils.js +18 -0
- package/package.json +76 -0
package/dist/input.d.ts
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { default as default_2 } from 'react';
|
|
2
|
+
import { FC } from 'react';
|
|
3
|
+
|
|
4
|
+
export declare interface IInputEmailProps extends Omit<IInputProps, 'type'> {
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export declare interface IInputNumberProps extends Omit<IInputProps, 'type' | 'inputMode'> {
|
|
8
|
+
min?: number;
|
|
9
|
+
max?: number;
|
|
10
|
+
step?: number;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export declare interface IInputPasswordProps extends Omit<IInputProps, 'type'> {
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export declare interface IInputPhoneProps extends Omit<IInputProps, 'type'> {
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export declare interface IInputProps extends Omit<default_2.InputHTMLAttributes<HTMLInputElement>, 'prefix' | 'suffix' | 'size' | 'onChange' | 'onBlur' | 'onFocus'> {
|
|
20
|
+
ref?: default_2.Ref<HTMLInputElement>;
|
|
21
|
+
invalid?: boolean;
|
|
22
|
+
size?: TInputSize;
|
|
23
|
+
before?: default_2.ReactNode;
|
|
24
|
+
after?: default_2.ReactNode;
|
|
25
|
+
onChange?: (value: string) => void;
|
|
26
|
+
onBlur?: (e: default_2.FocusEvent<HTMLInputElement>) => void;
|
|
27
|
+
onFocus?: (e: default_2.FocusEvent<HTMLInputElement>) => void;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export declare const Input: FC<IInputProps> & {
|
|
31
|
+
Email: FC<IInputEmailProps>;
|
|
32
|
+
Number: FC<IInputNumberProps>;
|
|
33
|
+
Password: FC<IInputPasswordProps>;
|
|
34
|
+
Phone: FC<IInputPhoneProps>;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
declare type TInputSize = 'sm' | 'md' | 'lg';
|
|
38
|
+
|
|
39
|
+
export { }
|
package/dist/input.js
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { jsxs as C, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { c as z } from "./clsx-OuTLNxxd.mjs";
|
|
3
|
+
import { useState as g, useCallback as f } from "react";
|
|
4
|
+
import { g as M } from "./getVariantClassName-D7Nhpuec.mjs";
|
|
5
|
+
import { u as x } from "./useLocale-D2Z0JH0l.mjs";
|
|
6
|
+
import './input.css';const p = {
|
|
7
|
+
INPUT: "Input",
|
|
8
|
+
INPUT_EMAIL: "InputEmail",
|
|
9
|
+
INPUT_NUMBER: "InputNumber",
|
|
10
|
+
INPUT_PASSWORD: "InputPassword",
|
|
11
|
+
INPUT_PHONE: "InputPhone"
|
|
12
|
+
}, y = "_root_p1h72_17", E = "_invalid_p1h72_36", B = "_disabled_p1h72_42", U = "_sizeSm_p1h72_56", L = "_sizeMd_p1h72_60", S = "_sizeLg_p1h72_64", T = "_control_p1h72_68", A = "_before_p1h72_99", k = "_after_p1h72_100", O = "_togglePassword_p1h72_108", l = {
|
|
13
|
+
root: y,
|
|
14
|
+
invalid: E,
|
|
15
|
+
disabled: B,
|
|
16
|
+
sizeSm: U,
|
|
17
|
+
sizeMd: L,
|
|
18
|
+
sizeLg: S,
|
|
19
|
+
control: T,
|
|
20
|
+
before: A,
|
|
21
|
+
after: k,
|
|
22
|
+
togglePassword: O
|
|
23
|
+
}, d = (o) => {
|
|
24
|
+
const { ref: s, invalid: t = !1, size: r = "md", before: a, after: n, className: i, onChange: c, onBlur: h, onFocus: m, ...u } = o, P = z(
|
|
25
|
+
l.root,
|
|
26
|
+
M("size", r, l),
|
|
27
|
+
{
|
|
28
|
+
[l.disabled]: u.disabled === !0,
|
|
29
|
+
[l.invalid]: t
|
|
30
|
+
},
|
|
31
|
+
i
|
|
32
|
+
), b = (v) => {
|
|
33
|
+
c?.(v.target.value);
|
|
34
|
+
};
|
|
35
|
+
return /* @__PURE__ */ C("div", { className: P, children: [
|
|
36
|
+
a && /* @__PURE__ */ e("span", { className: l.before, children: a }),
|
|
37
|
+
/* @__PURE__ */ e("input", { ref: s, className: l.control, onChange: b, onBlur: h, onFocus: m, ...u }),
|
|
38
|
+
n && /* @__PURE__ */ e("span", { className: l.after, children: n })
|
|
39
|
+
] });
|
|
40
|
+
};
|
|
41
|
+
d.displayName = p.INPUT;
|
|
42
|
+
const V = () => /* @__PURE__ */ e("svg", { width: "100%", height: "100%", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ e(
|
|
43
|
+
"path",
|
|
44
|
+
{
|
|
45
|
+
d: "M2 3c0-.6.4-1 1-1h1.5a1 1 0 01.9.6l.7 1.5a1 1 0 01-.1 1.1L5 6a8.6 8.6 0 004 4l1-1a1 1 0 011.1-.2l1.5.7a1 1 0 01.6.9V13a1 1 0 01-1 1C6.5 14 2 9.5 2 3z",
|
|
46
|
+
fill: "currentColor"
|
|
47
|
+
}
|
|
48
|
+
) }), $ = () => /* @__PURE__ */ e("svg", { width: "100%", height: "100%", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ e(
|
|
49
|
+
"path",
|
|
50
|
+
{
|
|
51
|
+
d: "M2 4a2 2 0 012-2h8a2 2 0 012 2v8a2 2 0 01-2 2H4a2 2 0 01-2-2V4zm2 0l4 3 4-3m0 8V6.5L8 9.5 4 6.5V12",
|
|
52
|
+
fill: "currentColor"
|
|
53
|
+
}
|
|
54
|
+
) }), D = () => /* @__PURE__ */ e("svg", { width: "100%", height: "100%", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ e(
|
|
55
|
+
"path",
|
|
56
|
+
{
|
|
57
|
+
d: "M8 3C4.5 3 1.5 5.5 0 8c1.5 2.5 4.5 5 8 5s6.5-2.5 8-5c-1.5-2.5-4.5-5-8-5zm0 8a3 3 0 110-6 3 3 0 010 6zm0-1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z",
|
|
58
|
+
fill: "currentColor"
|
|
59
|
+
}
|
|
60
|
+
) }), H = () => /* @__PURE__ */ e("svg", { width: "100%", height: "100%", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ e(
|
|
61
|
+
"path",
|
|
62
|
+
{
|
|
63
|
+
d: "M3.5 2L14 12.5M6.5 5.5A3 3 0 0010 9m4.5-1A9.5 9.5 0 0014 8c-1.5-2.5-4.5-5-8-5-.7 0-1.4.1-2 .3m-2.6 1.2C.8 5.2 0 8 0 8c1.5 2.5 4.5 5 8 5 1.5 0 2.9-.4 4.1-1",
|
|
64
|
+
stroke: "currentColor",
|
|
65
|
+
strokeWidth: "1.5",
|
|
66
|
+
strokeLinecap: "round",
|
|
67
|
+
fill: "none"
|
|
68
|
+
}
|
|
69
|
+
) });
|
|
70
|
+
function R(o) {
|
|
71
|
+
const s = o.replace(/\D/g, "").slice(0, 11);
|
|
72
|
+
if (!s) return "";
|
|
73
|
+
let t = "+7";
|
|
74
|
+
return s.length > 1 && (t += ` (${s.slice(1, 4)}`), s.length >= 4 && (t += `) ${s.slice(4, 7)}`), s.length >= 7 && (t += `-${s.slice(7, 9)}`), s.length >= 9 && (t += `-${s.slice(9, 11)}`), t;
|
|
75
|
+
}
|
|
76
|
+
function j(o) {
|
|
77
|
+
return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(o);
|
|
78
|
+
}
|
|
79
|
+
const w = (o) => {
|
|
80
|
+
const { ref: s, before: t, onBlur: r, invalid: a, ...n } = o, [i, c] = g(!1), h = f(
|
|
81
|
+
(u) => {
|
|
82
|
+
c(!0), r?.(u);
|
|
83
|
+
},
|
|
84
|
+
[r]
|
|
85
|
+
), m = a || i && n.value != null && !j(n.value);
|
|
86
|
+
return /* @__PURE__ */ e(
|
|
87
|
+
d,
|
|
88
|
+
{
|
|
89
|
+
ref: s,
|
|
90
|
+
type: "email",
|
|
91
|
+
before: t ?? /* @__PURE__ */ e($, {}),
|
|
92
|
+
invalid: m,
|
|
93
|
+
onBlur: h,
|
|
94
|
+
...n
|
|
95
|
+
}
|
|
96
|
+
);
|
|
97
|
+
};
|
|
98
|
+
w.displayName = p.INPUT_EMAIL;
|
|
99
|
+
const _ = (o) => {
|
|
100
|
+
const { ref: s, ...t } = o;
|
|
101
|
+
return /* @__PURE__ */ e(d, { ref: s, type: "number", inputMode: "numeric", ...t });
|
|
102
|
+
};
|
|
103
|
+
_.displayName = p.INPUT_NUMBER;
|
|
104
|
+
const N = (o) => {
|
|
105
|
+
const { ref: s, after: t, ...r } = o, a = x(), [n, i] = g(!1), c = f(() => i((h) => !h), []);
|
|
106
|
+
return /* @__PURE__ */ e(
|
|
107
|
+
d,
|
|
108
|
+
{
|
|
109
|
+
ref: s,
|
|
110
|
+
type: n ? "text" : "password",
|
|
111
|
+
after: t ?? /* @__PURE__ */ e(
|
|
112
|
+
"button",
|
|
113
|
+
{
|
|
114
|
+
type: "button",
|
|
115
|
+
className: l.togglePassword,
|
|
116
|
+
onClick: c,
|
|
117
|
+
tabIndex: -1,
|
|
118
|
+
"aria-label": n ? a.input.passwordHide : a.input.passwordShow,
|
|
119
|
+
children: n ? /* @__PURE__ */ e(H, {}) : /* @__PURE__ */ e(D, {})
|
|
120
|
+
}
|
|
121
|
+
),
|
|
122
|
+
...r
|
|
123
|
+
}
|
|
124
|
+
);
|
|
125
|
+
};
|
|
126
|
+
N.displayName = p.INPUT_PASSWORD;
|
|
127
|
+
const I = (o) => {
|
|
128
|
+
const { ref: s, before: t, onChange: r, ...a } = o, n = f(
|
|
129
|
+
(i) => {
|
|
130
|
+
const c = R(i);
|
|
131
|
+
r?.(c);
|
|
132
|
+
},
|
|
133
|
+
[r]
|
|
134
|
+
);
|
|
135
|
+
return /* @__PURE__ */ e(d, { ref: s, type: "tel", before: t ?? /* @__PURE__ */ e(V, {}), onChange: n, ...a });
|
|
136
|
+
};
|
|
137
|
+
I.displayName = p.INPUT_PHONE;
|
|
138
|
+
const J = Object.assign(d, {
|
|
139
|
+
Email: w,
|
|
140
|
+
Number: _,
|
|
141
|
+
Password: N,
|
|
142
|
+
Phone: I
|
|
143
|
+
});
|
|
144
|
+
export {
|
|
145
|
+
J as Input
|
|
146
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { isValidElement as y } from "react";
|
|
2
|
+
const c = (t) => t.type ? typeof t.type == "string" ? t.type : "displayName" in t.type ? t.type.displayName : t.type.name : "", r = (t, e) => t === e, n = (t, e, o = !0) => {
|
|
3
|
+
const s = Array.isArray(t);
|
|
4
|
+
let i = !1;
|
|
5
|
+
if (y(e)) {
|
|
6
|
+
const a = c(e);
|
|
7
|
+
s ? i = t.some((p) => r(p, a)) : i = r(t, a);
|
|
8
|
+
}
|
|
9
|
+
if (!i && o) {
|
|
10
|
+
let a = t;
|
|
11
|
+
s && (a = t.join(", ")), console.warn("Invalid React node. Node should be an instance of %s", a);
|
|
12
|
+
}
|
|
13
|
+
return i;
|
|
14
|
+
};
|
|
15
|
+
export {
|
|
16
|
+
c as g,
|
|
17
|
+
n as i
|
|
18
|
+
};
|
package/dist/menu.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._root_rtz62_1{align-items:center;border-radius:var(--dropdown-item-radius);cursor:pointer;display:flex;font-size:var(--dropdown-item-font-size);gap:var(--dropdown-item-gap);outline:none;padding:var(--dropdown-item-padding-y) var(--dropdown-item-padding-x);transition:background-color .1s ease;-webkit-user-select:none;user-select:none}._root_rtz62_1:hover{background:var(--color-background-secondary)}._root_rtz62_1:focus-visible{background:var(--color-background-secondary)}._root_rtz62_1._disabled_rtz62_19{color:var(--color-text-disabled);cursor:not-allowed}._root_rtz62_1._disabled_rtz62_19:hover{background:transparent}._checkbox_rtz62_27{align-items:center;border:1.5px solid var(--color-border-primary);border-radius:var(--radius-1);display:inline-flex;flex-shrink:0;height:16px;justify-content:center;transition:all .1s ease;width:16px}._checkbox_rtz62_27._checked_rtz62_38{background:var(--color-background-brand);border-color:var(--color-background-brand);color:var(--color-text-on-brand)}._label_rtz62_44{flex:1;overflow:hidden;text-overflow:ellipsis}:root{--dropdown-min-width: 160px;--dropdown-item-padding-x: var(--space-3);--dropdown-item-padding-y: var(--space-2);--dropdown-item-gap: var(--space-2);--dropdown-item-radius: var(--radius-1);--dropdown-item-font-size: var(--font-size-sm);--dropdown-item-icon-size: 16px;--dropdown-separator-margin: var(--space-1) var(--space-2);--dropdown-group-label-padding: var(--space-2) var(--space-3);--dropdown-group-label-font-size: var(--font-size-xs)}._root_mkbkc_14{min-width:var(--dropdown-min-width);padding:var(--space-1)}._root_1rvg0_1{padding-bottom:var(--space-1);padding-top:var(--space-1)}._root_1rvg0_1+._root_1rvg0_1{border-top:1px solid var(--color-border-primary)}._label_1rvg0_9{color:var(--color-text-tertiary);font-size:var(--dropdown-group-label-font-size);font-weight:var(--font-weight-medium);padding:var(--dropdown-group-label-padding);text-transform:uppercase}._root_vdz2l_1{align-items:center;border-radius:var(--dropdown-item-radius);cursor:pointer;display:flex;font-size:var(--dropdown-item-font-size);gap:var(--dropdown-item-gap);outline:none;padding:var(--dropdown-item-padding-y) var(--dropdown-item-padding-x);transition:background-color .1s ease;-webkit-user-select:none;user-select:none}._root_vdz2l_1:hover{background:var(--color-background-secondary)}._root_vdz2l_1:focus-visible{background:var(--color-background-secondary)}._root_vdz2l_1._disabled_vdz2l_19{color:var(--color-text-disabled);cursor:not-allowed}._root_vdz2l_1._disabled_vdz2l_19:hover{background:transparent}._root_vdz2l_1._danger_vdz2l_26{color:var(--color-background-error)}._root_vdz2l_1._danger_vdz2l_26:hover{background:color-mix(in sRGB,var(--color-background-error) 8%,transparent)}._icon_vdz2l_33{align-items:center;color:var(--color-text-tertiary);display:inline-flex;flex-shrink:0;height:var(--dropdown-item-icon-size);justify-content:center;width:var(--dropdown-item-icon-size)}._label_vdz2l_43{flex:1;overflow:hidden;text-overflow:ellipsis}._root_c60j4_1{background:var(--color-border-primary);border:none;height:1px;margin:var(--dropdown-separator-margin)}
|
package/dist/menu.d.ts
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { default as default_2 } from 'react';
|
|
2
|
+
import { Placement } from 'react-aria';
|
|
3
|
+
|
|
4
|
+
declare interface IProps {
|
|
5
|
+
/** Children (item label). */
|
|
6
|
+
children: default_2.ReactNode;
|
|
7
|
+
/** Whether the item is checked. */
|
|
8
|
+
checked: boolean;
|
|
9
|
+
/** Callback when checked state changes. */
|
|
10
|
+
onCheckedChange?: (checked: boolean) => void;
|
|
11
|
+
/** Whether the item is disabled. */
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export { IProps as ICheckboxProps }
|
|
15
|
+
export { IProps as IMenuCheckboxProps }
|
|
16
|
+
|
|
17
|
+
declare interface IProps_2 extends default_2.PropsWithChildren {
|
|
18
|
+
}
|
|
19
|
+
export { IProps_2 as IContentProps }
|
|
20
|
+
export { IProps_2 as IMenuContentProps }
|
|
21
|
+
|
|
22
|
+
declare interface IProps_3 extends default_2.PropsWithChildren {
|
|
23
|
+
/** Controlled open state. */
|
|
24
|
+
open?: boolean;
|
|
25
|
+
/** Callback when open state changes. */
|
|
26
|
+
onOpenChange?: (isOpen: boolean) => void;
|
|
27
|
+
/** Placement relative to trigger. All useOverlayPosition placements are supported. Default: `'bottom-start'`. */
|
|
28
|
+
placement?: Placement;
|
|
29
|
+
}
|
|
30
|
+
export { IProps_3 as IMenuProps }
|
|
31
|
+
export { IProps_3 as IMenuRootProps }
|
|
32
|
+
|
|
33
|
+
declare interface IProps_4 {
|
|
34
|
+
/** Group label. */
|
|
35
|
+
label: string;
|
|
36
|
+
/** Group items. */
|
|
37
|
+
children: default_2.ReactNode;
|
|
38
|
+
}
|
|
39
|
+
export { IProps_4 as IGroupProps }
|
|
40
|
+
export { IProps_4 as IMenuGroupProps }
|
|
41
|
+
|
|
42
|
+
declare interface IProps_5 {
|
|
43
|
+
/** Children (item label). */
|
|
44
|
+
children: default_2.ReactNode;
|
|
45
|
+
/** Action callback when the item is selected. */
|
|
46
|
+
onAction?: () => void;
|
|
47
|
+
/** Whether the item is disabled. */
|
|
48
|
+
disabled?: boolean;
|
|
49
|
+
/** Whether the item is in danger state (e.g. delete action). */
|
|
50
|
+
danger?: boolean;
|
|
51
|
+
/** Optional icon before the label. */
|
|
52
|
+
icon?: default_2.ReactNode;
|
|
53
|
+
}
|
|
54
|
+
export { IProps_5 as IItemProps }
|
|
55
|
+
export { IProps_5 as IMenuItemProps }
|
|
56
|
+
|
|
57
|
+
declare interface IProps_6 extends default_2.PropsWithChildren {
|
|
58
|
+
}
|
|
59
|
+
export { IProps_6 as IMenuTriggerProps }
|
|
60
|
+
export { IProps_6 as ITriggerProps }
|
|
61
|
+
|
|
62
|
+
export declare const Menu: TMenuCompoundComponent;
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Menu container. Manages open/close state via Popover and validates children.
|
|
66
|
+
*
|
|
67
|
+
* Uses compound component pattern via `<Menu.Trigger>`, `<Menu.Content>`,
|
|
68
|
+
* `<Menu.Item>`, `<Menu.Checkbox>`, `<Menu.Separator>`, and `<Menu.Group>`.
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```tsx
|
|
72
|
+
* <Menu>
|
|
73
|
+
* <Menu.Trigger>
|
|
74
|
+
* <Button>Actions</Button>
|
|
75
|
+
* </Menu.Trigger>
|
|
76
|
+
* <Menu.Content>
|
|
77
|
+
* <Menu.Item icon={<Icon />}>Edit</Menu.Item>
|
|
78
|
+
* <Menu.Item danger>Delete</Menu.Item>
|
|
79
|
+
* </Menu.Content>
|
|
80
|
+
* </Menu>
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
declare const Menu_2: default_2.FC<IProps_3>;
|
|
84
|
+
|
|
85
|
+
declare type TMenuCompoundComponent = typeof Menu_2 & {
|
|
86
|
+
Checkbox: default_2.FC<IProps>;
|
|
87
|
+
Content: default_2.FC<IProps_2>;
|
|
88
|
+
Group: default_2.FC<IProps_4>;
|
|
89
|
+
Item: default_2.FC<IProps_5>;
|
|
90
|
+
Separator: default_2.FC;
|
|
91
|
+
Trigger: default_2.FC<IProps_6>;
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
export { }
|
package/dist/menu.js
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { jsxs as p, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { c as m } from "./clsx-OuTLNxxd.mjs";
|
|
3
|
+
import { usePopoverContext as u, Popover as N } from "./popover.js";
|
|
4
|
+
import R from "react";
|
|
5
|
+
import { i as O } from "./isValidReactNode-CmYwTWCE.mjs";
|
|
6
|
+
import './menu.css';const k = () => {
|
|
7
|
+
const { state: e } = u();
|
|
8
|
+
return {
|
|
9
|
+
close: () => {
|
|
10
|
+
e.close();
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
}, a = "Menu", y = "bottom start";
|
|
14
|
+
var s = ((e) => (e.CHECKBOX = `${a}.Checkbox`, e.CONTENT = `${a}.Content`, e.GROUP = `${a}.Group`, e.ITEM = `${a}.Item`, e.SEPARATOR = `${a}.Separator`, e.TRIGGER = `${a}.Trigger`, e))(s || {});
|
|
15
|
+
const A = "_root_rtz62_1", G = "_disabled_rtz62_19", I = "_checkbox_rtz62_27", M = "_checked_rtz62_38", P = "_label_rtz62_44", _ = {
|
|
16
|
+
root: A,
|
|
17
|
+
disabled: G,
|
|
18
|
+
checkbox: I,
|
|
19
|
+
checked: M,
|
|
20
|
+
label: P
|
|
21
|
+
}, g = (e) => {
|
|
22
|
+
const { checked: o, children: n, disabled: t = !1, onCheckedChange: c } = e, { close: l } = k(), d = m(
|
|
23
|
+
_.root,
|
|
24
|
+
t && _.disabled
|
|
25
|
+
);
|
|
26
|
+
return /* @__PURE__ */ p(
|
|
27
|
+
"div",
|
|
28
|
+
{
|
|
29
|
+
"aria-checked": o,
|
|
30
|
+
"aria-disabled": t,
|
|
31
|
+
className: d,
|
|
32
|
+
onClick: () => {
|
|
33
|
+
t || (c && c(!o), l());
|
|
34
|
+
},
|
|
35
|
+
role: "menuitemcheckbox",
|
|
36
|
+
tabIndex: t ? -1 : 0,
|
|
37
|
+
children: [
|
|
38
|
+
/* @__PURE__ */ r("span", { className: m(_.checkbox, o && _.checked), children: o && /* @__PURE__ */ r(
|
|
39
|
+
"svg",
|
|
40
|
+
{
|
|
41
|
+
"aria-hidden": "true",
|
|
42
|
+
height: "12",
|
|
43
|
+
viewBox: "0 0 12 12",
|
|
44
|
+
width: "12",
|
|
45
|
+
children: /* @__PURE__ */ r(
|
|
46
|
+
"path",
|
|
47
|
+
{
|
|
48
|
+
d: "M2 6 L5 9 L10 3",
|
|
49
|
+
fill: "none",
|
|
50
|
+
stroke: "currentColor",
|
|
51
|
+
strokeLinecap: "round",
|
|
52
|
+
strokeLinejoin: "round",
|
|
53
|
+
strokeWidth: "2"
|
|
54
|
+
}
|
|
55
|
+
)
|
|
56
|
+
}
|
|
57
|
+
) }),
|
|
58
|
+
/* @__PURE__ */ r("span", { className: _.label, children: n })
|
|
59
|
+
]
|
|
60
|
+
}
|
|
61
|
+
);
|
|
62
|
+
};
|
|
63
|
+
g.displayName = s.CHECKBOX;
|
|
64
|
+
const z = "_root_mkbkc_14", L = {
|
|
65
|
+
root: z
|
|
66
|
+
}, T = (e) => {
|
|
67
|
+
const { children: o } = e;
|
|
68
|
+
return /* @__PURE__ */ r(N.Content, { padding: !1, children: /* @__PURE__ */ r("div", { className: L.root, children: o }) });
|
|
69
|
+
};
|
|
70
|
+
T.displayName = s.CONTENT;
|
|
71
|
+
const B = [s.TRIGGER, s.CONTENT], $ = (e) => {
|
|
72
|
+
const { children: o, open: n, onOpenChange: t, placement: c = y } = e, l = (d) => O(B, d) ? d : null;
|
|
73
|
+
return /* @__PURE__ */ r(N, { open: n, onOpenChange: t, placement: c, children: R.Children.map(o, l) });
|
|
74
|
+
};
|
|
75
|
+
$.displayName = a;
|
|
76
|
+
const U = "_root_1rvg0_1", j = "_label_1rvg0_9", b = {
|
|
77
|
+
root: U,
|
|
78
|
+
label: j
|
|
79
|
+
}, v = (e) => {
|
|
80
|
+
const { children: o, label: n } = e;
|
|
81
|
+
return /* @__PURE__ */ p("div", { className: b.root, role: "group", children: [
|
|
82
|
+
/* @__PURE__ */ r("div", { className: b.label, children: n }),
|
|
83
|
+
o
|
|
84
|
+
] });
|
|
85
|
+
};
|
|
86
|
+
v.displayName = s.GROUP;
|
|
87
|
+
const S = "_root_vdz2l_1", w = "_disabled_vdz2l_19", D = "_danger_vdz2l_26", H = "_icon_vdz2l_33", K = "_label_vdz2l_43", h = {
|
|
88
|
+
root: S,
|
|
89
|
+
disabled: w,
|
|
90
|
+
danger: D,
|
|
91
|
+
icon: H,
|
|
92
|
+
label: K
|
|
93
|
+
}, x = (e) => {
|
|
94
|
+
const { children: o, danger: n = !1, disabled: t = !1, icon: c, onAction: l } = e, { close: d } = k(), C = m(
|
|
95
|
+
h.root,
|
|
96
|
+
n && h.danger,
|
|
97
|
+
t && h.disabled
|
|
98
|
+
);
|
|
99
|
+
return /* @__PURE__ */ p(
|
|
100
|
+
"div",
|
|
101
|
+
{
|
|
102
|
+
"aria-disabled": t,
|
|
103
|
+
className: C,
|
|
104
|
+
onClick: () => {
|
|
105
|
+
t || (l && l(), d());
|
|
106
|
+
},
|
|
107
|
+
role: "menuitem",
|
|
108
|
+
tabIndex: t ? -1 : 0,
|
|
109
|
+
children: [
|
|
110
|
+
c && /* @__PURE__ */ r("span", { className: h.icon, children: c }),
|
|
111
|
+
/* @__PURE__ */ r("span", { className: h.label, children: o })
|
|
112
|
+
]
|
|
113
|
+
}
|
|
114
|
+
);
|
|
115
|
+
};
|
|
116
|
+
x.displayName = s.ITEM;
|
|
117
|
+
const X = "_root_c60j4_1", F = {
|
|
118
|
+
root: X
|
|
119
|
+
}, f = () => /* @__PURE__ */ r("hr", { className: F.root });
|
|
120
|
+
f.displayName = s.SEPARATOR;
|
|
121
|
+
const E = (e) => {
|
|
122
|
+
const { children: o } = e, { triggerRef: n, state: t } = u();
|
|
123
|
+
return /* @__PURE__ */ r("span", { "aria-expanded": t.isOpen, "aria-haspopup": "true", onClick: t.toggle, ref: n, children: o });
|
|
124
|
+
};
|
|
125
|
+
E.displayName = s.TRIGGER;
|
|
126
|
+
const i = $;
|
|
127
|
+
i.Checkbox = g;
|
|
128
|
+
i.Content = T;
|
|
129
|
+
i.Group = v;
|
|
130
|
+
i.Item = x;
|
|
131
|
+
i.Separator = f;
|
|
132
|
+
i.Trigger = E;
|
|
133
|
+
export {
|
|
134
|
+
i as Menu
|
|
135
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{--pagination-button-radius: var(--radius-2);--pagination-active-bg: var(--color-background-brand);--pagination-active-text: var(--color-text-on-brand);--pagination-button-bg: transparent;--pagination-button-text: var(--color-text-secondary);--pagination-button-bg-hover: var(--color-background-secondary);--pagination-button-text-hover: var(--color-text-primary);--pagination-button-disabled-bg: transparent;--pagination-button-disabled-text: var(--color-text-disabled);--pagination-focus-ring: var(--color-border-focus)}._button_r1eh7_14{align-items:center;background:var(--pagination-button-bg);border:none;border-radius:var(--pagination-button-radius);color:var(--pagination-button-text);cursor:pointer;display:flex;justify-content:center;line-height:1;outline-offset:2px;padding:0;transition:background-color .15s,color .15s;-webkit-user-select:none;user-select:none}._button_r1eh7_14:focus-visible{outline:2px solid var(--pagination-focus-ring)}._button_r1eh7_14:hover:not(:disabled){background:var(--pagination-button-bg-hover);color:var(--pagination-button-text-hover)}._button_r1eh7_14:disabled{cursor:not-allowed;pointer-events:none}._button_r1eh7_14._active_r1eh7_40{background:var(--pagination-active-bg);color:var(--pagination-active-text)}._button_r1eh7_14._prevNext_r1eh7_44{font-size:1.2em;line-height:1}._sizeSm_r1eh7_49._button_r1eh7_14{font-size:var(--font-size-sm);height:var(--space-7);min-width:var(--space-7)}._sizeMd_r1eh7_55._button_r1eh7_14{font-size:var(--font-size-sm);height:var(--space-8);min-width:var(--space-8)}._sizeLg_r1eh7_61._button_r1eh7_14{font-size:var(--font-size-md);height:var(--space-10);min-width:var(--space-10)}:root{--pagination-gap: var(--space-1);--pagination-ellipsis-color: var(--color-text-tertiary)}._root_1tb09_6{align-items:center;display:flex;flex-direction:row;gap:var(--pagination-gap)}._disabled_1tb09_13{opacity:.5;pointer-events:none}._ellipsis_1tb09_18{align-items:center;color:var(--pagination-ellipsis-color);display:flex;justify-content:center;pointer-events:none;-webkit-user-select:none;user-select:none}._sizeSm_1tb09_27._ellipsis_1tb09_18{font-size:var(--font-size-sm);height:var(--space-7);min-width:var(--space-7)}._sizeMd_1tb09_33._ellipsis_1tb09_18{font-size:var(--font-size-sm);height:var(--space-8);min-width:var(--space-8)}._sizeLg_1tb09_39._ellipsis_1tb09_18{font-size:var(--font-size-md);height:var(--space-10);min-width:var(--space-10)}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { default as default_2 } from 'react';
|
|
2
|
+
|
|
3
|
+
declare enum EPaginationSize {
|
|
4
|
+
SM = "sm",
|
|
5
|
+
MD = "md",
|
|
6
|
+
LG = "lg"
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export declare interface IPaginationProps {
|
|
10
|
+
/** Current active page (1-indexed). */
|
|
11
|
+
page: number;
|
|
12
|
+
/** Total number of pages. */
|
|
13
|
+
totalPages: number;
|
|
14
|
+
/** Callback when page changes. */
|
|
15
|
+
onChange?: (page: number) => void;
|
|
16
|
+
/** Whether prev/next buttons are visible. Default: `true`. */
|
|
17
|
+
showPrevNext?: boolean;
|
|
18
|
+
/** Size variant. Default: `'md'`. */
|
|
19
|
+
size?: TPaginationSize;
|
|
20
|
+
/** Disables all interactions. */
|
|
21
|
+
disabled?: boolean;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Pagination component. Renders a set of page buttons for navigating
|
|
26
|
+
* paginated content. Supports prev/next controls, size variants, and
|
|
27
|
+
* disabled state. Uses ellipsis for large page ranges.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```tsx
|
|
31
|
+
* <Pagination page={1} totalPages={20} onChange={(p) => console.log(p)} />
|
|
32
|
+
* <Pagination page={5} totalPages={10} size="sm" showPrevNext={false} />
|
|
33
|
+
* <Pagination page={1} totalPages={5} disabled />
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare const Pagination: default_2.FC<IPaginationProps>;
|
|
37
|
+
|
|
38
|
+
export declare type TPaginationSize = `${EPaginationSize.SM | EPaginationSize.MD | EPaginationSize.LG}`;
|
|
39
|
+
|
|
40
|
+
export { }
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { jsx as d, jsxs as M } from "react/jsx-runtime";
|
|
2
|
+
import { createContext as N, useContext as L, useMemo as S, useCallback as y } from "react";
|
|
3
|
+
import { c as f } from "./clsx-OuTLNxxd.mjs";
|
|
4
|
+
import { u as x } from "./useLocale-D2Z0JH0l.mjs";
|
|
5
|
+
import { g as C } from "./getVariantClassName-D7Nhpuec.mjs";
|
|
6
|
+
import './pagination.css';const v = N(null), R = v.Provider, w = () => {
|
|
7
|
+
const t = L(v);
|
|
8
|
+
if (!t)
|
|
9
|
+
throw new Error("Pagination sub-component must be used within a Pagination");
|
|
10
|
+
return t;
|
|
11
|
+
}, $ = "_button_r1eh7_14", E = "_active_r1eh7_40", I = "_prevNext_r1eh7_44", A = "_sizeSm_r1eh7_49", j = "_sizeMd_r1eh7_55", k = "_sizeLg_r1eh7_61", b = {
|
|
12
|
+
button: $,
|
|
13
|
+
active: E,
|
|
14
|
+
prevNext: I,
|
|
15
|
+
sizeSm: A,
|
|
16
|
+
sizeMd: j,
|
|
17
|
+
sizeLg: k
|
|
18
|
+
}, z = (t) => {
|
|
19
|
+
const { page: e, type: a = "page", children: n } = t, { currentPage: r, totalPages: l, disabled: s, onChange: g, size: u } = w(), i = x(), c = e === r, o = s || e < 1 || e > l || c;
|
|
20
|
+
let p, _;
|
|
21
|
+
a === "prev" ? (p = i.pagination.prev, _ = n ?? "‹") : a === "next" ? (p = i.pagination.next, _ = n ?? "›") : (p = i.pagination.page.replace("{page}", String(e)), _ = n ?? e);
|
|
22
|
+
const P = f(b.button, C("size", u, b), {
|
|
23
|
+
[b.active]: c,
|
|
24
|
+
[b.prevNext]: a !== "page"
|
|
25
|
+
});
|
|
26
|
+
return /* @__PURE__ */ d(
|
|
27
|
+
"button",
|
|
28
|
+
{
|
|
29
|
+
"aria-current": c ? "page" : void 0,
|
|
30
|
+
"aria-label": p,
|
|
31
|
+
className: P,
|
|
32
|
+
disabled: o,
|
|
33
|
+
onClick: () => g(e),
|
|
34
|
+
type: "button",
|
|
35
|
+
children: _
|
|
36
|
+
}
|
|
37
|
+
);
|
|
38
|
+
}, B = "Pagination", m = (t, e) => Array.from({ length: e - t + 1 }, (a, n) => t + n), D = (t, e) => {
|
|
39
|
+
if (e <= 7)
|
|
40
|
+
return m(1, e);
|
|
41
|
+
const r = Math.max(t - 1, 1), l = Math.min(t + 1, e), s = r > 2, g = l < e - 1;
|
|
42
|
+
if (!s && g) {
|
|
43
|
+
const i = Math.min(l + 1, e);
|
|
44
|
+
return [...m(1, i), "ellipsis", e];
|
|
45
|
+
}
|
|
46
|
+
if (s && !g) {
|
|
47
|
+
const i = Math.max(r - 1, 1);
|
|
48
|
+
return [1, "ellipsis", ...m(i, e)];
|
|
49
|
+
}
|
|
50
|
+
return [1, "ellipsis", ...m(r, l), "ellipsis", e];
|
|
51
|
+
}, V = "_root_1tb09_6", Y = "_disabled_1tb09_13", q = "_ellipsis_1tb09_18", F = "_sizeSm_1tb09_27", G = "_sizeMd_1tb09_33", H = "_sizeLg_1tb09_39", h = {
|
|
52
|
+
root: V,
|
|
53
|
+
disabled: Y,
|
|
54
|
+
ellipsis: q,
|
|
55
|
+
sizeSm: F,
|
|
56
|
+
sizeMd: G,
|
|
57
|
+
sizeLg: H
|
|
58
|
+
}, J = (t) => {
|
|
59
|
+
const { disabled: e = !1, onChange: a, page: n, showPrevNext: r = !0, size: l = "md", totalPages: s } = t, g = x(), u = S(() => D(n, s), [n, s]), i = y(
|
|
60
|
+
(o) => {
|
|
61
|
+
e || o < 1 || o > s || a?.(o);
|
|
62
|
+
},
|
|
63
|
+
[e, a, s]
|
|
64
|
+
), c = f(h.root, C("size", l, h), { [h.disabled]: e });
|
|
65
|
+
return /* @__PURE__ */ d(R, { value: { currentPage: n, disabled: e, onChange: i, size: l, totalPages: s }, children: /* @__PURE__ */ M("nav", { "aria-label": g.pagination.pagination, className: c, children: [
|
|
66
|
+
r && /* @__PURE__ */ d(z, { page: n - 1, type: "prev" }),
|
|
67
|
+
u.map((o, p) => o === "ellipsis" ? /* @__PURE__ */ d("span", { "aria-hidden": "true", className: h.ellipsis, children: "…" }, `ellipsis-${p}`) : /* @__PURE__ */ d(z, { page: o, type: "page" }, o)),
|
|
68
|
+
r && /* @__PURE__ */ d(z, { page: n + 1, type: "next" })
|
|
69
|
+
] }) });
|
|
70
|
+
};
|
|
71
|
+
J.displayName = B;
|
|
72
|
+
export {
|
|
73
|
+
J as Pagination
|
|
74
|
+
};
|
package/dist/popover.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{--popover-bg: var(--color-background-primary);--popover-radius: var(--radius-2);--popover-shadow: var(--shadow-md);--popover-padding: var(--space-4);--popover-border: var(--color-border-primary);--popover-z-index: 1000}._content_qcofp_10{background:var(--popover-bg);border:1px solid var(--popover-border);border-radius:var(--popover-radius);box-shadow:var(--popover-shadow);outline:none;padding:var(--popover-padding);z-index:var(--popover-z-index)}._content_qcofp_10[data-placement*=bottom]{animation:_popover-enter-bottom_qcofp_1 .15s ease-out}._content_qcofp_10[data-placement*=top]{animation:_popover-enter-top_qcofp_1 .15s ease-out}._content_qcofp_10[data-placement*=left]{animation:_popover-enter-left_qcofp_1 .15s ease-out}._content_qcofp_10[data-placement*=right]{animation:_popover-enter-right_qcofp_1 .15s ease-out}._noPadding_qcofp_32{padding:0}@keyframes _popover-enter-bottom_qcofp_1{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes _popover-enter-top_qcofp_1{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes _popover-enter-left_qcofp_1{0%{opacity:0;transform:translate(4px)}to{opacity:1;transform:translate(0)}}@keyframes _popover-enter-right_qcofp_1{0%{opacity:0;transform:translate(-4px)}to{opacity:1;transform:translate(0)}}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { default as default_2 } from 'react';
|
|
2
|
+
import { OverlayTriggerState } from 'react-stately';
|
|
3
|
+
import { Placement } from 'react-aria';
|
|
4
|
+
|
|
5
|
+
export declare interface IContentProps extends default_2.PropsWithChildren {
|
|
6
|
+
/** Whether content has padding. Default: `true`. */
|
|
7
|
+
padding?: boolean;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
declare interface IPopoverContext {
|
|
11
|
+
triggerRef: default_2.RefObject<HTMLElement | null>;
|
|
12
|
+
state: OverlayTriggerState;
|
|
13
|
+
placement: Placement;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export declare interface IPopoverProps extends default_2.PropsWithChildren {
|
|
17
|
+
/** Controlled open state. */
|
|
18
|
+
open?: boolean;
|
|
19
|
+
/** Callback when open state changes. */
|
|
20
|
+
onOpenChange?: (isOpen: boolean) => void;
|
|
21
|
+
/** Placement relative to trigger. All useOverlayPosition placements are supported. Default: `'bottom'`. */
|
|
22
|
+
placement?: Placement;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
declare interface IProps extends default_2.PropsWithChildren {
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export declare const Popover: TPopoverCompoundComponent;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Popover container. Manages open/close state and provides context to `Popover.Trigger` and `Popover.Content`.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```tsx
|
|
35
|
+
* <Popover placement="bottom-start">
|
|
36
|
+
* <Popover.Trigger>
|
|
37
|
+
* <Button>Open</Button>
|
|
38
|
+
* </Popover.Trigger>
|
|
39
|
+
* <Popover.Content>
|
|
40
|
+
* <div style={{ padding: 8 }}>Content</div>
|
|
41
|
+
* </Popover.Content>
|
|
42
|
+
* </Popover>
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
declare const Popover_2: default_2.FC<IPopoverProps>;
|
|
46
|
+
|
|
47
|
+
declare type TPopoverCompoundComponent = typeof Popover_2 & {
|
|
48
|
+
Trigger: default_2.FC<IProps>;
|
|
49
|
+
Content: default_2.FC<IContentProps>;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export declare const usePopoverContext: () => IPopoverContext;
|
|
53
|
+
|
|
54
|
+
export { }
|