@dotss/tictoccroc 0.3.0 → 0.3.2
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/shared/components/Calendar/Calendar.d.ts +1 -1
- package/dist/shared/components/ChatKit/BotMessage/BotMessage.mjs +8 -8
- package/dist/shared/components/ChatKit/BotMessage/BotMessage.utils.mjs +1 -1
- package/dist/shared/components/ChatKit/Message/Message.mjs +83 -71
- package/dist/shared/components/Image/Image.d.ts +1 -1
- package/dist/shared/components/Masonry/Masonry.utils.d.ts +1 -1
- package/dist/shared/components/Masonry/MasonryBlock/MasonryBlock.d.ts +1 -1
- package/dist/shared/components/TimePicker/TimePicker.d.ts +1 -1
- package/dist/shared/components/TimePicker/TimePicker.mjs +48 -50
- package/dist/shared/hooks/useInView/useInView.d.ts +1 -1
- package/dist/shared/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.d.ts +2 -1
- package/dist/teacher/home/components/Carousel1Account/Carousel1Account.d.ts +1 -1
- package/dist/teacher/home/components/Carousel1Account/Carousel1Account.mjs +46 -34
- package/dist/teacher/home/components/Carousel2Account/Carousel2Account.d.ts +1 -1
- package/dist/teacher/home/components/Carousel2Account/Carousel2Account.mjs +43 -31
- package/dist/teacher/home/components/TextAccount/TextAccount.d.ts +1 -1
- package/dist/teacher/profile/components/AvailableScheduleSection/AvailableScheduleSection.d.ts +1 -1
- package/dist/teacher/profile/components/CareNoteSection/CareNoteSection.d.ts +1 -1
- package/dist/teacher/profile/components/ParentReviewSection/ParentReviewSection.d.ts +1 -1
- package/package.json +7 -2
|
@@ -7,5 +7,5 @@ export interface CalendarProps extends Omit<FlexboxProps, 'onChange' | 'value'>,
|
|
|
7
7
|
weekHeadInlineCSS?: FlexboxProps['inlineCSS'];
|
|
8
8
|
datePickerProps?: Omit<DatePickerProps, 'onChange' | 'value' | 'date'>;
|
|
9
9
|
}
|
|
10
|
-
declare const Calendar:
|
|
10
|
+
declare const Calendar: import('react').ForwardRefExoticComponent<Omit<CalendarProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
11
11
|
export default Calendar;
|
|
@@ -2,11 +2,11 @@ import { jsxs as t, jsx as r } from "react/jsx-runtime";
|
|
|
2
2
|
import { useRef as F, useEffect as L } from "react";
|
|
3
3
|
import { Flexbox as n, Typography as e, Button as $ } from "@dotss/ui";
|
|
4
4
|
import q from "@dotss/ui/core/useTheme";
|
|
5
|
-
import
|
|
6
|
-
import J from "
|
|
7
|
-
import K from "
|
|
5
|
+
import z from "dayjs";
|
|
6
|
+
import { getClassInfo as G, getCtaButtonText as J } from "./BotMessage.utils.mjs";
|
|
7
|
+
import K from "../../Image/Image.mjs";
|
|
8
|
+
import N from "../../../hooks/useInView/useInView.mjs";
|
|
8
9
|
import S from "../../../utils/getCareTypeLabel/getCareTypeLabel.mjs";
|
|
9
|
-
import N from "dayjs";
|
|
10
10
|
function V({
|
|
11
11
|
id: P,
|
|
12
12
|
botMessageType: y,
|
|
@@ -30,10 +30,10 @@ function V({
|
|
|
30
30
|
const {
|
|
31
31
|
palette: { brand: D, grey: m, background: k },
|
|
32
32
|
spacing: d
|
|
33
|
-
} = q(), f = F(null), { isInView: u } =
|
|
33
|
+
} = q(), f = F(null), { isInView: u } = N(f), x = J(s), i = w, H = [
|
|
34
34
|
S(i == null ? void 0 : i.firstCareType),
|
|
35
35
|
S(i == null ? void 0 : i.secondCareType)
|
|
36
|
-
].filter(Boolean).filter((E) => E !== "-").join("+"), c =
|
|
36
|
+
].filter(Boolean).filter((E) => E !== "-").join("+"), c = G(i), M = () => o == null ? void 0 : o({
|
|
37
37
|
botMessageType: y,
|
|
38
38
|
ctaType: s,
|
|
39
39
|
ctaTargetId: C,
|
|
@@ -91,7 +91,7 @@ function V({
|
|
|
91
91
|
inlineCSS: {
|
|
92
92
|
whiteSpace: "nowrap"
|
|
93
93
|
},
|
|
94
|
-
children:
|
|
94
|
+
children: z(I).format("A h:mm")
|
|
95
95
|
}
|
|
96
96
|
)
|
|
97
97
|
]
|
|
@@ -112,7 +112,7 @@ function V({
|
|
|
112
112
|
},
|
|
113
113
|
children: [
|
|
114
114
|
g && /* @__PURE__ */ r(
|
|
115
|
-
|
|
115
|
+
K,
|
|
116
116
|
{
|
|
117
117
|
src: g,
|
|
118
118
|
width: 32,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs as n, jsx as e, Fragment as q } from "react/jsx-runtime";
|
|
2
|
-
import { useRef as
|
|
3
|
-
import { Flexbox as d, Typography as
|
|
2
|
+
import { useRef as y, useImperativeHandle as J, useEffect as v } from "react";
|
|
3
|
+
import { Flexbox as d, Typography as I, Button as Q, Icon as C, Menu as X, MenuBlock as T, CircularProgressIndicator as Y } from "@dotss/ui";
|
|
4
4
|
import Z from "@dotss/ui/core/useTheme";
|
|
5
5
|
import { useCheckHoverPossible as _ } from "@dotss/ui/hooks";
|
|
6
6
|
import { MenuButton as A } from "@dotss/ui/Menu";
|
|
@@ -8,48 +8,48 @@ import V from "dayjs";
|
|
|
8
8
|
import U from "../../Image/Image.mjs";
|
|
9
9
|
import M from "../../../hooks/useInView/useInView.mjs";
|
|
10
10
|
function de({
|
|
11
|
-
id:
|
|
12
|
-
content:
|
|
11
|
+
id: k,
|
|
12
|
+
content: u = "",
|
|
13
13
|
mine: i = !1,
|
|
14
14
|
avatarUrl: h = "",
|
|
15
|
-
unreadUserCount:
|
|
16
|
-
regDatetime:
|
|
15
|
+
unreadUserCount: g = 0,
|
|
16
|
+
regDatetime: $,
|
|
17
17
|
status: l,
|
|
18
18
|
onView: m,
|
|
19
|
-
openMenu:
|
|
20
|
-
onClickAvatar:
|
|
19
|
+
openMenu: S,
|
|
20
|
+
onClickAvatar: a,
|
|
21
21
|
onCloseMenu: t,
|
|
22
|
-
onClickMenu:
|
|
23
|
-
onResend:
|
|
24
|
-
onDelete:
|
|
25
|
-
onViewAll:
|
|
22
|
+
onClickMenu: z,
|
|
23
|
+
onResend: b,
|
|
24
|
+
onDelete: x,
|
|
25
|
+
onViewAll: B,
|
|
26
26
|
showAvatar: w,
|
|
27
|
-
showTime:
|
|
28
|
-
ref:
|
|
29
|
-
inlineCSS:
|
|
30
|
-
...
|
|
27
|
+
showTime: R,
|
|
28
|
+
ref: j,
|
|
29
|
+
inlineCSS: G,
|
|
30
|
+
...H
|
|
31
31
|
}) {
|
|
32
32
|
const {
|
|
33
|
-
palette: { brand:
|
|
33
|
+
palette: { brand: p, grey: c, etc: K },
|
|
34
34
|
spacing: E
|
|
35
|
-
} = Z(), { isHoverPossible:
|
|
36
|
-
J(
|
|
37
|
-
const
|
|
38
|
-
r === "resend" ? (t == null || t(),
|
|
39
|
-
S == null || S();
|
|
40
|
-
}, 200)) : r === "delete" && (t == null || t(), p.current = setTimeout(() => {
|
|
35
|
+
} = Z(), { isHoverPossible: D } = _(), o = y(null), F = y(null), s = y(null);
|
|
36
|
+
J(j, () => o.current);
|
|
37
|
+
const L = M(o), N = 300, f = l === "FAILED", P = u.length > N, O = (r) => {
|
|
38
|
+
r === "resend" ? (t == null || t(), s.current = setTimeout(() => {
|
|
41
39
|
b == null || b();
|
|
40
|
+
}, 200)) : r === "delete" && (t == null || t(), s.current = setTimeout(() => {
|
|
41
|
+
x == null || x();
|
|
42
42
|
}, 200));
|
|
43
43
|
}, W = (r) => {
|
|
44
44
|
(r.key === "Enter" || r.key === " ") && (r.preventDefault(), r.currentTarget.click());
|
|
45
45
|
};
|
|
46
|
-
return
|
|
47
|
-
|
|
48
|
-
}, [
|
|
46
|
+
return v(() => {
|
|
47
|
+
L && (m == null || m());
|
|
48
|
+
}, [L, m]), v(() => {
|
|
49
49
|
var r;
|
|
50
|
-
|
|
51
|
-
}, [
|
|
52
|
-
|
|
50
|
+
f && ((r = o == null ? void 0 : o.current) == null || r.scrollIntoView());
|
|
51
|
+
}, [f]), v(() => () => {
|
|
52
|
+
s.current && clearTimeout(s.current);
|
|
53
53
|
}, []), /* @__PURE__ */ n(
|
|
54
54
|
d,
|
|
55
55
|
{
|
|
@@ -60,27 +60,27 @@ function de({
|
|
|
60
60
|
pr: 4,
|
|
61
61
|
gap: 1,
|
|
62
62
|
"aria-busy": l === "PENDING",
|
|
63
|
-
...
|
|
63
|
+
...H,
|
|
64
64
|
inlineCSS: {
|
|
65
65
|
cursor: l === "PENDING" ? "wait" : "default",
|
|
66
66
|
overflowAnchor: "none",
|
|
67
|
-
...
|
|
67
|
+
...G
|
|
68
68
|
},
|
|
69
69
|
children: [
|
|
70
70
|
/* @__PURE__ */ n(d, { alignItems: "flex-start", gap: 2.5, children: [
|
|
71
71
|
!i && w && h && /* @__PURE__ */ e(
|
|
72
72
|
d,
|
|
73
73
|
{
|
|
74
|
-
role: typeof
|
|
75
|
-
tabIndex: typeof
|
|
76
|
-
onClick:
|
|
74
|
+
role: typeof a == "function" ? "button" : void 0,
|
|
75
|
+
tabIndex: typeof a == "function" ? 0 : -1,
|
|
76
|
+
onClick: a,
|
|
77
77
|
onKeyDown: W,
|
|
78
|
-
"aria-label": typeof
|
|
78
|
+
"aria-label": typeof a == "function" ? "선생님 프로필 보기" : void 0,
|
|
79
79
|
inlineCSS: {
|
|
80
80
|
position: "relative",
|
|
81
81
|
overflow: "hidden",
|
|
82
82
|
minWidth: 32,
|
|
83
|
-
cursor: typeof
|
|
83
|
+
cursor: typeof a == "function" ? "pointer" : void 0
|
|
84
84
|
},
|
|
85
85
|
children: /* @__PURE__ */ e(
|
|
86
86
|
U,
|
|
@@ -111,30 +111,42 @@ function de({
|
|
|
111
111
|
gap: 2.5,
|
|
112
112
|
inlineCSS: {
|
|
113
113
|
borderRadius: 12,
|
|
114
|
-
backgroundColor: i ?
|
|
114
|
+
backgroundColor: i ? p.primary.pageControl : c[10]
|
|
115
115
|
},
|
|
116
116
|
children: [
|
|
117
117
|
/* @__PURE__ */ e(
|
|
118
|
-
|
|
118
|
+
I,
|
|
119
119
|
{
|
|
120
120
|
tag: "p",
|
|
121
121
|
variant: "b3R",
|
|
122
122
|
inlineCSS: {
|
|
123
123
|
whiteSpace: "pre-wrap",
|
|
124
|
-
wordBreak: "break-all"
|
|
124
|
+
wordBreak: "break-all",
|
|
125
|
+
userSelect: "text",
|
|
126
|
+
"& *": {
|
|
127
|
+
userSelect: "text"
|
|
128
|
+
}
|
|
125
129
|
},
|
|
126
|
-
children:
|
|
130
|
+
children: P ? u.slice(0, N) + "..." : u
|
|
127
131
|
}
|
|
128
132
|
),
|
|
129
|
-
|
|
133
|
+
P && /* @__PURE__ */ e(
|
|
130
134
|
Q,
|
|
131
135
|
{
|
|
132
136
|
variant: "text",
|
|
133
137
|
size: "xSmall",
|
|
134
|
-
endAdornment: /* @__PURE__ */ e(
|
|
135
|
-
onClick:
|
|
138
|
+
endAdornment: /* @__PURE__ */ e(C, { name: "ChevronRightLine" }),
|
|
139
|
+
onClick: B,
|
|
136
140
|
inlineCSS: {
|
|
137
|
-
marginLeft: "auto"
|
|
141
|
+
marginLeft: "auto",
|
|
142
|
+
'&:active:not([aria-disabled="true"])': {
|
|
143
|
+
backgroundColor: p.primary.main
|
|
144
|
+
},
|
|
145
|
+
...D && {
|
|
146
|
+
'&:hover:not([aria-disabled="true"])': {
|
|
147
|
+
backgroundColor: p.primary.main
|
|
148
|
+
}
|
|
149
|
+
}
|
|
138
150
|
},
|
|
139
151
|
children: "전체보기"
|
|
140
152
|
}
|
|
@@ -143,50 +155,50 @@ function de({
|
|
|
143
155
|
}
|
|
144
156
|
)
|
|
145
157
|
] }),
|
|
146
|
-
|
|
158
|
+
f && /* @__PURE__ */ n(q, { children: [
|
|
147
159
|
/* @__PURE__ */ n(
|
|
148
160
|
A,
|
|
149
161
|
{
|
|
150
|
-
ref:
|
|
151
|
-
isMenuOpen: !!
|
|
152
|
-
menuId: `message-${
|
|
153
|
-
onClick:
|
|
162
|
+
ref: F,
|
|
163
|
+
isMenuOpen: !!S,
|
|
164
|
+
menuId: `message-${k}-menu`,
|
|
165
|
+
onClick: z,
|
|
154
166
|
size: "xSmall",
|
|
155
167
|
inlineCSS: {
|
|
156
168
|
padding: E.content(0.5),
|
|
157
169
|
gap: E.content(0.5),
|
|
158
170
|
borderRadius: 200,
|
|
159
|
-
backgroundColor:
|
|
171
|
+
backgroundColor: S ? c[10] : "transparent",
|
|
160
172
|
cursor: "pointer",
|
|
161
|
-
...
|
|
173
|
+
...D && {
|
|
162
174
|
"&:hover": {
|
|
163
|
-
backgroundColor: `${
|
|
175
|
+
backgroundColor: `${c[10]} !important`
|
|
164
176
|
}
|
|
165
177
|
},
|
|
166
178
|
"&:active": {
|
|
167
|
-
backgroundColor: `${
|
|
179
|
+
backgroundColor: `${c[10]} !important`
|
|
168
180
|
}
|
|
169
181
|
},
|
|
170
182
|
children: [
|
|
171
183
|
/* @__PURE__ */ e(
|
|
172
|
-
|
|
184
|
+
C,
|
|
173
185
|
{
|
|
174
186
|
name: "ResetLine",
|
|
175
187
|
size: "xSmall",
|
|
176
188
|
color: "grey.70",
|
|
177
189
|
inlineCSS: {
|
|
178
|
-
color: `${
|
|
190
|
+
color: `${c[70]} !important`
|
|
179
191
|
}
|
|
180
192
|
}
|
|
181
193
|
),
|
|
182
194
|
/* @__PURE__ */ e(
|
|
183
|
-
|
|
195
|
+
C,
|
|
184
196
|
{
|
|
185
197
|
name: "CloseLine",
|
|
186
198
|
size: "xSmall",
|
|
187
199
|
color: "etc.red",
|
|
188
200
|
inlineCSS: {
|
|
189
|
-
color: `${
|
|
201
|
+
color: `${K.red} !important`
|
|
190
202
|
}
|
|
191
203
|
}
|
|
192
204
|
)
|
|
@@ -196,21 +208,21 @@ function de({
|
|
|
196
208
|
/* @__PURE__ */ n(
|
|
197
209
|
X,
|
|
198
210
|
{
|
|
199
|
-
id: `message-${
|
|
200
|
-
anchorRef:
|
|
201
|
-
open:
|
|
211
|
+
id: `message-${k}-menu`,
|
|
212
|
+
anchorRef: F,
|
|
213
|
+
open: S,
|
|
202
214
|
onClose: t,
|
|
203
215
|
onChange: O,
|
|
204
216
|
width: 160,
|
|
205
217
|
placement: "bottom-left",
|
|
206
218
|
children: [
|
|
207
|
-
/* @__PURE__ */ e(
|
|
208
|
-
/* @__PURE__ */ e(
|
|
219
|
+
/* @__PURE__ */ e(T, { value: "resend", children: "재전송" }),
|
|
220
|
+
/* @__PURE__ */ e(T, { value: "delete", children: "삭제" })
|
|
209
221
|
]
|
|
210
222
|
}
|
|
211
223
|
)
|
|
212
224
|
] }),
|
|
213
|
-
!
|
|
225
|
+
!f && /* @__PURE__ */ n(
|
|
214
226
|
d,
|
|
215
227
|
{
|
|
216
228
|
flexDirection: "column",
|
|
@@ -219,19 +231,19 @@ function de({
|
|
|
219
231
|
whiteSpace: "nowrap"
|
|
220
232
|
},
|
|
221
233
|
children: [
|
|
222
|
-
i &&
|
|
223
|
-
|
|
234
|
+
i && g > 0 && l === "SUCCEEDED" && /* @__PURE__ */ e(
|
|
235
|
+
I,
|
|
224
236
|
{
|
|
225
237
|
tag: "span",
|
|
226
238
|
variant: "c5B",
|
|
227
239
|
"aria-hidden": !0,
|
|
228
240
|
inlineCSS: {
|
|
229
|
-
color:
|
|
241
|
+
color: p.primary.text
|
|
230
242
|
},
|
|
231
|
-
children:
|
|
243
|
+
children: g
|
|
232
244
|
}
|
|
233
245
|
),
|
|
234
|
-
i &&
|
|
246
|
+
i && g > 0 && l === "PENDING" && /* @__PURE__ */ e(
|
|
235
247
|
Y,
|
|
236
248
|
{
|
|
237
249
|
size: "small",
|
|
@@ -243,15 +255,15 @@ function de({
|
|
|
243
255
|
}
|
|
244
256
|
),
|
|
245
257
|
/* @__PURE__ */ e(
|
|
246
|
-
|
|
258
|
+
I,
|
|
247
259
|
{
|
|
248
260
|
tag: "span",
|
|
249
261
|
variant: "c5R",
|
|
250
262
|
color: "etc.dimmed01",
|
|
251
263
|
inlineCSS: {
|
|
252
|
-
display:
|
|
264
|
+
display: R ? void 0 : "none"
|
|
253
265
|
},
|
|
254
|
-
children: V(
|
|
266
|
+
children: V($).format("A h:mm")
|
|
255
267
|
}
|
|
256
268
|
)
|
|
257
269
|
]
|
|
@@ -20,5 +20,5 @@ export interface ImageProps extends Omit<HTMLProps<HTMLImageElement>, 'onError'>
|
|
|
20
20
|
enableErrorFallback?: boolean;
|
|
21
21
|
renderErrorFallback?: () => ReactNode;
|
|
22
22
|
}
|
|
23
|
-
declare const Image:
|
|
23
|
+
declare const Image: import('react').ForwardRefExoticComponent<Omit<ImageProps, "ref"> & import('react').RefAttributes<HTMLImageElement>>;
|
|
24
24
|
export default Image;
|
|
@@ -7,7 +7,7 @@ export declare function getHorizontalLayoutRows(images: {
|
|
|
7
7
|
originalWidth?: number;
|
|
8
8
|
width: number;
|
|
9
9
|
height: number;
|
|
10
|
-
}[], blocks: ReactElement<MasonryBlockProps>[], rowCount: number, fallbackWidth: number): ReactElement<MasonryBlockProps
|
|
10
|
+
}[], blocks: ReactElement<MasonryBlockProps>[], rowCount: number, fallbackWidth: number): ReactElement<MasonryBlockProps, string | import('react').JSXElementConstructor<any>>[][];
|
|
11
11
|
export declare function findNextFocusableElement(currentElement: HTMLDivElement, keyDirection: 'left' | 'right' | 'up' | 'down', candidates: (HTMLDivElement | null)[]): HTMLDivElement | null;
|
|
12
12
|
export declare function getNextIndexHorizontalFromRows(rows: HTMLDivElement[][], currentIndex: number, keyDirection: 'up' | 'down' | 'left' | 'right'): number | null;
|
|
13
13
|
export declare function findImageInChildren(children: ReactNode): ReactElement<ImageProps> | null;
|
|
@@ -17,5 +17,5 @@ export interface MasonryBlockProps extends FlexboxProps {
|
|
|
17
17
|
}>;
|
|
18
18
|
setInnerRef?: (ref: HTMLDivElement | null) => void;
|
|
19
19
|
}
|
|
20
|
-
declare const MasonryBlock:
|
|
20
|
+
declare const MasonryBlock: import('react').ForwardRefExoticComponent<Omit<MasonryBlockProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
21
21
|
export default MasonryBlock;
|
|
@@ -19,5 +19,5 @@ export interface TimePickerProps extends Omit<FlexboxProps, 'onChange'> {
|
|
|
19
19
|
renderStartTimeLabel?: (item: TimePickerItem, isSelected: boolean) => ReactNode;
|
|
20
20
|
renderEndTimeLabel?: (item: TimePickerItem, isSelected: boolean) => ReactNode;
|
|
21
21
|
}
|
|
22
|
-
declare const TimePicker:
|
|
22
|
+
declare const TimePicker: import('react').ForwardRefExoticComponent<Omit<TimePickerProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
23
23
|
export default TimePicker;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsxs as R, jsx as c } from "react/jsx-runtime";
|
|
2
|
-
import { forwardRef as O, useState as j, useRef as w, useEffect as r } from "react";
|
|
3
|
-
import {
|
|
2
|
+
import { forwardRef as O, useState as j, useRef as w, useCallback as Q, useEffect as r } from "react";
|
|
3
|
+
import { Flexbox as U, Typography as S, ChainPicker as I } from "@dotss/ui";
|
|
4
4
|
import z from "@emotion/styled";
|
|
5
|
-
import
|
|
6
|
-
const
|
|
5
|
+
import x from "../../utils/getTimeRange/getTimeRange.mjs";
|
|
6
|
+
const V = z.div`
|
|
7
7
|
position: relative;
|
|
8
8
|
display: flex;
|
|
9
9
|
align-items: center;
|
|
@@ -11,36 +11,36 @@ const U = z.div`
|
|
|
11
11
|
gap: ${({ theme: { spacing: o } }) => o.content(7)}px;
|
|
12
12
|
width: 100%;
|
|
13
13
|
padding: ${({ theme: { spacing: o } }) => o.content(2)}px 0;
|
|
14
|
-
`,
|
|
14
|
+
`, W = z.div`
|
|
15
15
|
position: absolute;
|
|
16
16
|
width: 100%;
|
|
17
17
|
height: 54px;
|
|
18
18
|
background: ${({ theme: o }) => o.palette.background.primary};
|
|
19
19
|
border-radius: 12px;
|
|
20
|
-
`,
|
|
20
|
+
`, C = O(function({
|
|
21
21
|
onChange: F,
|
|
22
22
|
onChangeStartTime: p,
|
|
23
23
|
onChangeEndTime: s,
|
|
24
24
|
startTime: l = 9,
|
|
25
|
-
endTime:
|
|
26
|
-
range:
|
|
25
|
+
endTime: t = 12,
|
|
26
|
+
range: n = [0, 24],
|
|
27
27
|
step: i = 1,
|
|
28
|
-
startTimeChainPickerProps:
|
|
29
|
-
endTimeChainPickerProps:
|
|
28
|
+
startTimeChainPickerProps: u,
|
|
29
|
+
endTimeChainPickerProps: d,
|
|
30
30
|
timePickerHighlightProps: H,
|
|
31
31
|
renderStartTimeLabel: N,
|
|
32
32
|
renderEndTimeLabel: q,
|
|
33
33
|
inlineCSS: A,
|
|
34
34
|
...B
|
|
35
35
|
}, D) {
|
|
36
|
-
const [
|
|
37
|
-
|
|
38
|
-
),
|
|
39
|
-
|
|
40
|
-
),
|
|
36
|
+
const [f, y] = j(l), [m, b] = j(t), E = w(
|
|
37
|
+
x(0, 24, { minTime: n[0], maxTime: n[1] - i })
|
|
38
|
+
), a = w(
|
|
39
|
+
x(0, 24, { minTime: l + i, maxTime: n[1] })
|
|
40
|
+
), h = Q((e, $) => {
|
|
41
41
|
const [v, M] = e.label.split(":").map(Number), K = v >= 12, g = v % 12 || 12, L = K ? "오후" : "오전";
|
|
42
42
|
return /* @__PURE__ */ R(
|
|
43
|
-
|
|
43
|
+
U,
|
|
44
44
|
{
|
|
45
45
|
gap: 1,
|
|
46
46
|
alignItems: "center",
|
|
@@ -48,75 +48,73 @@ const U = z.div`
|
|
|
48
48
|
"aria-label": `${L} ${g}시 ${M}분`,
|
|
49
49
|
inlineCSS: { width: "82px" },
|
|
50
50
|
children: [
|
|
51
|
-
/* @__PURE__ */ c(S, { tag: "span", variant:
|
|
52
|
-
/* @__PURE__ */ c(S, { tag: "span", variant:
|
|
51
|
+
/* @__PURE__ */ c(S, { tag: "span", variant: $ ? "h5M" : "b5M", children: L }),
|
|
52
|
+
/* @__PURE__ */ c(S, { tag: "span", variant: $ ? "h2M" : "h4M", children: `${g}:${M.toString().padStart(2, "0")}` })
|
|
53
53
|
]
|
|
54
54
|
}
|
|
55
55
|
);
|
|
56
|
-
}, G = (e) => {
|
|
57
|
-
y(e),
|
|
58
|
-
minTime: e + i >
|
|
59
|
-
maxTime:
|
|
60
|
-
}), e >=
|
|
56
|
+
}, []), G = (e) => {
|
|
57
|
+
y(e), a.current = x(0, 24, {
|
|
58
|
+
minTime: e + i > n[1] ? n[1] : e + i,
|
|
59
|
+
maxTime: n[1]
|
|
60
|
+
}), e >= t - 0.5 && b(a.current[0].value);
|
|
61
61
|
}, J = (e) => {
|
|
62
|
-
|
|
62
|
+
b(e);
|
|
63
63
|
};
|
|
64
64
|
return r(() => {
|
|
65
|
-
|
|
66
|
-
minTime: l + i >
|
|
67
|
-
maxTime:
|
|
65
|
+
a.current = x(0, 24, {
|
|
66
|
+
minTime: l + i > n[1] ? n[1] : l + i,
|
|
67
|
+
maxTime: n[1]
|
|
68
68
|
});
|
|
69
|
-
}, [l,
|
|
69
|
+
}, [l, t, n, i]), r(() => {
|
|
70
70
|
y(l);
|
|
71
71
|
}, [l]), r(() => {
|
|
72
|
-
l >=
|
|
73
|
-
}, [l,
|
|
74
|
-
F(
|
|
75
|
-
}, [
|
|
76
|
-
p == null || p(
|
|
77
|
-
}, [
|
|
78
|
-
s == null || s(
|
|
79
|
-
}, [
|
|
80
|
-
/* @__PURE__ */ c(
|
|
72
|
+
l >= t - 0.5 ? b(a.current[0].value) : b(t);
|
|
73
|
+
}, [l, t]), r(() => {
|
|
74
|
+
F(f, m);
|
|
75
|
+
}, [f, m]), r(() => {
|
|
76
|
+
p == null || p(f);
|
|
77
|
+
}, [f]), r(() => {
|
|
78
|
+
s == null || s(m);
|
|
79
|
+
}, [m]), /* @__PURE__ */ R(V, { ref: D, css: A, role: "group", "aria-label": "시간 선택", ...B, children: [
|
|
80
|
+
/* @__PURE__ */ c(W, { ...H, "aria-hidden": !0 }),
|
|
81
81
|
/* @__PURE__ */ c(
|
|
82
82
|
I,
|
|
83
83
|
{
|
|
84
84
|
column: E.current,
|
|
85
85
|
value: l,
|
|
86
86
|
onChange: G,
|
|
87
|
-
renderLabel: N ||
|
|
87
|
+
renderLabel: N || h,
|
|
88
88
|
"aria-label": "시작 시간 선택",
|
|
89
89
|
inlineCSS: {
|
|
90
90
|
"& > li": {
|
|
91
91
|
padding: 0
|
|
92
92
|
},
|
|
93
|
-
...
|
|
93
|
+
...u == null ? void 0 : u.inlineCSS
|
|
94
94
|
},
|
|
95
|
-
...
|
|
96
|
-
}
|
|
97
|
-
`start-time-${a}`
|
|
95
|
+
...u
|
|
96
|
+
}
|
|
98
97
|
),
|
|
99
98
|
/* @__PURE__ */ c(S, { variant: "h5M", color: "grey.50", "aria-hidden": !0, inlineCSS: { zIndex: 1 }, children: "부터" }),
|
|
100
99
|
/* @__PURE__ */ c(
|
|
101
100
|
I,
|
|
102
101
|
{
|
|
103
|
-
column:
|
|
104
|
-
value:
|
|
102
|
+
column: a.current,
|
|
103
|
+
value: t,
|
|
105
104
|
onChange: J,
|
|
106
|
-
renderLabel: q ||
|
|
105
|
+
renderLabel: q || h,
|
|
107
106
|
"aria-label": "종료 시간 선택",
|
|
108
107
|
inlineCSS: {
|
|
109
108
|
"& > li": {
|
|
110
109
|
padding: 0
|
|
111
110
|
},
|
|
112
|
-
...
|
|
111
|
+
...d == null ? void 0 : d.inlineCSS
|
|
113
112
|
},
|
|
114
|
-
...
|
|
115
|
-
}
|
|
116
|
-
`end-time-${u}`
|
|
113
|
+
...d
|
|
114
|
+
}
|
|
117
115
|
)
|
|
118
116
|
] });
|
|
119
117
|
});
|
|
120
118
|
export {
|
|
121
|
-
|
|
119
|
+
C as default
|
|
122
120
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ReactNode, SyntheticEvent } from 'react';
|
|
2
|
-
import { ImageProps } from '../../../../shared/components/Image';
|
|
3
2
|
import { FlexboxProps } from 'node_modules/@dotss/ui/Flexbox/Flexbox';
|
|
3
|
+
import { ImageProps } from '../../../../shared/components/Image';
|
|
4
4
|
import { BannerProps } from '..';
|
|
5
5
|
export interface Carousel1AccountProps extends Omit<FlexboxProps, 'title' | 'id'> {
|
|
6
6
|
id: number;
|
|
@@ -1,71 +1,83 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import S from "../../../../shared/components/Carousel/
|
|
7
|
-
import w from "../../../../shared/components/
|
|
1
|
+
import { jsx as e, Fragment as C, jsxs as l } from "react/jsx-runtime";
|
|
2
|
+
import k from "@dotss/ui/core/useTheme";
|
|
3
|
+
import c from "@dotss/ui/Flexbox";
|
|
4
|
+
import v from "@dotss/ui/hooks/useCheckHoverPossible/useCheckHoverPossible";
|
|
5
|
+
import d from "@dotss/ui/Typography";
|
|
6
|
+
import S from "../../../../shared/components/Carousel/Carousel.mjs";
|
|
7
|
+
import w from "../../../../shared/components/Carousel/CarouselSlide/CarouselSlide.mjs";
|
|
8
|
+
import x from "../../../../shared/components/Image/Image.mjs";
|
|
8
9
|
import "@dotss/ui";
|
|
9
|
-
function
|
|
10
|
+
function I({
|
|
10
11
|
id: p,
|
|
11
|
-
title:
|
|
12
|
+
title: s,
|
|
12
13
|
banners: m,
|
|
13
|
-
onClickBanner:
|
|
14
|
-
imageProps:
|
|
15
|
-
...
|
|
14
|
+
onClickBanner: a,
|
|
15
|
+
imageProps: u,
|
|
16
|
+
...g
|
|
16
17
|
}) {
|
|
17
|
-
const { spacing:
|
|
18
|
-
|
|
18
|
+
const { spacing: i, palette: n } = k(), { isHoverPossible: h } = v(), b = (o, t) => (r) => {
|
|
19
|
+
a && typeof a == "function" && (r.stopPropagation(), r.preventDefault(), a(o, t, r));
|
|
19
20
|
};
|
|
20
|
-
return /* @__PURE__ */
|
|
21
|
-
/* @__PURE__ */
|
|
22
|
-
|
|
21
|
+
return /* @__PURE__ */ e(C, { children: /* @__PURE__ */ l(c, { flexDirection: "column", inlineCSS: { width: "100%" }, ...g, children: [
|
|
22
|
+
/* @__PURE__ */ e(
|
|
23
|
+
d,
|
|
23
24
|
{
|
|
24
25
|
id: `banner-account-carousel1-${p}`,
|
|
25
26
|
variant: "h2B",
|
|
26
27
|
inlineCSS: {
|
|
27
28
|
whiteSpace: "pre-wrap",
|
|
28
29
|
wordBreak: "keep-all",
|
|
29
|
-
paddingLeft:
|
|
30
|
-
paddingRight:
|
|
31
|
-
marginBottom:
|
|
30
|
+
paddingLeft: i.content(4),
|
|
31
|
+
paddingRight: i.content(4),
|
|
32
|
+
marginBottom: i.content(3)
|
|
32
33
|
},
|
|
33
|
-
children:
|
|
34
|
+
children: s
|
|
34
35
|
}
|
|
35
36
|
),
|
|
36
|
-
/* @__PURE__ */
|
|
37
|
-
|
|
37
|
+
/* @__PURE__ */ e(S, { rowCount: 2, step: 1, spacing: 5, children: m.map(({ id: o, title: t, url: r, image: f }) => /* @__PURE__ */ e(w, { children: /* @__PURE__ */ l(
|
|
38
|
+
c,
|
|
38
39
|
{
|
|
39
40
|
tag: "a",
|
|
40
|
-
href:
|
|
41
|
+
href: r,
|
|
41
42
|
alignItems: "center",
|
|
42
43
|
gap: 4,
|
|
43
44
|
draggable: !1,
|
|
44
|
-
onClick:
|
|
45
|
-
inlineCSS: {
|
|
45
|
+
onClick: b(r, o),
|
|
46
|
+
inlineCSS: {
|
|
47
|
+
width: 264,
|
|
48
|
+
borderRadius: 12,
|
|
49
|
+
'&:active:not([aria-disabled="true"])': {
|
|
50
|
+
backgroundColor: n.background.primary
|
|
51
|
+
},
|
|
52
|
+
...h && {
|
|
53
|
+
'&:hover:not([aria-disabled="true"])': {
|
|
54
|
+
backgroundColor: n.background.primary
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
},
|
|
46
58
|
children: [
|
|
47
|
-
/* @__PURE__ */
|
|
48
|
-
|
|
59
|
+
/* @__PURE__ */ e(
|
|
60
|
+
x,
|
|
49
61
|
{
|
|
50
|
-
src:
|
|
62
|
+
src: f || "",
|
|
51
63
|
width: 140,
|
|
52
64
|
height: 98,
|
|
53
|
-
alt: `${
|
|
65
|
+
alt: `${t} 이미지`,
|
|
54
66
|
"aria-hidden": !0,
|
|
55
67
|
draggable: !1,
|
|
56
68
|
borderRadius: 12,
|
|
57
69
|
enableFallback: !0,
|
|
58
70
|
enableErrorFallback: !0,
|
|
59
71
|
style: { objectFit: "cover" },
|
|
60
|
-
...
|
|
72
|
+
...u
|
|
61
73
|
}
|
|
62
74
|
),
|
|
63
|
-
/* @__PURE__ */
|
|
75
|
+
/* @__PURE__ */ e(d, { tag: "p", variant: "b2M", lineClamp: 2, children: t })
|
|
64
76
|
]
|
|
65
77
|
}
|
|
66
|
-
) }, `tictoccroc-carousel1-account-${
|
|
78
|
+
) }, `tictoccroc-carousel1-account-${o}`)) })
|
|
67
79
|
] }) });
|
|
68
80
|
}
|
|
69
81
|
export {
|
|
70
|
-
|
|
82
|
+
I as default
|
|
71
83
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ReactNode, SyntheticEvent } from 'react';
|
|
2
|
-
import { ImageProps } from '../../../../shared/components/Image';
|
|
3
2
|
import { FlexboxProps } from 'node_modules/@dotss/ui/Flexbox/Flexbox';
|
|
3
|
+
import { ImageProps } from '../../../../shared/components/Image';
|
|
4
4
|
import { BannerProps } from '..';
|
|
5
5
|
export interface Carousel2AccountProps extends Omit<FlexboxProps, 'title' | 'id'> {
|
|
6
6
|
id: number;
|
|
@@ -1,39 +1,40 @@
|
|
|
1
|
-
import { jsxs as n, jsx as
|
|
2
|
-
import
|
|
1
|
+
import { jsxs as n, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import k from "@dotss/ui/core/useTheme";
|
|
3
3
|
import l from "@dotss/ui/Flexbox";
|
|
4
|
+
import v from "@dotss/ui/hooks/useCheckHoverPossible/useCheckHoverPossible";
|
|
4
5
|
import c from "@dotss/ui/Typography";
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
6
|
+
import x from "../../../../shared/components/Carousel/Carousel.mjs";
|
|
7
|
+
import S from "../../../../shared/components/Carousel/CarouselSlide/CarouselSlide.mjs";
|
|
8
|
+
import w from "../../../../shared/components/Image/Image.mjs";
|
|
8
9
|
import "@dotss/ui";
|
|
9
|
-
function
|
|
10
|
-
id:
|
|
11
|
-
title:
|
|
12
|
-
banners:
|
|
13
|
-
onClickBanner:
|
|
14
|
-
imageProps:
|
|
10
|
+
function T({
|
|
11
|
+
id: s,
|
|
12
|
+
title: u,
|
|
13
|
+
banners: m,
|
|
14
|
+
onClickBanner: a,
|
|
15
|
+
imageProps: g,
|
|
15
16
|
...h
|
|
16
17
|
}) {
|
|
17
|
-
const { spacing:
|
|
18
|
-
|
|
18
|
+
const { spacing: i, palette: d } = k(), { isHoverPossible: f } = v(), b = (o, t) => (e) => {
|
|
19
|
+
a && typeof a == "function" && (e.stopPropagation(), e.preventDefault(), a(o, t, e));
|
|
19
20
|
};
|
|
20
21
|
return /* @__PURE__ */ n(l, { tag: "section", flexDirection: "column", inlineCSS: { width: "100%" }, ...h, children: [
|
|
21
|
-
/* @__PURE__ */
|
|
22
|
+
/* @__PURE__ */ r(
|
|
22
23
|
c,
|
|
23
24
|
{
|
|
24
|
-
id: `banner-account-carousel2-${
|
|
25
|
+
id: `banner-account-carousel2-${s}`,
|
|
25
26
|
variant: "h2B",
|
|
26
27
|
inlineCSS: {
|
|
27
28
|
whiteSpace: "pre-wrap",
|
|
28
29
|
wordBreak: "keep-all",
|
|
29
|
-
paddingLeft:
|
|
30
|
-
paddingRight:
|
|
31
|
-
marginBottom:
|
|
30
|
+
paddingLeft: i.content(4),
|
|
31
|
+
paddingRight: i.content(4),
|
|
32
|
+
marginBottom: i.content(4)
|
|
32
33
|
},
|
|
33
|
-
children:
|
|
34
|
+
children: u
|
|
34
35
|
}
|
|
35
36
|
),
|
|
36
|
-
/* @__PURE__ */
|
|
37
|
+
/* @__PURE__ */ r(x, { rowCount: 1, step: 1, spacing: 3, children: m.map(({ id: o, title: t, subTitle: e, url: p, image: C }) => /* @__PURE__ */ r(S, { children: /* @__PURE__ */ n(
|
|
37
38
|
l,
|
|
38
39
|
{
|
|
39
40
|
tag: "a",
|
|
@@ -41,34 +42,45 @@ function R({
|
|
|
41
42
|
flexDirection: "column",
|
|
42
43
|
gap: 3,
|
|
43
44
|
draggable: !1,
|
|
44
|
-
onClick:
|
|
45
|
-
inlineCSS: {
|
|
45
|
+
onClick: b(p, o),
|
|
46
|
+
inlineCSS: {
|
|
47
|
+
width: 240,
|
|
48
|
+
borderRadius: 12,
|
|
49
|
+
'&:active:not([aria-disabled="true"])': {
|
|
50
|
+
backgroundColor: d.background.primary
|
|
51
|
+
},
|
|
52
|
+
...f && {
|
|
53
|
+
'&:hover:not([aria-disabled="true"])': {
|
|
54
|
+
backgroundColor: d.background.primary
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
},
|
|
46
58
|
children: [
|
|
47
|
-
/* @__PURE__ */
|
|
48
|
-
|
|
59
|
+
/* @__PURE__ */ r(
|
|
60
|
+
w,
|
|
49
61
|
{
|
|
50
|
-
src:
|
|
62
|
+
src: C || "",
|
|
51
63
|
width: 240,
|
|
52
64
|
height: 168,
|
|
53
|
-
alt: `${
|
|
65
|
+
alt: `${t} 이미지`,
|
|
54
66
|
"aria-hidden": !0,
|
|
55
67
|
draggable: !1,
|
|
56
68
|
borderRadius: 12,
|
|
57
69
|
enableFallback: !0,
|
|
58
70
|
enableErrorFallback: !0,
|
|
59
71
|
style: { objectFit: "cover" },
|
|
60
|
-
...
|
|
72
|
+
...g
|
|
61
73
|
}
|
|
62
74
|
),
|
|
63
75
|
/* @__PURE__ */ n(l, { flexDirection: "column", gap: 1, children: [
|
|
64
|
-
/* @__PURE__ */
|
|
65
|
-
/* @__PURE__ */
|
|
76
|
+
/* @__PURE__ */ r(c, { tag: "p", variant: "h4B", lineClamp: 1, children: t }),
|
|
77
|
+
/* @__PURE__ */ r(c, { tag: "p", variant: "b4R", lineClamp: 1, color: "grey.70", children: e })
|
|
66
78
|
] })
|
|
67
79
|
]
|
|
68
80
|
}
|
|
69
|
-
) }, `tictoccroc-carousel2-account-${
|
|
81
|
+
) }, `tictoccroc-carousel2-account-${o}`)) })
|
|
70
82
|
] });
|
|
71
83
|
}
|
|
72
84
|
export {
|
|
73
|
-
|
|
85
|
+
T as default
|
|
74
86
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ReactNode, SyntheticEvent } from 'react';
|
|
2
|
-
import { ImageProps } from '../../../../shared/components/Image';
|
|
3
2
|
import { FlexboxProps } from 'node_modules/@dotss/ui/Flexbox/Flexbox';
|
|
3
|
+
import { ImageProps } from '../../../../shared/components/Image';
|
|
4
4
|
import { BannerProps } from '..';
|
|
5
5
|
export interface TextAccountProps extends Omit<FlexboxProps, 'title' | 'id'> {
|
|
6
6
|
id: number;
|
package/dist/teacher/profile/components/AvailableScheduleSection/AvailableScheduleSection.d.ts
CHANGED
|
@@ -18,5 +18,5 @@ export interface AvailableScheduleSectionProps extends FlexboxProps {
|
|
|
18
18
|
};
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
|
-
declare const AvailableScheduleSection:
|
|
21
|
+
declare const AvailableScheduleSection: import('react').ForwardRefExoticComponent<Omit<AvailableScheduleSectionProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
22
22
|
export default AvailableScheduleSection;
|
|
@@ -3,5 +3,5 @@ export interface CareNoteSectionProps extends FlexboxProps {
|
|
|
3
3
|
totalCount: number;
|
|
4
4
|
onClickViewAll?: () => void;
|
|
5
5
|
}
|
|
6
|
-
declare const CareNoteSection:
|
|
6
|
+
declare const CareNoteSection: import('react').ForwardRefExoticComponent<Omit<CareNoteSectionProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
7
7
|
export default CareNoteSection;
|
|
@@ -3,5 +3,5 @@ export interface ParentReviewSectionProps extends FlexboxProps {
|
|
|
3
3
|
totalCount: number;
|
|
4
4
|
onClickViewAll?: () => void;
|
|
5
5
|
}
|
|
6
|
-
declare const ParentReviewSection:
|
|
6
|
+
declare const ParentReviewSection: import('react').ForwardRefExoticComponent<Omit<ParentReviewSectionProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
7
7
|
export default ParentReviewSection;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dotss/tictoccroc",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.3.
|
|
4
|
+
"version": "0.3.2",
|
|
5
5
|
"description": "Tictoccroc shared components, hooks, utils, and APIs for Dotss",
|
|
6
6
|
"main": "./dist/index.mjs",
|
|
7
7
|
"module": "./dist/index.mjs",
|
|
@@ -103,6 +103,7 @@
|
|
|
103
103
|
"devDependencies": {
|
|
104
104
|
"@emotion/react": "^11.14.0",
|
|
105
105
|
"@emotion/styled": "^11.14.0",
|
|
106
|
+
"@storybook/addon-docs": "^9.0.4",
|
|
106
107
|
"@storybook/addon-onboarding": "^9.0.4",
|
|
107
108
|
"@storybook/react-vite": "^9.0.4",
|
|
108
109
|
"@types/node": "^22.15.29",
|
|
@@ -111,7 +112,11 @@
|
|
|
111
112
|
"glob": "^10.4.2",
|
|
112
113
|
"storybook": "^9.0.4",
|
|
113
114
|
"vite-plugin-dts": "^4.5.4",
|
|
114
|
-
"vitest": "^1.6.0"
|
|
115
|
+
"vitest": "^1.6.0",
|
|
116
|
+
"react": "^18.0.0",
|
|
117
|
+
"react-dom": "^18.0.0",
|
|
118
|
+
"@types/react": "^18.0.0",
|
|
119
|
+
"@types/react-dom": "^18.0.0"
|
|
115
120
|
},
|
|
116
121
|
"peerDependencies": {
|
|
117
122
|
"@dotss/ui": ">=1.0.3",
|