diff --git a/backend-node/src/routes/cascadingAutoFillRoutes.ts b/backend-node/src/routes/cascadingAutoFillRoutes.ts
index a5107448..c1d69e9f 100644
--- a/backend-node/src/routes/cascadingAutoFillRoutes.ts
+++ b/backend-node/src/routes/cascadingAutoFillRoutes.ts
@@ -55,3 +55,4 @@ export default router;
+
diff --git a/backend-node/src/routes/cascadingConditionRoutes.ts b/backend-node/src/routes/cascadingConditionRoutes.ts
index 22cd2d2b..bbc9384d 100644
--- a/backend-node/src/routes/cascadingConditionRoutes.ts
+++ b/backend-node/src/routes/cascadingConditionRoutes.ts
@@ -51,3 +51,4 @@ export default router;
+
diff --git a/backend-node/src/routes/cascadingHierarchyRoutes.ts b/backend-node/src/routes/cascadingHierarchyRoutes.ts
index 79a1c6e8..35ced071 100644
--- a/backend-node/src/routes/cascadingHierarchyRoutes.ts
+++ b/backend-node/src/routes/cascadingHierarchyRoutes.ts
@@ -67,3 +67,4 @@ export default router;
+
diff --git a/backend-node/src/routes/cascadingMutualExclusionRoutes.ts b/backend-node/src/routes/cascadingMutualExclusionRoutes.ts
index 352a05b5..29ac8ee4 100644
--- a/backend-node/src/routes/cascadingMutualExclusionRoutes.ts
+++ b/backend-node/src/routes/cascadingMutualExclusionRoutes.ts
@@ -55,3 +55,4 @@ export default router;
+
diff --git a/docs/노드플로우_개선사항.md b/docs/노드플로우_개선사항.md
index c9349b94..32757807 100644
--- a/docs/노드플로우_개선사항.md
+++ b/docs/노드플로우_개선사항.md
@@ -587,3 +587,4 @@ const result = await executeNodeFlow(flowId, {
+
diff --git a/docs/메일발송_기능_사용_가이드.md b/docs/메일발송_기능_사용_가이드.md
index 42900211..8bfe484e 100644
--- a/docs/메일발송_기능_사용_가이드.md
+++ b/docs/메일발송_기능_사용_가이드.md
@@ -360,3 +360,4 @@
+
diff --git a/docs/즉시저장_버튼_액션_구현_계획서.md b/docs/즉시저장_버튼_액션_구현_계획서.md
index c392eece..8d8fb497 100644
--- a/docs/즉시저장_버튼_액션_구현_계획서.md
+++ b/docs/즉시저장_버튼_액션_구현_계획서.md
@@ -346,3 +346,4 @@ const getComponentValue = (componentId: string) => {
+
diff --git a/frontend/components/ui/calendar.tsx b/frontend/components/ui/calendar.tsx
index 768386ec..dc549c8e 100644
--- a/frontend/components/ui/calendar.tsx
+++ b/frontend/components/ui/calendar.tsx
@@ -15,38 +15,48 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }: C
showOutsideDays={showOutsideDays}
className={cn("p-3", className)}
classNames={{
- months: "flex flex-col sm:flex-row space-y-4 sm:space-x-4 sm:space-y-0",
- month: "space-y-4",
- caption: "flex justify-center pt-1 relative items-center",
+ // react-day-picker v9 클래스명
+ months: "flex flex-col sm:flex-row gap-4",
+ month: "flex flex-col gap-4",
+ month_caption: "flex justify-center pt-1 relative items-center h-7",
caption_label: "text-sm font-medium",
- nav: "space-x-1 flex items-center",
- nav_button: cn(
+ nav: "flex items-center gap-1",
+ button_previous: cn(
buttonVariants({ variant: "outline" }),
- "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100",
+ "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100 absolute left-1",
),
- nav_button_previous: "absolute left-1",
- nav_button_next: "absolute right-1",
- table: "w-full border-collapse space-y-1",
- head_row: "flex w-full",
- head_cell:
+ button_next: cn(
+ buttonVariants({ variant: "outline" }),
+ "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100 absolute right-1",
+ ),
+ month_grid: "w-full border-collapse",
+ weekdays: "flex w-full",
+ weekday:
"text-muted-foreground rounded-md w-9 h-9 font-normal text-[0.8rem] inline-flex items-center justify-center",
- row: "flex w-full mt-2",
- cell: "h-9 w-9 text-center text-sm p-0 relative [&:has([aria-selected].day-range-end)]:rounded-r-md [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected])]:bg-accent first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md focus-within:relative focus-within:z-20",
- day: cn(buttonVariants({ variant: "ghost" }), "h-9 w-9 p-0 font-normal aria-selected:opacity-100"),
- day_range_end: "day-range-end",
- day_selected:
- "bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground",
- day_today: "bg-accent text-accent-foreground",
- day_outside:
- "day-outside text-muted-foreground opacity-50 aria-selected:bg-accent/50 aria-selected:text-muted-foreground aria-selected:opacity-30",
- day_disabled: "text-muted-foreground opacity-50",
- day_range_middle: "aria-selected:bg-accent aria-selected:text-accent-foreground",
- day_hidden: "invisible",
+ week: "flex w-full mt-2",
+ day: "h-9 w-9 text-center text-sm p-0 relative",
+ day_button: cn(
+ buttonVariants({ variant: "ghost" }),
+ "h-9 w-9 p-0 font-normal aria-selected:opacity-100",
+ ),
+ range_end: "day-range-end",
+ selected:
+ "bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground rounded-md",
+ today: "bg-accent text-accent-foreground rounded-md",
+ outside:
+ "text-muted-foreground opacity-50 aria-selected:bg-accent/50 aria-selected:text-muted-foreground aria-selected:opacity-30",
+ disabled: "text-muted-foreground opacity-50",
+ range_middle: "aria-selected:bg-accent aria-selected:text-accent-foreground",
+ hidden: "invisible",
...classNames,
}}
components={{
- IconLeft: ({ ...props }) => ,
- IconRight: ({ ...props }) => ,
+ Chevron: ({ orientation }) => {
+ if (orientation === "left") {
+ return ;
+ }
+ return ;
+ },
}}
{...props}
/>
diff --git a/frontend/contexts/ActiveTabContext.tsx b/frontend/contexts/ActiveTabContext.tsx
index 228dc990..35081225 100644
--- a/frontend/contexts/ActiveTabContext.tsx
+++ b/frontend/contexts/ActiveTabContext.tsx
@@ -140,3 +140,4 @@ export const useActiveTabOptional = () => {
+
diff --git a/frontend/hooks/useAutoFill.ts b/frontend/hooks/useAutoFill.ts
index caa1e826..7d78322b 100644
--- a/frontend/hooks/useAutoFill.ts
+++ b/frontend/hooks/useAutoFill.ts
@@ -197,3 +197,4 @@ export function applyAutoFillToFormData(
+
diff --git a/화면_임베딩_및_데이터_전달_시스템_구현_계획서.md b/화면_임베딩_및_데이터_전달_시스템_구현_계획서.md
index f61ab2fb..1108475c 100644
--- a/화면_임베딩_및_데이터_전달_시스템_구현_계획서.md
+++ b/화면_임베딩_및_데이터_전달_시스템_구현_계획서.md
@@ -1689,3 +1689,4 @@ const 출고등록_설정: ScreenSplitPanel = {
+
diff --git a/화면_임베딩_시스템_Phase1-4_구현_완료.md b/화면_임베딩_시스템_Phase1-4_구현_완료.md
index 0596216f..c20a94bc 100644
--- a/화면_임베딩_시스템_Phase1-4_구현_완료.md
+++ b/화면_임베딩_시스템_Phase1-4_구현_완료.md
@@ -536,3 +536,4 @@ const { data: config } = await getScreenSplitPanel(screenId);
+
diff --git a/화면_임베딩_시스템_충돌_분석_보고서.md b/화면_임베딩_시스템_충돌_분석_보고서.md
index 4f0bfabb..77ad05b2 100644
--- a/화면_임베딩_시스템_충돌_분석_보고서.md
+++ b/화면_임베딩_시스템_충돌_분석_보고서.md
@@ -523,3 +523,4 @@ function ScreenViewPage() {
+