@coston/ui 0.1.1 → 0.2.2

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 (177) hide show
  1. package/README.md +75 -10
  2. package/dist/{button-CJvoztqg.js → button-BJdMtkHX.js} +3 -3
  3. package/dist/button-BJdMtkHX.js.map +1 -0
  4. package/dist/{button-QxkOGnNm.d.ts → button-CyD56dqi.d.ts} +5 -5
  5. package/dist/{button-QxkOGnNm.d.ts.map → button-CyD56dqi.d.ts.map} +1 -1
  6. package/dist/components/accordion.d.ts.map +1 -1
  7. package/dist/components/accordion.js +4 -4
  8. package/dist/components/accordion.js.map +1 -1
  9. package/dist/components/alert-dialog.d.ts +3 -3
  10. package/dist/components/alert-dialog.d.ts.map +1 -1
  11. package/dist/components/alert-dialog.js +5 -5
  12. package/dist/components/alert-dialog.js.map +1 -1
  13. package/dist/components/alert.d.ts +2 -2
  14. package/dist/components/alert.js +3 -3
  15. package/dist/components/alert.js.map +1 -1
  16. package/dist/components/avatar.d.ts.map +1 -1
  17. package/dist/components/avatar.js +2 -2
  18. package/dist/components/avatar.js.map +1 -1
  19. package/dist/components/badge.d.ts +5 -5
  20. package/dist/components/badge.d.ts.map +1 -1
  21. package/dist/components/badge.js +4 -1
  22. package/dist/components/badge.js.map +1 -1
  23. package/dist/components/breadcrumb.d.ts +3 -3
  24. package/dist/components/breadcrumb.js +1 -1
  25. package/dist/components/button.d.ts +1 -1
  26. package/dist/components/button.js +2 -2
  27. package/dist/components/calendar.d.ts +2 -2
  28. package/dist/components/calendar.d.ts.map +1 -1
  29. package/dist/components/calendar.js +1 -1
  30. package/dist/components/card.d.ts +4 -1
  31. package/dist/components/card.d.ts.map +1 -1
  32. package/dist/components/card.js +5 -5
  33. package/dist/components/card.js.map +1 -1
  34. package/dist/components/carousel.d.ts +1 -1
  35. package/dist/components/carousel.js +2 -2
  36. package/dist/components/chart.d.ts +1 -1
  37. package/dist/components/chart.d.ts.map +1 -1
  38. package/dist/components/chart.js +1 -1
  39. package/dist/components/checkbox.js +3 -3
  40. package/dist/components/checkbox.js.map +1 -1
  41. package/dist/components/command.d.ts +75 -10
  42. package/dist/components/command.d.ts.map +1 -1
  43. package/dist/components/command.js +3 -3
  44. package/dist/components/command.js.map +1 -1
  45. package/dist/components/context-menu.d.ts +2 -2
  46. package/dist/components/context-menu.d.ts.map +1 -1
  47. package/dist/components/context-menu.js +3 -3
  48. package/dist/components/context-menu.js.map +1 -1
  49. package/dist/components/dialog.d.ts +3 -3
  50. package/dist/components/dialog.js +2 -2
  51. package/dist/components/drawer.d.ts +13 -11
  52. package/dist/components/drawer.d.ts.map +1 -1
  53. package/dist/components/drawer.js +2 -2
  54. package/dist/components/drawer.js.map +1 -1
  55. package/dist/components/dropdown-menu.d.ts +2 -2
  56. package/dist/components/dropdown-menu.d.ts.map +1 -1
  57. package/dist/components/dropdown-menu.js +3 -3
  58. package/dist/components/dropdown-menu.js.map +1 -1
  59. package/dist/components/hover-card.js +2 -2
  60. package/dist/components/hover-card.js.map +1 -1
  61. package/dist/components/input.js +1 -1
  62. package/dist/components/label.d.ts +2 -2
  63. package/dist/components/label.js +1 -1
  64. package/dist/components/menubar.d.ts +3 -3
  65. package/dist/components/menubar.js +4 -4
  66. package/dist/components/menubar.js.map +1 -1
  67. package/dist/components/navigation-menu.d.ts +2 -2
  68. package/dist/components/navigation-menu.js +2 -2
  69. package/dist/components/navigation-menu.js.map +1 -1
  70. package/dist/components/pagination.d.ts +7 -7
  71. package/dist/components/pagination.js +2 -2
  72. package/dist/components/popover.js +2 -2
  73. package/dist/components/popover.js.map +1 -1
  74. package/dist/components/progress.js +2 -2
  75. package/dist/components/progress.js.map +1 -1
  76. package/dist/components/radio-group.js +1 -1
  77. package/dist/components/resizable.d.ts +5 -5
  78. package/dist/components/resizable.d.ts.map +1 -1
  79. package/dist/components/resizable.js +4 -4
  80. package/dist/components/resizable.js.map +1 -1
  81. package/dist/components/scroll-area.js +1 -1
  82. package/dist/components/select.js +2 -2
  83. package/dist/components/select.js.map +1 -1
  84. package/dist/components/separator.js +2 -2
  85. package/dist/components/sheet.d.ts +6 -6
  86. package/dist/components/sheet.d.ts.map +1 -1
  87. package/dist/components/sheet.js +8 -8
  88. package/dist/components/sheet.js.map +1 -1
  89. package/dist/components/sidebar.d.ts +1 -1
  90. package/dist/components/sidebar.js +5 -5
  91. package/dist/components/sidebar.js.map +1 -1
  92. package/dist/components/skeleton.d.ts +2 -2
  93. package/dist/components/skeleton.js +1 -1
  94. package/dist/components/slider.js +3 -3
  95. package/dist/components/slider.js.map +1 -1
  96. package/dist/components/sonner.d.ts +2 -2
  97. package/dist/components/sonner.d.ts.map +1 -1
  98. package/dist/components/switch.js +3 -3
  99. package/dist/components/switch.js.map +1 -1
  100. package/dist/components/table.d.ts.map +1 -1
  101. package/dist/components/table.js +2 -2
  102. package/dist/components/table.js.map +1 -1
  103. package/dist/components/tabs.js +2 -2
  104. package/dist/components/tabs.js.map +1 -1
  105. package/dist/components/textarea.js +1 -1
  106. package/dist/components/toggle-group.d.ts +3 -3
  107. package/dist/components/toggle-group.js +2 -2
  108. package/dist/components/toggle.d.ts +3 -3
  109. package/dist/components/toggle.js +2 -2
  110. package/dist/components/tooltip.js +2 -2
  111. package/dist/{dialog-B_8jhMOs.js → dialog-COSqOqbH.js} +6 -6
  112. package/dist/dialog-COSqOqbH.js.map +1 -0
  113. package/dist/lib/utils.d.ts +2 -1
  114. package/dist/lib/utils.d.ts.map +1 -1
  115. package/dist/lib/utils.js +2 -2
  116. package/dist/{separator-9lzFsfCC.js → separator-C3mBJ8ik.js} +2 -2
  117. package/dist/{separator-9lzFsfCC.js.map → separator-C3mBJ8ik.js.map} +1 -1
  118. package/dist/{toggle-BpKiTVe4.js → toggle-CD9xIRlr.js} +3 -3
  119. package/dist/toggle-CD9xIRlr.js.map +1 -0
  120. package/dist/{tooltip-CXS6wR7g.js → tooltip-PxI7r4yP.js} +3 -3
  121. package/dist/tooltip-PxI7r4yP.js.map +1 -0
  122. package/dist/{utils-C0f9Ma6r.js → utils-CyPJ3VV3.js} +3 -2
  123. package/dist/utils-CyPJ3VV3.js.map +1 -0
  124. package/llms.txt +989 -0
  125. package/package.json +52 -14
  126. package/source.css +40 -0
  127. package/dist/button-CJvoztqg.js.map +0 -1
  128. package/dist/dialog-B_8jhMOs.js.map +0 -1
  129. package/dist/toggle-BpKiTVe4.js.map +0 -1
  130. package/dist/tooltip-CXS6wR7g.js.map +0 -1
  131. package/dist/utils-C0f9Ma6r.js.map +0 -1
  132. package/src/components/accordion.tsx +0 -51
  133. package/src/components/alert-dialog.tsx +0 -115
  134. package/src/components/alert.tsx +0 -49
  135. package/src/components/aspect-ratio.tsx +0 -5
  136. package/src/components/avatar.tsx +0 -44
  137. package/src/components/badge.tsx +0 -32
  138. package/src/components/breadcrumb.tsx +0 -101
  139. package/src/components/button.tsx +0 -48
  140. package/src/components/calendar.tsx +0 -76
  141. package/src/components/card.tsx +0 -60
  142. package/src/components/carousel.tsx +0 -240
  143. package/src/components/chart.tsx +0 -232
  144. package/src/components/checkbox.tsx +0 -25
  145. package/src/components/collapsible.tsx +0 -11
  146. package/src/components/command.tsx +0 -136
  147. package/src/components/context-menu.tsx +0 -187
  148. package/src/components/dialog.tsx +0 -105
  149. package/src/components/drawer.tsx +0 -98
  150. package/src/components/dropdown-menu.tsx +0 -185
  151. package/src/components/hover-card.tsx +0 -29
  152. package/src/components/input.tsx +0 -24
  153. package/src/components/label.tsx +0 -19
  154. package/src/components/menubar.tsx +0 -219
  155. package/src/components/navigation-menu.tsx +0 -120
  156. package/src/components/pagination.tsx +0 -98
  157. package/src/components/popover.tsx +0 -27
  158. package/src/components/progress.tsx +0 -23
  159. package/src/components/radio-group.tsx +0 -35
  160. package/src/components/resizable.tsx +0 -38
  161. package/src/components/scroll-area.tsx +0 -43
  162. package/src/components/select.tsx +0 -147
  163. package/src/components/separator.tsx +0 -23
  164. package/src/components/sheet.tsx +0 -122
  165. package/src/components/sidebar.tsx +0 -507
  166. package/src/components/skeleton.tsx +0 -7
  167. package/src/components/slider.tsx +0 -23
  168. package/src/components/sonner.tsx +0 -26
  169. package/src/components/switch.tsx +0 -26
  170. package/src/components/table.tsx +0 -95
  171. package/src/components/tabs.tsx +0 -53
  172. package/src/components/textarea.tsx +0 -20
  173. package/src/components/toggle-group.tsx +0 -54
  174. package/src/components/toggle.tsx +0 -40
  175. package/src/components/tooltip.tsx +0 -27
  176. package/src/hooks/use-mobile.tsx +0 -19
  177. package/src/lib/utils.ts +0 -6
@@ -1,185 +0,0 @@
1
- import * as React from 'react';
2
- import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
3
- import { Check, ChevronRight, Circle } from 'lucide-react';
4
-
5
- import { cn } from '../lib/utils';
6
-
7
- const DropdownMenu = DropdownMenuPrimitive.Root;
8
-
9
- const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
10
-
11
- const DropdownMenuGroup = DropdownMenuPrimitive.Group;
12
-
13
- const DropdownMenuPortal = DropdownMenuPrimitive.Portal;
14
-
15
- const DropdownMenuSub = DropdownMenuPrimitive.Sub;
16
-
17
- const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
18
-
19
- const DropdownMenuSubTrigger = React.forwardRef<
20
- React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,
21
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {
22
- inset?: boolean;
23
- }
24
- >(({ className, inset, children, ...props }, ref) => (
25
- <DropdownMenuPrimitive.SubTrigger
26
- ref={ref}
27
- className={cn(
28
- 'flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent',
29
- inset && 'pl-8',
30
- className
31
- )}
32
- {...props}
33
- >
34
- {children}
35
- <ChevronRight className="ml-auto h-4 w-4" />
36
- </DropdownMenuPrimitive.SubTrigger>
37
- ));
38
- DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
39
-
40
- const DropdownMenuSubContent = React.forwardRef<
41
- React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,
42
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>
43
- >(({ className, ...props }, ref) => (
44
- <DropdownMenuPrimitive.SubContent
45
- ref={ref}
46
- className={cn(
47
- 'z-50 min-w-[8rem] overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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',
48
- className
49
- )}
50
- {...props}
51
- />
52
- ));
53
- DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
54
-
55
- const DropdownMenuContent = React.forwardRef<
56
- React.ElementRef<typeof DropdownMenuPrimitive.Content>,
57
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>
58
- >(({ className, sideOffset = 4, ...props }, ref) => (
59
- <DropdownMenuPrimitive.Portal>
60
- <DropdownMenuPrimitive.Content
61
- ref={ref}
62
- sideOffset={sideOffset}
63
- className={cn(
64
- 'z-50 min-w-[8rem] overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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',
65
- className
66
- )}
67
- {...props}
68
- />
69
- </DropdownMenuPrimitive.Portal>
70
- ));
71
- DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
72
-
73
- const DropdownMenuItem = React.forwardRef<
74
- React.ElementRef<typeof DropdownMenuPrimitive.Item>,
75
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {
76
- inset?: boolean;
77
- }
78
- >(({ className, inset, ...props }, ref) => (
79
- <DropdownMenuPrimitive.Item
80
- ref={ref}
81
- className={cn(
82
- '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',
83
- inset && 'pl-8',
84
- className
85
- )}
86
- {...props}
87
- />
88
- ));
89
- DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
90
-
91
- const DropdownMenuCheckboxItem = React.forwardRef<
92
- React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,
93
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>
94
- >(({ className, children, checked, ...props }, ref) => (
95
- <DropdownMenuPrimitive.CheckboxItem
96
- ref={ref}
97
- className={cn(
98
- 'relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
99
- className
100
- )}
101
- checked={checked}
102
- {...props}
103
- >
104
- <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
105
- <DropdownMenuPrimitive.ItemIndicator>
106
- <Check className="h-4 w-4" />
107
- </DropdownMenuPrimitive.ItemIndicator>
108
- </span>
109
- {children}
110
- </DropdownMenuPrimitive.CheckboxItem>
111
- ));
112
- DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
113
-
114
- const DropdownMenuRadioItem = React.forwardRef<
115
- React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,
116
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>
117
- >(({ className, children, ...props }, ref) => (
118
- <DropdownMenuPrimitive.RadioItem
119
- ref={ref}
120
- className={cn(
121
- 'relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
122
- className
123
- )}
124
- {...props}
125
- >
126
- <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
127
- <DropdownMenuPrimitive.ItemIndicator>
128
- <Circle className="h-2 w-2 fill-current" />
129
- </DropdownMenuPrimitive.ItemIndicator>
130
- </span>
131
- {children}
132
- </DropdownMenuPrimitive.RadioItem>
133
- ));
134
- DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
135
-
136
- const DropdownMenuLabel = React.forwardRef<
137
- React.ElementRef<typeof DropdownMenuPrimitive.Label>,
138
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {
139
- inset?: boolean;
140
- }
141
- >(({ className, inset, ...props }, ref) => (
142
- <DropdownMenuPrimitive.Label
143
- ref={ref}
144
- className={cn('px-2 py-1.5 text-sm font-semibold', inset && 'pl-8', className)}
145
- {...props}
146
- />
147
- ));
148
- DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
149
-
150
- const DropdownMenuSeparator = React.forwardRef<
151
- React.ElementRef<typeof DropdownMenuPrimitive.Separator>,
152
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>
153
- >(({ className, ...props }, ref) => (
154
- <DropdownMenuPrimitive.Separator
155
- ref={ref}
156
- className={cn('-mx-1 my-1 h-px bg-muted', className)}
157
- {...props}
158
- />
159
- ));
160
- DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
161
-
162
- const DropdownMenuShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {
163
- return (
164
- <span className={cn('ml-auto text-xs tracking-widest opacity-60', className)} {...props} />
165
- );
166
- };
167
- DropdownMenuShortcut.displayName = 'DropdownMenuShortcut';
168
-
169
- export {
170
- DropdownMenu,
171
- DropdownMenuTrigger,
172
- DropdownMenuContent,
173
- DropdownMenuItem,
174
- DropdownMenuCheckboxItem,
175
- DropdownMenuRadioItem,
176
- DropdownMenuLabel,
177
- DropdownMenuSeparator,
178
- DropdownMenuShortcut,
179
- DropdownMenuGroup,
180
- DropdownMenuPortal,
181
- DropdownMenuSub,
182
- DropdownMenuSubContent,
183
- DropdownMenuSubTrigger,
184
- DropdownMenuRadioGroup,
185
- };
@@ -1,29 +0,0 @@
1
- import * as React from 'react';
2
- import * as HoverCardPrimitive from '@radix-ui/react-hover-card';
3
-
4
- import { cn } from '../lib/utils';
5
-
6
- const HoverCard = HoverCardPrimitive.Root;
7
-
8
- const HoverCardTrigger = HoverCardPrimitive.Trigger;
9
-
10
- const HoverCardContent = React.forwardRef<
11
- React.ElementRef<typeof HoverCardPrimitive.Content>,
12
- React.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Content>
13
- >(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (
14
- <HoverCardPrimitive.Portal>
15
- <HoverCardPrimitive.Content
16
- ref={ref}
17
- align={align}
18
- sideOffset={sideOffset}
19
- className={cn(
20
- 'z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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',
21
- className
22
- )}
23
- {...props}
24
- />
25
- </HoverCardPrimitive.Portal>
26
- ));
27
- HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
28
-
29
- export { HoverCard, HoverCardTrigger, HoverCardContent };
@@ -1,24 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import { cn } from '../lib/utils';
4
-
5
- export type InputProps = React.InputHTMLAttributes<HTMLInputElement>;
6
-
7
- const Input = React.forwardRef<HTMLInputElement, InputProps>(
8
- ({ className, type, ...props }, ref) => {
9
- return (
10
- <input
11
- type={type}
12
- className={cn(
13
- 'flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',
14
- className
15
- )}
16
- ref={ref}
17
- {...props}
18
- />
19
- );
20
- }
21
- );
22
- Input.displayName = 'Input';
23
-
24
- export { Input };
@@ -1,19 +0,0 @@
1
- import * as React from 'react';
2
- import * as LabelPrimitive from '@radix-ui/react-label';
3
- import { cva, type VariantProps } from 'class-variance-authority';
4
-
5
- import { cn } from '../lib/utils';
6
-
7
- const labelVariants = cva(
8
- 'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70'
9
- );
10
-
11
- const Label = React.forwardRef<
12
- React.ElementRef<typeof LabelPrimitive.Root>,
13
- React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> & VariantProps<typeof labelVariants>
14
- >(({ className, ...props }, ref) => (
15
- <LabelPrimitive.Root ref={ref} className={cn(labelVariants(), className)} {...props} />
16
- ));
17
- Label.displayName = LabelPrimitive.Root.displayName;
18
-
19
- export { Label };
@@ -1,219 +0,0 @@
1
- import * as React from 'react';
2
- import * as MenubarPrimitive from '@radix-ui/react-menubar';
3
- import { Check, ChevronRight, Circle } from 'lucide-react';
4
-
5
- import { cn } from '../lib/utils';
6
-
7
- const MenubarMenu = MenubarPrimitive.Menu;
8
-
9
- const MenubarGroup = MenubarPrimitive.Group;
10
-
11
- const MenubarPortal = MenubarPrimitive.Portal;
12
-
13
- const MenubarSub = MenubarPrimitive.Sub;
14
-
15
- const MenubarRadioGroup = MenubarPrimitive.RadioGroup;
16
-
17
- const Menubar = React.forwardRef<
18
- React.ElementRef<typeof MenubarPrimitive.Root>,
19
- React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Root>
20
- >(({ className, ...props }, ref) => (
21
- <MenubarPrimitive.Root
22
- ref={ref}
23
- className={cn(
24
- 'flex h-10 items-center space-x-1 rounded-md border bg-background p-1',
25
- className
26
- )}
27
- {...props}
28
- />
29
- ));
30
- Menubar.displayName = MenubarPrimitive.Root.displayName;
31
-
32
- const MenubarTrigger = React.forwardRef<
33
- React.ElementRef<typeof MenubarPrimitive.Trigger>,
34
- React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Trigger>
35
- >(({ className, ...props }, ref) => (
36
- <MenubarPrimitive.Trigger
37
- ref={ref}
38
- className={cn(
39
- 'flex cursor-default select-none items-center rounded-sm px-3 py-1.5 text-sm font-medium outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground',
40
- className
41
- )}
42
- {...props}
43
- />
44
- ));
45
- MenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName;
46
-
47
- const MenubarSubTrigger = React.forwardRef<
48
- React.ElementRef<typeof MenubarPrimitive.SubTrigger>,
49
- React.ComponentPropsWithoutRef<typeof MenubarPrimitive.SubTrigger> & {
50
- inset?: boolean;
51
- }
52
- >(({ className, inset, children, ...props }, ref) => (
53
- <MenubarPrimitive.SubTrigger
54
- ref={ref}
55
- className={cn(
56
- 'flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground',
57
- inset && 'pl-8',
58
- className
59
- )}
60
- {...props}
61
- >
62
- {children}
63
- <ChevronRight className="ml-auto h-4 w-4" />
64
- </MenubarPrimitive.SubTrigger>
65
- ));
66
- MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;
67
-
68
- const MenubarSubContent = React.forwardRef<
69
- React.ElementRef<typeof MenubarPrimitive.SubContent>,
70
- React.ComponentPropsWithoutRef<typeof MenubarPrimitive.SubContent>
71
- >(({ className, ...props }, ref) => (
72
- <MenubarPrimitive.SubContent
73
- ref={ref}
74
- className={cn(
75
- 'z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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',
76
- className
77
- )}
78
- {...props}
79
- />
80
- ));
81
- MenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;
82
-
83
- const MenubarContent = React.forwardRef<
84
- React.ElementRef<typeof MenubarPrimitive.Content>,
85
- React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Content>
86
- >(({ className, align = 'start', alignOffset = -4, sideOffset = 8, ...props }, ref) => (
87
- <MenubarPrimitive.Portal>
88
- <MenubarPrimitive.Content
89
- ref={ref}
90
- align={align}
91
- alignOffset={alignOffset}
92
- sideOffset={sideOffset}
93
- className={cn(
94
- 'z-50 min-w-[12rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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',
95
- className
96
- )}
97
- {...props}
98
- />
99
- </MenubarPrimitive.Portal>
100
- ));
101
- MenubarContent.displayName = MenubarPrimitive.Content.displayName;
102
-
103
- const MenubarItem = React.forwardRef<
104
- React.ElementRef<typeof MenubarPrimitive.Item>,
105
- React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Item> & {
106
- inset?: boolean;
107
- }
108
- >(({ className, inset, ...props }, ref) => (
109
- <MenubarPrimitive.Item
110
- ref={ref}
111
- className={cn(
112
- 'relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
113
- inset && 'pl-8',
114
- className
115
- )}
116
- {...props}
117
- />
118
- ));
119
- MenubarItem.displayName = MenubarPrimitive.Item.displayName;
120
-
121
- const MenubarCheckboxItem = React.forwardRef<
122
- React.ElementRef<typeof MenubarPrimitive.CheckboxItem>,
123
- React.ComponentPropsWithoutRef<typeof MenubarPrimitive.CheckboxItem>
124
- >(({ className, children, checked, ...props }, ref) => (
125
- <MenubarPrimitive.CheckboxItem
126
- ref={ref}
127
- className={cn(
128
- 'relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
129
- className
130
- )}
131
- checked={checked}
132
- {...props}
133
- >
134
- <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
135
- <MenubarPrimitive.ItemIndicator>
136
- <Check className="h-4 w-4" />
137
- </MenubarPrimitive.ItemIndicator>
138
- </span>
139
- {children}
140
- </MenubarPrimitive.CheckboxItem>
141
- ));
142
- MenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName;
143
-
144
- const MenubarRadioItem = React.forwardRef<
145
- React.ElementRef<typeof MenubarPrimitive.RadioItem>,
146
- React.ComponentPropsWithoutRef<typeof MenubarPrimitive.RadioItem>
147
- >(({ className, children, ...props }, ref) => (
148
- <MenubarPrimitive.RadioItem
149
- ref={ref}
150
- className={cn(
151
- 'relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
152
- className
153
- )}
154
- {...props}
155
- >
156
- <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
157
- <MenubarPrimitive.ItemIndicator>
158
- <Circle className="h-2 w-2 fill-current" />
159
- </MenubarPrimitive.ItemIndicator>
160
- </span>
161
- {children}
162
- </MenubarPrimitive.RadioItem>
163
- ));
164
- MenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName;
165
-
166
- const MenubarLabel = React.forwardRef<
167
- React.ElementRef<typeof MenubarPrimitive.Label>,
168
- React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Label> & {
169
- inset?: boolean;
170
- }
171
- >(({ className, inset, ...props }, ref) => (
172
- <MenubarPrimitive.Label
173
- ref={ref}
174
- className={cn('px-2 py-1.5 text-sm font-semibold', inset && 'pl-8', className)}
175
- {...props}
176
- />
177
- ));
178
- MenubarLabel.displayName = MenubarPrimitive.Label.displayName;
179
-
180
- const MenubarSeparator = React.forwardRef<
181
- React.ElementRef<typeof MenubarPrimitive.Separator>,
182
- React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Separator>
183
- >(({ className, ...props }, ref) => (
184
- <MenubarPrimitive.Separator
185
- ref={ref}
186
- className={cn('-mx-1 my-1 h-px bg-muted', className)}
187
- {...props}
188
- />
189
- ));
190
- MenubarSeparator.displayName = MenubarPrimitive.Separator.displayName;
191
-
192
- const MenubarShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {
193
- return (
194
- <span
195
- className={cn('ml-auto text-xs tracking-widest text-muted-foreground', className)}
196
- {...props}
197
- />
198
- );
199
- };
200
- MenubarShortcut.displayName = 'MenubarShortcut';
201
-
202
- export {
203
- Menubar,
204
- MenubarMenu,
205
- MenubarTrigger,
206
- MenubarContent,
207
- MenubarItem,
208
- MenubarSeparator,
209
- MenubarLabel,
210
- MenubarCheckboxItem,
211
- MenubarRadioGroup,
212
- MenubarRadioItem,
213
- MenubarPortal,
214
- MenubarSub,
215
- MenubarSubContent,
216
- MenubarSubTrigger,
217
- MenubarGroup,
218
- MenubarShortcut,
219
- };
@@ -1,120 +0,0 @@
1
- import * as React from 'react';
2
- import * as NavigationMenuPrimitive from '@radix-ui/react-navigation-menu';
3
- import { cva } from 'class-variance-authority';
4
- import { ChevronDown } from 'lucide-react';
5
-
6
- import { cn } from '../lib/utils';
7
-
8
- const NavigationMenu = React.forwardRef<
9
- React.ElementRef<typeof NavigationMenuPrimitive.Root>,
10
- React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Root>
11
- >(({ className, children, ...props }, ref) => (
12
- <NavigationMenuPrimitive.Root
13
- ref={ref}
14
- className={cn('relative z-10 flex max-w-max flex-1 items-center justify-center', className)}
15
- {...props}
16
- >
17
- {children}
18
- <NavigationMenuViewport />
19
- </NavigationMenuPrimitive.Root>
20
- ));
21
- NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
22
-
23
- const NavigationMenuList = React.forwardRef<
24
- React.ElementRef<typeof NavigationMenuPrimitive.List>,
25
- React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.List>
26
- >(({ className, ...props }, ref) => (
27
- <NavigationMenuPrimitive.List
28
- ref={ref}
29
- className={cn('group flex flex-1 list-none items-center justify-center space-x-1', className)}
30
- {...props}
31
- />
32
- ));
33
- NavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName;
34
-
35
- const NavigationMenuItem = NavigationMenuPrimitive.Item;
36
-
37
- const navigationMenuTriggerStyle = cva(
38
- 'group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[active]:bg-primary/10 data-[active]:text-primary data-[state=open]:bg-accent/50'
39
- );
40
-
41
- const NavigationMenuTrigger = React.forwardRef<
42
- React.ElementRef<typeof NavigationMenuPrimitive.Trigger>,
43
- React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Trigger>
44
- >(({ className, children, ...props }, ref) => (
45
- <NavigationMenuPrimitive.Trigger
46
- ref={ref}
47
- className={cn(navigationMenuTriggerStyle(), 'group', className)}
48
- {...props}
49
- >
50
- {children}{' '}
51
- <ChevronDown
52
- className="relative top-[1px] ml-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180"
53
- aria-hidden="true"
54
- />
55
- </NavigationMenuPrimitive.Trigger>
56
- ));
57
- NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
58
-
59
- const NavigationMenuContent = React.forwardRef<
60
- React.ElementRef<typeof NavigationMenuPrimitive.Content>,
61
- React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Content>
62
- >(({ className, ...props }, ref) => (
63
- <NavigationMenuPrimitive.Content
64
- ref={ref}
65
- className={cn(
66
- 'left-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto ',
67
- className
68
- )}
69
- {...props}
70
- />
71
- ));
72
- NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
73
-
74
- const NavigationMenuLink = NavigationMenuPrimitive.Link;
75
-
76
- const NavigationMenuViewport = React.forwardRef<
77
- React.ElementRef<typeof NavigationMenuPrimitive.Viewport>,
78
- React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Viewport>
79
- >(({ className, ...props }, ref) => (
80
- <div className={cn('absolute left-0 top-full flex justify-center')}>
81
- <NavigationMenuPrimitive.Viewport
82
- className={cn(
83
- 'origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]',
84
- className
85
- )}
86
- ref={ref}
87
- {...props}
88
- />
89
- </div>
90
- ));
91
- NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
92
-
93
- const NavigationMenuIndicator = React.forwardRef<
94
- React.ElementRef<typeof NavigationMenuPrimitive.Indicator>,
95
- React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Indicator>
96
- >(({ className, ...props }, ref) => (
97
- <NavigationMenuPrimitive.Indicator
98
- ref={ref}
99
- className={cn(
100
- 'top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in',
101
- className
102
- )}
103
- {...props}
104
- >
105
- <div className="relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md" />
106
- </NavigationMenuPrimitive.Indicator>
107
- ));
108
- NavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName;
109
-
110
- export {
111
- navigationMenuTriggerStyle,
112
- NavigationMenu,
113
- NavigationMenuList,
114
- NavigationMenuItem,
115
- NavigationMenuContent,
116
- NavigationMenuTrigger,
117
- NavigationMenuLink,
118
- NavigationMenuIndicator,
119
- NavigationMenuViewport,
120
- };