@websolutespa/ask-ui 1.0.2 → 1.0.4
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/components/accordion.d.mts +25 -0
- package/dist/components/accordion.mjs +55 -0
- package/dist/components/ai-elements/attachments.d.mts +94 -0
- package/dist/components/ai-elements/attachments.mjs +174 -0
- package/dist/components/ai-elements/conversation.d.mts +51 -0
- package/dist/components/ai-elements/conversation.mjs +85 -0
- package/dist/components/ai-elements/message.d.mts +89 -0
- package/dist/components/ai-elements/message.mjs +175 -0
- package/dist/components/ai-elements/prompt-input.d.mts +277 -0
- package/dist/components/ai-elements/prompt-input.mjs +703 -0
- package/dist/components/ai-elements/speech-input.d.mts +64 -0
- package/dist/components/ai-elements/speech-input.mjs +153 -0
- package/dist/components/alert-dialog.d.mts +60 -0
- package/dist/components/alert-dialog.mjs +101 -0
- package/dist/components/alert.d.mts +28 -0
- package/dist/components/alert.mjs +43 -0
- package/dist/components/aspect-ratio.d.mts +9 -0
- package/dist/components/aspect-ratio.mjs +12 -0
- package/dist/components/avatar.d.mts +34 -0
- package/dist/components/avatar.mjs +51 -0
- package/dist/components/badge.d.mts +19 -0
- package/dist/components/badge.mjs +27 -0
- package/dist/components/breadcrumb.d.mts +38 -0
- package/dist/components/breadcrumb.mjs +70 -0
- package/dist/components/button-group.d.mts +28 -0
- package/dist/components/button-group.mjs +38 -0
- package/dist/components/button.d.mts +21 -0
- package/dist/components/button.mjs +47 -0
- package/dist/components/calendar.d.mts +30 -0
- package/dist/components/calendar.mjs +109 -0
- package/dist/components/card.d.mts +37 -0
- package/dist/components/card.mjs +56 -0
- package/dist/components/carousel.d.mts +56 -0
- package/dist/components/carousel.mjs +132 -0
- package/dist/components/chart.d.mts +78 -0
- package/dist/components/chart.mjs +146 -0
- package/dist/components/checkbox.d.mts +11 -0
- package/dist/components/checkbox.mjs +21 -0
- package/dist/components/collapsible.d.mts +15 -0
- package/dist/components/collapsible.mjs +24 -0
- package/dist/components/combobox.d.mts +81 -0
- package/dist/components/combobox.mjs +163 -0
- package/dist/components/command.d.mts +54 -0
- package/dist/components/command.mjs +88 -0
- package/dist/components/context-menu.d.mts +85 -0
- package/dist/components/context-menu.mjs +125 -0
- package/dist/components/dialog.d.mts +51 -0
- package/dist/components/dialog.mjs +96 -0
- package/dist/components/direction.d.mts +15 -0
- package/dist/components/direction.mjs +14 -0
- package/dist/components/drawer.d.mts +47 -0
- package/dist/components/drawer.mjs +79 -0
- package/dist/components/dropdown-menu.d.mts +87 -0
- package/dist/components/dropdown-menu.mjs +131 -0
- package/dist/components/empty.d.mts +35 -0
- package/dist/components/empty.mjs +59 -0
- package/dist/components/field.d.mts +64 -0
- package/dist/components/field.mjs +110 -0
- package/dist/components/hover-card.d.mts +22 -0
- package/dist/components/hover-card.mjs +33 -0
- package/dist/components/input-group.d.mts +43 -0
- package/dist/components/input-group.mjs +79 -0
- package/dist/components/input-otp.d.mts +28 -0
- package/dist/components/input-otp.mjs +47 -0
- package/dist/components/input.d.mts +11 -0
- package/dist/components/input.mjs +14 -0
- package/dist/components/item.d.mts +62 -0
- package/dist/components/item.mjs +117 -0
- package/dist/components/kbd.d.mts +13 -0
- package/dist/components/kbd.mjs +19 -0
- package/dist/components/label.d.mts +11 -0
- package/dist/components/label.mjs +15 -0
- package/dist/components/menubar.d.mts +90 -0
- package/dist/components/menubar.mjs +135 -0
- package/dist/components/native-select.d.mts +21 -0
- package/dist/components/native-select.mjs +37 -0
- package/dist/components/navigation-menu.d.mts +46 -0
- package/dist/components/navigation-menu.mjs +80 -0
- package/dist/components/pagination.d.mts +45 -0
- package/dist/components/pagination.mjs +80 -0
- package/dist/components/popover.d.mts +34 -0
- package/dist/components/popover.mjs +56 -0
- package/dist/components/progress.d.mts +12 -0
- package/dist/components/progress.mjs +20 -0
- package/dist/components/radio-group.d.mts +15 -0
- package/dist/components/radio-group.mjs +27 -0
- package/dist/components/resizable.d.mts +20 -0
- package/dist/components/resizable.mjs +28 -0
- package/dist/components/scroll-area.d.mts +17 -0
- package/dist/components/scroll-area.mjs +37 -0
- package/dist/components/select.d.mts +53 -0
- package/dist/components/select.mjs +100 -0
- package/dist/components/separator.d.mts +13 -0
- package/dist/components/separator.mjs +17 -0
- package/dist/components/sheet.d.mts +42 -0
- package/dist/components/sheet.mjs +90 -0
- package/dist/components/sidebar.d.mts +167 -0
- package/dist/components/sidebar.mjs +374 -0
- package/dist/components/skeleton.d.mts +9 -0
- package/dist/components/skeleton.mjs +12 -0
- package/dist/components/slider.d.mts +15 -0
- package/dist/components/slider.mjs +36 -0
- package/dist/components/sonner.d.mts +9 -0
- package/dist/components/sonner.mjs +30 -0
- package/dist/components/spinner.d.mts +9 -0
- package/dist/components/spinner.mjs +14 -0
- package/dist/components/switch.d.mts +14 -0
- package/dist/components/switch.mjs +20 -0
- package/dist/components/table.d.mts +38 -0
- package/dist/components/table.mjs +67 -0
- package/dist/components/tabs.d.mts +30 -0
- package/dist/components/tabs.mjs +46 -0
- package/dist/components/textarea.d.mts +10 -0
- package/dist/components/textarea.mjs +13 -0
- package/dist/components/toggle-group.d.mts +28 -0
- package/dist/components/toggle-group.mjs +51 -0
- package/dist/components/toggle.d.mts +19 -0
- package/dist/components/toggle.mjs +37 -0
- package/dist/components/tooltip.d.mts +23 -0
- package/dist/components/tooltip.mjs +36 -0
- package/dist/exports/components.d.mts +61 -2248
- package/dist/exports/components.mjs +60 -4481
- package/dist/exports/hooks.d.mts +1 -3
- package/dist/exports/hooks.mjs +1 -1
- package/dist/exports/lib.d.mts +1 -1
- package/dist/exports/lib.mjs +1 -1
- package/dist/hooks/use-mobile.d.mts +4 -0
- package/dist/{use-mobile-SSHtEcOs.mjs → hooks/use-mobile.mjs} +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{utils-CCM7KiiI.d.mts → lib/utils.d.mts} +1 -1
- package/dist/{utils-XdqGR1qq.mjs → lib/utils.mjs} +1 -1
- package/package.json +7 -7
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../lib/utils.mjs";
|
|
3
|
+
import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from "./dialog.mjs";
|
|
4
|
+
import { InputGroup, InputGroupAddon } from "./input-group.mjs";
|
|
5
|
+
import { CheckIcon, SearchIcon } from "lucide-react";
|
|
6
|
+
import "react";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
import { Command } from "cmdk";
|
|
9
|
+
//#region src/components/command.tsx
|
|
10
|
+
function Command$1({ className, ...props }) {
|
|
11
|
+
return /* @__PURE__ */ jsx(Command, {
|
|
12
|
+
"data-slot": "command",
|
|
13
|
+
className: cn("flex size-full flex-col overflow-hidden rounded-xl! bg-popover p-1 text-popover-foreground", className),
|
|
14
|
+
...props
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
function CommandDialog({ title = "Command Palette", description = "Search for a command to run...", children, className, showCloseButton = false, ...props }) {
|
|
18
|
+
return /* @__PURE__ */ jsxs(Dialog, {
|
|
19
|
+
...props,
|
|
20
|
+
children: [/* @__PURE__ */ jsxs(DialogHeader, {
|
|
21
|
+
className: "sr-only",
|
|
22
|
+
children: [/* @__PURE__ */ jsx(DialogTitle, { children: title }), /* @__PURE__ */ jsx(DialogDescription, { children: description })]
|
|
23
|
+
}), /* @__PURE__ */ jsx(DialogContent, {
|
|
24
|
+
className: cn("top-1/3 translate-y-0 overflow-hidden rounded-xl! p-0", className),
|
|
25
|
+
showCloseButton,
|
|
26
|
+
children
|
|
27
|
+
})]
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
function CommandInput({ className, ...props }) {
|
|
31
|
+
return /* @__PURE__ */ jsx("div", {
|
|
32
|
+
"data-slot": "command-input-wrapper",
|
|
33
|
+
className: "p-1 pb-0",
|
|
34
|
+
children: /* @__PURE__ */ jsxs(InputGroup, {
|
|
35
|
+
className: "h-8! rounded-lg! border-input/30 bg-input/30 shadow-none! *:data-[slot=input-group-addon]:pl-2!",
|
|
36
|
+
children: [/* @__PURE__ */ jsx(Command.Input, {
|
|
37
|
+
"data-slot": "command-input",
|
|
38
|
+
className: cn("w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50", className),
|
|
39
|
+
...props
|
|
40
|
+
}), /* @__PURE__ */ jsx(InputGroupAddon, { children: /* @__PURE__ */ jsx(SearchIcon, { className: "size-4 shrink-0 opacity-50" }) })]
|
|
41
|
+
})
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
function CommandList({ className, ...props }) {
|
|
45
|
+
return /* @__PURE__ */ jsx(Command.List, {
|
|
46
|
+
"data-slot": "command-list",
|
|
47
|
+
className: cn("no-scrollbar max-h-72 scroll-py-1 overflow-x-hidden overflow-y-auto outline-none", className),
|
|
48
|
+
...props
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
function CommandEmpty({ className, ...props }) {
|
|
52
|
+
return /* @__PURE__ */ jsx(Command.Empty, {
|
|
53
|
+
"data-slot": "command-empty",
|
|
54
|
+
className: cn("py-6 text-center text-sm", className),
|
|
55
|
+
...props
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
function CommandGroup({ className, ...props }) {
|
|
59
|
+
return /* @__PURE__ */ jsx(Command.Group, {
|
|
60
|
+
"data-slot": "command-group",
|
|
61
|
+
className: cn("overflow-hidden p-1 text-foreground **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium **:[[cmdk-group-heading]]:text-muted-foreground", className),
|
|
62
|
+
...props
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
function CommandSeparator({ className, ...props }) {
|
|
66
|
+
return /* @__PURE__ */ jsx(Command.Separator, {
|
|
67
|
+
"data-slot": "command-separator",
|
|
68
|
+
className: cn("-mx-1 h-px w-auto bg-border", className),
|
|
69
|
+
...props
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
function CommandItem({ className, children, ...props }) {
|
|
73
|
+
return /* @__PURE__ */ jsxs(Command.Item, {
|
|
74
|
+
"data-slot": "command-item",
|
|
75
|
+
className: cn("group/command-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none in-data-[slot=dialog-content]:rounded-lg! data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-selected:bg-muted data-selected:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-selected:**:[svg]:text-foreground", className),
|
|
76
|
+
...props,
|
|
77
|
+
children: [children, /* @__PURE__ */ jsx(CheckIcon, { className: "ml-auto opacity-0 group-has-data-[slot=command-shortcut]/command-item:hidden group-data-[checked=true]/command-item:opacity-100" })]
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
function CommandShortcut({ className, ...props }) {
|
|
81
|
+
return /* @__PURE__ */ jsx("span", {
|
|
82
|
+
"data-slot": "command-shortcut",
|
|
83
|
+
className: cn("ml-auto text-xs tracking-widest text-muted-foreground group-data-selected/command-item:text-foreground", className),
|
|
84
|
+
...props
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
//#endregion
|
|
88
|
+
export { Command$1 as Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut };
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { ContextMenu } from "radix-ui";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
4
|
+
|
|
5
|
+
//#region src/components/context-menu.d.ts
|
|
6
|
+
declare function ContextMenu$1({
|
|
7
|
+
...props
|
|
8
|
+
}: React.ComponentProps<typeof ContextMenu.Root>): _$react_jsx_runtime0.JSX.Element;
|
|
9
|
+
declare function ContextMenuTrigger({
|
|
10
|
+
className,
|
|
11
|
+
...props
|
|
12
|
+
}: React.ComponentProps<typeof ContextMenu.Trigger>): _$react_jsx_runtime0.JSX.Element;
|
|
13
|
+
declare function ContextMenuGroup({
|
|
14
|
+
...props
|
|
15
|
+
}: React.ComponentProps<typeof ContextMenu.Group>): _$react_jsx_runtime0.JSX.Element;
|
|
16
|
+
declare function ContextMenuPortal({
|
|
17
|
+
...props
|
|
18
|
+
}: React.ComponentProps<typeof ContextMenu.Portal>): _$react_jsx_runtime0.JSX.Element;
|
|
19
|
+
declare function ContextMenuSub({
|
|
20
|
+
...props
|
|
21
|
+
}: React.ComponentProps<typeof ContextMenu.Sub>): _$react_jsx_runtime0.JSX.Element;
|
|
22
|
+
declare function ContextMenuRadioGroup({
|
|
23
|
+
...props
|
|
24
|
+
}: React.ComponentProps<typeof ContextMenu.RadioGroup>): _$react_jsx_runtime0.JSX.Element;
|
|
25
|
+
declare function ContextMenuContent({
|
|
26
|
+
className,
|
|
27
|
+
...props
|
|
28
|
+
}: React.ComponentProps<typeof ContextMenu.Content> & {
|
|
29
|
+
side?: 'top' | 'right' | 'bottom' | 'left';
|
|
30
|
+
}): _$react_jsx_runtime0.JSX.Element;
|
|
31
|
+
declare function ContextMenuItem({
|
|
32
|
+
className,
|
|
33
|
+
inset,
|
|
34
|
+
variant,
|
|
35
|
+
...props
|
|
36
|
+
}: React.ComponentProps<typeof ContextMenu.Item> & {
|
|
37
|
+
inset?: boolean;
|
|
38
|
+
variant?: 'default' | 'destructive';
|
|
39
|
+
}): _$react_jsx_runtime0.JSX.Element;
|
|
40
|
+
declare function ContextMenuSubTrigger({
|
|
41
|
+
className,
|
|
42
|
+
inset,
|
|
43
|
+
children,
|
|
44
|
+
...props
|
|
45
|
+
}: React.ComponentProps<typeof ContextMenu.SubTrigger> & {
|
|
46
|
+
inset?: boolean;
|
|
47
|
+
}): _$react_jsx_runtime0.JSX.Element;
|
|
48
|
+
declare function ContextMenuSubContent({
|
|
49
|
+
className,
|
|
50
|
+
...props
|
|
51
|
+
}: React.ComponentProps<typeof ContextMenu.SubContent>): _$react_jsx_runtime0.JSX.Element;
|
|
52
|
+
declare function ContextMenuCheckboxItem({
|
|
53
|
+
className,
|
|
54
|
+
children,
|
|
55
|
+
checked,
|
|
56
|
+
inset,
|
|
57
|
+
...props
|
|
58
|
+
}: React.ComponentProps<typeof ContextMenu.CheckboxItem> & {
|
|
59
|
+
inset?: boolean;
|
|
60
|
+
}): _$react_jsx_runtime0.JSX.Element;
|
|
61
|
+
declare function ContextMenuRadioItem({
|
|
62
|
+
className,
|
|
63
|
+
children,
|
|
64
|
+
inset,
|
|
65
|
+
...props
|
|
66
|
+
}: React.ComponentProps<typeof ContextMenu.RadioItem> & {
|
|
67
|
+
inset?: boolean;
|
|
68
|
+
}): _$react_jsx_runtime0.JSX.Element;
|
|
69
|
+
declare function ContextMenuLabel({
|
|
70
|
+
className,
|
|
71
|
+
inset,
|
|
72
|
+
...props
|
|
73
|
+
}: React.ComponentProps<typeof ContextMenu.Label> & {
|
|
74
|
+
inset?: boolean;
|
|
75
|
+
}): _$react_jsx_runtime0.JSX.Element;
|
|
76
|
+
declare function ContextMenuSeparator({
|
|
77
|
+
className,
|
|
78
|
+
...props
|
|
79
|
+
}: React.ComponentProps<typeof ContextMenu.Separator>): _$react_jsx_runtime0.JSX.Element;
|
|
80
|
+
declare function ContextMenuShortcut({
|
|
81
|
+
className,
|
|
82
|
+
...props
|
|
83
|
+
}: React.ComponentProps<'span'>): _$react_jsx_runtime0.JSX.Element;
|
|
84
|
+
//#endregion
|
|
85
|
+
export { ContextMenu$1 as ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger };
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../lib/utils.mjs";
|
|
3
|
+
import { CheckIcon, ChevronRightIcon } from "lucide-react";
|
|
4
|
+
import { ContextMenu } from "radix-ui";
|
|
5
|
+
import "react";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
//#region src/components/context-menu.tsx
|
|
8
|
+
function ContextMenu$1({ ...props }) {
|
|
9
|
+
return /* @__PURE__ */ jsx(ContextMenu.Root, {
|
|
10
|
+
"data-slot": "context-menu",
|
|
11
|
+
...props
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
function ContextMenuTrigger({ className, ...props }) {
|
|
15
|
+
return /* @__PURE__ */ jsx(ContextMenu.Trigger, {
|
|
16
|
+
"data-slot": "context-menu-trigger",
|
|
17
|
+
className: cn("select-none", className),
|
|
18
|
+
...props
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
function ContextMenuGroup({ ...props }) {
|
|
22
|
+
return /* @__PURE__ */ jsx(ContextMenu.Group, {
|
|
23
|
+
"data-slot": "context-menu-group",
|
|
24
|
+
...props
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
function ContextMenuPortal({ ...props }) {
|
|
28
|
+
return /* @__PURE__ */ jsx(ContextMenu.Portal, {
|
|
29
|
+
"data-slot": "context-menu-portal",
|
|
30
|
+
...props
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
function ContextMenuSub({ ...props }) {
|
|
34
|
+
return /* @__PURE__ */ jsx(ContextMenu.Sub, {
|
|
35
|
+
"data-slot": "context-menu-sub",
|
|
36
|
+
...props
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
function ContextMenuRadioGroup({ ...props }) {
|
|
40
|
+
return /* @__PURE__ */ jsx(ContextMenu.RadioGroup, {
|
|
41
|
+
"data-slot": "context-menu-radio-group",
|
|
42
|
+
...props
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
function ContextMenuContent({ className, ...props }) {
|
|
46
|
+
return /* @__PURE__ */ jsx(ContextMenu.Portal, { children: /* @__PURE__ */ jsx(ContextMenu.Content, {
|
|
47
|
+
"data-slot": "context-menu-content",
|
|
48
|
+
className: cn("z-50 max-h-(--radix-context-menu-content-available-height) min-w-36 origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className),
|
|
49
|
+
...props
|
|
50
|
+
}) });
|
|
51
|
+
}
|
|
52
|
+
function ContextMenuItem({ className, inset, variant = "default", ...props }) {
|
|
53
|
+
return /* @__PURE__ */ jsx(ContextMenu.Item, {
|
|
54
|
+
"data-slot": "context-menu-item",
|
|
55
|
+
"data-inset": inset,
|
|
56
|
+
"data-variant": variant,
|
|
57
|
+
className: cn("group/context-menu-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 focus:*:[svg]:text-accent-foreground data-[variant=destructive]:*:[svg]:text-destructive", className),
|
|
58
|
+
...props
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
function ContextMenuSubTrigger({ className, inset, children, ...props }) {
|
|
62
|
+
return /* @__PURE__ */ jsxs(ContextMenu.SubTrigger, {
|
|
63
|
+
"data-slot": "context-menu-sub-trigger",
|
|
64
|
+
"data-inset": inset,
|
|
65
|
+
className: cn("flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-8 data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
|
|
66
|
+
...props,
|
|
67
|
+
children: [children, /* @__PURE__ */ jsx(ChevronRightIcon, { className: "ml-auto" })]
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
function ContextMenuSubContent({ className, ...props }) {
|
|
71
|
+
return /* @__PURE__ */ jsx(ContextMenu.SubContent, {
|
|
72
|
+
"data-slot": "context-menu-sub-content",
|
|
73
|
+
className: cn("z-50 min-w-32 origin-(--radix-context-menu-content-transform-origin) overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className),
|
|
74
|
+
...props
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
function ContextMenuCheckboxItem({ className, children, checked, inset, ...props }) {
|
|
78
|
+
return /* @__PURE__ */ jsxs(ContextMenu.CheckboxItem, {
|
|
79
|
+
"data-slot": "context-menu-checkbox-item",
|
|
80
|
+
"data-inset": inset,
|
|
81
|
+
className: cn("relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-8 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
|
|
82
|
+
checked,
|
|
83
|
+
...props,
|
|
84
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
85
|
+
className: "pointer-events-none absolute right-2",
|
|
86
|
+
children: /* @__PURE__ */ jsx(ContextMenu.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, {}) })
|
|
87
|
+
}), children]
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
function ContextMenuRadioItem({ className, children, inset, ...props }) {
|
|
91
|
+
return /* @__PURE__ */ jsxs(ContextMenu.RadioItem, {
|
|
92
|
+
"data-slot": "context-menu-radio-item",
|
|
93
|
+
"data-inset": inset,
|
|
94
|
+
className: cn("relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-8 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
|
|
95
|
+
...props,
|
|
96
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
97
|
+
className: "pointer-events-none absolute right-2",
|
|
98
|
+
children: /* @__PURE__ */ jsx(ContextMenu.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, {}) })
|
|
99
|
+
}), children]
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
function ContextMenuLabel({ className, inset, ...props }) {
|
|
103
|
+
return /* @__PURE__ */ jsx(ContextMenu.Label, {
|
|
104
|
+
"data-slot": "context-menu-label",
|
|
105
|
+
"data-inset": inset,
|
|
106
|
+
className: cn("px-2 py-1.5 text-xs font-medium text-muted-foreground data-inset:pl-8", className),
|
|
107
|
+
...props
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
function ContextMenuSeparator({ className, ...props }) {
|
|
111
|
+
return /* @__PURE__ */ jsx(ContextMenu.Separator, {
|
|
112
|
+
"data-slot": "context-menu-separator",
|
|
113
|
+
className: cn("-mx-1 my-1 h-px bg-border", className),
|
|
114
|
+
...props
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
function ContextMenuShortcut({ className, ...props }) {
|
|
118
|
+
return /* @__PURE__ */ jsx("span", {
|
|
119
|
+
"data-slot": "context-menu-shortcut",
|
|
120
|
+
className: cn("ml-auto text-xs tracking-widest text-muted-foreground group-focus/context-menu-item:text-accent-foreground", className),
|
|
121
|
+
...props
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
//#endregion
|
|
125
|
+
export { ContextMenu$1 as ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger };
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Dialog } from "radix-ui";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
4
|
+
|
|
5
|
+
//#region src/components/dialog.d.ts
|
|
6
|
+
declare function Dialog$1({
|
|
7
|
+
...props
|
|
8
|
+
}: React.ComponentProps<typeof Dialog.Root>): _$react_jsx_runtime0.JSX.Element;
|
|
9
|
+
declare function DialogTrigger({
|
|
10
|
+
...props
|
|
11
|
+
}: React.ComponentProps<typeof Dialog.Trigger>): _$react_jsx_runtime0.JSX.Element;
|
|
12
|
+
declare function DialogPortal({
|
|
13
|
+
...props
|
|
14
|
+
}: React.ComponentProps<typeof Dialog.Portal>): _$react_jsx_runtime0.JSX.Element;
|
|
15
|
+
declare function DialogClose({
|
|
16
|
+
...props
|
|
17
|
+
}: React.ComponentProps<typeof Dialog.Close>): _$react_jsx_runtime0.JSX.Element;
|
|
18
|
+
declare function DialogOverlay({
|
|
19
|
+
className,
|
|
20
|
+
...props
|
|
21
|
+
}: React.ComponentProps<typeof Dialog.Overlay>): _$react_jsx_runtime0.JSX.Element;
|
|
22
|
+
declare function DialogContent({
|
|
23
|
+
className,
|
|
24
|
+
children,
|
|
25
|
+
showCloseButton,
|
|
26
|
+
...props
|
|
27
|
+
}: React.ComponentProps<typeof Dialog.Content> & {
|
|
28
|
+
showCloseButton?: boolean;
|
|
29
|
+
}): _$react_jsx_runtime0.JSX.Element;
|
|
30
|
+
declare function DialogHeader({
|
|
31
|
+
className,
|
|
32
|
+
...props
|
|
33
|
+
}: React.ComponentProps<'div'>): _$react_jsx_runtime0.JSX.Element;
|
|
34
|
+
declare function DialogFooter({
|
|
35
|
+
className,
|
|
36
|
+
showCloseButton,
|
|
37
|
+
children,
|
|
38
|
+
...props
|
|
39
|
+
}: React.ComponentProps<'div'> & {
|
|
40
|
+
showCloseButton?: boolean;
|
|
41
|
+
}): _$react_jsx_runtime0.JSX.Element;
|
|
42
|
+
declare function DialogTitle({
|
|
43
|
+
className,
|
|
44
|
+
...props
|
|
45
|
+
}: React.ComponentProps<typeof Dialog.Title>): _$react_jsx_runtime0.JSX.Element;
|
|
46
|
+
declare function DialogDescription({
|
|
47
|
+
className,
|
|
48
|
+
...props
|
|
49
|
+
}: React.ComponentProps<typeof Dialog.Description>): _$react_jsx_runtime0.JSX.Element;
|
|
50
|
+
//#endregion
|
|
51
|
+
export { Dialog$1 as Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../lib/utils.mjs";
|
|
3
|
+
import { Button } from "./button.mjs";
|
|
4
|
+
import { XIcon } from "lucide-react";
|
|
5
|
+
import { Dialog } from "radix-ui";
|
|
6
|
+
import "react";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
//#region src/components/dialog.tsx
|
|
9
|
+
function Dialog$1({ ...props }) {
|
|
10
|
+
return /* @__PURE__ */ jsx(Dialog.Root, {
|
|
11
|
+
"data-slot": "dialog",
|
|
12
|
+
...props
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
function DialogTrigger({ ...props }) {
|
|
16
|
+
return /* @__PURE__ */ jsx(Dialog.Trigger, {
|
|
17
|
+
"data-slot": "dialog-trigger",
|
|
18
|
+
...props
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
function DialogPortal({ ...props }) {
|
|
22
|
+
return /* @__PURE__ */ jsx(Dialog.Portal, {
|
|
23
|
+
"data-slot": "dialog-portal",
|
|
24
|
+
...props
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
function DialogClose({ ...props }) {
|
|
28
|
+
return /* @__PURE__ */ jsx(Dialog.Close, {
|
|
29
|
+
"data-slot": "dialog-close",
|
|
30
|
+
...props
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
function DialogOverlay({ className, ...props }) {
|
|
34
|
+
return /* @__PURE__ */ jsx(Dialog.Overlay, {
|
|
35
|
+
"data-slot": "dialog-overlay",
|
|
36
|
+
className: cn("fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0", className),
|
|
37
|
+
...props
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
function DialogContent({ className, children, showCloseButton = true, ...props }) {
|
|
41
|
+
return /* @__PURE__ */ jsxs(DialogPortal, { children: [/* @__PURE__ */ jsx(DialogOverlay, {}), /* @__PURE__ */ jsxs(Dialog.Content, {
|
|
42
|
+
"data-slot": "dialog-content",
|
|
43
|
+
className: cn("fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-6 rounded-xl bg-popover p-6 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-md data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className),
|
|
44
|
+
...props,
|
|
45
|
+
children: [children, showCloseButton && /* @__PURE__ */ jsx(Dialog.Close, {
|
|
46
|
+
"data-slot": "dialog-close",
|
|
47
|
+
asChild: true,
|
|
48
|
+
children: /* @__PURE__ */ jsxs(Button, {
|
|
49
|
+
variant: "ghost",
|
|
50
|
+
className: "absolute top-4 right-4",
|
|
51
|
+
size: "icon-sm",
|
|
52
|
+
children: [/* @__PURE__ */ jsx(XIcon, {}), /* @__PURE__ */ jsx("span", {
|
|
53
|
+
className: "sr-only",
|
|
54
|
+
children: "Close"
|
|
55
|
+
})]
|
|
56
|
+
})
|
|
57
|
+
})]
|
|
58
|
+
})] });
|
|
59
|
+
}
|
|
60
|
+
function DialogHeader({ className, ...props }) {
|
|
61
|
+
return /* @__PURE__ */ jsx("div", {
|
|
62
|
+
"data-slot": "dialog-header",
|
|
63
|
+
className: cn("flex flex-col gap-2", className),
|
|
64
|
+
...props
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
function DialogFooter({ className, showCloseButton = false, children, ...props }) {
|
|
68
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
69
|
+
"data-slot": "dialog-footer",
|
|
70
|
+
className: cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", className),
|
|
71
|
+
...props,
|
|
72
|
+
children: [children, showCloseButton && /* @__PURE__ */ jsx(Dialog.Close, {
|
|
73
|
+
asChild: true,
|
|
74
|
+
children: /* @__PURE__ */ jsx(Button, {
|
|
75
|
+
variant: "outline",
|
|
76
|
+
children: "Close"
|
|
77
|
+
})
|
|
78
|
+
})]
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
function DialogTitle({ className, ...props }) {
|
|
82
|
+
return /* @__PURE__ */ jsx(Dialog.Title, {
|
|
83
|
+
"data-slot": "dialog-title",
|
|
84
|
+
className: cn("leading-none font-medium", className),
|
|
85
|
+
...props
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
function DialogDescription({ className, ...props }) {
|
|
89
|
+
return /* @__PURE__ */ jsx(Dialog.Description, {
|
|
90
|
+
"data-slot": "dialog-description",
|
|
91
|
+
className: cn("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground", className),
|
|
92
|
+
...props
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
//#endregion
|
|
96
|
+
export { Dialog$1 as Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Direction } from "radix-ui";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
4
|
+
|
|
5
|
+
//#region src/components/direction.d.ts
|
|
6
|
+
declare function DirectionProvider({
|
|
7
|
+
dir,
|
|
8
|
+
direction,
|
|
9
|
+
children
|
|
10
|
+
}: React.ComponentProps<typeof Direction.DirectionProvider> & {
|
|
11
|
+
direction?: React.ComponentProps<typeof Direction.DirectionProvider>['dir'];
|
|
12
|
+
}): _$react_jsx_runtime0.JSX.Element;
|
|
13
|
+
declare const useDirection: typeof Direction.useDirection;
|
|
14
|
+
//#endregion
|
|
15
|
+
export { DirectionProvider, useDirection };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { Direction } from "radix-ui";
|
|
3
|
+
import "react";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
//#region src/components/direction.tsx
|
|
6
|
+
function DirectionProvider({ dir, direction, children }) {
|
|
7
|
+
return /* @__PURE__ */ jsx(Direction.DirectionProvider, {
|
|
8
|
+
dir: direction ?? dir,
|
|
9
|
+
children
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
const useDirection = Direction.useDirection;
|
|
13
|
+
//#endregion
|
|
14
|
+
export { DirectionProvider, useDirection };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
|
+
import { Drawer } from "vaul";
|
|
4
|
+
|
|
5
|
+
//#region src/components/drawer.d.ts
|
|
6
|
+
declare function Drawer$1({
|
|
7
|
+
...props
|
|
8
|
+
}: React.ComponentProps<typeof Drawer.Root>): _$react_jsx_runtime0.JSX.Element;
|
|
9
|
+
declare function DrawerTrigger({
|
|
10
|
+
...props
|
|
11
|
+
}: React.ComponentProps<typeof Drawer.Trigger>): _$react_jsx_runtime0.JSX.Element;
|
|
12
|
+
declare function DrawerPortal({
|
|
13
|
+
...props
|
|
14
|
+
}: React.ComponentProps<typeof Drawer.Portal>): _$react_jsx_runtime0.JSX.Element;
|
|
15
|
+
declare function DrawerClose({
|
|
16
|
+
...props
|
|
17
|
+
}: React.ComponentProps<typeof Drawer.Close>): _$react_jsx_runtime0.JSX.Element;
|
|
18
|
+
declare function DrawerOverlay({
|
|
19
|
+
className,
|
|
20
|
+
...props
|
|
21
|
+
}: React.ComponentProps<typeof Drawer.Overlay>): _$react_jsx_runtime0.JSX.Element;
|
|
22
|
+
declare function DrawerContent({
|
|
23
|
+
className,
|
|
24
|
+
container,
|
|
25
|
+
children,
|
|
26
|
+
...props
|
|
27
|
+
}: React.ComponentProps<typeof Drawer.Content> & {
|
|
28
|
+
container?: HTMLDivElement | null;
|
|
29
|
+
}): _$react_jsx_runtime0.JSX.Element;
|
|
30
|
+
declare function DrawerHeader({
|
|
31
|
+
className,
|
|
32
|
+
...props
|
|
33
|
+
}: React.ComponentProps<'div'>): _$react_jsx_runtime0.JSX.Element;
|
|
34
|
+
declare function DrawerFooter({
|
|
35
|
+
className,
|
|
36
|
+
...props
|
|
37
|
+
}: React.ComponentProps<'div'>): _$react_jsx_runtime0.JSX.Element;
|
|
38
|
+
declare function DrawerTitle({
|
|
39
|
+
className,
|
|
40
|
+
...props
|
|
41
|
+
}: React.ComponentProps<typeof Drawer.Title>): _$react_jsx_runtime0.JSX.Element;
|
|
42
|
+
declare function DrawerDescription({
|
|
43
|
+
className,
|
|
44
|
+
...props
|
|
45
|
+
}: React.ComponentProps<typeof Drawer.Description>): _$react_jsx_runtime0.JSX.Element;
|
|
46
|
+
//#endregion
|
|
47
|
+
export { Drawer$1 as Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger };
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../lib/utils.mjs";
|
|
3
|
+
import "react";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { Drawer } from "vaul";
|
|
6
|
+
//#region src/components/drawer.tsx
|
|
7
|
+
function Drawer$1({ ...props }) {
|
|
8
|
+
return /* @__PURE__ */ jsx(Drawer.Root, {
|
|
9
|
+
"data-slot": "drawer",
|
|
10
|
+
...props
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
function DrawerTrigger({ ...props }) {
|
|
14
|
+
return /* @__PURE__ */ jsx(Drawer.Trigger, {
|
|
15
|
+
"data-slot": "drawer-trigger",
|
|
16
|
+
...props
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
function DrawerPortal({ ...props }) {
|
|
20
|
+
return /* @__PURE__ */ jsx(Drawer.Portal, {
|
|
21
|
+
"data-slot": "drawer-portal",
|
|
22
|
+
...props
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
function DrawerClose({ ...props }) {
|
|
26
|
+
return /* @__PURE__ */ jsx(Drawer.Close, {
|
|
27
|
+
"data-slot": "drawer-close",
|
|
28
|
+
...props
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
function DrawerOverlay({ className, ...props }) {
|
|
32
|
+
return /* @__PURE__ */ jsx(Drawer.Overlay, {
|
|
33
|
+
"data-slot": "drawer-overlay",
|
|
34
|
+
className: cn("fixed inset-0 z-9999 bg-black/10 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0", className),
|
|
35
|
+
...props
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
function DrawerContent({ className, container, children, ...props }) {
|
|
39
|
+
return /* @__PURE__ */ jsxs(DrawerPortal, {
|
|
40
|
+
"data-slot": "drawer-portal",
|
|
41
|
+
container,
|
|
42
|
+
children: [/* @__PURE__ */ jsx(DrawerOverlay, {}), /* @__PURE__ */ jsxs(Drawer.Content, {
|
|
43
|
+
"data-slot": "drawer-content",
|
|
44
|
+
className: cn("group/drawer-content fixed z-9999 flex h-auto flex-col bg-popover text-sm text-popover-foreground data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-xl data-[vaul-drawer-direction=bottom]:border-t data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:rounded-r-xl data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:rounded-l-xl data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-xl data-[vaul-drawer-direction=top]:border-b data-[vaul-drawer-direction=left]:sm:max-w-sm data-[vaul-drawer-direction=right]:sm:max-w-sm", className),
|
|
45
|
+
...props,
|
|
46
|
+
children: [/* @__PURE__ */ jsx("div", { className: "mx-auto mt-4 hidden h-1.5 w-[100px] shrink-0 rounded-full bg-muted group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }), children]
|
|
47
|
+
})]
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
function DrawerHeader({ className, ...props }) {
|
|
51
|
+
return /* @__PURE__ */ jsx("div", {
|
|
52
|
+
"data-slot": "drawer-header",
|
|
53
|
+
className: cn("flex flex-col gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-1.5 md:text-left", className),
|
|
54
|
+
...props
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
function DrawerFooter({ className, ...props }) {
|
|
58
|
+
return /* @__PURE__ */ jsx("div", {
|
|
59
|
+
"data-slot": "drawer-footer",
|
|
60
|
+
className: cn("mt-auto flex flex-col gap-2 p-4", className),
|
|
61
|
+
...props
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
function DrawerTitle({ className, ...props }) {
|
|
65
|
+
return /* @__PURE__ */ jsx(Drawer.Title, {
|
|
66
|
+
"data-slot": "drawer-title",
|
|
67
|
+
className: cn("font-medium text-foreground", className),
|
|
68
|
+
...props
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
function DrawerDescription({ className, ...props }) {
|
|
72
|
+
return /* @__PURE__ */ jsx(Drawer.Description, {
|
|
73
|
+
"data-slot": "drawer-description",
|
|
74
|
+
className: cn("text-sm text-muted-foreground", className),
|
|
75
|
+
...props
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
//#endregion
|
|
79
|
+
export { Drawer$1 as Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger };
|