@gv-tech/ui-native 2.20.0 → 2.21.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +2 -679
- package/dist/packages/ui-native/src/accordion.d.ts +13 -0
- package/dist/packages/ui-native/src/accordion.d.ts.map +1 -0
- package/dist/packages/ui-native/src/accordion.test.d.ts +2 -0
- package/dist/packages/ui-native/src/accordion.test.d.ts.map +1 -0
- package/dist/packages/ui-native/src/alert-dialog.d.ts +51 -0
- package/dist/packages/ui-native/src/alert-dialog.d.ts.map +1 -0
- package/dist/packages/ui-native/src/alert.d.ts +10 -0
- package/dist/packages/ui-native/src/alert.d.ts.map +1 -0
- package/dist/packages/ui-native/src/alert.test.d.ts +2 -0
- package/dist/packages/ui-native/src/alert.test.d.ts.map +1 -0
- package/dist/packages/ui-native/src/aspect-ratio.d.ts +4 -0
- package/dist/packages/ui-native/src/aspect-ratio.d.ts.map +1 -0
- package/dist/packages/ui-native/src/avatar.d.ts +10 -0
- package/dist/packages/ui-native/src/avatar.d.ts.map +1 -0
- package/dist/packages/ui-native/src/avatar.test.d.ts +2 -0
- package/dist/packages/ui-native/src/avatar.test.d.ts.map +1 -0
- package/dist/packages/ui-native/src/badge.d.ts +12 -0
- package/dist/packages/ui-native/src/badge.d.ts.map +1 -0
- package/dist/packages/ui-native/src/badge.test.d.ts +2 -0
- package/dist/packages/ui-native/src/badge.test.d.ts.map +1 -0
- package/dist/packages/ui-native/src/breadcrumb.d.ts +24 -0
- package/dist/packages/ui-native/src/breadcrumb.d.ts.map +1 -0
- package/dist/packages/ui-native/src/button.d.ts +14 -0
- package/dist/packages/ui-native/src/button.d.ts.map +1 -0
- package/dist/packages/ui-native/src/button.test.d.ts +2 -0
- package/dist/packages/ui-native/src/button.test.d.ts.map +1 -0
- package/dist/packages/ui-native/src/calendar.d.ts +4 -0
- package/dist/packages/ui-native/src/calendar.d.ts.map +1 -0
- package/dist/packages/ui-native/src/card.d.ts +13 -0
- package/dist/packages/ui-native/src/card.d.ts.map +1 -0
- package/dist/packages/ui-native/src/card.test.d.ts +2 -0
- package/dist/packages/ui-native/src/card.test.d.ts.map +1 -0
- package/dist/packages/ui-native/src/carousel.d.ts +8 -0
- package/dist/packages/ui-native/src/carousel.d.ts.map +1 -0
- package/dist/packages/ui-native/src/chart.d.ts +13 -0
- package/dist/packages/ui-native/src/chart.d.ts.map +1 -0
- package/dist/packages/ui-native/src/checkbox.d.ts +15 -0
- package/dist/packages/ui-native/src/checkbox.d.ts.map +1 -0
- package/dist/packages/ui-native/src/checkbox.test.d.ts +2 -0
- package/dist/packages/ui-native/src/checkbox.test.d.ts.map +1 -0
- package/dist/packages/ui-native/src/collapsible.d.ts +8 -0
- package/dist/packages/ui-native/src/collapsible.d.ts.map +1 -0
- package/dist/packages/ui-native/src/collapsible.test.d.ts +2 -0
- package/dist/packages/ui-native/src/collapsible.test.d.ts.map +1 -0
- package/dist/packages/ui-native/src/command.d.ts +14 -0
- package/dist/packages/ui-native/src/command.d.ts.map +1 -0
- package/dist/packages/ui-native/src/context-menu.d.ts +61 -0
- package/dist/packages/ui-native/src/context-menu.d.ts.map +1 -0
- package/dist/packages/ui-native/src/dialog.d.ts +61 -0
- package/dist/packages/ui-native/src/dialog.d.ts.map +1 -0
- package/dist/packages/ui-native/src/dialog.test.d.ts +2 -0
- package/dist/packages/ui-native/src/dialog.test.d.ts.map +1 -0
- package/dist/packages/ui-native/src/drawer.d.ts +31 -0
- package/dist/packages/ui-native/src/drawer.d.ts.map +1 -0
- package/dist/packages/ui-native/src/dropdown-menu.d.ts +60 -0
- package/dist/packages/ui-native/src/dropdown-menu.d.ts.map +1 -0
- package/dist/packages/ui-native/src/form.d.ts +2 -0
- package/dist/packages/ui-native/src/form.d.ts.map +1 -0
- package/dist/packages/ui-native/src/hooks/use-toast.d.ts +46 -0
- package/dist/packages/ui-native/src/hooks/use-toast.d.ts.map +1 -0
- package/dist/packages/ui-native/src/hover-card.d.ts +23 -0
- package/dist/packages/ui-native/src/hover-card.d.ts.map +1 -0
- package/dist/packages/ui-native/src/index.d.ts +67 -0
- package/dist/packages/ui-native/src/index.d.ts.map +1 -0
- package/dist/packages/ui-native/src/input.d.ts +8 -0
- package/dist/packages/ui-native/src/input.d.ts.map +1 -0
- package/dist/packages/ui-native/src/input.test.d.ts +2 -0
- package/dist/packages/ui-native/src/input.test.d.ts.map +1 -0
- package/dist/packages/ui-native/src/label.d.ts +9 -0
- package/dist/packages/ui-native/src/label.d.ts.map +1 -0
- package/dist/packages/ui-native/src/label.test.d.ts +2 -0
- package/dist/packages/ui-native/src/label.test.d.ts.map +1 -0
- package/dist/packages/ui-native/src/lib/render-native.d.ts +4 -0
- package/dist/packages/ui-native/src/lib/render-native.d.ts.map +1 -0
- package/dist/packages/ui-native/src/lib/utils.d.ts +4 -0
- package/dist/packages/ui-native/src/lib/utils.d.ts.map +1 -0
- package/dist/packages/ui-native/src/menubar.d.ts +53 -0
- package/dist/packages/ui-native/src/menubar.d.ts.map +1 -0
- package/dist/packages/ui-native/src/navigation-menu.d.ts +14 -0
- package/dist/packages/ui-native/src/navigation-menu.d.ts.map +1 -0
- package/dist/packages/ui-native/src/pagination.d.ts +33 -0
- package/dist/packages/ui-native/src/pagination.d.ts.map +1 -0
- package/dist/packages/ui-native/src/popover.d.ts +9 -0
- package/dist/packages/ui-native/src/popover.d.ts.map +1 -0
- package/dist/packages/ui-native/src/popover.test.d.ts +2 -0
- package/dist/packages/ui-native/src/popover.test.d.ts.map +1 -0
- package/dist/packages/ui-native/src/progress.d.ts +6 -0
- package/dist/packages/ui-native/src/progress.d.ts.map +1 -0
- package/dist/packages/ui-native/src/progress.test.d.ts +2 -0
- package/dist/packages/ui-native/src/progress.test.d.ts.map +1 -0
- package/dist/packages/ui-native/src/radio-group.d.ts +11 -0
- package/dist/packages/ui-native/src/radio-group.d.ts.map +1 -0
- package/dist/packages/ui-native/src/radio-group.test.d.ts +2 -0
- package/dist/packages/ui-native/src/radio-group.test.d.ts.map +1 -0
- package/dist/packages/ui-native/src/resizable.d.ts +6 -0
- package/dist/packages/ui-native/src/resizable.d.ts.map +1 -0
- package/dist/packages/ui-native/src/scroll-area.d.ts +6 -0
- package/dist/packages/ui-native/src/scroll-area.d.ts.map +1 -0
- package/dist/packages/ui-native/src/scroll-to-top.d.ts +29 -0
- package/dist/packages/ui-native/src/scroll-to-top.d.ts.map +1 -0
- package/dist/packages/ui-native/src/search.d.ts +3 -0
- package/dist/packages/ui-native/src/search.d.ts.map +1 -0
- package/dist/packages/ui-native/src/search.test.d.ts +2 -0
- package/dist/packages/ui-native/src/search.test.d.ts.map +1 -0
- package/dist/packages/ui-native/src/select.d.ts +66 -0
- package/dist/packages/ui-native/src/select.d.ts.map +1 -0
- package/dist/packages/ui-native/src/select.test.d.ts +2 -0
- package/dist/packages/ui-native/src/select.test.d.ts.map +1 -0
- package/dist/packages/ui-native/src/separator.d.ts +9 -0
- package/dist/packages/ui-native/src/separator.d.ts.map +1 -0
- package/dist/packages/ui-native/src/separator.test.d.ts +2 -0
- package/dist/packages/ui-native/src/separator.test.d.ts.map +1 -0
- package/dist/packages/ui-native/src/sheet.d.ts +59 -0
- package/dist/packages/ui-native/src/sheet.d.ts.map +1 -0
- package/dist/packages/ui-native/src/sheet.test.d.ts +2 -0
- package/dist/packages/ui-native/src/sheet.test.d.ts.map +1 -0
- package/dist/packages/ui-native/src/skeleton.d.ts +5 -0
- package/dist/packages/ui-native/src/skeleton.d.ts.map +1 -0
- package/dist/packages/ui-native/src/skeleton.test.d.ts +2 -0
- package/dist/packages/ui-native/src/skeleton.test.d.ts.map +1 -0
- package/dist/packages/ui-native/src/slider.d.ts +4 -0
- package/dist/packages/ui-native/src/slider.d.ts.map +1 -0
- package/dist/packages/ui-native/src/sonner.d.ts +4 -0
- package/dist/packages/ui-native/src/sonner.d.ts.map +1 -0
- package/dist/packages/ui-native/src/support-fab.d.ts +18 -0
- package/dist/packages/ui-native/src/support-fab.d.ts.map +1 -0
- package/dist/packages/ui-native/src/switch.d.ts +8 -0
- package/dist/packages/ui-native/src/switch.d.ts.map +1 -0
- package/dist/packages/ui-native/src/switch.test.d.ts +2 -0
- package/dist/packages/ui-native/src/switch.test.d.ts.map +1 -0
- package/dist/packages/ui-native/src/table-of-contents.d.ts +47 -0
- package/dist/packages/ui-native/src/table-of-contents.d.ts.map +1 -0
- package/dist/packages/ui-native/src/table-of-contents.test.d.ts +2 -0
- package/dist/packages/ui-native/src/table-of-contents.test.d.ts.map +1 -0
- package/dist/packages/ui-native/src/table.d.ts +12 -0
- package/dist/packages/ui-native/src/table.d.ts.map +1 -0
- package/dist/packages/ui-native/src/table.test.d.ts +2 -0
- package/dist/packages/ui-native/src/table.test.d.ts.map +1 -0
- package/dist/packages/ui-native/src/tabs.d.ts +30 -0
- package/dist/packages/ui-native/src/tabs.d.ts.map +1 -0
- package/dist/packages/ui-native/src/tabs.test.d.ts +2 -0
- package/dist/packages/ui-native/src/tabs.test.d.ts.map +1 -0
- package/dist/packages/ui-native/src/text.d.ts +13 -0
- package/dist/packages/ui-native/src/text.d.ts.map +1 -0
- package/dist/packages/ui-native/src/text.test.d.ts +2 -0
- package/dist/packages/ui-native/src/text.test.d.ts.map +1 -0
- package/dist/packages/ui-native/src/textarea.d.ts +6 -0
- package/dist/packages/ui-native/src/textarea.d.ts.map +1 -0
- package/dist/packages/ui-native/src/textarea.test.d.ts +2 -0
- package/dist/packages/ui-native/src/textarea.test.d.ts.map +1 -0
- package/dist/packages/ui-native/src/theme-provider.d.ts +5 -0
- package/dist/packages/ui-native/src/theme-provider.d.ts.map +1 -0
- package/dist/packages/ui-native/src/theme-toggle.d.ts +2 -0
- package/dist/packages/ui-native/src/theme-toggle.d.ts.map +1 -0
- package/dist/packages/ui-native/src/theme-toggle.test.d.ts +2 -0
- package/dist/packages/ui-native/src/theme-toggle.test.d.ts.map +1 -0
- package/dist/packages/ui-native/src/toast.d.ts +35 -0
- package/dist/packages/ui-native/src/toast.d.ts.map +1 -0
- package/dist/packages/ui-native/src/toast.test.d.ts +2 -0
- package/dist/packages/ui-native/src/toast.test.d.ts.map +1 -0
- package/dist/packages/ui-native/src/toaster.d.ts +5 -0
- package/dist/packages/ui-native/src/toaster.d.ts.map +1 -0
- package/dist/packages/ui-native/src/toggle-group.d.ts +11 -0
- package/dist/packages/ui-native/src/toggle-group.d.ts.map +1 -0
- package/dist/packages/ui-native/src/toggle-group.test.d.ts +2 -0
- package/dist/packages/ui-native/src/toggle-group.test.d.ts.map +1 -0
- package/dist/packages/ui-native/src/toggle.d.ts +8 -0
- package/dist/packages/ui-native/src/toggle.d.ts.map +1 -0
- package/dist/packages/ui-native/src/toggle.test.d.ts +2 -0
- package/dist/packages/ui-native/src/toggle.test.d.ts.map +1 -0
- package/dist/packages/ui-native/src/tooltip.d.ts +30 -0
- package/dist/packages/ui-native/src/tooltip.d.ts.map +1 -0
- package/dist/packages/ui-native/src/tooltip.test.d.ts +2 -0
- package/dist/packages/ui-native/src/tooltip.test.d.ts.map +1 -0
- package/dist/ui-native.cjs +2 -0
- package/dist/ui-native.mjs +2036 -1428
- package/package.json +10 -12
- package/src/aspect-ratio.tsx +9 -5
- package/src/breadcrumb.tsx +126 -4
- package/src/calendar.tsx +5 -7
- package/src/carousel.tsx +28 -8
- package/src/chart.tsx +30 -8
- package/src/command.tsx +48 -8
- package/src/context-menu.tsx +213 -5
- package/src/drawer.tsx +132 -6
- package/src/dropdown-menu.tsx +217 -5
- package/src/hooks/use-toast.ts +186 -0
- package/src/hover-card.tsx +26 -6
- package/src/index.ts +114 -11
- package/src/menubar.tsx +253 -5
- package/src/navigation-menu.tsx +175 -5
- package/src/pagination.tsx +107 -4
- package/src/resizable.tsx +9 -19
- package/src/scroll-area.tsx +24 -7
- package/src/slider.tsx +38 -5
- package/src/sonner.tsx +5 -7
- package/src/toaster.tsx +25 -6
package/src/index.ts
CHANGED
|
@@ -38,7 +38,15 @@ export { Avatar, AvatarFallback, AvatarImage } from './avatar';
|
|
|
38
38
|
export { Badge, badgeVariants } from './badge';
|
|
39
39
|
|
|
40
40
|
// Breadcrumb
|
|
41
|
-
export {
|
|
41
|
+
export {
|
|
42
|
+
Breadcrumb,
|
|
43
|
+
BreadcrumbEllipsis,
|
|
44
|
+
BreadcrumbItem,
|
|
45
|
+
BreadcrumbLink,
|
|
46
|
+
BreadcrumbList,
|
|
47
|
+
BreadcrumbPage,
|
|
48
|
+
BreadcrumbSeparator,
|
|
49
|
+
} from './breadcrumb';
|
|
42
50
|
|
|
43
51
|
// Button
|
|
44
52
|
export { Button, buttonVariants } from './button';
|
|
@@ -52,10 +60,17 @@ export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle }
|
|
|
52
60
|
export type { CardProps } from './card';
|
|
53
61
|
|
|
54
62
|
// Carousel
|
|
55
|
-
export { Carousel } from './carousel';
|
|
63
|
+
export { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious } from './carousel';
|
|
56
64
|
|
|
57
65
|
// Chart
|
|
58
|
-
export {
|
|
66
|
+
export {
|
|
67
|
+
ChartContainer,
|
|
68
|
+
ChartLegend,
|
|
69
|
+
ChartLegendContent,
|
|
70
|
+
ChartStyle,
|
|
71
|
+
ChartTooltip,
|
|
72
|
+
ChartTooltipContent,
|
|
73
|
+
} from './chart';
|
|
59
74
|
|
|
60
75
|
// Checkbox
|
|
61
76
|
export { Checkbox } from './checkbox';
|
|
@@ -65,10 +80,36 @@ export type { CheckboxProps } from './checkbox';
|
|
|
65
80
|
export { Collapsible, CollapsibleContent, CollapsibleTrigger } from './collapsible';
|
|
66
81
|
|
|
67
82
|
// Command
|
|
68
|
-
export {
|
|
83
|
+
export {
|
|
84
|
+
Command,
|
|
85
|
+
CommandDialog,
|
|
86
|
+
CommandEmpty,
|
|
87
|
+
CommandGroup,
|
|
88
|
+
CommandInput,
|
|
89
|
+
CommandItem,
|
|
90
|
+
CommandList,
|
|
91
|
+
CommandSeparator,
|
|
92
|
+
CommandShortcut,
|
|
93
|
+
} from './command';
|
|
69
94
|
|
|
70
95
|
// Context Menu
|
|
71
|
-
export {
|
|
96
|
+
export {
|
|
97
|
+
ContextMenu,
|
|
98
|
+
ContextMenuCheckboxItem,
|
|
99
|
+
ContextMenuContent,
|
|
100
|
+
ContextMenuGroup,
|
|
101
|
+
ContextMenuItem,
|
|
102
|
+
ContextMenuLabel,
|
|
103
|
+
ContextMenuPortal,
|
|
104
|
+
ContextMenuRadioGroup,
|
|
105
|
+
ContextMenuRadioItem,
|
|
106
|
+
ContextMenuSeparator,
|
|
107
|
+
ContextMenuShortcut,
|
|
108
|
+
ContextMenuSub,
|
|
109
|
+
ContextMenuSubContent,
|
|
110
|
+
ContextMenuSubTrigger,
|
|
111
|
+
ContextMenuTrigger,
|
|
112
|
+
} from './context-menu';
|
|
72
113
|
|
|
73
114
|
// Dialog
|
|
74
115
|
export {
|
|
@@ -84,16 +125,43 @@ export {
|
|
|
84
125
|
export type { DialogProps } from './dialog';
|
|
85
126
|
|
|
86
127
|
// Drawer
|
|
87
|
-
export {
|
|
128
|
+
export {
|
|
129
|
+
Drawer,
|
|
130
|
+
DrawerClose,
|
|
131
|
+
DrawerContent,
|
|
132
|
+
DrawerDescription,
|
|
133
|
+
DrawerFooter,
|
|
134
|
+
DrawerHeader,
|
|
135
|
+
DrawerOverlay,
|
|
136
|
+
DrawerPortal,
|
|
137
|
+
DrawerTitle,
|
|
138
|
+
DrawerTrigger,
|
|
139
|
+
} from './drawer';
|
|
88
140
|
|
|
89
141
|
// Dropdown Menu
|
|
90
|
-
export {
|
|
142
|
+
export {
|
|
143
|
+
DropdownMenu,
|
|
144
|
+
DropdownMenuCheckboxItem,
|
|
145
|
+
DropdownMenuContent,
|
|
146
|
+
DropdownMenuGroup,
|
|
147
|
+
DropdownMenuItem,
|
|
148
|
+
DropdownMenuLabel,
|
|
149
|
+
DropdownMenuPortal,
|
|
150
|
+
DropdownMenuRadioGroup,
|
|
151
|
+
DropdownMenuRadioItem,
|
|
152
|
+
DropdownMenuSeparator,
|
|
153
|
+
DropdownMenuShortcut,
|
|
154
|
+
DropdownMenuSub,
|
|
155
|
+
DropdownMenuSubContent,
|
|
156
|
+
DropdownMenuSubTrigger,
|
|
157
|
+
DropdownMenuTrigger,
|
|
158
|
+
} from './dropdown-menu';
|
|
91
159
|
|
|
92
160
|
// Form
|
|
93
161
|
export { Form } from './form';
|
|
94
162
|
|
|
95
163
|
// Hover Card
|
|
96
|
-
export { HoverCard } from './hover-card';
|
|
164
|
+
export { HoverCard, HoverCardContent, HoverCardTrigger } from './hover-card';
|
|
97
165
|
|
|
98
166
|
// Input
|
|
99
167
|
export { Input } from './input';
|
|
@@ -103,13 +171,47 @@ export type { InputProps } from './input';
|
|
|
103
171
|
export { Label } from './label';
|
|
104
172
|
|
|
105
173
|
// Menubar
|
|
106
|
-
export {
|
|
174
|
+
export {
|
|
175
|
+
Menubar,
|
|
176
|
+
MenubarCheckboxItem,
|
|
177
|
+
MenubarContent,
|
|
178
|
+
MenubarGroup,
|
|
179
|
+
MenubarItem,
|
|
180
|
+
MenubarLabel,
|
|
181
|
+
MenubarMenu,
|
|
182
|
+
MenubarPortal,
|
|
183
|
+
MenubarRadioGroup,
|
|
184
|
+
MenubarRadioItem,
|
|
185
|
+
MenubarSeparator,
|
|
186
|
+
MenubarShortcut,
|
|
187
|
+
MenubarSub,
|
|
188
|
+
MenubarSubContent,
|
|
189
|
+
MenubarSubTrigger,
|
|
190
|
+
MenubarTrigger,
|
|
191
|
+
} from './menubar';
|
|
107
192
|
|
|
108
193
|
// Navigation Menu
|
|
109
|
-
export {
|
|
194
|
+
export {
|
|
195
|
+
NavigationMenu,
|
|
196
|
+
NavigationMenuContent,
|
|
197
|
+
NavigationMenuIndicator,
|
|
198
|
+
NavigationMenuItem,
|
|
199
|
+
NavigationMenuLink,
|
|
200
|
+
NavigationMenuList,
|
|
201
|
+
NavigationMenuTrigger,
|
|
202
|
+
NavigationMenuViewport,
|
|
203
|
+
} from './navigation-menu';
|
|
110
204
|
|
|
111
205
|
// Pagination
|
|
112
|
-
export {
|
|
206
|
+
export {
|
|
207
|
+
Pagination,
|
|
208
|
+
PaginationContent,
|
|
209
|
+
PaginationEllipsis,
|
|
210
|
+
PaginationItem,
|
|
211
|
+
PaginationLink,
|
|
212
|
+
PaginationNext,
|
|
213
|
+
PaginationPrevious,
|
|
214
|
+
} from './pagination';
|
|
113
215
|
|
|
114
216
|
// Popover
|
|
115
217
|
export { Popover, PopoverAnchor, PopoverContent, PopoverTrigger } from './popover';
|
|
@@ -204,6 +306,7 @@ export { ToggleGroup, ToggleGroupItem } from './toggle-group';
|
|
|
204
306
|
export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from './tooltip';
|
|
205
307
|
|
|
206
308
|
// Toast
|
|
309
|
+
export { toast, useToast } from './hooks/use-toast';
|
|
207
310
|
export { Toast } from './toast';
|
|
208
311
|
export type { ToastProps } from './toast';
|
|
209
312
|
|
package/src/menubar.tsx
CHANGED
|
@@ -1,9 +1,257 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type {
|
|
2
|
+
MenubarBaseProps,
|
|
3
|
+
MenubarCheckboxItemBaseProps,
|
|
4
|
+
MenubarContentBaseProps,
|
|
5
|
+
MenubarItemBaseProps,
|
|
6
|
+
MenubarLabelBaseProps,
|
|
7
|
+
MenubarRadioItemBaseProps,
|
|
8
|
+
MenubarSeparatorBaseProps,
|
|
9
|
+
MenubarShortcutBaseProps,
|
|
10
|
+
MenubarSubContentBaseProps,
|
|
11
|
+
MenubarSubTriggerBaseProps,
|
|
12
|
+
MenubarTriggerBaseProps,
|
|
13
|
+
} from '@gv-tech/ui-core';
|
|
14
|
+
import * as MenubarPrimitive from '@rn-primitives/menubar';
|
|
15
|
+
import { Check, ChevronRight, Circle } from 'lucide-react-native';
|
|
16
|
+
import * as React from 'react';
|
|
17
|
+
import { Platform, StyleSheet, View } from 'react-native';
|
|
18
|
+
import Animated, { FadeIn, FadeOut } from 'react-native-reanimated';
|
|
19
|
+
import { wrapTextChildren } from './lib/render-native';
|
|
20
|
+
import { cn } from './lib/utils';
|
|
21
|
+
import { Text } from './text';
|
|
2
22
|
|
|
3
|
-
export const Menubar =
|
|
23
|
+
export const Menubar = React.forwardRef<React.ElementRef<typeof MenubarPrimitive.Root>, MenubarBaseProps>(
|
|
24
|
+
({ className, children, value: valueProp, onValueChange: onValueChangeProp, ...props }, ref) => {
|
|
25
|
+
const [localValue, setLocalValue] = React.useState<string | undefined>(valueProp || '');
|
|
26
|
+
const value = valueProp !== undefined ? valueProp : localValue;
|
|
27
|
+
const onValueChange = (val: string | undefined) => {
|
|
28
|
+
setLocalValue(val);
|
|
29
|
+
onValueChangeProp?.(val || '');
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
return (
|
|
33
|
+
<MenubarPrimitive.Root
|
|
34
|
+
ref={ref}
|
|
35
|
+
value={value}
|
|
36
|
+
onValueChange={onValueChange}
|
|
37
|
+
className={cn(
|
|
38
|
+
'bg-background border-border flex flex-row items-center space-x-1 rounded-md border p-1 shadow-sm',
|
|
39
|
+
className,
|
|
40
|
+
)}
|
|
41
|
+
{...props}
|
|
42
|
+
>
|
|
43
|
+
{children}
|
|
44
|
+
</MenubarPrimitive.Root>
|
|
45
|
+
);
|
|
46
|
+
},
|
|
47
|
+
);
|
|
48
|
+
Menubar.displayName = 'Menubar';
|
|
49
|
+
|
|
50
|
+
export const MenubarMenu = MenubarPrimitive.Menu;
|
|
51
|
+
|
|
52
|
+
export const MenubarPortal = MenubarPrimitive.Portal;
|
|
53
|
+
|
|
54
|
+
export const MenubarGroup = MenubarPrimitive.Group;
|
|
55
|
+
|
|
56
|
+
export const MenubarRadioGroup = MenubarPrimitive.RadioGroup;
|
|
57
|
+
|
|
58
|
+
export const MenubarSub = MenubarPrimitive.Sub;
|
|
59
|
+
|
|
60
|
+
const MenubarOverlay = React.forwardRef<
|
|
61
|
+
React.ElementRef<typeof MenubarPrimitive.Overlay>,
|
|
62
|
+
React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Overlay>
|
|
63
|
+
>(({ className, ...props }, ref) => {
|
|
64
|
+
return (
|
|
65
|
+
<MenubarPrimitive.Overlay style={Platform.OS !== 'web' ? StyleSheet.absoluteFill : undefined} ref={ref} {...props}>
|
|
66
|
+
<Animated.View
|
|
67
|
+
entering={FadeIn.duration(100)}
|
|
68
|
+
exiting={FadeOut.duration(100)}
|
|
69
|
+
className={cn('absolute inset-0 z-50 bg-black/30', className)}
|
|
70
|
+
/>
|
|
71
|
+
</MenubarPrimitive.Overlay>
|
|
72
|
+
);
|
|
73
|
+
});
|
|
74
|
+
MenubarOverlay.displayName = 'MenubarOverlay';
|
|
75
|
+
|
|
76
|
+
export const MenubarTrigger = React.forwardRef<
|
|
77
|
+
React.ElementRef<typeof MenubarPrimitive.Trigger>,
|
|
78
|
+
MenubarTriggerBaseProps
|
|
79
|
+
>(({ className, children, ...props }, ref) => {
|
|
80
|
+
return (
|
|
81
|
+
<MenubarPrimitive.Trigger
|
|
82
|
+
ref={ref}
|
|
83
|
+
className={cn(
|
|
84
|
+
'focus:bg-accent focus:text-accent-foreground active:bg-accent active:text-accent-foreground flex flex-row items-center rounded-sm px-3 py-1.5 text-sm font-medium outline-none',
|
|
85
|
+
className,
|
|
86
|
+
)}
|
|
87
|
+
{...props}
|
|
88
|
+
>
|
|
89
|
+
{wrapTextChildren(children, Text)}
|
|
90
|
+
</MenubarPrimitive.Trigger>
|
|
91
|
+
);
|
|
92
|
+
});
|
|
93
|
+
MenubarTrigger.displayName = 'MenubarTrigger';
|
|
94
|
+
|
|
95
|
+
export const MenubarContent = React.forwardRef<
|
|
96
|
+
React.ElementRef<typeof MenubarPrimitive.Content>,
|
|
97
|
+
MenubarContentBaseProps
|
|
98
|
+
>(({ className, children, ...props }, ref) => {
|
|
4
99
|
return (
|
|
5
|
-
<
|
|
6
|
-
<
|
|
7
|
-
|
|
100
|
+
<MenubarPortal>
|
|
101
|
+
<MenubarOverlay />
|
|
102
|
+
<MenubarPrimitive.Content
|
|
103
|
+
ref={ref}
|
|
104
|
+
className={cn(
|
|
105
|
+
'bg-popover border-border z-50 min-w-[12rem] overflow-hidden rounded-md border p-1 shadow-md',
|
|
106
|
+
className,
|
|
107
|
+
)}
|
|
108
|
+
{...props}
|
|
109
|
+
>
|
|
110
|
+
{children}
|
|
111
|
+
</MenubarPrimitive.Content>
|
|
112
|
+
</MenubarPortal>
|
|
113
|
+
);
|
|
114
|
+
});
|
|
115
|
+
MenubarContent.displayName = 'MenubarContent';
|
|
116
|
+
|
|
117
|
+
export const MenubarItem = React.forwardRef<React.ElementRef<typeof MenubarPrimitive.Item>, MenubarItemBaseProps>(
|
|
118
|
+
({ className, children, inset, ...props }, ref) => {
|
|
119
|
+
return (
|
|
120
|
+
<MenubarPrimitive.Item
|
|
121
|
+
ref={ref}
|
|
122
|
+
className={cn(
|
|
123
|
+
'focus:bg-accent focus:text-accent-foreground active:bg-accent active:text-accent-foreground relative flex flex-row items-center rounded-sm px-2 py-1.5 text-sm outline-none',
|
|
124
|
+
inset && 'pl-8',
|
|
125
|
+
className,
|
|
126
|
+
)}
|
|
127
|
+
{...props}
|
|
128
|
+
>
|
|
129
|
+
{wrapTextChildren(children, Text)}
|
|
130
|
+
</MenubarPrimitive.Item>
|
|
131
|
+
);
|
|
132
|
+
},
|
|
133
|
+
);
|
|
134
|
+
MenubarItem.displayName = 'MenubarItem';
|
|
135
|
+
|
|
136
|
+
export const MenubarCheckboxItem = React.forwardRef<
|
|
137
|
+
React.ElementRef<typeof MenubarPrimitive.CheckboxItem>,
|
|
138
|
+
MenubarCheckboxItemBaseProps
|
|
139
|
+
>(({ className, children, checked, onCheckedChange, ...props }, ref) => {
|
|
140
|
+
return (
|
|
141
|
+
<MenubarPrimitive.CheckboxItem
|
|
142
|
+
ref={ref}
|
|
143
|
+
checked={!!checked}
|
|
144
|
+
onCheckedChange={onCheckedChange || (() => {})}
|
|
145
|
+
className={cn(
|
|
146
|
+
'focus:bg-accent focus:text-accent-foreground active:bg-accent active:text-accent-foreground relative flex flex-row items-center rounded-sm py-1.5 pr-2 pl-8 text-sm outline-none',
|
|
147
|
+
className,
|
|
148
|
+
)}
|
|
149
|
+
{...props}
|
|
150
|
+
>
|
|
151
|
+
<View className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
|
|
152
|
+
<MenubarPrimitive.ItemIndicator>
|
|
153
|
+
<Check size={14} className="text-foreground" />
|
|
154
|
+
</MenubarPrimitive.ItemIndicator>
|
|
155
|
+
</View>
|
|
156
|
+
{wrapTextChildren(children, Text)}
|
|
157
|
+
</MenubarPrimitive.CheckboxItem>
|
|
158
|
+
);
|
|
159
|
+
});
|
|
160
|
+
MenubarCheckboxItem.displayName = 'MenubarCheckboxItem';
|
|
161
|
+
|
|
162
|
+
export const MenubarRadioItem = React.forwardRef<
|
|
163
|
+
React.ElementRef<typeof MenubarPrimitive.RadioItem>,
|
|
164
|
+
MenubarRadioItemBaseProps
|
|
165
|
+
>(({ className, children, value, ...props }, ref) => {
|
|
166
|
+
return (
|
|
167
|
+
<MenubarPrimitive.RadioItem
|
|
168
|
+
ref={ref}
|
|
169
|
+
value={value}
|
|
170
|
+
className={cn(
|
|
171
|
+
'focus:bg-accent focus:text-accent-foreground active:bg-accent active:text-accent-foreground relative flex flex-row items-center rounded-sm py-1.5 pr-2 pl-8 text-sm outline-none',
|
|
172
|
+
className,
|
|
173
|
+
)}
|
|
174
|
+
{...props}
|
|
175
|
+
>
|
|
176
|
+
<View className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
|
|
177
|
+
<MenubarPrimitive.ItemIndicator>
|
|
178
|
+
<Circle size={8} className="text-foreground fill-current" />
|
|
179
|
+
</MenubarPrimitive.ItemIndicator>
|
|
180
|
+
</View>
|
|
181
|
+
{wrapTextChildren(children, Text)}
|
|
182
|
+
</MenubarPrimitive.RadioItem>
|
|
183
|
+
);
|
|
184
|
+
});
|
|
185
|
+
MenubarRadioItem.displayName = 'MenubarRadioItem';
|
|
186
|
+
|
|
187
|
+
export const MenubarLabel = React.forwardRef<React.ElementRef<typeof MenubarPrimitive.Label>, MenubarLabelBaseProps>(
|
|
188
|
+
({ className, children, inset, ...props }, ref) => {
|
|
189
|
+
return (
|
|
190
|
+
<MenubarPrimitive.Label
|
|
191
|
+
ref={ref}
|
|
192
|
+
className={cn('text-foreground px-2 py-1.5 text-sm font-semibold', inset && 'pl-8', className)}
|
|
193
|
+
{...props}
|
|
194
|
+
>
|
|
195
|
+
{wrapTextChildren(children, Text)}
|
|
196
|
+
</MenubarPrimitive.Label>
|
|
197
|
+
);
|
|
198
|
+
},
|
|
199
|
+
);
|
|
200
|
+
MenubarLabel.displayName = 'MenubarLabel';
|
|
201
|
+
|
|
202
|
+
export const MenubarSeparator = React.forwardRef<
|
|
203
|
+
React.ElementRef<typeof MenubarPrimitive.Separator>,
|
|
204
|
+
MenubarSeparatorBaseProps
|
|
205
|
+
>(({ className, ...props }, ref) => {
|
|
206
|
+
return <MenubarPrimitive.Separator ref={ref} className={cn('bg-border -mx-1 my-1 h-px', className)} {...props} />;
|
|
207
|
+
});
|
|
208
|
+
MenubarSeparator.displayName = 'MenubarSeparator';
|
|
209
|
+
|
|
210
|
+
export const MenubarShortcut = ({ className, children, ...props }: MenubarShortcutBaseProps) => {
|
|
211
|
+
return (
|
|
212
|
+
<Text className={cn('text-muted-foreground ml-auto text-xs tracking-widest', className)} {...props}>
|
|
213
|
+
{children}
|
|
214
|
+
</Text>
|
|
8
215
|
);
|
|
9
216
|
};
|
|
217
|
+
MenubarShortcut.displayName = 'MenubarShortcut';
|
|
218
|
+
|
|
219
|
+
export const MenubarSubTrigger = React.forwardRef<
|
|
220
|
+
React.ElementRef<typeof MenubarPrimitive.SubTrigger>,
|
|
221
|
+
MenubarSubTriggerBaseProps
|
|
222
|
+
>(({ className, children, inset, ...props }, ref) => {
|
|
223
|
+
return (
|
|
224
|
+
<MenubarPrimitive.SubTrigger
|
|
225
|
+
ref={ref}
|
|
226
|
+
className={cn(
|
|
227
|
+
'focus:bg-accent focus:text-accent-foreground active:bg-accent active:text-accent-foreground flex flex-row items-center rounded-sm px-2 py-1.5 text-sm outline-none',
|
|
228
|
+
inset && 'pl-8',
|
|
229
|
+
className,
|
|
230
|
+
)}
|
|
231
|
+
{...props}
|
|
232
|
+
>
|
|
233
|
+
<View className="flex flex-row items-center gap-1.5">{wrapTextChildren(children, Text)}</View>
|
|
234
|
+
<ChevronRight size={14} className="text-foreground ml-auto" />
|
|
235
|
+
</MenubarPrimitive.SubTrigger>
|
|
236
|
+
);
|
|
237
|
+
});
|
|
238
|
+
MenubarSubTrigger.displayName = 'MenubarSubTrigger';
|
|
239
|
+
|
|
240
|
+
export const MenubarSubContent = React.forwardRef<
|
|
241
|
+
React.ElementRef<typeof MenubarPrimitive.SubContent>,
|
|
242
|
+
MenubarSubContentBaseProps
|
|
243
|
+
>(({ className, children, ...props }, ref) => {
|
|
244
|
+
return (
|
|
245
|
+
<MenubarPrimitive.SubContent
|
|
246
|
+
ref={ref}
|
|
247
|
+
className={cn(
|
|
248
|
+
'bg-popover border-border z-50 min-w-[8rem] overflow-hidden rounded-md border p-1 shadow-md',
|
|
249
|
+
className,
|
|
250
|
+
)}
|
|
251
|
+
{...props}
|
|
252
|
+
>
|
|
253
|
+
{children}
|
|
254
|
+
</MenubarPrimitive.SubContent>
|
|
255
|
+
);
|
|
256
|
+
});
|
|
257
|
+
MenubarSubContent.displayName = 'MenubarSubContent';
|
package/src/navigation-menu.tsx
CHANGED
|
@@ -1,9 +1,179 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type {
|
|
2
|
+
NavigationMenuBaseProps,
|
|
3
|
+
NavigationMenuContentBaseProps,
|
|
4
|
+
NavigationMenuIndicatorBaseProps,
|
|
5
|
+
NavigationMenuItemBaseProps,
|
|
6
|
+
NavigationMenuLinkBaseProps,
|
|
7
|
+
NavigationMenuListBaseProps,
|
|
8
|
+
NavigationMenuTriggerBaseProps,
|
|
9
|
+
NavigationMenuViewportBaseProps,
|
|
10
|
+
} from '@gv-tech/ui-core';
|
|
11
|
+
import * as NavigationMenuPrimitive from '@rn-primitives/navigation-menu';
|
|
12
|
+
import { ChevronDown } from 'lucide-react-native';
|
|
13
|
+
import * as React from 'react';
|
|
14
|
+
import { GestureResponderEvent, View } from 'react-native';
|
|
15
|
+
import Animated, { FadeIn, FadeOut } from 'react-native-reanimated';
|
|
16
|
+
import { cn } from './lib/utils';
|
|
2
17
|
|
|
3
|
-
export const NavigationMenu =
|
|
18
|
+
export const NavigationMenu = React.forwardRef<
|
|
19
|
+
React.ElementRef<typeof NavigationMenuPrimitive.Root>,
|
|
20
|
+
NavigationMenuBaseProps
|
|
21
|
+
>(
|
|
22
|
+
(
|
|
23
|
+
{ className, children, value, onValueChange, dir, orientation, delayDuration, skipDelayDuration, ...props },
|
|
24
|
+
ref,
|
|
25
|
+
) => {
|
|
26
|
+
return (
|
|
27
|
+
<NavigationMenuPrimitive.Root
|
|
28
|
+
ref={ref}
|
|
29
|
+
value={value}
|
|
30
|
+
onValueChange={onValueChange ? (val) => onValueChange(val || '') : () => {}}
|
|
31
|
+
delayDuration={delayDuration}
|
|
32
|
+
skipDelayDuration={skipDelayDuration}
|
|
33
|
+
className={cn('relative z-10 flex flex-row items-center justify-center', className)}
|
|
34
|
+
{...props}
|
|
35
|
+
>
|
|
36
|
+
{children}
|
|
37
|
+
</NavigationMenuPrimitive.Root>
|
|
38
|
+
);
|
|
39
|
+
},
|
|
40
|
+
);
|
|
41
|
+
NavigationMenu.displayName = 'NavigationMenu';
|
|
42
|
+
|
|
43
|
+
export const NavigationMenuList = React.forwardRef<
|
|
44
|
+
React.ElementRef<typeof NavigationMenuPrimitive.List>,
|
|
45
|
+
NavigationMenuListBaseProps
|
|
46
|
+
>(({ className, children, ...props }, ref) => {
|
|
47
|
+
return (
|
|
48
|
+
<NavigationMenuPrimitive.List
|
|
49
|
+
ref={ref}
|
|
50
|
+
className={cn('group flex flex-1 list-none flex-row items-center justify-center gap-1', className)}
|
|
51
|
+
{...props}
|
|
52
|
+
>
|
|
53
|
+
{children}
|
|
54
|
+
</NavigationMenuPrimitive.List>
|
|
55
|
+
);
|
|
56
|
+
});
|
|
57
|
+
NavigationMenuList.displayName = 'NavigationMenuList';
|
|
58
|
+
|
|
59
|
+
export const NavigationMenuItem = React.forwardRef<
|
|
60
|
+
React.ElementRef<typeof NavigationMenuPrimitive.Item>,
|
|
61
|
+
NavigationMenuItemBaseProps
|
|
62
|
+
>(({ className, children, value, ...props }, ref) => {
|
|
63
|
+
return (
|
|
64
|
+
<NavigationMenuPrimitive.Item ref={ref} value={value || ''} className={cn('relative', className)} {...props}>
|
|
65
|
+
{children}
|
|
66
|
+
</NavigationMenuPrimitive.Item>
|
|
67
|
+
);
|
|
68
|
+
});
|
|
69
|
+
NavigationMenuItem.displayName = 'NavigationMenuItem';
|
|
70
|
+
|
|
71
|
+
export const NavigationMenuTrigger = React.forwardRef<
|
|
72
|
+
React.ElementRef<typeof NavigationMenuPrimitive.Trigger>,
|
|
73
|
+
NavigationMenuTriggerBaseProps
|
|
74
|
+
>(({ className, children, disabled, ...props }, ref) => {
|
|
75
|
+
return (
|
|
76
|
+
<NavigationMenuPrimitive.Trigger
|
|
77
|
+
ref={ref}
|
|
78
|
+
disabled={disabled}
|
|
79
|
+
className={cn(
|
|
80
|
+
'group bg-background hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground active:bg-accent active:text-accent-foreground flex flex-row items-center justify-center gap-1 rounded-md px-4 py-2 text-sm font-medium transition-colors disabled:opacity-50',
|
|
81
|
+
className,
|
|
82
|
+
)}
|
|
83
|
+
{...props}
|
|
84
|
+
>
|
|
85
|
+
<>{children}</>
|
|
86
|
+
<ChevronDown
|
|
87
|
+
size={12}
|
|
88
|
+
className="text-muted-foreground transition-transform duration-200 group-data-[state=open]:rotate-180"
|
|
89
|
+
/>
|
|
90
|
+
</NavigationMenuPrimitive.Trigger>
|
|
91
|
+
);
|
|
92
|
+
});
|
|
93
|
+
NavigationMenuTrigger.displayName = 'NavigationMenuTrigger';
|
|
94
|
+
|
|
95
|
+
export const NavigationMenuContent = React.forwardRef<
|
|
96
|
+
React.ElementRef<typeof NavigationMenuPrimitive.Content>,
|
|
97
|
+
NavigationMenuContentBaseProps
|
|
98
|
+
>(({ className, children, forceMount, ...props }, ref) => {
|
|
4
99
|
return (
|
|
5
|
-
<
|
|
6
|
-
<
|
|
100
|
+
<NavigationMenuPrimitive.Portal>
|
|
101
|
+
<NavigationMenuPrimitive.Content ref={ref} {...props}>
|
|
102
|
+
<Animated.View
|
|
103
|
+
entering={FadeIn.duration(150)}
|
|
104
|
+
exiting={FadeOut.duration(150)}
|
|
105
|
+
className={cn('bg-popover border-border z-50 overflow-hidden rounded-md border p-4 shadow-md', className)}
|
|
106
|
+
>
|
|
107
|
+
{children}
|
|
108
|
+
</Animated.View>
|
|
109
|
+
</NavigationMenuPrimitive.Content>
|
|
110
|
+
</NavigationMenuPrimitive.Portal>
|
|
111
|
+
);
|
|
112
|
+
});
|
|
113
|
+
NavigationMenuContent.displayName = 'NavigationMenuContent';
|
|
114
|
+
|
|
115
|
+
export const NavigationMenuLink = React.forwardRef<
|
|
116
|
+
React.ElementRef<typeof NavigationMenuPrimitive.Link>,
|
|
117
|
+
NavigationMenuLinkBaseProps & { onPress?: () => void }
|
|
118
|
+
>(({ className, children, active, onSelect, onPress, href, ...props }, ref) => {
|
|
119
|
+
const handlePress = (e: GestureResponderEvent) => {
|
|
120
|
+
if (onPress) {
|
|
121
|
+
onPress();
|
|
122
|
+
}
|
|
123
|
+
if (onSelect) {
|
|
124
|
+
onSelect(e as unknown as Event);
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
return (
|
|
129
|
+
<NavigationMenuPrimitive.Link
|
|
130
|
+
ref={ref}
|
|
131
|
+
active={active}
|
|
132
|
+
onPress={handlePress}
|
|
133
|
+
className={cn(
|
|
134
|
+
'hover:bg-accent hover:text-accent-foreground active:bg-accent active:text-accent-foreground rounded-md px-3 py-2 text-sm font-medium transition-colors',
|
|
135
|
+
active && 'bg-accent text-accent-foreground',
|
|
136
|
+
className,
|
|
137
|
+
)}
|
|
138
|
+
{...props}
|
|
139
|
+
>
|
|
140
|
+
{children}
|
|
141
|
+
</NavigationMenuPrimitive.Link>
|
|
142
|
+
);
|
|
143
|
+
});
|
|
144
|
+
NavigationMenuLink.displayName = 'NavigationMenuLink';
|
|
145
|
+
|
|
146
|
+
export const NavigationMenuViewport = React.forwardRef<
|
|
147
|
+
React.ElementRef<typeof NavigationMenuPrimitive.Viewport>,
|
|
148
|
+
NavigationMenuViewportBaseProps
|
|
149
|
+
>(({ className, forceMount, ...props }, ref) => {
|
|
150
|
+
return (
|
|
151
|
+
<View className="absolute top-full left-0 flex justify-center">
|
|
152
|
+
<NavigationMenuPrimitive.Viewport
|
|
153
|
+
ref={ref}
|
|
154
|
+
className={cn(
|
|
155
|
+
'origin-top-center bg-popover text-popover-foreground border-border relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border shadow-lg md:w-[var(--radix-navigation-menu-viewport-width)]',
|
|
156
|
+
className,
|
|
157
|
+
)}
|
|
158
|
+
{...props}
|
|
159
|
+
/>
|
|
7
160
|
</View>
|
|
8
161
|
);
|
|
9
|
-
};
|
|
162
|
+
});
|
|
163
|
+
NavigationMenuViewport.displayName = 'NavigationMenuViewport';
|
|
164
|
+
|
|
165
|
+
export const NavigationMenuIndicator = React.forwardRef<
|
|
166
|
+
React.ElementRef<typeof NavigationMenuPrimitive.Indicator>,
|
|
167
|
+
NavigationMenuIndicatorBaseProps
|
|
168
|
+
>(({ className, forceMount, ...props }, ref) => {
|
|
169
|
+
return (
|
|
170
|
+
<NavigationMenuPrimitive.Indicator
|
|
171
|
+
ref={ref}
|
|
172
|
+
className={cn('z-10 flex h-1.5 items-end justify-center overflow-hidden transition-all duration-200', className)}
|
|
173
|
+
{...props}
|
|
174
|
+
>
|
|
175
|
+
<View className="bg-border relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-md" />
|
|
176
|
+
</NavigationMenuPrimitive.Indicator>
|
|
177
|
+
);
|
|
178
|
+
});
|
|
179
|
+
NavigationMenuIndicator.displayName = 'NavigationMenuIndicator';
|