@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.
Files changed (129) hide show
  1. package/dist/components/accordion.d.mts +25 -0
  2. package/dist/components/accordion.mjs +55 -0
  3. package/dist/components/ai-elements/attachments.d.mts +94 -0
  4. package/dist/components/ai-elements/attachments.mjs +174 -0
  5. package/dist/components/ai-elements/conversation.d.mts +51 -0
  6. package/dist/components/ai-elements/conversation.mjs +85 -0
  7. package/dist/components/ai-elements/message.d.mts +89 -0
  8. package/dist/components/ai-elements/message.mjs +175 -0
  9. package/dist/components/ai-elements/prompt-input.d.mts +277 -0
  10. package/dist/components/ai-elements/prompt-input.mjs +703 -0
  11. package/dist/components/ai-elements/speech-input.d.mts +64 -0
  12. package/dist/components/ai-elements/speech-input.mjs +153 -0
  13. package/dist/components/alert-dialog.d.mts +60 -0
  14. package/dist/components/alert-dialog.mjs +101 -0
  15. package/dist/components/alert.d.mts +28 -0
  16. package/dist/components/alert.mjs +43 -0
  17. package/dist/components/aspect-ratio.d.mts +9 -0
  18. package/dist/components/aspect-ratio.mjs +12 -0
  19. package/dist/components/avatar.d.mts +34 -0
  20. package/dist/components/avatar.mjs +51 -0
  21. package/dist/components/badge.d.mts +19 -0
  22. package/dist/components/badge.mjs +27 -0
  23. package/dist/components/breadcrumb.d.mts +38 -0
  24. package/dist/components/breadcrumb.mjs +70 -0
  25. package/dist/components/button-group.d.mts +28 -0
  26. package/dist/components/button-group.mjs +38 -0
  27. package/dist/components/button.d.mts +21 -0
  28. package/dist/components/button.mjs +47 -0
  29. package/dist/components/calendar.d.mts +30 -0
  30. package/dist/components/calendar.mjs +109 -0
  31. package/dist/components/card.d.mts +37 -0
  32. package/dist/components/card.mjs +56 -0
  33. package/dist/components/carousel.d.mts +56 -0
  34. package/dist/components/carousel.mjs +132 -0
  35. package/dist/components/chart.d.mts +78 -0
  36. package/dist/components/chart.mjs +146 -0
  37. package/dist/components/checkbox.d.mts +11 -0
  38. package/dist/components/checkbox.mjs +21 -0
  39. package/dist/components/collapsible.d.mts +15 -0
  40. package/dist/components/collapsible.mjs +24 -0
  41. package/dist/components/combobox.d.mts +81 -0
  42. package/dist/components/combobox.mjs +163 -0
  43. package/dist/components/command.d.mts +54 -0
  44. package/dist/components/command.mjs +88 -0
  45. package/dist/components/context-menu.d.mts +85 -0
  46. package/dist/components/context-menu.mjs +125 -0
  47. package/dist/components/dialog.d.mts +51 -0
  48. package/dist/components/dialog.mjs +96 -0
  49. package/dist/components/direction.d.mts +15 -0
  50. package/dist/components/direction.mjs +14 -0
  51. package/dist/components/drawer.d.mts +47 -0
  52. package/dist/components/drawer.mjs +79 -0
  53. package/dist/components/dropdown-menu.d.mts +87 -0
  54. package/dist/components/dropdown-menu.mjs +131 -0
  55. package/dist/components/empty.d.mts +35 -0
  56. package/dist/components/empty.mjs +59 -0
  57. package/dist/components/field.d.mts +64 -0
  58. package/dist/components/field.mjs +110 -0
  59. package/dist/components/hover-card.d.mts +22 -0
  60. package/dist/components/hover-card.mjs +33 -0
  61. package/dist/components/input-group.d.mts +43 -0
  62. package/dist/components/input-group.mjs +79 -0
  63. package/dist/components/input-otp.d.mts +28 -0
  64. package/dist/components/input-otp.mjs +47 -0
  65. package/dist/components/input.d.mts +11 -0
  66. package/dist/components/input.mjs +14 -0
  67. package/dist/components/item.d.mts +62 -0
  68. package/dist/components/item.mjs +117 -0
  69. package/dist/components/kbd.d.mts +13 -0
  70. package/dist/components/kbd.mjs +19 -0
  71. package/dist/components/label.d.mts +11 -0
  72. package/dist/components/label.mjs +15 -0
  73. package/dist/components/menubar.d.mts +90 -0
  74. package/dist/components/menubar.mjs +135 -0
  75. package/dist/components/native-select.d.mts +21 -0
  76. package/dist/components/native-select.mjs +37 -0
  77. package/dist/components/navigation-menu.d.mts +46 -0
  78. package/dist/components/navigation-menu.mjs +80 -0
  79. package/dist/components/pagination.d.mts +45 -0
  80. package/dist/components/pagination.mjs +80 -0
  81. package/dist/components/popover.d.mts +34 -0
  82. package/dist/components/popover.mjs +56 -0
  83. package/dist/components/progress.d.mts +12 -0
  84. package/dist/components/progress.mjs +20 -0
  85. package/dist/components/radio-group.d.mts +15 -0
  86. package/dist/components/radio-group.mjs +27 -0
  87. package/dist/components/resizable.d.mts +20 -0
  88. package/dist/components/resizable.mjs +28 -0
  89. package/dist/components/scroll-area.d.mts +17 -0
  90. package/dist/components/scroll-area.mjs +37 -0
  91. package/dist/components/select.d.mts +53 -0
  92. package/dist/components/select.mjs +100 -0
  93. package/dist/components/separator.d.mts +13 -0
  94. package/dist/components/separator.mjs +17 -0
  95. package/dist/components/sheet.d.mts +42 -0
  96. package/dist/components/sheet.mjs +90 -0
  97. package/dist/components/sidebar.d.mts +167 -0
  98. package/dist/components/sidebar.mjs +374 -0
  99. package/dist/components/skeleton.d.mts +9 -0
  100. package/dist/components/skeleton.mjs +12 -0
  101. package/dist/components/slider.d.mts +15 -0
  102. package/dist/components/slider.mjs +36 -0
  103. package/dist/components/sonner.d.mts +9 -0
  104. package/dist/components/sonner.mjs +30 -0
  105. package/dist/components/spinner.d.mts +9 -0
  106. package/dist/components/spinner.mjs +14 -0
  107. package/dist/components/switch.d.mts +14 -0
  108. package/dist/components/switch.mjs +20 -0
  109. package/dist/components/table.d.mts +38 -0
  110. package/dist/components/table.mjs +67 -0
  111. package/dist/components/tabs.d.mts +30 -0
  112. package/dist/components/tabs.mjs +46 -0
  113. package/dist/components/textarea.d.mts +10 -0
  114. package/dist/components/textarea.mjs +13 -0
  115. package/dist/components/toggle-group.d.mts +28 -0
  116. package/dist/components/toggle-group.mjs +51 -0
  117. package/dist/components/toggle.d.mts +19 -0
  118. package/dist/components/toggle.mjs +37 -0
  119. package/dist/components/tooltip.d.mts +23 -0
  120. package/dist/components/tooltip.mjs +36 -0
  121. package/dist/exports/components.d.mts +61 -0
  122. package/dist/exports/components.mjs +61 -0
  123. package/dist/exports/hooks.d.mts +2 -0
  124. package/dist/exports/hooks.mjs +2 -0
  125. package/dist/exports/lib.d.mts +2 -0
  126. package/dist/exports/lib.mjs +2 -0
  127. package/dist/hooks/use-mobile.d.mts +4 -0
  128. package/dist/hooks/use-mobile.mjs +18 -0
  129. 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 };