@causw/core 0.0.21 → 0.0.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/avatar/defaultAvatar1.cjs +11 -0
- package/dist/assets/avatar/defaultAvatar1.mjs +6 -0
- package/dist/assets/avatar/defaultAvatar1.mjs.map +1 -0
- package/dist/assets/avatar/defaultAvatar2.cjs +11 -0
- package/dist/assets/avatar/defaultAvatar2.mjs +6 -0
- package/dist/assets/avatar/defaultAvatar2.mjs.map +1 -0
- package/dist/assets/avatar/defaultAvatar3.cjs +11 -0
- package/dist/assets/avatar/defaultAvatar3.mjs +6 -0
- package/dist/assets/avatar/defaultAvatar3.mjs.map +1 -0
- package/dist/assets/avatar/defaultAvatar4.cjs +11 -0
- package/dist/assets/avatar/defaultAvatar4.mjs +6 -0
- package/dist/assets/avatar/defaultAvatar4.mjs.map +1 -0
- package/dist/components/Avatar/Avatar.cjs +13 -3
- package/dist/components/Avatar/Avatar.d.cts +2 -2
- package/dist/components/Avatar/Avatar.d.cts.map +1 -1
- package/dist/components/Avatar/Avatar.d.mts +2 -2
- package/dist/components/Avatar/Avatar.d.mts.map +1 -1
- package/dist/components/Avatar/Avatar.mjs +13 -3
- package/dist/components/Avatar/Avatar.mjs.map +1 -1
- package/dist/components/Avatar/Avatar.styles.cjs +8 -6
- package/dist/components/Avatar/Avatar.styles.d.cts +36 -18
- package/dist/components/Avatar/Avatar.styles.d.cts.map +1 -1
- package/dist/components/Avatar/Avatar.styles.d.mts +36 -18
- package/dist/components/Avatar/Avatar.styles.d.mts.map +1 -1
- package/dist/components/Avatar/Avatar.styles.mjs +8 -6
- package/dist/components/Avatar/Avatar.styles.mjs.map +1 -1
- package/dist/components/BottomNavigation/BottomNavigation.d.cts +5 -5
- package/dist/components/BottomNavigation/BottomNavigation.d.mts +5 -5
- package/dist/components/BottomNavigation/BottomNavigation.styles.cjs +1 -1
- package/dist/components/BottomNavigation/BottomNavigation.styles.d.cts +3 -3
- package/dist/components/BottomNavigation/BottomNavigation.styles.d.mts +3 -3
- package/dist/components/BottomNavigation/BottomNavigation.styles.mjs +1 -1
- package/dist/components/BottomNavigation/BottomNavigation.styles.mjs.map +1 -1
- package/dist/components/BottomSheet/BottomSheet.d.cts +6 -6
- package/dist/components/BottomSheet/BottomSheet.d.mts +6 -6
- package/dist/components/Box/Box.styles.d.cts +3 -3
- package/dist/components/Box/Box.styles.d.mts +3 -3
- package/dist/components/Button/Button.d.cts +2 -2
- package/dist/components/Button/Button.styles.d.cts +3 -3
- package/dist/components/Button/Button.styles.d.mts +3 -3
- package/dist/components/CTAButton/CTAButton.d.cts +2 -2
- package/dist/components/CTAButton/CTAButton.styles.d.cts +3 -3
- package/dist/components/CTAButton/CTAButton.styles.d.mts +3 -3
- package/dist/components/Calendar/Calendar.cjs +49 -24
- package/dist/components/Calendar/Calendar.d.cts +4 -4
- package/dist/components/Calendar/Calendar.d.cts.map +1 -1
- package/dist/components/Calendar/Calendar.d.mts +4 -4
- package/dist/components/Calendar/Calendar.d.mts.map +1 -1
- package/dist/components/Calendar/Calendar.mjs +50 -24
- package/dist/components/Calendar/Calendar.mjs.map +1 -1
- package/dist/components/Calendar/Calendar.styles.cjs +28 -13
- package/dist/components/Calendar/Calendar.styles.d.cts +107 -11
- package/dist/components/Calendar/Calendar.styles.d.cts.map +1 -1
- package/dist/components/Calendar/Calendar.styles.d.mts +107 -11
- package/dist/components/Calendar/Calendar.styles.d.mts.map +1 -1
- package/dist/components/Calendar/Calendar.styles.mjs +28 -13
- package/dist/components/Calendar/Calendar.styles.mjs.map +1 -1
- package/dist/components/Checkbox/Checkbox.d.cts +4 -4
- package/dist/components/Checkbox/Checkbox.d.mts +4 -4
- package/dist/components/Checkbox/Checkbox.styles.d.cts +3 -3
- package/dist/components/Chip/Chip.d.cts +2 -2
- package/dist/components/Chip/Chip.d.mts +2 -2
- package/dist/components/Chip/Chip.styles.d.mts +3 -3
- package/dist/components/DatePicker/DatePicker.d.cts +2 -2
- package/dist/components/DatePicker/DatePicker.d.cts.map +1 -1
- package/dist/components/DatePicker/DatePicker.d.mts +2 -2
- package/dist/components/DatePicker/DatePicker.styles.d.cts +3 -3
- package/dist/components/DatePicker/DatePicker.styles.d.cts.map +1 -1
- package/dist/components/DatePicker/DatePicker.styles.d.mts +3 -3
- package/dist/components/Dialog/Dialog.d.cts +5 -5
- package/dist/components/Dialog/Dialog.d.mts +5 -5
- package/dist/components/Dialog/Dialog.styles.d.cts +3 -3
- package/dist/components/Dialog/Dialog.styles.d.cts.map +1 -1
- package/dist/components/Dialog/Dialog.styles.d.mts +3 -3
- package/dist/components/Dialog/Dialog.styles.d.mts.map +1 -1
- package/dist/components/Dropdown/Dropdown.d.cts +3 -3
- package/dist/components/Dropdown/Dropdown.d.mts +3 -3
- package/dist/components/Dropdown/Dropdown.styles.d.cts +3 -3
- package/dist/components/Dropdown/Dropdown.styles.d.mts +3 -3
- package/dist/components/Field/Field.d.cts +5 -5
- package/dist/components/Field/Field.d.mts +5 -5
- package/dist/components/Float/Float.styles.d.cts +3 -3
- package/dist/components/FloatingActionButton/FloatingActionButton.d.cts +2 -2
- package/dist/components/FloatingActionButton/FloatingActionButton.d.mts +2 -2
- package/dist/components/FloatingActionButton/FloatingActionButton.d.mts.map +1 -1
- package/dist/components/FloatingActionButton/FloatingActionButton.styles.d.cts +3 -3
- package/dist/components/FloatingActionButton/FloatingActionButton.styles.d.mts +3 -3
- package/dist/components/Grid/Grid.styles.d.cts +3 -3
- package/dist/components/Grid/Grid.styles.d.mts +3 -3
- package/dist/components/HStack/HStack.d.cts +2 -2
- package/dist/components/HStack/HStack.d.cts.map +1 -1
- package/dist/components/Modal/Modal.d.cts +7 -7
- package/dist/components/Modal/Modal.d.mts +10 -10
- package/dist/components/Modal/Modal.styles.d.cts +3 -3
- package/dist/components/Modal/Modal.styles.d.mts +3 -3
- package/dist/components/Primitive/Primitive.d.cts +16 -16
- package/dist/components/Primitive/Primitive.d.mts +16 -16
- package/dist/components/PullToRefresh/PullToRefresh.d.cts +2 -2
- package/dist/components/PullToRefresh/PullToRefresh.d.mts +2 -2
- package/dist/components/PullToRefresh/PullToRefresh.styles.d.cts +3 -3
- package/dist/components/PullToRefresh/PullToRefresh.styles.d.mts +3 -3
- package/dist/components/Radio/Radio.d.mts +3 -3
- package/dist/components/RatioChart/RatioChart.d.cts +5 -5
- package/dist/components/RatioChart/RatioChart.d.mts +5 -5
- package/dist/components/RatioChart/RatioChartEditor.d.cts +2 -2
- package/dist/components/RatioChart/RatioChartEditor.d.mts +2 -2
- package/dist/components/Select/Select.d.cts +5 -5
- package/dist/components/Select/Select.d.mts +5 -5
- package/dist/components/Select/Select.styles.d.cts +3 -3
- package/dist/components/Select/Select.styles.d.mts +3 -3
- package/dist/components/Separator/Separator.styles.d.cts +3 -3
- package/dist/components/Separator/Separator.styles.d.cts.map +1 -1
- package/dist/components/Separator/Separator.styles.d.mts +3 -3
- package/dist/components/Separator/Separator.styles.d.mts.map +1 -1
- package/dist/components/Sidebar/Sidebar.d.cts +8 -8
- package/dist/components/Sidebar/Sidebar.d.mts +8 -8
- package/dist/components/Sidebar/Sidebar.styles.d.cts +3 -3
- package/dist/components/Sidebar/Sidebar.styles.d.mts +3 -3
- package/dist/components/Skeleton/Skeleton.d.cts +2 -2
- package/dist/components/Skeleton/Skeleton.d.mts +2 -2
- package/dist/components/Skeleton/Skeleton.styles.d.cts +3 -3
- package/dist/components/Skeleton/Skeleton.styles.d.mts +3 -3
- package/dist/components/Spacer/Spacer.styles.d.cts +3 -3
- package/dist/components/Spacer/Spacer.styles.d.cts.map +1 -1
- package/dist/components/Spacer/Spacer.styles.d.mts +3 -3
- package/dist/components/Spinner/Spinner.d.cts +2 -2
- package/dist/components/Spinner/Spinner.d.mts +2 -2
- package/dist/components/Spinner/Spinner.styles.d.cts +3 -3
- package/dist/components/Spinner/Spinner.styles.d.mts +3 -3
- package/dist/components/Stack/Stack.styles.d.cts +3 -3
- package/dist/components/Stack/Stack.styles.d.mts +3 -3
- package/dist/components/Tab/Tab.d.cts +6 -6
- package/dist/components/Tab/Tab.d.mts +6 -6
- package/dist/components/Tab/Tab.styles.d.cts +3 -3
- package/dist/components/Tab/Tab.styles.d.mts +3 -3
- package/dist/components/Text/Text.d.cts +1 -1
- package/dist/components/Text/Text.d.mts +1 -1
- package/dist/components/Text/Text.styles.d.cts +3 -3
- package/dist/components/TextArea/TextArea.d.cts +4 -4
- package/dist/components/TextArea/TextArea.d.mts +4 -4
- package/dist/components/TextInput/TextInput.d.cts +2 -2
- package/dist/components/TextInput/TextInput.styles.d.cts +3 -3
- package/dist/components/Toast/Toast.d.cts +3 -3
- package/dist/components/Toast/Toast.d.mts +5 -5
- package/dist/components/Toast/Toast.styles.d.cts +3 -3
- package/dist/components/Toast/Toast.styles.d.mts +3 -3
- package/dist/components/Toast/index.d.cts +1 -3
- package/dist/components/Toast/index.d.mts +1 -3
- package/dist/components/Toggle/Toggle.d.cts +4 -4
- package/dist/components/Toggle/Toggle.d.mts +4 -4
- package/dist/components/Toggle/Toggle.d.mts.map +1 -1
- package/dist/components/Toggle/Toggle.styles.d.cts +3 -3
- package/dist/components/VStack/VStack.d.cts +2 -2
- package/dist/components/index.d.cts +0 -2
- package/dist/components/index.d.mts +0 -2
- package/dist/index.cjs +0 -4
- package/dist/index.d.cts +1 -3
- package/dist/index.d.mts +1 -3
- package/dist/index.mjs +1 -3
- package/package.json +3 -3
- package/dist/assets/avatar/default.cjs +0 -11
- package/dist/assets/avatar/default.mjs +0 -6
- package/dist/assets/avatar/default.mjs.map +0 -1
- package/dist/components/Toast/Toaster.cjs +0 -41
- package/dist/components/Toast/Toaster.d.cts +0 -7
- package/dist/components/Toast/Toaster.d.cts.map +0 -1
- package/dist/components/Toast/Toaster.d.mts +0 -7
- package/dist/components/Toast/Toaster.d.mts.map +0 -1
- package/dist/components/Toast/Toaster.mjs +0 -41
- package/dist/components/Toast/Toaster.mjs.map +0 -1
- package/dist/components/Toast/toastStore.cjs +0 -49
- package/dist/components/Toast/toastStore.d.cts +0 -19
- package/dist/components/Toast/toastStore.d.cts.map +0 -1
- package/dist/components/Toast/toastStore.d.mts +0 -19
- package/dist/components/Toast/toastStore.d.mts.map +0 -1
- package/dist/components/Toast/toastStore.mjs +0 -48
- package/dist/components/Toast/toastStore.mjs.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { HeaderAlign } from "./BottomSheet.styles.mjs";
|
|
2
2
|
import React from "react";
|
|
3
|
-
import * as
|
|
3
|
+
import * as react_jsx_runtime72 from "react/jsx-runtime";
|
|
4
4
|
import * as _radix_ui_react_dialog0 from "@radix-ui/react-dialog";
|
|
5
5
|
import { Drawer } from "vaul";
|
|
6
6
|
|
|
@@ -19,7 +19,7 @@ declare const BottomSheet: {
|
|
|
19
19
|
defaultOpen,
|
|
20
20
|
onOpenChange,
|
|
21
21
|
headerAlign
|
|
22
|
-
}: BottomSheetRootProps):
|
|
22
|
+
}: BottomSheetRootProps): react_jsx_runtime72.JSX.Element;
|
|
23
23
|
displayName: string;
|
|
24
24
|
} & {
|
|
25
25
|
Trigger: React.ForwardRefExoticComponent<_radix_ui_react_dialog0.DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
@@ -28,7 +28,7 @@ declare const BottomSheet: {
|
|
|
28
28
|
children,
|
|
29
29
|
className,
|
|
30
30
|
...props
|
|
31
|
-
}: React.ComponentProps<typeof Drawer.Content>):
|
|
31
|
+
}: React.ComponentProps<typeof Drawer.Content>): react_jsx_runtime72.JSX.Element;
|
|
32
32
|
displayName: string;
|
|
33
33
|
};
|
|
34
34
|
Header: {
|
|
@@ -38,7 +38,7 @@ declare const BottomSheet: {
|
|
|
38
38
|
}: {
|
|
39
39
|
title?: string;
|
|
40
40
|
className?: string;
|
|
41
|
-
}):
|
|
41
|
+
}): react_jsx_runtime72.JSX.Element;
|
|
42
42
|
displayName: string;
|
|
43
43
|
};
|
|
44
44
|
Body: {
|
|
@@ -50,7 +50,7 @@ declare const BottomSheet: {
|
|
|
50
50
|
children: React.ReactNode;
|
|
51
51
|
className?: string;
|
|
52
52
|
maxHeight?: string | number;
|
|
53
|
-
}):
|
|
53
|
+
}): react_jsx_runtime72.JSX.Element;
|
|
54
54
|
displayName: string;
|
|
55
55
|
};
|
|
56
56
|
Footer: {
|
|
@@ -60,7 +60,7 @@ declare const BottomSheet: {
|
|
|
60
60
|
}: {
|
|
61
61
|
children: React.ReactNode;
|
|
62
62
|
className?: string;
|
|
63
|
-
}):
|
|
63
|
+
}): react_jsx_runtime72.JSX.Element;
|
|
64
64
|
displayName: string;
|
|
65
65
|
};
|
|
66
66
|
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as tailwind_variants3 from "tailwind-variants";
|
|
2
2
|
import { VariantProps } from "tailwind-variants";
|
|
3
3
|
|
|
4
4
|
//#region src/components/Box/Box.styles.d.ts
|
|
5
|
-
declare const box:
|
|
5
|
+
declare const box: tailwind_variants3.TVReturnType<{
|
|
6
6
|
padding: {
|
|
7
7
|
none: string;
|
|
8
8
|
xs: string;
|
|
@@ -66,7 +66,7 @@ declare const box: tailwind_variants5.TVReturnType<{
|
|
|
66
66
|
inverse: string;
|
|
67
67
|
transparent: string;
|
|
68
68
|
};
|
|
69
|
-
}, undefined,
|
|
69
|
+
}, undefined, tailwind_variants3.TVReturnType<{
|
|
70
70
|
padding: {
|
|
71
71
|
none: string;
|
|
72
72
|
xs: string;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as tailwind_variants5 from "tailwind-variants";
|
|
2
2
|
import { VariantProps } from "tailwind-variants";
|
|
3
3
|
|
|
4
4
|
//#region src/components/Box/Box.styles.d.ts
|
|
5
|
-
declare const box:
|
|
5
|
+
declare const box: tailwind_variants5.TVReturnType<{
|
|
6
6
|
padding: {
|
|
7
7
|
none: string;
|
|
8
8
|
xs: string;
|
|
@@ -66,7 +66,7 @@ declare const box: tailwind_variants3.TVReturnType<{
|
|
|
66
66
|
inverse: string;
|
|
67
67
|
transparent: string;
|
|
68
68
|
};
|
|
69
|
-
}, undefined,
|
|
69
|
+
}, undefined, tailwind_variants5.TVReturnType<{
|
|
70
70
|
padding: {
|
|
71
71
|
none: string;
|
|
72
72
|
xs: string;
|
|
@@ -2,7 +2,7 @@ import { PrimitiveProps } from "../Primitive/Primitive.cjs";
|
|
|
2
2
|
import "../Primitive/index.cjs";
|
|
3
3
|
import { ButtonVariants } from "./Button.styles.cjs";
|
|
4
4
|
import { ComponentProps } from "react";
|
|
5
|
-
import * as
|
|
5
|
+
import * as react_jsx_runtime84 from "react/jsx-runtime";
|
|
6
6
|
|
|
7
7
|
//#region src/components/Button/Button.d.ts
|
|
8
8
|
interface ButtonProps extends Omit<ComponentProps<'button'>, 'color'>, ButtonVariants, PrimitiveProps {}
|
|
@@ -14,7 +14,7 @@ declare function Button({
|
|
|
14
14
|
className,
|
|
15
15
|
children,
|
|
16
16
|
...props
|
|
17
|
-
}: ButtonProps):
|
|
17
|
+
}: ButtonProps): react_jsx_runtime84.JSX.Element;
|
|
18
18
|
//#endregion
|
|
19
19
|
export { Button, ButtonProps };
|
|
20
20
|
//# sourceMappingURL=Button.d.cts.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as tailwind_variants57 from "tailwind-variants";
|
|
2
2
|
import { VariantProps } from "tailwind-variants";
|
|
3
3
|
|
|
4
4
|
//#region src/components/Button/Button.styles.d.ts
|
|
5
|
-
declare const button:
|
|
5
|
+
declare const button: tailwind_variants57.TVReturnType<{
|
|
6
6
|
size: {
|
|
7
7
|
sm: string;
|
|
8
8
|
md: string;
|
|
@@ -38,7 +38,7 @@ declare const button: tailwind_variants39.TVReturnType<{
|
|
|
38
38
|
true: string;
|
|
39
39
|
false: string;
|
|
40
40
|
};
|
|
41
|
-
}, undefined,
|
|
41
|
+
}, undefined, tailwind_variants57.TVReturnType<{
|
|
42
42
|
size: {
|
|
43
43
|
sm: string;
|
|
44
44
|
md: string;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as tailwind_variants39 from "tailwind-variants";
|
|
2
2
|
import { VariantProps } from "tailwind-variants";
|
|
3
3
|
|
|
4
4
|
//#region src/components/Button/Button.styles.d.ts
|
|
5
|
-
declare const button:
|
|
5
|
+
declare const button: tailwind_variants39.TVReturnType<{
|
|
6
6
|
size: {
|
|
7
7
|
sm: string;
|
|
8
8
|
md: string;
|
|
@@ -38,7 +38,7 @@ declare const button: tailwind_variants41.TVReturnType<{
|
|
|
38
38
|
true: string;
|
|
39
39
|
false: string;
|
|
40
40
|
};
|
|
41
|
-
}, undefined,
|
|
41
|
+
}, undefined, tailwind_variants39.TVReturnType<{
|
|
42
42
|
size: {
|
|
43
43
|
sm: string;
|
|
44
44
|
md: string;
|
|
@@ -2,7 +2,7 @@ import { PrimitiveProps } from "../Primitive/Primitive.cjs";
|
|
|
2
2
|
import "../Primitive/index.cjs";
|
|
3
3
|
import { CTAButtonVariants } from "./CTAButton.styles.cjs";
|
|
4
4
|
import { ComponentProps } from "react";
|
|
5
|
-
import * as
|
|
5
|
+
import * as react_jsx_runtime85 from "react/jsx-runtime";
|
|
6
6
|
|
|
7
7
|
//#region src/components/CTAButton/CTAButton.d.ts
|
|
8
8
|
interface CTAButtonProps extends Omit<ComponentProps<'button'>, 'color'>, PrimitiveProps, CTAButtonVariants {}
|
|
@@ -13,7 +13,7 @@ declare function CTAButton({
|
|
|
13
13
|
className,
|
|
14
14
|
children,
|
|
15
15
|
...props
|
|
16
|
-
}: CTAButtonProps):
|
|
16
|
+
}: CTAButtonProps): react_jsx_runtime85.JSX.Element;
|
|
17
17
|
//#endregion
|
|
18
18
|
export { CTAButton, CTAButtonProps };
|
|
19
19
|
//# sourceMappingURL=CTAButton.d.cts.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as tailwind_variants59 from "tailwind-variants";
|
|
2
2
|
import { VariantProps } from "tailwind-variants";
|
|
3
3
|
|
|
4
4
|
//#region src/components/CTAButton/CTAButton.styles.d.ts
|
|
5
|
-
declare const ctaButton:
|
|
5
|
+
declare const ctaButton: tailwind_variants59.TVReturnType<{
|
|
6
6
|
color: {
|
|
7
7
|
blue: string;
|
|
8
8
|
red: string;
|
|
@@ -34,7 +34,7 @@ declare const ctaButton: tailwind_variants37.TVReturnType<{
|
|
|
34
34
|
true: string;
|
|
35
35
|
false: string;
|
|
36
36
|
};
|
|
37
|
-
}, undefined,
|
|
37
|
+
}, undefined, tailwind_variants59.TVReturnType<{
|
|
38
38
|
color: {
|
|
39
39
|
blue: string;
|
|
40
40
|
red: string;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as tailwind_variants41 from "tailwind-variants";
|
|
2
2
|
import { VariantProps } from "tailwind-variants";
|
|
3
3
|
|
|
4
4
|
//#region src/components/CTAButton/CTAButton.styles.d.ts
|
|
5
|
-
declare const ctaButton:
|
|
5
|
+
declare const ctaButton: tailwind_variants41.TVReturnType<{
|
|
6
6
|
color: {
|
|
7
7
|
blue: string;
|
|
8
8
|
red: string;
|
|
@@ -34,7 +34,7 @@ declare const ctaButton: tailwind_variants43.TVReturnType<{
|
|
|
34
34
|
true: string;
|
|
35
35
|
false: string;
|
|
36
36
|
};
|
|
37
|
-
}, undefined,
|
|
37
|
+
}, undefined, tailwind_variants41.TVReturnType<{
|
|
38
38
|
color: {
|
|
39
39
|
blue: string;
|
|
40
40
|
red: string;
|
|
@@ -5,7 +5,6 @@ const require_Flex = require('../Flex/Flex.cjs');
|
|
|
5
5
|
const require_Grid = require('../Grid/Grid.cjs');
|
|
6
6
|
const require_Calendar_styles = require('./Calendar.styles.cjs');
|
|
7
7
|
let react = require("react");
|
|
8
|
-
react = require_rolldown_runtime.__toESM(react);
|
|
9
8
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
10
9
|
let _causw_icons = require("@causw/icons");
|
|
11
10
|
let date_fns = require("date-fns");
|
|
@@ -51,15 +50,42 @@ const Calendar = ({ className, events = [], defaultMonth = /* @__PURE__ */ new D
|
|
|
51
50
|
const { start, end } = getEventRange(event);
|
|
52
51
|
return start <= mEnd && end >= mStart;
|
|
53
52
|
});
|
|
53
|
+
relevantEvents.sort((a, b) => {
|
|
54
|
+
const aRange = getEventRange(a);
|
|
55
|
+
const bRange = getEventRange(b);
|
|
56
|
+
const aDur = (0, date_fns.differenceInCalendarDays)(aRange.end, aRange.start);
|
|
57
|
+
const bDur = (0, date_fns.differenceInCalendarDays)(bRange.end, bRange.start);
|
|
58
|
+
if (bDur !== aDur) return bDur - aDur;
|
|
59
|
+
return aRange.start.getTime() - bRange.start.getTime();
|
|
60
|
+
});
|
|
54
61
|
for (const event of relevantEvents) {
|
|
55
62
|
const { start, end } = getEventRange(event);
|
|
56
63
|
let d = start < mStart ? mStart : start;
|
|
57
64
|
const eventEndDate = end > mEnd ? mEnd : end;
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
65
|
+
let slot = 0;
|
|
66
|
+
let found = false;
|
|
67
|
+
while (!found) {
|
|
68
|
+
let isFree = true;
|
|
69
|
+
let tempD = new Date(d);
|
|
70
|
+
while (tempD <= eventEndDate) {
|
|
71
|
+
const dateKey = formatDateStr(tempD);
|
|
72
|
+
if ((map.get(dateKey) || [])[slot]) {
|
|
73
|
+
isFree = false;
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
tempD = (0, date_fns.addDays)(tempD, 1);
|
|
77
|
+
}
|
|
78
|
+
if (isFree) found = true;
|
|
79
|
+
else slot++;
|
|
80
|
+
}
|
|
81
|
+
let assignD = new Date(d);
|
|
82
|
+
while (assignD <= eventEndDate) {
|
|
83
|
+
const dateKey = formatDateStr(assignD);
|
|
84
|
+
const dailySlots = map.get(dateKey) || [];
|
|
85
|
+
while (dailySlots.length <= slot) dailySlots.push(null);
|
|
86
|
+
dailySlots[slot] = event;
|
|
87
|
+
map.set(dateKey, dailySlots);
|
|
88
|
+
assignD = (0, date_fns.addDays)(assignD, 1);
|
|
63
89
|
}
|
|
64
90
|
}
|
|
65
91
|
return map;
|
|
@@ -142,39 +168,38 @@ const Calendar = ({ className, events = [], defaultMonth = /* @__PURE__ */ new D
|
|
|
142
168
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Flex.Flex, {
|
|
143
169
|
className: eventList(),
|
|
144
170
|
children: daysEvents.map((ev, idx) => {
|
|
171
|
+
if (!ev) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: eventItemHeight() }, `empty-${idx}`);
|
|
145
172
|
const { start, end } = getEventRange(ev);
|
|
146
173
|
const currentDayIndex = (0, date_fns.getDay)(currentDate);
|
|
147
174
|
const weekStart = (0, date_fns.subDays)(currentDate, currentDayIndex);
|
|
148
175
|
const weekEnd = (0, date_fns.addDays)(currentDate, 6 - currentDayIndex);
|
|
149
176
|
const segmentStart = start < weekStart ? weekStart : start;
|
|
150
177
|
const segmentDuration = (0, date_fns.differenceInCalendarDays)(end > weekEnd ? weekEnd : end, segmentStart) + 1;
|
|
151
|
-
const
|
|
178
|
+
const indexInSegment = (0, date_fns.differenceInCalendarDays)(currentDate, segmentStart);
|
|
152
179
|
const startDateKey = formatDateStr(start);
|
|
153
180
|
const endDateKey = formatDateStr(end);
|
|
154
|
-
const
|
|
155
|
-
const
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
require_Calendar_styles.eventBarStyles.variants[ev.type],
|
|
162
|
-
isSingleDay ? "mx-[2px] !w-[calc(100%-4px)] rounded-[4px]" : "",
|
|
163
|
-
!isSingleDay && isStartEvent ? "mr-0 ml-[2px] !w-[calc(100%-2px)] rounded-l-[4px] rounded-r-none" : "",
|
|
164
|
-
!isSingleDay && isEndEvent ? "mr-[2px] ml-0 !w-[calc(100%-2px)] rounded-l-none rounded-r-[4px]" : "",
|
|
165
|
-
!isSingleDay && !isStartEvent && !isEndEvent ? "mx-0 w-full rounded-none" : ""
|
|
166
|
-
]),
|
|
181
|
+
const blockPosition = startDateKey === endDateKey ? "single" : dateKey === startDateKey ? "start" : dateKey === endDateKey ? "end" : "middle";
|
|
182
|
+
const { wrapper: eventWrapper, bgBar, textLayer, textSpan } = require_Calendar_styles.eventBarStyles({
|
|
183
|
+
type: ev.type,
|
|
184
|
+
position: blockPosition
|
|
185
|
+
});
|
|
186
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
187
|
+
className: require_mergeStyles.mergeStyles(eventWrapper(), eventItemHeight()),
|
|
167
188
|
onClick: (e) => {
|
|
168
189
|
e.stopPropagation();
|
|
169
190
|
onEventClick?.(ev);
|
|
170
191
|
},
|
|
171
|
-
children:
|
|
172
|
-
className:
|
|
192
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: bgBar() }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
193
|
+
className: textLayer(),
|
|
194
|
+
style: {
|
|
195
|
+
width: `calc(${segmentDuration} * 100%)`,
|
|
196
|
+
left: `calc(-${indexInSegment} * 100%)`
|
|
197
|
+
},
|
|
173
198
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
174
|
-
className:
|
|
199
|
+
className: textSpan(),
|
|
175
200
|
children: ev.title
|
|
176
201
|
})
|
|
177
|
-
})
|
|
202
|
+
})]
|
|
178
203
|
}, `${ev.id}-${idx}`);
|
|
179
204
|
})
|
|
180
205
|
})]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { CalendarVariants,
|
|
2
|
-
import * as
|
|
1
|
+
import { CalendarVariants, EventBarStylesVariants } from "./Calendar.styles.cjs";
|
|
2
|
+
import * as react_jsx_runtime45 from "react/jsx-runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/components/Calendar/Calendar.d.ts
|
|
5
5
|
type CalendarEvent = {
|
|
@@ -7,7 +7,7 @@ type CalendarEvent = {
|
|
|
7
7
|
title: string;
|
|
8
8
|
startDate: string;
|
|
9
9
|
endDate?: string;
|
|
10
|
-
type:
|
|
10
|
+
type: NonNullable<EventBarStylesVariants['type']>;
|
|
11
11
|
};
|
|
12
12
|
interface CalendarProps extends CalendarVariants {
|
|
13
13
|
className?: string;
|
|
@@ -34,7 +34,7 @@ declare const Calendar: {
|
|
|
34
34
|
onDateClick,
|
|
35
35
|
onEventClick,
|
|
36
36
|
enableHover
|
|
37
|
-
}: CalendarProps):
|
|
37
|
+
}: CalendarProps): react_jsx_runtime45.JSX.Element;
|
|
38
38
|
displayName: string;
|
|
39
39
|
};
|
|
40
40
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.d.cts","names":[],"sources":["../../../src/components/Calendar/Calendar.tsx"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"Calendar.d.cts","names":[],"sources":["../../../src/components/Calendar/Calendar.tsx"],"mappings":";;;;KA8BY,aAAA;EACV,EAAA;EACA,KAAA;EACA,SAAA;EACA,OAAA;EACA,IAAA,EAAM,WAAA,CAAY,sBAAA;AAAA;AAAA,UAGH,aAAA,SAAsB,gBAAA;EACrC,SAAA;EACA,MAAA,GAAS,aAAA;EACT,YAAA,GAAe,IAAA;EACf,KAAA,GAAQ,IAAA;EACR,SAAA;EACA,iBAAA,GAAoB,IAAA;EACpB,eAAA,GAAkB,IAAA;EAClB,WAAA,IAAe,IAAA,EAAM,IAAA;EACrB,YAAA,IAAgB,KAAA,EAAO,aAAA;EACvB,WAAA;AAAA;AAAA,cAeW,QAAA;EAAA;;;;;;;;;;;;KAYV,aAAA,GAAa,mBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { CalendarVariants,
|
|
2
|
-
import * as
|
|
1
|
+
import { CalendarVariants, EventBarStylesVariants } from "./Calendar.styles.mjs";
|
|
2
|
+
import * as react_jsx_runtime82 from "react/jsx-runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/components/Calendar/Calendar.d.ts
|
|
5
5
|
type CalendarEvent = {
|
|
@@ -7,7 +7,7 @@ type CalendarEvent = {
|
|
|
7
7
|
title: string;
|
|
8
8
|
startDate: string;
|
|
9
9
|
endDate?: string;
|
|
10
|
-
type:
|
|
10
|
+
type: NonNullable<EventBarStylesVariants['type']>;
|
|
11
11
|
};
|
|
12
12
|
interface CalendarProps extends CalendarVariants {
|
|
13
13
|
className?: string;
|
|
@@ -34,7 +34,7 @@ declare const Calendar: {
|
|
|
34
34
|
onDateClick,
|
|
35
35
|
onEventClick,
|
|
36
36
|
enableHover
|
|
37
|
-
}: CalendarProps):
|
|
37
|
+
}: CalendarProps): react_jsx_runtime82.JSX.Element;
|
|
38
38
|
displayName: string;
|
|
39
39
|
};
|
|
40
40
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.d.mts","names":[],"sources":["../../../src/components/Calendar/Calendar.tsx"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"Calendar.d.mts","names":[],"sources":["../../../src/components/Calendar/Calendar.tsx"],"mappings":";;;;KA8BY,aAAA;EACV,EAAA;EACA,KAAA;EACA,SAAA;EACA,OAAA;EACA,IAAA,EAAM,WAAA,CAAY,sBAAA;AAAA;AAAA,UAGH,aAAA,SAAsB,gBAAA;EACrC,SAAA;EACA,MAAA,GAAS,aAAA;EACT,YAAA,GAAe,IAAA;EACf,KAAA,GAAQ,IAAA;EACR,SAAA;EACA,iBAAA,GAAoB,IAAA;EACpB,eAAA,GAAkB,IAAA;EAClB,WAAA,IAAe,IAAA,EAAM,IAAA;EACrB,YAAA,IAAgB,KAAA,EAAO,aAAA;EACvB,WAAA;AAAA;AAAA,cAeW,QAAA;EAAA;;;;;;;;;;;;KAYV,aAAA,GAAa,mBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -3,7 +3,7 @@ import { Box } from "../Box/Box.mjs";
|
|
|
3
3
|
import { Flex } from "../Flex/Flex.mjs";
|
|
4
4
|
import { Grid } from "../Grid/Grid.mjs";
|
|
5
5
|
import { calendar, eventBarStyles } from "./Calendar.styles.mjs";
|
|
6
|
-
import
|
|
6
|
+
import { useMemo, useState } from "react";
|
|
7
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
8
|
import { ChevronLeft, ChevronRight } from "@causw/icons";
|
|
9
9
|
import { addDays, addMonths, differenceInCalendarDays, endOfMonth, format, getDay, getDaysInMonth, isSameDay, isWithinInterval, startOfMonth, subDays, subMonths } from "date-fns";
|
|
@@ -49,15 +49,42 @@ const Calendar = ({ className, events = [], defaultMonth = /* @__PURE__ */ new D
|
|
|
49
49
|
const { start, end } = getEventRange(event);
|
|
50
50
|
return start <= mEnd && end >= mStart;
|
|
51
51
|
});
|
|
52
|
+
relevantEvents.sort((a, b) => {
|
|
53
|
+
const aRange = getEventRange(a);
|
|
54
|
+
const bRange = getEventRange(b);
|
|
55
|
+
const aDur = differenceInCalendarDays(aRange.end, aRange.start);
|
|
56
|
+
const bDur = differenceInCalendarDays(bRange.end, bRange.start);
|
|
57
|
+
if (bDur !== aDur) return bDur - aDur;
|
|
58
|
+
return aRange.start.getTime() - bRange.start.getTime();
|
|
59
|
+
});
|
|
52
60
|
for (const event of relevantEvents) {
|
|
53
61
|
const { start, end } = getEventRange(event);
|
|
54
62
|
let d = start < mStart ? mStart : start;
|
|
55
63
|
const eventEndDate = end > mEnd ? mEnd : end;
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
64
|
+
let slot = 0;
|
|
65
|
+
let found = false;
|
|
66
|
+
while (!found) {
|
|
67
|
+
let isFree = true;
|
|
68
|
+
let tempD = new Date(d);
|
|
69
|
+
while (tempD <= eventEndDate) {
|
|
70
|
+
const dateKey = formatDateStr(tempD);
|
|
71
|
+
if ((map.get(dateKey) || [])[slot]) {
|
|
72
|
+
isFree = false;
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
tempD = addDays(tempD, 1);
|
|
76
|
+
}
|
|
77
|
+
if (isFree) found = true;
|
|
78
|
+
else slot++;
|
|
79
|
+
}
|
|
80
|
+
let assignD = new Date(d);
|
|
81
|
+
while (assignD <= eventEndDate) {
|
|
82
|
+
const dateKey = formatDateStr(assignD);
|
|
83
|
+
const dailySlots = map.get(dateKey) || [];
|
|
84
|
+
while (dailySlots.length <= slot) dailySlots.push(null);
|
|
85
|
+
dailySlots[slot] = event;
|
|
86
|
+
map.set(dateKey, dailySlots);
|
|
87
|
+
assignD = addDays(assignD, 1);
|
|
61
88
|
}
|
|
62
89
|
}
|
|
63
90
|
return map;
|
|
@@ -140,39 +167,38 @@ const Calendar = ({ className, events = [], defaultMonth = /* @__PURE__ */ new D
|
|
|
140
167
|
}), /* @__PURE__ */ jsx(Flex, {
|
|
141
168
|
className: eventList(),
|
|
142
169
|
children: daysEvents.map((ev, idx) => {
|
|
170
|
+
if (!ev) return /* @__PURE__ */ jsx("div", { className: eventItemHeight() }, `empty-${idx}`);
|
|
143
171
|
const { start, end } = getEventRange(ev);
|
|
144
172
|
const currentDayIndex = getDay(currentDate);
|
|
145
173
|
const weekStart = subDays(currentDate, currentDayIndex);
|
|
146
174
|
const weekEnd = addDays(currentDate, 6 - currentDayIndex);
|
|
147
175
|
const segmentStart = start < weekStart ? weekStart : start;
|
|
148
176
|
const segmentDuration = differenceInCalendarDays(end > weekEnd ? weekEnd : end, segmentStart) + 1;
|
|
149
|
-
const
|
|
177
|
+
const indexInSegment = differenceInCalendarDays(currentDate, segmentStart);
|
|
150
178
|
const startDateKey = formatDateStr(start);
|
|
151
179
|
const endDateKey = formatDateStr(end);
|
|
152
|
-
const
|
|
153
|
-
const
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
eventBarStyles.variants[ev.type],
|
|
160
|
-
isSingleDay ? "mx-[2px] !w-[calc(100%-4px)] rounded-[4px]" : "",
|
|
161
|
-
!isSingleDay && isStartEvent ? "mr-0 ml-[2px] !w-[calc(100%-2px)] rounded-l-[4px] rounded-r-none" : "",
|
|
162
|
-
!isSingleDay && isEndEvent ? "mr-[2px] ml-0 !w-[calc(100%-2px)] rounded-l-none rounded-r-[4px]" : "",
|
|
163
|
-
!isSingleDay && !isStartEvent && !isEndEvent ? "mx-0 w-full rounded-none" : ""
|
|
164
|
-
]),
|
|
180
|
+
const blockPosition = startDateKey === endDateKey ? "single" : dateKey === startDateKey ? "start" : dateKey === endDateKey ? "end" : "middle";
|
|
181
|
+
const { wrapper: eventWrapper, bgBar, textLayer, textSpan } = eventBarStyles({
|
|
182
|
+
type: ev.type,
|
|
183
|
+
position: blockPosition
|
|
184
|
+
});
|
|
185
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
186
|
+
className: mergeStyles(eventWrapper(), eventItemHeight()),
|
|
165
187
|
onClick: (e) => {
|
|
166
188
|
e.stopPropagation();
|
|
167
189
|
onEventClick?.(ev);
|
|
168
190
|
},
|
|
169
|
-
children:
|
|
170
|
-
className:
|
|
191
|
+
children: [/* @__PURE__ */ jsx("div", { className: bgBar() }), /* @__PURE__ */ jsx("div", {
|
|
192
|
+
className: textLayer(),
|
|
193
|
+
style: {
|
|
194
|
+
width: `calc(${segmentDuration} * 100%)`,
|
|
195
|
+
left: `calc(-${indexInSegment} * 100%)`
|
|
196
|
+
},
|
|
171
197
|
children: /* @__PURE__ */ jsx("span", {
|
|
172
|
-
className:
|
|
198
|
+
className: textSpan(),
|
|
173
199
|
children: ev.title
|
|
174
200
|
})
|
|
175
|
-
})
|
|
201
|
+
})]
|
|
176
202
|
}, `${ev.id}-${idx}`);
|
|
177
203
|
})
|
|
178
204
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.mjs","names":[],"sources":["../../../src/components/Calendar/Calendar.tsx"],"sourcesContent":["import React, { useMemo, useState } from 'react';\nimport {\n format,\n addMonths,\n subMonths,\n startOfMonth,\n endOfMonth,\n addDays,\n subDays,\n getDay,\n getDaysInMonth,\n isSameDay,\n isWithinInterval,\n differenceInCalendarDays,\n} from 'date-fns';\nimport { ko } from 'date-fns/locale';\n\nimport { Box } from '../Box';\nimport { Flex } from '../Flex';\nimport { Grid } from '../Grid';\nimport { ChevronLeft, ChevronRight } from '@causw/icons';\n\nimport {\n calendar,\n eventBarStyles,\n type CalendarVariants,\n} from './Calendar.styles';\nimport { mergeStyles } from '../../utils';\n\nexport type CalendarEvent = {\n id: string | number;\n title: string;\n startDate: string;\n endDate?: string;\n type: keyof typeof eventBarStyles.variants;\n};\n\nexport interface CalendarProps extends CalendarVariants {\n className?: string;\n events?: CalendarEvent[];\n defaultMonth?: Date;\n today?: Date;\n showToday?: boolean;\n selectedStartDate?: Date;\n selectedEndDate?: Date;\n onDateClick?: (date: Date) => void;\n onEventClick?: (event: CalendarEvent) => void;\n enableHover?: boolean;\n}\n\nconst parseDateStr = (dateStr: string) => {\n const [y, m, d] = dateStr.split('-').map(Number);\n return new Date(y, m - 1, d);\n};\nconst formatDateStr = (date: Date) => format(date, 'yyyy-MM-dd');\n\nconst getEventRange = (event: CalendarEvent) => {\n const start = parseDateStr(event.startDate);\n const end = event.endDate ? parseDateStr(event.endDate) : start;\n return { start, end };\n};\n\nexport const Calendar = ({\n className,\n events = [],\n defaultMonth = new Date(),\n today = new Date(),\n showToday = true,\n size,\n selectedStartDate,\n selectedEndDate,\n onDateClick,\n onEventClick,\n enableHover = false,\n}: CalendarProps) => {\n const {\n wrapper,\n layoutContainer,\n header,\n navContainerLeft,\n navContainerRight,\n navButton,\n navIcon,\n caption,\n gridHeader,\n weekday,\n gridBody,\n cell,\n cellEmpty,\n eventList,\n eventItemHeight,\n } = calendar({ size, hoverEffect: enableHover });\n\n const [currentMonth, setCurrentMonth] = useState(defaultMonth);\n const totalDays = getDaysInMonth(currentMonth);\n const startDayIndex = getDay(startOfMonth(currentMonth));\n const weekDays = ['일', '월', '화', '수', '목', '금', '토'];\n\n const handlePrevMonth = () => setCurrentMonth((prev) => subMonths(prev, 1));\n const handleNextMonth = () => setCurrentMonth((prev) => addMonths(prev, 1));\n\n const eventsByDate = useMemo(() => {\n const map = new Map<string, CalendarEvent[]>();\n const mStart = startOfMonth(currentMonth);\n const mEnd = endOfMonth(currentMonth);\n\n const relevantEvents = events.filter((event) => {\n const { start, end } = getEventRange(event);\n return start <= mEnd && end >= mStart;\n });\n\n for (const event of relevantEvents) {\n const { start, end } = getEventRange(event);\n let d = start < mStart ? mStart : start;\n const eventEndDate = end > mEnd ? mEnd : end;\n\n while (d <= eventEndDate) {\n const dateKey = formatDateStr(d);\n const dailyEvents = map.get(dateKey) ?? [];\n map.set(dateKey, [...dailyEvents, event]);\n d = addDays(d, 1);\n }\n }\n return map;\n }, [currentMonth, events]);\n\n return (\n <Box className={wrapper({ className })}>\n <Box className={layoutContainer()}>\n <Grid columns={7} className={header()}>\n <Flex className={navContainerLeft()}>\n <button\n onClick={handlePrevMonth}\n className={navButton()}\n type=\"button\"\n >\n <ChevronLeft className={navIcon()} />\n </button>\n </Flex>\n <Box className=\"col-span-5 flex items-center justify-center\">\n <span className={caption()}>\n {format(currentMonth, 'yyyy년 M월', { locale: ko })}\n </span>\n </Box>\n <Flex className={navContainerRight()}>\n <button\n onClick={handleNextMonth}\n className={navButton()}\n type=\"button\"\n >\n <ChevronRight className={navIcon()} />\n </button>\n </Flex>\n </Grid>\n\n <Grid columns={7} className={gridHeader()}>\n {weekDays.map((day) => (\n <Flex\n key={day}\n justify=\"center\"\n align=\"center\"\n className={weekday()}\n >\n {day}\n </Flex>\n ))}\n </Grid>\n\n <Grid columns={7} className={gridBody()}>\n {Array.from({ length: startDayIndex }).map((_, i) => (\n <Box key={`empty-${i}`} className={cellEmpty()} />\n ))}\n\n {Array.from({ length: totalDays }).map((_, i) => {\n const day = i + 1;\n const currentDate = new Date(\n currentMonth.getFullYear(),\n currentMonth.getMonth(),\n day,\n );\n const dateKey = formatDateStr(currentDate);\n\n const daysEvents = eventsByDate.get(dateKey) || [];\n\n const isToday = showToday && isSameDay(currentDate, today);\n const isStart =\n selectedStartDate && isSameDay(currentDate, selectedStartDate);\n const isEnd =\n selectedEndDate && isSameDay(currentDate, selectedEndDate);\n const isBetween =\n selectedStartDate &&\n selectedEndDate &&\n isWithinInterval(currentDate, {\n start: selectedStartDate,\n end: selectedEndDate,\n }) &&\n !isStart &&\n !isEnd;\n\n let selectionState:\n | 'none'\n | 'today'\n | 'selected'\n | 'range'\n | 'rangeStart'\n | 'rangeEnd' = 'none';\n if (isStart) selectionState = 'selected';\n else if (isEnd) selectionState = 'selected';\n else if (isBetween) selectionState = 'range';\n else if (isToday) selectionState = 'today';\n\n return (\n <Flex\n key={day}\n direction=\"column\"\n align=\"center\"\n justify=\"start\"\n className={cell()}\n onClick={() => onDateClick?.(currentDate)}\n >\n <span className={calendar({ selectionState }).dayNumber()}>\n {day}\n </span>\n <Flex className={eventList()}>\n {daysEvents.map((ev, idx) => {\n const { start, end } = getEventRange(ev);\n\n const currentDayIndex = getDay(currentDate);\n const weekStart = subDays(currentDate, currentDayIndex);\n const weekEnd = addDays(currentDate, 6 - currentDayIndex);\n\n const segmentStart = start < weekStart ? weekStart : start;\n const segmentEnd = end > weekEnd ? weekEnd : end;\n const segmentDuration =\n differenceInCalendarDays(segmentEnd, segmentStart) + 1;\n const indexInSegment = differenceInCalendarDays(\n currentDate,\n segmentStart,\n );\n\n const targetIndex = Math.floor((segmentDuration - 1) / 2);\n const isRenderCell = indexInSegment === targetIndex;\n\n const startDateKey = formatDateStr(start);\n const endDateKey = formatDateStr(end);\n const isStartEvent = dateKey === startDateKey;\n const isEndEvent = dateKey === endDateKey;\n const isSingleDay = startDateKey === endDateKey;\n\n return (\n <div\n key={`${ev.id}-${idx}`}\n className={mergeStyles([\n 'relative w-full',\n eventItemHeight(),\n eventBarStyles.variants[ev.type],\n isSingleDay\n ? 'mx-[2px] !w-[calc(100%-4px)] rounded-[4px]'\n : '',\n !isSingleDay && isStartEvent\n ? 'mr-0 ml-[2px] !w-[calc(100%-2px)] rounded-l-[4px] rounded-r-none'\n : '',\n !isSingleDay && isEndEvent\n ? 'mr-[2px] ml-0 !w-[calc(100%-2px)] rounded-l-none rounded-r-[4px]'\n : '',\n !isSingleDay && !isStartEvent && !isEndEvent\n ? 'mx-0 w-full rounded-none'\n : '',\n ])}\n onClick={(e) => {\n e.stopPropagation();\n onEventClick?.(ev);\n }}\n >\n {isRenderCell && (\n <div className={eventBarStyles.textWrapper}>\n <span className=\"block w-full truncate px-1 text-center\">\n {ev.title}\n </span>\n </div>\n )}\n </div>\n );\n })}\n </Flex>\n </Flex>\n );\n })}\n </Grid>\n </Box>\n </Box>\n );\n};\nCalendar.displayName = 'Calendar';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Calendar.mjs","names":[],"sources":["../../../src/components/Calendar/Calendar.tsx"],"sourcesContent":["import { useMemo, useState } from 'react';\nimport {\n format,\n addMonths,\n subMonths,\n startOfMonth,\n endOfMonth,\n addDays,\n subDays,\n getDay,\n getDaysInMonth,\n isSameDay,\n isWithinInterval,\n differenceInCalendarDays,\n} from 'date-fns';\nimport { ko } from 'date-fns/locale';\n\nimport { Box } from '../Box';\nimport { Flex } from '../Flex';\nimport { Grid } from '../Grid';\nimport { ChevronLeft, ChevronRight } from '@causw/icons';\n\nimport {\n calendar,\n eventBarStyles,\n type EventBarStylesVariants,\n type CalendarVariants,\n} from './Calendar.styles';\nimport { mergeStyles } from '../../utils';\n\nexport type CalendarEvent = {\n id: string | number;\n title: string;\n startDate: string;\n endDate?: string;\n type: NonNullable<EventBarStylesVariants['type']>;\n};\n\nexport interface CalendarProps extends CalendarVariants {\n className?: string;\n events?: CalendarEvent[];\n defaultMonth?: Date;\n today?: Date;\n showToday?: boolean;\n selectedStartDate?: Date;\n selectedEndDate?: Date;\n onDateClick?: (date: Date) => void;\n onEventClick?: (event: CalendarEvent) => void;\n enableHover?: boolean;\n}\n\nconst parseDateStr = (dateStr: string) => {\n const [y, m, d] = dateStr.split('-').map(Number);\n return new Date(y, m - 1, d);\n};\nconst formatDateStr = (date: Date) => format(date, 'yyyy-MM-dd');\n\nconst getEventRange = (event: CalendarEvent) => {\n const start = parseDateStr(event.startDate);\n const end = event.endDate ? parseDateStr(event.endDate) : start;\n return { start, end };\n};\n\nexport const Calendar = ({\n className,\n events = [],\n defaultMonth = new Date(),\n today = new Date(),\n showToday = true,\n size,\n selectedStartDate,\n selectedEndDate,\n onDateClick,\n onEventClick,\n enableHover = false,\n}: CalendarProps) => {\n const {\n wrapper,\n layoutContainer,\n header,\n navContainerLeft,\n navContainerRight,\n navButton,\n navIcon,\n caption,\n gridHeader,\n weekday,\n gridBody,\n cell,\n cellEmpty,\n eventList,\n eventItemHeight,\n } = calendar({ size, hoverEffect: enableHover });\n\n const [currentMonth, setCurrentMonth] = useState(defaultMonth);\n const totalDays = getDaysInMonth(currentMonth);\n const startDayIndex = getDay(startOfMonth(currentMonth));\n const weekDays = ['일', '월', '화', '수', '목', '금', '토'];\n\n const handlePrevMonth = () => setCurrentMonth((prev) => subMonths(prev, 1));\n const handleNextMonth = () => setCurrentMonth((prev) => addMonths(prev, 1));\n\n const eventsByDate = useMemo(() => {\n const map = new Map<string, (CalendarEvent | null)[]>();\n const mStart = startOfMonth(currentMonth);\n const mEnd = endOfMonth(currentMonth);\n\n const relevantEvents = events.filter((event) => {\n const { start, end } = getEventRange(event);\n return start <= mEnd && end >= mStart;\n });\n\n relevantEvents.sort((a, b) => {\n const aRange = getEventRange(a);\n const bRange = getEventRange(b);\n const aDur = differenceInCalendarDays(aRange.end, aRange.start);\n const bDur = differenceInCalendarDays(bRange.end, bRange.start);\n if (bDur !== aDur) return bDur - aDur;\n return aRange.start.getTime() - bRange.start.getTime();\n });\n\n for (const event of relevantEvents) {\n const { start, end } = getEventRange(event);\n let d = start < mStart ? mStart : start;\n const eventEndDate = end > mEnd ? mEnd : end;\n\n let slot = 0;\n let found = false;\n while (!found) {\n let isFree = true;\n let tempD = new Date(d);\n while (tempD <= eventEndDate) {\n const dateKey = formatDateStr(tempD);\n const dailySlots = map.get(dateKey) || [];\n if (dailySlots[slot]) {\n isFree = false;\n break;\n }\n tempD = addDays(tempD, 1);\n }\n if (isFree) found = true;\n else slot++;\n }\n\n let assignD = new Date(d);\n while (assignD <= eventEndDate) {\n const dateKey = formatDateStr(assignD);\n const dailySlots = map.get(dateKey) || [];\n\n while (dailySlots.length <= slot) dailySlots.push(null);\n dailySlots[slot] = event;\n map.set(dateKey, dailySlots);\n assignD = addDays(assignD, 1);\n }\n }\n return map;\n }, [currentMonth, events]);\n\n return (\n <Box className={wrapper({ className })}>\n <Box className={layoutContainer()}>\n <Grid columns={7} className={header()}>\n <Flex className={navContainerLeft()}>\n <button\n onClick={handlePrevMonth}\n className={navButton()}\n type=\"button\"\n >\n <ChevronLeft className={navIcon()} />\n </button>\n </Flex>\n <Box className=\"col-span-5 flex items-center justify-center\">\n <span className={caption()}>\n {format(currentMonth, 'yyyy년 M월', { locale: ko })}\n </span>\n </Box>\n <Flex className={navContainerRight()}>\n <button\n onClick={handleNextMonth}\n className={navButton()}\n type=\"button\"\n >\n <ChevronRight className={navIcon()} />\n </button>\n </Flex>\n </Grid>\n\n <Grid columns={7} className={gridHeader()}>\n {weekDays.map((day) => (\n <Flex\n key={day}\n justify=\"center\"\n align=\"center\"\n className={weekday()}\n >\n {day}\n </Flex>\n ))}\n </Grid>\n\n <Grid columns={7} className={gridBody()}>\n {Array.from({ length: startDayIndex }).map((_, i) => (\n <Box key={`empty-${i}`} className={cellEmpty()} />\n ))}\n\n {Array.from({ length: totalDays }).map((_, i) => {\n const day = i + 1;\n const currentDate = new Date(\n currentMonth.getFullYear(),\n currentMonth.getMonth(),\n day,\n );\n const dateKey = formatDateStr(currentDate);\n\n const daysEvents = eventsByDate.get(dateKey) || [];\n\n const isToday = showToday && isSameDay(currentDate, today);\n const isStart =\n selectedStartDate && isSameDay(currentDate, selectedStartDate);\n const isEnd =\n selectedEndDate && isSameDay(currentDate, selectedEndDate);\n const isBetween =\n selectedStartDate &&\n selectedEndDate &&\n isWithinInterval(currentDate, {\n start: selectedStartDate,\n end: selectedEndDate,\n }) &&\n !isStart &&\n !isEnd;\n\n let selectionState:\n | 'none'\n | 'today'\n | 'selected'\n | 'range'\n | 'rangeStart'\n | 'rangeEnd' = 'none';\n if (isStart) selectionState = 'selected';\n else if (isEnd) selectionState = 'selected';\n else if (isBetween) selectionState = 'range';\n else if (isToday) selectionState = 'today';\n\n return (\n <Flex\n key={day}\n direction=\"column\"\n align=\"center\"\n justify=\"start\"\n className={cell()}\n onClick={() => onDateClick?.(currentDate)}\n >\n <span className={calendar({ selectionState }).dayNumber()}>\n {day}\n </span>\n <Flex className={eventList()}>\n {daysEvents.map((ev, idx) => {\n if (!ev) {\n return (\n <div\n key={`empty-${idx}`}\n className={eventItemHeight()}\n />\n );\n }\n\n const { start, end } = getEventRange(ev);\n const currentDayIndex = getDay(currentDate);\n const weekStart = subDays(currentDate, currentDayIndex);\n const weekEnd = addDays(currentDate, 6 - currentDayIndex);\n const segmentStart = start < weekStart ? weekStart : start;\n const segmentEnd = end > weekEnd ? weekEnd : end;\n const segmentDuration =\n differenceInCalendarDays(segmentEnd, segmentStart) + 1;\n const indexInSegment = differenceInCalendarDays(\n currentDate,\n segmentStart,\n );\n\n const startDateKey = formatDateStr(start);\n const endDateKey = formatDateStr(end);\n const isStartEvent = dateKey === startDateKey;\n const isEndEvent = dateKey === endDateKey;\n const isSingleDay = startDateKey === endDateKey;\n const blockPosition = isSingleDay\n ? 'single'\n : isStartEvent\n ? 'start'\n : isEndEvent\n ? 'end'\n : 'middle';\n const {\n wrapper: eventWrapper,\n bgBar,\n textLayer,\n textSpan,\n } = eventBarStyles({\n type: ev.type,\n position: blockPosition,\n });\n\n return (\n <div\n key={`${ev.id}-${idx}`}\n className={mergeStyles(\n eventWrapper(),\n eventItemHeight(),\n )}\n onClick={(e) => {\n e.stopPropagation();\n onEventClick?.(ev);\n }}\n >\n <div className={bgBar()} />\n\n <div\n className={textLayer()}\n style={{\n width: `calc(${segmentDuration} * 100%)`,\n left: `calc(-${indexInSegment} * 100%)`,\n }}\n >\n <span className={textSpan()}>{ev.title}</span>\n </div>\n </div>\n );\n })}\n </Flex>\n </Flex>\n );\n })}\n </Grid>\n </Box>\n </Box>\n );\n};\nCalendar.displayName = 'Calendar';\n"],"mappings":"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"}
|
|
@@ -100,21 +100,36 @@ const calendar = (0, tailwind_variants.tv)({
|
|
|
100
100
|
hoverEffect: false
|
|
101
101
|
}
|
|
102
102
|
});
|
|
103
|
-
const eventBarStyles = {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
whitespace-nowrap
|
|
111
|
-
`,
|
|
103
|
+
const eventBarStyles = (0, tailwind_variants.tv)({
|
|
104
|
+
slots: {
|
|
105
|
+
wrapper: "relative w-full",
|
|
106
|
+
bgBar: "absolute inset-0",
|
|
107
|
+
textLayer: "absolute top-0 left-0 w-full h-full flex items-center justify-center text-[11px] font-medium tracking-[-0.02em] leading-tight select-none pointer-events-none z-10 whitespace-nowrap !bg-transparent",
|
|
108
|
+
textSpan: "block w-[95%] mx-auto truncate px-2 text-center"
|
|
109
|
+
},
|
|
112
110
|
variants: {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
111
|
+
type: {
|
|
112
|
+
holiday: {
|
|
113
|
+
bgBar: "bg-red-100",
|
|
114
|
+
textLayer: "text-red-400"
|
|
115
|
+
},
|
|
116
|
+
event: {
|
|
117
|
+
bgBar: "bg-gray-100",
|
|
118
|
+
textLayer: "text-gray-600"
|
|
119
|
+
},
|
|
120
|
+
important: {
|
|
121
|
+
bgBar: "bg-blue-100",
|
|
122
|
+
textLayer: "text-blue-600"
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
position: {
|
|
126
|
+
single: { bgBar: "mx-[2px] rounded-[4px]" },
|
|
127
|
+
start: { bgBar: "mr-0 ml-[2px] rounded-l-[4px] rounded-r-none" },
|
|
128
|
+
end: { bgBar: "mr-[2px] ml-0 rounded-l-none rounded-r-[4px]" },
|
|
129
|
+
middle: { bgBar: "mx-0 rounded-none" }
|
|
130
|
+
}
|
|
116
131
|
}
|
|
117
|
-
};
|
|
132
|
+
});
|
|
118
133
|
|
|
119
134
|
//#endregion
|
|
120
135
|
exports.calendar = calendar;
|