@codefast/ui 0.3.16-canary.3 → 0.4.0-canary.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +112 -0
- package/README.md +27 -16
- package/dist/components/accordion.d.mts +7 -22
- package/dist/components/accordion.mjs +26 -29
- package/dist/components/alert-dialog.d.mts +27 -26
- package/dist/components/alert-dialog.mjs +53 -45
- package/dist/components/alert.d.mts +12 -2
- package/dist/components/alert.mjs +15 -6
- package/dist/components/aspect-ratio.d.mts +2 -2
- package/dist/components/aspect-ratio.mjs +2 -3
- package/dist/components/avatar.d.mts +41 -5
- package/dist/components/avatar.mjs +40 -10
- package/dist/components/badge.mjs +4 -4
- package/dist/components/breadcrumb.d.mts +1 -0
- package/dist/components/breadcrumb.mjs +11 -10
- package/dist/components/button-group.d.mts +1 -1
- package/dist/components/button-group.mjs +6 -7
- package/dist/components/button.d.mts +0 -1
- package/dist/components/button.mjs +7 -7
- package/dist/components/calendar.d.mts +6 -2
- package/dist/components/calendar.mjs +39 -43
- package/dist/components/card.d.mts +4 -2
- package/dist/components/card.mjs +9 -9
- package/dist/components/carousel.d.mts +16 -4
- package/dist/components/carousel.mjs +25 -12
- package/dist/components/chart.d.mts +8 -3
- package/dist/components/chart.mjs +21 -15
- package/dist/components/checkbox-cards.mjs +6 -6
- package/dist/components/checkbox-group.mjs +6 -7
- package/dist/components/checkbox.d.mts +2 -2
- package/dist/components/checkbox.mjs +8 -9
- package/dist/components/collapsible.d.mts +4 -4
- package/dist/components/collapsible.mjs +4 -5
- package/dist/components/command.d.mts +11 -1
- package/dist/components/command.mjs +35 -32
- package/dist/components/context-menu.d.mts +22 -15
- package/dist/components/context-menu.mjs +44 -39
- package/dist/components/dialog.d.mts +19 -23
- package/dist/components/dialog.mjs +48 -47
- package/dist/components/direction.d.mts +24 -0
- package/dist/components/direction.mjs +18 -0
- package/dist/components/drawer.d.mts +2 -20
- package/dist/components/drawer.mjs +17 -25
- package/dist/components/dropdown-menu.d.mts +22 -15
- package/dist/components/dropdown-menu.mjs +41 -37
- package/dist/components/empty.mjs +5 -5
- package/dist/components/field.d.mts +1 -1
- package/dist/components/field.mjs +11 -12
- package/dist/components/form.d.mts +6 -7
- package/dist/components/form.mjs +6 -7
- package/dist/components/hover-card.d.mts +5 -5
- package/dist/components/hover-card.mjs +14 -12
- package/dist/components/input-group.d.mts +1 -1
- package/dist/components/input-group.mjs +12 -7
- package/dist/components/input-number.d.mts +3 -1
- package/dist/components/input-number.mjs +49 -27
- package/dist/components/input-otp.mjs +9 -7
- package/dist/components/input-password.mjs +1 -4
- package/dist/components/input-search.mjs +3 -5
- package/dist/components/input.mjs +1 -2
- package/dist/components/item.mjs +9 -9
- package/dist/components/kbd.mjs +1 -1
- package/dist/components/label.d.mts +2 -2
- package/dist/components/label.mjs +3 -4
- package/dist/components/menubar.d.mts +22 -16
- package/dist/components/menubar.mjs +54 -47
- package/dist/components/native-select.d.mts +5 -1
- package/dist/components/native-select.mjs +9 -6
- package/dist/components/navigation-menu.d.mts +30 -8
- package/dist/components/navigation-menu.mjs +33 -23
- package/dist/components/pagination.d.mts +6 -0
- package/dist/components/pagination.mjs +26 -11
- package/dist/components/popover.d.mts +40 -7
- package/dist/components/popover.mjs +46 -14
- package/dist/components/progress-circle.d.mts +1 -1
- package/dist/components/progress-circle.mjs +1 -2
- package/dist/components/progress.d.mts +2 -2
- package/dist/components/progress.mjs +5 -6
- package/dist/components/radio-cards.d.mts +3 -3
- package/dist/components/radio-cards.mjs +11 -11
- package/dist/components/radio-group.d.mts +3 -3
- package/dist/components/radio-group.mjs +9 -9
- package/dist/components/radio.mjs +2 -3
- package/dist/components/resizable.mjs +3 -8
- package/dist/components/scroll-area.d.mts +5 -5
- package/dist/components/scroll-area.mjs +13 -10
- package/dist/components/select.d.mts +14 -14
- package/dist/components/select.mjs +47 -47
- package/dist/components/separator.d.mts +2 -2
- package/dist/components/separator.mjs +3 -4
- package/dist/components/sheet.d.mts +13 -14
- package/dist/components/sheet.mjs +41 -39
- package/dist/components/sidebar.d.mts +2 -3
- package/dist/components/sidebar.mjs +46 -46
- package/dist/components/skeleton.mjs +1 -1
- package/dist/components/slider.d.mts +2 -2
- package/dist/components/slider.mjs +9 -11
- package/dist/components/sonner.mjs +11 -3
- package/dist/components/spinner.mjs +6 -7
- package/dist/components/switch.d.mts +5 -2
- package/dist/components/switch.mjs +7 -7
- package/dist/components/table.mjs +10 -10
- package/dist/components/tabs.d.mts +8 -5
- package/dist/components/tabs.mjs +18 -12
- package/dist/components/textarea.mjs +1 -1
- package/dist/components/toggle-group.d.mts +9 -6
- package/dist/components/toggle-group.mjs +19 -20
- package/dist/components/toggle.d.mts +2 -3
- package/dist/components/toggle.mjs +4 -6
- package/dist/components/tooltip.d.mts +7 -6
- package/dist/components/tooltip.mjs +19 -17
- package/dist/hooks/use-animated-value.mjs +0 -1
- package/dist/hooks/use-copy-to-clipboard.mjs +0 -1
- package/dist/hooks/use-is-mobile.mjs +0 -1
- package/dist/hooks/use-media-query.mjs +0 -1
- package/dist/hooks/use-mutation-observer.mjs +0 -1
- package/dist/hooks/use-pagination.mjs +0 -1
- package/dist/index.d.mts +15 -13
- package/dist/index.mjs +18 -16
- package/dist/primitives/checkbox-group.d.mts +9 -10
- package/dist/primitives/checkbox-group.mjs +14 -19
- package/dist/primitives/input-number.d.mts +3 -3
- package/dist/primitives/input-number.mjs +3 -5
- package/dist/primitives/input.d.mts +4 -4
- package/dist/primitives/input.mjs +2 -3
- package/dist/primitives/progress-circle.d.mts +3 -3
- package/dist/primitives/progress-circle.mjs +2 -3
- package/dist/variants/alert.d.mts +1 -1
- package/dist/variants/alert.mjs +3 -13
- package/dist/variants/badge.d.mts +6 -4
- package/dist/variants/badge.mjs +7 -34
- package/dist/variants/button-group.d.mts +2 -2
- package/dist/variants/button-group.mjs +3 -14
- package/dist/variants/button.d.mts +12 -10
- package/dist/variants/button.mjs +15 -57
- package/dist/variants/empty.d.mts +1 -1
- package/dist/variants/empty.mjs +2 -7
- package/dist/variants/field.d.mts +3 -3
- package/dist/variants/field.mjs +4 -22
- package/dist/variants/input-group.d.mts +9 -9
- package/dist/variants/input-group.mjs +11 -70
- package/dist/variants/input-number.d.mts +45 -0
- package/dist/variants/input-number.mjs +40 -0
- package/dist/variants/item.d.mts +5 -4
- package/dist/variants/item.mjs +9 -31
- package/dist/variants/navigation-menu.d.mts +1 -1
- package/dist/variants/navigation-menu.mjs +1 -5
- package/dist/variants/progress-circle.d.mts +1 -1
- package/dist/variants/progress-circle.mjs +1 -5
- package/dist/variants/scroll-area.d.mts +2 -2
- package/dist/variants/scroll-area.mjs +3 -8
- package/dist/variants/separator.mjs +6 -6
- package/dist/variants/sheet.d.mts +4 -4
- package/dist/variants/sheet.mjs +5 -38
- package/dist/variants/sidebar.d.mts +4 -4
- package/dist/variants/sidebar.mjs +6 -23
- package/dist/variants/tabs.d.mts +18 -0
- package/dist/variants/tabs.mjs +15 -0
- package/dist/variants/toggle.d.mts +4 -4
- package/dist/variants/toggle.mjs +9 -27
- package/package.json +27 -44
- package/src/components/accordion.tsx +26 -68
- package/src/components/alert-dialog.tsx +70 -86
- package/src/components/alert.tsx +27 -19
- package/src/components/aspect-ratio.tsx +1 -4
- package/src/components/avatar.tsx +99 -12
- package/src/components/badge.tsx +5 -8
- package/src/components/breadcrumb.tsx +18 -24
- package/src/components/button-group.tsx +10 -20
- package/src/components/button.tsx +8 -19
- package/src/components/calendar.tsx +77 -132
- package/src/components/card.tsx +16 -22
- package/src/components/carousel.tsx +40 -58
- package/src/components/chart.tsx +41 -92
- package/src/components/checkbox-cards.tsx +11 -30
- package/src/components/checkbox-group.tsx +6 -28
- package/src/components/checkbox.tsx +6 -26
- package/src/components/collapsible.tsx +1 -4
- package/src/components/command.tsx +52 -65
- package/src/components/context-menu.tsx +46 -125
- package/src/components/dialog.tsx +49 -101
- package/src/components/direction.tsx +32 -0
- package/src/components/drawer.tsx +17 -79
- package/src/components/dropdown-menu.tsx +39 -118
- package/src/components/empty.tsx +6 -20
- package/src/components/field.tsx +19 -52
- package/src/components/form.tsx +19 -61
- package/src/components/hover-card.tsx +4 -27
- package/src/components/input-group.tsx +13 -52
- package/src/components/input-number.tsx +55 -75
- package/src/components/input-otp.tsx +19 -38
- package/src/components/input-password.tsx +5 -29
- package/src/components/input-search.tsx +6 -23
- package/src/components/input.tsx +1 -17
- package/src/components/item.tsx +17 -31
- package/src/components/kbd.tsx +2 -14
- package/src/components/label.tsx +2 -10
- package/src/components/menubar.tsx +34 -125
- package/src/components/native-select.tsx +21 -30
- package/src/components/navigation-menu.tsx +34 -94
- package/src/components/pagination.tsx +28 -34
- package/src/components/popover.tsx +66 -35
- package/src/components/progress-circle.tsx +7 -25
- package/src/components/progress.tsx +3 -16
- package/src/components/radio-cards.tsx +8 -27
- package/src/components/radio-group.tsx +7 -27
- package/src/components/radio.tsx +3 -24
- package/src/components/resizable.tsx +5 -26
- package/src/components/scroll-area.tsx +12 -32
- package/src/components/select.tsx +37 -60
- package/src/components/separator.tsx +4 -18
- package/src/components/sheet.tsx +37 -74
- package/src/components/sidebar.tsx +47 -177
- package/src/components/skeleton.tsx +1 -3
- package/src/components/slider.tsx +7 -36
- package/src/components/sonner.tsx +16 -6
- package/src/components/spinner.tsx +6 -15
- package/src/components/switch.tsx +8 -30
- package/src/components/table.tsx +18 -35
- package/src/components/tabs.tsx +16 -34
- package/src/components/textarea.tsx +1 -15
- package/src/components/toggle-group.tsx +34 -38
- package/src/components/toggle.tsx +4 -13
- package/src/components/tooltip.tsx +11 -37
- package/src/css/foundation/base.css +74 -0
- package/src/css/foundation/motion.css +69 -0
- package/src/css/foundation/source.css +10 -0
- package/src/css/foundation/tokens.css +107 -0
- package/src/css/foundation/variants.css +121 -0
- package/src/css/preset.css +13 -214
- package/src/css/style.css +9 -1
- package/src/css/{amber.css → themes/amber.css} +29 -0
- package/src/css/{blue.css → themes/blue.css} +29 -0
- package/src/css/{cyan.css → themes/cyan.css} +29 -0
- package/src/css/{emerald.css → themes/emerald.css} +29 -0
- package/src/css/{fuchsia.css → themes/fuchsia.css} +29 -0
- package/src/css/{gray.css → themes/gray.css} +29 -0
- package/src/css/{green.css → themes/green.css} +29 -0
- package/src/css/{indigo.css → themes/indigo.css} +29 -0
- package/src/css/{lime.css → themes/lime.css} +29 -0
- package/src/css/{neutral.css → themes/neutral.css} +29 -0
- package/src/css/{orange.css → themes/orange.css} +29 -0
- package/src/css/{pink.css → themes/pink.css} +29 -0
- package/src/css/{purple.css → themes/purple.css} +29 -0
- package/src/css/{red.css → themes/red.css} +29 -0
- package/src/css/{rose.css → themes/rose.css} +29 -0
- package/src/css/{sky.css → themes/sky.css} +29 -0
- package/src/css/{slate.css → themes/slate.css} +29 -0
- package/src/css/{stone.css → themes/stone.css} +29 -0
- package/src/css/{teal.css → themes/teal.css} +29 -0
- package/src/css/{violet.css → themes/violet.css} +29 -0
- package/src/css/{yellow.css → themes/yellow.css} +29 -0
- package/src/css/{zinc.css → themes/zinc.css} +29 -0
- package/src/hooks/use-animated-value.ts +1 -7
- package/src/hooks/use-copy-to-clipboard.ts +1 -6
- package/src/hooks/use-is-mobile.ts +0 -2
- package/src/hooks/use-media-query.ts +0 -2
- package/src/hooks/use-mutation-observer.ts +0 -3
- package/src/hooks/use-pagination.ts +0 -2
- package/src/index.ts +39 -80
- package/src/primitives/checkbox-group.tsx +25 -39
- package/src/primitives/input-number.tsx +17 -63
- package/src/primitives/input.tsx +8 -24
- package/src/primitives/progress-circle.tsx +13 -43
- package/src/variants/alert.ts +3 -14
- package/src/variants/badge.ts +8 -35
- package/src/variants/button-group.ts +5 -18
- package/src/variants/button.ts +21 -58
- package/src/variants/empty.ts +2 -11
- package/src/variants/field.ts +6 -19
- package/src/variants/input-group.ts +12 -64
- package/src/variants/input-number.ts +65 -0
- package/src/variants/item.ts +10 -32
- package/src/variants/navigation-menu.ts +1 -8
- package/src/variants/progress-circle.ts +1 -2
- package/src/variants/scroll-area.ts +3 -9
- package/src/variants/separator.ts +6 -7
- package/src/variants/sheet.ts +6 -39
- package/src/variants/sidebar.ts +7 -27
- package/src/variants/tabs.ts +34 -0
- package/src/variants/toggle.ts +9 -28
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { RadioGroup as RadioGroupPrimitive } from "radix-ui";
|
|
3
2
|
import type { ComponentProps, JSX } from "react";
|
|
4
3
|
|
|
5
4
|
import { cn } from "#/lib/utils";
|
|
6
|
-
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
|
|
7
5
|
|
|
8
6
|
/* -----------------------------------------------------------------------------
|
|
9
7
|
* Component: RadioGroup
|
|
@@ -18,13 +16,7 @@ type RadioGroupProps = ComponentProps<typeof RadioGroupPrimitive.Root>;
|
|
|
18
16
|
* @since 0.3.16-canary.0
|
|
19
17
|
*/
|
|
20
18
|
function RadioGroup({ className, ...props }: RadioGroupProps): JSX.Element {
|
|
21
|
-
return (
|
|
22
|
-
<RadioGroupPrimitive.Root
|
|
23
|
-
className={cn("grid gap-2", className)}
|
|
24
|
-
data-slot="radio-group"
|
|
25
|
-
{...props}
|
|
26
|
-
/>
|
|
27
|
-
);
|
|
19
|
+
return <RadioGroupPrimitive.Root className={cn("grid w-full gap-3", className)} data-slot="radio-group" {...props} />;
|
|
28
20
|
}
|
|
29
21
|
|
|
30
22
|
/* -----------------------------------------------------------------------------
|
|
@@ -43,30 +35,18 @@ function RadioGroupItem({ className, ...props }: RadioGroupItemProps): JSX.Eleme
|
|
|
43
35
|
return (
|
|
44
36
|
<RadioGroupPrimitive.Item
|
|
45
37
|
className={cn(
|
|
46
|
-
"peer
|
|
47
|
-
"rounded-full border border-input shadow-xs outline-hidden",
|
|
48
|
-
"transition-[border-color,background-color,box-shadow] duration-150 ease-spring",
|
|
49
|
-
"motion-reduce:transition-none motion-reduce:duration-0",
|
|
50
|
-
"hover:not-disabled:not-aria-checked:border-ring/60",
|
|
51
|
-
"focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50",
|
|
52
|
-
"disabled:opacity-50",
|
|
53
|
-
"aria-checked:border-primary aria-checked:bg-primary",
|
|
54
|
-
"focus-visible:aria-checked:ring-primary/20",
|
|
55
|
-
"aria-invalid:border-destructive aria-invalid:ring-destructive/20",
|
|
56
|
-
"hover:not-disabled:not-aria-checked:aria-invalid:border-destructive/60",
|
|
57
|
-
"aria-checked:aria-invalid:bg-destructive",
|
|
58
|
-
"dark:bg-input/30",
|
|
59
|
-
"dark:focus-visible:aria-checked:ring-primary/40",
|
|
60
|
-
"dark:aria-invalid:ring-destructive/40",
|
|
38
|
+
"group/radio-group-item peer relative flex aspect-square size-4 shrink-0 rounded-full border border-input outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary",
|
|
61
39
|
className,
|
|
62
40
|
)}
|
|
63
41
|
data-slot="radio-group-item"
|
|
64
42
|
{...props}
|
|
65
43
|
>
|
|
66
44
|
<RadioGroupPrimitive.Indicator
|
|
67
|
-
className=
|
|
45
|
+
className="flex size-4 items-center justify-center"
|
|
68
46
|
data-slot="radio-group-indicator"
|
|
69
|
-
|
|
47
|
+
>
|
|
48
|
+
<span className="absolute start-1/2 top-1/2 size-2 -translate-x-1/2 -translate-y-1/2 animate-in rounded-full bg-primary-foreground duration-control-indicator ease-spring zoom-in-50 rtl:translate-x-1/2" />
|
|
49
|
+
</RadioGroupPrimitive.Indicator>
|
|
70
50
|
</RadioGroupPrimitive.Item>
|
|
71
51
|
);
|
|
72
52
|
}
|
package/src/components/radio.tsx
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { composeEventHandlers } from "radix-ui/internal";
|
|
3
2
|
import type { ComponentProps, JSX } from "react";
|
|
4
3
|
|
|
5
4
|
import { cn } from "#/lib/utils";
|
|
6
|
-
import { composeEventHandlers } from "@radix-ui/primitive";
|
|
7
5
|
|
|
8
6
|
/* -----------------------------------------------------------------------------
|
|
9
7
|
* Component: Radio
|
|
@@ -23,31 +21,12 @@ function Radio({ className, onChange, onValueChange, ...props }: RadioProps): JS
|
|
|
23
21
|
return (
|
|
24
22
|
<input
|
|
25
23
|
className={cn(
|
|
26
|
-
"peer
|
|
27
|
-
"rounded-full border border-input shadow-xs outline-hidden",
|
|
28
|
-
"appearance-none",
|
|
29
|
-
"after:size-full after:rounded-full after:bg-background after:transition-[width,height] after:duration-200 after:ease-spring",
|
|
30
|
-
"motion-reduce:after:transition-none motion-reduce:after:duration-0",
|
|
31
|
-
"checked:border-primary checked:bg-primary",
|
|
32
|
-
"checked:after:size-1",
|
|
33
|
-
"hover:not-disabled:not-checked:border-ring/60",
|
|
34
|
-
"focus-visible:ring-3 focus-visible:ring-ring/50",
|
|
35
|
-
"focus-visible:not-checked:border-ring",
|
|
36
|
-
"focus-visible:checked:ring-primary/20",
|
|
37
|
-
"disabled:opacity-50",
|
|
38
|
-
"aria-invalid:border-destructive aria-invalid:ring-destructive/20",
|
|
39
|
-
"checked:aria-invalid:bg-destructive",
|
|
40
|
-
"hover:not-disabled:not-checked:aria-invalid:border-destructive/60",
|
|
41
|
-
"dark:not-checked:after:bg-input/30",
|
|
42
|
-
"dark:focus-visible:checked:ring-primary/40",
|
|
43
|
-
"dark:aria-invalid:ring-destructive/40",
|
|
24
|
+
"peer relative flex size-4 shrink-0 appearance-none items-center justify-center rounded-full border border-input bg-background shadow-xs outline-none before:size-2 before:scale-0 before:rounded-full before:bg-primary-foreground before:transition-transform before:duration-control-indicator before:ease-spring after:absolute after:-inset-x-3 after:-inset-y-2 checked:border-primary checked:bg-primary checked:before:scale-100 focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:not-checked:border-ring disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 checked:aria-invalid:bg-destructive dark:not-checked:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40",
|
|
44
25
|
className,
|
|
45
26
|
)}
|
|
46
27
|
data-slot="radio"
|
|
47
28
|
type="radio"
|
|
48
|
-
onChange={composeEventHandlers(onChange, (event) =>
|
|
49
|
-
onValueChange?.(event.currentTarget.value),
|
|
50
|
-
)}
|
|
29
|
+
onChange={composeEventHandlers(onChange, (event) => onValueChange?.(event.currentTarget.value))}
|
|
51
30
|
{...props}
|
|
52
31
|
/>
|
|
53
32
|
);
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
1
|
import type { ComponentProps, JSX } from "react";
|
|
2
|
+
import * as ResizablePrimitive from "react-resizable-panels";
|
|
4
3
|
|
|
5
4
|
import { cn } from "#/lib/utils";
|
|
6
|
-
import { GripVerticalIcon } from "lucide-react";
|
|
7
|
-
import * as ResizablePrimitive from "react-resizable-panels";
|
|
8
5
|
|
|
9
6
|
/* -----------------------------------------------------------------------------
|
|
10
7
|
* Component: ResizableGroup
|
|
@@ -21,7 +18,7 @@ type ResizableGroupProps = ComponentProps<typeof ResizablePrimitive.Group>;
|
|
|
21
18
|
function ResizableGroup({ className, ...props }: ResizableGroupProps): JSX.Element {
|
|
22
19
|
return (
|
|
23
20
|
<ResizablePrimitive.Group
|
|
24
|
-
className={cn("flex
|
|
21
|
+
className={cn("flex h-full w-full aria-[orientation=vertical]:flex-col", className)}
|
|
25
22
|
data-slot="resizable-group"
|
|
26
23
|
{...props}
|
|
27
24
|
/>
|
|
@@ -58,35 +55,17 @@ interface ResizableSeparatorProps extends ComponentProps<typeof ResizablePrimiti
|
|
|
58
55
|
/**
|
|
59
56
|
* @since 0.3.16-canary.0
|
|
60
57
|
*/
|
|
61
|
-
function ResizableSeparator({
|
|
62
|
-
className,
|
|
63
|
-
withHandle,
|
|
64
|
-
...props
|
|
65
|
-
}: ResizableSeparatorProps): JSX.Element {
|
|
58
|
+
function ResizableSeparator({ className, withHandle, ...props }: ResizableSeparatorProps): JSX.Element {
|
|
66
59
|
return (
|
|
67
60
|
<ResizablePrimitive.Separator
|
|
68
61
|
className={cn(
|
|
69
|
-
"flex items-center justify-center",
|
|
70
|
-
"bg-border outline-hidden",
|
|
71
|
-
"focus-visible:bg-ring focus-visible:ring-3 focus-visible:ring-ring/50",
|
|
72
|
-
"aria-[orientation=horizontal]:h-px",
|
|
73
|
-
"aria-[orientation=vertical]:w-px",
|
|
62
|
+
"relative flex w-px items-center justify-center bg-border ring-offset-background after:absolute after:inset-y-0 after:start-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-hidden aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:start-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:translate-x-0 aria-[orientation=horizontal]:after:-translate-y-1/2 rtl:after:translate-x-1/2 rtl:aria-[orientation=horizontal]:after:-translate-x-0 [&[aria-orientation=horizontal]>div]:rotate-90",
|
|
74
63
|
className,
|
|
75
64
|
)}
|
|
76
65
|
data-slot="resizable-separator"
|
|
77
66
|
{...props}
|
|
78
67
|
>
|
|
79
|
-
{withHandle ?
|
|
80
|
-
<div
|
|
81
|
-
className={cn(
|
|
82
|
-
"z-10 flex h-4 w-3 items-center justify-center",
|
|
83
|
-
"rounded-sm border",
|
|
84
|
-
"bg-border",
|
|
85
|
-
)}
|
|
86
|
-
>
|
|
87
|
-
<GripVerticalIcon className="size-2.5" />
|
|
88
|
-
</div>
|
|
89
|
-
) : null}
|
|
68
|
+
{withHandle ? <div className="z-10 flex h-6 w-1 shrink-0 rounded-lg bg-border" /> : null}
|
|
90
69
|
</ResizablePrimitive.Separator>
|
|
91
70
|
);
|
|
92
71
|
}
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import type { ScrollAreaScrollbarVariants } from "#/variants/scroll-area";
|
|
4
|
-
import type { Scope } from "@radix-ui/react-context";
|
|
1
|
+
import { ScrollArea as ScrollAreaPrimitive } from "radix-ui";
|
|
2
|
+
import { Context } from "radix-ui/internal";
|
|
5
3
|
import type { ComponentProps, JSX } from "react";
|
|
6
4
|
|
|
7
5
|
import { cn } from "#/lib/utils";
|
|
8
|
-
|
|
6
|
+
import type { ScrollAreaScrollbarVariants } from "#/variants/scroll-area";
|
|
9
7
|
import { scrollAreaScrollbarVariants } from "#/variants/scroll-area";
|
|
10
|
-
import { createContextScope } from "@radix-ui/react-context";
|
|
11
|
-
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
|
|
12
8
|
|
|
13
9
|
/* -----------------------------------------------------------------------------
|
|
14
10
|
* Context: ScrollArea
|
|
@@ -16,9 +12,9 @@ import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
|
|
|
16
12
|
|
|
17
13
|
const SCROLL_AREA_NAME = "ScrollArea";
|
|
18
14
|
|
|
19
|
-
type ScopedProps<P> = P & { __scopeScrollArea?: Scope };
|
|
15
|
+
type ScopedProps<P> = P & { __scopeScrollArea?: Context.Scope };
|
|
20
16
|
|
|
21
|
-
const [createScrollAreaContext] = createContextScope(SCROLL_AREA_NAME);
|
|
17
|
+
const [createScrollAreaContext] = Context.createContextScope(SCROLL_AREA_NAME);
|
|
22
18
|
|
|
23
19
|
type ScrollAreaContextValue = Pick<ScrollAreaScrollbarVariants, "size">;
|
|
24
20
|
|
|
@@ -32,35 +28,17 @@ const [ScrollAreaContextProvider, useScrollAreaContext] =
|
|
|
32
28
|
/**
|
|
33
29
|
* @since 0.3.16-canary.0
|
|
34
30
|
*/
|
|
35
|
-
type ScrollAreaProps = ScopedProps<
|
|
36
|
-
ComponentProps<typeof ScrollAreaPrimitive.Root> & ScrollAreaContextValue
|
|
37
|
-
>;
|
|
31
|
+
type ScrollAreaProps = ScopedProps<ComponentProps<typeof ScrollAreaPrimitive.Root> & ScrollAreaContextValue>;
|
|
38
32
|
|
|
39
33
|
/**
|
|
40
34
|
* @since 0.3.16-canary.0
|
|
41
35
|
*/
|
|
42
|
-
function ScrollArea({
|
|
43
|
-
__scopeScrollArea,
|
|
44
|
-
children,
|
|
45
|
-
className,
|
|
46
|
-
size,
|
|
47
|
-
...props
|
|
48
|
-
}: ScrollAreaProps): JSX.Element {
|
|
36
|
+
function ScrollArea({ __scopeScrollArea, children, className, size, ...props }: ScrollAreaProps): JSX.Element {
|
|
49
37
|
return (
|
|
50
38
|
<ScrollAreaContextProvider scope={__scopeScrollArea} size={size}>
|
|
51
|
-
<ScrollAreaPrimitive.Root
|
|
52
|
-
className={cn("relative", className)}
|
|
53
|
-
data-slot="scroll-area"
|
|
54
|
-
{...props}
|
|
55
|
-
>
|
|
39
|
+
<ScrollAreaPrimitive.Root className={cn("relative", className)} data-slot="scroll-area" {...props}>
|
|
56
40
|
<ScrollAreaPrimitive.Viewport
|
|
57
|
-
className=
|
|
58
|
-
"size-full",
|
|
59
|
-
"rounded-[inherit] ring-ring/50 outline-ring",
|
|
60
|
-
"transition-[box-shadow] duration-150 ease-snappy",
|
|
61
|
-
"motion-reduce:transition-none motion-reduce:duration-0",
|
|
62
|
-
"focus-visible:ring-4 focus-visible:outline-1",
|
|
63
|
-
)}
|
|
41
|
+
className="size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-1"
|
|
64
42
|
data-slot="scroll-area-viewport"
|
|
65
43
|
>
|
|
66
44
|
{children}
|
|
@@ -96,12 +74,14 @@ function ScrollAreaScrollbar({
|
|
|
96
74
|
return (
|
|
97
75
|
<ScrollAreaPrimitive.Scrollbar
|
|
98
76
|
className={scrollAreaScrollbarVariants({ className, orientation, size })}
|
|
77
|
+
data-orientation={orientation}
|
|
99
78
|
data-slot="scroll-area-scrollbar"
|
|
100
79
|
orientation={orientation}
|
|
101
80
|
{...props}
|
|
102
81
|
>
|
|
103
82
|
<ScrollAreaPrimitive.ScrollAreaThumb
|
|
104
|
-
className=
|
|
83
|
+
className="relative flex-1 rounded-full bg-border"
|
|
84
|
+
data-slot="scroll-area-thumb"
|
|
105
85
|
/>
|
|
106
86
|
</ScrollAreaPrimitive.Scrollbar>
|
|
107
87
|
);
|
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
import type { VariantProps } from "#/lib/utils";
|
|
4
|
-
import { cn } from "#/lib/utils";
|
|
5
|
-
import type { ComponentProps, JSX } from "react";
|
|
6
|
-
import * as SelectPrimitive from "@radix-ui/react-select";
|
|
7
1
|
import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react";
|
|
2
|
+
import { Select as SelectPrimitive } from "radix-ui";
|
|
3
|
+
import type { ComponentProps, JSX } from "react";
|
|
8
4
|
|
|
9
|
-
import {
|
|
5
|
+
import { cn } from "#/lib/utils";
|
|
10
6
|
|
|
11
7
|
/* -----------------------------------------------------------------------------
|
|
12
8
|
* Component: Select
|
|
@@ -36,8 +32,8 @@ type SelectGroupProps = ComponentProps<typeof SelectPrimitive.Group>;
|
|
|
36
32
|
/**
|
|
37
33
|
* @since 0.3.16-canary.0
|
|
38
34
|
*/
|
|
39
|
-
function SelectGroup({ ...props }: SelectGroupProps): JSX.Element {
|
|
40
|
-
return <SelectPrimitive.Group data-slot="select-group" {...props} />;
|
|
35
|
+
function SelectGroup({ className, ...props }: SelectGroupProps): JSX.Element {
|
|
36
|
+
return <SelectPrimitive.Group className={cn("scroll-my-1 p-1", className)} data-slot="select-group" {...props} />;
|
|
41
37
|
}
|
|
42
38
|
|
|
43
39
|
/* -----------------------------------------------------------------------------
|
|
@@ -64,30 +60,26 @@ function SelectValue({ ...props }: SelectValueProps): JSX.Element {
|
|
|
64
60
|
* @since 0.3.16-canary.0
|
|
65
61
|
*/
|
|
66
62
|
interface SelectTriggerProps extends ComponentProps<typeof SelectPrimitive.Trigger> {
|
|
67
|
-
size?:
|
|
63
|
+
size?: "default" | "sm";
|
|
68
64
|
}
|
|
69
65
|
|
|
70
66
|
/**
|
|
71
67
|
* @since 0.3.16-canary.0
|
|
72
68
|
*/
|
|
73
|
-
function SelectTrigger({ children, className, size, ...props }: SelectTriggerProps): JSX.Element {
|
|
69
|
+
function SelectTrigger({ children, className, size = "default", ...props }: SelectTriggerProps): JSX.Element {
|
|
74
70
|
return (
|
|
75
71
|
<SelectPrimitive.Trigger
|
|
76
|
-
className={
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
],
|
|
81
|
-
size,
|
|
82
|
-
variant: "outline",
|
|
83
|
-
})}
|
|
72
|
+
className={cn(
|
|
73
|
+
"flex w-fit items-center justify-between gap-1.5 rounded-md border border-input bg-transparent py-2 ps-2.5 pe-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
74
|
+
className,
|
|
75
|
+
)}
|
|
84
76
|
data-size={size}
|
|
85
77
|
data-slot="select-trigger"
|
|
86
78
|
{...props}
|
|
87
79
|
>
|
|
88
80
|
{children}
|
|
89
|
-
<SelectPrimitive.Icon asChild
|
|
90
|
-
<ChevronDownIcon />
|
|
81
|
+
<SelectPrimitive.Icon asChild>
|
|
82
|
+
<ChevronDownIcon className="pointer-events-none size-4 text-muted-foreground" />
|
|
91
83
|
</SelectPrimitive.Icon>
|
|
92
84
|
</SelectPrimitive.Trigger>
|
|
93
85
|
);
|
|
@@ -108,11 +100,14 @@ type SelectScrollUpButtonProps = ComponentProps<typeof SelectPrimitive.ScrollUpB
|
|
|
108
100
|
function SelectScrollUpButton({ className, ...props }: SelectScrollUpButtonProps): JSX.Element {
|
|
109
101
|
return (
|
|
110
102
|
<SelectPrimitive.ScrollUpButton
|
|
111
|
-
className={cn(
|
|
103
|
+
className={cn(
|
|
104
|
+
"z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4",
|
|
105
|
+
className,
|
|
106
|
+
)}
|
|
112
107
|
data-slot="select-scroll-up-button"
|
|
113
108
|
{...props}
|
|
114
109
|
>
|
|
115
|
-
<ChevronUpIcon
|
|
110
|
+
<ChevronUpIcon />
|
|
116
111
|
</SelectPrimitive.ScrollUpButton>
|
|
117
112
|
);
|
|
118
113
|
}
|
|
@@ -132,11 +127,14 @@ type SelectScrollDownButtonProps = ComponentProps<typeof SelectPrimitive.ScrollD
|
|
|
132
127
|
function SelectScrollDownButton({ className, ...props }: SelectScrollDownButtonProps): JSX.Element {
|
|
133
128
|
return (
|
|
134
129
|
<SelectPrimitive.ScrollDownButton
|
|
135
|
-
className={cn(
|
|
130
|
+
className={cn(
|
|
131
|
+
"z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4",
|
|
132
|
+
className,
|
|
133
|
+
)}
|
|
136
134
|
data-slot="select-scroll-down-button"
|
|
137
135
|
{...props}
|
|
138
136
|
>
|
|
139
|
-
<ChevronDownIcon
|
|
137
|
+
<ChevronDownIcon />
|
|
140
138
|
</SelectPrimitive.ScrollDownButton>
|
|
141
139
|
);
|
|
142
140
|
}
|
|
@@ -154,35 +152,23 @@ type SelectContentProps = ComponentProps<typeof SelectPrimitive.Content>;
|
|
|
154
152
|
* @since 0.3.16-canary.0
|
|
155
153
|
*/
|
|
156
154
|
function SelectContent({
|
|
155
|
+
align = "center",
|
|
157
156
|
children,
|
|
158
157
|
className,
|
|
159
158
|
position = "item-aligned",
|
|
160
159
|
...props
|
|
161
160
|
}: SelectContentProps): JSX.Element {
|
|
162
161
|
return (
|
|
163
|
-
<SelectPrimitive.Portal>
|
|
162
|
+
<SelectPrimitive.Portal data-slot="select-portal">
|
|
164
163
|
<SelectPrimitive.Content
|
|
164
|
+
align={align}
|
|
165
165
|
className={cn(
|
|
166
|
-
"relative z-50",
|
|
167
|
-
"max-h-(--radix-select-content-available-height) min-w-32 overflow-hidden",
|
|
168
|
-
"rounded-lg border",
|
|
169
|
-
"bg-popover text-popover-foreground shadow-lg",
|
|
170
|
-
"ease-ui data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95",
|
|
171
|
-
"data-open:data-side-top:slide-in-from-bottom-2",
|
|
172
|
-
"data-open:data-side-right:slide-in-from-left-2",
|
|
173
|
-
"data-open:data-side-bottom:slide-in-from-top-2",
|
|
174
|
-
"data-open:data-side-left:slide-in-from-right-2",
|
|
175
|
-
"data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
|
|
176
|
-
"data-closed:data-side-top:slide-out-to-bottom-2",
|
|
177
|
-
"data-closed:data-side-right:slide-out-to-left-2",
|
|
178
|
-
"data-closed:data-side-bottom:slide-out-to-top-2",
|
|
179
|
-
"data-closed:data-side-left:slide-out-to-right-2",
|
|
180
|
-
"motion-reduce:animate-none motion-reduce:transition-none motion-reduce:duration-0",
|
|
181
|
-
"origin-(--radix-select-content-transform-origin)",
|
|
166
|
+
"relative z-50 max-h-(--radix-select-content-available-height) min-w-36 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 ease-snappy data-[align-trigger=true]:animate-none data-open:animate-in data-open:animation-duration-menu-in data-open:fade-in-0 data-open:zoom-in-95 data-open:data-side-top:slide-in-from-bottom-2 data-open:data-side-right:slide-in-from-left-2 data-open:data-side-bottom:slide-in-from-top-2 data-open:data-side-left:slide-in-from-right-2 data-closed:animate-out data-closed:ease-exit data-closed:animation-duration-menu-out data-closed:fade-out-0 data-closed:zoom-out-95 data-closed:data-side-top:slide-out-to-bottom-2 data-closed:data-side-right:slide-out-to-left-2 data-closed:data-side-bottom:slide-out-to-top-2 data-closed:data-side-left:slide-out-to-right-2",
|
|
182
167
|
position === "popper" &&
|
|
183
|
-
"data-side-top:-translate-y-1 data-side-right:translate-x-1 data-side-bottom:translate-y-1 data-side-left:-translate-x-1",
|
|
168
|
+
"data-side-top:-translate-y-1 data-side-right:translate-x-1 rtl:data-side-right:-translate-x-1 data-side-bottom:translate-y-1 data-side-left:-translate-x-1 rtl:data-side-left:translate-x-1",
|
|
184
169
|
className,
|
|
185
170
|
)}
|
|
171
|
+
data-align-trigger={position === "item-aligned"}
|
|
186
172
|
data-slot="select-content"
|
|
187
173
|
position={position}
|
|
188
174
|
{...props}
|
|
@@ -190,10 +176,10 @@ function SelectContent({
|
|
|
190
176
|
<SelectScrollUpButton />
|
|
191
177
|
<SelectPrimitive.Viewport
|
|
192
178
|
className={cn(
|
|
193
|
-
"
|
|
194
|
-
position === "popper" &&
|
|
195
|
-
"h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width) scroll-my-1",
|
|
179
|
+
"data-[position=popper]:h-(--radix-select-trigger-height) data-[position=popper]:w-full data-[position=popper]:min-w-(--radix-select-trigger-width)",
|
|
180
|
+
position === "popper" && "",
|
|
196
181
|
)}
|
|
182
|
+
data-position={position}
|
|
197
183
|
>
|
|
198
184
|
{children}
|
|
199
185
|
</SelectPrimitive.Viewport>
|
|
@@ -218,7 +204,7 @@ type SelectLabelProps = ComponentProps<typeof SelectPrimitive.Label>;
|
|
|
218
204
|
function SelectLabel({ className, ...props }: SelectLabelProps): JSX.Element {
|
|
219
205
|
return (
|
|
220
206
|
<SelectPrimitive.Label
|
|
221
|
-
className={cn("
|
|
207
|
+
className={cn("px-2 py-1.5 text-xs text-muted-foreground", className)}
|
|
222
208
|
data-slot="select-label"
|
|
223
209
|
{...props}
|
|
224
210
|
/>
|
|
@@ -241,24 +227,15 @@ function SelectItem({ children, className, ...props }: SelectItemProps): JSX.Ele
|
|
|
241
227
|
return (
|
|
242
228
|
<SelectPrimitive.Item
|
|
243
229
|
className={cn(
|
|
244
|
-
"relative flex w-full items-center py-1.5
|
|
245
|
-
"rounded-sm outline-hidden",
|
|
246
|
-
"text-sm",
|
|
247
|
-
"cursor-default select-none",
|
|
248
|
-
"focus:bg-accent focus:text-accent-foreground",
|
|
249
|
-
"aria-disabled:opacity-50",
|
|
250
|
-
"data-[variant=destructive]:[&_svg:not([class*='text-'])]:text-destructive/80",
|
|
251
|
-
"*:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
|
|
252
|
-
"[&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
253
|
-
"[&_svg:not([class*='text-'])]:text-muted-foreground",
|
|
230
|
+
"relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 ps-2 pe-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
|
|
254
231
|
className,
|
|
255
232
|
)}
|
|
256
233
|
data-slot="select-item"
|
|
257
234
|
{...props}
|
|
258
235
|
>
|
|
259
|
-
<span className=
|
|
236
|
+
<span className="pointer-events-none absolute end-2 flex size-4 items-center justify-center">
|
|
260
237
|
<SelectPrimitive.ItemIndicator>
|
|
261
|
-
<CheckIcon className="
|
|
238
|
+
<CheckIcon className="pointer-events-none" />
|
|
262
239
|
</SelectPrimitive.ItemIndicator>
|
|
263
240
|
</span>
|
|
264
241
|
<SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>
|
|
@@ -281,7 +258,7 @@ type SelectSeparatorProps = ComponentProps<typeof SelectPrimitive.Separator>;
|
|
|
281
258
|
function SelectSeparator({ className, ...props }: SelectSeparatorProps): JSX.Element {
|
|
282
259
|
return (
|
|
283
260
|
<SelectPrimitive.Separator
|
|
284
|
-
className={cn("mx-
|
|
261
|
+
className={cn("pointer-events-none -mx-1 my-1 h-px bg-border", className)}
|
|
285
262
|
data-slot="select-separator"
|
|
286
263
|
{...props}
|
|
287
264
|
/>
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import type { SeparatorVariants } from "#/variants/separator";
|
|
1
|
+
import { Separator as SeparatorPrimitive } from "radix-ui";
|
|
4
2
|
import type { ComponentProps, JSX } from "react";
|
|
5
3
|
|
|
6
4
|
import { cn } from "#/lib/utils";
|
|
7
|
-
|
|
5
|
+
import type { SeparatorVariants } from "#/variants/separator";
|
|
8
6
|
import { separatorVariants } from "#/variants/separator";
|
|
9
|
-
import * as SeparatorPrimitive from "@radix-ui/react-separator";
|
|
10
7
|
|
|
11
8
|
/* -----------------------------------------------------------------------------
|
|
12
9
|
* Component: Separator
|
|
@@ -21,13 +18,7 @@ interface SeparatorProps
|
|
|
21
18
|
/**
|
|
22
19
|
* @since 0.3.16-canary.0
|
|
23
20
|
*/
|
|
24
|
-
function Separator({
|
|
25
|
-
align,
|
|
26
|
-
className,
|
|
27
|
-
decorative = true,
|
|
28
|
-
orientation,
|
|
29
|
-
...props
|
|
30
|
-
}: SeparatorProps): JSX.Element {
|
|
21
|
+
function Separator({ align, className, decorative = true, orientation, ...props }: SeparatorProps): JSX.Element {
|
|
31
22
|
return (
|
|
32
23
|
<SeparatorPrimitive.Root
|
|
33
24
|
className={separatorVariants({ align, className, orientation })}
|
|
@@ -54,12 +45,7 @@ type SeparatorItemProps = ComponentProps<"div">;
|
|
|
54
45
|
function SeparatorItem({ className, ...props }: SeparatorItemProps): JSX.Element {
|
|
55
46
|
return (
|
|
56
47
|
<div
|
|
57
|
-
className={cn(
|
|
58
|
-
"absolute",
|
|
59
|
-
"mx-2 px-2",
|
|
60
|
-
"bg-background text-sm text-muted-foreground",
|
|
61
|
-
className,
|
|
62
|
-
)}
|
|
48
|
+
className={cn("absolute mx-2 bg-background px-2 text-sm text-muted-foreground", className)}
|
|
63
49
|
data-slot="separator-item"
|
|
64
50
|
{...props}
|
|
65
51
|
/>
|