@websolutespa/ask-ui 1.0.3 → 1.0.4
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/components/accordion.d.mts +25 -0
- package/dist/components/accordion.mjs +55 -0
- package/dist/components/ai-elements/attachments.d.mts +94 -0
- package/dist/components/ai-elements/attachments.mjs +174 -0
- package/dist/components/ai-elements/conversation.d.mts +51 -0
- package/dist/components/ai-elements/conversation.mjs +85 -0
- package/dist/components/ai-elements/message.d.mts +89 -0
- package/dist/components/ai-elements/message.mjs +175 -0
- package/dist/components/ai-elements/prompt-input.d.mts +277 -0
- package/dist/components/ai-elements/prompt-input.mjs +703 -0
- package/dist/components/ai-elements/speech-input.d.mts +64 -0
- package/dist/components/ai-elements/speech-input.mjs +153 -0
- package/dist/components/alert-dialog.d.mts +60 -0
- package/dist/components/alert-dialog.mjs +101 -0
- package/dist/components/alert.d.mts +28 -0
- package/dist/components/alert.mjs +43 -0
- package/dist/components/aspect-ratio.d.mts +9 -0
- package/dist/components/aspect-ratio.mjs +12 -0
- package/dist/components/avatar.d.mts +34 -0
- package/dist/components/avatar.mjs +51 -0
- package/dist/components/badge.d.mts +19 -0
- package/dist/components/badge.mjs +27 -0
- package/dist/components/breadcrumb.d.mts +38 -0
- package/dist/components/breadcrumb.mjs +70 -0
- package/dist/components/button-group.d.mts +28 -0
- package/dist/components/button-group.mjs +38 -0
- package/dist/components/button.d.mts +21 -0
- package/dist/components/button.mjs +47 -0
- package/dist/components/calendar.d.mts +30 -0
- package/dist/components/calendar.mjs +109 -0
- package/dist/components/card.d.mts +37 -0
- package/dist/components/card.mjs +56 -0
- package/dist/components/carousel.d.mts +56 -0
- package/dist/components/carousel.mjs +132 -0
- package/dist/components/chart.d.mts +78 -0
- package/dist/components/chart.mjs +146 -0
- package/dist/components/checkbox.d.mts +11 -0
- package/dist/components/checkbox.mjs +21 -0
- package/dist/components/collapsible.d.mts +15 -0
- package/dist/components/collapsible.mjs +24 -0
- package/dist/components/combobox.d.mts +81 -0
- package/dist/components/combobox.mjs +163 -0
- package/dist/components/command.d.mts +54 -0
- package/dist/components/command.mjs +88 -0
- package/dist/components/context-menu.d.mts +85 -0
- package/dist/components/context-menu.mjs +125 -0
- package/dist/components/dialog.d.mts +51 -0
- package/dist/components/dialog.mjs +96 -0
- package/dist/components/direction.d.mts +15 -0
- package/dist/components/direction.mjs +14 -0
- package/dist/components/drawer.d.mts +47 -0
- package/dist/components/drawer.mjs +79 -0
- package/dist/components/dropdown-menu.d.mts +87 -0
- package/dist/components/dropdown-menu.mjs +131 -0
- package/dist/components/empty.d.mts +35 -0
- package/dist/components/empty.mjs +59 -0
- package/dist/components/field.d.mts +64 -0
- package/dist/components/field.mjs +110 -0
- package/dist/components/hover-card.d.mts +22 -0
- package/dist/components/hover-card.mjs +33 -0
- package/dist/components/input-group.d.mts +43 -0
- package/dist/components/input-group.mjs +79 -0
- package/dist/components/input-otp.d.mts +28 -0
- package/dist/components/input-otp.mjs +47 -0
- package/dist/components/input.d.mts +11 -0
- package/dist/components/input.mjs +14 -0
- package/dist/components/item.d.mts +62 -0
- package/dist/components/item.mjs +117 -0
- package/dist/components/kbd.d.mts +13 -0
- package/dist/components/kbd.mjs +19 -0
- package/dist/components/label.d.mts +11 -0
- package/dist/components/label.mjs +15 -0
- package/dist/components/menubar.d.mts +90 -0
- package/dist/components/menubar.mjs +135 -0
- package/dist/components/native-select.d.mts +21 -0
- package/dist/components/native-select.mjs +37 -0
- package/dist/components/navigation-menu.d.mts +46 -0
- package/dist/components/navigation-menu.mjs +80 -0
- package/dist/components/pagination.d.mts +45 -0
- package/dist/components/pagination.mjs +80 -0
- package/dist/components/popover.d.mts +34 -0
- package/dist/components/popover.mjs +56 -0
- package/dist/components/progress.d.mts +12 -0
- package/dist/components/progress.mjs +20 -0
- package/dist/components/radio-group.d.mts +15 -0
- package/dist/components/radio-group.mjs +27 -0
- package/dist/components/resizable.d.mts +20 -0
- package/dist/components/resizable.mjs +28 -0
- package/dist/components/scroll-area.d.mts +17 -0
- package/dist/components/scroll-area.mjs +37 -0
- package/dist/components/select.d.mts +53 -0
- package/dist/components/select.mjs +100 -0
- package/dist/components/separator.d.mts +13 -0
- package/dist/components/separator.mjs +17 -0
- package/dist/components/sheet.d.mts +42 -0
- package/dist/components/sheet.mjs +90 -0
- package/dist/components/sidebar.d.mts +167 -0
- package/dist/components/sidebar.mjs +374 -0
- package/dist/components/skeleton.d.mts +9 -0
- package/dist/components/skeleton.mjs +12 -0
- package/dist/components/slider.d.mts +15 -0
- package/dist/components/slider.mjs +36 -0
- package/dist/components/sonner.d.mts +9 -0
- package/dist/components/sonner.mjs +30 -0
- package/dist/components/spinner.d.mts +9 -0
- package/dist/components/spinner.mjs +14 -0
- package/dist/components/switch.d.mts +14 -0
- package/dist/components/switch.mjs +20 -0
- package/dist/components/table.d.mts +38 -0
- package/dist/components/table.mjs +67 -0
- package/dist/components/tabs.d.mts +30 -0
- package/dist/components/tabs.mjs +46 -0
- package/dist/components/textarea.d.mts +10 -0
- package/dist/components/textarea.mjs +13 -0
- package/dist/components/toggle-group.d.mts +28 -0
- package/dist/components/toggle-group.mjs +51 -0
- package/dist/components/toggle.d.mts +19 -0
- package/dist/components/toggle.mjs +37 -0
- package/dist/components/tooltip.d.mts +23 -0
- package/dist/components/tooltip.mjs +36 -0
- package/dist/exports/components.d.mts +61 -0
- package/dist/exports/components.mjs +61 -0
- package/dist/exports/hooks.d.mts +2 -0
- package/dist/exports/hooks.mjs +2 -0
- package/dist/exports/lib.d.mts +2 -0
- package/dist/exports/lib.mjs +2 -0
- package/dist/hooks/use-mobile.d.mts +4 -0
- package/dist/hooks/use-mobile.mjs +18 -0
- package/package.json +1 -1
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
|
+
import { OTPInput } from "input-otp";
|
|
4
|
+
|
|
5
|
+
//#region src/components/input-otp.d.ts
|
|
6
|
+
declare function InputOTP({
|
|
7
|
+
className,
|
|
8
|
+
containerClassName,
|
|
9
|
+
...props
|
|
10
|
+
}: React.ComponentProps<typeof OTPInput> & {
|
|
11
|
+
containerClassName?: string;
|
|
12
|
+
}): _$react_jsx_runtime0.JSX.Element;
|
|
13
|
+
declare function InputOTPGroup({
|
|
14
|
+
className,
|
|
15
|
+
...props
|
|
16
|
+
}: React.ComponentProps<'div'>): _$react_jsx_runtime0.JSX.Element;
|
|
17
|
+
declare function InputOTPSlot({
|
|
18
|
+
index,
|
|
19
|
+
className,
|
|
20
|
+
...props
|
|
21
|
+
}: React.ComponentProps<'div'> & {
|
|
22
|
+
index: number;
|
|
23
|
+
}): _$react_jsx_runtime0.JSX.Element;
|
|
24
|
+
declare function InputOTPSeparator({
|
|
25
|
+
...props
|
|
26
|
+
}: React.ComponentProps<'div'>): _$react_jsx_runtime0.JSX.Element;
|
|
27
|
+
//#endregion
|
|
28
|
+
export { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../lib/utils.mjs";
|
|
3
|
+
import { MinusIcon } from "lucide-react";
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
import { OTPInput, OTPInputContext } from "input-otp";
|
|
7
|
+
//#region src/components/input-otp.tsx
|
|
8
|
+
function InputOTP({ className, containerClassName, ...props }) {
|
|
9
|
+
return /* @__PURE__ */ jsx(OTPInput, {
|
|
10
|
+
"data-slot": "input-otp",
|
|
11
|
+
containerClassName: cn("cn-input-otp flex items-center has-disabled:opacity-50", containerClassName),
|
|
12
|
+
spellCheck: false,
|
|
13
|
+
className: cn("disabled:cursor-not-allowed", className),
|
|
14
|
+
...props
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
function InputOTPGroup({ className, ...props }) {
|
|
18
|
+
return /* @__PURE__ */ jsx("div", {
|
|
19
|
+
"data-slot": "input-otp-group",
|
|
20
|
+
className: cn("flex items-center rounded-md has-aria-invalid:border-destructive has-aria-invalid:ring-3 has-aria-invalid:ring-destructive/20 dark:has-aria-invalid:ring-destructive/40", className),
|
|
21
|
+
...props
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
function InputOTPSlot({ index, className, ...props }) {
|
|
25
|
+
const { char, hasFakeCaret, isActive } = React.useContext(OTPInputContext)?.slots[index] ?? {};
|
|
26
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
27
|
+
"data-slot": "input-otp-slot",
|
|
28
|
+
"data-active": isActive,
|
|
29
|
+
className: cn("relative flex size-9 items-center justify-center border-y border-r border-input text-sm shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md aria-invalid:border-destructive data-[active=true]:z-10 data-[active=true]:border-ring data-[active=true]:ring-3 data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:border-destructive data-[active=true]:aria-invalid:ring-destructive/20 dark:bg-input/30 dark:data-[active=true]:aria-invalid:ring-destructive/40", className),
|
|
30
|
+
...props,
|
|
31
|
+
children: [char, hasFakeCaret && /* @__PURE__ */ jsx("div", {
|
|
32
|
+
className: "pointer-events-none absolute inset-0 flex items-center justify-center",
|
|
33
|
+
children: /* @__PURE__ */ jsx("div", { className: "h-4 w-px animate-caret-blink bg-foreground duration-1000" })
|
|
34
|
+
})]
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
function InputOTPSeparator({ ...props }) {
|
|
38
|
+
return /* @__PURE__ */ jsx("div", {
|
|
39
|
+
"data-slot": "input-otp-separator",
|
|
40
|
+
className: "flex items-center [&_svg:not([class*='size-'])]:size-4",
|
|
41
|
+
role: "separator",
|
|
42
|
+
...props,
|
|
43
|
+
children: /* @__PURE__ */ jsx(MinusIcon, {})
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
//#endregion
|
|
47
|
+
export { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
|
+
|
|
4
|
+
//#region src/components/input.d.ts
|
|
5
|
+
declare function Input({
|
|
6
|
+
className,
|
|
7
|
+
type,
|
|
8
|
+
...props
|
|
9
|
+
}: React.ComponentProps<'input'>): _$react_jsx_runtime0.JSX.Element;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { Input };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { cn } from "../lib/utils.mjs";
|
|
2
|
+
import "react";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
//#region src/components/input.tsx
|
|
5
|
+
function Input({ className, type, ...props }) {
|
|
6
|
+
return /* @__PURE__ */ jsx("input", {
|
|
7
|
+
type,
|
|
8
|
+
"data-slot": "input",
|
|
9
|
+
className: cn("h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-2.5 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40", className),
|
|
10
|
+
...props
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
//#endregion
|
|
14
|
+
export { Input };
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Separator } from "./separator.mjs";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
4
|
+
import { VariantProps } from "class-variance-authority";
|
|
5
|
+
import * as _$class_variance_authority_types0 from "class-variance-authority/types";
|
|
6
|
+
|
|
7
|
+
//#region src/components/item.d.ts
|
|
8
|
+
declare function ItemGroup({
|
|
9
|
+
className,
|
|
10
|
+
...props
|
|
11
|
+
}: React.ComponentProps<'div'>): _$react_jsx_runtime0.JSX.Element;
|
|
12
|
+
declare function ItemSeparator({
|
|
13
|
+
className,
|
|
14
|
+
...props
|
|
15
|
+
}: React.ComponentProps<typeof Separator>): _$react_jsx_runtime0.JSX.Element;
|
|
16
|
+
declare const itemVariants: (props?: ({
|
|
17
|
+
variant?: "default" | "outline" | "muted" | null | undefined;
|
|
18
|
+
size?: "default" | "xs" | "sm" | null | undefined;
|
|
19
|
+
} & _$class_variance_authority_types0.ClassProp) | undefined) => string;
|
|
20
|
+
declare function Item({
|
|
21
|
+
className,
|
|
22
|
+
variant,
|
|
23
|
+
size,
|
|
24
|
+
asChild,
|
|
25
|
+
...props
|
|
26
|
+
}: React.ComponentProps<'div'> & VariantProps<typeof itemVariants> & {
|
|
27
|
+
asChild?: boolean;
|
|
28
|
+
}): _$react_jsx_runtime0.JSX.Element;
|
|
29
|
+
declare const itemMediaVariants: (props?: ({
|
|
30
|
+
variant?: "image" | "default" | "icon" | null | undefined;
|
|
31
|
+
} & _$class_variance_authority_types0.ClassProp) | undefined) => string;
|
|
32
|
+
declare function ItemMedia({
|
|
33
|
+
className,
|
|
34
|
+
variant,
|
|
35
|
+
...props
|
|
36
|
+
}: React.ComponentProps<'div'> & VariantProps<typeof itemMediaVariants>): _$react_jsx_runtime0.JSX.Element;
|
|
37
|
+
declare function ItemContent({
|
|
38
|
+
className,
|
|
39
|
+
...props
|
|
40
|
+
}: React.ComponentProps<'div'>): _$react_jsx_runtime0.JSX.Element;
|
|
41
|
+
declare function ItemTitle({
|
|
42
|
+
className,
|
|
43
|
+
...props
|
|
44
|
+
}: React.ComponentProps<'div'>): _$react_jsx_runtime0.JSX.Element;
|
|
45
|
+
declare function ItemDescription({
|
|
46
|
+
className,
|
|
47
|
+
...props
|
|
48
|
+
}: React.ComponentProps<'p'>): _$react_jsx_runtime0.JSX.Element;
|
|
49
|
+
declare function ItemActions({
|
|
50
|
+
className,
|
|
51
|
+
...props
|
|
52
|
+
}: React.ComponentProps<'div'>): _$react_jsx_runtime0.JSX.Element;
|
|
53
|
+
declare function ItemHeader({
|
|
54
|
+
className,
|
|
55
|
+
...props
|
|
56
|
+
}: React.ComponentProps<'div'>): _$react_jsx_runtime0.JSX.Element;
|
|
57
|
+
declare function ItemFooter({
|
|
58
|
+
className,
|
|
59
|
+
...props
|
|
60
|
+
}: React.ComponentProps<'div'>): _$react_jsx_runtime0.JSX.Element;
|
|
61
|
+
//#endregion
|
|
62
|
+
export { Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle };
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { cn } from "../lib/utils.mjs";
|
|
2
|
+
import { Separator as Separator$1 } from "./separator.mjs";
|
|
3
|
+
import { Slot } from "radix-ui";
|
|
4
|
+
import "react";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
import { cva } from "class-variance-authority";
|
|
7
|
+
//#region src/components/item.tsx
|
|
8
|
+
function ItemGroup({ className, ...props }) {
|
|
9
|
+
return /* @__PURE__ */ jsx("div", {
|
|
10
|
+
role: "list",
|
|
11
|
+
"data-slot": "item-group",
|
|
12
|
+
className: cn("group/item-group flex w-full flex-col gap-4 has-data-[size=sm]:gap-2.5 has-data-[size=xs]:gap-2", className),
|
|
13
|
+
...props
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
function ItemSeparator({ className, ...props }) {
|
|
17
|
+
return /* @__PURE__ */ jsx(Separator$1, {
|
|
18
|
+
"data-slot": "item-separator",
|
|
19
|
+
orientation: "horizontal",
|
|
20
|
+
className: cn("my-2", className),
|
|
21
|
+
...props
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
const itemVariants = cva("group/item flex w-full flex-wrap items-center rounded-md border text-sm transition-colors duration-100 outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 [a]:transition-colors [a]:hover:bg-muted", {
|
|
25
|
+
variants: {
|
|
26
|
+
variant: {
|
|
27
|
+
default: "border-transparent",
|
|
28
|
+
outline: "border-border",
|
|
29
|
+
muted: "border-transparent bg-muted/50"
|
|
30
|
+
},
|
|
31
|
+
size: {
|
|
32
|
+
default: "gap-3.5 px-4 py-3.5",
|
|
33
|
+
sm: "gap-2.5 px-3 py-2.5",
|
|
34
|
+
xs: "gap-2 px-2.5 py-2 in-data-[slot=dropdown-menu-content]:p-0"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
defaultVariants: {
|
|
38
|
+
variant: "default",
|
|
39
|
+
size: "default"
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
function Item({ className, variant = "default", size = "default", asChild = false, ...props }) {
|
|
43
|
+
return /* @__PURE__ */ jsx(asChild ? Slot.Root : "div", {
|
|
44
|
+
"data-slot": "item",
|
|
45
|
+
"data-variant": variant,
|
|
46
|
+
"data-size": size,
|
|
47
|
+
className: cn(itemVariants({
|
|
48
|
+
variant,
|
|
49
|
+
size,
|
|
50
|
+
className
|
|
51
|
+
})),
|
|
52
|
+
...props
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
const itemMediaVariants = cva("flex shrink-0 items-center justify-center gap-2 group-has-data-[slot=item-description]/item:translate-y-0.5 group-has-data-[slot=item-description]/item:self-start [&_svg]:pointer-events-none", {
|
|
56
|
+
variants: { variant: {
|
|
57
|
+
default: "bg-transparent",
|
|
58
|
+
icon: "[&_svg:not([class*='size-'])]:size-4",
|
|
59
|
+
image: "size-10 overflow-hidden rounded-sm group-data-[size=sm]/item:size-8 group-data-[size=xs]/item:size-6 [&_img]:size-full [&_img]:object-cover"
|
|
60
|
+
} },
|
|
61
|
+
defaultVariants: { variant: "default" }
|
|
62
|
+
});
|
|
63
|
+
function ItemMedia({ className, variant = "default", ...props }) {
|
|
64
|
+
return /* @__PURE__ */ jsx("div", {
|
|
65
|
+
"data-slot": "item-media",
|
|
66
|
+
"data-variant": variant,
|
|
67
|
+
className: cn(itemMediaVariants({
|
|
68
|
+
variant,
|
|
69
|
+
className
|
|
70
|
+
})),
|
|
71
|
+
...props
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
function ItemContent({ className, ...props }) {
|
|
75
|
+
return /* @__PURE__ */ jsx("div", {
|
|
76
|
+
"data-slot": "item-content",
|
|
77
|
+
className: cn("flex flex-1 flex-col gap-1 group-data-[size=xs]/item:gap-0 [&+[data-slot=item-content]]:flex-none", className),
|
|
78
|
+
...props
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
function ItemTitle({ className, ...props }) {
|
|
82
|
+
return /* @__PURE__ */ jsx("div", {
|
|
83
|
+
"data-slot": "item-title",
|
|
84
|
+
className: cn("line-clamp-1 flex w-fit items-center gap-2 text-sm leading-snug font-medium underline-offset-4", className),
|
|
85
|
+
...props
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
function ItemDescription({ className, ...props }) {
|
|
89
|
+
return /* @__PURE__ */ jsx("p", {
|
|
90
|
+
"data-slot": "item-description",
|
|
91
|
+
className: cn("line-clamp-2 text-left text-sm leading-normal font-normal text-muted-foreground group-data-[size=xs]/item:text-xs [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary", className),
|
|
92
|
+
...props
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
function ItemActions({ className, ...props }) {
|
|
96
|
+
return /* @__PURE__ */ jsx("div", {
|
|
97
|
+
"data-slot": "item-actions",
|
|
98
|
+
className: cn("flex items-center gap-2", className),
|
|
99
|
+
...props
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
function ItemHeader({ className, ...props }) {
|
|
103
|
+
return /* @__PURE__ */ jsx("div", {
|
|
104
|
+
"data-slot": "item-header",
|
|
105
|
+
className: cn("flex basis-full items-center justify-between gap-2", className),
|
|
106
|
+
...props
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
function ItemFooter({ className, ...props }) {
|
|
110
|
+
return /* @__PURE__ */ jsx("div", {
|
|
111
|
+
"data-slot": "item-footer",
|
|
112
|
+
className: cn("flex basis-full items-center justify-between gap-2", className),
|
|
113
|
+
...props
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
//#endregion
|
|
117
|
+
export { Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
2
|
+
|
|
3
|
+
//#region src/components/kbd.d.ts
|
|
4
|
+
declare function Kbd({
|
|
5
|
+
className,
|
|
6
|
+
...props
|
|
7
|
+
}: React.ComponentProps<'kbd'>): _$react_jsx_runtime0.JSX.Element;
|
|
8
|
+
declare function KbdGroup({
|
|
9
|
+
className,
|
|
10
|
+
...props
|
|
11
|
+
}: React.ComponentProps<'div'>): _$react_jsx_runtime0.JSX.Element;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { Kbd, KbdGroup };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { cn } from "../lib/utils.mjs";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
//#region src/components/kbd.tsx
|
|
4
|
+
function Kbd({ className, ...props }) {
|
|
5
|
+
return /* @__PURE__ */ jsx("kbd", {
|
|
6
|
+
"data-slot": "kbd",
|
|
7
|
+
className: cn("pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-sm bg-muted px-1 font-sans text-xs font-medium text-muted-foreground select-none in-data-[slot=tooltip-content]:bg-background/20 in-data-[slot=tooltip-content]:text-background dark:in-data-[slot=tooltip-content]:bg-background/10 [&_svg:not([class*='size-'])]:size-3", className),
|
|
8
|
+
...props
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
function KbdGroup({ className, ...props }) {
|
|
12
|
+
return /* @__PURE__ */ jsx("kbd", {
|
|
13
|
+
"data-slot": "kbd-group",
|
|
14
|
+
className: cn("inline-flex items-center gap-1", className),
|
|
15
|
+
...props
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
//#endregion
|
|
19
|
+
export { Kbd, KbdGroup };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Label } from "radix-ui";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
4
|
+
|
|
5
|
+
//#region src/components/label.d.ts
|
|
6
|
+
declare function Label$1({
|
|
7
|
+
className,
|
|
8
|
+
...props
|
|
9
|
+
}: React.ComponentProps<typeof Label.Root>): _$react_jsx_runtime0.JSX.Element;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { Label$1 as Label };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../lib/utils.mjs";
|
|
3
|
+
import { Label } from "radix-ui";
|
|
4
|
+
import "react";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
//#region src/components/label.tsx
|
|
7
|
+
function Label$1({ className, ...props }) {
|
|
8
|
+
return /* @__PURE__ */ jsx(Label.Root, {
|
|
9
|
+
"data-slot": "label",
|
|
10
|
+
className: cn("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50", className),
|
|
11
|
+
...props
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
//#endregion
|
|
15
|
+
export { Label$1 as Label };
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { Menubar } from "radix-ui";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
4
|
+
|
|
5
|
+
//#region src/components/menubar.d.ts
|
|
6
|
+
declare function Menubar$1({
|
|
7
|
+
className,
|
|
8
|
+
...props
|
|
9
|
+
}: React.ComponentProps<typeof Menubar.Root>): _$react_jsx_runtime0.JSX.Element;
|
|
10
|
+
declare function MenubarMenu({
|
|
11
|
+
...props
|
|
12
|
+
}: React.ComponentProps<typeof Menubar.Menu>): _$react_jsx_runtime0.JSX.Element;
|
|
13
|
+
declare function MenubarGroup({
|
|
14
|
+
...props
|
|
15
|
+
}: React.ComponentProps<typeof Menubar.Group>): _$react_jsx_runtime0.JSX.Element;
|
|
16
|
+
declare function MenubarPortal({
|
|
17
|
+
...props
|
|
18
|
+
}: React.ComponentProps<typeof Menubar.Portal>): _$react_jsx_runtime0.JSX.Element;
|
|
19
|
+
declare function MenubarRadioGroup({
|
|
20
|
+
...props
|
|
21
|
+
}: React.ComponentProps<typeof Menubar.RadioGroup>): _$react_jsx_runtime0.JSX.Element;
|
|
22
|
+
declare function MenubarTrigger({
|
|
23
|
+
className,
|
|
24
|
+
...props
|
|
25
|
+
}: React.ComponentProps<typeof Menubar.Trigger>): _$react_jsx_runtime0.JSX.Element;
|
|
26
|
+
declare function MenubarContent({
|
|
27
|
+
className,
|
|
28
|
+
align,
|
|
29
|
+
alignOffset,
|
|
30
|
+
sideOffset,
|
|
31
|
+
...props
|
|
32
|
+
}: React.ComponentProps<typeof Menubar.Content>): _$react_jsx_runtime0.JSX.Element;
|
|
33
|
+
declare function MenubarItem({
|
|
34
|
+
className,
|
|
35
|
+
inset,
|
|
36
|
+
variant,
|
|
37
|
+
...props
|
|
38
|
+
}: React.ComponentProps<typeof Menubar.Item> & {
|
|
39
|
+
inset?: boolean;
|
|
40
|
+
variant?: 'default' | 'destructive';
|
|
41
|
+
}): _$react_jsx_runtime0.JSX.Element;
|
|
42
|
+
declare function MenubarCheckboxItem({
|
|
43
|
+
className,
|
|
44
|
+
children,
|
|
45
|
+
checked,
|
|
46
|
+
inset,
|
|
47
|
+
...props
|
|
48
|
+
}: React.ComponentProps<typeof Menubar.CheckboxItem> & {
|
|
49
|
+
inset?: boolean;
|
|
50
|
+
}): _$react_jsx_runtime0.JSX.Element;
|
|
51
|
+
declare function MenubarRadioItem({
|
|
52
|
+
className,
|
|
53
|
+
children,
|
|
54
|
+
inset,
|
|
55
|
+
...props
|
|
56
|
+
}: React.ComponentProps<typeof Menubar.RadioItem> & {
|
|
57
|
+
inset?: boolean;
|
|
58
|
+
}): _$react_jsx_runtime0.JSX.Element;
|
|
59
|
+
declare function MenubarLabel({
|
|
60
|
+
className,
|
|
61
|
+
inset,
|
|
62
|
+
...props
|
|
63
|
+
}: React.ComponentProps<typeof Menubar.Label> & {
|
|
64
|
+
inset?: boolean;
|
|
65
|
+
}): _$react_jsx_runtime0.JSX.Element;
|
|
66
|
+
declare function MenubarSeparator({
|
|
67
|
+
className,
|
|
68
|
+
...props
|
|
69
|
+
}: React.ComponentProps<typeof Menubar.Separator>): _$react_jsx_runtime0.JSX.Element;
|
|
70
|
+
declare function MenubarShortcut({
|
|
71
|
+
className,
|
|
72
|
+
...props
|
|
73
|
+
}: React.ComponentProps<'span'>): _$react_jsx_runtime0.JSX.Element;
|
|
74
|
+
declare function MenubarSub({
|
|
75
|
+
...props
|
|
76
|
+
}: React.ComponentProps<typeof Menubar.Sub>): _$react_jsx_runtime0.JSX.Element;
|
|
77
|
+
declare function MenubarSubTrigger({
|
|
78
|
+
className,
|
|
79
|
+
inset,
|
|
80
|
+
children,
|
|
81
|
+
...props
|
|
82
|
+
}: React.ComponentProps<typeof Menubar.SubTrigger> & {
|
|
83
|
+
inset?: boolean;
|
|
84
|
+
}): _$react_jsx_runtime0.JSX.Element;
|
|
85
|
+
declare function MenubarSubContent({
|
|
86
|
+
className,
|
|
87
|
+
...props
|
|
88
|
+
}: React.ComponentProps<typeof Menubar.SubContent>): _$react_jsx_runtime0.JSX.Element;
|
|
89
|
+
//#endregion
|
|
90
|
+
export { Menubar$1 as Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger };
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../lib/utils.mjs";
|
|
3
|
+
import { CheckIcon, ChevronRightIcon } from "lucide-react";
|
|
4
|
+
import { Menubar } from "radix-ui";
|
|
5
|
+
import "react";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
//#region src/components/menubar.tsx
|
|
8
|
+
function Menubar$1({ className, ...props }) {
|
|
9
|
+
return /* @__PURE__ */ jsx(Menubar.Root, {
|
|
10
|
+
"data-slot": "menubar",
|
|
11
|
+
className: cn("flex h-9 items-center gap-1 rounded-md border p-1 shadow-xs", className),
|
|
12
|
+
...props
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
function MenubarMenu({ ...props }) {
|
|
16
|
+
return /* @__PURE__ */ jsx(Menubar.Menu, {
|
|
17
|
+
"data-slot": "menubar-menu",
|
|
18
|
+
...props
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
function MenubarGroup({ ...props }) {
|
|
22
|
+
return /* @__PURE__ */ jsx(Menubar.Group, {
|
|
23
|
+
"data-slot": "menubar-group",
|
|
24
|
+
...props
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
function MenubarPortal({ ...props }) {
|
|
28
|
+
return /* @__PURE__ */ jsx(Menubar.Portal, {
|
|
29
|
+
"data-slot": "menubar-portal",
|
|
30
|
+
...props
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
function MenubarRadioGroup({ ...props }) {
|
|
34
|
+
return /* @__PURE__ */ jsx(Menubar.RadioGroup, {
|
|
35
|
+
"data-slot": "menubar-radio-group",
|
|
36
|
+
...props
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
function MenubarTrigger({ className, ...props }) {
|
|
40
|
+
return /* @__PURE__ */ jsx(Menubar.Trigger, {
|
|
41
|
+
"data-slot": "menubar-trigger",
|
|
42
|
+
className: cn("flex items-center rounded-sm px-2 py-1 text-sm font-medium outline-hidden select-none hover:bg-muted aria-expanded:bg-muted", className),
|
|
43
|
+
...props
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
function MenubarContent({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }) {
|
|
47
|
+
return /* @__PURE__ */ jsx(MenubarPortal, { children: /* @__PURE__ */ jsx(Menubar.Content, {
|
|
48
|
+
"data-slot": "menubar-content",
|
|
49
|
+
align,
|
|
50
|
+
alignOffset,
|
|
51
|
+
sideOffset,
|
|
52
|
+
className: cn("z-50 min-w-36 origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95", className),
|
|
53
|
+
...props
|
|
54
|
+
}) });
|
|
55
|
+
}
|
|
56
|
+
function MenubarItem({ className, inset, variant = "default", ...props }) {
|
|
57
|
+
return /* @__PURE__ */ jsx(Menubar.Item, {
|
|
58
|
+
"data-slot": "menubar-item",
|
|
59
|
+
"data-inset": inset,
|
|
60
|
+
"data-variant": variant,
|
|
61
|
+
className: cn("group/menubar-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive!", className),
|
|
62
|
+
...props
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
function MenubarCheckboxItem({ className, children, checked, inset, ...props }) {
|
|
66
|
+
return /* @__PURE__ */ jsxs(Menubar.CheckboxItem, {
|
|
67
|
+
"data-slot": "menubar-checkbox-item",
|
|
68
|
+
"data-inset": inset,
|
|
69
|
+
className: cn("relative flex cursor-default items-center gap-2 rounded-md py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-8 data-disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0", className),
|
|
70
|
+
checked,
|
|
71
|
+
...props,
|
|
72
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
73
|
+
className: "pointer-events-none absolute left-2 flex size-4 items-center justify-center [&_svg:not([class*='size-'])]:size-4",
|
|
74
|
+
children: /* @__PURE__ */ jsx(Menubar.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, {}) })
|
|
75
|
+
}), children]
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
function MenubarRadioItem({ className, children, inset, ...props }) {
|
|
79
|
+
return /* @__PURE__ */ jsxs(Menubar.RadioItem, {
|
|
80
|
+
"data-slot": "menubar-radio-item",
|
|
81
|
+
"data-inset": inset,
|
|
82
|
+
className: cn("relative flex cursor-default items-center gap-2 rounded-md py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-8 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
|
|
83
|
+
...props,
|
|
84
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
85
|
+
className: "pointer-events-none absolute left-2 flex size-4 items-center justify-center [&_svg:not([class*='size-'])]:size-4",
|
|
86
|
+
children: /* @__PURE__ */ jsx(Menubar.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, {}) })
|
|
87
|
+
}), children]
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
function MenubarLabel({ className, inset, ...props }) {
|
|
91
|
+
return /* @__PURE__ */ jsx(Menubar.Label, {
|
|
92
|
+
"data-slot": "menubar-label",
|
|
93
|
+
"data-inset": inset,
|
|
94
|
+
className: cn("px-2 py-1.5 text-sm font-medium data-inset:pl-8", className),
|
|
95
|
+
...props
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
function MenubarSeparator({ className, ...props }) {
|
|
99
|
+
return /* @__PURE__ */ jsx(Menubar.Separator, {
|
|
100
|
+
"data-slot": "menubar-separator",
|
|
101
|
+
className: cn("-mx-1 my-1 h-px bg-border", className),
|
|
102
|
+
...props
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
function MenubarShortcut({ className, ...props }) {
|
|
106
|
+
return /* @__PURE__ */ jsx("span", {
|
|
107
|
+
"data-slot": "menubar-shortcut",
|
|
108
|
+
className: cn("ml-auto text-xs tracking-widest text-muted-foreground group-focus/menubar-item:text-accent-foreground", className),
|
|
109
|
+
...props
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
function MenubarSub({ ...props }) {
|
|
113
|
+
return /* @__PURE__ */ jsx(Menubar.Sub, {
|
|
114
|
+
"data-slot": "menubar-sub",
|
|
115
|
+
...props
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
function MenubarSubTrigger({ className, inset, children, ...props }) {
|
|
119
|
+
return /* @__PURE__ */ jsxs(Menubar.SubTrigger, {
|
|
120
|
+
"data-slot": "menubar-sub-trigger",
|
|
121
|
+
"data-inset": inset,
|
|
122
|
+
className: cn("flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-8 data-open:bg-accent data-open:text-accent-foreground [&_svg:not([class*='size-'])]:size-4", className),
|
|
123
|
+
...props,
|
|
124
|
+
children: [children, /* @__PURE__ */ jsx(ChevronRightIcon, { className: "ml-auto size-4" })]
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
function MenubarSubContent({ className, ...props }) {
|
|
128
|
+
return /* @__PURE__ */ jsx(Menubar.SubContent, {
|
|
129
|
+
"data-slot": "menubar-sub-content",
|
|
130
|
+
className: cn("z-50 min-w-32 origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md bg-popover p-1 text-popover-foreground shadow-lg ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className),
|
|
131
|
+
...props
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
//#endregion
|
|
135
|
+
export { Menubar$1 as Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
|
+
|
|
4
|
+
//#region src/components/native-select.d.ts
|
|
5
|
+
type NativeSelectProps = Omit<React.ComponentProps<'select'>, 'size'> & {
|
|
6
|
+
size?: 'sm' | 'default';
|
|
7
|
+
};
|
|
8
|
+
declare function NativeSelect({
|
|
9
|
+
className,
|
|
10
|
+
size,
|
|
11
|
+
...props
|
|
12
|
+
}: NativeSelectProps): _$react_jsx_runtime0.JSX.Element;
|
|
13
|
+
declare function NativeSelectOption({
|
|
14
|
+
...props
|
|
15
|
+
}: React.ComponentProps<'option'>): _$react_jsx_runtime0.JSX.Element;
|
|
16
|
+
declare function NativeSelectOptGroup({
|
|
17
|
+
className,
|
|
18
|
+
...props
|
|
19
|
+
}: React.ComponentProps<'optgroup'>): _$react_jsx_runtime0.JSX.Element;
|
|
20
|
+
//#endregion
|
|
21
|
+
export { NativeSelect, NativeSelectOptGroup, NativeSelectOption };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { cn } from "../lib/utils.mjs";
|
|
2
|
+
import { ChevronDownIcon } from "lucide-react";
|
|
3
|
+
import "react";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
//#region src/components/native-select.tsx
|
|
6
|
+
function NativeSelect({ className, size = "default", ...props }) {
|
|
7
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
8
|
+
className: cn("group/native-select relative w-fit has-[select:disabled]:opacity-50", className),
|
|
9
|
+
"data-slot": "native-select-wrapper",
|
|
10
|
+
"data-size": size,
|
|
11
|
+
children: [/* @__PURE__ */ jsx("select", {
|
|
12
|
+
"data-slot": "native-select",
|
|
13
|
+
"data-size": size,
|
|
14
|
+
className: "h-9 w-full min-w-0 appearance-none rounded-md border border-input bg-transparent py-1 pr-8 pl-2.5 text-sm shadow-xs transition-[color,box-shadow] outline-none select-none selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[size=sm]:h-8 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40",
|
|
15
|
+
...props
|
|
16
|
+
}), /* @__PURE__ */ jsx(ChevronDownIcon, {
|
|
17
|
+
className: "pointer-events-none absolute top-1/2 right-2.5 size-4 -translate-y-1/2 text-muted-foreground select-none",
|
|
18
|
+
"aria-hidden": "true",
|
|
19
|
+
"data-slot": "native-select-icon"
|
|
20
|
+
})]
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
function NativeSelectOption({ ...props }) {
|
|
24
|
+
return /* @__PURE__ */ jsx("option", {
|
|
25
|
+
"data-slot": "native-select-option",
|
|
26
|
+
...props
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
function NativeSelectOptGroup({ className, ...props }) {
|
|
30
|
+
return /* @__PURE__ */ jsx("optgroup", {
|
|
31
|
+
"data-slot": "native-select-optgroup",
|
|
32
|
+
className: cn(className),
|
|
33
|
+
...props
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
//#endregion
|
|
37
|
+
export { NativeSelect, NativeSelectOptGroup, NativeSelectOption };
|