@altimateai/ui-components 0.0.1-beta.4 → 0.0.1-beta.5

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.
Files changed (39) hide show
  1. package/dist/CoachForm.js +20 -8
  2. package/dist/assets/icons/index.d.ts +96 -0
  3. package/dist/chatbot/index.d.ts +43 -0
  4. package/dist/chatbotV2/index.d.ts +184 -0
  5. package/dist/index.d.ts +215 -0
  6. package/dist/lineage/index.d.ts +189 -0
  7. package/dist/shadcn/index.d.ts +516 -0
  8. package/dist/storybook/Accordion.stories.tsx +52 -0
  9. package/dist/storybook/Alert.stories.tsx +61 -0
  10. package/dist/storybook/AlertDialog.stories.tsx +161 -0
  11. package/dist/storybook/Avatar.stories.tsx +58 -0
  12. package/dist/storybook/Badge.stories.tsx +36 -0
  13. package/dist/storybook/Button.stories.tsx +109 -0
  14. package/dist/storybook/Card.stories.tsx +69 -0
  15. package/dist/storybook/Checkbox.stories.tsx +65 -0
  16. package/dist/storybook/Command.stories.tsx +35 -0
  17. package/dist/storybook/DropdownMenu.stories.tsx +36 -0
  18. package/dist/storybook/Form.stories.tsx +114 -0
  19. package/dist/storybook/HoverCard.stories.tsx +99 -0
  20. package/dist/storybook/Input.stories.tsx +53 -0
  21. package/dist/storybook/Label.stories.tsx +42 -0
  22. package/dist/storybook/Menubar.stories.tsx +159 -0
  23. package/dist/storybook/Pagination.stories.tsx +152 -0
  24. package/dist/storybook/Popover.stories.tsx +23 -0
  25. package/dist/storybook/Progress.stories.tsx +89 -0
  26. package/dist/storybook/RadioGroup.stories.tsx +58 -0
  27. package/dist/storybook/Resizable.stories.tsx +119 -0
  28. package/dist/storybook/ScrollArea.stories.tsx +101 -0
  29. package/dist/storybook/Select.stories.tsx +95 -0
  30. package/dist/storybook/Sheet.stories.tsx +69 -0
  31. package/dist/storybook/Sidebar.stories.tsx +97 -0
  32. package/dist/storybook/Slider.stories.tsx +79 -0
  33. package/dist/storybook/Switch.stories.tsx +90 -0
  34. package/dist/storybook/Textarea.stories.tsx +50 -0
  35. package/dist/storybook/Toast.stories.tsx +107 -0
  36. package/dist/storybook/Tooltip.stories.tsx +28 -0
  37. package/dist/storybook/Typography.stories.tsx +178 -0
  38. package/dist/types-FVWfXDNw.d.ts +104 -0
  39. package/package.json +1 -1
@@ -0,0 +1,61 @@
1
+ import { Meta, StoryFn } from "@storybook/react";
2
+ import { Alert, AlertTitle, AlertDescription } from "../shadcn";
3
+ import { InfoCircleIcon } from "@ac-assets/icons";
4
+
5
+ export default {
6
+ title: "Shadcn/Components/Alert",
7
+ component: Alert,
8
+ argTypes: {
9
+ variant: {
10
+ control: "select",
11
+ options: ["default", "destructive"],
12
+ },
13
+ },
14
+ } as Meta;
15
+
16
+ const Template: StoryFn = args => (
17
+ <Alert {...args}>
18
+ <AlertTitle>Heads up!</AlertTitle>
19
+ <AlertDescription>
20
+ You can add components and dependencies to your app using the cli.
21
+ </AlertDescription>
22
+ </Alert>
23
+ );
24
+
25
+ export const Default = Template.bind({});
26
+ Default.args = {
27
+ variant: "default",
28
+ };
29
+
30
+ export const Destructive = Template.bind({});
31
+ Destructive.args = {
32
+ variant: "destructive",
33
+ };
34
+
35
+ export const WithIcon: StoryFn = () => (
36
+ <Alert>
37
+ <InfoCircleIcon className="al-h-4 al-w-4" />
38
+ <AlertTitle>Info Alert</AlertTitle>
39
+ <AlertDescription>This is an informational alert with an icon.</AlertDescription>
40
+ </Alert>
41
+ );
42
+
43
+ export const DestructiveWithIcon: StoryFn = () => (
44
+ <Alert variant="destructive">
45
+ <InfoCircleIcon className="al-h-4 al-w-4" />
46
+ <AlertTitle>Error Alert</AlertTitle>
47
+ <AlertDescription>Something went wrong! Please try again later.</AlertDescription>
48
+ </Alert>
49
+ );
50
+
51
+ export const TitleOnly: StoryFn = () => (
52
+ <Alert>
53
+ <AlertTitle>Simple Alert with Title Only</AlertTitle>
54
+ </Alert>
55
+ );
56
+
57
+ export const DescriptionOnly: StoryFn = () => (
58
+ <Alert>
59
+ <AlertDescription>Simple Alert with Description Only</AlertDescription>
60
+ </Alert>
61
+ );
@@ -0,0 +1,161 @@
1
+ import { Meta, StoryFn } from "@storybook/react";
2
+ import {
3
+ AlertDialog,
4
+ AlertDialogTrigger,
5
+ AlertDialogContent,
6
+ AlertDialogHeader,
7
+ AlertDialogFooter,
8
+ AlertDialogTitle,
9
+ AlertDialogDescription,
10
+ AlertDialogAction,
11
+ AlertDialogCancel,
12
+ } from "../shadcn";
13
+
14
+ export default {
15
+ title: "Shadcn/Components/AlertDialog",
16
+ component: AlertDialog,
17
+ } as Meta;
18
+
19
+ const Template: StoryFn = () => (
20
+ <AlertDialog>
21
+ <AlertDialogTrigger>Open Dialog</AlertDialogTrigger>
22
+ <AlertDialogContent>
23
+ <AlertDialogHeader>
24
+ <AlertDialogTitle>Are you absolutely sure?</AlertDialogTitle>
25
+ <AlertDialogDescription>
26
+ This action cannot be undone. This will permanently delete your account and remove your
27
+ data from our servers.
28
+ </AlertDialogDescription>
29
+ </AlertDialogHeader>
30
+ <AlertDialogFooter>
31
+ <AlertDialogCancel>Cancel</AlertDialogCancel>
32
+ <AlertDialogAction>Continue</AlertDialogAction>
33
+ </AlertDialogFooter>
34
+ </AlertDialogContent>
35
+ </AlertDialog>
36
+ );
37
+
38
+ export const Default = Template.bind({});
39
+
40
+ export const DestructiveAction: StoryFn = () => (
41
+ <AlertDialog>
42
+ <AlertDialogTrigger className="al-bg-destructive al-text-destructive-foreground hover:al-bg-destructive/90 al-h-10 al-px-4 al-py-2 al-rounded-md">
43
+ Delete Account
44
+ </AlertDialogTrigger>
45
+ <AlertDialogContent>
46
+ <AlertDialogHeader>
47
+ <AlertDialogTitle>Delete Account</AlertDialogTitle>
48
+ <AlertDialogDescription>
49
+ This will permanently delete your account and remove all your data. This action cannot be
50
+ undone.
51
+ </AlertDialogDescription>
52
+ </AlertDialogHeader>
53
+ <AlertDialogFooter>
54
+ <AlertDialogCancel>Cancel</AlertDialogCancel>
55
+ <AlertDialogAction className="al-bg-destructive al-text-destructive-foreground hover:al-bg-destructive/90">
56
+ Delete
57
+ </AlertDialogAction>
58
+ </AlertDialogFooter>
59
+ </AlertDialogContent>
60
+ </AlertDialog>
61
+ );
62
+
63
+ export const WithCustomTrigger: StoryFn = () => (
64
+ <AlertDialog>
65
+ <AlertDialogTrigger asChild>
66
+ <button className="al-rounded-full al-bg-primary al-p-2">
67
+ <span className="al-sr-only">Open Dialog</span>
68
+ <svg
69
+ width="24"
70
+ height="24"
71
+ viewBox="0 0 24 24"
72
+ fill="none"
73
+ stroke="currentColor"
74
+ strokeWidth="2"
75
+ strokeLinecap="round"
76
+ strokeLinejoin="round"
77
+ >
78
+ <path d="M3 6h18" />
79
+ <path d="M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6" />
80
+ <path d="M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2" />
81
+ </svg>
82
+ </button>
83
+ </AlertDialogTrigger>
84
+ <AlertDialogContent>
85
+ <AlertDialogHeader>
86
+ <AlertDialogTitle>Delete Item</AlertDialogTitle>
87
+ <AlertDialogDescription>Are you sure you want to delete this item?</AlertDialogDescription>
88
+ </AlertDialogHeader>
89
+ <AlertDialogFooter>
90
+ <AlertDialogCancel>Cancel</AlertDialogCancel>
91
+ <AlertDialogAction>Delete</AlertDialogAction>
92
+ </AlertDialogFooter>
93
+ </AlertDialogContent>
94
+ </AlertDialog>
95
+ );
96
+
97
+ export const WithForm: StoryFn = () => (
98
+ <AlertDialog>
99
+ <AlertDialogTrigger>Unsubscribe</AlertDialogTrigger>
100
+ <AlertDialogContent>
101
+ <AlertDialogHeader>
102
+ <AlertDialogTitle>Unsubscribe from Newsletter</AlertDialogTitle>
103
+ <AlertDialogDescription>
104
+ Please tell us why you&apos;re unsubscribing:
105
+ </AlertDialogDescription>
106
+ </AlertDialogHeader>
107
+ <div className="al-grid al-gap-4 al-py-4">
108
+ <div className="al-grid al-gap-2">
109
+ <label htmlFor="reason" className="al-text-sm al-font-medium al-leading-none">
110
+ Reason
111
+ </label>
112
+ <select
113
+ id="reason"
114
+ className="al-flex al-h-10 al-w-full al-rounded-md al-border al-border-input al-bg-background al-px-3 al-py-2 al-text-sm al-ring-offset-background"
115
+ >
116
+ <option>Too many emails</option>
117
+ <option>Content not relevant</option>
118
+ <option>Other</option>
119
+ </select>
120
+ </div>
121
+ </div>
122
+ <AlertDialogFooter>
123
+ <AlertDialogCancel>Cancel</AlertDialogCancel>
124
+ <AlertDialogAction>Confirm</AlertDialogAction>
125
+ </AlertDialogFooter>
126
+ </AlertDialogContent>
127
+ </AlertDialog>
128
+ );
129
+
130
+ export const LongContent: StoryFn = () => (
131
+ <AlertDialog>
132
+ <AlertDialogTrigger>Show Terms</AlertDialogTrigger>
133
+ <AlertDialogContent className="al-max-h-[90vh] al-overflow-y-auto">
134
+ <AlertDialogHeader>
135
+ <AlertDialogTitle>Terms of Service</AlertDialogTitle>
136
+ <AlertDialogDescription className="al-whitespace-pre-line">
137
+ {`Please read these terms carefully before using our service.
138
+
139
+ 1. Introduction
140
+ These terms and conditions govern your use of our service.
141
+
142
+ 2. Acceptance of Terms
143
+ By accessing or using our service, you agree to be bound by these terms.
144
+
145
+ 3. Privacy Policy
146
+ Your privacy is important to us. Please review our privacy policy.
147
+
148
+ 4. User Obligations
149
+ You agree to use our service in accordance with these terms.
150
+
151
+ 5. Termination
152
+ We reserve the right to terminate your access to our service.`}
153
+ </AlertDialogDescription>
154
+ </AlertDialogHeader>
155
+ <AlertDialogFooter>
156
+ <AlertDialogCancel>Decline</AlertDialogCancel>
157
+ <AlertDialogAction>Accept</AlertDialogAction>
158
+ </AlertDialogFooter>
159
+ </AlertDialogContent>
160
+ </AlertDialog>
161
+ );
@@ -0,0 +1,58 @@
1
+ import { Meta, StoryFn } from "@storybook/react";
2
+ import { Avatar, AvatarImage, AvatarFallback } from "../shadcn";
3
+
4
+ export default {
5
+ title: "Shadcn/Components/Avatar",
6
+ component: Avatar,
7
+ } as Meta<typeof Avatar>;
8
+
9
+ const Template: StoryFn = () => (
10
+ <div className="flex gap-4">
11
+ <Avatar>
12
+ <AvatarImage src="https://github.com/shadcn.png" alt="@shadcn" />
13
+ <AvatarFallback>CN</AvatarFallback>
14
+ </Avatar>
15
+ </div>
16
+ );
17
+
18
+ export const Default = Template.bind({});
19
+
20
+ export const WithFallback = () => (
21
+ <div className="flex gap-4">
22
+ <Avatar>
23
+ <AvatarImage src="invalid-image.jpg" alt="@invalid" />
24
+ <AvatarFallback>IN</AvatarFallback>
25
+ </Avatar>
26
+ </div>
27
+ );
28
+
29
+ export const Sizes = () => (
30
+ <div className="flex gap-4 items-center">
31
+ <Avatar className="h-6 w-6">
32
+ <AvatarImage src="https://github.com/shadcn.png" alt="@small" />
33
+ <AvatarFallback>SM</AvatarFallback>
34
+ </Avatar>
35
+ <Avatar>
36
+ <AvatarImage src="https://github.com/shadcn.png" alt="@medium" />
37
+ <AvatarFallback>MD</AvatarFallback>
38
+ </Avatar>
39
+ <Avatar className="h-14 w-14">
40
+ <AvatarImage src="https://github.com/shadcn.png" alt="@large" />
41
+ <AvatarFallback>LG</AvatarFallback>
42
+ </Avatar>
43
+ </div>
44
+ );
45
+
46
+ export const CustomColors = () => (
47
+ <div className="flex gap-4">
48
+ <Avatar>
49
+ <AvatarFallback className="bg-blue-500 text-white">BL</AvatarFallback>
50
+ </Avatar>
51
+ <Avatar>
52
+ <AvatarFallback className="bg-green-500 text-white">GR</AvatarFallback>
53
+ </Avatar>
54
+ <Avatar>
55
+ <AvatarFallback className="bg-red-500 text-white">RD</AvatarFallback>
56
+ </Avatar>
57
+ </div>
58
+ );
@@ -0,0 +1,36 @@
1
+ import type { Meta, StoryObj } from "@storybook/react";
2
+ import { Badge } from "../shadcn";
3
+
4
+ export default {
5
+ title: "Shadcn/Components/Badge",
6
+ component: Badge,
7
+ } as Meta<typeof Badge>;
8
+
9
+ type Story = StoryObj<typeof Badge>;
10
+
11
+ export const Default: Story = {
12
+ args: {
13
+ children: "Badge",
14
+ },
15
+ };
16
+
17
+ export const Secondary: Story = {
18
+ args: {
19
+ variant: "secondary",
20
+ children: "Secondary",
21
+ },
22
+ };
23
+
24
+ export const Destructive: Story = {
25
+ args: {
26
+ variant: "destructive",
27
+ children: "Destructive",
28
+ },
29
+ };
30
+
31
+ export const Outline: Story = {
32
+ args: {
33
+ variant: "outline",
34
+ children: "Outline",
35
+ },
36
+ };
@@ -0,0 +1,109 @@
1
+ import { Meta, StoryFn } from "@storybook/react";
2
+ import { Button, ButtonProps } from "../shadcn";
3
+ import { CloseIcon } from "@ac-assets/icons";
4
+
5
+ export default {
6
+ title: "Shadcn/Components/Button",
7
+ component: Button,
8
+ argTypes: {
9
+ variant: {
10
+ control: "select",
11
+ options: ["default", "destructive", "outline", "secondary", "ghost", "link"],
12
+ },
13
+ size: {
14
+ control: "select",
15
+ options: ["default", "sm", "lg", "icon"],
16
+ },
17
+ },
18
+ } as Meta;
19
+
20
+ const Template: StoryFn<ButtonProps> = args => <Button {...args} />;
21
+
22
+ export const Default = Template.bind({});
23
+ Default.args = {
24
+ children: "Button",
25
+ };
26
+
27
+ export const Destructive = Template.bind({});
28
+ Destructive.args = {
29
+ variant: "destructive",
30
+ children: "Delete",
31
+ };
32
+
33
+ export const Outline = Template.bind({});
34
+ Outline.args = {
35
+ variant: "outline",
36
+ children: "Outline",
37
+ };
38
+
39
+ export const Secondary = Template.bind({});
40
+ Secondary.args = {
41
+ variant: "secondary",
42
+ children: "Secondary",
43
+ };
44
+
45
+ export const Small = Template.bind({});
46
+ Small.args = {
47
+ size: "sm",
48
+ children: "Small",
49
+ };
50
+
51
+ export const Large = Template.bind({});
52
+ Large.args = {
53
+ size: "lg",
54
+ children: "Large",
55
+ };
56
+
57
+ export const Icon = Template.bind({});
58
+ Icon.args = {
59
+ size: "icon",
60
+ children: "🔍",
61
+ };
62
+
63
+ const buttonVariants = ["Default", "Secondary", "Destructive", "Success", "Ghost", "Link"];
64
+
65
+ export const Buttons = {
66
+ render: () => (
67
+ <div className="al-space-y-4">
68
+ {buttonVariants.map(v => (
69
+ <div className="al-space-x-4" key={v}>
70
+ <Button variant={v.toLowerCase() as ButtonProps["variant"]} className="al-align-bottom">
71
+ {v}
72
+ </Button>
73
+ <Button
74
+ variant={v.toLowerCase() as ButtonProps["variant"]}
75
+ size="sm"
76
+ className="al-align-bottom"
77
+ >
78
+ {v} sm
79
+ </Button>
80
+ <Button
81
+ variant={v.toLowerCase() as ButtonProps["variant"]}
82
+ disabled
83
+ className="al-align-bottom"
84
+ >
85
+ {v} disabled
86
+ </Button>
87
+ <Button variant={v.toLowerCase() as ButtonProps["variant"]} className="al-align-bottom">
88
+ <CloseIcon />
89
+ {v} with icon
90
+ </Button>
91
+ <Button
92
+ variant={v.toLowerCase() as ButtonProps["variant"]}
93
+ size="icon"
94
+ className="al-align-bottom"
95
+ >
96
+ <CloseIcon />
97
+ </Button>
98
+ <Button
99
+ variant={v.toLowerCase() as ButtonProps["variant"]}
100
+ size="lg"
101
+ className="al-align-bottom"
102
+ >
103
+ {v} lg
104
+ </Button>
105
+ </div>
106
+ ))}
107
+ </div>
108
+ ),
109
+ };
@@ -0,0 +1,69 @@
1
+ import { Meta, StoryFn } from "@storybook/react";
2
+ import { Button } from "../shadcn";
3
+ import { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter } from "../shadcn";
4
+
5
+ export default {
6
+ title: "Shadcn/Components/Card",
7
+ component: Card,
8
+ } as Meta;
9
+
10
+ const Template: StoryFn = () => (
11
+ <Card className="w-[350px]">
12
+ <CardHeader>
13
+ <CardTitle>Card Title</CardTitle>
14
+ <CardDescription>Card Description</CardDescription>
15
+ </CardHeader>
16
+ <CardContent>
17
+ <p>Card Content</p>
18
+ </CardContent>
19
+ <CardFooter>
20
+ <Button>Action</Button>
21
+ </CardFooter>
22
+ </Card>
23
+ );
24
+
25
+ export const Default = Template.bind({});
26
+
27
+ export const WithForm = () => (
28
+ <Card className="w-[350px]">
29
+ <CardHeader>
30
+ <CardTitle>Create Account</CardTitle>
31
+ <CardDescription>Enter your details below.</CardDescription>
32
+ </CardHeader>
33
+ <CardContent>
34
+ <div className="grid w-full items-center gap-4">
35
+ <div className="flex flex-col space-y-1.5">
36
+ <label htmlFor="name">Name</label>
37
+ <input id="name" className="border rounded p-2" />
38
+ </div>
39
+ <div className="flex flex-col space-y-1.5">
40
+ <label htmlFor="email">Email</label>
41
+ <input id="email" className="border rounded p-2" />
42
+ </div>
43
+ </div>
44
+ </CardContent>
45
+ <CardFooter className="flex justify-between">
46
+ <Button variant="outline">Cancel</Button>
47
+ <Button>Create</Button>
48
+ </CardFooter>
49
+ </Card>
50
+ );
51
+
52
+ export const Pricing = () => (
53
+ <Card className="w-[350px]">
54
+ <CardHeader>
55
+ <CardTitle>Pro Plan</CardTitle>
56
+ <CardDescription>$29/month</CardDescription>
57
+ </CardHeader>
58
+ <CardContent>
59
+ <ul className="space-y-2">
60
+ <li>✓ Feature 1</li>
61
+ <li>✓ Feature 2</li>
62
+ <li>✓ Feature 3</li>
63
+ </ul>
64
+ </CardContent>
65
+ <CardFooter>
66
+ <Button className="w-full">Subscribe</Button>
67
+ </CardFooter>
68
+ </Card>
69
+ );
@@ -0,0 +1,65 @@
1
+ import { Meta, StoryObj } from "@storybook/react";
2
+ import { Checkbox } from "../shadcn";
3
+
4
+ const meta: Meta<typeof Checkbox> = {
5
+ title: "Shadcn/Components/Checkbox",
6
+ component: Checkbox,
7
+ args: {
8
+ "aria-label": "Checkbox demo",
9
+ },
10
+ };
11
+
12
+ export default meta;
13
+ type Story = StoryObj<typeof Checkbox>;
14
+
15
+ export const Default: Story = {
16
+ render: args => (
17
+ <div className="al-flex al-items-center al-space-x-2">
18
+ <Checkbox {...args} id="terms" />
19
+ <label
20
+ htmlFor="terms"
21
+ className="al-text-sm al-font-medium al-leading-none al-peer-disabled:al-cursor-not-allowed al-peer-disabled:al-opacity-70"
22
+ >
23
+ Accept terms and conditions
24
+ </label>
25
+ </div>
26
+ ),
27
+ };
28
+
29
+ export const Checked: Story = {
30
+ render: args => (
31
+ <div className="al-flex al-items-center al-space-x-2">
32
+ <Checkbox {...args} id="checked" defaultChecked />
33
+ <label htmlFor="checked" className="al-text-sm al-font-medium al-leading-none">
34
+ Checked by default
35
+ </label>
36
+ </div>
37
+ ),
38
+ };
39
+
40
+ export const Disabled: Story = {
41
+ render: args => (
42
+ <div className="al-flex al-items-center al-space-x-2">
43
+ <Checkbox {...args} id="disabled" disabled />
44
+ <label htmlFor="disabled" className="al-text-sm al-font-medium al-leading-none al-opacity-70">
45
+ Disabled checkbox
46
+ </label>
47
+ </div>
48
+ ),
49
+ };
50
+
51
+ export const WithDescription: Story = {
52
+ render: args => (
53
+ <div className="al-items-top al-flex al-space-x-2">
54
+ <Checkbox {...args} id="description" />
55
+ <div className="al-grid al-gap-1.5 al-leading-none">
56
+ <label htmlFor="description" className="al-text-sm al-font-medium al-leading-none">
57
+ Accept terms
58
+ </label>
59
+ <p className="al-text-sm al-text-muted-foreground">
60
+ You agree to our Terms of Service and Privacy Policy.
61
+ </p>
62
+ </div>
63
+ </div>
64
+ ),
65
+ };
@@ -0,0 +1,35 @@
1
+ import { Meta, StoryFn } from "@storybook/react";
2
+ import {
3
+ Command,
4
+ CommandEmpty,
5
+ CommandGroup,
6
+ CommandInput,
7
+ CommandItem,
8
+ CommandList,
9
+ } from "../shadcn";
10
+
11
+ export default {
12
+ title: "Shadcn/Components/Command",
13
+ component: Command,
14
+ } as Meta;
15
+
16
+ const Template: StoryFn = () => (
17
+ <Command className="al-rounded-lg al-border al-shadow-md">
18
+ <CommandInput placeholder="Type a command or search..." />
19
+ <CommandList>
20
+ <CommandEmpty>No results found.</CommandEmpty>
21
+ <CommandGroup heading="Suggestions">
22
+ <CommandItem>Option 1</CommandItem>
23
+ <CommandItem>Option 2</CommandItem>
24
+ <CommandItem>Option 3</CommandItem>
25
+ </CommandGroup>
26
+ <CommandGroup heading="Settings">
27
+ <CommandItem>Profile</CommandItem>
28
+ <CommandItem>Billing</CommandItem>
29
+ <CommandItem>Settings</CommandItem>
30
+ </CommandGroup>
31
+ </CommandList>
32
+ </Command>
33
+ );
34
+
35
+ export const Default = Template.bind({});
@@ -0,0 +1,36 @@
1
+ import { Meta, StoryFn } from "@storybook/react";
2
+ import {
3
+ DropdownMenu,
4
+ DropdownMenuContent,
5
+ DropdownMenuItem,
6
+ DropdownMenuTrigger,
7
+ Button,
8
+ } from "../shadcn";
9
+ import { MoreIcon, CopyIcon, RefreshIcon } from "@ac-assets/icons";
10
+
11
+ export default {
12
+ title: "Shadcn/Components/DropdownMenu",
13
+ component: DropdownMenu,
14
+ } as Meta;
15
+
16
+ const Template: StoryFn = () => (
17
+ <DropdownMenu>
18
+ <DropdownMenuTrigger asChild>
19
+ <Button variant="ghost" size="sm" className="al-p-0 al-h-8 al-w-8">
20
+ <MoreIcon className="al-h-4 al-w-4" />
21
+ </Button>
22
+ </DropdownMenuTrigger>
23
+ <DropdownMenuContent>
24
+ <DropdownMenuItem onClick={() => console.log("Copy clicked")}>
25
+ <CopyIcon className="al-mr-2 al-h-4 al-w-4" />
26
+ Copy message
27
+ </DropdownMenuItem>
28
+ <DropdownMenuItem onClick={() => console.log("Regenerate clicked")}>
29
+ <RefreshIcon className="al-mr-2 al-h-4 al-w-4" />
30
+ Regenerate response
31
+ </DropdownMenuItem>
32
+ </DropdownMenuContent>
33
+ </DropdownMenu>
34
+ );
35
+
36
+ export const Default = Template.bind({});