@coston/ui 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +87 -0
- package/dist/button-BEd6_-lL.d.ts +16 -0
- package/dist/button-BEd6_-lL.d.ts.map +1 -0
- package/dist/button-CJvoztqg.js +46 -0
- package/dist/button-CJvoztqg.js.map +1 -0
- package/dist/components/accordion.d.ts +11 -0
- package/dist/components/accordion.d.ts.map +1 -0
- package/dist/components/accordion.js +38 -0
- package/dist/components/accordion.js.map +1 -0
- package/dist/components/alert-dialog.d.ts +31 -0
- package/dist/components/alert-dialog.d.ts.map +1 -0
- package/dist/components/alert-dialog.js +60 -0
- package/dist/components/alert-dialog.js.map +1 -0
- package/dist/components/alert.d.ts +13 -0
- package/dist/components/alert.d.ts.map +1 -0
- package/dist/components/alert.js +36 -0
- package/dist/components/alert.js.map +1 -0
- package/dist/components/aspect-ratio.d.ts +8 -0
- package/dist/components/aspect-ratio.d.ts.map +1 -0
- package/dist/components/aspect-ratio.js +8 -0
- package/dist/components/aspect-ratio.js.map +1 -0
- package/dist/components/avatar.d.ts +10 -0
- package/dist/components/avatar.d.ts.map +1 -0
- package/dist/components/avatar.js +28 -0
- package/dist/components/avatar.js.map +1 -0
- package/dist/components/badge.d.ts +18 -0
- package/dist/components/badge.d.ts.map +1 -0
- package/dist/components/badge.js +25 -0
- package/dist/components/badge.js.map +1 -0
- package/dist/components/breadcrumb.d.ts +31 -0
- package/dist/components/breadcrumb.d.ts.map +1 -0
- package/dist/components/breadcrumb.js +66 -0
- package/dist/components/breadcrumb.js.map +1 -0
- package/dist/components/button.d.ts +2 -0
- package/dist/components/button.js +4 -0
- package/dist/components/calendar.d.ts +17 -0
- package/dist/components/calendar.d.ts.map +1 -0
- package/dist/components/calendar.js +46 -0
- package/dist/components/calendar.js.map +1 -0
- package/dist/components/card.d.ts +12 -0
- package/dist/components/card.d.ts.map +1 -0
- package/dist/components/card.js +46 -0
- package/dist/components/card.js.map +1 -0
- package/dist/components/carousel.d.ts +23 -0
- package/dist/components/carousel.d.ts.map +1 -0
- package/dist/components/carousel.js +139 -0
- package/dist/components/carousel.js.map +1 -0
- package/dist/components/chart.d.ts +32 -0
- package/dist/components/chart.d.ts.map +1 -0
- package/dist/components/chart.js +115 -0
- package/dist/components/chart.js.map +1 -0
- package/dist/components/checkbox.d.ts +8 -0
- package/dist/components/checkbox.d.ts.map +1 -0
- package/dist/components/checkbox.js +21 -0
- package/dist/components/checkbox.js.map +1 -0
- package/dist/components/collapsible.d.ts +10 -0
- package/dist/components/collapsible.d.ts.map +1 -0
- package/dist/components/collapsible.js +13 -0
- package/dist/components/collapsible.js.map +1 -0
- package/dist/components/command.d.ts +26 -0
- package/dist/components/command.d.ts.map +1 -0
- package/dist/components/command.js +77 -0
- package/dist/components/command.js.map +1 -0
- package/dist/components/context-menu.d.ts +35 -0
- package/dist/components/context-menu.d.ts.map +1 -0
- package/dist/components/context-menu.js +82 -0
- package/dist/components/context-menu.js.map +1 -0
- package/dist/components/dialog.d.ts +30 -0
- package/dist/components/dialog.d.ts.map +1 -0
- package/dist/components/dialog.js +4 -0
- package/dist/components/drawer.d.ts +36 -0
- package/dist/components/drawer.d.ts.map +1 -0
- package/dist/components/drawer.js +53 -0
- package/dist/components/drawer.js.map +1 -0
- package/dist/components/dropdown-menu.d.ts +35 -0
- package/dist/components/dropdown-menu.d.ts.map +1 -0
- package/dist/components/dropdown-menu.js +83 -0
- package/dist/components/dropdown-menu.js.map +1 -0
- package/dist/components/hover-card.d.ts +10 -0
- package/dist/components/hover-card.d.ts.map +1 -0
- package/dist/components/hover-card.js +20 -0
- package/dist/components/hover-card.js.map +1 -0
- package/dist/components/input.d.ts +8 -0
- package/dist/components/input.d.ts.map +1 -0
- package/dist/components/input.js +18 -0
- package/dist/components/input.js.map +1 -0
- package/dist/components/label.d.ts +10 -0
- package/dist/components/label.d.ts.map +1 -0
- package/dist/components/label.js +18 -0
- package/dist/components/label.js.map +1 -0
- package/dist/components/menubar.d.ts +42 -0
- package/dist/components/menubar.d.ts.map +1 -0
- package/dist/components/menubar.js +96 -0
- package/dist/components/menubar.js.map +1 -0
- package/dist/components/navigation-menu.d.ts +17 -0
- package/dist/components/navigation-menu.d.ts.map +1 -0
- package/dist/components/navigation-menu.js +64 -0
- package/dist/components/navigation-menu.js.map +1 -0
- package/dist/components/pagination.d.ts +50 -0
- package/dist/components/pagination.d.ts.map +1 -0
- package/dist/components/pagination.js +65 -0
- package/dist/components/pagination.js.map +1 -0
- package/dist/components/popover.d.ts +10 -0
- package/dist/components/popover.d.ts.map +1 -0
- package/dist/components/popover.js +20 -0
- package/dist/components/popover.js.map +1 -0
- package/dist/components/progress.d.ts +8 -0
- package/dist/components/progress.d.ts.map +1 -0
- package/dist/components/progress.js +20 -0
- package/dist/components/progress.js.map +1 -0
- package/dist/components/radio-group.d.ts +9 -0
- package/dist/components/radio-group.d.ts.map +1 -0
- package/dist/components/radio-group.js +31 -0
- package/dist/components/radio-group.js.map +1 -0
- package/dist/components/resizable.d.ts +20 -0
- package/dist/components/resizable.d.ts.map +1 -0
- package/dist/components/resizable.js +24 -0
- package/dist/components/resizable.js.map +1 -0
- package/dist/components/scroll-area.d.ts +9 -0
- package/dist/components/scroll-area.d.ts.map +1 -0
- package/dist/components/scroll-area.js +32 -0
- package/dist/components/scroll-area.js.map +1 -0
- package/dist/components/select.d.ts +17 -0
- package/dist/components/select.d.ts.map +1 -0
- package/dist/components/select.js +75 -0
- package/dist/components/select.js.map +1 -0
- package/dist/components/separator.d.ts +8 -0
- package/dist/components/separator.d.ts.map +1 -0
- package/dist/components/separator.js +4 -0
- package/dist/components/sheet.d.ts +36 -0
- package/dist/components/sheet.d.ts.map +1 -0
- package/dist/components/sheet.js +69 -0
- package/dist/components/sheet.js.map +1 -0
- package/dist/components/sidebar.d.ts +54 -0
- package/dist/components/sidebar.d.ts.map +1 -0
- package/dist/components/sidebar.js +267 -0
- package/dist/components/sidebar.js.map +1 -0
- package/dist/components/skeleton.d.ts +10 -0
- package/dist/components/skeleton.d.ts.map +1 -0
- package/dist/components/skeleton.js +14 -0
- package/dist/components/skeleton.js.map +1 -0
- package/dist/components/slider.d.ts +8 -0
- package/dist/components/slider.d.ts.map +1 -0
- package/dist/components/slider.js +20 -0
- package/dist/components/slider.js.map +1 -0
- package/dist/components/sonner.d.ts +11 -0
- package/dist/components/sonner.d.ts.map +1 -0
- package/dist/components/sonner.js +22 -0
- package/dist/components/sonner.js.map +1 -0
- package/dist/components/switch.d.ts +8 -0
- package/dist/components/switch.d.ts.map +1 -0
- package/dist/components/switch.js +17 -0
- package/dist/components/switch.js.map +1 -0
- package/dist/components/table.d.ts +14 -0
- package/dist/components/table.d.ts.map +1 -0
- package/dist/components/table.js +61 -0
- package/dist/components/table.js.map +1 -0
- package/dist/components/tabs.d.ts +11 -0
- package/dist/components/tabs.d.ts.map +1 -0
- package/dist/components/tabs.js +29 -0
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/textarea.d.ts +7 -0
- package/dist/components/textarea.d.ts.map +1 -0
- package/dist/components/textarea.js +17 -0
- package/dist/components/textarea.js.map +1 -0
- package/dist/components/toggle-group.d.ts +17 -0
- package/dist/components/toggle-group.d.ts.map +1 -0
- package/dist/components/toggle-group.js +41 -0
- package/dist/components/toggle-group.js.map +1 -0
- package/dist/components/toggle.d.ts +17 -0
- package/dist/components/toggle.d.ts.map +1 -0
- package/dist/components/toggle.js +4 -0
- package/dist/components/tooltip.d.ts +2 -0
- package/dist/components/tooltip.js +4 -0
- package/dist/dialog-B_8jhMOs.js +56 -0
- package/dist/dialog-B_8jhMOs.js.map +1 -0
- package/dist/hooks/use-mobile.d.ts +7 -0
- package/dist/hooks/use-mobile.d.ts.map +1 -0
- package/dist/hooks/use-mobile.js +3 -0
- package/dist/lib/utils.d.ts +9 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +3 -0
- package/dist/separator-9lzFsfCC.js +18 -0
- package/dist/separator-9lzFsfCC.js.map +1 -0
- package/dist/toggle-BpKiTVe4.js +38 -0
- package/dist/toggle-BpKiTVe4.js.map +1 -0
- package/dist/tooltip-CXS6wR7g.js +20 -0
- package/dist/tooltip-CXS6wR7g.js.map +1 -0
- package/dist/tooltip-DPcgBDyX.d.ts +11 -0
- package/dist/tooltip-DPcgBDyX.d.ts.map +1 -0
- package/dist/use-mobile-CixTQBWA.js +21 -0
- package/dist/use-mobile-CixTQBWA.js.map +1 -0
- package/dist/utils-C0f9Ma6r.js +11 -0
- package/dist/utils-C0f9Ma6r.js.map +1 -0
- package/package.json +168 -0
- package/src/components/accordion.tsx +51 -0
- package/src/components/alert-dialog.tsx +115 -0
- package/src/components/alert.tsx +49 -0
- package/src/components/aspect-ratio.tsx +5 -0
- package/src/components/avatar.tsx +44 -0
- package/src/components/badge.tsx +32 -0
- package/src/components/breadcrumb.tsx +101 -0
- package/src/components/button.tsx +48 -0
- package/src/components/calendar.tsx +76 -0
- package/src/components/card.tsx +60 -0
- package/src/components/carousel.tsx +240 -0
- package/src/components/chart.tsx +232 -0
- package/src/components/checkbox.tsx +25 -0
- package/src/components/collapsible.tsx +11 -0
- package/src/components/command.tsx +136 -0
- package/src/components/context-menu.tsx +187 -0
- package/src/components/dialog.tsx +105 -0
- package/src/components/drawer.tsx +98 -0
- package/src/components/dropdown-menu.tsx +185 -0
- package/src/components/hover-card.tsx +29 -0
- package/src/components/input.tsx +24 -0
- package/src/components/label.tsx +19 -0
- package/src/components/menubar.tsx +219 -0
- package/src/components/navigation-menu.tsx +120 -0
- package/src/components/pagination.tsx +98 -0
- package/src/components/popover.tsx +27 -0
- package/src/components/progress.tsx +23 -0
- package/src/components/radio-group.tsx +35 -0
- package/src/components/resizable.tsx +38 -0
- package/src/components/scroll-area.tsx +43 -0
- package/src/components/select.tsx +147 -0
- package/src/components/separator.tsx +23 -0
- package/src/components/sheet.tsx +122 -0
- package/src/components/sidebar.tsx +507 -0
- package/src/components/skeleton.tsx +7 -0
- package/src/components/slider.tsx +23 -0
- package/src/components/sonner.tsx +26 -0
- package/src/components/switch.tsx +26 -0
- package/src/components/table.tsx +95 -0
- package/src/components/tabs.tsx +53 -0
- package/src/components/textarea.tsx +20 -0
- package/src/components/toggle-group.tsx +54 -0
- package/src/components/toggle.tsx +40 -0
- package/src/components/tooltip.tsx +27 -0
- package/src/hooks/use-mobile.tsx +19 -0
- package/src/lib/utils.ts +6 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import * as TabsPrimitive from '@radix-ui/react-tabs';
|
|
3
|
+
|
|
4
|
+
import { cn } from '../lib/utils';
|
|
5
|
+
|
|
6
|
+
const Tabs = TabsPrimitive.Root;
|
|
7
|
+
|
|
8
|
+
const TabsList = React.forwardRef<
|
|
9
|
+
React.ElementRef<typeof TabsPrimitive.List>,
|
|
10
|
+
React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>
|
|
11
|
+
>(({ className, ...props }, ref) => (
|
|
12
|
+
<TabsPrimitive.List
|
|
13
|
+
ref={ref}
|
|
14
|
+
className={cn(
|
|
15
|
+
'inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground',
|
|
16
|
+
className
|
|
17
|
+
)}
|
|
18
|
+
{...props}
|
|
19
|
+
/>
|
|
20
|
+
));
|
|
21
|
+
TabsList.displayName = TabsPrimitive.List.displayName;
|
|
22
|
+
|
|
23
|
+
const TabsTrigger = React.forwardRef<
|
|
24
|
+
React.ElementRef<typeof TabsPrimitive.Trigger>,
|
|
25
|
+
React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>
|
|
26
|
+
>(({ className, ...props }, ref) => (
|
|
27
|
+
<TabsPrimitive.Trigger
|
|
28
|
+
ref={ref}
|
|
29
|
+
className={cn(
|
|
30
|
+
'inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm',
|
|
31
|
+
className
|
|
32
|
+
)}
|
|
33
|
+
{...props}
|
|
34
|
+
/>
|
|
35
|
+
));
|
|
36
|
+
TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
|
|
37
|
+
|
|
38
|
+
const TabsContent = React.forwardRef<
|
|
39
|
+
React.ElementRef<typeof TabsPrimitive.Content>,
|
|
40
|
+
React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>
|
|
41
|
+
>(({ className, ...props }, ref) => (
|
|
42
|
+
<TabsPrimitive.Content
|
|
43
|
+
ref={ref}
|
|
44
|
+
className={cn(
|
|
45
|
+
'mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',
|
|
46
|
+
className
|
|
47
|
+
)}
|
|
48
|
+
{...props}
|
|
49
|
+
/>
|
|
50
|
+
));
|
|
51
|
+
TabsContent.displayName = TabsPrimitive.Content.displayName;
|
|
52
|
+
|
|
53
|
+
export { Tabs, TabsList, TabsTrigger, TabsContent };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { cn } from '../lib/utils';
|
|
3
|
+
|
|
4
|
+
const Textarea = React.forwardRef<HTMLTextAreaElement, React.ComponentProps<'textarea'>>(
|
|
5
|
+
({ className, ...props }, ref) => {
|
|
6
|
+
return (
|
|
7
|
+
<textarea
|
|
8
|
+
className={cn(
|
|
9
|
+
'flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background 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',
|
|
10
|
+
className
|
|
11
|
+
)}
|
|
12
|
+
ref={ref}
|
|
13
|
+
{...props}
|
|
14
|
+
/>
|
|
15
|
+
);
|
|
16
|
+
}
|
|
17
|
+
);
|
|
18
|
+
Textarea.displayName = 'Textarea';
|
|
19
|
+
|
|
20
|
+
export { Textarea };
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
|
|
3
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
4
|
+
import { cn } from '../lib/utils';
|
|
5
|
+
import { toggleVariants } from './toggle';
|
|
6
|
+
|
|
7
|
+
const ToggleGroupContext = React.createContext<VariantProps<typeof toggleVariants>>({
|
|
8
|
+
size: 'default',
|
|
9
|
+
variant: 'default',
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
const ToggleGroup = React.forwardRef<
|
|
13
|
+
React.ComponentRef<typeof ToggleGroupPrimitive.Root>,
|
|
14
|
+
React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Root> &
|
|
15
|
+
VariantProps<typeof toggleVariants>
|
|
16
|
+
>(({ className, variant, size, children, ...props }, ref) => (
|
|
17
|
+
<ToggleGroupPrimitive.Root
|
|
18
|
+
ref={ref}
|
|
19
|
+
className={cn('flex items-center justify-center gap-1', className)}
|
|
20
|
+
{...props}
|
|
21
|
+
>
|
|
22
|
+
<ToggleGroupContext.Provider value={{ variant, size }}>{children}</ToggleGroupContext.Provider>
|
|
23
|
+
</ToggleGroupPrimitive.Root>
|
|
24
|
+
));
|
|
25
|
+
|
|
26
|
+
ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
|
|
27
|
+
|
|
28
|
+
const ToggleGroupItem = React.forwardRef<
|
|
29
|
+
React.ComponentRef<typeof ToggleGroupPrimitive.Item>,
|
|
30
|
+
React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Item> &
|
|
31
|
+
VariantProps<typeof toggleVariants>
|
|
32
|
+
>(({ className, children, variant, size, ...props }, ref) => {
|
|
33
|
+
const context = React.useContext(ToggleGroupContext);
|
|
34
|
+
|
|
35
|
+
return (
|
|
36
|
+
<ToggleGroupPrimitive.Item
|
|
37
|
+
ref={ref}
|
|
38
|
+
className={cn(
|
|
39
|
+
toggleVariants({
|
|
40
|
+
variant: variant || context.variant,
|
|
41
|
+
size: size || context.size,
|
|
42
|
+
}),
|
|
43
|
+
className
|
|
44
|
+
)}
|
|
45
|
+
{...props}
|
|
46
|
+
>
|
|
47
|
+
{children}
|
|
48
|
+
</ToggleGroupPrimitive.Item>
|
|
49
|
+
);
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
|
|
53
|
+
|
|
54
|
+
export { ToggleGroup, ToggleGroupItem };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import * as TogglePrimitive from '@radix-ui/react-toggle';
|
|
3
|
+
import { cva, type VariantProps } from 'class-variance-authority';
|
|
4
|
+
import { cn } from '../lib/utils';
|
|
5
|
+
|
|
6
|
+
const toggleVariants = cva(
|
|
7
|
+
'inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-primary data-[state=on]:text-primary-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',
|
|
8
|
+
{
|
|
9
|
+
variants: {
|
|
10
|
+
variant: {
|
|
11
|
+
default: 'bg-transparent',
|
|
12
|
+
outline: 'border border-input bg-transparent hover:bg-accent hover:text-accent-foreground',
|
|
13
|
+
},
|
|
14
|
+
size: {
|
|
15
|
+
default: 'h-10 px-3 min-w-10',
|
|
16
|
+
sm: 'h-9 px-2.5 min-w-9',
|
|
17
|
+
lg: 'h-11 px-5 min-w-11',
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
defaultVariants: {
|
|
21
|
+
variant: 'default',
|
|
22
|
+
size: 'default',
|
|
23
|
+
},
|
|
24
|
+
}
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
const Toggle = React.forwardRef<
|
|
28
|
+
React.ComponentRef<typeof TogglePrimitive.Root>,
|
|
29
|
+
React.ComponentPropsWithoutRef<typeof TogglePrimitive.Root> & VariantProps<typeof toggleVariants>
|
|
30
|
+
>(({ className, variant, size, ...props }, ref) => (
|
|
31
|
+
<TogglePrimitive.Root
|
|
32
|
+
ref={ref}
|
|
33
|
+
className={cn(toggleVariants({ variant, size, className }))}
|
|
34
|
+
{...props}
|
|
35
|
+
/>
|
|
36
|
+
));
|
|
37
|
+
|
|
38
|
+
Toggle.displayName = TogglePrimitive.Root.displayName;
|
|
39
|
+
|
|
40
|
+
export { Toggle, toggleVariants };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
3
|
+
import { cn } from '../lib/utils';
|
|
4
|
+
|
|
5
|
+
const TooltipProvider = TooltipPrimitive.Provider;
|
|
6
|
+
const Tooltip = TooltipPrimitive.Root;
|
|
7
|
+
const TooltipTrigger = TooltipPrimitive.Trigger;
|
|
8
|
+
|
|
9
|
+
const TooltipContent = React.forwardRef<
|
|
10
|
+
React.ComponentRef<typeof TooltipPrimitive.Content>,
|
|
11
|
+
React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>
|
|
12
|
+
>(({ className, sideOffset = 4, ...props }, ref) => (
|
|
13
|
+
<TooltipPrimitive.Portal>
|
|
14
|
+
<TooltipPrimitive.Content
|
|
15
|
+
ref={ref}
|
|
16
|
+
sideOffset={sideOffset}
|
|
17
|
+
className={cn(
|
|
18
|
+
'z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95',
|
|
19
|
+
className
|
|
20
|
+
)}
|
|
21
|
+
{...props}
|
|
22
|
+
/>
|
|
23
|
+
</TooltipPrimitive.Portal>
|
|
24
|
+
));
|
|
25
|
+
TooltipContent.displayName = TooltipPrimitive.Content.displayName;
|
|
26
|
+
|
|
27
|
+
export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
const MOBILE_BREAKPOINT = 768;
|
|
4
|
+
|
|
5
|
+
export function useIsMobile() {
|
|
6
|
+
const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined);
|
|
7
|
+
|
|
8
|
+
React.useEffect(() => {
|
|
9
|
+
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
10
|
+
const onChange = () => {
|
|
11
|
+
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
12
|
+
};
|
|
13
|
+
mql.addEventListener('change', onChange);
|
|
14
|
+
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
15
|
+
return () => mql.removeEventListener('change', onChange);
|
|
16
|
+
}, []);
|
|
17
|
+
|
|
18
|
+
return !!isMobile;
|
|
19
|
+
}
|