@dimasbaguspm/versaur 0.0.31 → 0.0.33
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/js/{bottom-sheet-3W_vCYl6.js → bottom-sheet-B3Rt2JC5.js} +2 -3
- package/dist/js/{bottom-sheet-input-CI-9wYa7.js → bottom-sheet-input-DRcyjeGh.js} +2 -2
- package/dist/js/forms/index.js +1 -1
- package/dist/js/{image-rectangle-BpMI_fTE.js → image-rectangle-oPc5hFMM.js} +419 -232
- package/dist/js/index.js +43 -42
- package/dist/js/layouts/index.js +1 -1
- package/dist/js/navigation/index.js +1 -1
- package/dist/js/overlays/index.js +7 -6
- package/dist/js/primitive/index.js +21 -20
- package/dist/js/{tabs-BOdkXJdy.js → tabs-CKLbsCWq.js} +1 -1
- package/dist/js/tooltip-DNKTNCQm.js +81 -0
- package/dist/js/{top-bar-sahvpzBv.js → top-bar-Bg-zMaFY.js} +4 -4
- package/dist/types/overlays/menu/types.d.ts +5 -0
- package/dist/types/overlays/menu/use-menu.d.ts +15 -0
- package/dist/types/primitive/button-menu-icon/button-menu-icon.d.ts +4 -0
- package/dist/types/primitive/button-menu-icon/index.d.ts +2 -0
- package/dist/types/primitive/{button-menu → button-menu-icon}/types.d.ts +2 -2
- package/dist/types/primitive/index.d.ts +1 -0
- package/dist/utils/enforce-subpath-import.js +1 -1
- package/package.json +1 -1
- package/dist/js/tooltip-C1P1eN0U.js +0 -156
- package/dist/types/primitive/button-menu/button-menu.d.ts +0 -4
- package/dist/types/primitive/button-menu/index.d.ts +0 -2
package/dist/js/index.js
CHANGED
|
@@ -1,33 +1,34 @@
|
|
|
1
|
-
import { L as
|
|
2
|
-
import { A as n, a as p, B as u, b as i, F as l, e as I, P as c, c as S, d as m, S as B, T as g } from "./top-bar-
|
|
3
|
-
import { B as b, C as T, b as x, a as h, D as f, k as C, E as P, M
|
|
4
|
-
import { B as q, D as H, M as z } from "./bottom-sheet-
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { S as
|
|
8
|
-
import { B as
|
|
9
|
-
import { S as
|
|
1
|
+
import { L as e, P as s, S as r } from "./skeleton-BNZyaRjo.js";
|
|
2
|
+
import { A as n, a as p, B as u, b as i, F as l, e as I, P as c, c as S, d as m, S as B, T as g } from "./top-bar-Bg-zMaFY.js";
|
|
3
|
+
import { B as b, C as T, b as x, a as h, D as f, k as C, E as P, M, P as k, R as A, d as F, c as D, S as L, e as R, j as w, i as G, h as j, f as v, T as y, g as E } from "./bottom-sheet-input-DRcyjeGh.js";
|
|
4
|
+
import { B as q, D as H, M as z } from "./bottom-sheet-B3Rt2JC5.js";
|
|
5
|
+
import { A as K, a as O, b as Q, c as U, d as V, B as W, p as X, e as Y, f as Z, h as _, i as $, g as aa, C as ta, j as ea, F as sa, I as ra, m as oa, o as na, n as pa, M as ua, N as ia, T as la, k as Ia, l as ca } from "./image-rectangle-oPc5hFMM.js";
|
|
6
|
+
import { T as ma } from "./tooltip-DNKTNCQm.js";
|
|
7
|
+
import { S as ga } from "./snackbar-DH8jCh2V.js";
|
|
8
|
+
import { B as ba, T as Ta } from "./tabs-CKLbsCWq.js";
|
|
9
|
+
import { S as ha, u as fa } from "./use-snackbars-B0MaRlg1.js";
|
|
10
10
|
export {
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
K as Alert,
|
|
12
|
+
O as Anchor,
|
|
13
13
|
n as AppBar,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
Q as Attribute,
|
|
15
|
+
U as AttributeList,
|
|
16
|
+
V as Avatar,
|
|
17
|
+
W as Badge,
|
|
18
18
|
p as BadgeGroup,
|
|
19
|
-
|
|
19
|
+
X as BaseImage,
|
|
20
20
|
u as BottomBar,
|
|
21
21
|
q as BottomSheet,
|
|
22
22
|
b as BottomSheetInput,
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
Y as Brand,
|
|
24
|
+
ba as Breadcrumbs,
|
|
25
|
+
Z as Button,
|
|
26
|
+
_ as ButtonFloat,
|
|
27
27
|
i as ButtonGroup,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
$ as ButtonIcon,
|
|
29
|
+
aa as ButtonMenuIcon,
|
|
30
|
+
ta as Calculator,
|
|
31
|
+
ea as Card,
|
|
31
32
|
T as CheckboxInput,
|
|
32
33
|
x as ChipMultipleInput,
|
|
33
34
|
h as ChipSingleInput,
|
|
@@ -35,24 +36,24 @@ export {
|
|
|
35
36
|
H as Drawer,
|
|
36
37
|
C as DrawerInput,
|
|
37
38
|
P as EmailInput,
|
|
38
|
-
|
|
39
|
+
sa as FilterChip,
|
|
39
40
|
l as FilterChipGroup,
|
|
40
41
|
I as FormLayout,
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
42
|
+
ra as Icon,
|
|
43
|
+
oa as ImageCircle,
|
|
44
|
+
na as ImageRectangle,
|
|
45
|
+
pa as ImageSquare,
|
|
46
|
+
e as LoadingIndicator,
|
|
47
|
+
ua as Menu,
|
|
47
48
|
z as Modal,
|
|
48
|
-
|
|
49
|
-
|
|
49
|
+
M as ModalInput,
|
|
50
|
+
ia as NoResults,
|
|
50
51
|
c as PageContent,
|
|
51
52
|
S as PageHeader,
|
|
52
53
|
m as PageLayout,
|
|
53
|
-
|
|
54
|
+
k as PriceInput,
|
|
54
55
|
s as ProgressIndicator,
|
|
55
|
-
|
|
56
|
+
A as RadioInput,
|
|
56
57
|
F as SearchInput,
|
|
57
58
|
D as SegmentMultipleInput,
|
|
58
59
|
L as SegmentSingleInput,
|
|
@@ -61,17 +62,17 @@ export {
|
|
|
61
62
|
G as SelectableSingleInput,
|
|
62
63
|
B as SideBar,
|
|
63
64
|
r as Skeleton,
|
|
64
|
-
|
|
65
|
-
|
|
65
|
+
ga as Snackbar,
|
|
66
|
+
ha as SnackbarsProvider,
|
|
66
67
|
j as SwitchInput,
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
la as Table,
|
|
69
|
+
Ta as Tabs,
|
|
70
|
+
Ia as Text,
|
|
70
71
|
v as TextAreaInput,
|
|
71
72
|
y as TextInput,
|
|
72
|
-
|
|
73
|
+
ca as Tile,
|
|
73
74
|
E as TimePickerInput,
|
|
74
|
-
|
|
75
|
+
ma as Tooltip,
|
|
75
76
|
g as TopBar,
|
|
76
|
-
|
|
77
|
+
fa as useSnackbars
|
|
77
78
|
};
|
package/dist/js/layouts/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as r, a as e, B as s, b as t, F as p, e as B, P as u, c as d, d as g, S as P, T as i } from "../top-bar-
|
|
1
|
+
import { A as r, a as e, B as s, b as t, F as p, e as B, P as u, c as d, d as g, S as P, T as i } from "../top-bar-Bg-zMaFY.js";
|
|
2
2
|
export {
|
|
3
3
|
r as AppBar,
|
|
4
4
|
e as BadgeGroup,
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { B as
|
|
2
|
-
import { M
|
|
1
|
+
import { B as a, D as e, M as t } from "../bottom-sheet-B3Rt2JC5.js";
|
|
2
|
+
import { M as m } from "../image-rectangle-oPc5hFMM.js";
|
|
3
|
+
import { T as M } from "../tooltip-DNKTNCQm.js";
|
|
3
4
|
export {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
a as BottomSheet,
|
|
6
|
+
e as Drawer,
|
|
7
|
+
m as Menu,
|
|
7
8
|
t as Modal,
|
|
8
|
-
|
|
9
|
+
M as Tooltip
|
|
9
10
|
};
|
|
@@ -1,27 +1,28 @@
|
|
|
1
|
-
import { A as t, a as e, b as
|
|
2
|
-
import { S } from "../snackbar-DH8jCh2V.js";
|
|
1
|
+
import { A as t, a as e, b as o, c as r, d as n, B as l, p as u, e as c, f as i, h as B, i as I, g, C as m, j as A, F as b, I as C, m as d, o as p, n as T, N as f, T as h, k as x, l as F } from "../image-rectangle-oPc5hFMM.js";
|
|
2
|
+
import { S as k } from "../snackbar-DH8jCh2V.js";
|
|
3
3
|
export {
|
|
4
4
|
t as Alert,
|
|
5
5
|
e as Anchor,
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
A as
|
|
18
|
-
b as
|
|
19
|
-
C as
|
|
20
|
-
d as
|
|
6
|
+
o as Attribute,
|
|
7
|
+
r as AttributeList,
|
|
8
|
+
n as Avatar,
|
|
9
|
+
l as Badge,
|
|
10
|
+
u as BaseImage,
|
|
11
|
+
c as Brand,
|
|
12
|
+
i as Button,
|
|
13
|
+
B as ButtonFloat,
|
|
14
|
+
I as ButtonIcon,
|
|
15
|
+
g as ButtonMenuIcon,
|
|
16
|
+
m as Calculator,
|
|
17
|
+
A as Card,
|
|
18
|
+
b as FilterChip,
|
|
19
|
+
C as Icon,
|
|
20
|
+
d as ImageCircle,
|
|
21
|
+
p as ImageRectangle,
|
|
21
22
|
T as ImageSquare,
|
|
22
23
|
f as NoResults,
|
|
23
|
-
|
|
24
|
+
k as Snackbar,
|
|
24
25
|
h as Table,
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
x as Text,
|
|
27
|
+
F as Tile
|
|
27
28
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { c as d, j as s, a as u } from "./index-DOdDlCoL.js";
|
|
2
2
|
import { forwardRef as f, createContext as x, useContext as g, useState as p, useLayoutEffect as y, useRef as h } from "react";
|
|
3
|
-
import { I as w } from "./image-rectangle-
|
|
3
|
+
import { I as w } from "./image-rectangle-oPc5hFMM.js";
|
|
4
4
|
import "./snackbar-DH8jCh2V.js";
|
|
5
5
|
import { ChevronRight as T } from "lucide-react";
|
|
6
6
|
const j = d(
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { c as v, j as c, a as w } from "./index-DOdDlCoL.js";
|
|
2
|
+
import { useRef as m, useState as d, useEffect as h, useId as T, cloneElement as j } from "react";
|
|
3
|
+
import { k as y } from "./image-rectangle-oPc5hFMM.js";
|
|
4
|
+
function P(e = "auto") {
|
|
5
|
+
const n = m(null), [a, t] = d("bottom");
|
|
6
|
+
return h(() => {
|
|
7
|
+
if (!open || e !== "auto" || !n.current) {
|
|
8
|
+
t(e === "auto" ? "bottom" : e);
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
const o = n.current.getBoundingClientRect(), l = window.innerWidth, r = window.innerHeight, i = {
|
|
12
|
+
top: o.top,
|
|
13
|
+
bottom: r - o.bottom,
|
|
14
|
+
left: o.left,
|
|
15
|
+
right: l - o.right
|
|
16
|
+
};
|
|
17
|
+
i.bottom > 64 ? t("bottom") : i.top > 64 ? t("top") : i.right > 128 ? t("right") : t("left");
|
|
18
|
+
}, [e, n]), { position: a, ref: n };
|
|
19
|
+
}
|
|
20
|
+
const E = v(
|
|
21
|
+
"absolute z-50 px-2 py-1 rounded bg-neutral pointer-events-auto transition-opacity duration-150 min-w-[max-content] max-w-sm whitespace-pre-line",
|
|
22
|
+
{
|
|
23
|
+
variants: {
|
|
24
|
+
position: {
|
|
25
|
+
top: "bottom-full left-1/2 -translate-x-1/2 mb-2",
|
|
26
|
+
bottom: "top-full left-1/2 -translate-x-1/2 mt-2",
|
|
27
|
+
left: "right-full top-1/2 -translate-y-1/2 mr-2",
|
|
28
|
+
right: "left-full top-1/2 -translate-y-1/2 ml-2",
|
|
29
|
+
auto: "top-full left-1/2 -translate-x-1/2 mt-2"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
defaultVariants: {
|
|
33
|
+
position: "auto"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
), O = ({
|
|
37
|
+
children: e,
|
|
38
|
+
content: n,
|
|
39
|
+
position: a = "auto",
|
|
40
|
+
popoverClassName: t,
|
|
41
|
+
delay: o,
|
|
42
|
+
...l
|
|
43
|
+
}) => {
|
|
44
|
+
const r = T(), [i, u] = d(!1), s = m(null), p = () => {
|
|
45
|
+
o ? s.current = setTimeout(() => u(!0), o) : u(!0);
|
|
46
|
+
}, f = () => {
|
|
47
|
+
s.current && clearTimeout(s.current), u(!1);
|
|
48
|
+
};
|
|
49
|
+
h(() => () => {
|
|
50
|
+
s.current && clearTimeout(s.current);
|
|
51
|
+
}, []);
|
|
52
|
+
const b = {
|
|
53
|
+
tabIndex: 0,
|
|
54
|
+
"aria-describedby": r,
|
|
55
|
+
onMouseEnter: p,
|
|
56
|
+
onFocus: p,
|
|
57
|
+
onMouseLeave: f,
|
|
58
|
+
onBlur: f,
|
|
59
|
+
...l
|
|
60
|
+
}, { ref: x, position: g } = P(a);
|
|
61
|
+
return /* @__PURE__ */ c.jsxs("div", { className: "relative w-fit", ref: x, children: [
|
|
62
|
+
j(e, b),
|
|
63
|
+
/* @__PURE__ */ c.jsx(
|
|
64
|
+
"div",
|
|
65
|
+
{
|
|
66
|
+
id: r,
|
|
67
|
+
className: w(
|
|
68
|
+
E({ position: g }),
|
|
69
|
+
t,
|
|
70
|
+
!i && "opacity-0 pointer-events-none"
|
|
71
|
+
),
|
|
72
|
+
role: "tooltip",
|
|
73
|
+
"aria-hidden": !i,
|
|
74
|
+
children: /* @__PURE__ */ c.jsx(y, { as: "p", fontSize: "xs", fontWeight: "normal", color: "black", children: n })
|
|
75
|
+
}
|
|
76
|
+
)
|
|
77
|
+
] });
|
|
78
|
+
};
|
|
79
|
+
export {
|
|
80
|
+
O as T
|
|
81
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { c as i, j as s, a as l } from "./index-DOdDlCoL.js";
|
|
2
2
|
import * as b from "react";
|
|
3
3
|
import { forwardRef as o } from "react";
|
|
4
|
-
import {
|
|
4
|
+
import { k as u } from "./image-rectangle-oPc5hFMM.js";
|
|
5
5
|
import "./snackbar-DH8jCh2V.js";
|
|
6
6
|
const j = i(
|
|
7
7
|
"w-full flex flex-wrap items-center pt-3 mb-3 gap-2 bg-white [&>[data-versaur-appbar-bottom]]:basis-full [&>[data-versaur-appbar-bottom]]:w-full [&:has([data-versaur-appbar-bottom])>[data-versaur-appbar-leading]]:pl-4 [&:has([data-versaur-appbar-bottom])>[data-versaur-appbar-trailing]]:pr-4 [&:not(:has([data-versaur-appbar-bottom]))]:px-4",
|
|
@@ -374,7 +374,7 @@ const j = i(
|
|
|
374
374
|
children: t
|
|
375
375
|
}
|
|
376
376
|
)
|
|
377
|
-
),
|
|
377
|
+
), k = i("w-full mt-4"), I = i(
|
|
378
378
|
"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-4 px-4 sm:px-6 mb-4"
|
|
379
379
|
), F = i("mb-4 px-4 sm:px-6"), O = i(
|
|
380
380
|
"flex-1 min-w-0 flex flex-col gap-2 w-full sm:w-auto"
|
|
@@ -387,7 +387,7 @@ const j = i(
|
|
|
387
387
|
"div",
|
|
388
388
|
{
|
|
389
389
|
ref: r,
|
|
390
|
-
className: l(
|
|
390
|
+
className: l(I(), a),
|
|
391
391
|
"data-versaur-page-header-top": !0,
|
|
392
392
|
...e,
|
|
393
393
|
children: t
|
|
@@ -486,7 +486,7 @@ const j = i(
|
|
|
486
486
|
"header",
|
|
487
487
|
{
|
|
488
488
|
ref: g,
|
|
489
|
-
className: l(
|
|
489
|
+
className: l(k(), a),
|
|
490
490
|
role: "banner",
|
|
491
491
|
...f,
|
|
492
492
|
children: [
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { HTMLAttributes, ReactNode } from 'react';
|
|
2
2
|
export type MenuSize = 'sm' | 'md';
|
|
3
|
+
export type MenuPlacement = 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end' | 'auto';
|
|
3
4
|
/**
|
|
4
5
|
* Props for Menu
|
|
5
6
|
*/
|
|
@@ -14,6 +15,10 @@ export interface MenuProps {
|
|
|
14
15
|
content: ReactNode;
|
|
15
16
|
/** Trigger element */
|
|
16
17
|
children: ReactNode;
|
|
18
|
+
/** Preferred placement of the menu relative to trigger */
|
|
19
|
+
placement?: MenuPlacement;
|
|
20
|
+
/** Container element to respect boundaries (defaults to viewport) */
|
|
21
|
+
container?: HTMLElement | null;
|
|
17
22
|
}
|
|
18
23
|
/**
|
|
19
24
|
* Props for MenuContent
|
|
@@ -1 +1,16 @@
|
|
|
1
|
+
import { MenuPlacement } from './types';
|
|
1
2
|
export declare function useMenuOutsideClick(isOpen: boolean, contentRef: React.RefObject<HTMLDivElement | null>, triggerRef: React.RefObject<HTMLButtonElement | null>, onOutsideClick: () => void): void;
|
|
3
|
+
/**
|
|
4
|
+
* Menu-specific escape close hook that doesn't disable body scrolling
|
|
5
|
+
*/
|
|
6
|
+
export declare function useMenuEscapeClose(isOpen: boolean, onClose: () => void): void;
|
|
7
|
+
interface MenuPosition {
|
|
8
|
+
top?: number;
|
|
9
|
+
bottom?: number;
|
|
10
|
+
left?: number;
|
|
11
|
+
right?: number;
|
|
12
|
+
maxHeight?: number;
|
|
13
|
+
maxWidth?: number;
|
|
14
|
+
}
|
|
15
|
+
export declare function useMenuPosition(isOpen: boolean, triggerRef: React.RefObject<HTMLElement | null>, contentRef: React.RefObject<HTMLDivElement | null>, placement?: MenuPlacement, container?: HTMLElement | null): MenuPosition;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ButtonMenuIconProps } from './types';
|
|
2
|
+
export declare const ButtonMenuIcon: import('react').ForwardRefExoticComponent<ButtonMenuIconProps & import('react').RefAttributes<HTMLButtonElement>> & {
|
|
3
|
+
Item: import('react').ForwardRefExoticComponent<import('../../overlays/menu/types').MenuItemProps & import('react').RefAttributes<HTMLLIElement>>;
|
|
4
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
2
|
import { IconProps } from '../icon';
|
|
3
3
|
import { ButtonIconProps } from '../button-icon';
|
|
4
|
-
export interface
|
|
4
|
+
export interface ButtonMenuIconProps extends Omit<ButtonIconProps, 'content'>, Pick<IconProps, 'as'> {
|
|
5
5
|
/**
|
|
6
6
|
* Callback function triggered when the menu open state changes.
|
|
7
7
|
*/
|
|
@@ -9,5 +9,5 @@ export interface ButtonMenuProps extends Omit<ButtonIconProps, 'content'>, Pick<
|
|
|
9
9
|
/**
|
|
10
10
|
* The content to be displayed inside the menu.
|
|
11
11
|
*/
|
|
12
|
-
|
|
12
|
+
children: ReactNode;
|
|
13
13
|
}
|
|
@@ -55,7 +55,7 @@ const symbolToSubpath = {
|
|
|
55
55
|
"Button": "primitive",
|
|
56
56
|
"ButtonFloat": "primitive",
|
|
57
57
|
"ButtonIcon": "primitive",
|
|
58
|
-
"
|
|
58
|
+
"ButtonMenuIcon": "primitive",
|
|
59
59
|
"Calculator": "primitive",
|
|
60
60
|
"Card": "primitive",
|
|
61
61
|
"FilterChip": "primitive",
|
package/package.json
CHANGED
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
import { c as h, j as i, a as f } from "./index-DOdDlCoL.js";
|
|
2
|
-
import { useEffect as p, forwardRef as b, useRef as c, useId as g, cloneElement as v, useState as w } from "react";
|
|
3
|
-
import { u as T } from "./bottom-sheet-3W_vCYl6.js";
|
|
4
|
-
import { f as E, j as I } from "./image-rectangle-BpMI_fTE.js";
|
|
5
|
-
import "./snackbar-DH8jCh2V.js";
|
|
6
|
-
const C = h(
|
|
7
|
-
"absolute z-70 min-w-40 bg-background rounded-lg border border-border transition-all duration-200 ease-out will-change-transform",
|
|
8
|
-
{
|
|
9
|
-
variants: {
|
|
10
|
-
size: {
|
|
11
|
-
sm: "py-1.5 px-1",
|
|
12
|
-
md: "py-2 px-1"
|
|
13
|
-
},
|
|
14
|
-
open: {
|
|
15
|
-
true: "opacity-100 translate-y-1",
|
|
16
|
-
false: "opacity-0 pointer-events-none translate-y-3"
|
|
17
|
-
}
|
|
18
|
-
},
|
|
19
|
-
defaultVariants: {
|
|
20
|
-
size: "md",
|
|
21
|
-
open: !1
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
);
|
|
25
|
-
function N(t, e, r, o) {
|
|
26
|
-
p(() => {
|
|
27
|
-
if (!t) return;
|
|
28
|
-
function n(s) {
|
|
29
|
-
!e.current?.contains(s.target) && !r.current?.contains(s.target) && o();
|
|
30
|
-
}
|
|
31
|
-
return document.addEventListener("mousedown", n), () => document.removeEventListener("mousedown", n);
|
|
32
|
-
}, [t, o, e, r]);
|
|
33
|
-
}
|
|
34
|
-
const R = b(
|
|
35
|
-
({ children: t }, e) => /* @__PURE__ */ i.jsx("ul", { ref: e, className: "flex flex-col gap-1", children: t })
|
|
36
|
-
), z = b(
|
|
37
|
-
({ children: t, disabled: e, ...r }, o) => /* @__PURE__ */ i.jsx("li", { ref: o, ...r, children: /* @__PURE__ */ i.jsx(
|
|
38
|
-
E,
|
|
39
|
-
{
|
|
40
|
-
variant: "ghost",
|
|
41
|
-
className: f("block text-left w-full"),
|
|
42
|
-
disabled: e,
|
|
43
|
-
children: t
|
|
44
|
-
}
|
|
45
|
-
) })
|
|
46
|
-
), P = ({
|
|
47
|
-
isOpen: t,
|
|
48
|
-
onOutsideClick: e,
|
|
49
|
-
size: r = "md",
|
|
50
|
-
content: o,
|
|
51
|
-
children: n
|
|
52
|
-
}) => {
|
|
53
|
-
const s = c(null), l = c(null), a = g();
|
|
54
|
-
return N(t, l, s, e), T(t, e), /* @__PURE__ */ i.jsxs("div", { className: "relative w-fit", children: [
|
|
55
|
-
v(n, {
|
|
56
|
-
// @ts-expect-error: ref is valid for button or forwardRef components
|
|
57
|
-
ref: s,
|
|
58
|
-
"aria-haspopup": "menu",
|
|
59
|
-
"aria-expanded": t,
|
|
60
|
-
"aria-controls": a
|
|
61
|
-
}),
|
|
62
|
-
t && /* @__PURE__ */ i.jsx(
|
|
63
|
-
"div",
|
|
64
|
-
{
|
|
65
|
-
id: a,
|
|
66
|
-
ref: l,
|
|
67
|
-
className: f(C({ size: r, open: t })),
|
|
68
|
-
role: "menu",
|
|
69
|
-
"aria-hidden": !t,
|
|
70
|
-
children: o
|
|
71
|
-
}
|
|
72
|
-
)
|
|
73
|
-
] });
|
|
74
|
-
}, H = Object.assign(P, {
|
|
75
|
-
Content: R,
|
|
76
|
-
Item: z
|
|
77
|
-
});
|
|
78
|
-
function k(t = "auto") {
|
|
79
|
-
const e = c(null), [r, o] = w("bottom");
|
|
80
|
-
return p(() => {
|
|
81
|
-
if (!open || t !== "auto" || !e.current) {
|
|
82
|
-
o(t === "auto" ? "bottom" : t);
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
const n = e.current.getBoundingClientRect(), s = window.innerWidth, l = window.innerHeight, a = {
|
|
86
|
-
top: n.top,
|
|
87
|
-
bottom: l - n.bottom,
|
|
88
|
-
left: n.left,
|
|
89
|
-
right: s - n.right
|
|
90
|
-
};
|
|
91
|
-
a.bottom > 64 ? o("bottom") : a.top > 64 ? o("top") : a.right > 128 ? o("right") : o("left");
|
|
92
|
-
}, [t, e]), { position: r, ref: e };
|
|
93
|
-
}
|
|
94
|
-
const B = h(
|
|
95
|
-
"absolute z-50 px-2 py-1 rounded bg-neutral pointer-events-auto transition-opacity duration-150 min-w-[max-content] max-w-sm whitespace-pre-line",
|
|
96
|
-
{
|
|
97
|
-
variants: {
|
|
98
|
-
position: {
|
|
99
|
-
top: "bottom-full left-1/2 -translate-x-1/2 mb-2",
|
|
100
|
-
bottom: "top-full left-1/2 -translate-x-1/2 mt-2",
|
|
101
|
-
left: "right-full top-1/2 -translate-y-1/2 mr-2",
|
|
102
|
-
right: "left-full top-1/2 -translate-y-1/2 ml-2",
|
|
103
|
-
auto: "top-full left-1/2 -translate-x-1/2 mt-2"
|
|
104
|
-
}
|
|
105
|
-
},
|
|
106
|
-
defaultVariants: {
|
|
107
|
-
position: "auto"
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
), q = ({
|
|
111
|
-
children: t,
|
|
112
|
-
content: e,
|
|
113
|
-
position: r = "auto",
|
|
114
|
-
popoverClassName: o,
|
|
115
|
-
delay: n,
|
|
116
|
-
...s
|
|
117
|
-
}) => {
|
|
118
|
-
const l = g(), [a, m] = w(!1), u = c(null), d = () => {
|
|
119
|
-
n ? u.current = setTimeout(() => m(!0), n) : m(!0);
|
|
120
|
-
}, x = () => {
|
|
121
|
-
u.current && clearTimeout(u.current), m(!1);
|
|
122
|
-
};
|
|
123
|
-
p(() => () => {
|
|
124
|
-
u.current && clearTimeout(u.current);
|
|
125
|
-
}, []);
|
|
126
|
-
const j = {
|
|
127
|
-
tabIndex: 0,
|
|
128
|
-
"aria-describedby": l,
|
|
129
|
-
onMouseEnter: d,
|
|
130
|
-
onFocus: d,
|
|
131
|
-
onMouseLeave: x,
|
|
132
|
-
onBlur: x,
|
|
133
|
-
...s
|
|
134
|
-
}, { ref: y, position: M } = k(r);
|
|
135
|
-
return /* @__PURE__ */ i.jsxs("div", { className: "relative w-fit", ref: y, children: [
|
|
136
|
-
v(t, j),
|
|
137
|
-
/* @__PURE__ */ i.jsx(
|
|
138
|
-
"div",
|
|
139
|
-
{
|
|
140
|
-
id: l,
|
|
141
|
-
className: f(
|
|
142
|
-
B({ position: M }),
|
|
143
|
-
o,
|
|
144
|
-
!a && "opacity-0 pointer-events-none"
|
|
145
|
-
),
|
|
146
|
-
role: "tooltip",
|
|
147
|
-
"aria-hidden": !a,
|
|
148
|
-
children: /* @__PURE__ */ i.jsx(I, { as: "p", fontSize: "xs", fontWeight: "normal", color: "black", children: e })
|
|
149
|
-
}
|
|
150
|
-
)
|
|
151
|
-
] });
|
|
152
|
-
};
|
|
153
|
-
export {
|
|
154
|
-
H as M,
|
|
155
|
-
q as T
|
|
156
|
-
};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { ButtonMenuProps } from './types';
|
|
2
|
-
export declare const ButtonMenu: import('react').ForwardRefExoticComponent<ButtonMenuProps & import('react').RefAttributes<HTMLButtonElement>> & {
|
|
3
|
-
Item: import('react').ForwardRefExoticComponent<import('../../overlays/menu/types').MenuItemProps & import('react').RefAttributes<HTMLLIElement>>;
|
|
4
|
-
};
|