@copilotkit/react-ui 0.2.0 → 0.4.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/.turbo/turbo-build.log +193 -16
- package/CHANGELOG.md +24 -0
- package/LICENSE +21 -0
- package/dist/chunk-46XC7ODX.mjs +72 -0
- package/dist/chunk-46XC7ODX.mjs.map +1 -0
- package/dist/chunk-4HK6C362.mjs +106 -0
- package/dist/chunk-4HK6C362.mjs.map +1 -0
- package/dist/chunk-6LAC5RA2.mjs +28 -0
- package/dist/chunk-6LAC5RA2.mjs.map +1 -0
- package/dist/chunk-6LRNF2VU.mjs +12 -0
- package/dist/chunk-6LRNF2VU.mjs.map +1 -0
- package/dist/chunk-7NSRDJ5C.mjs +3 -0
- package/dist/chunk-7NSRDJ5C.mjs.map +1 -0
- package/dist/chunk-BB6IP63P.mjs +29 -0
- package/dist/chunk-BB6IP63P.mjs.map +1 -0
- package/dist/chunk-BIPCPNHG.mjs +18 -0
- package/dist/chunk-BIPCPNHG.mjs.map +1 -0
- package/dist/chunk-BS6RR2DJ.mjs +25 -0
- package/dist/chunk-BS6RR2DJ.mjs.map +1 -0
- package/dist/chunk-DOMJCSI6.mjs +26 -0
- package/dist/chunk-DOMJCSI6.mjs.map +1 -0
- package/dist/chunk-E2YBQYWM.mjs +69 -0
- package/dist/chunk-E2YBQYWM.mjs.map +1 -0
- package/dist/chunk-E5BOIXYO.mjs +45 -0
- package/dist/chunk-E5BOIXYO.mjs.map +1 -0
- package/dist/chunk-H4VKQGVU.mjs +3 -0
- package/dist/chunk-H4VKQGVU.mjs.map +1 -0
- package/dist/chunk-I2AB5FK4.mjs +123 -0
- package/dist/chunk-I2AB5FK4.mjs.map +1 -0
- package/dist/chunk-IU3WTXLQ.mjs +3 -0
- package/dist/chunk-IU3WTXLQ.mjs.map +1 -0
- package/dist/chunk-KR7MH7XO.mjs +481 -0
- package/dist/chunk-KR7MH7XO.mjs.map +1 -0
- package/dist/chunk-KXJV37FS.mjs +33 -0
- package/dist/chunk-KXJV37FS.mjs.map +1 -0
- package/dist/chunk-MC6KTH4X.mjs +12 -0
- package/dist/chunk-MC6KTH4X.mjs.map +1 -0
- package/dist/chunk-MRXNTQOX.mjs +55 -0
- package/dist/chunk-MRXNTQOX.mjs.map +1 -0
- package/dist/chunk-N7KB3Z57.mjs +23 -0
- package/dist/chunk-N7KB3Z57.mjs.map +1 -0
- package/dist/chunk-QEXWZWJL.mjs +75 -0
- package/dist/chunk-QEXWZWJL.mjs.map +1 -0
- package/dist/chunk-RSONJDLO.mjs +28 -0
- package/dist/chunk-RSONJDLO.mjs.map +1 -0
- package/dist/chunk-SF56HSZW.mjs +48 -0
- package/dist/chunk-SF56HSZW.mjs.map +1 -0
- package/dist/chunk-TVTG3V4F.mjs +40 -0
- package/dist/chunk-TVTG3V4F.mjs.map +1 -0
- package/dist/chunk-U6NJWGTV.mjs +3 -0
- package/dist/chunk-U6NJWGTV.mjs.map +1 -0
- package/dist/chunk-V6QYUEJR.mjs +47 -0
- package/dist/chunk-V6QYUEJR.mjs.map +1 -0
- package/dist/chunk-VQNV2DHJ.mjs +142 -0
- package/dist/chunk-VQNV2DHJ.mjs.map +1 -0
- package/dist/chunk-VSNDSL6W.mjs +74 -0
- package/dist/chunk-VSNDSL6W.mjs.map +1 -0
- package/dist/chunk-XZFO2YEG.mjs +53 -0
- package/dist/chunk-XZFO2YEG.mjs.map +1 -0
- package/dist/components/chat-components/chat-list.d.ts +8 -0
- package/dist/components/chat-components/chat-list.mjs +13 -0
- package/dist/components/chat-components/chat-list.mjs.map +1 -0
- package/dist/components/chat-components/chat-message-actions.d.ts +8 -0
- package/dist/components/chat-components/chat-message-actions.mjs +8 -0
- package/dist/components/chat-components/chat-message-actions.mjs.map +1 -0
- package/dist/components/chat-components/chat-message.d.ts +8 -0
- package/dist/components/chat-components/chat-message.mjs +11 -0
- package/dist/components/chat-components/chat-message.mjs.map +1 -0
- package/dist/components/chat-components/chat-panel.d.ts +8 -0
- package/dist/components/chat-components/chat-panel.mjs +10 -0
- package/dist/components/chat-components/chat-panel.mjs.map +1 -0
- package/dist/components/chat-components/chat-scroll-anchor.d.ts +6 -0
- package/dist/components/chat-components/chat-scroll-anchor.mjs +5 -0
- package/dist/components/chat-components/chat-scroll-anchor.mjs.map +1 -0
- package/dist/components/chat-components/clear-history.d.ts +9 -0
- package/dist/components/chat-components/clear-history.mjs +81 -0
- package/dist/components/chat-components/clear-history.mjs.map +1 -0
- package/dist/components/chat-components/copilot-chat.d.ts +12 -0
- package/dist/components/chat-components/copilot-chat.mjs +22 -0
- package/dist/components/chat-components/copilot-chat.mjs.map +1 -0
- package/dist/components/chat-components/default-empty-screen.d.ts +8 -0
- package/dist/components/chat-components/default-empty-screen.mjs +8 -0
- package/dist/components/chat-components/default-empty-screen.mjs.map +1 -0
- package/dist/components/chat-components/external-link.d.ts +6 -0
- package/dist/components/chat-components/external-link.mjs +4 -0
- package/dist/components/chat-components/external-link.mjs.map +1 -0
- package/dist/components/chat-components/markdown.d.ts +6 -0
- package/dist/components/chat-components/markdown.mjs +4 -0
- package/dist/components/chat-components/markdown.mjs.map +1 -0
- package/dist/components/chat-components/prompt-form.d.ts +9 -0
- package/dist/components/chat-components/prompt-form.mjs +9 -0
- package/dist/components/chat-components/prompt-form.mjs.map +1 -0
- package/dist/components/chat-components/theme-toggle.d.ts +3 -0
- package/dist/components/chat-components/theme-toggle.mjs +36 -0
- package/dist/components/chat-components/theme-toggle.mjs.map +1 -0
- package/dist/components/chat-components/toaster.d.ts +1 -0
- package/dist/components/chat-components/toaster.mjs +4 -0
- package/dist/components/chat-components/toaster.mjs.map +1 -0
- package/dist/components/chat-components/ui/alert-dialog.d.ts +20 -0
- package/dist/components/chat-components/ui/alert-dialog.mjs +6 -0
- package/dist/components/chat-components/ui/alert-dialog.mjs.map +1 -0
- package/dist/components/chat-components/ui/badge.d.ts +12 -0
- package/dist/components/chat-components/ui/badge.mjs +31 -0
- package/dist/components/chat-components/ui/badge.mjs.map +1 -0
- package/dist/components/chat-components/ui/button.d.ts +14 -0
- package/dist/components/chat-components/ui/button.mjs +5 -0
- package/dist/components/chat-components/ui/button.mjs.map +1 -0
- package/dist/components/chat-components/ui/codeblock.d.ts +14 -0
- package/dist/components/chat-components/ui/codeblock.mjs +8 -0
- package/dist/components/chat-components/ui/codeblock.mjs.map +1 -0
- package/dist/components/chat-components/ui/dialog.d.ts +18 -0
- package/dist/components/chat-components/ui/dialog.mjs +119 -0
- package/dist/components/chat-components/ui/dialog.mjs.map +1 -0
- package/dist/components/chat-components/ui/dropdown-menu.d.ts +24 -0
- package/dist/components/chat-components/ui/dropdown-menu.mjs +84 -0
- package/dist/components/chat-components/ui/dropdown-menu.mjs.map +1 -0
- package/dist/components/chat-components/ui/icons.d.ts +33 -0
- package/dist/components/chat-components/ui/icons.mjs +5 -0
- package/dist/components/chat-components/ui/icons.mjs.map +1 -0
- package/dist/components/chat-components/ui/input.d.ts +7 -0
- package/dist/components/chat-components/ui/input.mjs +23 -0
- package/dist/components/chat-components/ui/input.mjs.map +1 -0
- package/dist/components/chat-components/ui/label.d.ts +8 -0
- package/dist/components/chat-components/ui/label.mjs +22 -0
- package/dist/components/chat-components/ui/label.mjs.map +1 -0
- package/dist/components/chat-components/ui/select.d.ts +13 -0
- package/dist/components/chat-components/ui/select.mjs +99 -0
- package/dist/components/chat-components/ui/select.mjs.map +1 -0
- package/dist/components/chat-components/ui/separator.d.ts +6 -0
- package/dist/components/chat-components/ui/separator.mjs +5 -0
- package/dist/components/chat-components/ui/separator.mjs.map +1 -0
- package/dist/components/chat-components/ui/sheet.d.ts +19 -0
- package/dist/components/chat-components/ui/sheet.mjs +109 -0
- package/dist/components/chat-components/ui/sheet.mjs.map +1 -0
- package/dist/components/chat-components/ui/switch.d.ts +6 -0
- package/dist/components/chat-components/ui/switch.mjs +27 -0
- package/dist/components/chat-components/ui/switch.mjs.map +1 -0
- package/dist/components/chat-components/ui/textarea.d.ts +7 -0
- package/dist/components/chat-components/ui/textarea.mjs +22 -0
- package/dist/components/chat-components/ui/textarea.mjs.map +1 -0
- package/dist/components/chat-components/ui/tooltip.d.ts +9 -0
- package/dist/components/chat-components/ui/tooltip.mjs +5 -0
- package/dist/components/chat-components/ui/tooltip.mjs.map +1 -0
- package/dist/components/index.d.ts +9 -0
- package/dist/components/index.mjs +26 -0
- package/dist/components/index.mjs.map +1 -0
- package/dist/components/sidebar/copilot-sidebar-ui-provider.d.ts +8 -0
- package/dist/components/sidebar/copilot-sidebar-ui-provider.mjs +25 -0
- package/dist/components/sidebar/copilot-sidebar-ui-provider.mjs.map +1 -0
- package/dist/components/sidebar/copilot-sidebar.d.ts +6 -0
- package/dist/components/sidebar/copilot-sidebar.mjs +23 -0
- package/dist/components/sidebar/copilot-sidebar.mjs.map +1 -0
- package/dist/components/sidebar/sidebar-context.d.ts +9 -0
- package/dist/components/sidebar/sidebar-context.mjs +4 -0
- package/dist/components/sidebar/sidebar-context.mjs.map +1 -0
- package/dist/context/index.d.ts +1 -0
- package/dist/context/index.mjs +3 -0
- package/dist/context/index.mjs.map +1 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.mjs +3 -0
- package/dist/hooks/index.mjs.map +1 -0
- package/dist/hooks/use-at-bottom.d.ts +3 -0
- package/dist/hooks/use-at-bottom.mjs +4 -0
- package/dist/hooks/use-at-bottom.mjs.map +1 -0
- package/dist/hooks/use-copy-to-clipboard.d.ts +9 -0
- package/dist/hooks/use-copy-to-clipboard.mjs +4 -0
- package/dist/hooks/use-copy-to-clipboard.mjs.map +1 -0
- package/dist/hooks/use-enter-submit.d.ts +8 -0
- package/dist/hooks/use-enter-submit.mjs +4 -0
- package/dist/hooks/use-enter-submit.mjs.map +1 -0
- package/dist/index.css +1249 -1
- package/dist/index.css.map +1 -0
- package/dist/index.d.ts +9 -2
- package/dist/index.mjs +29 -0
- package/dist/index.mjs.map +1 -0
- package/dist/lib/utils.d.ts +8 -0
- package/dist/lib/utils.mjs +4 -0
- package/dist/lib/utils.mjs.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.mjs +3 -0
- package/dist/types/index.mjs.map +1 -0
- package/dist/types/types.d.ts +16 -0
- package/dist/types/types.mjs +3 -0
- package/dist/types/types.mjs.map +1 -0
- package/package.json +39 -8
- package/src/components/chat-components/chat-list.tsx +32 -0
- package/src/components/chat-components/chat-message-actions.tsx +40 -0
- package/src/components/chat-components/chat-message.tsx +74 -0
- package/src/components/chat-components/chat-panel.tsx +77 -0
- package/src/components/chat-components/chat-scroll-anchor.tsx +29 -0
- package/src/components/chat-components/clear-history.tsx +73 -0
- package/src/components/chat-components/copilot-chat.tsx +56 -0
- package/src/components/chat-components/default-empty-screen.tsx +64 -0
- package/src/components/chat-components/external-link.tsx +29 -0
- package/src/components/chat-components/markdown.tsx +9 -0
- package/src/components/chat-components/prompt-form.tsx +91 -0
- package/src/components/chat-components/theme-toggle.tsx +31 -0
- package/src/components/chat-components/toaster.tsx +3 -0
- package/src/components/chat-components/ui/alert-dialog.tsx +150 -0
- package/src/components/chat-components/ui/badge.tsx +36 -0
- package/src/components/chat-components/ui/button.tsx +57 -0
- package/src/components/chat-components/ui/codeblock.tsx +142 -0
- package/src/components/chat-components/ui/dialog.tsx +128 -0
- package/src/components/chat-components/ui/dropdown-menu.tsx +128 -0
- package/src/components/chat-components/ui/icons.tsx +507 -0
- package/src/components/chat-components/ui/input.tsx +25 -0
- package/src/components/chat-components/ui/label.tsx +26 -0
- package/src/components/chat-components/ui/select.tsx +119 -0
- package/src/components/chat-components/ui/separator.tsx +31 -0
- package/src/components/chat-components/ui/sheet.tsx +122 -0
- package/src/components/chat-components/ui/switch.tsx +29 -0
- package/src/components/chat-components/ui/textarea.tsx +24 -0
- package/src/components/chat-components/ui/tooltip.tsx +30 -0
- package/src/components/index.ts +7 -0
- package/src/components/sidebar/copilot-sidebar-ui-provider.tsx +77 -0
- package/src/components/sidebar/copilot-sidebar.tsx +40 -0
- package/src/components/sidebar/sidebar-context.tsx +11 -0
- package/src/context/index.ts +1 -0
- package/src/hooks/index.ts +1 -0
- package/src/hooks/use-at-bottom.tsx +23 -0
- package/src/hooks/use-copy-to-clipboard.tsx +33 -0
- package/src/hooks/use-enter-submit.tsx +23 -0
- package/src/index.tsx +4 -3
- package/src/lib/utils.ts +43 -0
- package/src/types/index.ts +1 -0
- package/src/types/types.ts +18 -0
- package/tailwind.config.js +1 -1
- package/tsconfig.json +1 -1
- package/tsup.config.ts +3 -4
- package/dist/Button.d.ts +0 -3
- package/dist/Button.js +0 -10
- package/dist/Card.d.ts +0 -7
- package/dist/Card.js +0 -10
- package/dist/chunk-6OZR7L23.js +0 -7
- package/dist/chunk-FGO3LSHH.js +0 -7
- package/dist/index.js +0 -15
- package/src/Button.tsx +0 -16
- package/src/Card.tsx +0 -27
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
5
|
+
|
|
6
|
+
import { cn } from "../../../lib/utils";
|
|
7
|
+
import { IconClose } from "./icons";
|
|
8
|
+
|
|
9
|
+
const Dialog = DialogPrimitive.Root;
|
|
10
|
+
|
|
11
|
+
const DialogTrigger = DialogPrimitive.Trigger;
|
|
12
|
+
|
|
13
|
+
const DialogPortal = ({
|
|
14
|
+
className,
|
|
15
|
+
children,
|
|
16
|
+
...props
|
|
17
|
+
}: DialogPrimitive.DialogPortalProps) => (
|
|
18
|
+
<DialogPrimitive.Portal className={cn(className)} {...props}>
|
|
19
|
+
<div className="fixed inset-0 z-50 flex items-start justify-center sm:items-center">
|
|
20
|
+
{children}
|
|
21
|
+
</div>
|
|
22
|
+
</DialogPrimitive.Portal>
|
|
23
|
+
);
|
|
24
|
+
DialogPortal.displayName = DialogPrimitive.Portal.displayName;
|
|
25
|
+
|
|
26
|
+
const DialogOverlay = React.forwardRef<
|
|
27
|
+
React.ElementRef<typeof DialogPrimitive.Overlay>,
|
|
28
|
+
React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>
|
|
29
|
+
>(({ className, ...props }, ref) => (
|
|
30
|
+
<DialogPrimitive.Overlay
|
|
31
|
+
ref={ref}
|
|
32
|
+
className={cn(
|
|
33
|
+
"fixed inset-0 z-50 bg-background/80 backdrop-blur-sm transition-all duration-100 data-[state=closed]:animate-out data-[state=closed]:fade-out data-[state=open]:fade-in",
|
|
34
|
+
className
|
|
35
|
+
)}
|
|
36
|
+
{...props}
|
|
37
|
+
/>
|
|
38
|
+
));
|
|
39
|
+
DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
|
|
40
|
+
|
|
41
|
+
const DialogContent = React.forwardRef<
|
|
42
|
+
React.ElementRef<typeof DialogPrimitive.Content>,
|
|
43
|
+
React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>
|
|
44
|
+
>(({ className, children, ...props }, ref) => (
|
|
45
|
+
<DialogPortal>
|
|
46
|
+
<DialogOverlay />
|
|
47
|
+
<DialogPrimitive.Content
|
|
48
|
+
ref={ref}
|
|
49
|
+
className={cn(
|
|
50
|
+
"fixed z-50 grid w-full gap-4 rounded-b-lg border bg-background p-6 shadow-sm animate-in data-[state=open]:fade-in-90 data-[state=open]:slide-in-from-bottom-10 sm:max-w-lg sm:rounded-lg sm:zoom-in-90 data-[state=open]:sm:slide-in-from-bottom-0",
|
|
51
|
+
className
|
|
52
|
+
)}
|
|
53
|
+
{...props}
|
|
54
|
+
>
|
|
55
|
+
{children}
|
|
56
|
+
<DialogPrimitive.Close className="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground">
|
|
57
|
+
<IconClose />
|
|
58
|
+
<span className="sr-only">Close</span>
|
|
59
|
+
</DialogPrimitive.Close>
|
|
60
|
+
</DialogPrimitive.Content>
|
|
61
|
+
</DialogPortal>
|
|
62
|
+
));
|
|
63
|
+
DialogContent.displayName = DialogPrimitive.Content.displayName;
|
|
64
|
+
|
|
65
|
+
const DialogHeader = ({
|
|
66
|
+
className,
|
|
67
|
+
...props
|
|
68
|
+
}: React.HTMLAttributes<HTMLDivElement>) => (
|
|
69
|
+
<div
|
|
70
|
+
className={cn(
|
|
71
|
+
"flex flex-col space-y-1.5 text-center sm:text-left",
|
|
72
|
+
className
|
|
73
|
+
)}
|
|
74
|
+
{...props}
|
|
75
|
+
/>
|
|
76
|
+
);
|
|
77
|
+
DialogHeader.displayName = "DialogHeader";
|
|
78
|
+
|
|
79
|
+
const DialogFooter = ({
|
|
80
|
+
className,
|
|
81
|
+
...props
|
|
82
|
+
}: React.HTMLAttributes<HTMLDivElement>) => (
|
|
83
|
+
<div
|
|
84
|
+
className={cn(
|
|
85
|
+
"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
|
|
86
|
+
className
|
|
87
|
+
)}
|
|
88
|
+
{...props}
|
|
89
|
+
/>
|
|
90
|
+
);
|
|
91
|
+
DialogFooter.displayName = "DialogFooter";
|
|
92
|
+
|
|
93
|
+
const DialogTitle = React.forwardRef<
|
|
94
|
+
React.ElementRef<typeof DialogPrimitive.Title>,
|
|
95
|
+
React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>
|
|
96
|
+
>(({ className, ...props }, ref) => (
|
|
97
|
+
<DialogPrimitive.Title
|
|
98
|
+
ref={ref}
|
|
99
|
+
className={cn(
|
|
100
|
+
"text-lg font-semibold leading-none tracking-tight",
|
|
101
|
+
className
|
|
102
|
+
)}
|
|
103
|
+
{...props}
|
|
104
|
+
/>
|
|
105
|
+
));
|
|
106
|
+
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
107
|
+
|
|
108
|
+
const DialogDescription = React.forwardRef<
|
|
109
|
+
React.ElementRef<typeof DialogPrimitive.Description>,
|
|
110
|
+
React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>
|
|
111
|
+
>(({ className, ...props }, ref) => (
|
|
112
|
+
<DialogPrimitive.Description
|
|
113
|
+
ref={ref}
|
|
114
|
+
className={cn("text-sm text-muted-foreground", className)}
|
|
115
|
+
{...props}
|
|
116
|
+
/>
|
|
117
|
+
));
|
|
118
|
+
DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
119
|
+
|
|
120
|
+
export {
|
|
121
|
+
Dialog,
|
|
122
|
+
DialogTrigger,
|
|
123
|
+
DialogContent,
|
|
124
|
+
DialogHeader,
|
|
125
|
+
DialogFooter,
|
|
126
|
+
DialogTitle,
|
|
127
|
+
DialogDescription,
|
|
128
|
+
};
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
5
|
+
|
|
6
|
+
import { cn } from "../../../lib/utils";
|
|
7
|
+
|
|
8
|
+
const DropdownMenu = DropdownMenuPrimitive.Root;
|
|
9
|
+
|
|
10
|
+
const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
|
|
11
|
+
|
|
12
|
+
const DropdownMenuGroup = DropdownMenuPrimitive.Group;
|
|
13
|
+
|
|
14
|
+
const DropdownMenuPortal = DropdownMenuPrimitive.Portal;
|
|
15
|
+
|
|
16
|
+
const DropdownMenuSub = DropdownMenuPrimitive.Sub;
|
|
17
|
+
|
|
18
|
+
const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
|
|
19
|
+
|
|
20
|
+
const DropdownMenuSubContent = React.forwardRef<
|
|
21
|
+
React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,
|
|
22
|
+
React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>
|
|
23
|
+
>(({ className, ...props }, ref) => (
|
|
24
|
+
<DropdownMenuPrimitive.SubContent
|
|
25
|
+
ref={ref}
|
|
26
|
+
className={cn(
|
|
27
|
+
"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1",
|
|
28
|
+
className
|
|
29
|
+
)}
|
|
30
|
+
{...props}
|
|
31
|
+
/>
|
|
32
|
+
));
|
|
33
|
+
DropdownMenuSubContent.displayName =
|
|
34
|
+
DropdownMenuPrimitive.SubContent.displayName;
|
|
35
|
+
|
|
36
|
+
const DropdownMenuContent = React.forwardRef<
|
|
37
|
+
React.ElementRef<typeof DropdownMenuPrimitive.Content>,
|
|
38
|
+
React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>
|
|
39
|
+
>(({ className, sideOffset = 4, ...props }, ref) => (
|
|
40
|
+
<DropdownMenuPrimitive.Portal>
|
|
41
|
+
<DropdownMenuPrimitive.Content
|
|
42
|
+
ref={ref}
|
|
43
|
+
sideOffset={sideOffset}
|
|
44
|
+
className={cn(
|
|
45
|
+
"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow animate-in 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",
|
|
46
|
+
className
|
|
47
|
+
)}
|
|
48
|
+
{...props}
|
|
49
|
+
/>
|
|
50
|
+
</DropdownMenuPrimitive.Portal>
|
|
51
|
+
));
|
|
52
|
+
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
53
|
+
|
|
54
|
+
const DropdownMenuItem = React.forwardRef<
|
|
55
|
+
React.ElementRef<typeof DropdownMenuPrimitive.Item>,
|
|
56
|
+
React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {
|
|
57
|
+
inset?: boolean;
|
|
58
|
+
}
|
|
59
|
+
>(({ className, inset, ...props }, ref) => (
|
|
60
|
+
<DropdownMenuPrimitive.Item
|
|
61
|
+
ref={ref}
|
|
62
|
+
className={cn(
|
|
63
|
+
"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
64
|
+
inset && "pl-8",
|
|
65
|
+
className
|
|
66
|
+
)}
|
|
67
|
+
{...props}
|
|
68
|
+
/>
|
|
69
|
+
));
|
|
70
|
+
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
71
|
+
|
|
72
|
+
const DropdownMenuLabel = React.forwardRef<
|
|
73
|
+
React.ElementRef<typeof DropdownMenuPrimitive.Label>,
|
|
74
|
+
React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {
|
|
75
|
+
inset?: boolean;
|
|
76
|
+
}
|
|
77
|
+
>(({ className, inset, ...props }, ref) => (
|
|
78
|
+
<DropdownMenuPrimitive.Label
|
|
79
|
+
ref={ref}
|
|
80
|
+
className={cn(
|
|
81
|
+
"px-2 py-1.5 text-sm font-semibold",
|
|
82
|
+
inset && "pl-8",
|
|
83
|
+
className
|
|
84
|
+
)}
|
|
85
|
+
{...props}
|
|
86
|
+
/>
|
|
87
|
+
));
|
|
88
|
+
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
89
|
+
|
|
90
|
+
const DropdownMenuSeparator = React.forwardRef<
|
|
91
|
+
React.ElementRef<typeof DropdownMenuPrimitive.Separator>,
|
|
92
|
+
React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>
|
|
93
|
+
>(({ className, ...props }, ref) => (
|
|
94
|
+
<DropdownMenuPrimitive.Separator
|
|
95
|
+
ref={ref}
|
|
96
|
+
className={cn("-mx-1 my-1 h-px bg-muted", className)}
|
|
97
|
+
{...props}
|
|
98
|
+
/>
|
|
99
|
+
));
|
|
100
|
+
DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
|
|
101
|
+
|
|
102
|
+
const DropdownMenuShortcut = ({
|
|
103
|
+
className,
|
|
104
|
+
...props
|
|
105
|
+
}: React.HTMLAttributes<HTMLSpanElement>) => {
|
|
106
|
+
return (
|
|
107
|
+
<span
|
|
108
|
+
className={cn("ml-auto text-xs tracking-widest opacity-60", className)}
|
|
109
|
+
{...props}
|
|
110
|
+
/>
|
|
111
|
+
);
|
|
112
|
+
};
|
|
113
|
+
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
114
|
+
|
|
115
|
+
export {
|
|
116
|
+
DropdownMenu,
|
|
117
|
+
DropdownMenuTrigger,
|
|
118
|
+
DropdownMenuContent,
|
|
119
|
+
DropdownMenuItem,
|
|
120
|
+
DropdownMenuLabel,
|
|
121
|
+
DropdownMenuSeparator,
|
|
122
|
+
DropdownMenuShortcut,
|
|
123
|
+
DropdownMenuGroup,
|
|
124
|
+
DropdownMenuPortal,
|
|
125
|
+
DropdownMenuSub,
|
|
126
|
+
DropdownMenuSubContent,
|
|
127
|
+
DropdownMenuRadioGroup,
|
|
128
|
+
};
|