@codefast/ui 0.3.16-canary.3 → 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 +60 -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 +24 -11
- package/dist/components/chart.d.mts +8 -3
- 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 +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 +38 -56
- package/src/components/chart.tsx +41 -92
- package/src/components/checkbox-cards.tsx +10 -30
- package/src/components/checkbox-group.tsx +5 -28
- package/src/components/checkbox.tsx +5 -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 +36 -59
- 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 +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 -214
- package/src/css/style.css +1 -1
- 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
- /package/src/css/{amber.css → themes/amber.css} +0 -0
- /package/src/css/{blue.css → themes/blue.css} +0 -0
- /package/src/css/{cyan.css → themes/cyan.css} +0 -0
- /package/src/css/{emerald.css → themes/emerald.css} +0 -0
- /package/src/css/{fuchsia.css → themes/fuchsia.css} +0 -0
- /package/src/css/{gray.css → themes/gray.css} +0 -0
- /package/src/css/{green.css → themes/green.css} +0 -0
- /package/src/css/{indigo.css → themes/indigo.css} +0 -0
- /package/src/css/{lime.css → themes/lime.css} +0 -0
- /package/src/css/{neutral.css → themes/neutral.css} +0 -0
- /package/src/css/{orange.css → themes/orange.css} +0 -0
- /package/src/css/{pink.css → themes/pink.css} +0 -0
- /package/src/css/{purple.css → themes/purple.css} +0 -0
- /package/src/css/{red.css → themes/red.css} +0 -0
- /package/src/css/{rose.css → themes/rose.css} +0 -0
- /package/src/css/{sky.css → themes/sky.css} +0 -0
- /package/src/css/{slate.css → themes/slate.css} +0 -0
- /package/src/css/{stone.css → themes/stone.css} +0 -0
- /package/src/css/{teal.css → themes/teal.css} +0 -0
- /package/src/css/{violet.css → themes/violet.css} +0 -0
- /package/src/css/{yellow.css → themes/yellow.css} +0 -0
- /package/src/css/{zinc.css → themes/zinc.css} +0 -0
|
@@ -22,7 +22,6 @@ type AlertTitleProps = ComponentProps<"div">;
|
|
|
22
22
|
* @since 0.3.16-canary.0
|
|
23
23
|
*/
|
|
24
24
|
declare function AlertTitle({
|
|
25
|
-
children,
|
|
26
25
|
className,
|
|
27
26
|
...props
|
|
28
27
|
}: AlertTitleProps): JSX.Element;
|
|
@@ -37,5 +36,16 @@ declare function AlertDescription({
|
|
|
37
36
|
className,
|
|
38
37
|
...props
|
|
39
38
|
}: AlertDescriptionProps): JSX.Element;
|
|
39
|
+
/**
|
|
40
|
+
* @since 0.3.16-canary.0
|
|
41
|
+
*/
|
|
42
|
+
type AlertActionProps = ComponentProps<"div">;
|
|
43
|
+
/**
|
|
44
|
+
* @since 0.3.16-canary.0
|
|
45
|
+
*/
|
|
46
|
+
declare function AlertAction({
|
|
47
|
+
className,
|
|
48
|
+
...props
|
|
49
|
+
}: AlertActionProps): JSX.Element;
|
|
40
50
|
//#endregion
|
|
41
|
-
export { Alert, AlertDescription, type AlertDescriptionProps, type AlertProps, AlertTitle, type AlertTitleProps };
|
|
51
|
+
export { Alert, AlertAction, type AlertActionProps, AlertDescription, type AlertDescriptionProps, type AlertProps, AlertTitle, type AlertTitleProps };
|
|
@@ -19,12 +19,11 @@ function Alert({ className, variant, ...props }) {
|
|
|
19
19
|
/**
|
|
20
20
|
* @since 0.3.16-canary.0
|
|
21
21
|
*/
|
|
22
|
-
function AlertTitle({
|
|
22
|
+
function AlertTitle({ className, ...props }) {
|
|
23
23
|
return /* @__PURE__ */ jsx("div", {
|
|
24
|
-
className: cn("col-start-2
|
|
24
|
+
className: cn("font-medium group-has-[>svg]/alert:col-start-2 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground", className),
|
|
25
25
|
"data-slot": "alert-title",
|
|
26
|
-
...props
|
|
27
|
-
children
|
|
26
|
+
...props
|
|
28
27
|
});
|
|
29
28
|
}
|
|
30
29
|
/**
|
|
@@ -32,10 +31,20 @@ function AlertTitle({ children, className, ...props }) {
|
|
|
32
31
|
*/
|
|
33
32
|
function AlertDescription({ className, ...props }) {
|
|
34
33
|
return /* @__PURE__ */ jsx("div", {
|
|
35
|
-
className: cn("
|
|
34
|
+
className: cn("text-sm text-balance text-muted-foreground md:text-pretty [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4", className),
|
|
36
35
|
"data-slot": "alert-description",
|
|
37
36
|
...props
|
|
38
37
|
});
|
|
39
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* @since 0.3.16-canary.0
|
|
41
|
+
*/
|
|
42
|
+
function AlertAction({ className, ...props }) {
|
|
43
|
+
return /* @__PURE__ */ jsx("div", {
|
|
44
|
+
className: cn("absolute top-2.5 right-3", className),
|
|
45
|
+
"data-slot": "alert-action",
|
|
46
|
+
...props
|
|
47
|
+
});
|
|
48
|
+
}
|
|
40
49
|
//#endregion
|
|
41
|
-
export { Alert, AlertDescription, AlertTitle };
|
|
50
|
+
export { Alert, AlertAction, AlertDescription, AlertTitle };
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { AspectRatio as AspectRatio$1 } from "radix-ui";
|
|
2
2
|
import { ComponentProps, JSX } from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/components/aspect-ratio.d.ts
|
|
5
5
|
/**
|
|
6
6
|
* @since 0.3.16-canary.0
|
|
7
7
|
*/
|
|
8
|
-
type AspectRatioProps = ComponentProps<typeof
|
|
8
|
+
type AspectRatioProps = ComponentProps<typeof AspectRatio$1.Root>;
|
|
9
9
|
/**
|
|
10
10
|
* @since 0.3.16-canary.0
|
|
11
11
|
*/
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
import { AspectRatio as AspectRatio$1 } from "radix-ui";
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
|
-
import * as AspectRatioPrimitive from "@radix-ui/react-aspect-ratio";
|
|
4
3
|
//#region src/components/aspect-ratio.tsx
|
|
5
4
|
/**
|
|
6
5
|
* @since 0.3.16-canary.0
|
|
7
6
|
*/
|
|
8
7
|
function AspectRatio({ ...props }) {
|
|
9
|
-
return /* @__PURE__ */ jsx(
|
|
8
|
+
return /* @__PURE__ */ jsx(AspectRatio$1.Root, {
|
|
10
9
|
"data-slot": "aspect-ratio",
|
|
11
10
|
...props
|
|
12
11
|
});
|
|
@@ -1,22 +1,25 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Avatar as Avatar$1 } from "radix-ui";
|
|
2
2
|
import { ComponentProps, JSX } from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/components/avatar.d.ts
|
|
5
5
|
/**
|
|
6
6
|
* @since 0.3.16-canary.0
|
|
7
7
|
*/
|
|
8
|
-
type AvatarProps = ComponentProps<typeof
|
|
8
|
+
type AvatarProps = ComponentProps<typeof Avatar$1.Root> & {
|
|
9
|
+
size?: "default" | "sm" | "lg";
|
|
10
|
+
};
|
|
9
11
|
/**
|
|
10
12
|
* @since 0.3.16-canary.0
|
|
11
13
|
*/
|
|
12
14
|
declare function Avatar({
|
|
13
15
|
className,
|
|
16
|
+
size,
|
|
14
17
|
...props
|
|
15
18
|
}: AvatarProps): JSX.Element;
|
|
16
19
|
/**
|
|
17
20
|
* @since 0.3.16-canary.0
|
|
18
21
|
*/
|
|
19
|
-
type AvatarImageProps = ComponentProps<typeof
|
|
22
|
+
type AvatarImageProps = ComponentProps<typeof Avatar$1.Image>;
|
|
20
23
|
/**
|
|
21
24
|
* @since 0.3.16-canary.0
|
|
22
25
|
*/
|
|
@@ -27,7 +30,7 @@ declare function AvatarImage({
|
|
|
27
30
|
/**
|
|
28
31
|
* @since 0.3.16-canary.0
|
|
29
32
|
*/
|
|
30
|
-
type AvatarFallbackProps = ComponentProps<typeof
|
|
33
|
+
type AvatarFallbackProps = ComponentProps<typeof Avatar$1.Fallback>;
|
|
31
34
|
/**
|
|
32
35
|
* @since 0.3.16-canary.0
|
|
33
36
|
*/
|
|
@@ -35,5 +38,38 @@ declare function AvatarFallback({
|
|
|
35
38
|
className,
|
|
36
39
|
...props
|
|
37
40
|
}: AvatarFallbackProps): JSX.Element;
|
|
41
|
+
/**
|
|
42
|
+
* @since 0.3.16-canary.0
|
|
43
|
+
*/
|
|
44
|
+
type AvatarBadgeProps = ComponentProps<"span">;
|
|
45
|
+
/**
|
|
46
|
+
* @since 0.3.16-canary.0
|
|
47
|
+
*/
|
|
48
|
+
declare function AvatarBadge({
|
|
49
|
+
className,
|
|
50
|
+
...props
|
|
51
|
+
}: AvatarBadgeProps): JSX.Element;
|
|
52
|
+
/**
|
|
53
|
+
* @since 0.3.16-canary.0
|
|
54
|
+
*/
|
|
55
|
+
type AvatarGroupProps = ComponentProps<"div">;
|
|
56
|
+
/**
|
|
57
|
+
* @since 0.3.16-canary.0
|
|
58
|
+
*/
|
|
59
|
+
declare function AvatarGroup({
|
|
60
|
+
className,
|
|
61
|
+
...props
|
|
62
|
+
}: AvatarGroupProps): JSX.Element;
|
|
63
|
+
/**
|
|
64
|
+
* @since 0.3.16-canary.0
|
|
65
|
+
*/
|
|
66
|
+
type AvatarGroupCountProps = ComponentProps<"div">;
|
|
67
|
+
/**
|
|
68
|
+
* @since 0.3.16-canary.0
|
|
69
|
+
*/
|
|
70
|
+
declare function AvatarGroupCount({
|
|
71
|
+
className,
|
|
72
|
+
...props
|
|
73
|
+
}: AvatarGroupCountProps): JSX.Element;
|
|
38
74
|
//#endregion
|
|
39
|
-
export { Avatar, AvatarFallback, type AvatarFallbackProps, AvatarImage, type AvatarImageProps, type AvatarProps };
|
|
75
|
+
export { Avatar, AvatarBadge, type AvatarBadgeProps, AvatarFallback, type AvatarFallbackProps, AvatarGroup, AvatarGroupCount, type AvatarGroupCountProps, type AvatarGroupProps, AvatarImage, type AvatarImageProps, type AvatarProps };
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import { cn } from "../lib/utils.mjs";
|
|
2
|
+
import { Avatar as Avatar$1 } from "radix-ui";
|
|
3
3
|
import { jsx } from "react/jsx-runtime";
|
|
4
|
-
import * as AvatarPrimitive from "@radix-ui/react-avatar";
|
|
5
4
|
//#region src/components/avatar.tsx
|
|
6
5
|
/**
|
|
7
6
|
* @since 0.3.16-canary.0
|
|
8
7
|
*/
|
|
9
|
-
function Avatar({ className, ...props }) {
|
|
10
|
-
return /* @__PURE__ */ jsx(
|
|
11
|
-
className: cn("relative flex size-8 shrink-0
|
|
8
|
+
function Avatar({ className, size = "default", ...props }) {
|
|
9
|
+
return /* @__PURE__ */ jsx(Avatar$1.Root, {
|
|
10
|
+
className: cn("group/avatar relative flex size-8 shrink-0 rounded-full select-none after:absolute after:inset-0 after:rounded-full after:border after:border-border after:mix-blend-darken data-[size=lg]:size-10 data-[size=sm]:size-6 dark:after:mix-blend-lighten", className),
|
|
11
|
+
"data-size": size,
|
|
12
12
|
"data-slot": "avatar",
|
|
13
13
|
...props
|
|
14
14
|
});
|
|
@@ -17,8 +17,8 @@ function Avatar({ className, ...props }) {
|
|
|
17
17
|
* @since 0.3.16-canary.0
|
|
18
18
|
*/
|
|
19
19
|
function AvatarImage({ className, ...props }) {
|
|
20
|
-
return /* @__PURE__ */ jsx(
|
|
21
|
-
className: cn("aspect-square size-full", className),
|
|
20
|
+
return /* @__PURE__ */ jsx(Avatar$1.Image, {
|
|
21
|
+
className: cn("aspect-square size-full rounded-full object-cover", className),
|
|
22
22
|
"data-slot": "avatar-image",
|
|
23
23
|
...props
|
|
24
24
|
});
|
|
@@ -27,11 +27,41 @@ function AvatarImage({ className, ...props }) {
|
|
|
27
27
|
* @since 0.3.16-canary.0
|
|
28
28
|
*/
|
|
29
29
|
function AvatarFallback({ className, ...props }) {
|
|
30
|
-
return /* @__PURE__ */ jsx(
|
|
31
|
-
className: cn("flex size-full items-center justify-center
|
|
30
|
+
return /* @__PURE__ */ jsx(Avatar$1.Fallback, {
|
|
31
|
+
className: cn("flex size-full items-center justify-center rounded-full bg-muted text-sm text-muted-foreground group-data-[size=sm]/avatar:text-xs", className),
|
|
32
32
|
"data-slot": "avatar-fallback",
|
|
33
33
|
...props
|
|
34
34
|
});
|
|
35
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* @since 0.3.16-canary.0
|
|
38
|
+
*/
|
|
39
|
+
function AvatarBadge({ className, ...props }) {
|
|
40
|
+
return /* @__PURE__ */ jsx("span", {
|
|
41
|
+
className: cn("absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full bg-primary text-primary-foreground bg-blend-color ring-2 ring-background select-none", "group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden", "group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2", "group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2", className),
|
|
42
|
+
"data-slot": "avatar-badge",
|
|
43
|
+
...props
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* @since 0.3.16-canary.0
|
|
48
|
+
*/
|
|
49
|
+
function AvatarGroup({ className, ...props }) {
|
|
50
|
+
return /* @__PURE__ */ jsx("div", {
|
|
51
|
+
className: cn("group/avatar-group flex -space-x-2 *:data-[slot=avatar]:ring-2 *:data-[slot=avatar]:ring-background", className),
|
|
52
|
+
"data-slot": "avatar-group",
|
|
53
|
+
...props
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* @since 0.3.16-canary.0
|
|
58
|
+
*/
|
|
59
|
+
function AvatarGroupCount({ className, ...props }) {
|
|
60
|
+
return /* @__PURE__ */ jsx("div", {
|
|
61
|
+
className: cn("relative flex size-8 shrink-0 items-center justify-center rounded-full bg-muted text-sm text-muted-foreground ring-2 ring-background group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 [&>svg]:size-4 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3", className),
|
|
62
|
+
"data-slot": "avatar-group-count",
|
|
63
|
+
...props
|
|
64
|
+
});
|
|
65
|
+
}
|
|
36
66
|
//#endregion
|
|
37
|
-
export { Avatar, AvatarFallback, AvatarImage };
|
|
67
|
+
export { Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage };
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import { badgeVariants } from "../variants/badge.mjs";
|
|
3
|
-
import { Slot } from "
|
|
2
|
+
import { Slot } from "radix-ui";
|
|
4
3
|
import { jsx } from "react/jsx-runtime";
|
|
5
4
|
//#region src/components/badge.tsx
|
|
6
5
|
/**
|
|
7
6
|
* @since 0.3.16-canary.0
|
|
8
7
|
*/
|
|
9
|
-
function Badge({ asChild, className, variant, ...props }) {
|
|
10
|
-
return /* @__PURE__ */ jsx(asChild ? Slot : "span", {
|
|
8
|
+
function Badge({ asChild = false, className, variant = "default", ...props }) {
|
|
9
|
+
return /* @__PURE__ */ jsx(asChild ? Slot.Root : "span", {
|
|
11
10
|
className: badgeVariants({
|
|
12
11
|
className,
|
|
13
12
|
variant
|
|
14
13
|
}),
|
|
15
14
|
"data-slot": "badge",
|
|
15
|
+
"data-variant": variant,
|
|
16
16
|
...props
|
|
17
17
|
});
|
|
18
18
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import { cn } from "../lib/utils.mjs";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { ChevronRightIcon, MoreHorizontalIcon } from "lucide-react";
|
|
3
|
+
import { Slot } from "radix-ui";
|
|
5
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
5
|
//#region src/components/breadcrumb.tsx
|
|
7
6
|
/**
|
|
@@ -19,7 +18,7 @@ function Breadcrumb({ ...props }) {
|
|
|
19
18
|
*/
|
|
20
19
|
function BreadcrumbList({ className, ...props }) {
|
|
21
20
|
return /* @__PURE__ */ jsx("ol", {
|
|
22
|
-
className: cn("flex flex-wrap items-center gap-1.5 text-sm break-
|
|
21
|
+
className: cn("flex flex-wrap items-center gap-1.5 text-sm wrap-break-word text-muted-foreground sm:gap-2.5", className),
|
|
23
22
|
"data-slot": "breadcrumb-list",
|
|
24
23
|
...props
|
|
25
24
|
});
|
|
@@ -38,8 +37,8 @@ function BreadcrumbItem({ className, ...props }) {
|
|
|
38
37
|
* @since 0.3.16-canary.0
|
|
39
38
|
*/
|
|
40
39
|
function BreadcrumbLink({ asChild, className, ...props }) {
|
|
41
|
-
return /* @__PURE__ */ jsx(asChild ? Slot : "a", {
|
|
42
|
-
className: cn("transition-colors
|
|
40
|
+
return /* @__PURE__ */ jsx(asChild ? Slot.Root : "a", {
|
|
41
|
+
className: cn("transition-colors hover:text-foreground", className),
|
|
43
42
|
"data-slot": "breadcrumb-link",
|
|
44
43
|
...props
|
|
45
44
|
});
|
|
@@ -53,19 +52,21 @@ function BreadcrumbPage({ className, ...props }) {
|
|
|
53
52
|
"aria-disabled": "true",
|
|
54
53
|
className: cn("font-normal text-foreground", className),
|
|
55
54
|
"data-slot": "breadcrumb-page",
|
|
55
|
+
role: "link",
|
|
56
56
|
...props
|
|
57
57
|
});
|
|
58
58
|
}
|
|
59
59
|
/**
|
|
60
60
|
* @since 0.3.16-canary.0
|
|
61
61
|
*/
|
|
62
|
-
function BreadcrumbSeparator({ children, ...props }) {
|
|
62
|
+
function BreadcrumbSeparator({ children, className, ...props }) {
|
|
63
63
|
return /* @__PURE__ */ jsx("li", {
|
|
64
64
|
"aria-hidden": "true",
|
|
65
|
+
className: cn("[&>svg]:size-3.5", className),
|
|
65
66
|
"data-slot": "breadcrumb-separator",
|
|
66
67
|
role: "presentation",
|
|
67
68
|
...props,
|
|
68
|
-
children: children ?? /* @__PURE__ */ jsx(ChevronRightIcon, { className: "
|
|
69
|
+
children: children ?? /* @__PURE__ */ jsx(ChevronRightIcon, { className: "rtl:rotate-180" })
|
|
69
70
|
});
|
|
70
71
|
}
|
|
71
72
|
/**
|
|
@@ -74,11 +75,11 @@ function BreadcrumbSeparator({ children, ...props }) {
|
|
|
74
75
|
function BreadcrumbEllipsis({ className, ...props }) {
|
|
75
76
|
return /* @__PURE__ */ jsxs("span", {
|
|
76
77
|
"aria-hidden": "true",
|
|
77
|
-
className: cn("flex size-
|
|
78
|
+
className: cn("flex size-5 items-center justify-center [&>svg]:size-4", className),
|
|
78
79
|
"data-slot": "breadcrumb-ellipsis",
|
|
79
80
|
role: "presentation",
|
|
80
81
|
...props,
|
|
81
|
-
children: [/* @__PURE__ */ jsx(
|
|
82
|
+
children: [/* @__PURE__ */ jsx(MoreHorizontalIcon, {}), /* @__PURE__ */ jsx("span", {
|
|
82
83
|
className: "sr-only",
|
|
83
84
|
children: "More"
|
|
84
85
|
})]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ButtonGroupVariants } from "../variants/button-group.mjs";
|
|
2
1
|
import { Separator } from "./separator.mjs";
|
|
2
|
+
import { ButtonGroupVariants } from "../variants/button-group.mjs";
|
|
3
3
|
import { ComponentProps, JSX } from "react";
|
|
4
4
|
|
|
5
5
|
//#region src/components/button-group.d.ts
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import { cn } from "../lib/utils.mjs";
|
|
2
|
+
import { Separator as Separator$1 } from "./separator.mjs";
|
|
3
3
|
import { buttonGroupVariants } from "../variants/button-group.mjs";
|
|
4
|
-
import {
|
|
5
|
-
import { Slot } from "@radix-ui/react-slot";
|
|
4
|
+
import { Slot } from "radix-ui";
|
|
6
5
|
import { jsx } from "react/jsx-runtime";
|
|
7
6
|
//#region src/components/button-group.tsx
|
|
8
7
|
/**
|
|
@@ -24,8 +23,8 @@ function ButtonGroup({ className, orientation, ...props }) {
|
|
|
24
23
|
* @since 0.3.16-canary.0
|
|
25
24
|
*/
|
|
26
25
|
function ButtonGroupText({ asChild = false, className, ...props }) {
|
|
27
|
-
return /* @__PURE__ */ jsx(asChild ? Slot : "div", {
|
|
28
|
-
className: cn("flex items-center gap-2
|
|
26
|
+
return /* @__PURE__ */ jsx(asChild ? Slot.Root : "div", {
|
|
27
|
+
className: cn("flex items-center gap-2 rounded-md border bg-muted px-2.5 text-sm font-medium shadow-xs [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4", className),
|
|
29
28
|
...props
|
|
30
29
|
});
|
|
31
30
|
}
|
|
@@ -33,8 +32,8 @@ function ButtonGroupText({ asChild = false, className, ...props }) {
|
|
|
33
32
|
* @since 0.3.16-canary.0
|
|
34
33
|
*/
|
|
35
34
|
function ButtonGroupSeparator({ className, orientation = "vertical", ...props }) {
|
|
36
|
-
return /* @__PURE__ */ jsx(Separator, {
|
|
37
|
-
className: cn("relative self-stretch
|
|
35
|
+
return /* @__PURE__ */ jsx(Separator$1, {
|
|
36
|
+
className: cn("relative self-stretch bg-input data-horizontal:mx-px data-horizontal:w-auto data-vertical:my-px data-vertical:h-auto", className),
|
|
38
37
|
"data-slot": "button-group-separator",
|
|
39
38
|
orientation,
|
|
40
39
|
...props
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import { buttonVariants } from "../variants/button.mjs";
|
|
2
|
-
import { Slot } from "
|
|
2
|
+
import { Slot } from "radix-ui";
|
|
3
3
|
import { jsx } from "react/jsx-runtime";
|
|
4
4
|
//#region src/components/button.tsx
|
|
5
5
|
/**
|
|
6
6
|
* @since 0.3.16-canary.0
|
|
7
7
|
*/
|
|
8
|
-
function Button({ asChild = false,
|
|
9
|
-
const Comp = asChild ? Slot : "button";
|
|
8
|
+
function Button({ asChild = false, className, size, type = "button", variant, ...props }) {
|
|
9
|
+
const Comp = asChild ? Slot.Root : "button";
|
|
10
10
|
if (asChild) return /* @__PURE__ */ jsx(Comp, {
|
|
11
11
|
className: buttonVariants({
|
|
12
12
|
className,
|
|
13
13
|
size,
|
|
14
14
|
variant
|
|
15
15
|
}),
|
|
16
|
+
"data-size": size,
|
|
16
17
|
"data-slot": "button",
|
|
17
18
|
"data-variant": variant,
|
|
18
|
-
...props
|
|
19
|
-
children
|
|
19
|
+
...props
|
|
20
20
|
});
|
|
21
21
|
return /* @__PURE__ */ jsx("button", {
|
|
22
22
|
className: buttonVariants({
|
|
@@ -24,11 +24,11 @@ function Button({ asChild = false, children, className, size, type = "button", v
|
|
|
24
24
|
size,
|
|
25
25
|
variant
|
|
26
26
|
}),
|
|
27
|
+
"data-size": size,
|
|
27
28
|
"data-slot": "button",
|
|
28
29
|
"data-variant": variant,
|
|
29
30
|
type,
|
|
30
|
-
...props
|
|
31
|
-
children
|
|
31
|
+
...props
|
|
32
32
|
});
|
|
33
33
|
}
|
|
34
34
|
//#endregion
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Button } from "./button.mjs";
|
|
2
|
+
import { DayButton, DayPicker, Locale } from "@daypicker/react";
|
|
2
3
|
import { ComponentProps, JSX } from "react";
|
|
3
|
-
import { DayButton, DayPicker } from "react-day-picker";
|
|
4
4
|
|
|
5
5
|
//#region src/components/calendar.d.ts
|
|
6
6
|
/**
|
|
@@ -19,19 +19,23 @@ declare function Calendar({
|
|
|
19
19
|
classNames,
|
|
20
20
|
components,
|
|
21
21
|
formatters,
|
|
22
|
+
locale,
|
|
22
23
|
showOutsideDays,
|
|
23
24
|
...props
|
|
24
25
|
}: CalendarProps): JSX.Element;
|
|
25
26
|
/**
|
|
26
27
|
* @since 0.3.16-canary.0
|
|
27
28
|
*/
|
|
28
|
-
type CalendarDayButtonProps = ComponentProps<typeof DayButton
|
|
29
|
+
type CalendarDayButtonProps = ComponentProps<typeof DayButton> & {
|
|
30
|
+
locale?: Partial<Locale>;
|
|
31
|
+
};
|
|
29
32
|
/**
|
|
30
33
|
* @since 0.3.16-canary.0
|
|
31
34
|
*/
|
|
32
35
|
declare function CalendarDayButton({
|
|
33
36
|
className,
|
|
34
37
|
day,
|
|
38
|
+
locale,
|
|
35
39
|
modifiers,
|
|
36
40
|
...props
|
|
37
41
|
}: CalendarDayButtonProps): JSX.Element;
|
|
@@ -1,76 +1,73 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import { cn } from "../lib/utils.mjs";
|
|
3
2
|
import { buttonVariants } from "../variants/button.mjs";
|
|
4
3
|
import { Button } from "./button.mjs";
|
|
5
4
|
import { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon } from "lucide-react";
|
|
6
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
import { DayPicker, getDefaultClassNames } from "@daypicker/react";
|
|
7
7
|
import { useEffect, useRef } from "react";
|
|
8
|
-
import { DayPicker, getDefaultClassNames } from "react-day-picker";
|
|
9
8
|
//#region src/components/calendar.tsx
|
|
10
9
|
/**
|
|
11
10
|
* @since 0.3.16-canary.0
|
|
12
11
|
*/
|
|
13
|
-
function Calendar({ buttonVariant = "ghost", captionLayout = "label", className, classNames, components, formatters, showOutsideDays = true, ...props }) {
|
|
12
|
+
function Calendar({ buttonVariant = "ghost", captionLayout = "label", className, classNames, components, formatters, locale, showOutsideDays = true, ...props }) {
|
|
14
13
|
const defaultClassNames = getDefaultClassNames();
|
|
15
14
|
return /* @__PURE__ */ jsx(DayPicker, {
|
|
16
15
|
captionLayout,
|
|
17
|
-
className: cn("group/calendar
|
|
16
|
+
className: cn("group/calendar bg-background p-3 [--cell-radius:var(--radius-md)] [--cell-size:--spacing(8)] in-data-[slot=card-content]:bg-transparent in-data-[slot=popover-content]:bg-transparent", String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`, String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`, className),
|
|
18
17
|
classNames: {
|
|
19
|
-
button_next: buttonVariants({
|
|
20
|
-
variant: buttonVariant,
|
|
21
|
-
className: ["size-(--cell-size) p-0 select-none aria-disabled:opacity-50", defaultClassNames.button_next]
|
|
22
|
-
}),
|
|
23
|
-
button_previous: buttonVariants({
|
|
24
|
-
variant: buttonVariant,
|
|
25
|
-
className: ["size-(--cell-size) p-0 select-none aria-disabled:opacity-50", defaultClassNames.button_previous]
|
|
26
|
-
}),
|
|
27
|
-
caption_label: cn("font-medium", "select-none", captionLayout === "label" ? "text-sm" : "flex h-8 items-center gap-1 rounded-md pr-1 pl-2 text-sm [&>svg]:size-3.5 [&>svg]:text-muted-foreground", defaultClassNames.caption_label),
|
|
28
|
-
day: cn("group/day relative", "aspect-square h-full w-full p-0 text-center", "select-none", "[&:last-child[data-selected=true]_button]:rounded-r-md", props.showWeekNumber ? "[&:nth-child(2)[data-selected=true]_button]:rounded-l-md" : "[&:first-child[data-selected=true]_button]:rounded-l-md", defaultClassNames.day),
|
|
29
|
-
disabled: cn("opacity-50", "text-muted-foreground", defaultClassNames.disabled),
|
|
30
|
-
dropdown: cn("absolute inset-0", "bg-popover", "opacity-0", defaultClassNames.dropdown),
|
|
31
|
-
dropdown_root: cn("relative", "rounded-md border border-input shadow-xs", "has-focus:border-ring has-focus:ring-3 has-focus:ring-ring/50", defaultClassNames.dropdown_root),
|
|
32
|
-
dropdowns: cn("flex h-(--cell-size) w-full items-center justify-center gap-1.5", "text-sm font-medium", defaultClassNames.dropdowns),
|
|
33
|
-
hidden: cn("invisible", defaultClassNames.hidden),
|
|
34
|
-
month: cn("flex w-full flex-col gap-4", defaultClassNames.month),
|
|
35
|
-
month_caption: cn("flex h-(--cell-size) w-full items-center justify-center", "px-(--cell-size)", defaultClassNames.month_caption),
|
|
36
|
-
months: cn("relative flex flex-col gap-4", "md:flex-row", defaultClassNames.months),
|
|
37
|
-
nav: cn("absolute flex w-full items-center justify-between gap-1", "inset-x-0 top-0", defaultClassNames.nav),
|
|
38
|
-
outside: cn("text-muted-foreground", "aria-selected:text-muted-foreground", defaultClassNames.outside),
|
|
39
|
-
range_end: cn("rounded-r-md", "bg-accent", defaultClassNames.range_end),
|
|
40
|
-
range_middle: cn("rounded-none", defaultClassNames.range_middle),
|
|
41
|
-
range_start: cn("rounded-l-md", "bg-accent", defaultClassNames.range_start),
|
|
42
18
|
root: cn("w-fit", defaultClassNames.root),
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
19
|
+
months: cn("relative flex flex-col gap-4 md:flex-row", defaultClassNames.months),
|
|
20
|
+
month: cn("flex w-full flex-col gap-4", defaultClassNames.month),
|
|
21
|
+
nav: cn("absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1", defaultClassNames.nav),
|
|
22
|
+
button_previous: cn(buttonVariants({ variant: buttonVariant }), "size-(--cell-size) p-0 select-none aria-disabled:opacity-50", defaultClassNames.button_previous),
|
|
23
|
+
button_next: cn(buttonVariants({ variant: buttonVariant }), "size-(--cell-size) p-0 select-none aria-disabled:opacity-50", defaultClassNames.button_next),
|
|
24
|
+
month_caption: cn("flex h-(--cell-size) w-full items-center justify-center px-(--cell-size)", defaultClassNames.month_caption),
|
|
25
|
+
dropdowns: cn("flex h-(--cell-size) w-full items-center justify-center gap-1.5 text-sm font-medium", defaultClassNames.dropdowns),
|
|
26
|
+
dropdown_root: cn("relative rounded-(--cell-radius) border border-input shadow-xs has-focus:border-ring has-focus:ring-3 has-focus:ring-ring/50", defaultClassNames.dropdown_root),
|
|
27
|
+
dropdown: cn("absolute inset-0 bg-popover opacity-0", defaultClassNames.dropdown),
|
|
28
|
+
caption_label: cn("font-medium select-none", captionLayout === "label" ? "text-sm" : "flex h-8 items-center gap-1 rounded-(--cell-radius) pr-1 pl-2 text-sm [&>svg]:size-3.5 [&>svg]:text-muted-foreground", defaultClassNames.caption_label),
|
|
29
|
+
month_grid: cn("w-full border-collapse", defaultClassNames.month_grid),
|
|
49
30
|
weekdays: cn("flex", defaultClassNames.weekdays),
|
|
31
|
+
weekday: cn("flex-1 rounded-(--cell-radius) text-[0.8rem] font-normal text-muted-foreground select-none", defaultClassNames.weekday),
|
|
32
|
+
week: cn("mt-2 flex w-full", defaultClassNames.week),
|
|
33
|
+
week_number_header: cn("w-(--cell-size) select-none", defaultClassNames.week_number_header),
|
|
34
|
+
week_number: cn("text-[0.8rem] text-muted-foreground select-none", defaultClassNames.week_number),
|
|
35
|
+
day: cn("group/day relative aspect-square h-full w-full rounded-(--cell-radius) p-0 text-center select-none [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius)", props.showWeekNumber ? "[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)" : "[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)", defaultClassNames.day),
|
|
36
|
+
range_start: cn("relative isolate z-0 rounded-l-(--cell-radius) bg-muted after:absolute after:inset-y-0 after:right-0 after:w-4 after:bg-muted", defaultClassNames.range_start),
|
|
37
|
+
range_middle: cn("rounded-none", defaultClassNames.range_middle),
|
|
38
|
+
range_end: cn("relative isolate z-0 rounded-r-(--cell-radius) bg-muted after:absolute after:inset-y-0 after:left-0 after:w-4 after:bg-muted", defaultClassNames.range_end),
|
|
39
|
+
today: cn("rounded-(--cell-radius) bg-muted text-foreground data-[selected=true]:rounded-none", defaultClassNames.today),
|
|
40
|
+
outside: cn("text-muted-foreground aria-selected:text-muted-foreground", defaultClassNames.outside),
|
|
41
|
+
disabled: cn("text-muted-foreground opacity-50", defaultClassNames.disabled),
|
|
42
|
+
hidden: cn("invisible", defaultClassNames.hidden),
|
|
50
43
|
...classNames
|
|
51
44
|
},
|
|
52
45
|
components: {
|
|
53
46
|
Chevron: CalendarChevron,
|
|
54
|
-
DayButton: CalendarDayButton,
|
|
47
|
+
DayButton: (dayButtonProps) => /* @__PURE__ */ jsx(CalendarDayButton, {
|
|
48
|
+
locale,
|
|
49
|
+
...dayButtonProps
|
|
50
|
+
}),
|
|
55
51
|
Root: CalendarRoot,
|
|
56
52
|
WeekNumber: CalendarWeekNumber,
|
|
57
53
|
...components
|
|
58
54
|
},
|
|
59
55
|
formatters: {
|
|
60
|
-
formatMonthDropdown: (date) => date.toLocaleString(
|
|
56
|
+
formatMonthDropdown: (date) => date.toLocaleString(locale?.code, { month: "short" }),
|
|
61
57
|
...formatters
|
|
62
58
|
},
|
|
59
|
+
locale,
|
|
63
60
|
showOutsideDays,
|
|
64
61
|
...props
|
|
65
62
|
});
|
|
66
63
|
}
|
|
67
64
|
function CalendarChevron({ className, orientation, ...props }) {
|
|
68
65
|
if (orientation === "left") return /* @__PURE__ */ jsx(ChevronLeftIcon, {
|
|
69
|
-
className: cn("size-4", className),
|
|
66
|
+
className: cn("size-4 rtl:rotate-180", className),
|
|
70
67
|
...props
|
|
71
68
|
});
|
|
72
69
|
if (orientation === "right") return /* @__PURE__ */ jsx(ChevronRightIcon, {
|
|
73
|
-
className: cn("size-4", className),
|
|
70
|
+
className: cn("size-4 rtl:rotate-180", className),
|
|
74
71
|
...props
|
|
75
72
|
});
|
|
76
73
|
return /* @__PURE__ */ jsx(ChevronDownIcon, {
|
|
@@ -78,10 +75,9 @@ function CalendarChevron({ className, orientation, ...props }) {
|
|
|
78
75
|
...props
|
|
79
76
|
});
|
|
80
77
|
}
|
|
81
|
-
function CalendarRoot({
|
|
78
|
+
function CalendarRoot({ rootRef, ...props }) {
|
|
82
79
|
return /* @__PURE__ */ jsx("div", {
|
|
83
80
|
ref: rootRef,
|
|
84
|
-
className: cn(className),
|
|
85
81
|
"data-slot": "calendar",
|
|
86
82
|
...props
|
|
87
83
|
});
|
|
@@ -90,7 +86,7 @@ function CalendarWeekNumber({ children, ...props }) {
|
|
|
90
86
|
return /* @__PURE__ */ jsx("td", {
|
|
91
87
|
...props,
|
|
92
88
|
children: /* @__PURE__ */ jsx("div", {
|
|
93
|
-
className:
|
|
89
|
+
className: "flex size-(--cell-size) items-center justify-center text-center",
|
|
94
90
|
children
|
|
95
91
|
})
|
|
96
92
|
});
|
|
@@ -98,7 +94,7 @@ function CalendarWeekNumber({ children, ...props }) {
|
|
|
98
94
|
/**
|
|
99
95
|
* @since 0.3.16-canary.0
|
|
100
96
|
*/
|
|
101
|
-
function CalendarDayButton({ className, day, modifiers, ...props }) {
|
|
97
|
+
function CalendarDayButton({ className, day, locale, modifiers, ...props }) {
|
|
102
98
|
const defaultClassNames = getDefaultClassNames();
|
|
103
99
|
const ref = useRef(null);
|
|
104
100
|
useEffect(() => {
|
|
@@ -106,8 +102,8 @@ function CalendarDayButton({ className, day, modifiers, ...props }) {
|
|
|
106
102
|
}, [modifiers.focused]);
|
|
107
103
|
return /* @__PURE__ */ jsx(Button, {
|
|
108
104
|
ref,
|
|
109
|
-
className: cn("flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal
|
|
110
|
-
"data-day": day.date.toLocaleDateString(),
|
|
105
|
+
className: cn("relative isolate z-10 flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 border-0 leading-none font-normal group-data-focused/day:relative group-data-focused/day:z-10 group-data-focused/day:border-ring group-data-focused/day:ring-3 group-data-focused/day:ring-ring/50 data-[range-end=true]:rounded-(--cell-radius) data-[range-end=true]:rounded-r-(--cell-radius) data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:rounded-none data-[range-middle=true]:bg-muted data-[range-middle=true]:text-foreground data-[range-start=true]:rounded-(--cell-radius) data-[range-start=true]:rounded-l-(--cell-radius) data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground dark:hover:text-foreground [&>span]:text-xs [&>span]:opacity-70", defaultClassNames.day, className),
|
|
106
|
+
"data-day": day.date.toLocaleDateString(locale?.code),
|
|
111
107
|
"data-range-end": modifiers.range_end,
|
|
112
108
|
"data-range-middle": modifiers.range_middle,
|
|
113
109
|
"data-range-start": modifiers.range_start,
|