@causw/core 0.0.21 → 0.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/dist/assets/avatar/defaultAvatar1.cjs +11 -0
  2. package/dist/assets/avatar/defaultAvatar1.mjs +6 -0
  3. package/dist/assets/avatar/defaultAvatar1.mjs.map +1 -0
  4. package/dist/assets/avatar/defaultAvatar2.cjs +11 -0
  5. package/dist/assets/avatar/defaultAvatar2.mjs +6 -0
  6. package/dist/assets/avatar/defaultAvatar2.mjs.map +1 -0
  7. package/dist/assets/avatar/defaultAvatar3.cjs +11 -0
  8. package/dist/assets/avatar/defaultAvatar3.mjs +6 -0
  9. package/dist/assets/avatar/defaultAvatar3.mjs.map +1 -0
  10. package/dist/assets/avatar/defaultAvatar4.cjs +11 -0
  11. package/dist/assets/avatar/defaultAvatar4.mjs +6 -0
  12. package/dist/assets/avatar/defaultAvatar4.mjs.map +1 -0
  13. package/dist/components/Avatar/Avatar.cjs +16 -3
  14. package/dist/components/Avatar/Avatar.d.cts +2 -2
  15. package/dist/components/Avatar/Avatar.d.cts.map +1 -1
  16. package/dist/components/Avatar/Avatar.d.mts +2 -2
  17. package/dist/components/Avatar/Avatar.d.mts.map +1 -1
  18. package/dist/components/Avatar/Avatar.mjs +16 -3
  19. package/dist/components/Avatar/Avatar.mjs.map +1 -1
  20. package/dist/components/Avatar/Avatar.styles.cjs +8 -6
  21. package/dist/components/Avatar/Avatar.styles.d.cts +36 -18
  22. package/dist/components/Avatar/Avatar.styles.d.cts.map +1 -1
  23. package/dist/components/Avatar/Avatar.styles.d.mts +36 -18
  24. package/dist/components/Avatar/Avatar.styles.d.mts.map +1 -1
  25. package/dist/components/Avatar/Avatar.styles.mjs +8 -6
  26. package/dist/components/Avatar/Avatar.styles.mjs.map +1 -1
  27. package/dist/components/BottomNavigation/BottomNavigation.d.cts +5 -5
  28. package/dist/components/BottomNavigation/BottomNavigation.d.mts +5 -5
  29. package/dist/components/BottomNavigation/BottomNavigation.styles.cjs +1 -1
  30. package/dist/components/BottomNavigation/BottomNavigation.styles.d.cts +3 -3
  31. package/dist/components/BottomNavigation/BottomNavigation.styles.d.mts +3 -3
  32. package/dist/components/BottomNavigation/BottomNavigation.styles.mjs +1 -1
  33. package/dist/components/BottomNavigation/BottomNavigation.styles.mjs.map +1 -1
  34. package/dist/components/BottomSheet/BottomSheet.d.cts +6 -6
  35. package/dist/components/BottomSheet/BottomSheet.d.mts +6 -6
  36. package/dist/components/BottomSheet/BottomSheet.styles.d.mts +3 -3
  37. package/dist/components/Box/Box.styles.d.mts +3 -3
  38. package/dist/components/Button/Button.d.cts +2 -2
  39. package/dist/components/Button/Button.styles.d.cts +3 -3
  40. package/dist/components/Button/Button.styles.d.mts +3 -3
  41. package/dist/components/CTAButton/CTAButton.d.mts +2 -2
  42. package/dist/components/CTAButton/CTAButton.d.mts.map +1 -1
  43. package/dist/components/CTAButton/CTAButton.styles.d.cts +3 -3
  44. package/dist/components/CTAButton/CTAButton.styles.d.mts +3 -3
  45. package/dist/components/Calendar/Calendar.cjs +49 -24
  46. package/dist/components/Calendar/Calendar.d.cts +4 -4
  47. package/dist/components/Calendar/Calendar.d.cts.map +1 -1
  48. package/dist/components/Calendar/Calendar.d.mts +4 -4
  49. package/dist/components/Calendar/Calendar.d.mts.map +1 -1
  50. package/dist/components/Calendar/Calendar.mjs +50 -24
  51. package/dist/components/Calendar/Calendar.mjs.map +1 -1
  52. package/dist/components/Calendar/Calendar.styles.cjs +28 -13
  53. package/dist/components/Calendar/Calendar.styles.d.cts +104 -8
  54. package/dist/components/Calendar/Calendar.styles.d.cts.map +1 -1
  55. package/dist/components/Calendar/Calendar.styles.d.mts +107 -11
  56. package/dist/components/Calendar/Calendar.styles.d.mts.map +1 -1
  57. package/dist/components/Calendar/Calendar.styles.mjs +28 -13
  58. package/dist/components/Calendar/Calendar.styles.mjs.map +1 -1
  59. package/dist/components/Checkbox/Checkbox.d.cts +4 -4
  60. package/dist/components/Checkbox/Checkbox.d.cts.map +1 -1
  61. package/dist/components/Checkbox/Checkbox.d.mts +4 -4
  62. package/dist/components/Checkbox/Checkbox.styles.d.cts +3 -3
  63. package/dist/components/Checkbox/Checkbox.styles.d.mts +3 -3
  64. package/dist/components/Chip/Chip.d.cts +2 -2
  65. package/dist/components/Chip/Chip.d.mts +2 -2
  66. package/dist/components/Chip/Chip.styles.d.cts +3 -3
  67. package/dist/components/Chip/Chip.styles.d.mts +3 -3
  68. package/dist/components/DatePicker/DatePicker.d.cts +2 -2
  69. package/dist/components/DatePicker/DatePicker.d.cts.map +1 -1
  70. package/dist/components/DatePicker/DatePicker.d.mts +2 -2
  71. package/dist/components/DatePicker/DatePicker.styles.d.cts +3 -3
  72. package/dist/components/DatePicker/DatePicker.styles.d.cts.map +1 -1
  73. package/dist/components/DatePicker/DatePicker.styles.d.mts +3 -3
  74. package/dist/components/Dialog/Dialog.d.cts +5 -5
  75. package/dist/components/Dialog/Dialog.d.mts +13 -13
  76. package/dist/components/Dialog/Dialog.styles.d.cts +3 -3
  77. package/dist/components/Dialog/Dialog.styles.d.cts.map +1 -1
  78. package/dist/components/Dialog/Dialog.styles.d.mts +3 -3
  79. package/dist/components/Dropdown/Dropdown.d.cts +3 -3
  80. package/dist/components/Dropdown/Dropdown.d.mts +3 -3
  81. package/dist/components/Dropdown/Dropdown.styles.d.mts +3 -3
  82. package/dist/components/Dropdown/Dropdown.styles.d.mts.map +1 -1
  83. package/dist/components/Field/Field.d.mts +5 -5
  84. package/dist/components/Float/Float.styles.d.cts +3 -3
  85. package/dist/components/FloatingActionButton/FloatingActionButton.d.cts +2 -2
  86. package/dist/components/FloatingActionButton/FloatingActionButton.d.mts +2 -2
  87. package/dist/components/FloatingActionButton/FloatingActionButton.styles.d.cts +3 -3
  88. package/dist/components/FloatingActionButton/FloatingActionButton.styles.d.mts +3 -3
  89. package/dist/components/Grid/Grid.styles.d.mts +3 -3
  90. package/dist/components/HStack/HStack.d.cts +2 -2
  91. package/dist/components/HStack/HStack.d.mts +2 -2
  92. package/dist/components/Modal/Modal.d.cts +10 -10
  93. package/dist/components/Modal/Modal.d.mts +10 -10
  94. package/dist/components/Modal/Modal.styles.d.cts +3 -3
  95. package/dist/components/Modal/Modal.styles.d.mts +3 -3
  96. package/dist/components/Primitive/Primitive.d.cts +16 -16
  97. package/dist/components/PullToRefresh/PullToRefresh.d.cts +2 -2
  98. package/dist/components/PullToRefresh/PullToRefresh.d.mts +2 -2
  99. package/dist/components/PullToRefresh/PullToRefresh.styles.d.mts +3 -3
  100. package/dist/components/Radio/Radio.d.cts +3 -3
  101. package/dist/components/Radio/Radio.d.mts +3 -3
  102. package/dist/components/RatioChart/RatioChart.d.cts +5 -5
  103. package/dist/components/RatioChart/RatioChart.d.mts +5 -5
  104. package/dist/components/RatioChart/RatioChartEditor.d.cts +2 -2
  105. package/dist/components/RatioChart/RatioChartEditor.d.mts +2 -2
  106. package/dist/components/Select/Select.d.cts +5 -5
  107. package/dist/components/Select/Select.d.mts +5 -5
  108. package/dist/components/Select/Select.styles.d.cts +3 -3
  109. package/dist/components/Select/Select.styles.d.mts +3 -3
  110. package/dist/components/Separator/Separator.styles.d.cts +3 -3
  111. package/dist/components/Separator/Separator.styles.d.cts.map +1 -1
  112. package/dist/components/Separator/Separator.styles.d.mts +3 -3
  113. package/dist/components/Separator/Separator.styles.d.mts.map +1 -1
  114. package/dist/components/Sidebar/Sidebar.d.cts +8 -8
  115. package/dist/components/Sidebar/Sidebar.d.mts +8 -8
  116. package/dist/components/Sidebar/Sidebar.styles.d.mts +3 -3
  117. package/dist/components/Skeleton/Skeleton.d.cts +2 -2
  118. package/dist/components/Skeleton/Skeleton.d.mts +2 -2
  119. package/dist/components/Skeleton/Skeleton.styles.d.mts +3 -3
  120. package/dist/components/Spacer/Spacer.styles.d.cts +3 -3
  121. package/dist/components/Spacer/Spacer.styles.d.cts.map +1 -1
  122. package/dist/components/Spacer/Spacer.styles.d.mts +3 -3
  123. package/dist/components/Spinner/Spinner.d.cts +2 -2
  124. package/dist/components/Spinner/Spinner.d.mts +2 -2
  125. package/dist/components/Spinner/Spinner.styles.d.mts +3 -3
  126. package/dist/components/Stack/Stack.styles.d.cts +3 -3
  127. package/dist/components/Stack/Stack.styles.d.mts +3 -3
  128. package/dist/components/Tab/Tab.d.cts +6 -6
  129. package/dist/components/Tab/Tab.d.mts +6 -6
  130. package/dist/components/Tab/Tab.styles.d.mts +3 -3
  131. package/dist/components/Text/Text.d.cts +1 -1
  132. package/dist/components/Text/Text.d.mts +1 -1
  133. package/dist/components/Text/Text.styles.d.cts +3 -3
  134. package/dist/components/Text/Text.styles.d.mts +3 -3
  135. package/dist/components/TextArea/TextArea.d.cts +4 -4
  136. package/dist/components/TextArea/TextArea.d.mts +4 -4
  137. package/dist/components/TextArea/TextArea.d.mts.map +1 -1
  138. package/dist/components/TextArea/TextArea.styles.d.mts +3 -3
  139. package/dist/components/TextInput/TextInput.d.cts +2 -2
  140. package/dist/components/TextInput/TextInput.d.cts.map +1 -1
  141. package/dist/components/TextInput/TextInput.d.mts +2 -2
  142. package/dist/components/TextInput/TextInput.styles.d.cts +3 -3
  143. package/dist/components/TextInput/TextInput.styles.d.mts +3 -3
  144. package/dist/components/Toast/Toast.d.cts +5 -5
  145. package/dist/components/Toast/Toast.d.mts +2 -2
  146. package/dist/components/Toast/Toast.d.mts.map +1 -1
  147. package/dist/components/Toast/Toast.styles.d.cts +3 -3
  148. package/dist/components/Toast/Toast.styles.d.mts +3 -3
  149. package/dist/components/Toast/index.d.cts +1 -3
  150. package/dist/components/Toast/index.d.mts +1 -3
  151. package/dist/components/Toggle/Toggle.d.cts +4 -4
  152. package/dist/components/Toggle/Toggle.d.mts +4 -4
  153. package/dist/components/Toggle/Toggle.styles.d.cts +3 -3
  154. package/dist/components/Toggle/Toggle.styles.d.mts +3 -3
  155. package/dist/components/VStack/VStack.d.cts +2 -2
  156. package/dist/components/VStack/VStack.d.mts +2 -2
  157. package/dist/components/index.d.cts +0 -2
  158. package/dist/components/index.d.mts +0 -2
  159. package/dist/index.cjs +0 -4
  160. package/dist/index.d.cts +1 -3
  161. package/dist/index.d.mts +1 -3
  162. package/dist/index.mjs +1 -3
  163. package/package.json +3 -3
  164. package/dist/assets/avatar/default.cjs +0 -11
  165. package/dist/assets/avatar/default.mjs +0 -6
  166. package/dist/assets/avatar/default.mjs.map +0 -1
  167. package/dist/components/Toast/Toaster.cjs +0 -41
  168. package/dist/components/Toast/Toaster.d.cts +0 -7
  169. package/dist/components/Toast/Toaster.d.cts.map +0 -1
  170. package/dist/components/Toast/Toaster.d.mts +0 -7
  171. package/dist/components/Toast/Toaster.d.mts.map +0 -1
  172. package/dist/components/Toast/Toaster.mjs +0 -41
  173. package/dist/components/Toast/Toaster.mjs.map +0 -1
  174. package/dist/components/Toast/toastStore.cjs +0 -49
  175. package/dist/components/Toast/toastStore.d.cts +0 -19
  176. package/dist/components/Toast/toastStore.d.cts.map +0 -1
  177. package/dist/components/Toast/toastStore.d.mts +0 -19
  178. package/dist/components/Toast/toastStore.d.mts.map +0 -1
  179. package/dist/components/Toast/toastStore.mjs +0 -48
  180. 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 react_jsx_runtime46 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime54 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): react_jsx_runtime46.JSX.Element;
22
+ }: BottomSheetRootProps): react_jsx_runtime54.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>): react_jsx_runtime46.JSX.Element;
31
+ }: React.ComponentProps<typeof Drawer.Content>): react_jsx_runtime54.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
- }): react_jsx_runtime46.JSX.Element;
41
+ }): react_jsx_runtime54.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
- }): react_jsx_runtime46.JSX.Element;
53
+ }): react_jsx_runtime54.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
- }): react_jsx_runtime46.JSX.Element;
63
+ }): react_jsx_runtime54.JSX.Element;
64
64
  displayName: string;
65
65
  };
66
66
  };
@@ -1,8 +1,8 @@
1
- import * as tailwind_variants47 from "tailwind-variants";
1
+ import * as tailwind_variants49 from "tailwind-variants";
2
2
  import { VariantProps } from "tailwind-variants";
3
3
 
4
4
  //#region src/components/BottomSheet/BottomSheet.styles.d.ts
5
- declare const bottomSheet: tailwind_variants47.TVReturnType<{
5
+ declare const bottomSheet: tailwind_variants49.TVReturnType<{
6
6
  headerAlign: {
7
7
  left: {
8
8
  header: string;
@@ -34,7 +34,7 @@ declare const bottomSheet: tailwind_variants47.TVReturnType<{
34
34
  header: string;
35
35
  body: string;
36
36
  footer: string;
37
- }, tailwind_variants47.TVReturnType<{
37
+ }, tailwind_variants49.TVReturnType<{
38
38
  headerAlign: {
39
39
  left: {
40
40
  header: string;
@@ -1,8 +1,8 @@
1
- import * as tailwind_variants3 from "tailwind-variants";
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: tailwind_variants3.TVReturnType<{
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, tailwind_variants3.TVReturnType<{
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 react_jsx_runtime18 from "react/jsx-runtime";
5
+ import * as react_jsx_runtime15 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): react_jsx_runtime18.JSX.Element;
17
+ }: ButtonProps): react_jsx_runtime15.JSX.Element;
18
18
  //#endregion
19
19
  export { Button, ButtonProps };
20
20
  //# sourceMappingURL=Button.d.cts.map
@@ -1,8 +1,8 @@
1
- import * as tailwind_variants39 from "tailwind-variants";
1
+ import * as tailwind_variants37 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: tailwind_variants39.TVReturnType<{
5
+ declare const button: tailwind_variants37.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, tailwind_variants39.TVReturnType<{
41
+ }, undefined, tailwind_variants37.TVReturnType<{
42
42
  size: {
43
43
  sm: string;
44
44
  md: string;
@@ -1,8 +1,8 @@
1
- import * as tailwind_variants41 from "tailwind-variants";
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: tailwind_variants41.TVReturnType<{
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, tailwind_variants41.TVReturnType<{
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.mjs";
2
2
  import "../Primitive/index.mjs";
3
3
  import { CTAButtonVariants } from "./CTAButton.styles.mjs";
4
4
  import { ComponentProps } from "react";
5
- import * as react_jsx_runtime17 from "react/jsx-runtime";
5
+ import * as react_jsx_runtime3 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): react_jsx_runtime17.JSX.Element;
16
+ }: CTAButtonProps): react_jsx_runtime3.JSX.Element;
17
17
  //#endregion
18
18
  export { CTAButton, CTAButtonProps };
19
19
  //# sourceMappingURL=CTAButton.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CTAButton.d.mts","names":[],"sources":["../../../src/components/CTAButton/CTAButton.tsx"],"mappings":";;;;;;;UAKiB,cAAA,SAEb,IAAA,CAAK,cAAA,sBACL,cAAA,EACA,iBAAA;AAAA,iBAEY,SAAA,CAAA;EACd,KAAA;EACA,SAAA;EACA,QAAA;EACA,SAAA;EACA,QAAA;EAAA,GACG;AAAA,GACF,cAAA,GAAc,mBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"CTAButton.d.mts","names":[],"sources":["../../../src/components/CTAButton/CTAButton.tsx"],"mappings":";;;;;;;UAKiB,cAAA,SAEb,IAAA,CAAK,cAAA,sBACL,cAAA,EACA,iBAAA;AAAA,iBAEY,SAAA,CAAA;EACd,KAAA;EACA,SAAA;EACA,QAAA;EACA,SAAA;EACA,QAAA;EAAA,GACG;AAAA,GACF,cAAA,GAAc,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1,8 +1,8 @@
1
- import * as tailwind_variants37 from "tailwind-variants";
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: tailwind_variants37.TVReturnType<{
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_variants37.TVReturnType<{
34
34
  true: string;
35
35
  false: string;
36
36
  };
37
- }, undefined, tailwind_variants37.TVReturnType<{
37
+ }, undefined, tailwind_variants41.TVReturnType<{
38
38
  color: {
39
39
  blue: string;
40
40
  red: string;
@@ -1,8 +1,8 @@
1
- import * as tailwind_variants43 from "tailwind-variants";
1
+ import * as tailwind_variants31 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: tailwind_variants43.TVReturnType<{
5
+ declare const ctaButton: tailwind_variants31.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, tailwind_variants43.TVReturnType<{
37
+ }, undefined, tailwind_variants31.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
- while (d <= eventEndDate) {
59
- const dateKey = formatDateStr(d);
60
- const dailyEvents = map.get(dateKey) ?? [];
61
- map.set(dateKey, [...dailyEvents, event]);
62
- d = (0, date_fns.addDays)(d, 1);
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 isRenderCell = (0, date_fns.differenceInCalendarDays)(currentDate, segmentStart) === Math.floor((segmentDuration - 1) / 2);
178
+ const indexInSegment = (0, date_fns.differenceInCalendarDays)(currentDate, segmentStart);
152
179
  const startDateKey = formatDateStr(start);
153
180
  const endDateKey = formatDateStr(end);
154
- const isStartEvent = dateKey === startDateKey;
155
- const isEndEvent = dateKey === endDateKey;
156
- const isSingleDay = startDateKey === endDateKey;
157
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
158
- className: require_mergeStyles.mergeStyles([
159
- "relative w-full",
160
- eventItemHeight(),
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: isRenderCell && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
172
- className: require_Calendar_styles.eventBarStyles.textWrapper,
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: "block w-full truncate px-1 text-center",
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, eventBarStyles } from "./Calendar.styles.cjs";
2
- import * as react_jsx_runtime78 from "react/jsx-runtime";
1
+ import { CalendarVariants, EventBarStylesVariants } from "./Calendar.styles.cjs";
2
+ import * as react_jsx_runtime76 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: keyof typeof eventBarStyles.variants;
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): react_jsx_runtime78.JSX.Element;
37
+ }: CalendarProps): react_jsx_runtime76.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":";;;;KA6BY,aAAA;EACV,EAAA;EACA,KAAA;EACA,SAAA;EACA,OAAA;EACA,IAAA,eAAmB,cAAA,CAAe,QAAA;AAAA;AAAA,UAGnB,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
+ {"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, eventBarStyles } from "./Calendar.styles.mjs";
2
- import * as react_jsx_runtime51 from "react/jsx-runtime";
1
+ import { CalendarVariants, EventBarStylesVariants } from "./Calendar.styles.mjs";
2
+ import * as react_jsx_runtime59 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: keyof typeof eventBarStyles.variants;
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): react_jsx_runtime51.JSX.Element;
37
+ }: CalendarProps): react_jsx_runtime59.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":";;;;KA6BY,aAAA;EACV,EAAA;EACA,KAAA;EACA,SAAA;EACA,OAAA;EACA,IAAA,eAAmB,cAAA,CAAe,QAAA;AAAA;AAAA,UAGnB,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
+ {"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 React, { useMemo, useState } from "react";
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
- while (d <= eventEndDate) {
57
- const dateKey = formatDateStr(d);
58
- const dailyEvents = map.get(dateKey) ?? [];
59
- map.set(dateKey, [...dailyEvents, event]);
60
- d = addDays(d, 1);
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 isRenderCell = differenceInCalendarDays(currentDate, segmentStart) === Math.floor((segmentDuration - 1) / 2);
177
+ const indexInSegment = differenceInCalendarDays(currentDate, segmentStart);
150
178
  const startDateKey = formatDateStr(start);
151
179
  const endDateKey = formatDateStr(end);
152
- const isStartEvent = dateKey === startDateKey;
153
- const isEndEvent = dateKey === endDateKey;
154
- const isSingleDay = startDateKey === endDateKey;
155
- return /* @__PURE__ */ jsx("div", {
156
- className: mergeStyles([
157
- "relative w-full",
158
- eventItemHeight(),
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: isRenderCell && /* @__PURE__ */ jsx("div", {
170
- className: eventBarStyles.textWrapper,
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: "block w-full truncate px-1 text-center",
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
- textWrapper: `
105
- absolute top-0 left-0 w-full h-full
106
- flex items-center justify-center
107
- text-[11px] font-medium tracking-[-0.02em] leading-tight
108
- select-none pointer-events-none
109
- z-10
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
- holiday: "bg-red-100 text-red-400",
114
- event: "bg-gray-100 text-gray-600",
115
- important: "bg-blue-100 text-blue-600"
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;