@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,14 +1,13 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import { cn } from "../lib/utils.mjs";
|
|
3
|
-
import { CheckIcon, ChevronRightIcon
|
|
2
|
+
import { CheckIcon, ChevronRightIcon } from "lucide-react";
|
|
3
|
+
import { DropdownMenu as DropdownMenu$1 } from "radix-ui";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
-
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
6
5
|
//#region src/components/dropdown-menu.tsx
|
|
7
6
|
/**
|
|
8
7
|
* @since 0.3.16-canary.0
|
|
9
8
|
*/
|
|
10
9
|
function DropdownMenu({ ...props }) {
|
|
11
|
-
return /* @__PURE__ */ jsx(
|
|
10
|
+
return /* @__PURE__ */ jsx(DropdownMenu$1.Root, {
|
|
12
11
|
"data-slot": "dropdown-menu",
|
|
13
12
|
...props
|
|
14
13
|
});
|
|
@@ -17,7 +16,7 @@ function DropdownMenu({ ...props }) {
|
|
|
17
16
|
* @since 0.3.16-canary.0
|
|
18
17
|
*/
|
|
19
18
|
function DropdownMenuTrigger({ ...props }) {
|
|
20
|
-
return /* @__PURE__ */ jsx(
|
|
19
|
+
return /* @__PURE__ */ jsx(DropdownMenu$1.Trigger, {
|
|
21
20
|
"data-slot": "dropdown-menu-trigger",
|
|
22
21
|
...props
|
|
23
22
|
});
|
|
@@ -26,7 +25,7 @@ function DropdownMenuTrigger({ ...props }) {
|
|
|
26
25
|
* @since 0.3.16-canary.0
|
|
27
26
|
*/
|
|
28
27
|
function DropdownMenuGroup({ ...props }) {
|
|
29
|
-
return /* @__PURE__ */ jsx(
|
|
28
|
+
return /* @__PURE__ */ jsx(DropdownMenu$1.Group, {
|
|
30
29
|
"data-slot": "dropdown-menu-group",
|
|
31
30
|
...props
|
|
32
31
|
});
|
|
@@ -35,7 +34,7 @@ function DropdownMenuGroup({ ...props }) {
|
|
|
35
34
|
* @since 0.3.16-canary.0
|
|
36
35
|
*/
|
|
37
36
|
function DropdownMenuSub({ ...props }) {
|
|
38
|
-
return /* @__PURE__ */ jsx(
|
|
37
|
+
return /* @__PURE__ */ jsx(DropdownMenu$1.Sub, {
|
|
39
38
|
"data-slot": "dropdown-menu-sub",
|
|
40
39
|
...props
|
|
41
40
|
});
|
|
@@ -44,7 +43,7 @@ function DropdownMenuSub({ ...props }) {
|
|
|
44
43
|
* @since 0.3.16-canary.0
|
|
45
44
|
*/
|
|
46
45
|
function DropdownMenuRadioGroup({ ...props }) {
|
|
47
|
-
return /* @__PURE__ */ jsx(
|
|
46
|
+
return /* @__PURE__ */ jsx(DropdownMenu$1.RadioGroup, {
|
|
48
47
|
"data-slot": "dropdown-menu-radio-group",
|
|
49
48
|
...props
|
|
50
49
|
});
|
|
@@ -53,22 +52,22 @@ function DropdownMenuRadioGroup({ ...props }) {
|
|
|
53
52
|
* @since 0.3.16-canary.0
|
|
54
53
|
*/
|
|
55
54
|
function DropdownMenuSubTrigger({ children, className, inset, ...props }) {
|
|
56
|
-
return /* @__PURE__ */ jsxs(
|
|
57
|
-
className: cn("flex items-center gap-
|
|
55
|
+
return /* @__PURE__ */ jsxs(DropdownMenu$1.SubTrigger, {
|
|
56
|
+
className: cn("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:ps-8 data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
|
|
58
57
|
"data-inset": inset,
|
|
59
58
|
"data-slot": "dropdown-menu-sub-trigger",
|
|
60
59
|
...props,
|
|
61
|
-
children: [children, /* @__PURE__ */ jsx(ChevronRightIcon, { className:
|
|
60
|
+
children: [children, /* @__PURE__ */ jsx(ChevronRightIcon, { className: "ms-auto rtl:rotate-180" })]
|
|
62
61
|
});
|
|
63
62
|
}
|
|
64
63
|
/**
|
|
65
64
|
* @since 0.3.16-canary.0
|
|
66
65
|
*/
|
|
67
66
|
function DropdownMenuSubContent({ className, ...props }) {
|
|
68
|
-
return /* @__PURE__ */ jsx(
|
|
67
|
+
return /* @__PURE__ */ jsx(DropdownMenu$1.Portal, {
|
|
69
68
|
"data-slot": "dropdown-menu-portal",
|
|
70
|
-
children: /* @__PURE__ */ jsx(
|
|
71
|
-
className: cn("z-50
|
|
69
|
+
children: /* @__PURE__ */ jsx(DropdownMenu$1.SubContent, {
|
|
70
|
+
className: cn("z-50 min-w-24 origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md bg-popover p-1 text-popover-foreground shadow-lg ring-1 ring-foreground/10 ease-snappy 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", className),
|
|
72
71
|
"data-slot": "dropdown-menu-sub-content",
|
|
73
72
|
...props
|
|
74
73
|
})
|
|
@@ -77,11 +76,12 @@ function DropdownMenuSubContent({ className, ...props }) {
|
|
|
77
76
|
/**
|
|
78
77
|
* @since 0.3.16-canary.0
|
|
79
78
|
*/
|
|
80
|
-
function DropdownMenuContent({ className, sideOffset = 4, ...props }) {
|
|
81
|
-
return /* @__PURE__ */ jsx(
|
|
79
|
+
function DropdownMenuContent({ align = "start", className, sideOffset = 4, ...props }) {
|
|
80
|
+
return /* @__PURE__ */ jsx(DropdownMenu$1.Portal, {
|
|
82
81
|
"data-slot": "dropdown-menu-portal",
|
|
83
|
-
children: /* @__PURE__ */ jsx(
|
|
84
|
-
|
|
82
|
+
children: /* @__PURE__ */ jsx(DropdownMenu$1.Content, {
|
|
83
|
+
align,
|
|
84
|
+
className: cn("z-50 max-h-(--radix-dropdown-menu-content-available-height) w-(--radix-dropdown-menu-trigger-width) min-w-32 origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 ease-snappy 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", className),
|
|
85
85
|
"data-slot": "dropdown-menu-content",
|
|
86
86
|
sideOffset,
|
|
87
87
|
...props
|
|
@@ -91,9 +91,9 @@ function DropdownMenuContent({ className, sideOffset = 4, ...props }) {
|
|
|
91
91
|
/**
|
|
92
92
|
* @since 0.3.16-canary.0
|
|
93
93
|
*/
|
|
94
|
-
function DropdownMenuItem({ className, inset, variant, ...props }) {
|
|
95
|
-
return /* @__PURE__ */ jsx(
|
|
96
|
-
className: cn("group/dropdown-menu-item relative flex items-center gap-
|
|
94
|
+
function DropdownMenuItem({ className, inset, variant = "default", ...props }) {
|
|
95
|
+
return /* @__PURE__ */ jsx(DropdownMenu$1.Item, {
|
|
96
|
+
className: cn("group/dropdown-menu-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:ps-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),
|
|
97
97
|
"data-inset": inset,
|
|
98
98
|
"data-slot": "dropdown-menu-item",
|
|
99
99
|
"data-variant": variant,
|
|
@@ -103,29 +103,33 @@ function DropdownMenuItem({ className, inset, variant, ...props }) {
|
|
|
103
103
|
/**
|
|
104
104
|
* @since 0.3.16-canary.0
|
|
105
105
|
*/
|
|
106
|
-
function DropdownMenuCheckboxItem({ checked, children, className, ...props }) {
|
|
107
|
-
return /* @__PURE__ */ jsxs(
|
|
106
|
+
function DropdownMenuCheckboxItem({ checked, children, className, inset, ...props }) {
|
|
107
|
+
return /* @__PURE__ */ jsxs(DropdownMenu$1.CheckboxItem, {
|
|
108
108
|
checked,
|
|
109
|
-
className: cn("
|
|
109
|
+
className: cn("relative flex 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 focus:**:text-accent-foreground data-inset:ps-8 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
|
|
110
|
+
"data-inset": inset,
|
|
110
111
|
"data-slot": "dropdown-menu-checkbox-item",
|
|
111
112
|
...props,
|
|
112
113
|
children: [/* @__PURE__ */ jsx("span", {
|
|
113
|
-
className:
|
|
114
|
-
|
|
114
|
+
className: "pointer-events-none absolute end-2 flex items-center justify-center",
|
|
115
|
+
"data-slot": "dropdown-menu-checkbox-item-indicator",
|
|
116
|
+
children: /* @__PURE__ */ jsx(DropdownMenu$1.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, {}) })
|
|
115
117
|
}), children]
|
|
116
118
|
});
|
|
117
119
|
}
|
|
118
120
|
/**
|
|
119
121
|
* @since 0.3.16-canary.0
|
|
120
122
|
*/
|
|
121
|
-
function DropdownMenuRadioItem({ children, className, ...props }) {
|
|
122
|
-
return /* @__PURE__ */ jsxs(
|
|
123
|
-
className: cn("
|
|
123
|
+
function DropdownMenuRadioItem({ children, className, inset, ...props }) {
|
|
124
|
+
return /* @__PURE__ */ jsxs(DropdownMenu$1.RadioItem, {
|
|
125
|
+
className: cn("relative flex 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 focus:**:text-accent-foreground data-inset:ps-8 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
|
|
126
|
+
"data-inset": inset,
|
|
124
127
|
"data-slot": "dropdown-menu-radio-item",
|
|
125
128
|
...props,
|
|
126
129
|
children: [/* @__PURE__ */ jsx("span", {
|
|
127
|
-
className:
|
|
128
|
-
|
|
130
|
+
className: "pointer-events-none absolute end-2 flex items-center justify-center",
|
|
131
|
+
"data-slot": "dropdown-menu-radio-item-indicator",
|
|
132
|
+
children: /* @__PURE__ */ jsx(DropdownMenu$1.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, {}) })
|
|
129
133
|
}), children]
|
|
130
134
|
});
|
|
131
135
|
}
|
|
@@ -133,8 +137,8 @@ function DropdownMenuRadioItem({ children, className, ...props }) {
|
|
|
133
137
|
* @since 0.3.16-canary.0
|
|
134
138
|
*/
|
|
135
139
|
function DropdownMenuLabel({ className, inset, ...props }) {
|
|
136
|
-
return /* @__PURE__ */ jsx(
|
|
137
|
-
className: cn("
|
|
140
|
+
return /* @__PURE__ */ jsx(DropdownMenu$1.Label, {
|
|
141
|
+
className: cn("px-2 py-1.5 text-xs font-medium text-muted-foreground data-inset:ps-8", className),
|
|
138
142
|
"data-inset": inset,
|
|
139
143
|
"data-slot": "dropdown-menu-label",
|
|
140
144
|
...props
|
|
@@ -144,8 +148,8 @@ function DropdownMenuLabel({ className, inset, ...props }) {
|
|
|
144
148
|
* @since 0.3.16-canary.0
|
|
145
149
|
*/
|
|
146
150
|
function DropdownMenuSeparator({ className, ...props }) {
|
|
147
|
-
return /* @__PURE__ */ jsx(
|
|
148
|
-
className: cn("mx-
|
|
151
|
+
return /* @__PURE__ */ jsx(DropdownMenu$1.Separator, {
|
|
152
|
+
className: cn("-mx-1 my-1 h-px bg-border", className),
|
|
149
153
|
"data-slot": "dropdown-menu-separator",
|
|
150
154
|
...props
|
|
151
155
|
});
|
|
@@ -155,7 +159,7 @@ function DropdownMenuSeparator({ className, ...props }) {
|
|
|
155
159
|
*/
|
|
156
160
|
function DropdownMenuShortcut({ className, ...props }) {
|
|
157
161
|
return /* @__PURE__ */ jsx("span", {
|
|
158
|
-
className: cn("
|
|
162
|
+
className: cn("ms-auto text-xs tracking-widest text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground", className),
|
|
159
163
|
"data-slot": "dropdown-menu-shortcut",
|
|
160
164
|
...props
|
|
161
165
|
});
|
|
@@ -164,7 +168,7 @@ function DropdownMenuShortcut({ className, ...props }) {
|
|
|
164
168
|
* @since 0.3.16-canary.0
|
|
165
169
|
*/
|
|
166
170
|
function DropdownMenuArrow({ className, ...props }) {
|
|
167
|
-
return /* @__PURE__ */ jsx(
|
|
171
|
+
return /* @__PURE__ */ jsx(DropdownMenu$1.Arrow, {
|
|
168
172
|
className: cn("fill-popover", className),
|
|
169
173
|
"data-slot": "dropdown-menu-arrow",
|
|
170
174
|
...props
|
|
@@ -7,7 +7,7 @@ import { jsx } from "react/jsx-runtime";
|
|
|
7
7
|
*/
|
|
8
8
|
function Empty({ className, ...props }) {
|
|
9
9
|
return /* @__PURE__ */ jsx("div", {
|
|
10
|
-
className: cn("flex min-w-0 flex-1 flex-col items-center justify-center gap-
|
|
10
|
+
className: cn("flex w-full min-w-0 flex-1 flex-col items-center justify-center gap-4 rounded-lg border-dashed p-12 text-center text-balance", className),
|
|
11
11
|
"data-slot": "empty",
|
|
12
12
|
...props
|
|
13
13
|
});
|
|
@@ -17,7 +17,7 @@ function Empty({ className, ...props }) {
|
|
|
17
17
|
*/
|
|
18
18
|
function EmptyHeader({ className, ...props }) {
|
|
19
19
|
return /* @__PURE__ */ jsx("div", {
|
|
20
|
-
className: cn("flex max-w-sm flex-col items-center gap-2",
|
|
20
|
+
className: cn("flex max-w-sm flex-col items-center gap-2", className),
|
|
21
21
|
"data-slot": "empty-header",
|
|
22
22
|
...props
|
|
23
23
|
});
|
|
@@ -41,7 +41,7 @@ function EmptyMedia({ className, variant = "default", ...props }) {
|
|
|
41
41
|
*/
|
|
42
42
|
function EmptyTitle({ className, ...props }) {
|
|
43
43
|
return /* @__PURE__ */ jsx("div", {
|
|
44
|
-
className: cn("text-lg font-medium tracking-tight", className),
|
|
44
|
+
className: cn("font-heading text-lg font-medium tracking-tight", className),
|
|
45
45
|
"data-slot": "empty-title",
|
|
46
46
|
...props
|
|
47
47
|
});
|
|
@@ -51,7 +51,7 @@ function EmptyTitle({ className, ...props }) {
|
|
|
51
51
|
*/
|
|
52
52
|
function EmptyDescription({ className, ...props }) {
|
|
53
53
|
return /* @__PURE__ */ jsx("p", {
|
|
54
|
-
className: cn("text-sm/relaxed text-muted-foreground
|
|
54
|
+
className: cn("text-sm/relaxed text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary", className),
|
|
55
55
|
"data-slot": "empty-description",
|
|
56
56
|
...props
|
|
57
57
|
});
|
|
@@ -61,7 +61,7 @@ function EmptyDescription({ className, ...props }) {
|
|
|
61
61
|
*/
|
|
62
62
|
function EmptyContent({ className, ...props }) {
|
|
63
63
|
return /* @__PURE__ */ jsx("div", {
|
|
64
|
-
className: cn("flex w-full max-w-sm min-w-0 flex-col items-center gap-4
|
|
64
|
+
className: cn("flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-sm text-balance", className),
|
|
65
65
|
"data-slot": "empty-content",
|
|
66
66
|
...props
|
|
67
67
|
});
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import { cn } from "../lib/utils.mjs";
|
|
3
2
|
import { Separator } from "./separator.mjs";
|
|
4
3
|
import { Label } from "./label.mjs";
|
|
@@ -11,7 +10,7 @@ import { useMemo } from "react";
|
|
|
11
10
|
*/
|
|
12
11
|
function FieldSet({ className, ...props }) {
|
|
13
12
|
return /* @__PURE__ */ jsx("fieldset", {
|
|
14
|
-
className: cn("flex flex-col gap-6
|
|
13
|
+
className: cn("flex flex-col gap-6 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3", className),
|
|
15
14
|
"data-slot": "field-set",
|
|
16
15
|
...props
|
|
17
16
|
});
|
|
@@ -21,7 +20,7 @@ function FieldSet({ className, ...props }) {
|
|
|
21
20
|
*/
|
|
22
21
|
function FieldLegend({ className, variant = "legend", ...props }) {
|
|
23
22
|
return /* @__PURE__ */ jsx("legend", {
|
|
24
|
-
className: cn("mb-3
|
|
23
|
+
className: cn("mb-3 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base", className),
|
|
25
24
|
"data-slot": "field-legend",
|
|
26
25
|
"data-variant": variant,
|
|
27
26
|
...props
|
|
@@ -32,7 +31,7 @@ function FieldLegend({ className, variant = "legend", ...props }) {
|
|
|
32
31
|
*/
|
|
33
32
|
function FieldGroup({ className, ...props }) {
|
|
34
33
|
return /* @__PURE__ */ jsx("div", {
|
|
35
|
-
className: cn("group/field-group @container/field-group flex w-full flex-col gap-7
|
|
34
|
+
className: cn("group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4", className),
|
|
36
35
|
"data-slot": "field-group",
|
|
37
36
|
...props
|
|
38
37
|
});
|
|
@@ -57,7 +56,7 @@ function Field({ className, orientation = "vertical", ...props }) {
|
|
|
57
56
|
*/
|
|
58
57
|
function FieldContent({ className, ...props }) {
|
|
59
58
|
return /* @__PURE__ */ jsx("div", {
|
|
60
|
-
className: cn("group/field-content flex flex-1 flex-col gap-1
|
|
59
|
+
className: cn("group/field-content flex flex-1 flex-col gap-1 leading-snug", className),
|
|
61
60
|
"data-slot": "field-content",
|
|
62
61
|
...props
|
|
63
62
|
});
|
|
@@ -67,7 +66,7 @@ function FieldContent({ className, ...props }) {
|
|
|
67
66
|
*/
|
|
68
67
|
function FieldLabel({ className, ...props }) {
|
|
69
68
|
return /* @__PURE__ */ jsx(Label, {
|
|
70
|
-
className: cn("group/field-label peer/field-label flex w-fit gap-2 leading-snug
|
|
69
|
+
className: cn("group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-disabled/field:opacity-50 has-data-checked:border-primary/30 has-data-checked:bg-primary/5 has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border *:data-[slot=field]:p-3 dark:has-data-checked:border-primary/20 dark:has-data-checked:bg-primary/10", "has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col", className),
|
|
71
70
|
"data-slot": "field-label",
|
|
72
71
|
...props
|
|
73
72
|
});
|
|
@@ -77,7 +76,7 @@ function FieldLabel({ className, ...props }) {
|
|
|
77
76
|
*/
|
|
78
77
|
function FieldTitle({ className, ...props }) {
|
|
79
78
|
return /* @__PURE__ */ jsx("div", {
|
|
80
|
-
className: cn("flex w-fit items-center gap-2 text-sm
|
|
79
|
+
className: cn("flex w-fit items-center gap-2 text-sm font-medium group-data-disabled/field:opacity-50", className),
|
|
81
80
|
"data-slot": "field-label",
|
|
82
81
|
...props
|
|
83
82
|
});
|
|
@@ -87,7 +86,7 @@ function FieldTitle({ className, ...props }) {
|
|
|
87
86
|
*/
|
|
88
87
|
function FieldDescription({ className, ...props }) {
|
|
89
88
|
return /* @__PURE__ */ jsx("p", {
|
|
90
|
-
className: cn("text-sm leading-normal font-normal text-muted-foreground
|
|
89
|
+
className: cn("text-start text-sm leading-normal font-normal text-muted-foreground group-has-data-horizontal/field:text-balance [[data-variant=legend]+&]:-mt-1.5", "last:mt-0 nth-last-2:-mt-1", "[&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary", className),
|
|
91
90
|
"data-slot": "field-description",
|
|
92
91
|
...props
|
|
93
92
|
});
|
|
@@ -98,12 +97,12 @@ function FieldDescription({ className, ...props }) {
|
|
|
98
97
|
function FieldSeparator({ children, className, ...props }) {
|
|
99
98
|
const hasContent = Boolean(children);
|
|
100
99
|
return /* @__PURE__ */ jsxs("div", {
|
|
101
|
-
className: cn("relative
|
|
100
|
+
className: cn("relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2", className),
|
|
102
101
|
"data-content": hasContent,
|
|
103
102
|
"data-slot": "field-separator",
|
|
104
103
|
...props,
|
|
105
|
-
children: [/* @__PURE__ */ jsx(Separator, { className:
|
|
106
|
-
className:
|
|
104
|
+
children: [/* @__PURE__ */ jsx(Separator, { className: "absolute inset-0 top-1/2" }), hasContent ? /* @__PURE__ */ jsx("span", {
|
|
105
|
+
className: "relative mx-auto block w-fit bg-background px-2 text-muted-foreground",
|
|
107
106
|
"data-slot": "field-separator-content",
|
|
108
107
|
children
|
|
109
108
|
}) : null]
|
|
@@ -118,7 +117,7 @@ function FieldError({ children, className, errors, ...props }) {
|
|
|
118
117
|
const uniqueErrors = [...new Map(errors.map((error) => [error?.message, error])).values()];
|
|
119
118
|
if (uniqueErrors.length === 1) return uniqueErrors[0]?.message ?? null;
|
|
120
119
|
return /* @__PURE__ */ jsx("ul", {
|
|
121
|
-
className:
|
|
120
|
+
className: "ms-4 flex list-disc flex-col gap-1",
|
|
122
121
|
children: uniqueErrors.map((error) => error?.message ? /* @__PURE__ */ jsx("li", { children: error.message }, error.message) : null)
|
|
123
122
|
});
|
|
124
123
|
}, [errors]);
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { Slot } from "
|
|
1
|
+
import { Label, Slot } from "radix-ui";
|
|
2
2
|
import { ComponentProps, JSX, ReactNode } from "react";
|
|
3
|
-
import {
|
|
4
|
-
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
3
|
+
import { Context } from "radix-ui/internal";
|
|
5
4
|
import { ControllerProps, FieldPath, FieldValues, FormProvider } from "react-hook-form";
|
|
6
5
|
|
|
7
6
|
//#region src/components/form.d.ts
|
|
@@ -14,9 +13,9 @@ type FormProps = ComponentProps<typeof FormProvider>;
|
|
|
14
13
|
*/
|
|
15
14
|
declare const Form: typeof FormProvider;
|
|
16
15
|
type ScopedProps<P> = P & {
|
|
17
|
-
__scopeFormField?: Scope;
|
|
16
|
+
__scopeFormField?: Context.Scope;
|
|
18
17
|
};
|
|
19
|
-
declare const createFormFieldScope:
|
|
18
|
+
declare const createFormFieldScope: Context.CreateScope;
|
|
20
19
|
/**
|
|
21
20
|
* @since 0.3.16-canary.0
|
|
22
21
|
*/
|
|
@@ -40,7 +39,7 @@ declare function FormItem({
|
|
|
40
39
|
/**
|
|
41
40
|
* @since 0.3.16-canary.0
|
|
42
41
|
*/
|
|
43
|
-
type FormLabelProps = ComponentProps<typeof
|
|
42
|
+
type FormLabelProps = ComponentProps<typeof Label.Root>;
|
|
44
43
|
/**
|
|
45
44
|
* @since 0.3.16-canary.0
|
|
46
45
|
*/
|
|
@@ -51,7 +50,7 @@ declare function FormLabel({
|
|
|
51
50
|
/**
|
|
52
51
|
* @since 0.3.16-canary.0
|
|
53
52
|
*/
|
|
54
|
-
type FormControlProps = ComponentProps<typeof Slot>;
|
|
53
|
+
type FormControlProps = ComponentProps<typeof Slot.Root>;
|
|
55
54
|
/**
|
|
56
55
|
* @since 0.3.16-canary.0
|
|
57
56
|
*/
|
package/dist/components/form.mjs
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import { cn } from "../lib/utils.mjs";
|
|
3
|
-
import { Label } from "./label.mjs";
|
|
4
|
-
import { Slot } from "
|
|
2
|
+
import { Label as Label$1 } from "./label.mjs";
|
|
3
|
+
import { Slot } from "radix-ui";
|
|
5
4
|
import { jsx } from "react/jsx-runtime";
|
|
6
5
|
import { useId } from "react";
|
|
7
|
-
import {
|
|
6
|
+
import { Context } from "radix-ui/internal";
|
|
8
7
|
import { Controller, FormProvider, useFormContext, useFormState } from "react-hook-form";
|
|
9
8
|
//#region src/components/form.tsx
|
|
10
9
|
/**
|
|
@@ -12,7 +11,7 @@ import { Controller, FormProvider, useFormContext, useFormState } from "react-ho
|
|
|
12
11
|
*/
|
|
13
12
|
const Form = FormProvider;
|
|
14
13
|
const FORM_FIELD_NAME = "FormField";
|
|
15
|
-
const [createFormFieldContext, createFormFieldScope] = createContextScope(FORM_FIELD_NAME);
|
|
14
|
+
const [createFormFieldContext, createFormFieldScope] = Context.createContextScope(FORM_FIELD_NAME);
|
|
16
15
|
const [FormFieldContextProvider, useFormFieldContext] = createFormFieldContext(FORM_FIELD_NAME);
|
|
17
16
|
function useFormItem(consumerName, scope) {
|
|
18
17
|
const { id } = useFormItemContext(consumerName, scope);
|
|
@@ -60,7 +59,7 @@ const FORM_LABEL_NAME = "FormLabel";
|
|
|
60
59
|
*/
|
|
61
60
|
function FormLabel({ __scopeFormField, ...props }) {
|
|
62
61
|
const { error, formItemId } = useFormItem(FORM_LABEL_NAME, __scopeFormField);
|
|
63
|
-
return /* @__PURE__ */ jsx(Label, {
|
|
62
|
+
return /* @__PURE__ */ jsx(Label$1, {
|
|
64
63
|
"data-invalid": error ? true : void 0,
|
|
65
64
|
"data-slot": "form-label",
|
|
66
65
|
htmlFor: formItemId,
|
|
@@ -73,7 +72,7 @@ const FORM_CONTROL_NAME = "FormControl";
|
|
|
73
72
|
*/
|
|
74
73
|
function FormControl({ __scopeFormField, ...props }) {
|
|
75
74
|
const { error, formDescriptionId, formItemId, formMessageId } = useFormItem(FORM_CONTROL_NAME, __scopeFormField);
|
|
76
|
-
return /* @__PURE__ */ jsx(Slot, {
|
|
75
|
+
return /* @__PURE__ */ jsx(Slot.Root, {
|
|
77
76
|
"aria-describedby": error ? `${formDescriptionId} ${formMessageId}` : formDescriptionId,
|
|
78
77
|
"aria-invalid": Boolean(error),
|
|
79
78
|
"data-slot": "form-control",
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
+
import { HoverCard as HoverCard$1 } from "radix-ui";
|
|
1
2
|
import { ComponentProps, JSX } from "react";
|
|
2
|
-
import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
|
|
3
3
|
|
|
4
4
|
//#region src/components/hover-card.d.ts
|
|
5
5
|
/**
|
|
6
6
|
* @since 0.3.16-canary.0
|
|
7
7
|
*/
|
|
8
|
-
type HoverCardProps = ComponentProps<typeof
|
|
8
|
+
type HoverCardProps = ComponentProps<typeof HoverCard$1.Root>;
|
|
9
9
|
/**
|
|
10
10
|
* @since 0.3.16-canary.0
|
|
11
11
|
*/
|
|
@@ -15,7 +15,7 @@ declare function HoverCard({
|
|
|
15
15
|
/**
|
|
16
16
|
* @since 0.3.16-canary.0
|
|
17
17
|
*/
|
|
18
|
-
type HoverCardTriggerProps = ComponentProps<typeof
|
|
18
|
+
type HoverCardTriggerProps = ComponentProps<typeof HoverCard$1.Trigger>;
|
|
19
19
|
/**
|
|
20
20
|
* @since 0.3.16-canary.0
|
|
21
21
|
*/
|
|
@@ -25,7 +25,7 @@ declare function HoverCardTrigger({
|
|
|
25
25
|
/**
|
|
26
26
|
* @since 0.3.16-canary.0
|
|
27
27
|
*/
|
|
28
|
-
type HoverCardContentProps = ComponentProps<typeof
|
|
28
|
+
type HoverCardContentProps = ComponentProps<typeof HoverCard$1.Content>;
|
|
29
29
|
/**
|
|
30
30
|
* @since 0.3.16-canary.0
|
|
31
31
|
*/
|
|
@@ -38,7 +38,7 @@ declare function HoverCardContent({
|
|
|
38
38
|
/**
|
|
39
39
|
* @since 0.3.16-canary.0
|
|
40
40
|
*/
|
|
41
|
-
type HoverCardArrowProps = ComponentProps<typeof
|
|
41
|
+
type HoverCardArrowProps = ComponentProps<typeof HoverCard$1.Arrow>;
|
|
42
42
|
/**
|
|
43
43
|
* @since 0.3.16-canary.0
|
|
44
44
|
*/
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import { cn } from "../lib/utils.mjs";
|
|
2
|
+
import { HoverCard as HoverCard$1 } from "radix-ui";
|
|
3
3
|
import { jsx } from "react/jsx-runtime";
|
|
4
|
-
import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
|
|
5
4
|
//#region src/components/hover-card.tsx
|
|
6
5
|
/**
|
|
7
6
|
* @since 0.3.16-canary.0
|
|
8
7
|
*/
|
|
9
8
|
function HoverCard({ ...props }) {
|
|
10
|
-
return /* @__PURE__ */ jsx(
|
|
9
|
+
return /* @__PURE__ */ jsx(HoverCard$1.Root, {
|
|
11
10
|
"data-slot": "hover-card",
|
|
12
11
|
...props
|
|
13
12
|
});
|
|
@@ -16,7 +15,7 @@ function HoverCard({ ...props }) {
|
|
|
16
15
|
* @since 0.3.16-canary.0
|
|
17
16
|
*/
|
|
18
17
|
function HoverCardTrigger({ ...props }) {
|
|
19
|
-
return /* @__PURE__ */ jsx(
|
|
18
|
+
return /* @__PURE__ */ jsx(HoverCard$1.Trigger, {
|
|
20
19
|
"data-slot": "hover-card-trigger",
|
|
21
20
|
...props
|
|
22
21
|
});
|
|
@@ -25,19 +24,22 @@ function HoverCardTrigger({ ...props }) {
|
|
|
25
24
|
* @since 0.3.16-canary.0
|
|
26
25
|
*/
|
|
27
26
|
function HoverCardContent({ align = "center", className, sideOffset = 4, ...props }) {
|
|
28
|
-
return /* @__PURE__ */ jsx(
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
27
|
+
return /* @__PURE__ */ jsx(HoverCard$1.Portal, {
|
|
28
|
+
"data-slot": "hover-card-portal",
|
|
29
|
+
children: /* @__PURE__ */ jsx(HoverCard$1.Content, {
|
|
30
|
+
align,
|
|
31
|
+
className: cn("z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-lg bg-popover p-4 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden ease-snappy data-open:animate-in data-open:animation-duration-popup-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-popup-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", className),
|
|
32
|
+
"data-slot": "hover-card-content",
|
|
33
|
+
sideOffset,
|
|
34
|
+
...props
|
|
35
|
+
})
|
|
36
|
+
});
|
|
35
37
|
}
|
|
36
38
|
/**
|
|
37
39
|
* @since 0.3.16-canary.0
|
|
38
40
|
*/
|
|
39
41
|
function HoverCardArrow({ className, ...props }) {
|
|
40
|
-
return /* @__PURE__ */ jsx(
|
|
42
|
+
return /* @__PURE__ */ jsx(HoverCard$1.Arrow, {
|
|
41
43
|
className: cn("fill-popover", className),
|
|
42
44
|
"data-slot": "hover-card-arrow",
|
|
43
45
|
...props
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ButtonProps } from "./button.mjs";
|
|
2
|
-
import { InputGroupAddonVariants, InputGroupButtonVariants } from "../variants/input-group.mjs";
|
|
3
2
|
import { InputProps } from "./input.mjs";
|
|
4
3
|
import { TextareaProps } from "./textarea.mjs";
|
|
4
|
+
import { InputGroupAddonVariants, InputGroupButtonVariants } from "../variants/input-group.mjs";
|
|
5
5
|
import { ComponentProps, JSX } from "react";
|
|
6
6
|
|
|
7
7
|
//#region src/components/input-group.d.ts
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import { cn } from "../lib/utils.mjs";
|
|
3
2
|
import { Button } from "./button.mjs";
|
|
4
3
|
import { Input } from "./input.mjs";
|
|
5
|
-
import { inputGroupAddonVariants, inputGroupButtonVariants, inputGroupVariants } from "../variants/input-group.mjs";
|
|
6
4
|
import { Textarea } from "./textarea.mjs";
|
|
5
|
+
import { inputGroupAddonVariants, inputGroupButtonVariants, inputGroupVariants } from "../variants/input-group.mjs";
|
|
7
6
|
import { jsx } from "react/jsx-runtime";
|
|
8
7
|
//#region src/components/input-group.tsx
|
|
9
8
|
/**
|
|
@@ -22,7 +21,10 @@ function InputGroup({ className, ...props }) {
|
|
|
22
21
|
*/
|
|
23
22
|
function InputGroupAddon({ align = "inline-start", className, ...props }) {
|
|
24
23
|
return /* @__PURE__ */ jsx("div", {
|
|
25
|
-
className:
|
|
24
|
+
className: inputGroupAddonVariants({
|
|
25
|
+
align,
|
|
26
|
+
className
|
|
27
|
+
}),
|
|
26
28
|
"data-align": align,
|
|
27
29
|
"data-slot": "input-group-addon",
|
|
28
30
|
role: "group",
|
|
@@ -40,7 +42,10 @@ function InputGroupAddon({ align = "inline-start", className, ...props }) {
|
|
|
40
42
|
*/
|
|
41
43
|
function InputGroupButton({ className, size = "xs", type = "button", variant = "ghost", ...props }) {
|
|
42
44
|
return /* @__PURE__ */ jsx(Button, {
|
|
43
|
-
className:
|
|
45
|
+
className: inputGroupButtonVariants({
|
|
46
|
+
size,
|
|
47
|
+
className
|
|
48
|
+
}),
|
|
44
49
|
"data-size": size,
|
|
45
50
|
"data-slot": "input-group-button",
|
|
46
51
|
type,
|
|
@@ -53,7 +58,7 @@ function InputGroupButton({ className, size = "xs", type = "button", variant = "
|
|
|
53
58
|
*/
|
|
54
59
|
function InputGroupText({ className, ...props }) {
|
|
55
60
|
return /* @__PURE__ */ jsx("span", {
|
|
56
|
-
className: cn("flex items-center gap-2 text-sm text-muted-foreground
|
|
61
|
+
className: cn("flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4", className),
|
|
57
62
|
"data-slot": "input-group-text",
|
|
58
63
|
...props
|
|
59
64
|
});
|
|
@@ -63,7 +68,7 @@ function InputGroupText({ className, ...props }) {
|
|
|
63
68
|
*/
|
|
64
69
|
function InputGroupInput({ className, ...props }) {
|
|
65
70
|
return /* @__PURE__ */ jsx(Input, {
|
|
66
|
-
className: cn("flex-1
|
|
71
|
+
className: cn("flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 dark:bg-transparent", className),
|
|
67
72
|
"data-slot": "input-group-control",
|
|
68
73
|
...props
|
|
69
74
|
});
|
|
@@ -73,7 +78,7 @@ function InputGroupInput({ className, ...props }) {
|
|
|
73
78
|
*/
|
|
74
79
|
function InputGroupTextarea({ className, ...props }) {
|
|
75
80
|
return /* @__PURE__ */ jsx(Textarea, {
|
|
76
|
-
className: cn("flex-1
|
|
81
|
+
className: cn("flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 dark:bg-transparent", className),
|
|
77
82
|
"data-slot": "input-group-control",
|
|
78
83
|
...props
|
|
79
84
|
});
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { Field as InputNumberField, InputNumber as InputNumber$1 } from "../primitives/input-number.mjs";
|
|
2
|
+
import { InputNumberVariants } from "../variants/input-number.mjs";
|
|
2
3
|
import { ComponentProps, JSX } from "react";
|
|
3
4
|
|
|
4
5
|
//#region src/components/input-number.d.ts
|
|
5
6
|
/**
|
|
6
7
|
* @since 0.3.16-canary.0
|
|
7
8
|
*/
|
|
8
|
-
interface InputNumberProps extends ComponentProps<typeof InputNumberField>, ComponentProps<typeof InputNumber$1
|
|
9
|
+
interface InputNumberProps extends ComponentProps<typeof InputNumberField>, ComponentProps<typeof InputNumber$1>, InputNumberVariants {}
|
|
9
10
|
/**
|
|
10
11
|
* @since 0.3.16-canary.0
|
|
11
12
|
*/
|
|
@@ -28,6 +29,7 @@ declare function InputNumber({
|
|
|
28
29
|
step,
|
|
29
30
|
suffix,
|
|
30
31
|
value,
|
|
32
|
+
variant,
|
|
31
33
|
...props
|
|
32
34
|
}: InputNumberProps): JSX.Element;
|
|
33
35
|
//#endregion
|