luan-ui 0.5.3 → 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 +7 -3
- package/dist/components/accordion/accordion.d.ts +14 -15
- package/dist/components/accordion/accordion.js +11 -9
- package/dist/components/accordion/accordion.js.map +1 -1
- package/dist/components/alert/alert.d.ts +19 -18
- package/dist/components/alert/alert.js +34 -14
- package/dist/components/alert/alert.js.map +1 -1
- package/dist/components/alert-dialog/alert-dialog.d.ts +14 -9
- package/dist/components/alert-dialog/alert-dialog.js +21 -15
- package/dist/components/alert-dialog/alert-dialog.js.map +1 -1
- package/dist/components/avatar/avatar-group.d.ts +3 -2
- package/dist/components/avatar/avatar-group.js +4 -4
- package/dist/components/avatar/avatar-group.js.map +1 -1
- package/dist/components/avatar/avatar.d.ts +8 -4
- package/dist/components/avatar/avatar.js +10 -8
- package/dist/components/avatar/avatar.js.map +1 -1
- package/dist/components/badge/badge.d.ts +12 -5
- package/dist/components/badge/badge.js +18 -7
- package/dist/components/badge/badge.js.map +1 -1
- package/dist/components/button/button.d.ts +24 -18
- package/dist/components/button/button.js +30 -15
- package/dist/components/button/button.js.map +1 -1
- package/dist/components/card/card.d.ts +32 -19
- package/dist/components/card/card.js +51 -19
- package/dist/components/card/card.js.map +1 -1
- package/dist/components/checkbox/checkbox.d.ts +6 -7
- package/dist/components/checkbox/checkbox.js +6 -8
- package/dist/components/checkbox/checkbox.js.map +1 -1
- package/dist/components/dialog/dialog.d.ts +16 -9
- package/dist/components/dialog/dialog.js +23 -18
- package/dist/components/dialog/dialog.js.map +1 -1
- package/dist/components/drawer/drawer.d.ts +19 -9
- package/dist/components/drawer/drawer.js +31 -25
- package/dist/components/drawer/drawer.js.map +1 -1
- package/dist/components/dropdown-menu/dropdown-menu.d.ts +30 -21
- package/dist/components/dropdown-menu/dropdown-menu.js +35 -30
- package/dist/components/dropdown-menu/dropdown-menu.js.map +1 -1
- package/dist/components/form-field/form-field.d.ts +4 -8
- package/dist/components/form-field/form-field.js +3 -4
- package/dist/components/form-field/form-field.js.map +1 -1
- package/dist/components/form-helper/form-helper.d.ts +4 -6
- package/dist/components/form-helper/form-helper.js +2 -3
- package/dist/components/form-helper/form-helper.js.map +1 -1
- package/dist/components/icon/icon.d.ts +9 -15
- package/dist/components/icon/icon.js +20 -19
- package/dist/components/icon/icon.js.map +1 -1
- package/dist/components/input/input.d.ts +4 -4
- package/dist/components/input/input.js +2 -4
- package/dist/components/input/input.js.map +1 -1
- package/dist/components/label/label.d.ts +3 -4
- package/dist/components/label/label.js +5 -6
- package/dist/components/label/label.js.map +1 -1
- package/dist/components/pagination/pagination.d.ts +25 -21
- package/dist/components/pagination/pagination.js +30 -19
- package/dist/components/pagination/pagination.js.map +1 -1
- package/dist/components/popover/popover.d.ts +30 -14
- package/dist/components/popover/popover.js +30 -22
- package/dist/components/popover/popover.js.map +1 -1
- package/dist/components/progress/progress.d.ts +4 -6
- package/dist/components/progress/progress.js +4 -6
- package/dist/components/progress/progress.js.map +1 -1
- package/dist/components/radio-group/radio-group.d.ts +8 -7
- package/dist/components/radio-group/radio-group.js +8 -35
- package/dist/components/radio-group/radio-group.js.map +1 -1
- package/dist/components/select/select.d.ts +26 -15
- package/dist/components/select/select.js +28 -50
- package/dist/components/select/select.js.map +1 -1
- package/dist/components/skeleton/skeleton.d.ts +3 -1
- package/dist/components/skeleton/skeleton.js +3 -6
- package/dist/components/skeleton/skeleton.js.map +1 -1
- package/dist/components/slider/slider.d.ts +7 -14
- package/dist/components/slider/slider.js +23 -13
- package/dist/components/slider/slider.js.map +1 -1
- package/dist/components/switch/switch.d.ts +7 -7
- package/dist/components/switch/switch.js +8 -10
- package/dist/components/switch/switch.js.map +1 -1
- package/dist/components/table/table.d.ts +17 -8
- package/dist/components/table/table.js +24 -41
- package/dist/components/table/table.js.map +1 -1
- package/dist/components/tabs/tabs.d.ts +9 -5
- package/dist/components/tabs/tabs.js +10 -8
- package/dist/components/tabs/tabs.js.map +1 -1
- package/dist/components/text-area/text-area.d.ts +3 -5
- package/dist/components/text-area/text-area.js +2 -4
- package/dist/components/text-area/text-area.js.map +1 -1
- package/dist/components/toast/toast.d.ts +4 -10
- package/dist/components/toast/toast.js +4 -7
- package/dist/components/toast/toast.js.map +1 -1
- package/dist/components/tooltip/tooltip.d.ts +18 -9
- package/dist/components/tooltip/tooltip.js +21 -20
- package/dist/components/tooltip/tooltip.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/styles/index.css +2 -2
- package/dist/utilities/merge-refs/merge-refs.d.ts +2 -2
- package/dist/utilities/merge-refs/merge-refs.js +1 -1
- package/dist/utilities/merge-refs/merge-refs.js.map +1 -1
- package/package.json +71 -72
- package/dist/components/slot/slot.d.ts +0 -13
- package/dist/components/slot/slot.js +0 -70
- package/dist/components/slot/slot.js.map +0 -1
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export type TextareaProps =
|
|
1
|
+
import type { ComponentProps } from "react";
|
|
2
|
+
export type TextareaProps = ComponentProps<"textarea"> & {
|
|
3
3
|
error?: boolean;
|
|
4
4
|
};
|
|
5
|
-
export declare
|
|
6
|
-
error?: boolean;
|
|
7
|
-
} & import("react").RefAttributes<HTMLTextAreaElement>>;
|
|
5
|
+
export declare function Textarea({ className, error, disabled, ref, ...props }: TextareaProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { getVariants } from "../../utilities/responsive/responsive";
|
|
3
|
-
import { forwardRef } from "react";
|
|
4
3
|
const textAreaStyles = getVariants({
|
|
5
4
|
base: "w-full rounded-md border border-gray-300 p-2 focus-visible:outline focus-visible:outline-gray-800",
|
|
6
5
|
variants: {
|
|
@@ -19,12 +18,11 @@ const textAreaStyles = getVariants({
|
|
|
19
18
|
},
|
|
20
19
|
],
|
|
21
20
|
});
|
|
22
|
-
export
|
|
21
|
+
export function Textarea({ className, error, disabled, ref, ...props }) {
|
|
23
22
|
return (_jsx("textarea", { ref: ref, className: textAreaStyles({
|
|
24
23
|
className,
|
|
25
24
|
error,
|
|
26
25
|
disabled,
|
|
27
26
|
}), disabled: disabled, ...props }));
|
|
28
|
-
}
|
|
29
|
-
Textarea.displayName = "Textarea";
|
|
27
|
+
}
|
|
30
28
|
//# sourceMappingURL=text-area.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-area.js","sourceRoot":"/","sources":["components/text-area/text-area.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"text-area.js","sourceRoot":"/","sources":["components/text-area/text-area.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAO/D,MAAM,cAAc,GAAG,WAAW,CAAC;IAClC,IAAI,EAAE,mGAAmG;IACzG,QAAQ,EAAE;QACT,KAAK,EAAE;YACN,IAAI,EAAE,gBAAgB;SACtB;QACD,QAAQ,EAAE;YACT,IAAI,EAAE,iDAAiD;SACvD;KACD;IACD,gBAAgB,EAAE;QACjB;YACC,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,IAAI;YACd,SAAS,EACR,iEAAiE;SAClE;KACD;CACD,CAAC,CAAC;AAEH,MAAM,UAAU,QAAQ,CAAC,EACxB,SAAS,EACT,KAAK,EACL,QAAQ,EACR,GAAG,EACH,GAAG,KAAK,EACO;IACf,OAAO,CACN,mBACC,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,cAAc,CAAC;YACzB,SAAS;YACT,KAAK;YACL,QAAQ;SACR,CAAC,EACF,QAAQ,EAAE,QAAQ,KACd,KAAK,GACR,CACF,CAAC;AACH,CAAC","sourcesContent":["import { getVariants } from \"@utilities/responsive/responsive\";\nimport type { ComponentProps } from \"react\";\n\nexport type TextareaProps = ComponentProps<\"textarea\"> & {\n\terror?: boolean;\n};\n\nconst textAreaStyles = getVariants({\n\tbase: \"w-full rounded-md border border-gray-300 p-2 focus-visible:outline focus-visible:outline-gray-800\",\n\tvariants: {\n\t\terror: {\n\t\t\ttrue: \"border-red-600\",\n\t\t},\n\t\tdisabled: {\n\t\t\ttrue: \"disabled:cursor-not-allowed disabled:opacity-50\",\n\t\t},\n\t},\n\tcompoundVariants: [\n\t\t{\n\t\t\terror: true,\n\t\t\tdisabled: true,\n\t\t\tclassName:\n\t\t\t\t\"border-gray-400 disabled:cursor-not-allowed disabled:opacity-50\",\n\t\t},\n\t],\n});\n\nexport function Textarea({\n\tclassName,\n\terror,\n\tdisabled,\n\tref,\n\t...props\n}: TextareaProps) {\n\treturn (\n\t\t<textarea\n\t\t\tref={ref}\n\t\t\tclassName={textAreaStyles({\n\t\t\t\tclassName,\n\t\t\t\terror,\n\t\t\t\tdisabled,\n\t\t\t})}\n\t\t\tdisabled={disabled}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Ref } from "react";
|
|
1
2
|
import { type ToasterProps } from "sonner";
|
|
2
3
|
export type ToastProps = {
|
|
3
4
|
id: string | number;
|
|
@@ -7,6 +8,7 @@ export type ToastProps = {
|
|
|
7
8
|
label: string;
|
|
8
9
|
onClick: () => void;
|
|
9
10
|
};
|
|
11
|
+
ref?: Ref<HTMLDivElement>;
|
|
10
12
|
} & Omit<ToasterProps, "id">;
|
|
11
13
|
/**
|
|
12
14
|
* Creates a custom toast notification using the sonner toast library
|
|
@@ -18,16 +20,8 @@ export type ToastProps = {
|
|
|
18
20
|
* @param toast.button.onClick - Click handler function for the action button
|
|
19
21
|
* @returns A unique identifier for the created toast
|
|
20
22
|
*/
|
|
21
|
-
declare
|
|
23
|
+
declare function toast(toast: Omit<ToastProps, "id">): string | number;
|
|
22
24
|
declare const Toaster: import("react").ForwardRefExoticComponent<ToasterProps & import("react").RefAttributes<HTMLElement>>;
|
|
23
25
|
/** A fully custom toast built on top of sonner. */
|
|
24
|
-
declare
|
|
25
|
-
id: string | number;
|
|
26
|
-
title: string;
|
|
27
|
-
description: string;
|
|
28
|
-
button: {
|
|
29
|
-
label: string;
|
|
30
|
-
onClick: () => void;
|
|
31
|
-
};
|
|
32
|
-
} & Omit<ToasterProps, "id"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
26
|
+
declare function Toast({ title, description, button, id, ref }: ToastProps): import("react/jsx-runtime").JSX.Element;
|
|
33
27
|
export { toast, Toast, Toaster };
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { forwardRef } from "react";
|
|
3
2
|
import { Toaster as SonnerToaster, toast as sonnerToast, } from "sonner";
|
|
4
3
|
import { Button } from "../button/button";
|
|
5
4
|
/**
|
|
@@ -12,22 +11,20 @@ import { Button } from "../button/button";
|
|
|
12
11
|
* @param toast.button.onClick - Click handler function for the action button
|
|
13
12
|
* @returns A unique identifier for the created toast
|
|
14
13
|
*/
|
|
15
|
-
|
|
14
|
+
function toast(toast) {
|
|
16
15
|
const { title, description, button, ...toastOptions } = toast;
|
|
17
16
|
return sonnerToast.custom((id) => (_jsx(Toast, { id: id, title: title, description: description, button: {
|
|
18
17
|
label: button.label,
|
|
19
18
|
onClick: button.onClick,
|
|
20
19
|
}, ...toastOptions })));
|
|
21
|
-
}
|
|
20
|
+
}
|
|
22
21
|
const Toaster = SonnerToaster;
|
|
23
|
-
Toaster.displayName = "Toaster";
|
|
24
22
|
/** A fully custom toast built on top of sonner. */
|
|
25
|
-
|
|
23
|
+
function Toast({ title, description, button, id, ref }) {
|
|
26
24
|
return (_jsxs("div", { className: "flex w-full items-center gap-4 rounded-lg bg-white p-4 shadow-lg ring-1 ring-black/5 md:max-w-96", ref: ref, children: [_jsx("div", { className: "flex flex-1 items-center", children: _jsxs("div", { className: "w-full gap-1", children: [_jsx("p", { className: "font-medium text-gray-900 text-sm", children: title }), _jsx("p", { className: "text-gray-500 text-sm", children: description })] }) }), _jsx("div", { className: "shrink-0 rounded-md font-medium text-sm", children: _jsx(Button, { size: "small", type: "button", variant: "secondary", onClick: () => {
|
|
27
25
|
button.onClick();
|
|
28
26
|
sonnerToast.dismiss(id);
|
|
29
27
|
}, children: button.label }) })] }));
|
|
30
|
-
}
|
|
31
|
-
Toast.displayName = "Toast";
|
|
28
|
+
}
|
|
32
29
|
export { toast, Toast, Toaster };
|
|
33
30
|
//# sourceMappingURL=toast.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast.js","sourceRoot":"/","sources":["components/toast/toast.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"toast.js","sourceRoot":"/","sources":["components/toast/toast.tsx"],"names":[],"mappings":";AACA,OAAO,EACN,OAAO,IAAI,aAAa,EACxB,KAAK,IAAI,WAAW,GAEpB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAa1C;;;;;;;;;GASG;AACH,SAAS,KAAK,CAAC,KAA6B;IAC3C,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK,CAAC;IAC9D,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CACjC,KAAC,KAAK,IACL,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE;YACP,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,OAAO,EAAE,MAAM,CAAC,OAAO;SACvB,KACG,YAAY,GACf,CACF,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,GAAG,aAAa,CAAC;AAE9B,mDAAmD;AACnD,SAAS,KAAK,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAc;IACjE,OAAO,CACN,eACC,SAAS,EAAC,kGAAkG,EAC5G,GAAG,EAAE,GAAG,aAER,cAAK,SAAS,EAAC,0BAA0B,YACxC,eAAK,SAAS,EAAC,cAAc,aAC5B,YAAG,SAAS,EAAC,mCAAmC,YAAE,KAAK,GAAK,EAC5D,YAAG,SAAS,EAAC,uBAAuB,YAAE,WAAW,GAAK,IACjD,GACD,EACN,cAAK,SAAS,EAAC,yCAAyC,YACvD,KAAC,MAAM,IACN,IAAI,EAAC,OAAO,EACZ,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,WAAW,EACnB,OAAO,EAAE,GAAG,EAAE;wBACb,MAAM,CAAC,OAAO,EAAE,CAAC;wBACjB,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACzB,CAAC,YAEA,MAAM,CAAC,KAAK,GACL,GACJ,IACD,CACN,CAAC;AACH,CAAC;AAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC","sourcesContent":["import type { Ref } from \"react\";\nimport {\n\tToaster as SonnerToaster,\n\ttoast as sonnerToast,\n\ttype ToasterProps,\n} from \"sonner\";\nimport { Button } from \"../button/button\";\n\nexport type ToastProps = {\n\tid: string | number;\n\ttitle: string;\n\tdescription: string;\n\tbutton: {\n\t\tlabel: string;\n\t\tonClick: () => void;\n\t};\n\tref?: Ref<HTMLDivElement>;\n} & Omit<ToasterProps, \"id\">;\n\n/**\n * Creates a custom toast notification using the sonner toast library\n * @param toast - The toast configuration object without an ID\n * @param toast.title - The title text to display in the toast\n * @param toast.description - The description text to display in the toast\n * @param toast.button - Configuration for the toast's action button\n * @param toast.button.label - The text label for the action button\n * @param toast.button.onClick - Click handler function for the action button\n * @returns A unique identifier for the created toast\n */\nfunction toast(toast: Omit<ToastProps, \"id\">) {\n\tconst { title, description, button, ...toastOptions } = toast;\n\treturn sonnerToast.custom((id) => (\n\t\t<Toast\n\t\t\tid={id}\n\t\t\ttitle={title}\n\t\t\tdescription={description}\n\t\t\tbutton={{\n\t\t\t\tlabel: button.label,\n\t\t\t\tonClick: button.onClick,\n\t\t\t}}\n\t\t\t{...toastOptions}\n\t\t/>\n\t));\n}\n\nconst Toaster = SonnerToaster;\n\n/** A fully custom toast built on top of sonner. */\nfunction Toast({ title, description, button, id, ref }: ToastProps) {\n\treturn (\n\t\t<div\n\t\t\tclassName=\"flex w-full items-center gap-4 rounded-lg bg-white p-4 shadow-lg ring-1 ring-black/5 md:max-w-96\"\n\t\t\tref={ref}\n\t\t>\n\t\t\t<div className=\"flex flex-1 items-center\">\n\t\t\t\t<div className=\"w-full gap-1\">\n\t\t\t\t\t<p className=\"font-medium text-gray-900 text-sm\">{title}</p>\n\t\t\t\t\t<p className=\"text-gray-500 text-sm\">{description}</p>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div className=\"shrink-0 rounded-md font-medium text-sm\">\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\tbutton.onClick();\n\t\t\t\t\t\tsonnerToast.dismiss(id);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{button.label}\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nexport { toast, Toast, Toaster };\n"]}
|
|
@@ -1,17 +1,22 @@
|
|
|
1
|
-
import { Tooltip as
|
|
1
|
+
import { Tooltip as TooltipPrimitive } from "@base-ui/react/tooltip";
|
|
2
|
+
import type { ComponentProps } from "react";
|
|
2
3
|
/**
|
|
3
4
|
* Tooltip
|
|
4
5
|
*/
|
|
5
|
-
export type TooltipProps =
|
|
6
|
+
export type TooltipProps = ComponentProps<typeof TooltipPrimitive.Root> & {
|
|
6
7
|
showArrow?: boolean;
|
|
7
|
-
side?:
|
|
8
|
+
side?: "top" | "right" | "bottom" | "left";
|
|
9
|
+
sideOffset?: number;
|
|
10
|
+
delayDuration?: number;
|
|
8
11
|
};
|
|
9
12
|
/**
|
|
10
|
-
* A tooltip component built on top of
|
|
13
|
+
* A tooltip component built on top of Base UI's tooltip primitive.
|
|
11
14
|
*
|
|
12
15
|
* @param {TooltipProps} props - The props for the Tooltip component
|
|
13
16
|
* @param {boolean} [props.showArrow=true] - Whether to show the arrow pointing to the trigger
|
|
14
|
-
* @param {
|
|
17
|
+
* @param {"top" | "right" | "bottom" | "left"} [props.side] - The preferred side to show the tooltip
|
|
18
|
+
* @param {number} [props.sideOffset=10] - Distance between the anchor and the popup
|
|
19
|
+
* @param {number} [props.delayDuration=600] - How long to wait before opening the tooltip (in ms)
|
|
15
20
|
*
|
|
16
21
|
* @example
|
|
17
22
|
* ```tsx
|
|
@@ -21,15 +26,19 @@ export type TooltipProps = React.ComponentProps<typeof RadixTooltip.Root> & {
|
|
|
21
26
|
* </Tooltip>
|
|
22
27
|
* ```
|
|
23
28
|
*/
|
|
24
|
-
declare
|
|
29
|
+
declare function Tooltip({ children, showArrow, side, sideOffset, delayDuration, ...props }: TooltipProps): import("react/jsx-runtime").JSX.Element;
|
|
25
30
|
/**
|
|
26
31
|
* Tooltip Trigger
|
|
27
32
|
*/
|
|
28
|
-
|
|
33
|
+
export type TooltipTriggerProps = ComponentProps<typeof TooltipPrimitive.Trigger> & {
|
|
34
|
+
render?: React.ReactElement;
|
|
35
|
+
};
|
|
36
|
+
declare function TooltipTrigger({ render, children, ref, ...props }: TooltipTriggerProps): import("react/jsx-runtime").JSX.Element;
|
|
29
37
|
/**
|
|
30
38
|
* Tooltip Content
|
|
31
39
|
*/
|
|
32
|
-
|
|
40
|
+
export type TooltipContentProps = ComponentProps<typeof TooltipPrimitive.Popup> & {
|
|
33
41
|
showArrow?: boolean;
|
|
34
|
-
}
|
|
42
|
+
};
|
|
43
|
+
declare function TooltipContent({ className, children, ref, ...props }: TooltipContentProps): import("react/jsx-runtime").JSX.Element;
|
|
35
44
|
export { Tooltip, TooltipTrigger, TooltipContent };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Tooltip as TooltipPrimitive } from "@base-ui/react/tooltip";
|
|
2
3
|
import { cn } from "../../utilities/cn/cn";
|
|
3
|
-
import {
|
|
4
|
-
import { createContext, forwardRef, useContext, useMemo } from "react";
|
|
4
|
+
import { createContext, useContext, useMemo } from "react";
|
|
5
5
|
const TooltipContext = createContext(undefined);
|
|
6
6
|
const useTooltipContext = () => {
|
|
7
7
|
const context = useContext(TooltipContext);
|
|
@@ -11,11 +11,13 @@ const useTooltipContext = () => {
|
|
|
11
11
|
return context;
|
|
12
12
|
};
|
|
13
13
|
/**
|
|
14
|
-
* A tooltip component built on top of
|
|
14
|
+
* A tooltip component built on top of Base UI's tooltip primitive.
|
|
15
15
|
*
|
|
16
16
|
* @param {TooltipProps} props - The props for the Tooltip component
|
|
17
17
|
* @param {boolean} [props.showArrow=true] - Whether to show the arrow pointing to the trigger
|
|
18
|
-
* @param {
|
|
18
|
+
* @param {"top" | "right" | "bottom" | "left"} [props.side] - The preferred side to show the tooltip
|
|
19
|
+
* @param {number} [props.sideOffset=10] - Distance between the anchor and the popup
|
|
20
|
+
* @param {number} [props.delayDuration=600] - How long to wait before opening the tooltip (in ms)
|
|
19
21
|
*
|
|
20
22
|
* @example
|
|
21
23
|
* ```tsx
|
|
@@ -25,24 +27,23 @@ const useTooltipContext = () => {
|
|
|
25
27
|
* </Tooltip>
|
|
26
28
|
* ```
|
|
27
29
|
*/
|
|
28
|
-
|
|
30
|
+
function Tooltip({ children, showArrow = true, side, sideOffset = 10, delayDuration = 600, ...props }) {
|
|
29
31
|
const contextValue = useMemo(() => ({
|
|
30
32
|
showArrow,
|
|
31
33
|
side,
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
const { showArrow, side } = useTooltipContext();
|
|
44
|
-
return (_jsxs(
|
|
45
|
-
}
|
|
46
|
-
TooltipContent.displayName = RadixTooltip.Content.displayName;
|
|
34
|
+
sideOffset,
|
|
35
|
+
}), [showArrow, side, sideOffset]);
|
|
36
|
+
return (_jsx(TooltipContext.Provider, { value: contextValue, children: _jsx(TooltipPrimitive.Provider, { delay: delayDuration, children: _jsx(TooltipPrimitive.Root, { ...props, children: children }) }) }));
|
|
37
|
+
}
|
|
38
|
+
function TooltipTrigger({ render, children, ref, ...props }) {
|
|
39
|
+
if (render) {
|
|
40
|
+
return (_jsx(TooltipPrimitive.Trigger, { ref: ref, render: render, ...props, children: children }));
|
|
41
|
+
}
|
|
42
|
+
return (_jsx(TooltipPrimitive.Trigger, { ref: ref, ...props, children: children }));
|
|
43
|
+
}
|
|
44
|
+
function TooltipContent({ className, children, ref, ...props }) {
|
|
45
|
+
const { showArrow, side, sideOffset } = useTooltipContext();
|
|
46
|
+
return (_jsx(TooltipPrimitive.Portal, { children: _jsx(TooltipPrimitive.Positioner, { side: side, sideOffset: sideOffset ?? 10, children: _jsxs(TooltipPrimitive.Popup, { className: cn("relative z-50 w-fit max-w-72 rounded-md bg-gray-700 p-2 text-sm text-white shadow-md", className), ...props, ref: ref, children: [children, showArrow && (_jsx(TooltipPrimitive.Arrow, { className: "data-[side=bottom]:-top-1.25 data-[side=left]:-right-1.25 data-[side=top]:-bottom-1.25 data-[side=right]:-left-1.25", children: _jsx("div", { className: "h-2.5 w-2.5 rotate-45 bg-gray-700" }) }))] }) }) }));
|
|
47
|
+
}
|
|
47
48
|
export { Tooltip, TooltipTrigger, TooltipContent };
|
|
48
49
|
//# sourceMappingURL=tooltip.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.js","sourceRoot":"/","sources":["components/tooltip/tooltip.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"tooltip.js","sourceRoot":"/","sources":["components/tooltip/tooltip.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAY3D,MAAM,cAAc,GAAG,aAAa,CAAiC,SAAS,CAAC,CAAC;AAEhF,MAAM,iBAAiB,GAAG,GAAG,EAAE;IAC9B,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC,CAAC;AAaF;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,OAAO,CAAC,EAChB,QAAQ,EACR,SAAS,GAAG,IAAI,EAChB,IAAI,EACJ,UAAU,GAAG,EAAE,EACf,aAAa,GAAG,GAAG,EACnB,GAAG,KAAK,EACM;IACd,MAAM,YAAY,GAAG,OAAO,CAC3B,GAAG,EAAE,CAAC,CAAC;QACN,SAAS;QACT,IAAI;QACJ,UAAU;KACV,CAAC,EACF,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,CAC7B,CAAC;IACF,OAAO,CACN,KAAC,cAAc,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,YAC3C,KAAC,gBAAgB,CAAC,QAAQ,IAAC,KAAK,EAAE,aAAa,YAC9C,KAAC,gBAAgB,CAAC,IAAI,OAAK,KAAK,YAAG,QAAQ,GAAyB,GACzC,GACH,CAC1B,CAAC;AACH,CAAC;AAYD,SAAS,cAAc,CAAC,EACvB,MAAM,EACN,QAAQ,EACR,GAAG,EACH,GAAG,KAAK,EACa;IACrB,IAAI,MAAM,EAAE,CAAC;QACZ,OAAO,CACN,KAAC,gBAAgB,CAAC,OAAO,IAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,KAAM,KAAK,YAC3D,QAAQ,GACiB,CAC3B,CAAC;IACH,CAAC;IACD,OAAO,CACN,KAAC,gBAAgB,CAAC,OAAO,IAAC,GAAG,EAAE,GAAG,KAAM,KAAK,YAC3C,QAAQ,GACiB,CAC3B,CAAC;AACH,CAAC;AAYD,SAAS,cAAc,CAAC,EACvB,SAAS,EACT,QAAQ,EACR,GAAG,EACH,GAAG,KAAK,EACa;IACrB,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAC5D,OAAO,CACN,KAAC,gBAAgB,CAAC,MAAM,cACvB,KAAC,gBAAgB,CAAC,UAAU,IAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,IAAI,EAAE,YACpE,MAAC,gBAAgB,CAAC,KAAK,IACtB,SAAS,EAAE,EAAE,CACZ,sFAAsF,EACtF,SAAS,CACT,KACG,KAAK,EACT,GAAG,EAAE,GAAG,aAEP,QAAQ,EACR,SAAS,IAAI,CACb,KAAC,gBAAgB,CAAC,KAAK,IAAC,SAAS,EAAC,qHAAqH,YACtJ,cAAK,SAAS,EAAC,mCAAmC,GAAG,GAC7B,CACzB,IACuB,GACI,GACL,CAC1B,CAAC;AACH,CAAC;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC","sourcesContent":["import { Tooltip as TooltipPrimitive } from \"@base-ui/react/tooltip\";\nimport { cn } from \"@utilities/cn/cn\";\nimport type { ComponentProps } from \"react\";\nimport { createContext, useContext, useMemo } from \"react\";\n\n/**\n * Tooltip Context\n */\n\ntype TooltipContextType = {\n\tshowArrow?: boolean;\n\tside?: \"top\" | \"right\" | \"bottom\" | \"left\";\n\tsideOffset?: number;\n};\n\nconst TooltipContext = createContext<TooltipContextType | undefined>(undefined);\n\nconst useTooltipContext = () => {\n\tconst context = useContext(TooltipContext);\n\tif (!context) {\n\t\tthrow new Error(\"Tooltip components must be used within a TooltipProvider\");\n\t}\n\treturn context;\n};\n\n/**\n * Tooltip\n */\n\nexport type TooltipProps = ComponentProps<typeof TooltipPrimitive.Root> & {\n\tshowArrow?: boolean;\n\tside?: \"top\" | \"right\" | \"bottom\" | \"left\";\n\tsideOffset?: number;\n\tdelayDuration?: number;\n};\n\n/**\n * A tooltip component built on top of Base UI's tooltip primitive.\n *\n * @param {TooltipProps} props - The props for the Tooltip component\n * @param {boolean} [props.showArrow=true] - Whether to show the arrow pointing to the trigger\n * @param {\"top\" | \"right\" | \"bottom\" | \"left\"} [props.side] - The preferred side to show the tooltip\n * @param {number} [props.sideOffset=10] - Distance between the anchor and the popup\n * @param {number} [props.delayDuration=600] - How long to wait before opening the tooltip (in ms)\n *\n * @example\n * ```tsx\n * <Tooltip>\n * <TooltipTrigger>Hover me</TooltipTrigger>\n * <TooltipContent>Tooltip content</TooltipContent>\n * </Tooltip>\n * ```\n */\nfunction Tooltip({\n\tchildren,\n\tshowArrow = true,\n\tside,\n\tsideOffset = 10,\n\tdelayDuration = 600,\n\t...props\n}: TooltipProps) {\n\tconst contextValue = useMemo(\n\t\t() => ({\n\t\t\tshowArrow,\n\t\t\tside,\n\t\t\tsideOffset,\n\t\t}),\n\t\t[showArrow, side, sideOffset],\n\t);\n\treturn (\n\t\t<TooltipContext.Provider value={contextValue}>\n\t\t\t<TooltipPrimitive.Provider delay={delayDuration}>\n\t\t\t\t<TooltipPrimitive.Root {...props}>{children}</TooltipPrimitive.Root>\n\t\t\t</TooltipPrimitive.Provider>\n\t\t</TooltipContext.Provider>\n\t);\n}\n\n/**\n * Tooltip Trigger\n */\n\nexport type TooltipTriggerProps = ComponentProps<\n\ttypeof TooltipPrimitive.Trigger\n> & {\n\trender?: React.ReactElement;\n};\n\nfunction TooltipTrigger({\n\trender,\n\tchildren,\n\tref,\n\t...props\n}: TooltipTriggerProps) {\n\tif (render) {\n\t\treturn (\n\t\t\t<TooltipPrimitive.Trigger ref={ref} render={render} {...props}>\n\t\t\t\t{children}\n\t\t\t</TooltipPrimitive.Trigger>\n\t\t);\n\t}\n\treturn (\n\t\t<TooltipPrimitive.Trigger ref={ref} {...props}>\n\t\t\t{children}\n\t\t</TooltipPrimitive.Trigger>\n\t);\n}\n\n/**\n * Tooltip Content\n */\n\nexport type TooltipContentProps = ComponentProps<\n\ttypeof TooltipPrimitive.Popup\n> & {\n\tshowArrow?: boolean;\n};\n\nfunction TooltipContent({\n\tclassName,\n\tchildren,\n\tref,\n\t...props\n}: TooltipContentProps) {\n\tconst { showArrow, side, sideOffset } = useTooltipContext();\n\treturn (\n\t\t<TooltipPrimitive.Portal>\n\t\t\t<TooltipPrimitive.Positioner side={side} sideOffset={sideOffset ?? 10}>\n\t\t\t\t<TooltipPrimitive.Popup\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"relative z-50 w-fit max-w-72 rounded-md bg-gray-700 p-2 text-sm text-white shadow-md\",\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t)}\n\t\t\t\t\t{...props}\n\t\t\t\t\tref={ref}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t\t{showArrow && (\n\t\t\t\t\t\t<TooltipPrimitive.Arrow className=\"data-[side=bottom]:-top-1.25 data-[side=left]:-right-1.25 data-[side=top]:-bottom-1.25 data-[side=right]:-left-1.25\">\n\t\t\t\t\t\t\t<div className=\"h-2.5 w-2.5 rotate-45 bg-gray-700\" />\n\t\t\t\t\t\t</TooltipPrimitive.Arrow>\n\t\t\t\t\t)}\n\t\t\t\t</TooltipPrimitive.Popup>\n\t\t\t</TooltipPrimitive.Positioner>\n\t\t</TooltipPrimitive.Portal>\n\t);\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent };\n"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -28,7 +28,7 @@ export { Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverPortal, Po
|
|
|
28
28
|
export type { ProgressProps } from "./components/progress/progress";
|
|
29
29
|
export { Progress } from "./components/progress/progress";
|
|
30
30
|
export { RadioGroup, RadioGroupItem, } from "./components/radio-group/radio-group";
|
|
31
|
-
export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel,
|
|
31
|
+
export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, } from "./components/select/select";
|
|
32
32
|
export { Skeleton } from "./components/skeleton/skeleton";
|
|
33
33
|
export type { SliderProps } from "./components/slider/slider";
|
|
34
34
|
export { Slider } from "./components/slider/slider";
|
|
@@ -39,6 +39,6 @@ export { Tabs, TabsContent, TabsList, TabsTrigger, } from "./components/tabs/tab
|
|
|
39
39
|
export type { TextareaProps } from "./components/text-area/text-area";
|
|
40
40
|
export { Textarea } from "./components/text-area/text-area";
|
|
41
41
|
export type { ToastProps } from "./components/toast/toast";
|
|
42
|
-
export { Toast, Toaster, toast
|
|
42
|
+
export { Toast, Toaster, toast } from "./components/toast/toast";
|
|
43
43
|
export type { TooltipProps } from "./components/tooltip/tooltip";
|
|
44
44
|
export { Tooltip, TooltipContent, TooltipTrigger, } from "./components/tooltip/tooltip";
|
package/dist/index.js
CHANGED
|
@@ -16,13 +16,13 @@ export { Pagination, PaginationItem, PaginationNext, PaginationPrev, } from "./c
|
|
|
16
16
|
export { Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverPortal, PopoverTrigger, } from "./components/popover/popover";
|
|
17
17
|
export { Progress } from "./components/progress/progress";
|
|
18
18
|
export { RadioGroup, RadioGroupItem, } from "./components/radio-group/radio-group";
|
|
19
|
-
export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel,
|
|
19
|
+
export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, } from "./components/select/select";
|
|
20
20
|
export { Skeleton } from "./components/skeleton/skeleton";
|
|
21
21
|
export { Slider } from "./components/slider/slider";
|
|
22
22
|
export { Switch } from "./components/switch/switch";
|
|
23
23
|
export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, } from "./components/table/table";
|
|
24
24
|
export { Tabs, TabsContent, TabsList, TabsTrigger, } from "./components/tabs/tabs";
|
|
25
25
|
export { Textarea } from "./components/text-area/text-area";
|
|
26
|
-
export { Toast, Toaster, toast
|
|
26
|
+
export { Toast, Toaster, toast } from "./components/toast/toast";
|
|
27
27
|
export { Tooltip, TooltipContent, TooltipTrigger, } from "./components/tooltip/tooltip";
|
|
28
28
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"/","sources":["index.ts"],"names":[],"mappings":"AAMA,OAAO,EACN,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,gBAAgB,GAChB,MAAM,iCAAiC,CAAC;AAMzC,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EACN,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,GAClB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAEhF,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAOnD,OAAO,EACN,IAAI,EACJ,WAAW,EACX,UAAU,EACV,UAAU,GACV,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EACN,MAAM,EACN,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,aAAa,GACb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACN,MAAM,EACN,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,aAAa,GACb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACN,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,GACnB,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAEhD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAKhD,OAAO,EACN,UAAU,EACV,cAAc,EACd,cAAc,EACd,cAAc,GACd,MAAM,mCAAmC,CAAC;AAK3C,OAAO,EACN,OAAO,EACP,aAAa,EACb,YAAY,EACZ,cAAc,EACd,aAAa,EACb,cAAc,GACd,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EACN,UAAU,EACV,cAAc,GACd,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACN,MAAM,EACN,aAAa,EACb,WAAW,EACX,UAAU,EACV,WAAW,EACX,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"/","sources":["index.ts"],"names":[],"mappings":"AAMA,OAAO,EACN,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,gBAAgB,GAChB,MAAM,iCAAiC,CAAC;AAMzC,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EACN,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,GAClB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAEhF,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAOnD,OAAO,EACN,IAAI,EACJ,WAAW,EACX,UAAU,EACV,UAAU,GACV,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EACN,MAAM,EACN,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,aAAa,GACb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACN,MAAM,EACN,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,aAAa,GACb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACN,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,GACnB,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAEhD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAKhD,OAAO,EACN,UAAU,EACV,cAAc,EACd,cAAc,EACd,cAAc,GACd,MAAM,mCAAmC,CAAC;AAK3C,OAAO,EACN,OAAO,EACP,aAAa,EACb,YAAY,EACZ,cAAc,EACd,aAAa,EACb,cAAc,GACd,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EACN,UAAU,EACV,cAAc,GACd,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACN,MAAM,EACN,aAAa,EACb,WAAW,EACX,UAAU,EACV,WAAW,EACX,eAAe,EACf,aAAa,EACb,WAAW,GACX,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAEzD,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAEnD,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EACN,KAAK,EACL,SAAS,EACT,YAAY,EACZ,SAAS,EACT,WAAW,EACX,SAAS,EACT,WAAW,EACX,QAAQ,GACR,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,WAAW,GACX,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAE3D,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EACN,OAAO,EACP,cAAc,EACd,cAAc,GACd,MAAM,6BAA6B,CAAC","sourcesContent":["export type {\n\tAccordionContentProps,\n\tAccordionItemProps,\n\tAccordionProps,\n\tAccordionTriggerProps,\n} from \"@components/accordion/accordion\";\nexport {\n\tAccordion,\n\tAccordionContent,\n\tAccordionItem,\n\tAccordionTrigger,\n} from \"@components/accordion/accordion\";\nexport type {\n\tAlertDescriptionProps,\n\tAlertProps,\n\tAlertTitleProps,\n} from \"@components/alert/alert\";\nexport { Alert, AlertDescription, AlertTitle } from \"@components/alert/alert\";\nexport {\n\tAlertDialog,\n\tAlertDialogAction,\n\tAlertDialogCancel,\n\tAlertDialogContent,\n\tAlertDialogDescription,\n\tAlertDialogOverlay,\n\tAlertDialogTitle,\n\tAlertDialogTrigger,\n} from \"@components/alert-dialog/alert-dialog\";\nexport { Avatar, AvatarFallback, AvatarImage } from \"@components/avatar/avatar\";\nexport type { AvatarGroupProps } from \"@components/avatar/avatar-group\";\nexport { AvatarGroup } from \"@components/avatar/avatar-group\";\nexport type { BadgeProps } from \"@components/badge/badge\";\nexport { Badge } from \"@components/badge/badge\";\nexport type { ButtonProps } from \"@components/button/button\";\nexport { Button } from \"@components/button/button\";\nexport type {\n\tCardContentProps,\n\tCardFooterProps,\n\tCardHeaderProps,\n\tCardProps,\n} from \"@components/card/card\";\nexport {\n\tCard,\n\tCardContent,\n\tCardFooter,\n\tCardHeader,\n} from \"@components/card/card\";\nexport type { CheckboxProps } from \"@components/checkbox/checkbox\";\nexport { Checkbox } from \"@components/checkbox/checkbox\";\nexport {\n\tDialog,\n\tDialogClose,\n\tDialogContent,\n\tDialogDescription,\n\tDialogFooter,\n\tDialogHeader,\n\tDialogTitle,\n\tDialogTrigger,\n} from \"@components/dialog/dialog\";\nexport {\n\tDrawer,\n\tDrawerClose,\n\tDrawerContent,\n\tDrawerDescription,\n\tDrawerFooter,\n\tDrawerHeader,\n\tDrawerTitle,\n\tDrawerTrigger,\n} from \"@components/drawer/drawer\";\nexport {\n\tDropdownMenu,\n\tDropdownMenuContent,\n\tDropdownMenuGroup,\n\tDropdownMenuLabel,\n\tDropdownMenuPortal,\n\tDropdownMenuRadioGroup,\n\tDropdownMenuRadioItem,\n\tDropdownMenuSeparator,\n\tDropdownMenuShortcut,\n\tDropdownMenuSub,\n\tDropdownMenuSubContent,\n\tDropdownMenuSubTrigger,\n\tDropdownMenuTrigger,\n} from \"@components/dropdown-menu/dropdown-menu\";\nexport type { InputProps } from \"@components/input/input\";\nexport { Input } from \"@components/input/input\";\nexport type { LabelProps } from \"@components/label/label\";\nexport { Label } from \"@components/label/label\";\nexport type {\n\tPaginationItemProps,\n\tPaginationProps,\n} from \"@components/pagination/pagination\";\nexport {\n\tPagination,\n\tPaginationItem,\n\tPaginationNext,\n\tPaginationPrev,\n} from \"@components/pagination/pagination\";\nexport type {\n\tPopoverContentProps,\n\tPopoverProps,\n} from \"@components/popover/popover\";\nexport {\n\tPopover,\n\tPopoverAnchor,\n\tPopoverClose,\n\tPopoverContent,\n\tPopoverPortal,\n\tPopoverTrigger,\n} from \"@components/popover/popover\";\nexport type { ProgressProps } from \"@components/progress/progress\";\nexport { Progress } from \"@components/progress/progress\";\nexport {\n\tRadioGroup,\n\tRadioGroupItem,\n} from \"@components/radio-group/radio-group\";\nexport {\n\tSelect,\n\tSelectContent,\n\tSelectGroup,\n\tSelectItem,\n\tSelectLabel,\n\tSelectSeparator,\n\tSelectTrigger,\n\tSelectValue,\n} from \"@components/select/select\";\nexport { Skeleton } from \"@components/skeleton/skeleton\";\nexport type { SliderProps } from \"@components/slider/slider\";\nexport { Slider } from \"@components/slider/slider\";\nexport type { SwitchProps } from \"@components/switch/switch\";\nexport { Switch } from \"@components/switch/switch\";\nexport {\n\tTable,\n\tTableBody,\n\tTableCaption,\n\tTableCell,\n\tTableFooter,\n\tTableHead,\n\tTableHeader,\n\tTableRow,\n} from \"@components/table/table\";\nexport {\n\tTabs,\n\tTabsContent,\n\tTabsList,\n\tTabsTrigger,\n} from \"@components/tabs/tabs\";\nexport type { TextareaProps } from \"@components/text-area/text-area\";\nexport { Textarea } from \"@components/text-area/text-area\";\nexport type { ToastProps } from \"@components/toast/toast\";\nexport { Toast, Toaster, toast } from \"@components/toast/toast\";\nexport type { TooltipProps } from \"@components/tooltip/tooltip\";\nexport {\n\tTooltip,\n\tTooltipContent,\n\tTooltipTrigger,\n} from \"@components/tooltip/tooltip\";\n"]}
|
package/dist/styles/index.css
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
|
|
22
22
|
@keyframes accordion-up {
|
|
23
23
|
from {
|
|
24
|
-
height: var(--
|
|
24
|
+
height: var(--accordion-panel-height);
|
|
25
25
|
}
|
|
26
26
|
to {
|
|
27
27
|
height: 0;
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
height: 0;
|
|
34
34
|
}
|
|
35
35
|
to {
|
|
36
|
-
height: var(--
|
|
36
|
+
height: var(--accordion-panel-height);
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare const mergeRefs: <T>(...refs: (
|
|
1
|
+
import type { Ref, RefCallback } from "react";
|
|
2
|
+
export declare const mergeRefs: <T>(...refs: (Ref<T> | undefined)[]) => RefCallback<T>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-refs.js","sourceRoot":"/","sources":["utilities/merge-refs/merge-refs.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAG,CACxB,GAAG,
|
|
1
|
+
{"version":3,"file":"merge-refs.js","sourceRoot":"/","sources":["utilities/merge-refs/merge-refs.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAG,CACxB,GAAG,IAA4B,EACd,EAAE;IACnB,OAAO,CAAC,IAAO,EAAE,EAAE;QAClB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,IAAI,OAAO,GAAG,KAAK,UAAU;gBAAE,GAAG,CAAC,IAAI,CAAC,CAAC;iBACpC,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,SAAS,IAAI,GAAG;gBACzD,GAA2B,CAAC,OAAO,GAAG,IAAI,CAAC;QAC9C,CAAC;IACF,CAAC,CAAC;AACH,CAAC,CAAC","sourcesContent":["import type { Ref, RefCallback, RefObject } from \"react\";\n\nexport const mergeRefs = <T>(\n\t...refs: (Ref<T> | undefined)[]\n): RefCallback<T> => {\n\treturn (node: T) => {\n\t\tfor (const ref of refs) {\n\t\t\tif (!ref) continue;\n\t\t\tif (typeof ref === \"function\") ref(node);\n\t\t\telse if (ref && typeof ref === \"object\" && \"current\" in ref)\n\t\t\t\t(ref as RefObject<T | null>).current = node;\n\t\t}\n\t};\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1,74 +1,73 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
"packageManager": "pnpm@9.14.2"
|
|
2
|
+
"name": "luan-ui",
|
|
3
|
+
"version": "0.6.0",
|
|
4
|
+
"description": "A UI library for React",
|
|
5
|
+
"author": "benebene84 <benedikt.sperl@gmail.com> (https://github.com/benebene84)",
|
|
6
|
+
"main": "/dist/index.js",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"files": [
|
|
10
|
+
"dist",
|
|
11
|
+
"README.md",
|
|
12
|
+
"LICENSE"
|
|
13
|
+
],
|
|
14
|
+
"scripts": {
|
|
15
|
+
"build": "node --experimental-strip-types scripts/build.ts",
|
|
16
|
+
"dev": "storybook dev -p 6006",
|
|
17
|
+
"build-storybook": "storybook build",
|
|
18
|
+
"check": "biome check",
|
|
19
|
+
"fix": "biome check --write",
|
|
20
|
+
"fix:unsafe": "biome check --write --unsafe",
|
|
21
|
+
"lint": "biome lint",
|
|
22
|
+
"format": "biome format --write",
|
|
23
|
+
"test": "vitest",
|
|
24
|
+
"test:ci": "vitest --run"
|
|
25
|
+
},
|
|
26
|
+
"repository": {
|
|
27
|
+
"type": "git",
|
|
28
|
+
"url": "git+https://github.com/benebene84/luan-ui.git"
|
|
29
|
+
},
|
|
30
|
+
"license": "MIT",
|
|
31
|
+
"bugs": {
|
|
32
|
+
"url": "https://github.com/benebene84/luan-ui/issues"
|
|
33
|
+
},
|
|
34
|
+
"homepage": "https://github.com/benebene84/luan-ui#readme",
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"@biomejs/biome": "2.3.9",
|
|
37
|
+
"@chromatic-com/storybook": "^4.1.3",
|
|
38
|
+
"@storybook/addon-docs": "^10.1.9",
|
|
39
|
+
"@storybook/addon-onboarding": "^10.1.9",
|
|
40
|
+
"@storybook/react-vite": "^10.1.9",
|
|
41
|
+
"@tailwindcss/postcss": "^4.1.18",
|
|
42
|
+
"@tailwindcss/vite": "^4.1.18",
|
|
43
|
+
"@testing-library/dom": "^10.4.1",
|
|
44
|
+
"@testing-library/jest-dom": "^6.9.1",
|
|
45
|
+
"@testing-library/react": "^16.3.1",
|
|
46
|
+
"@testing-library/user-event": "^14.6.1",
|
|
47
|
+
"@types/node": "^25.0.2",
|
|
48
|
+
"@types/react": "^19.2.7",
|
|
49
|
+
"@types/react-dom": "^19.2.3",
|
|
50
|
+
"@vitejs/plugin-react": "^5.1.2",
|
|
51
|
+
"jsdom": "^27.3.0",
|
|
52
|
+
"lefthook": "^2.0.12",
|
|
53
|
+
"responsive-class-variants": "^1.2.3",
|
|
54
|
+
"storybook": "^10.1.9",
|
|
55
|
+
"tailwindcss": "^4.1.18",
|
|
56
|
+
"tsc-alias": "^1.8.16",
|
|
57
|
+
"typescript": "^5.9.3",
|
|
58
|
+
"vite": "^7.3.0",
|
|
59
|
+
"vitest": "^4.0.15"
|
|
60
|
+
},
|
|
61
|
+
"peerDependencies": {
|
|
62
|
+
"react": "^19.0.0",
|
|
63
|
+
"react-dom": "^19.0.0"
|
|
64
|
+
},
|
|
65
|
+
"dependencies": {
|
|
66
|
+
"@base-ui/react": "^1.0.0",
|
|
67
|
+
"@radix-ui/react-icons": "^1.3.2",
|
|
68
|
+
"clsx": "^2.1.1",
|
|
69
|
+
"sonner": "^2.0.7",
|
|
70
|
+
"tailwind-merge": "^3.4.0"
|
|
71
|
+
},
|
|
72
|
+
"packageManager": "pnpm@10.26.2"
|
|
74
73
|
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
interface SlotProps {
|
|
3
|
-
children?: React.ReactNode;
|
|
4
|
-
}
|
|
5
|
-
declare const Slot: React.ForwardRefExoticComponent<SlotProps & React.RefAttributes<unknown>>;
|
|
6
|
-
type SlottableProps = {
|
|
7
|
-
child: React.ReactNode;
|
|
8
|
-
children: (child: React.ReactNode) => React.JSX.Element;
|
|
9
|
-
};
|
|
10
|
-
declare const Slottable: ({ child, children }: SlottableProps) => React.JSX.Element;
|
|
11
|
-
declare const Root: React.ForwardRefExoticComponent<SlotProps & React.RefAttributes<unknown>>;
|
|
12
|
-
export { Root, Slot, Slottable };
|
|
13
|
-
export type { SlotProps };
|