@auto-engineer/generate-react-client 1.63.0 → 1.65.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.
Files changed (144) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/dist/starter/.storybook/main.ts +17 -22
  3. package/dist/starter/.storybook/manager-head.html +31 -31
  4. package/dist/starter/.storybook/manager.ts +133 -133
  5. package/dist/starter/.storybook/preview-head.html +12 -12
  6. package/dist/starter/.storybook/preview.tsx +79 -79
  7. package/dist/starter/biome.json +126 -0
  8. package/dist/starter/codegen.ts +11 -11
  9. package/dist/starter/components.json +27 -27
  10. package/dist/starter/package.json +86 -80
  11. package/dist/starter/public/mockServiceWorker.js +261 -261
  12. package/dist/starter/scripts/build-component-db.ts +17 -20
  13. package/dist/starter/src/App.tsx +15 -17
  14. package/dist/starter/src/components/ui/Accordion.stories.tsx +35 -35
  15. package/dist/starter/src/components/ui/Accordion.tsx +33 -33
  16. package/dist/starter/src/components/ui/Alert.stories.tsx +15 -15
  17. package/dist/starter/src/components/ui/Alert.tsx +32 -32
  18. package/dist/starter/src/components/ui/AlertDialog.stories.tsx +50 -50
  19. package/dist/starter/src/components/ui/AlertDialog.tsx +114 -115
  20. package/dist/starter/src/components/ui/AspectRatio.stories.tsx +20 -20
  21. package/dist/starter/src/components/ui/AspectRatio.tsx +1 -1
  22. package/dist/starter/src/components/ui/Avatar.stories.tsx +27 -27
  23. package/dist/starter/src/components/ui/Avatar.tsx +63 -63
  24. package/dist/starter/src/components/ui/Badge.stories.tsx +14 -14
  25. package/dist/starter/src/components/ui/Badge.tsx +27 -27
  26. package/dist/starter/src/components/ui/Breadcrumb.stories.tsx +38 -38
  27. package/dist/starter/src/components/ui/Breadcrumb.tsx +63 -62
  28. package/dist/starter/src/components/ui/Button.stories.tsx +55 -55
  29. package/dist/starter/src/components/ui/Button.tsx +49 -49
  30. package/dist/starter/src/components/ui/ButtonGroup.stories.tsx +17 -17
  31. package/dist/starter/src/components/ui/ButtonGroup.tsx +52 -53
  32. package/dist/starter/src/components/ui/Calendar.stories.tsx +20 -19
  33. package/dist/starter/src/components/ui/Calendar.tsx +142 -143
  34. package/dist/starter/src/components/ui/Card.stories.tsx +29 -29
  35. package/dist/starter/src/components/ui/Card.tsx +31 -31
  36. package/dist/starter/src/components/ui/Carousel.stories.tsx +41 -41
  37. package/dist/starter/src/components/ui/Carousel.tsx +171 -172
  38. package/dist/starter/src/components/ui/Chart.stories.tsx +21 -21
  39. package/dist/starter/src/components/ui/Chart.tsx +244 -247
  40. package/dist/starter/src/components/ui/Checkbox.stories.tsx +11 -11
  41. package/dist/starter/src/components/ui/Checkbox.tsx +18 -18
  42. package/dist/starter/src/components/ui/Collapsible.stories.tsx +40 -40
  43. package/dist/starter/src/components/ui/Collapsible.tsx +3 -3
  44. package/dist/starter/src/components/ui/Combobox.stories.tsx +48 -48
  45. package/dist/starter/src/components/ui/Combobox.tsx +204 -205
  46. package/dist/starter/src/components/ui/Command.stories.tsx +55 -55
  47. package/dist/starter/src/components/ui/Command.tsx +102 -103
  48. package/dist/starter/src/components/ui/ContextMenu.stories.tsx +52 -52
  49. package/dist/starter/src/components/ui/ContextMenu.tsx +151 -151
  50. package/dist/starter/src/components/ui/DesignSystem-Colors.stories.tsx +92 -92
  51. package/dist/starter/src/components/ui/DesignSystem-Layout.stories.tsx +139 -139
  52. package/dist/starter/src/components/ui/DesignSystem-Overview.stories.tsx +676 -657
  53. package/dist/starter/src/components/ui/DesignSystem-Typography.stories.tsx +59 -59
  54. package/dist/starter/src/components/ui/Dialog.stories.tsx +56 -56
  55. package/dist/starter/src/components/ui/Dialog.tsx +97 -98
  56. package/dist/starter/src/components/ui/Direction.stories.tsx +20 -20
  57. package/dist/starter/src/components/ui/Direction.tsx +7 -7
  58. package/dist/starter/src/components/ui/Drawer.stories.tsx +54 -54
  59. package/dist/starter/src/components/ui/Drawer.tsx +70 -70
  60. package/dist/starter/src/components/ui/DropdownMenu.stories.tsx +58 -58
  61. package/dist/starter/src/components/ui/DropdownMenu.tsx +157 -157
  62. package/dist/starter/src/components/ui/Empty.stories.tsx +22 -22
  63. package/dist/starter/src/components/ui/Empty.tsx +58 -58
  64. package/dist/starter/src/components/ui/Field.stories.tsx +31 -31
  65. package/dist/starter/src/components/ui/Field.tsx +180 -181
  66. package/dist/starter/src/components/ui/Form.stories.tsx +29 -29
  67. package/dist/starter/src/components/ui/Form.tsx +93 -96
  68. package/dist/starter/src/components/ui/HoverCard.stories.tsx +34 -34
  69. package/dist/starter/src/components/ui/HoverCard.tsx +21 -21
  70. package/dist/starter/src/components/ui/Input.stories.tsx +18 -18
  71. package/dist/starter/src/components/ui/Input.tsx +14 -14
  72. package/dist/starter/src/components/ui/InputGroup.stories.tsx +34 -34
  73. package/dist/starter/src/components/ui/InputGroup.tsx +110 -111
  74. package/dist/starter/src/components/ui/InputOTP.stories.tsx +28 -28
  75. package/dist/starter/src/components/ui/InputOTP.tsx +43 -43
  76. package/dist/starter/src/components/ui/Item.stories.tsx +45 -45
  77. package/dist/starter/src/components/ui/Item.tsx +113 -114
  78. package/dist/starter/src/components/ui/Kbd.stories.tsx +31 -31
  79. package/dist/starter/src/components/ui/Kbd.tsx +11 -11
  80. package/dist/starter/src/components/ui/Label.stories.tsx +62 -62
  81. package/dist/starter/src/components/ui/Label.tsx +26 -25
  82. package/dist/starter/src/components/ui/Menubar.stories.tsx +62 -62
  83. package/dist/starter/src/components/ui/Menubar.tsx +173 -173
  84. package/dist/starter/src/components/ui/NativeSelect.stories.tsx +26 -26
  85. package/dist/starter/src/components/ui/NativeSelect.tsx +29 -29
  86. package/dist/starter/src/components/ui/NavigationMenu.stories.tsx +64 -64
  87. package/dist/starter/src/components/ui/NavigationMenu.tsx +103 -103
  88. package/dist/starter/src/components/ui/Pagination.stories.tsx +61 -61
  89. package/dist/starter/src/components/ui/Pagination.tsx +69 -71
  90. package/dist/starter/src/components/ui/Popover.stories.tsx +38 -38
  91. package/dist/starter/src/components/ui/Popover.tsx +25 -25
  92. package/dist/starter/src/components/ui/Progress.stories.tsx +9 -9
  93. package/dist/starter/src/components/ui/Progress.tsx +14 -14
  94. package/dist/starter/src/components/ui/RadioGroup.stories.tsx +35 -35
  95. package/dist/starter/src/components/ui/RadioGroup.tsx +19 -19
  96. package/dist/starter/src/components/ui/Resizable.stories.tsx +54 -54
  97. package/dist/starter/src/components/ui/Resizable.tsx +29 -29
  98. package/dist/starter/src/components/ui/ScrollArea.stories.tsx +27 -27
  99. package/dist/starter/src/components/ui/ScrollArea.tsx +34 -34
  100. package/dist/starter/src/components/ui/Select.stories.tsx +43 -43
  101. package/dist/starter/src/components/ui/Select.tsx +120 -120
  102. package/dist/starter/src/components/ui/Separator.stories.tsx +27 -27
  103. package/dist/starter/src/components/ui/Separator.tsx +17 -17
  104. package/dist/starter/src/components/ui/Sheet.stories.tsx +53 -53
  105. package/dist/starter/src/components/ui/Sheet.tsx +69 -69
  106. package/dist/starter/src/components/ui/Sidebar.stories.tsx +77 -77
  107. package/dist/starter/src/components/ui/Sidebar.tsx +563 -564
  108. package/dist/starter/src/components/ui/Skeleton.stories.tsx +25 -25
  109. package/dist/starter/src/components/ui/Skeleton.tsx +1 -1
  110. package/dist/starter/src/components/ui/Slider.stories.tsx +5 -5
  111. package/dist/starter/src/components/ui/Slider.tsx +45 -44
  112. package/dist/starter/src/components/ui/Sonner.stories.tsx +32 -32
  113. package/dist/starter/src/components/ui/Sonner.tsx +23 -23
  114. package/dist/starter/src/components/ui/Spinner.stories.tsx +8 -8
  115. package/dist/starter/src/components/ui/Spinner.tsx +1 -1
  116. package/dist/starter/src/components/ui/Switch.stories.tsx +16 -17
  117. package/dist/starter/src/components/ui/Switch.tsx +24 -24
  118. package/dist/starter/src/components/ui/Table.stories.tsx +50 -50
  119. package/dist/starter/src/components/ui/Table.tsx +45 -45
  120. package/dist/starter/src/components/ui/Tabs.stories.tsx +39 -39
  121. package/dist/starter/src/components/ui/Tabs.tsx +47 -47
  122. package/dist/starter/src/components/ui/Textarea.stories.tsx +9 -9
  123. package/dist/starter/src/components/ui/Textarea.tsx +11 -11
  124. package/dist/starter/src/components/ui/Toast.stories.tsx +77 -77
  125. package/dist/starter/src/components/ui/Toast.tsx +75 -75
  126. package/dist/starter/src/components/ui/Toaster.tsx +17 -19
  127. package/dist/starter/src/components/ui/Toggle.stories.tsx +20 -20
  128. package/dist/starter/src/components/ui/Toggle.tsx +26 -26
  129. package/dist/starter/src/components/ui/ToggleGroup.stories.tsx +41 -41
  130. package/dist/starter/src/components/ui/ToggleGroup.tsx +61 -62
  131. package/dist/starter/src/components/ui/Tooltip.stories.tsx +26 -26
  132. package/dist/starter/src/components/ui/Tooltip.tsx +24 -24
  133. package/dist/starter/src/gql/execute.ts +1 -1
  134. package/dist/starter/src/gql/fragment-masking.ts +1 -1
  135. package/dist/starter/src/gql/graphql.ts +3 -0
  136. package/dist/starter/src/hooks/use-mobile.ts +11 -11
  137. package/dist/starter/src/hooks/use-toast.ts +135 -135
  138. package/dist/starter/src/index.css +105 -105
  139. package/dist/starter/src/lib/utils.ts +1 -1
  140. package/dist/starter/src/main.tsx +4 -1
  141. package/dist/starter/tsconfig.app.json +24 -24
  142. package/dist/starter/tsconfig.json +8 -8
  143. package/dist/starter/vite.config.ts +38 -37
  144. package/package.json +3 -3
@@ -1,11 +1,10 @@
1
1
  'use client';
2
2
 
3
- import * as React from 'react';
4
3
  import { Command as CommandPrimitive } from 'cmdk';
5
4
  import { SearchIcon } from 'lucide-react';
6
-
7
- import { cn } from '@/lib/utils';
5
+ import type * as React from 'react';
8
6
  import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from '@/components/ui/Dialog';
7
+ import { cn } from '@/lib/utils';
9
8
 
10
9
  /**
11
10
  * A command palette / search interface for filtering and selecting from a list of actions or items.
@@ -14,16 +13,16 @@ import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } f
14
13
  * Compose with CommandInput, CommandList, CommandGroup, CommandItem, and CommandEmpty.
15
14
  */
16
15
  function Command({ className, ...props }: React.ComponentProps<typeof CommandPrimitive>) {
17
- return (
18
- <CommandPrimitive
19
- data-slot="command"
20
- className={cn(
21
- 'bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md',
22
- className,
23
- )}
24
- {...props}
25
- />
26
- );
16
+ return (
17
+ <CommandPrimitive
18
+ data-slot="command"
19
+ className={cn(
20
+ 'bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md',
21
+ className,
22
+ )}
23
+ {...props}
24
+ />
25
+ );
27
26
  }
28
27
 
29
28
  /**
@@ -31,127 +30,127 @@ function Command({ className, ...props }: React.ComponentProps<typeof CommandPri
31
30
  * Provides accessible title and description via screen-reader-only DialogHeader.
32
31
  */
33
32
  function CommandDialog({
34
- /** Accessible title for screen readers. */
35
- title = 'Command Palette',
36
- /** Accessible description for screen readers. */
37
- description = 'Search for a command to run...',
38
- children,
39
- className,
40
- /** Whether to show the X close button. */
41
- showCloseButton = true,
42
- ...props
33
+ /** Accessible title for screen readers. */
34
+ title = 'Command Palette',
35
+ /** Accessible description for screen readers. */
36
+ description = 'Search for a command to run...',
37
+ children,
38
+ className,
39
+ /** Whether to show the X close button. */
40
+ showCloseButton = true,
41
+ ...props
43
42
  }: React.ComponentProps<typeof Dialog> & {
44
- title?: string;
45
- description?: string;
46
- className?: string;
47
- showCloseButton?: boolean;
43
+ title?: string;
44
+ description?: string;
45
+ className?: string;
46
+ showCloseButton?: boolean;
48
47
  }) {
49
- return (
50
- <Dialog {...props}>
51
- <DialogHeader className="sr-only">
52
- <DialogTitle>{title}</DialogTitle>
53
- <DialogDescription>{description}</DialogDescription>
54
- </DialogHeader>
55
- <DialogContent className={cn('overflow-hidden p-0', className)} showCloseButton={showCloseButton}>
56
- <Command className="[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5">
57
- {children}
58
- </Command>
59
- </DialogContent>
60
- </Dialog>
61
- );
48
+ return (
49
+ <Dialog {...props}>
50
+ <DialogHeader className="sr-only">
51
+ <DialogTitle>{title}</DialogTitle>
52
+ <DialogDescription>{description}</DialogDescription>
53
+ </DialogHeader>
54
+ <DialogContent className={cn('overflow-hidden p-0', className)} showCloseButton={showCloseButton}>
55
+ <Command className="[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5">
56
+ {children}
57
+ </Command>
58
+ </DialogContent>
59
+ </Dialog>
60
+ );
62
61
  }
63
62
 
64
63
  /** Search input with a built-in search icon for filtering command items. */
65
64
  function CommandInput({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Input>) {
66
- return (
67
- <div data-slot="command-input-wrapper" className="flex h-9 items-center gap-2 border-b px-3">
68
- <SearchIcon className="size-4 shrink-0 opacity-50" />
69
- <CommandPrimitive.Input
70
- data-slot="command-input"
71
- className={cn(
72
- 'placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50',
73
- className,
74
- )}
75
- {...props}
76
- />
77
- </div>
78
- );
65
+ return (
66
+ <div data-slot="command-input-wrapper" className="flex h-9 items-center gap-2 border-b px-3">
67
+ <SearchIcon className="size-4 shrink-0 opacity-50" />
68
+ <CommandPrimitive.Input
69
+ data-slot="command-input"
70
+ className={cn(
71
+ 'placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50',
72
+ className,
73
+ )}
74
+ {...props}
75
+ />
76
+ </div>
77
+ );
79
78
  }
80
79
 
81
80
  /** Scrollable container for command results. */
82
81
  function CommandList({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.List>) {
83
- return (
84
- <CommandPrimitive.List
85
- data-slot="command-list"
86
- className={cn('max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto', className)}
87
- {...props}
88
- />
89
- );
82
+ return (
83
+ <CommandPrimitive.List
84
+ data-slot="command-list"
85
+ className={cn('max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto', className)}
86
+ {...props}
87
+ />
88
+ );
90
89
  }
91
90
 
92
91
  /** Displayed when no command items match the search query. */
93
92
  function CommandEmpty({ ...props }: React.ComponentProps<typeof CommandPrimitive.Empty>) {
94
- return <CommandPrimitive.Empty data-slot="command-empty" className="py-6 text-center text-sm" {...props} />;
93
+ return <CommandPrimitive.Empty data-slot="command-empty" className="py-6 text-center text-sm" {...props} />;
95
94
  }
96
95
 
97
96
  /** Groups related command items under a heading label. */
98
97
  function CommandGroup({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Group>) {
99
- return (
100
- <CommandPrimitive.Group
101
- data-slot="command-group"
102
- className={cn(
103
- 'text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium',
104
- className,
105
- )}
106
- {...props}
107
- />
108
- );
98
+ return (
99
+ <CommandPrimitive.Group
100
+ data-slot="command-group"
101
+ className={cn(
102
+ 'text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium',
103
+ className,
104
+ )}
105
+ {...props}
106
+ />
107
+ );
109
108
  }
110
109
 
111
110
  /** Visual divider between command groups. */
112
111
  function CommandSeparator({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Separator>) {
113
- return (
114
- <CommandPrimitive.Separator
115
- data-slot="command-separator"
116
- className={cn('bg-border -mx-1 h-px', className)}
117
- {...props}
118
- />
119
- );
112
+ return (
113
+ <CommandPrimitive.Separator
114
+ data-slot="command-separator"
115
+ className={cn('bg-border -mx-1 h-px', className)}
116
+ {...props}
117
+ />
118
+ );
120
119
  }
121
120
 
122
121
  /** A selectable action or item within a command list. Supports icons and keyboard shortcuts via CommandShortcut. */
123
122
  function CommandItem({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Item>) {
124
- return (
125
- <CommandPrimitive.Item
126
- data-slot="command-item"
127
- className={cn(
128
- "data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
129
- className,
130
- )}
131
- {...props}
132
- />
133
- );
123
+ return (
124
+ <CommandPrimitive.Item
125
+ data-slot="command-item"
126
+ className={cn(
127
+ "data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
128
+ className,
129
+ )}
130
+ {...props}
131
+ />
132
+ );
134
133
  }
135
134
 
136
135
  /** Displays a keyboard shortcut hint aligned to the right side of a CommandItem. */
137
136
  function CommandShortcut({ className, ...props }: React.ComponentProps<'span'>) {
138
- return (
139
- <span
140
- data-slot="command-shortcut"
141
- className={cn('text-muted-foreground ml-auto text-xs tracking-widest', className)}
142
- {...props}
143
- />
144
- );
137
+ return (
138
+ <span
139
+ data-slot="command-shortcut"
140
+ className={cn('text-muted-foreground ml-auto text-xs tracking-widest', className)}
141
+ {...props}
142
+ />
143
+ );
145
144
  }
146
145
 
147
146
  export {
148
- Command,
149
- CommandDialog,
150
- CommandInput,
151
- CommandList,
152
- CommandEmpty,
153
- CommandGroup,
154
- CommandItem,
155
- CommandShortcut,
156
- CommandSeparator,
147
+ Command,
148
+ CommandDialog,
149
+ CommandInput,
150
+ CommandList,
151
+ CommandEmpty,
152
+ CommandGroup,
153
+ CommandItem,
154
+ CommandShortcut,
155
+ CommandSeparator,
157
156
  };
@@ -1,68 +1,68 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react-vite';
2
2
  import {
3
- ContextMenu,
4
- ContextMenuTrigger,
5
- ContextMenuContent,
6
- ContextMenuItem,
7
- ContextMenuSeparator,
8
- ContextMenuSub,
9
- ContextMenuSubTrigger,
10
- ContextMenuSubContent,
11
- ContextMenuShortcut,
3
+ ContextMenu,
4
+ ContextMenuContent,
5
+ ContextMenuItem,
6
+ ContextMenuSeparator,
7
+ ContextMenuShortcut,
8
+ ContextMenuSub,
9
+ ContextMenuSubContent,
10
+ ContextMenuSubTrigger,
11
+ ContextMenuTrigger,
12
12
  } from '@/components/ui/ContextMenu';
13
13
 
14
14
  const meta: Meta<typeof ContextMenu> = {
15
- title: 'UI Components/ContextMenu',
16
- component: ContextMenu,
15
+ title: 'UI Components/ContextMenu',
16
+ component: ContextMenu,
17
17
  };
18
18
  export default meta;
19
19
  type Story = StoryObj<typeof ContextMenu>;
20
20
 
21
21
  /** Shows a context menu with shortcuts, submenus, separators, and a destructive action. */
22
22
  export const Default: Story = {
23
- render: () => (
24
- <ContextMenu>
25
- <ContextMenuTrigger className="flex h-[150px] w-[300px] items-center justify-center rounded-md border border-dashed text-sm">
26
- Right click here
27
- </ContextMenuTrigger>
28
- <ContextMenuContent className="w-64">
29
- <ContextMenuItem>
30
- Back <ContextMenuShortcut>Ctrl+[</ContextMenuShortcut>
31
- </ContextMenuItem>
32
- <ContextMenuItem>
33
- Forward <ContextMenuShortcut>Ctrl+]</ContextMenuShortcut>
34
- </ContextMenuItem>
35
- <ContextMenuItem>
36
- Reload <ContextMenuShortcut>Ctrl+R</ContextMenuShortcut>
37
- </ContextMenuItem>
38
- <ContextMenuSeparator />
39
- <ContextMenuSub>
40
- <ContextMenuSubTrigger>More Tools</ContextMenuSubTrigger>
41
- <ContextMenuSubContent className="w-48">
42
- <ContextMenuItem>Save Page As...</ContextMenuItem>
43
- <ContextMenuItem>Create Shortcut...</ContextMenuItem>
44
- <ContextMenuItem>Developer Tools</ContextMenuItem>
45
- </ContextMenuSubContent>
46
- </ContextMenuSub>
47
- <ContextMenuSeparator />
48
- <ContextMenuItem variant="destructive">Delete</ContextMenuItem>
49
- </ContextMenuContent>
50
- </ContextMenu>
51
- ),
23
+ render: () => (
24
+ <ContextMenu>
25
+ <ContextMenuTrigger className="flex h-[150px] w-[300px] items-center justify-center rounded-md border border-dashed text-sm">
26
+ Right click here
27
+ </ContextMenuTrigger>
28
+ <ContextMenuContent className="w-64">
29
+ <ContextMenuItem>
30
+ Back <ContextMenuShortcut>Ctrl+[</ContextMenuShortcut>
31
+ </ContextMenuItem>
32
+ <ContextMenuItem>
33
+ Forward <ContextMenuShortcut>Ctrl+]</ContextMenuShortcut>
34
+ </ContextMenuItem>
35
+ <ContextMenuItem>
36
+ Reload <ContextMenuShortcut>Ctrl+R</ContextMenuShortcut>
37
+ </ContextMenuItem>
38
+ <ContextMenuSeparator />
39
+ <ContextMenuSub>
40
+ <ContextMenuSubTrigger>More Tools</ContextMenuSubTrigger>
41
+ <ContextMenuSubContent className="w-48">
42
+ <ContextMenuItem>Save Page As...</ContextMenuItem>
43
+ <ContextMenuItem>Create Shortcut...</ContextMenuItem>
44
+ <ContextMenuItem>Developer Tools</ContextMenuItem>
45
+ </ContextMenuSubContent>
46
+ </ContextMenuSub>
47
+ <ContextMenuSeparator />
48
+ <ContextMenuItem variant="destructive">Delete</ContextMenuItem>
49
+ </ContextMenuContent>
50
+ </ContextMenu>
51
+ ),
52
52
  };
53
53
 
54
54
  /** Shows a minimal context menu with basic cut/copy/paste actions. */
55
55
  export const Simple: Story = {
56
- render: () => (
57
- <ContextMenu>
58
- <ContextMenuTrigger className="flex h-[150px] w-[300px] items-center justify-center rounded-md border border-dashed text-sm">
59
- Right click here
60
- </ContextMenuTrigger>
61
- <ContextMenuContent>
62
- <ContextMenuItem>Cut</ContextMenuItem>
63
- <ContextMenuItem>Copy</ContextMenuItem>
64
- <ContextMenuItem>Paste</ContextMenuItem>
65
- </ContextMenuContent>
66
- </ContextMenu>
67
- ),
56
+ render: () => (
57
+ <ContextMenu>
58
+ <ContextMenuTrigger className="flex h-[150px] w-[300px] items-center justify-center rounded-md border border-dashed text-sm">
59
+ Right click here
60
+ </ContextMenuTrigger>
61
+ <ContextMenuContent>
62
+ <ContextMenuItem>Cut</ContextMenuItem>
63
+ <ContextMenuItem>Copy</ContextMenuItem>
64
+ <ContextMenuItem>Paste</ContextMenuItem>
65
+ </ContextMenuContent>
66
+ </ContextMenu>
67
+ ),
68
68
  };