@uniai-fe/uds-primitives 0.6.5 → 0.6.6
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/styles.css
CHANGED
|
@@ -1962,6 +1962,17 @@
|
|
|
1962
1962
|
color: var(--color-label-disabled);
|
|
1963
1963
|
}
|
|
1964
1964
|
|
|
1965
|
+
.calendar-day:where([hidden]) {
|
|
1966
|
+
display: flex !important;
|
|
1967
|
+
visibility: hidden;
|
|
1968
|
+
pointer-events: none;
|
|
1969
|
+
}
|
|
1970
|
+
|
|
1971
|
+
.calendar-range-grid .calendar-day:where([data-outside=true]) {
|
|
1972
|
+
visibility: hidden;
|
|
1973
|
+
pointer-events: none;
|
|
1974
|
+
}
|
|
1975
|
+
|
|
1965
1976
|
.calendar-day:where(:not([data-disabled=true],
|
|
1966
1977
|
[data-selected=true],
|
|
1967
1978
|
[data-focused=true],
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uniai-fe/uds-primitives",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.6",
|
|
4
4
|
"description": "UNIAI Design System; Primitives Components Package",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"private": false,
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"publishConfig": {
|
|
16
16
|
"access": "public"
|
|
17
17
|
},
|
|
18
|
-
"packageManager": "pnpm@10.33.
|
|
18
|
+
"packageManager": "pnpm@10.33.2",
|
|
19
19
|
"engines": {
|
|
20
20
|
"node": ">=24",
|
|
21
21
|
"pnpm": ">=10"
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
"@uniai-fe/util-functions": "workspace:*",
|
|
104
104
|
"eslint": "^9.39.2",
|
|
105
105
|
"prettier": "^3.8.3",
|
|
106
|
-
"react-hook-form": "^7.
|
|
106
|
+
"react-hook-form": "^7.73.1",
|
|
107
107
|
"sass": "^1.99.0",
|
|
108
108
|
"typescript": "5.9.3"
|
|
109
109
|
}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
DatePicker,
|
|
5
|
+
DatesProvider,
|
|
6
|
+
type DateStringValue,
|
|
7
|
+
} from "@mantine/dates";
|
|
4
8
|
import { dayjs } from "../../../init/dayjs";
|
|
5
9
|
import { CalendarIcon } from "./Icon";
|
|
6
10
|
import type { CalendarDatePickerProps, CalendarGridProps } from "../types";
|
|
@@ -34,6 +38,7 @@ export default function CalendarCore({
|
|
|
34
38
|
// 기본 DatePicker 옵션/스타일 책임을 Calendar.Core에 고정한다.
|
|
35
39
|
const resolvedDatePickerProps = {
|
|
36
40
|
size: "sm" as const,
|
|
41
|
+
locale: "ko",
|
|
37
42
|
firstDayOfWeek: 0 as const,
|
|
38
43
|
weekendDays: [] as Array<0 | 1 | 2 | 3 | 4 | 5 | 6>,
|
|
39
44
|
nextIcon: <CalendarIcon.Chevron.right />,
|
|
@@ -76,14 +81,24 @@ export default function CalendarCore({
|
|
|
76
81
|
};
|
|
77
82
|
|
|
78
83
|
return (
|
|
79
|
-
<
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
84
|
+
<DatesProvider
|
|
85
|
+
settings={{
|
|
86
|
+
// 변경: 월별 week row 수를 6주로 고정해 popover 높이 변동을 막는다.
|
|
87
|
+
consistentWeeks: true,
|
|
88
|
+
locale: resolvedDatePickerProps.locale ?? "ko",
|
|
89
|
+
firstDayOfWeek: resolvedDatePickerProps.firstDayOfWeek ?? 0,
|
|
90
|
+
weekendDays: resolvedDatePickerProps.weekendDays ?? [],
|
|
91
|
+
}}
|
|
92
|
+
>
|
|
93
|
+
<DatePicker
|
|
94
|
+
className="calendar-grid"
|
|
95
|
+
// Core는 SOT 단일 달력으로 고정한다.
|
|
96
|
+
numberOfColumns={1}
|
|
97
|
+
type="default"
|
|
98
|
+
value={mapValueToPicker(value) as never}
|
|
99
|
+
onChange={handleChange as never}
|
|
100
|
+
{...resolvedDatePickerProps}
|
|
101
|
+
/>
|
|
102
|
+
</DatesProvider>
|
|
88
103
|
);
|
|
89
104
|
}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
DatePicker,
|
|
5
|
+
DatesProvider,
|
|
6
|
+
type DateStringValue,
|
|
7
|
+
} from "@mantine/dates";
|
|
4
8
|
import { dayjs } from "../../../../init/dayjs";
|
|
5
9
|
import { CalendarIcon } from "../Icon";
|
|
6
10
|
import type {
|
|
@@ -38,6 +42,7 @@ export default function CalendarRangeCore({
|
|
|
38
42
|
// Range Core는 Figma의 2 calendar 구조에 맞춰 두 달을 한 패널에서 렌더링한다.
|
|
39
43
|
const resolvedDatePickerProps = {
|
|
40
44
|
size: "sm" as const,
|
|
45
|
+
locale: "ko",
|
|
41
46
|
firstDayOfWeek: 0 as const,
|
|
42
47
|
weekendDays: [] as Array<0 | 1 | 2 | 3 | 4 | 5 | 6>,
|
|
43
48
|
nextIcon: <CalendarIcon.Chevron.right />,
|
|
@@ -49,6 +54,8 @@ export default function CalendarRangeCore({
|
|
|
49
54
|
// 변경: Range header도 단일 Core와 같은 연도-월 순서 표기를 기본값으로 둔다.
|
|
50
55
|
monthLabelFormat: "YYYY년 M월",
|
|
51
56
|
...safeDatePickerProps,
|
|
57
|
+
// 변경: hidden attribute로 인한 empty week row collapse를 막고 outside date는 CSS에서 숨긴다.
|
|
58
|
+
hideOutsideDates: false,
|
|
52
59
|
// 변경: button은 period surface, span은 selected/today 날짜 레이어로 분리한다.
|
|
53
60
|
renderDay: (date: DateStringValue) => (
|
|
54
61
|
<span className="calendar-day-label">
|
|
@@ -80,13 +87,23 @@ export default function CalendarRangeCore({
|
|
|
80
87
|
};
|
|
81
88
|
|
|
82
89
|
return (
|
|
83
|
-
<
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
90
|
+
<DatesProvider
|
|
91
|
+
settings={{
|
|
92
|
+
// 변경: range 양쪽 month도 항상 6주 row로 렌더해 패널 높이를 고정한다.
|
|
93
|
+
consistentWeeks: true,
|
|
94
|
+
locale: resolvedDatePickerProps.locale ?? "ko",
|
|
95
|
+
firstDayOfWeek: resolvedDatePickerProps.firstDayOfWeek ?? 0,
|
|
96
|
+
weekendDays: resolvedDatePickerProps.weekendDays ?? [],
|
|
97
|
+
}}
|
|
98
|
+
>
|
|
99
|
+
<DatePicker
|
|
100
|
+
className="calendar-grid calendar-range-grid"
|
|
101
|
+
numberOfColumns={2}
|
|
102
|
+
type="range"
|
|
103
|
+
value={mapRangeValueToPicker(value)}
|
|
104
|
+
onChange={handleChange}
|
|
105
|
+
{...resolvedDatePickerProps}
|
|
106
|
+
/>
|
|
107
|
+
</DatesProvider>
|
|
91
108
|
);
|
|
92
109
|
}
|
|
@@ -372,6 +372,19 @@
|
|
|
372
372
|
color: var(--color-label-disabled);
|
|
373
373
|
}
|
|
374
374
|
|
|
375
|
+
.calendar-day:where([hidden]) {
|
|
376
|
+
// 변경: range의 outside date hidden row도 6주 높이 계산에 참여시켜 month 전환 점프를 막는다.
|
|
377
|
+
display: flex !important;
|
|
378
|
+
visibility: hidden;
|
|
379
|
+
pointer-events: none;
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
.calendar-range-grid .calendar-day:where([data-outside="true"]) {
|
|
383
|
+
// 변경: range outside date는 hidden attribute 없이 공간만 유지한다.
|
|
384
|
+
visibility: hidden;
|
|
385
|
+
pointer-events: none;
|
|
386
|
+
}
|
|
387
|
+
|
|
375
388
|
.calendar-day:where(
|
|
376
389
|
:not(
|
|
377
390
|
[data-disabled="true"],
|