@codefast/ui 0.3.16-canary.2 → 0.4.0-canary.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/CHANGELOG.md +81 -0
- package/README.md +28 -17
- 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 +14 -14
- package/dist/components/alert.mjs +17 -28
- 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.d.mts +3 -15
- package/dist/components/badge.mjs +6 -48
- package/dist/components/breadcrumb.d.mts +1 -0
- package/dist/components/breadcrumb.mjs +11 -10
- package/dist/components/button-group.d.mts +3 -13
- package/dist/components/button-group.mjs +9 -31
- package/dist/components/button.d.mts +3 -26
- package/dist/components/button.mjs +9 -79
- package/dist/components/calendar.d.mts +6 -2
- package/dist/components/calendar.mjs +41 -44
- package/dist/components/card.d.mts +4 -2
- package/dist/components/card.mjs +9 -9
- package/dist/components/carousel.d.mts +16 -5
- package/dist/components/carousel.mjs +24 -11
- package/dist/components/chart.d.mts +9 -6
- package/dist/components/chart.mjs +21 -15
- package/dist/components/checkbox-cards.mjs +4 -4
- package/dist/components/checkbox-group.mjs +3 -4
- package/dist/components/checkbox.d.mts +2 -2
- package/dist/components/checkbox.mjs +6 -7
- 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 +3 -21
- package/dist/components/drawer.mjs +19 -27
- package/dist/components/dropdown-menu.d.mts +22 -15
- package/dist/components/dropdown-menu.mjs +41 -37
- package/dist/components/empty.d.mts +3 -13
- package/dist/components/empty.mjs +8 -23
- package/dist/components/field.d.mts +3 -14
- package/dist/components/field.mjs +14 -44
- package/dist/components/form.d.mts +7 -10
- 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 +4 -31
- package/dist/components/input-group.mjs +14 -96
- package/dist/components/input-number.d.mts +3 -1
- package/dist/components/input-number.mjs +50 -28
- 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.d.mts +4 -29
- package/dist/components/item.mjs +12 -65
- 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 -13
- package/dist/components/navigation-menu.mjs +35 -32
- package/dist/components/pagination.d.mts +7 -1
- package/dist/components/pagination.mjs +27 -12
- package/dist/components/popover.d.mts +40 -7
- package/dist/components/popover.mjs +46 -14
- package/dist/components/progress-circle.d.mts +3 -47
- package/dist/components/progress-circle.mjs +2 -48
- 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 +8 -24
- package/dist/components/scroll-area.mjs +16 -70
- package/dist/components/select.d.mts +14 -14
- package/dist/components/select.mjs +47 -47
- package/dist/components/separator.d.mts +4 -19
- package/dist/components/separator.mjs +6 -27
- package/dist/components/sheet.d.mts +18 -31
- package/dist/components/sheet.mjs +46 -87
- package/dist/components/sidebar.d.mts +3 -19
- package/dist/components/sidebar.mjs +48 -84
- 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 +11 -7
- package/dist/components/toggle-group.mjs +20 -21
- package/dist/components/toggle.d.mts +4 -24
- package/dist/components/toggle.mjs +6 -45
- 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 +38 -21
- package/dist/index.mjs +40 -23
- package/dist/lib/utils.d.mts +1 -12
- package/dist/lib/utils.mjs +1 -9
- package/dist/primitives/checkbox-group.d.mts +9 -11
- package/dist/primitives/checkbox-group.mjs +14 -19
- package/dist/primitives/input-number.d.mts +3 -4
- package/dist/primitives/input-number.mjs +3 -5
- package/dist/primitives/input.d.mts +4 -5
- package/dist/primitives/input.mjs +2 -3
- package/dist/primitives/progress-circle.d.mts +3 -4
- package/dist/primitives/progress-circle.mjs +2 -3
- package/dist/variants/alert.d.mts +18 -0
- package/dist/variants/alert.mjs +15 -0
- package/dist/variants/badge.d.mts +22 -0
- package/dist/variants/badge.mjs +19 -0
- package/dist/variants/button-group.d.mts +18 -0
- package/dist/variants/button-group.mjs +15 -0
- package/dist/variants/button.d.mts +32 -0
- package/dist/variants/button.mjs +34 -0
- package/dist/variants/empty.d.mts +18 -0
- package/dist/variants/empty.mjs +15 -0
- package/dist/variants/field.d.mts +19 -0
- package/dist/variants/field.mjs +16 -0
- package/dist/variants/input-group.d.mts +43 -0
- package/dist/variants/input-group.mjs +34 -0
- package/dist/variants/input-number.d.mts +45 -0
- package/dist/variants/input-number.mjs +40 -0
- package/dist/variants/item.d.mts +38 -0
- package/dist/variants/item.mjs +38 -0
- package/dist/variants/navigation-menu.d.mts +13 -0
- package/dist/variants/navigation-menu.mjs +8 -0
- package/dist/variants/progress-circle.d.mts +52 -0
- package/dist/variants/progress-circle.mjs +45 -0
- package/dist/variants/scroll-area.d.mts +24 -0
- package/dist/variants/scroll-area.mjs +58 -0
- package/dist/variants/separator.d.mts +23 -0
- package/dist/variants/separator.mjs +25 -0
- package/dist/variants/sheet.d.mts +20 -0
- package/dist/variants/sheet.mjs +17 -0
- package/dist/variants/sidebar.d.mts +23 -0
- package/dist/variants/sidebar.mjs +25 -0
- package/dist/variants/tabs.d.mts +18 -0
- package/dist/variants/tabs.mjs +15 -0
- package/dist/variants/toggle.d.mts +23 -0
- package/dist/variants/toggle.mjs +25 -0
- package/package.json +186 -55
- package/src/components/accordion.tsx +114 -0
- package/src/components/alert-dialog.tsx +298 -0
- package/src/components/alert.tsx +94 -0
- package/src/components/aspect-ratio.tsx +25 -0
- package/src/components/avatar.tsx +171 -0
- package/src/components/badge.tsx +35 -0
- package/src/components/breadcrumb.tsx +191 -0
- package/src/components/button-group.tsx +97 -0
- package/src/components/button.tsx +55 -0
- package/src/components/calendar.tsx +222 -0
- package/src/components/card.tsx +169 -0
- package/src/components/carousel.tsx +349 -0
- package/src/components/chart.tsx +536 -0
- package/src/components/checkbox-cards.tsx +72 -0
- package/src/components/checkbox-group.tsx +60 -0
- package/src/components/checkbox.tsx +44 -0
- package/src/components/collapsible.tsx +57 -0
- package/src/components/command.tsx +298 -0
- package/src/components/context-menu.tsx +410 -0
- package/src/components/dialog.tsx +243 -0
- package/src/components/direction.tsx +32 -0
- package/src/components/drawer.tsx +209 -0
- package/src/components/dropdown-menu.tsx +419 -0
- package/src/components/empty.tsx +155 -0
- package/src/components/field.tsx +329 -0
- package/src/components/form.tsx +258 -0
- package/src/components/hover-card.tsx +93 -0
- package/src/components/input-group.tsx +185 -0
- package/src/components/input-number.tsx +141 -0
- package/src/components/input-otp.tsx +132 -0
- package/src/components/input-password.tsx +50 -0
- package/src/components/input-search.tsx +81 -0
- package/src/components/input.tsx +36 -0
- package/src/components/item.tsx +266 -0
- package/src/components/kbd.tsx +47 -0
- package/src/components/label.tsx +36 -0
- package/src/components/menubar.tsx +440 -0
- package/src/components/native-select.tsx +87 -0
- package/src/components/navigation-menu.tsx +235 -0
- package/src/components/pagination.tsx +198 -0
- package/src/components/popover.tsx +170 -0
- package/src/components/progress-circle.tsx +185 -0
- package/src/components/progress.tsx +41 -0
- package/src/components/radio-cards.tsx +66 -0
- package/src/components/radio-group.tsx +59 -0
- package/src/components/radio.tsx +40 -0
- package/src/components/resizable.tsx +78 -0
- package/src/components/scroll-area.tsx +95 -0
- package/src/components/select.tsx +296 -0
- package/src/components/separator.tsx +60 -0
- package/src/components/sheet.tsx +241 -0
- package/src/components/sidebar.tsx +926 -0
- package/src/components/skeleton.tsx +35 -0
- package/src/components/slider.tsx +66 -0
- package/src/components/sonner.tsx +57 -0
- package/src/components/spinner.tsx +66 -0
- package/src/components/switch.tsx +44 -0
- package/src/components/table.tsx +183 -0
- package/src/components/tabs.tsx +110 -0
- package/src/components/textarea.tsx +35 -0
- package/src/components/toggle-group.tsx +137 -0
- package/src/components/toggle.tsx +30 -0
- package/src/components/tooltip.tsx +115 -0
- package/src/css/foundation/base.css +50 -0
- package/src/css/foundation/motion.css +36 -0
- package/src/css/foundation/source.css +3 -0
- package/src/css/foundation/tokens.css +71 -0
- package/src/css/foundation/variants.css +113 -0
- package/src/css/preset.css +5 -195
- package/src/css/style.css +1 -1
- package/src/css/{amber.css → themes/amber.css} +59 -22
- package/src/css/{blue.css → themes/blue.css} +59 -22
- package/src/css/{cyan.css → themes/cyan.css} +59 -22
- package/src/css/{emerald.css → themes/emerald.css} +59 -22
- package/src/css/{fuchsia.css → themes/fuchsia.css} +59 -22
- package/src/css/{gray.css → themes/gray.css} +59 -22
- package/src/css/{green.css → themes/green.css} +59 -22
- package/src/css/{indigo.css → themes/indigo.css} +59 -22
- package/src/css/{lime.css → themes/lime.css} +59 -22
- package/src/css/{neutral.css → themes/neutral.css} +59 -22
- package/src/css/{orange.css → themes/orange.css} +59 -22
- package/src/css/{pink.css → themes/pink.css} +59 -22
- package/src/css/{purple.css → themes/purple.css} +59 -22
- package/src/css/{red.css → themes/red.css} +59 -22
- package/src/css/{rose.css → themes/rose.css} +59 -22
- package/src/css/{sky.css → themes/sky.css} +59 -22
- package/src/css/{slate.css → themes/slate.css} +59 -22
- package/src/css/{stone.css → themes/stone.css} +59 -22
- package/src/css/{teal.css → themes/teal.css} +59 -22
- package/src/css/{violet.css → themes/violet.css} +59 -22
- package/src/css/{yellow.css → themes/yellow.css} +59 -22
- package/src/css/{zinc.css → themes/zinc.css} +59 -22
- package/src/hooks/use-animated-value.ts +91 -0
- package/src/hooks/use-copy-to-clipboard.ts +58 -0
- package/src/hooks/use-is-mobile.ts +25 -0
- package/src/hooks/use-media-query.ts +69 -0
- package/src/hooks/use-mutation-observer.ts +51 -0
- package/src/hooks/use-pagination.ts +164 -0
- package/src/index.ts +679 -0
- package/src/lib/utils.ts +5 -0
- package/src/primitives/checkbox-group.tsx +346 -0
- package/src/primitives/input-number.tsx +967 -0
- package/src/primitives/input.tsx +227 -0
- package/src/primitives/progress-circle.tsx +507 -0
- package/src/variants/alert.ts +34 -0
- package/src/variants/badge.ts +39 -0
- package/src/variants/button-group.ts +36 -0
- package/src/variants/button.ts +56 -0
- package/src/variants/empty.ts +34 -0
- package/src/variants/field.ts +37 -0
- package/src/variants/input-group.ts +80 -0
- package/src/variants/input-number.ts +65 -0
- package/src/variants/item.ts +68 -0
- package/src/variants/navigation-menu.ts +25 -0
- package/src/variants/progress-circle.ts +46 -0
- package/src/variants/scroll-area.ts +73 -0
- package/src/variants/separator.ts +40 -0
- package/src/variants/sheet.ts +37 -0
- package/src/variants/sidebar.ts +41 -0
- package/src/variants/tabs.ts +34 -0
- package/src/variants/toggle.ts +40 -0
- package/dist/node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/clsx.d.mts +0 -6
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import { cn } from "../lib/utils.mjs";
|
|
2
|
+
import { Slider as Slider$1 } from "radix-ui";
|
|
3
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { useMemo } from "react";
|
|
5
|
-
import * as SliderPrimitive from "@radix-ui/react-slider";
|
|
6
5
|
//#region src/components/slider.tsx
|
|
7
6
|
/**
|
|
8
7
|
* @since 0.3.16-canary.0
|
|
@@ -17,24 +16,23 @@ function Slider({ className, defaultValue, max = 100, min = 0, value, ...props }
|
|
|
17
16
|
min,
|
|
18
17
|
max
|
|
19
18
|
]);
|
|
20
|
-
return /* @__PURE__ */ jsxs(
|
|
21
|
-
className: cn("relative flex w-full items-center
|
|
19
|
+
return /* @__PURE__ */ jsxs(Slider$1.Root, {
|
|
20
|
+
className: cn("relative flex w-full touch-none items-center select-none data-vertical:h-full data-vertical:min-h-40 data-vertical:w-auto data-vertical:flex-col data-disabled:opacity-50", className),
|
|
22
21
|
"data-slot": "slider",
|
|
23
22
|
defaultValue,
|
|
24
23
|
max,
|
|
25
24
|
min,
|
|
26
25
|
value,
|
|
27
26
|
...props,
|
|
28
|
-
children: [/* @__PURE__ */ jsx(
|
|
29
|
-
className:
|
|
27
|
+
children: [/* @__PURE__ */ jsx(Slider$1.Track, {
|
|
28
|
+
className: "relative grow overflow-hidden rounded-full bg-muted data-horizontal:h-1.5 data-horizontal:w-full data-vertical:h-full data-vertical:w-1.5",
|
|
30
29
|
"data-slot": "slider-track",
|
|
31
|
-
children: /* @__PURE__ */ jsx(
|
|
32
|
-
className:
|
|
30
|
+
children: /* @__PURE__ */ jsx(Slider$1.Range, {
|
|
31
|
+
className: "absolute bg-primary select-none data-horizontal:h-full data-vertical:w-full",
|
|
33
32
|
"data-slot": "slider-range"
|
|
34
33
|
})
|
|
35
|
-
}), Array.from({ length: _values.length }, (_, index) => /* @__PURE__ */ jsx(
|
|
36
|
-
"
|
|
37
|
-
className: cn("flex size-4 items-center justify-center", "rounded-full border-2 border-primary", "bg-primary shadow-sm outline-hidden", "after:size-full after:rounded-full after:bg-background after:transition-[width,height]", "focus-visible:ring-4 focus-visible:ring-primary/20", "active:not-data-disabled:after:size-1", "dark:focus-visible:ring-primary/40"),
|
|
34
|
+
}), Array.from({ length: _values.length }, (_, index) => /* @__PURE__ */ jsx(Slider$1.Thumb, {
|
|
35
|
+
className: "block size-4 shrink-0 rounded-full border border-primary bg-white shadow-sm ring-ring/50 transition-[color,box-shadow] select-none hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50",
|
|
38
36
|
"data-slot": "slider-thumb"
|
|
39
37
|
}, index))]
|
|
40
38
|
});
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
import { cn } from "../lib/utils.mjs";
|
|
1
|
+
import { CircleCheckIcon, InfoIcon, Loader2Icon, OctagonXIcon, TriangleAlertIcon } from "lucide-react";
|
|
3
2
|
import { jsx } from "react/jsx-runtime";
|
|
4
3
|
import { useTheme } from "next-themes";
|
|
5
4
|
import { Toaster as Toaster$1, toast, useSonner } from "sonner";
|
|
@@ -10,13 +9,22 @@ import { Toaster as Toaster$1, toast, useSonner } from "sonner";
|
|
|
10
9
|
function Toaster({ ...props }) {
|
|
11
10
|
const { theme = "system" } = useTheme();
|
|
12
11
|
return /* @__PURE__ */ jsx(Toaster$1, {
|
|
13
|
-
className:
|
|
12
|
+
className: "toaster group",
|
|
13
|
+
icons: {
|
|
14
|
+
error: /* @__PURE__ */ jsx(OctagonXIcon, { className: "size-4" }),
|
|
15
|
+
info: /* @__PURE__ */ jsx(InfoIcon, { className: "size-4" }),
|
|
16
|
+
loading: /* @__PURE__ */ jsx(Loader2Icon, { className: "size-4 animate-spin" }),
|
|
17
|
+
success: /* @__PURE__ */ jsx(CircleCheckIcon, { className: "size-4" }),
|
|
18
|
+
warning: /* @__PURE__ */ jsx(TriangleAlertIcon, { className: "size-4" })
|
|
19
|
+
},
|
|
14
20
|
style: {
|
|
21
|
+
"--border-radius": "var(--radius)",
|
|
15
22
|
"--normal-bg": "var(--popover)",
|
|
16
23
|
"--normal-border": "var(--border)",
|
|
17
24
|
"--normal-text": "var(--popover-foreground)"
|
|
18
25
|
},
|
|
19
26
|
theme,
|
|
27
|
+
toastOptions: { classNames: { toast: "rounded-2xl" } },
|
|
20
28
|
...props
|
|
21
29
|
});
|
|
22
30
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import { cn } from "../lib/utils.mjs";
|
|
2
|
+
import { VisuallyHidden } from "radix-ui";
|
|
3
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
-
import { VisuallyHidden } from "@radix-ui/react-visually-hidden";
|
|
5
4
|
//#region src/components/spinner.tsx
|
|
6
5
|
const SPINNER_COUNT = 8;
|
|
7
6
|
/**
|
|
@@ -10,10 +9,10 @@ const SPINNER_COUNT = 8;
|
|
|
10
9
|
function Spinner({ children, className, loading = true, ...props }) {
|
|
11
10
|
if (!loading) return children;
|
|
12
11
|
const spinner = /* @__PURE__ */ jsx("span", {
|
|
13
|
-
className: cn("relative flex size-4 items-center justify-center
|
|
12
|
+
className: cn("relative flex size-4 items-center justify-center opacity-60", className),
|
|
14
13
|
...props,
|
|
15
14
|
children: Array.from({ length: SPINNER_COUNT }, (_, index) => /* @__PURE__ */ jsx("span", {
|
|
16
|
-
className:
|
|
15
|
+
className: "absolute h-full rotate-(--spinner-rotate) before:block before:h-1/3 before:w-full before:animate-out before:rounded-full before:bg-current before:delay-(--spinner-delay) before:animation-duration-(--spinner-duration) before:fade-out-25 before:repeat-infinite motion-reduce:before:animate-none",
|
|
17
16
|
style: {
|
|
18
17
|
"--spinner-delay": `-${((SPINNER_COUNT - index) * 100).toString()}ms`,
|
|
19
18
|
"--spinner-duration": `${(SPINNER_COUNT * 100).toString()}ms`,
|
|
@@ -28,12 +27,12 @@ function Spinner({ children, className, loading = true, ...props }) {
|
|
|
28
27
|
children: [
|
|
29
28
|
/* @__PURE__ */ jsx("span", {
|
|
30
29
|
"aria-hidden": true,
|
|
31
|
-
className:
|
|
30
|
+
className: "invisible contents",
|
|
32
31
|
children
|
|
33
32
|
}),
|
|
34
|
-
/* @__PURE__ */ jsx(VisuallyHidden, { children }),
|
|
33
|
+
/* @__PURE__ */ jsx(VisuallyHidden.Root, { children }),
|
|
35
34
|
/* @__PURE__ */ jsx("span", {
|
|
36
|
-
className:
|
|
35
|
+
className: "absolute inset-0 flex items-center justify-center",
|
|
37
36
|
children: spinner
|
|
38
37
|
})
|
|
39
38
|
]
|
|
@@ -1,16 +1,19 @@
|
|
|
1
|
+
import { Switch as Switch$1 } from "radix-ui";
|
|
1
2
|
import { ComponentProps, JSX } from "react";
|
|
2
|
-
import * as SwitchPrimitives from "@radix-ui/react-switch";
|
|
3
3
|
|
|
4
4
|
//#region src/components/switch.d.ts
|
|
5
5
|
/**
|
|
6
6
|
* @since 0.3.16-canary.0
|
|
7
7
|
*/
|
|
8
|
-
type SwitchProps = ComponentProps<typeof
|
|
8
|
+
type SwitchProps = ComponentProps<typeof Switch$1.Root> & {
|
|
9
|
+
size?: "default" | "sm";
|
|
10
|
+
};
|
|
9
11
|
/**
|
|
10
12
|
* @since 0.3.16-canary.0
|
|
11
13
|
*/
|
|
12
14
|
declare function Switch({
|
|
13
15
|
className,
|
|
16
|
+
size,
|
|
14
17
|
...props
|
|
15
18
|
}: SwitchProps): JSX.Element;
|
|
16
19
|
//#endregion
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import { cn } from "../lib/utils.mjs";
|
|
2
|
+
import { Switch as Switch$1 } from "radix-ui";
|
|
3
3
|
import { jsx } from "react/jsx-runtime";
|
|
4
|
-
import * as SwitchPrimitives from "@radix-ui/react-switch";
|
|
5
4
|
//#region src/components/switch.tsx
|
|
6
5
|
/**
|
|
7
6
|
* @since 0.3.16-canary.0
|
|
8
7
|
*/
|
|
9
|
-
function Switch({ className, ...props }) {
|
|
10
|
-
return /* @__PURE__ */ jsx(
|
|
11
|
-
className: cn("peer inline-flex
|
|
8
|
+
function Switch({ className, size = "default", ...props }) {
|
|
9
|
+
return /* @__PURE__ */ jsx(Switch$1.Root, {
|
|
10
|
+
className: cn("peer group/switch relative inline-flex shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[size=default]:h-[18.4px] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:bg-primary data-unchecked:bg-input dark:data-unchecked:bg-input/80 data-disabled:cursor-not-allowed data-disabled:opacity-50", className),
|
|
11
|
+
"data-size": size,
|
|
12
12
|
"data-slot": "switch",
|
|
13
13
|
...props,
|
|
14
|
-
children: /* @__PURE__ */ jsx(
|
|
15
|
-
className:
|
|
14
|
+
children: /* @__PURE__ */ jsx(Switch$1.Thumb, {
|
|
15
|
+
className: "pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] dark:data-checked:bg-primary-foreground group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0 dark:data-unchecked:bg-foreground",
|
|
16
16
|
"data-slot": "switch-thumb"
|
|
17
17
|
})
|
|
18
18
|
});
|
|
@@ -6,10 +6,10 @@ import { jsx } from "react/jsx-runtime";
|
|
|
6
6
|
*/
|
|
7
7
|
function Table({ className, ...props }) {
|
|
8
8
|
return /* @__PURE__ */ jsx("div", {
|
|
9
|
-
className:
|
|
10
|
-
"data-slot": "table-
|
|
9
|
+
className: "relative w-full overflow-x-auto",
|
|
10
|
+
"data-slot": "table-container",
|
|
11
11
|
children: /* @__PURE__ */ jsx("table", {
|
|
12
|
-
className: cn("w-full text-sm",
|
|
12
|
+
className: cn("w-full caption-bottom text-sm", className),
|
|
13
13
|
"data-slot": "table",
|
|
14
14
|
...props
|
|
15
15
|
})
|
|
@@ -20,7 +20,7 @@ function Table({ className, ...props }) {
|
|
|
20
20
|
*/
|
|
21
21
|
function TableHeader({ className, ...props }) {
|
|
22
22
|
return /* @__PURE__ */ jsx("thead", {
|
|
23
|
-
className: cn("
|
|
23
|
+
className: cn("[&_tr]:border-b", className),
|
|
24
24
|
"data-slot": "table-header",
|
|
25
25
|
...props
|
|
26
26
|
});
|
|
@@ -30,7 +30,7 @@ function TableHeader({ className, ...props }) {
|
|
|
30
30
|
*/
|
|
31
31
|
function TableBody({ className, ...props }) {
|
|
32
32
|
return /* @__PURE__ */ jsx("tbody", {
|
|
33
|
-
className: cn("
|
|
33
|
+
className: cn("[&_tr:last-child]:border-0", className),
|
|
34
34
|
"data-slot": "table-body",
|
|
35
35
|
...props
|
|
36
36
|
});
|
|
@@ -40,7 +40,7 @@ function TableBody({ className, ...props }) {
|
|
|
40
40
|
*/
|
|
41
41
|
function TableFooter({ className, ...props }) {
|
|
42
42
|
return /* @__PURE__ */ jsx("tfoot", {
|
|
43
|
-
className: cn("bg-muted/50 font-medium
|
|
43
|
+
className: cn("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0", className),
|
|
44
44
|
"data-slot": "table-footer",
|
|
45
45
|
...props
|
|
46
46
|
});
|
|
@@ -50,7 +50,7 @@ function TableFooter({ className, ...props }) {
|
|
|
50
50
|
*/
|
|
51
51
|
function TableRow({ className, ...props }) {
|
|
52
52
|
return /* @__PURE__ */ jsx("tr", {
|
|
53
|
-
className: cn("border-b
|
|
53
|
+
className: cn("border-b transition-colors hover:bg-muted/50 has-aria-expanded:bg-muted/50 data-selected:bg-muted", className),
|
|
54
54
|
"data-slot": "table-row",
|
|
55
55
|
...props
|
|
56
56
|
});
|
|
@@ -60,7 +60,7 @@ function TableRow({ className, ...props }) {
|
|
|
60
60
|
*/
|
|
61
61
|
function TableHead({ className, ...props }) {
|
|
62
62
|
return /* @__PURE__ */ jsx("th", {
|
|
63
|
-
className: cn("
|
|
63
|
+
className: cn("h-10 px-2 text-left align-middle font-medium whitespace-nowrap text-foreground [&:has([role=checkbox])]:pr-0", className),
|
|
64
64
|
"data-slot": "table-head",
|
|
65
65
|
...props
|
|
66
66
|
});
|
|
@@ -70,7 +70,7 @@ function TableHead({ className, ...props }) {
|
|
|
70
70
|
*/
|
|
71
71
|
function TableCell({ className, ...props }) {
|
|
72
72
|
return /* @__PURE__ */ jsx("td", {
|
|
73
|
-
className: cn("p-2
|
|
73
|
+
className: cn("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0", className),
|
|
74
74
|
"data-slot": "table-cell",
|
|
75
75
|
...props
|
|
76
76
|
});
|
|
@@ -80,7 +80,7 @@ function TableCell({ className, ...props }) {
|
|
|
80
80
|
*/
|
|
81
81
|
function TableCaption({ className, ...props }) {
|
|
82
82
|
return /* @__PURE__ */ jsx("caption", {
|
|
83
|
-
className: cn("mt-4
|
|
83
|
+
className: cn("mt-4 text-sm text-muted-foreground", className),
|
|
84
84
|
"data-slot": "table-caption",
|
|
85
85
|
...props
|
|
86
86
|
});
|
|
@@ -1,33 +1,36 @@
|
|
|
1
|
+
import { TabsListVariants } from "../variants/tabs.mjs";
|
|
2
|
+
import { Tabs as Tabs$1 } from "radix-ui";
|
|
1
3
|
import { ComponentProps, JSX } from "react";
|
|
2
|
-
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
3
4
|
|
|
4
5
|
//#region src/components/tabs.d.ts
|
|
5
6
|
/**
|
|
6
7
|
* @since 0.3.16-canary.0
|
|
7
8
|
*/
|
|
8
|
-
type TabsProps = ComponentProps<typeof
|
|
9
|
+
type TabsProps = ComponentProps<typeof Tabs$1.Root>;
|
|
9
10
|
/**
|
|
10
11
|
* @since 0.3.16-canary.0
|
|
11
12
|
*/
|
|
12
13
|
declare function Tabs({
|
|
13
14
|
className,
|
|
15
|
+
orientation,
|
|
14
16
|
...props
|
|
15
17
|
}: TabsProps): JSX.Element;
|
|
16
18
|
/**
|
|
17
19
|
* @since 0.3.16-canary.0
|
|
18
20
|
*/
|
|
19
|
-
type TabsListProps = ComponentProps<typeof
|
|
21
|
+
type TabsListProps = ComponentProps<typeof Tabs$1.List> & TabsListVariants;
|
|
20
22
|
/**
|
|
21
23
|
* @since 0.3.16-canary.0
|
|
22
24
|
*/
|
|
23
25
|
declare function TabsList({
|
|
24
26
|
className,
|
|
27
|
+
variant,
|
|
25
28
|
...props
|
|
26
29
|
}: TabsListProps): JSX.Element;
|
|
27
30
|
/**
|
|
28
31
|
* @since 0.3.16-canary.0
|
|
29
32
|
*/
|
|
30
|
-
type TabsTriggerProps = ComponentProps<typeof
|
|
33
|
+
type TabsTriggerProps = ComponentProps<typeof Tabs$1.Trigger>;
|
|
31
34
|
/**
|
|
32
35
|
* @since 0.3.16-canary.0
|
|
33
36
|
*/
|
|
@@ -38,7 +41,7 @@ declare function TabsTrigger({
|
|
|
38
41
|
/**
|
|
39
42
|
* @since 0.3.16-canary.0
|
|
40
43
|
*/
|
|
41
|
-
type TabsContentProps = ComponentProps<typeof
|
|
44
|
+
type TabsContentProps = ComponentProps<typeof Tabs$1.Content>;
|
|
42
45
|
/**
|
|
43
46
|
* @since 0.3.16-canary.0
|
|
44
47
|
*/
|
package/dist/components/tabs.mjs
CHANGED
|
@@ -1,25 +1,31 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import { cn } from "../lib/utils.mjs";
|
|
2
|
+
import { tabsListVariants } from "../variants/tabs.mjs";
|
|
3
|
+
import { Tabs as Tabs$1 } from "radix-ui";
|
|
3
4
|
import { jsx } from "react/jsx-runtime";
|
|
4
|
-
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
5
5
|
//#region src/components/tabs.tsx
|
|
6
6
|
/**
|
|
7
7
|
* @since 0.3.16-canary.0
|
|
8
8
|
*/
|
|
9
|
-
function Tabs({ className, ...props }) {
|
|
10
|
-
return /* @__PURE__ */ jsx(
|
|
11
|
-
className: cn("
|
|
9
|
+
function Tabs({ className, orientation = "horizontal", ...props }) {
|
|
10
|
+
return /* @__PURE__ */ jsx(Tabs$1.Root, {
|
|
11
|
+
className: cn("group/tabs flex gap-2 data-horizontal:flex-col", className),
|
|
12
|
+
"data-orientation": orientation,
|
|
12
13
|
"data-slot": "tabs",
|
|
14
|
+
orientation,
|
|
13
15
|
...props
|
|
14
16
|
});
|
|
15
17
|
}
|
|
16
18
|
/**
|
|
17
19
|
* @since 0.3.16-canary.0
|
|
18
20
|
*/
|
|
19
|
-
function TabsList({ className, ...props }) {
|
|
20
|
-
return /* @__PURE__ */ jsx(
|
|
21
|
-
className:
|
|
21
|
+
function TabsList({ className, variant = "default", ...props }) {
|
|
22
|
+
return /* @__PURE__ */ jsx(Tabs$1.List, {
|
|
23
|
+
className: tabsListVariants({
|
|
24
|
+
className,
|
|
25
|
+
variant
|
|
26
|
+
}),
|
|
22
27
|
"data-slot": "tabs-list",
|
|
28
|
+
"data-variant": variant,
|
|
23
29
|
...props
|
|
24
30
|
});
|
|
25
31
|
}
|
|
@@ -27,8 +33,8 @@ function TabsList({ className, ...props }) {
|
|
|
27
33
|
* @since 0.3.16-canary.0
|
|
28
34
|
*/
|
|
29
35
|
function TabsTrigger({ className, ...props }) {
|
|
30
|
-
return /* @__PURE__ */ jsx(
|
|
31
|
-
className: cn("inline-flex items-center justify-center gap-1.5
|
|
36
|
+
return /* @__PURE__ */ jsx(Tabs$1.Trigger, {
|
|
37
|
+
className: cn("relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap text-foreground/60 transition-all group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 dark:text-muted-foreground dark:hover:text-foreground group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", "group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent", "data-active:bg-background data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 dark:data-active:text-foreground", "after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:-bottom-1.25 group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100", className),
|
|
32
38
|
"data-slot": "tabs-trigger",
|
|
33
39
|
...props
|
|
34
40
|
});
|
|
@@ -37,8 +43,8 @@ function TabsTrigger({ className, ...props }) {
|
|
|
37
43
|
* @since 0.3.16-canary.0
|
|
38
44
|
*/
|
|
39
45
|
function TabsContent({ className, ...props }) {
|
|
40
|
-
return /* @__PURE__ */ jsx(
|
|
41
|
-
className: cn("
|
|
46
|
+
return /* @__PURE__ */ jsx(Tabs$1.Content, {
|
|
47
|
+
className: cn("flex-1 text-sm outline-none", className),
|
|
42
48
|
"data-slot": "tabs-content",
|
|
43
49
|
...props
|
|
44
50
|
});
|
|
@@ -6,7 +6,7 @@ import { jsx } from "react/jsx-runtime";
|
|
|
6
6
|
*/
|
|
7
7
|
function Textarea({ className, ...props }) {
|
|
8
8
|
return /* @__PURE__ */ jsx("textarea", {
|
|
9
|
-
className: cn("flex min-h-16 w-full
|
|
9
|
+
className: cn("flex field-sizing-content min-h-16 w-full rounded-md border border-input bg-transparent px-2.5 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40", className),
|
|
10
10
|
"data-slot": "textarea",
|
|
11
11
|
...props
|
|
12
12
|
});
|
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { VariantProps } from "../lib/utils.mjs";
|
|
2
|
+
import { toggleVariants } from "../variants/toggle.mjs";
|
|
3
|
+
import { ToggleGroup as ToggleGroup$1 } from "radix-ui";
|
|
2
4
|
import { ComponentProps, JSX } from "react";
|
|
3
|
-
import {
|
|
4
|
-
import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
|
|
5
|
+
import { Context } from "radix-ui/internal";
|
|
5
6
|
|
|
6
7
|
//#region src/components/toggle-group.d.ts
|
|
7
8
|
type ScopedProps<P> = P & {
|
|
8
|
-
__scopeToggleGroup?: Scope;
|
|
9
|
+
__scopeToggleGroup?: Context.Scope;
|
|
9
10
|
};
|
|
10
11
|
/**
|
|
11
12
|
* @since 0.3.16-canary.0
|
|
12
13
|
*/
|
|
13
|
-
type ToggleGroupProps = ComponentProps<typeof
|
|
14
|
+
type ToggleGroupProps = ComponentProps<typeof ToggleGroup$1.Root> & VariantProps<typeof toggleVariants> & {
|
|
15
|
+
orientation?: "horizontal" | "vertical";
|
|
14
16
|
spacing?: number;
|
|
15
17
|
};
|
|
16
18
|
/**
|
|
@@ -20,6 +22,7 @@ declare function ToggleGroup({
|
|
|
20
22
|
__scopeToggleGroup,
|
|
21
23
|
children,
|
|
22
24
|
className,
|
|
25
|
+
orientation,
|
|
23
26
|
size,
|
|
24
27
|
spacing,
|
|
25
28
|
variant,
|
|
@@ -28,14 +31,15 @@ declare function ToggleGroup({
|
|
|
28
31
|
/**
|
|
29
32
|
* @since 0.3.16-canary.0
|
|
30
33
|
*/
|
|
31
|
-
type ToggleGroupItemProps = ScopedProps<ComponentProps<typeof
|
|
34
|
+
type ToggleGroupItemProps = ScopedProps<ComponentProps<typeof ToggleGroup$1.Item> & VariantProps<typeof toggleVariants>>;
|
|
32
35
|
/**
|
|
33
36
|
* @since 0.3.16-canary.0
|
|
34
37
|
*/
|
|
35
38
|
declare function ToggleGroupItem({
|
|
36
39
|
__scopeToggleGroup,
|
|
37
|
-
children,
|
|
38
40
|
className,
|
|
41
|
+
size,
|
|
42
|
+
variant,
|
|
39
43
|
...props
|
|
40
44
|
}: ToggleGroupItemProps): JSX.Element;
|
|
41
45
|
//#endregion
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import { cn } from "../lib/utils.mjs";
|
|
3
|
-
import { toggleVariants } from "
|
|
2
|
+
import { toggleVariants } from "../variants/toggle.mjs";
|
|
3
|
+
import { ToggleGroup as ToggleGroup$1 } from "radix-ui";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
|
-
import {
|
|
6
|
-
import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
|
|
7
|
-
import { createToggleGroupScope } from "@radix-ui/react-toggle-group";
|
|
5
|
+
import { Context } from "radix-ui/internal";
|
|
8
6
|
//#region src/components/toggle-group.tsx
|
|
9
7
|
const TOGGLE_GROUP_NAME = "ToggleGroup";
|
|
10
|
-
const [createToggleGroupContext] = createContextScope(TOGGLE_GROUP_NAME, [createToggleGroupScope]);
|
|
11
|
-
const useToggleGroupScope = createToggleGroupScope();
|
|
8
|
+
const [createToggleGroupContext] = Context.createContextScope(TOGGLE_GROUP_NAME, [ToggleGroup$1.createToggleGroupScope]);
|
|
9
|
+
const useToggleGroupScope = ToggleGroup$1.createToggleGroupScope();
|
|
12
10
|
const [ToggleGroupProvider, useToggleGroupContext] = createToggleGroupContext(TOGGLE_GROUP_NAME);
|
|
13
11
|
/**
|
|
14
12
|
* @since 0.3.16-canary.0
|
|
15
13
|
*/
|
|
16
|
-
function ToggleGroup({ __scopeToggleGroup, children, className, size, spacing =
|
|
14
|
+
function ToggleGroup({ __scopeToggleGroup, children, className, orientation = "horizontal", size, spacing = 2, variant, ...props }) {
|
|
17
15
|
const toggleGroupScope = useToggleGroupScope(__scopeToggleGroup);
|
|
18
16
|
return /* @__PURE__ */ jsx(ToggleGroupProvider, {
|
|
17
|
+
orientation,
|
|
19
18
|
scope: __scopeToggleGroup,
|
|
20
19
|
size,
|
|
21
20
|
spacing,
|
|
22
21
|
variant,
|
|
23
|
-
children: /* @__PURE__ */ jsx(
|
|
24
|
-
className: cn("group/toggle-group flex w-fit items-center gap-[--spacing(var(--gap))]
|
|
22
|
+
children: /* @__PURE__ */ jsx(ToggleGroup$1.Root, {
|
|
23
|
+
className: cn("group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] rounded-md data-[spacing=0]:data-[variant=outline]:shadow-xs data-vertical:flex-col data-vertical:items-stretch", className),
|
|
24
|
+
"data-orientation": orientation,
|
|
25
25
|
"data-size": size,
|
|
26
26
|
"data-slot": "toggle-group",
|
|
27
27
|
"data-spacing": spacing,
|
|
@@ -37,22 +37,21 @@ const TOGGLE_GROUP_ITEM_NAME = "ToggleGroupItem";
|
|
|
37
37
|
/**
|
|
38
38
|
* @since 0.3.16-canary.0
|
|
39
39
|
*/
|
|
40
|
-
function ToggleGroupItem({ __scopeToggleGroup,
|
|
41
|
-
const
|
|
40
|
+
function ToggleGroupItem({ __scopeToggleGroup, className, size = "default", variant = "default", ...props }) {
|
|
41
|
+
const context = useToggleGroupContext(TOGGLE_GROUP_ITEM_NAME, __scopeToggleGroup);
|
|
42
42
|
const toggleGroupScope = useToggleGroupScope(__scopeToggleGroup);
|
|
43
|
-
return /* @__PURE__ */ jsx(
|
|
44
|
-
className: cn("
|
|
43
|
+
return /* @__PURE__ */ jsx(ToggleGroup$1.Item, {
|
|
44
|
+
className: cn("shrink-0 group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 group-data-[spacing=0]/toggle-group:shadow-none focus:z-10 focus-visible:z-10 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-end]:pr-1.5 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-start]:pl-1.5 group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-md group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-md group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-md group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-md group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t data-on:bg-muted", toggleVariants({
|
|
45
45
|
className,
|
|
46
|
-
size,
|
|
47
|
-
variant
|
|
46
|
+
size: context.size ?? size,
|
|
47
|
+
variant: context.variant ?? variant
|
|
48
48
|
})),
|
|
49
|
-
"data-size": size,
|
|
49
|
+
"data-size": context.size ?? size,
|
|
50
50
|
"data-slot": "toggle-group-item",
|
|
51
|
-
"data-spacing": spacing,
|
|
52
|
-
"data-variant": variant,
|
|
51
|
+
"data-spacing": context.spacing,
|
|
52
|
+
"data-variant": context.variant ?? variant,
|
|
53
53
|
...toggleGroupScope,
|
|
54
|
-
...props
|
|
55
|
-
children
|
|
54
|
+
...props
|
|
56
55
|
});
|
|
57
56
|
}
|
|
58
57
|
//#endregion
|
|
@@ -1,40 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
1
|
+
import { ToggleVariants } from "../variants/toggle.mjs";
|
|
2
|
+
import { Toggle as Toggle$1 } from "radix-ui";
|
|
3
3
|
import { ComponentProps, JSX } from "react";
|
|
4
|
-
import * as TogglePrimitive from "@radix-ui/react-toggle";
|
|
5
4
|
|
|
6
5
|
//#region src/components/toggle.d.ts
|
|
7
6
|
/**
|
|
8
7
|
* @since 0.3.16-canary.0
|
|
9
8
|
*/
|
|
10
|
-
|
|
11
|
-
size: {
|
|
12
|
-
default: string[];
|
|
13
|
-
lg: string[];
|
|
14
|
-
sm: string[];
|
|
15
|
-
};
|
|
16
|
-
variant: {
|
|
17
|
-
default: string;
|
|
18
|
-
outline: string[];
|
|
19
|
-
};
|
|
20
|
-
}, Record<string, never>>;
|
|
21
|
-
/**
|
|
22
|
-
* @since 0.3.16-canary.0
|
|
23
|
-
*/
|
|
24
|
-
type ToggleVariants = VariantProps<typeof toggleVariants>;
|
|
25
|
-
/**
|
|
26
|
-
* @since 0.3.16-canary.0
|
|
27
|
-
*/
|
|
28
|
-
interface ToggleProps extends ComponentProps<typeof TogglePrimitive.Root>, ToggleVariants {}
|
|
9
|
+
interface ToggleProps extends ComponentProps<typeof Toggle$1.Root>, ToggleVariants {}
|
|
29
10
|
/**
|
|
30
11
|
* @since 0.3.16-canary.0
|
|
31
12
|
*/
|
|
32
13
|
declare function Toggle({
|
|
33
|
-
children,
|
|
34
14
|
className,
|
|
35
15
|
size,
|
|
36
16
|
variant,
|
|
37
17
|
...props
|
|
38
18
|
}: ToggleProps): JSX.Element;
|
|
39
19
|
//#endregion
|
|
40
|
-
export { Toggle, type ToggleProps
|
|
20
|
+
export { Toggle, type ToggleProps };
|
|
@@ -1,59 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
1
|
+
import { toggleVariants } from "../variants/toggle.mjs";
|
|
2
|
+
import { Toggle as Toggle$1 } from "radix-ui";
|
|
3
3
|
import { jsx } from "react/jsx-runtime";
|
|
4
|
-
import * as TogglePrimitive from "@radix-ui/react-toggle";
|
|
5
4
|
//#region src/components/toggle.tsx
|
|
6
5
|
/**
|
|
7
6
|
* @since 0.3.16-canary.0
|
|
8
7
|
*/
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
"inline-flex items-center justify-center gap-2",
|
|
12
|
-
"rounded-lg outline-none",
|
|
13
|
-
"text-sm font-medium whitespace-nowrap",
|
|
14
|
-
"transition-[color,box-shadow]",
|
|
15
|
-
"hover:bg-muted hover:text-muted-foreground",
|
|
16
|
-
"focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50",
|
|
17
|
-
"disabled:pointer-events-none disabled:opacity-50",
|
|
18
|
-
"aria-invalid:border-destructive aria-invalid:ring-destructive/20",
|
|
19
|
-
"data-[state=on]:bg-accent data-[state=on]:text-accent-foreground",
|
|
20
|
-
"dark:aria-invalid:ring-destructive/40",
|
|
21
|
-
"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4"
|
|
22
|
-
],
|
|
23
|
-
variants: {
|
|
24
|
-
size: {
|
|
25
|
-
default: ["h-9 min-w-9", "px-2"],
|
|
26
|
-
lg: ["h-10 min-w-10", "px-2.5"],
|
|
27
|
-
sm: ["h-8 min-w-8", "px-1.5"]
|
|
28
|
-
},
|
|
29
|
-
variant: {
|
|
30
|
-
default: "bg-transparent",
|
|
31
|
-
outline: [
|
|
32
|
-
"border border-input",
|
|
33
|
-
"bg-transparent shadow-xs",
|
|
34
|
-
"hover:bg-accent hover:text-accent-foreground"
|
|
35
|
-
]
|
|
36
|
-
}
|
|
37
|
-
},
|
|
38
|
-
defaultVariants: {
|
|
39
|
-
size: "default",
|
|
40
|
-
variant: "default"
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
/**
|
|
44
|
-
* @since 0.3.16-canary.0
|
|
45
|
-
*/
|
|
46
|
-
function Toggle({ children, className, size, variant, ...props }) {
|
|
47
|
-
return /* @__PURE__ */ jsx(TogglePrimitive.Root, {
|
|
8
|
+
function Toggle({ className, size, variant, ...props }) {
|
|
9
|
+
return /* @__PURE__ */ jsx(Toggle$1.Root, {
|
|
48
10
|
className: toggleVariants({
|
|
49
11
|
className,
|
|
50
12
|
size,
|
|
51
13
|
variant
|
|
52
14
|
}),
|
|
53
15
|
"data-slot": "toggle",
|
|
54
|
-
...props
|
|
55
|
-
children
|
|
16
|
+
...props
|
|
56
17
|
});
|
|
57
18
|
}
|
|
58
19
|
//#endregion
|
|
59
|
-
export { Toggle
|
|
20
|
+
export { Toggle };
|