@dotss/tictoccroc 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.
@@ -13,7 +13,7 @@ function ye({
13
13
  renderPagination: z,
14
14
  ...C
15
15
  }) {
16
- const { spacing: $ } = he(), [l, Y] = I(1), [w, ee] = I(0), [te, ne] = I(0), L = p(null), c = p(null), u = p(null), X = p(0), F = p(0), b = p(0), S = p(!1), D = p(!0), k = p(0), v = $.content(K), E = $.content(O), N = Q.toArray(Z).filter(ue).filter((e) => e.type === me), x = N.length, j = (e, t) => {
16
+ const { spacing: $ } = he(), [l, Y] = I(1), [w, ee] = I(1), [te, ne] = I(0), L = p(null), c = p(null), u = p(null), X = p(0), F = p(0), b = p(0), S = p(!1), D = p(!0), k = p(0), v = $.content(K), E = $.content(O), N = Q.toArray(Z).filter(ue).filter((e) => e.type === me), x = N.length, j = (e, t) => {
17
17
  X.current = e, F.current = t;
18
18
  }, M = () => {
19
19
  var o;
@@ -1,7 +1,7 @@
1
1
  import { FlexboxProps } from 'node_modules/@dotss/ui/Flexbox/Flexbox';
2
2
  export type BotMessageType = 'MATCHING_SUCCEEDED' | 'TEACHER_INQUIRED' | 'PARENT_CHANGED_OFFER_SCHEDULE' | 'PARENT_CHANGED_MATCHING_SCHEDULE' | 'TEACHER_APPLIED' | 'PARENT_SENT_OFFER' | 'KOK_MATCHING_SUCCEEDED' | 'APPLICATION_MATCHING_SUCCEEDED' | 'PARENT_REJECTED_APPLICATION' | 'TEACHER_REFUSED_OFFER' | 'PARENT_CANCELED_MATCHING' | 'TEACHER_CANCELED_MATCHING' | 'TEACHER_COMPLETED_CARE' | 'ADMIN_CANCELED_MATCHING';
3
3
  export type BotMessageCtaType = 'MY_CLASS_CHECK' | 'OFFER_CHECK' | 'CHANGE_INFO_CHECK' | 'MY_APPLICATION_INFO_VIEW' | 'CARE_NOTE_CHECK' | 'TEACHER_SELECTION';
4
- export type BotMessageSubCtaType = 'MATCHING';
4
+ export type BotMessageSubCtaTargetTable = 'MATCHING';
5
5
  export interface BotMessageOffer {
6
6
  careStartDate: string;
7
7
  careStartTime: string;
@@ -16,7 +16,7 @@ export interface BotMessageProps extends Omit<FlexboxProps, 'id' | 'title'> {
16
16
  ctaType?: BotMessageCtaType | null;
17
17
  ctaTargetTable?: string | null;
18
18
  ctaTargetId?: number | null;
19
- subCtaTargetTable?: BotMessageSubCtaType | null;
19
+ subCtaTargetTable?: BotMessageSubCtaTargetTable | null;
20
20
  subCtaTargetId?: number | null;
21
21
  mine: boolean;
22
22
  avatarUrl?: string;
@@ -29,7 +29,7 @@ export interface BotMessageProps extends Omit<FlexboxProps, 'id' | 'title'> {
29
29
  botMessageType: BotMessageType;
30
30
  ctaType?: BotMessageCtaType | null;
31
31
  ctaTargetId?: number | null;
32
- subCtaTargetTable?: BotMessageSubCtaType | null;
32
+ subCtaTargetTable?: BotMessageSubCtaTargetTable | null;
33
33
  subCtaTargetId?: number | null;
34
34
  }) => void;
35
35
  onView?: () => void;
@@ -2,11 +2,11 @@ import { jsxs as t, jsx as r } from "react/jsx-runtime";
2
2
  import { useRef as E, useEffect as F } from "react";
3
3
  import { Flexbox as n, Typography as e, Button as L } from "@dotss/ui";
4
4
  import $ from "@dotss/ui/core/useTheme";
5
- import { getClassInfo as q, getCtaButtonText as z } from "./BotMessage.utils.mjs";
6
- import G from "../../Image/Image.mjs";
7
- import J from "../../../hooks/useInView/useInView.mjs";
5
+ import q from "dayjs";
6
+ import { getClassInfo as z, getCtaButtonText as G } from "./BotMessage.utils.mjs";
7
+ import J from "../../Image/Image.mjs";
8
+ import K from "../../../hooks/useInView/useInView.mjs";
8
9
  import S from "../../../utils/getCareTypeLabel/getCareTypeLabel.mjs";
9
- import K from "dayjs";
10
10
  function O({
11
11
  id: N,
12
12
  botMessageType: y,
@@ -29,10 +29,10 @@ function O({
29
29
  const {
30
30
  palette: { brand: j, grey: m, background: D },
31
31
  spacing: d
32
- } = $(), f = E(null), { isInView: u } = J(f), x = z(s), i = R, k = [
32
+ } = $(), f = E(null), { isInView: u } = K(f), x = G(s), i = R, k = [
33
33
  S(i == null ? void 0 : i.firstCareType),
34
34
  S(i == null ? void 0 : i.secondCareType)
35
- ].filter(Boolean).filter((M) => M !== "-").join("+"), c = q(i), H = () => o == null ? void 0 : o({ botMessageType: y, ctaType: s, ctaTargetId: C, subCtaTargetTable: b, subCtaTargetId: v });
35
+ ].filter(Boolean).filter((M) => M !== "-").join("+"), c = z(i), H = () => o == null ? void 0 : o({ botMessageType: y, ctaType: s, ctaTargetId: C, subCtaTargetTable: b, subCtaTargetId: v });
36
36
  return F(() => {
37
37
  u && (l == null || l());
38
38
  }, [u, l]), /* @__PURE__ */ t(
@@ -83,7 +83,7 @@ function O({
83
83
  inlineCSS: {
84
84
  whiteSpace: "nowrap"
85
85
  },
86
- children: K(w).format("A h:mm")
86
+ children: q(w).format("A h:mm")
87
87
  }
88
88
  )
89
89
  ]
@@ -104,7 +104,7 @@ function O({
104
104
  },
105
105
  children: [
106
106
  g && /* @__PURE__ */ r(
107
- G,
107
+ J,
108
108
  {
109
109
  src: g,
110
110
  width: 32,
@@ -1,5 +1,5 @@
1
1
  import { BotMessageCtaType, BotMessageProps } from '.';
2
- export declare function getCtaButtonText(ctaType?: BotMessageCtaType | null): "" | "공고 확인하기" | "변경내용 확인하기" | "나의 지원 내역 보러가기" | "돌봄노트 확인하기" | "선생님 선택하러 가기";
2
+ export declare function getCtaButtonText(ctaType?: BotMessageCtaType | null): "" | "내 수업 확인하기" | "공고 확인하기" | "변경내용 확인하기" | "나의 지원 내역 보러가기" | "돌봄노트 확인하기" | "선생님 선택하러 가기";
3
3
  export declare function getClassInfo(offer: object): {
4
4
  dateRangeText: string;
5
5
  timeRangeText: string;
@@ -3,7 +3,7 @@ import c from "../../../utils/getCareTypeLabel/getCareTypeLabel.mjs";
3
3
  function u(r) {
4
4
  switch (r) {
5
5
  case "MY_CLASS_CHECK":
6
- return "공고 확인하기";
6
+ return " 수업 확인하기";
7
7
  case "OFFER_CHECK":
8
8
  return "공고 확인하기";
9
9
  case "CHANGE_INFO_CHECK":
@@ -1,4 +1,4 @@
1
- import { default as BotMessage, BotMessageCtaType, BotMessageOffer, BotMessageProps, BotMessageSubCtaType, BotMessageType } from './BotMessage';
1
+ import { default as BotMessage, BotMessageCtaType, BotMessageOffer, BotMessageProps, BotMessageSubCtaTargetTable, BotMessageType } from './BotMessage';
2
2
  export { getClassInfo, getCtaButtonText, getBotMessageLabel } from './BotMessage.utils';
3
- export type { BotMessageProps, BotMessageCtaType, BotMessageType, BotMessageOffer, BotMessageSubCtaType };
3
+ export type { BotMessageProps, BotMessageCtaType, BotMessageType, BotMessageOffer, BotMessageSubCtaTargetTable };
4
4
  export default BotMessage;
@@ -1,53 +1,61 @@
1
- import { jsxs as t, jsx as i } from "react/jsx-runtime";
2
- import { Flexbox as l, Skeleton as n } from "@dotss/ui";
3
- import h from "@dotss/ui/core/useTheme";
1
+ import { jsxs as r, jsx as e } from "react/jsx-runtime";
2
+ import { Flexbox as n, Skeleton as l } from "@dotss/ui";
3
+ import f from "@dotss/ui/core/useTheme";
4
4
  function x({
5
- mine: e = !1,
6
- showAvatar: r = !1,
5
+ mine: i = !1,
6
+ showAvatar: t = !1,
7
7
  showTime: o = !1,
8
- width: s = 200,
9
- inlineCSS: a,
10
- ...f
8
+ width: a = 200,
9
+ inlineCSS: s,
10
+ ...d
11
11
  }) {
12
- const { spacing: d } = h();
13
- return /* @__PURE__ */ t(
14
- l,
12
+ const { spacing: h } = f();
13
+ return /* @__PURE__ */ r(
14
+ n,
15
15
  {
16
16
  alignItems: "flex-end",
17
- flexDirection: e ? "row-reverse" : "row",
17
+ flexDirection: i ? "row-reverse" : "row",
18
18
  pl: 4,
19
19
  pr: 4,
20
20
  gap: 1,
21
- ...f,
21
+ ...d,
22
22
  inlineCSS: {
23
23
  overflowAnchor: "none",
24
- ...a
24
+ ...s
25
25
  },
26
26
  children: [
27
- /* @__PURE__ */ t(l, { alignItems: "flex-start", gap: 2.5, children: [
28
- !e && r && /* @__PURE__ */ i(n, { width: 32, height: 32, borderRadius: 200 }),
29
- /* @__PURE__ */ i(
30
- n,
27
+ /* @__PURE__ */ r(n, { alignItems: "flex-start", gap: 2.5, children: [
28
+ !i && t && /* @__PURE__ */ e(l, { width: 32, height: 32, borderRadius: 200 }),
29
+ /* @__PURE__ */ e(
30
+ l,
31
31
  {
32
- width: s,
32
+ width: a,
33
33
  height: 38,
34
34
  borderRadius: 12,
35
35
  inlineCSS: {
36
- marginLeft: !e && r ? d.content(10.5) : void 0
36
+ marginLeft: !i && t ? h.content(10.5) : void 0
37
37
  }
38
38
  }
39
39
  )
40
40
  ] }),
41
- /* @__PURE__ */ i(
42
- l,
41
+ /* @__PURE__ */ e(
42
+ n,
43
43
  {
44
44
  flexDirection: "column",
45
- alignItems: e ? "flex-end" : "flex-start",
46
45
  inlineCSS: {
47
- visibility: o ? "visible" : "hidden",
48
46
  whiteSpace: "nowrap"
49
47
  },
50
- children: /* @__PURE__ */ i(n, { width: 38, height: 12 })
48
+ children: /* @__PURE__ */ r(n, { flexDirection: "column", alignItems: i ? "flex-end" : "flex-start", gap: 1, children: [
49
+ /* @__PURE__ */ e(l, { width: 4.49, height: 12 }),
50
+ /* @__PURE__ */ e(
51
+ l,
52
+ {
53
+ width: 38,
54
+ height: 12,
55
+ inlineCSS: { display: o ? "visible" : "hidden" }
56
+ }
57
+ )
58
+ ] })
51
59
  }
52
60
  )
53
61
  ]
@@ -1,6 +1,6 @@
1
1
  import { jsxs as t, jsx as r, Fragment as O } from "react/jsx-runtime";
2
- import { useRef as b, useImperativeHandle as q, useEffect as x } from "react";
3
- import { Flexbox as s, Typography as v, Button as J, Icon as I, Menu as K, MenuBlock as $, CircularProgressIndicator as Q } from "@dotss/ui";
2
+ import { useRef as x, useImperativeHandle as q, useEffect as b } from "react";
3
+ import { Flexbox as s, Typography as C, Button as J, Icon as I, Menu as K, MenuBlock as $, CircularProgressIndicator as Q } from "@dotss/ui";
4
4
  import W from "@dotss/ui/core/useTheme";
5
5
  import { useCheckHoverPossible as X } from "@dotss/ui/hooks";
6
6
  import { MenuButton as Y } from "@dotss/ui/Menu";
@@ -8,11 +8,11 @@ import Z from "dayjs";
8
8
  import _ from "../../Image/Image.mjs";
9
9
  import V from "../../../hooks/useInView/useInView.mjs";
10
10
  function ar({
11
- id: C,
11
+ id: v,
12
12
  content: p = "",
13
13
  mine: e = !1,
14
- avatarUrl: h = "",
15
- unreadUserCount: f = 0,
14
+ avatarUrl: f = "",
15
+ unreadUserCount: h = 0,
16
16
  regDatetime: z,
17
17
  status: n,
18
18
  onView: c,
@@ -31,7 +31,7 @@ function ar({
31
31
  const {
32
32
  palette: { brand: y, grey: o, etc: A },
33
33
  spacing: w
34
- } = W(), { isHoverPossible: G } = X(), l = b(null), E = b(null), m = b(null);
34
+ } = W(), { isHoverPossible: G } = X(), l = x(null), E = x(null), m = x(null);
35
35
  q(R, () => l.current);
36
36
  const L = V(l), N = 300, d = n === "FAILED", P = p.length > N, H = (a) => {
37
37
  a === "resend" ? (i == null || i(), m.current = setTimeout(() => {
@@ -40,12 +40,12 @@ function ar({
40
40
  S == null || S();
41
41
  }, 200));
42
42
  };
43
- return x(() => {
43
+ return b(() => {
44
44
  L && (c == null || c());
45
- }, [L, c]), x(() => {
45
+ }, [L, c]), b(() => {
46
46
  var a;
47
47
  d && ((a = l == null ? void 0 : l.current) == null || a.scrollIntoView());
48
- }, [d]), x(() => () => {
48
+ }, [d]), b(() => () => {
49
49
  m.current && clearTimeout(m.current);
50
50
  }, []), /* @__PURE__ */ t(
51
51
  s,
@@ -65,10 +65,10 @@ function ar({
65
65
  },
66
66
  children: [
67
67
  /* @__PURE__ */ t(s, { alignItems: "flex-start", gap: 2.5, children: [
68
- !e && k && h && /* @__PURE__ */ r(
68
+ !e && k && f && /* @__PURE__ */ r(
69
69
  _,
70
70
  {
71
- src: h,
71
+ src: f,
72
72
  width: 32,
73
73
  height: 32,
74
74
  borderRadius: "50%",
@@ -86,7 +86,7 @@ function ar({
86
86
  pb: 2,
87
87
  pl: 3,
88
88
  pr: 3,
89
- ml: !e && !k && h ? 10.5 : void 0,
89
+ ml: !e && !k && f ? 10.5 : void 0,
90
90
  flexDirection: "column",
91
91
  gap: 2.5,
92
92
  inlineCSS: {
@@ -95,7 +95,7 @@ function ar({
95
95
  },
96
96
  children: [
97
97
  /* @__PURE__ */ r(
98
- v,
98
+ C,
99
99
  {
100
100
  tag: "p",
101
101
  variant: "b3R",
@@ -130,7 +130,7 @@ function ar({
130
130
  {
131
131
  ref: E,
132
132
  isMenuOpen: !!g,
133
- menuId: `message-${C}-menu`,
133
+ menuId: `message-${v}-menu`,
134
134
  onClick: B,
135
135
  size: "xSmall",
136
136
  inlineCSS: {
@@ -177,7 +177,7 @@ function ar({
177
177
  /* @__PURE__ */ t(
178
178
  K,
179
179
  {
180
- id: `message-${C}-menu`,
180
+ id: `message-${v}-menu`,
181
181
  anchorRef: E,
182
182
  open: g,
183
183
  onClose: i,
@@ -197,12 +197,11 @@ function ar({
197
197
  flexDirection: "column",
198
198
  alignItems: e ? "flex-end" : "flex-start",
199
199
  inlineCSS: {
200
- visibility: F ? "visible" : "hidden",
201
200
  whiteSpace: "nowrap"
202
201
  },
203
202
  children: [
204
- e && f > 0 && n === "SUCCEEDED" && /* @__PURE__ */ r(
205
- v,
203
+ e && h > 0 && n === "SUCCEEDED" && /* @__PURE__ */ r(
204
+ C,
206
205
  {
207
206
  tag: "span",
208
207
  variant: "c5B",
@@ -210,10 +209,10 @@ function ar({
210
209
  inlineCSS: {
211
210
  color: y.primary.text
212
211
  },
213
- children: f
212
+ children: h
214
213
  }
215
214
  ),
216
- e && f > 0 && n === "PENDING" && /* @__PURE__ */ r(
215
+ e && h > 0 && n === "PENDING" && /* @__PURE__ */ r(
217
216
  Q,
218
217
  {
219
218
  size: "small",
@@ -224,7 +223,18 @@ function ar({
224
223
  }
225
224
  }
226
225
  ),
227
- /* @__PURE__ */ r(v, { tag: "span", variant: "c5R", color: "etc.dimmed01", children: Z(z).format("A h:mm") })
226
+ /* @__PURE__ */ r(
227
+ C,
228
+ {
229
+ tag: "span",
230
+ variant: "c5R",
231
+ color: "etc.dimmed01",
232
+ inlineCSS: {
233
+ display: F ? void 0 : "none"
234
+ },
235
+ children: Z(z).format("A h:mm")
236
+ }
237
+ )
228
238
  ]
229
239
  }
230
240
  )
@@ -17,7 +17,7 @@ export interface ImageProps extends Omit<HTMLProps<HTMLImageElement>, 'onError'>
17
17
  wrapperProps?: FlexboxProps;
18
18
  enableFallback?: boolean;
19
19
  enableErrorFallback?: boolean;
20
- renderErrorFallback?: (hasError: boolean) => ReactNode;
20
+ renderErrorFallback?: () => ReactNode;
21
21
  }
22
22
  declare const Image: import('react').ForwardRefExoticComponent<Omit<ImageProps, "ref"> & import('react').RefAttributes<HTMLImageElement>>;
23
23
  export default Image;
@@ -1,4 +1,4 @@
1
- import { jsxs as L, jsx as d, Fragment as Y } from "react/jsx-runtime";
1
+ import { jsxs as L, jsx as c, Fragment as Y } from "react/jsx-runtime";
2
2
  import { forwardRef as Z, useRef as h, useImperativeHandle as w, useState as C, useEffect as R } from "react";
3
3
  import { Flexbox as M, Skeleton as U } from "@dotss/ui";
4
4
  import F from "../../hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.mjs";
@@ -11,9 +11,9 @@ const k = 100, ot = Z(
11
11
  height: o,
12
12
  fit: q = "cover",
13
13
  position: A = "center",
14
- alt: r,
14
+ alt: E,
15
15
  scale: D = 2,
16
- onLoad: E,
16
+ onLoad: r,
17
17
  onLazyLoad: g,
18
18
  lazy: I = !1,
19
19
  borderRadius: l,
@@ -21,21 +21,21 @@ const k = 100, ot = Z(
21
21
  withIntrinsicRatio: x = !1,
22
22
  enableFallback: T = !1,
23
23
  enableErrorFallback: W = !0,
24
- renderErrorFallback: c,
24
+ renderErrorFallback: f,
25
25
  wrapperProps: e = {},
26
26
  onError: H,
27
- ...u
27
+ ...d
28
28
  }, J) => {
29
- const a = h(null), $ = h(!1), m = h(null);
29
+ const u = h(null), $ = h(!1), m = h(null);
30
30
  w(J, () => m.current);
31
- const [y, K] = C(!1), [O, v] = C(!1), [f, S] = C(!1), j = b({ src: _, width: n, height: o, fit: q, position: A, scale: D, disabledResizing: G }), z = (t) => {
32
- v(!0), S(!1), typeof E == "function" && E(t);
31
+ const [a, K] = C(!1), [O, y] = C(!1), [v, S] = C(!1), j = b({ src: _, width: n, height: o, fit: q, position: A, scale: D, disabledResizing: G }), z = (t) => {
32
+ y(!0), S(!1), typeof r == "function" && r(t);
33
33
  }, B = (t) => {
34
- S(!0), v(!1), typeof H == "function" && H(t.nativeEvent);
34
+ S(!0), y(!1), typeof H == "function" && H(t.nativeEvent);
35
35
  };
36
36
  return R(() => {
37
- if (I && a.current) {
38
- const t = a.current, N = () => {
37
+ if (I && u.current) {
38
+ const t = u.current, N = () => {
39
39
  if (!t) return !1;
40
40
  const i = t.getBoundingClientRect();
41
41
  return i.bottom >= 0 && i.top <= (window.innerHeight || document.documentElement.clientHeight) + k;
@@ -51,21 +51,21 @@ const k = 100, ot = Z(
51
51
  return s(), Q(), X;
52
52
  }
53
53
  }), R(() => {
54
- typeof g == "function" && y && !$.current && ($.current = !0, g());
55
- }, [g, y]), F(() => {
54
+ typeof g == "function" && a && !$.current && ($.current = !0, g());
55
+ }, [g, a]), F(() => {
56
56
  const t = m.current;
57
- return t != null && t.complete ? t.naturalWidth > 0 ? (t.style.transition = "none", t.style.opacity = "1", v(!0)) : (t.style.opacity = "0", S(!0)) : t && (t.style.transition = "opacity 0.3s", t.style.opacity = "0", t.onload = () => {
58
- t.style.opacity = "1", v(!0), t.onload = null;
57
+ return t != null && t.complete ? t.naturalWidth > 0 ? (t.style.transition = "none", t.style.opacity = "1", y(!0)) : (t.style.opacity = "0", S(!0)) : t && (t.style.transition = "opacity 0.3s", t.style.opacity = "0", t.onload = () => {
58
+ t.style.opacity = "1", y(!0), t.onload = null;
59
59
  }, t.onerror = () => {
60
60
  S(!0), t.onerror = null;
61
61
  }), () => {
62
62
  t && (t.onload = null, t.onerror = null);
63
63
  };
64
- }, [y]), I ? /* @__PURE__ */ L(
64
+ }, [a]), I ? /* @__PURE__ */ L(
65
65
  M,
66
66
  {
67
67
  ...e,
68
- ref: a,
68
+ ref: u,
69
69
  inlineCSS: x ? {
70
70
  position: "relative",
71
71
  paddingTop: `calc(100% / ${n} * ${o})`,
@@ -83,7 +83,7 @@ const k = 100, ot = Z(
83
83
  ...e == null ? void 0 : e.inlineCSS
84
84
  },
85
85
  children: [
86
- T && /* @__PURE__ */ d(
86
+ T && /* @__PURE__ */ c(
87
87
  U,
88
88
  {
89
89
  width: "100%",
@@ -98,19 +98,19 @@ const k = 100, ot = Z(
98
98
  }
99
99
  }
100
100
  ),
101
- y && /* @__PURE__ */ L(Y, { children: [
102
- /* @__PURE__ */ d(
101
+ a && /* @__PURE__ */ L(Y, { children: [
102
+ /* @__PURE__ */ c(
103
103
  "img",
104
104
  {
105
105
  ref: m,
106
106
  src: j,
107
- alt: r,
107
+ alt: E,
108
108
  width: n,
109
109
  height: o,
110
110
  onLoad: z,
111
111
  onError: B,
112
- "aria-hidden": f,
113
- ...u,
112
+ "aria-hidden": v,
113
+ ...d,
114
114
  style: {
115
115
  position: "absolute",
116
116
  top: 0,
@@ -118,11 +118,11 @@ const k = 100, ot = Z(
118
118
  width: "100%",
119
119
  height: "100%",
120
120
  transition: "opacity 0.3s",
121
- ...u.style
121
+ ...d.style
122
122
  }
123
123
  }
124
124
  ),
125
- W && ((c == null ? void 0 : c(f)) || /* @__PURE__ */ d(V, { style: { opacity: f ? 1 : 0, transition: "opacity 0.3s" } }))
125
+ W && v && ((f == null ? void 0 : f()) || /* @__PURE__ */ c(V, {}))
126
126
  ] })
127
127
  ]
128
128
  }
@@ -130,7 +130,7 @@ const k = 100, ot = Z(
130
130
  M,
131
131
  {
132
132
  ...e,
133
- ref: a,
133
+ ref: u,
134
134
  inlineCSS: x ? {
135
135
  position: "relative",
136
136
  paddingTop: `calc(100% / ${n} * ${o})`,
@@ -149,7 +149,7 @@ const k = 100, ot = Z(
149
149
  ...e == null ? void 0 : e.inlineCSS
150
150
  },
151
151
  children: [
152
- T && /* @__PURE__ */ d(
152
+ T && /* @__PURE__ */ c(
153
153
  U,
154
154
  {
155
155
  width: "100%",
@@ -164,18 +164,18 @@ const k = 100, ot = Z(
164
164
  }
165
165
  }
166
166
  ),
167
- /* @__PURE__ */ d(
167
+ /* @__PURE__ */ c(
168
168
  "img",
169
169
  {
170
170
  ref: m,
171
171
  src: j,
172
- alt: r,
172
+ alt: E,
173
173
  width: n,
174
174
  height: o,
175
175
  onLoad: z,
176
176
  onError: B,
177
- "aria-hidden": f,
178
- ...u,
177
+ "aria-hidden": v,
178
+ ...d,
179
179
  style: {
180
180
  position: "absolute",
181
181
  top: 0,
@@ -183,11 +183,11 @@ const k = 100, ot = Z(
183
183
  width: "100%",
184
184
  height: "100%",
185
185
  transition: "opacity 0.3s",
186
- ...u.style
186
+ ...d.style
187
187
  }
188
188
  }
189
189
  ),
190
- W && ((c == null ? void 0 : c(f)) || /* @__PURE__ */ d(V, { style: { opacity: f ? 1 : 0, transition: "opacity 0.3s" } }))
190
+ W && v && ((f == null ? void 0 : f()) || /* @__PURE__ */ c(V, {}))
191
191
  ]
192
192
  }
193
193
  );
@@ -15,7 +15,7 @@ function vr({
15
15
  inlineCSS: S,
16
16
  ...w
17
17
  }) {
18
- const [P, R] = _(E), [s, rr] = _(0), t = f(null), X = f(0), W = f(0), q = f(0), Y = f(0), o = f(!1), d = f(!0), N = f(""), n = f(E), H = f(!1), l = f(null), p = x.count(j), m = x.toArray(j).filter(G).filter((r) => r.type === U || r.type === I), D = p > 1 && !O, tr = x.toArray(m == null ? void 0 : m[0]).filter(G).filter((r) => r.type === U || r.type === I), er = x.toArray(m == null ? void 0 : m[(m == null ? void 0 : m.length) - 1]).filter(G).filter((r) => r.type === U || r.type === I), J = (r, e, i) => {
18
+ const [P, R] = _(E), [s, rr] = _(1), t = f(null), X = f(0), W = f(0), q = f(0), Y = f(0), o = f(!1), d = f(!0), N = f(""), n = f(E), H = f(!1), l = f(null), p = x.count(j), m = x.toArray(j).filter(G).filter((r) => r.type === U || r.type === I), D = p > 1 && !O, tr = x.toArray(m == null ? void 0 : m[0]).filter(G).filter((r) => r.type === U || r.type === I), er = x.toArray(m == null ? void 0 : m[(m == null ? void 0 : m.length) - 1]).filter(G).filter((r) => r.type === U || r.type === I), J = (r, e, i) => {
19
19
  !t.current || !D || (N.current = t.current.style.transform, W.current = r, X.current = r + t.current.offsetWidth * (i + 1), q.current = e);
20
20
  }, C = (r, e, i) => {
21
21
  if (!t.current || !D || !o.current || !d.current)
@@ -1,5 +1,7 @@
1
1
  export declare function getIconFileName(abilityName: string, completed: boolean): string;
2
2
  export declare function getAbilityCollection(data: Record<string, string>): {
3
+ label: string;
4
+ description: string;
3
5
  key: string;
4
6
  name: string;
5
7
  completed: boolean;
@@ -1,4 +1,4 @@
1
- function c(a, n) {
1
+ function t(a, n) {
2
2
  let e = "";
3
3
  switch (a) {
4
4
  case "창의악어":
@@ -25,19 +25,37 @@ function c(a, n) {
25
25
  }
26
26
  return e = n ? e : `incomplete-${e}`, e;
27
27
  }
28
- function i(a) {
29
- const n = {
30
- creativeFlag: "창의악어",
31
- englishFlag: "영어악어",
32
- infantsFlag: "영유아악어"
33
- };
34
- return Object.keys(n).map((e) => ({
35
- key: e,
36
- name: n[e],
37
- completed: a[e] === "Y"
28
+ const i = {
29
+ creativeFlag: "창의악어",
30
+ englishFlag: "영어악어",
31
+ infantsFlag: "영유아악어"
32
+ }, c = {
33
+ 창의악어: {
34
+ label: "창의악어 배지를 취득해야 창의미술 수업을 할 수 있어요",
35
+ description: `창의미술에 대한 이해도와 만들기 능력이 검증된
36
+ 미술 수업 특화 선생님이에요.`
37
+ },
38
+ 영어악어: {
39
+ label: "영어악어 배지를 취득해야 영어 수업을 할 수 있어요",
40
+ description: `아이들의 발달 상황에 맞도록 영어로 상호작용을
41
+ 자유롭게 할 수 있는 회화 실력이 검증된
42
+ 영어 수업 특화 선생님이에요.`
43
+ },
44
+ 영유아악어: {
45
+ label: "영유아 배지를 취득해야 12개월~24개월 아이 돌봄이 가능해요",
46
+ description: `영유아 발달에 대한 이해와 기저귀 갈이 등의
47
+ 기본 돌봄 역량이 검증된 선생님이에요.`
48
+ }
49
+ };
50
+ function o(a) {
51
+ return Object.keys(i).map((n) => ({
52
+ key: n,
53
+ name: i[n],
54
+ completed: a[n] === "Y",
55
+ ...c[i[n]]
38
56
  }));
39
57
  }
40
58
  export {
41
- i as getAbilityCollection,
42
- c as getIconFileName
59
+ o as getAbilityCollection,
60
+ t as getIconFileName
43
61
  };
@@ -1,23 +1,23 @@
1
- import { jsx as i, jsxs as e, Fragment as g } from "react/jsx-runtime";
2
- import { Flexbox as t, Label as I, Typography as d, Icon as h } from "@dotss/ui";
3
- import j from "@dotss/ui/core/useTheme";
4
- import { useCheckHoverPossible as E } from "@dotss/ui/hooks";
5
- import s from "dayjs";
6
- function T({
1
+ import { jsx as i, jsxs as e, Fragment as d } from "react/jsx-runtime";
2
+ import { Flexbox as a, Label as Y, Typography as s, Icon as f } from "@dotss/ui";
3
+ import D from "@dotss/ui/core/useTheme";
4
+ import { useCheckHoverPossible as j } from "@dotss/ui/hooks";
5
+ import t from "dayjs";
6
+ function L({
7
7
  title: v,
8
- status: f,
9
- startDate: y,
8
+ status: y,
9
+ startDate: b,
10
10
  endDate: o,
11
11
  primary: x = !1,
12
- id: b,
12
+ id: u,
13
13
  ...n
14
14
  }) {
15
- const { isHoverPossible: k } = E(), {
16
- palette: { grey: a },
17
- spacing: c
18
- } = j(), r = typeof n.onClick == "function", D = s(y), u = (o ? s(o) : s()).diff(D, "month"), m = Math.floor(u / 12), C = u % 12;
15
+ const { isHoverPossible: k } = j(), {
16
+ palette: { grey: c },
17
+ spacing: m
18
+ } = D(), r = typeof n.onClick == "function", I = t(b), g = (o ? t(o) : t()).diff(I, "month"), h = Math.floor(g / 12), C = g % 12 < 1 ? 1 : g % 12;
19
19
  return /* @__PURE__ */ i("li", { children: /* @__PURE__ */ e(
20
- t,
20
+ a,
21
21
  {
22
22
  role: "button",
23
23
  tabIndex: r ? 0 : -1,
@@ -33,41 +33,41 @@ function T({
33
33
  var S;
34
34
  (l.key === "Enter" || l.key === " ") && (l.preventDefault(), l.currentTarget.click()), (S = n.onKeyDown) == null || S.call(n, l);
35
35
  },
36
- "aria-labelledby": `career-item-title-${b}`,
36
+ "aria-labelledby": `career-item-title-${u}`,
37
37
  ...n,
38
38
  inlineCSS: {
39
39
  cursor: r ? "pointer" : "default",
40
40
  ...r && {
41
41
  "&:active": {
42
- backgroundColor: a[10]
42
+ backgroundColor: c[10]
43
43
  }
44
44
  },
45
45
  ...r && k ? {
46
46
  "&:hover": {
47
- backgroundColor: a[10]
47
+ backgroundColor: c[10]
48
48
  }
49
49
  } : {},
50
50
  ...n == null ? void 0 : n.inlineCSS
51
51
  },
52
52
  children: [
53
- /* @__PURE__ */ e(t, { flexDirection: "column", gap: 1, flexGrow: 1, children: [
54
- /* @__PURE__ */ e(t, { alignItems: "center", gap: 1, children: [
53
+ /* @__PURE__ */ e(a, { flexDirection: "column", gap: 1, flexGrow: 1, children: [
54
+ /* @__PURE__ */ e(a, { alignItems: "center", gap: 1, children: [
55
55
  x && /* @__PURE__ */ i(
56
- I,
56
+ Y,
57
57
  {
58
58
  variant: "outlined",
59
59
  size: "small",
60
60
  color: "orange",
61
61
  inlineCSS: {
62
- marginRight: c.content(1)
62
+ marginRight: m.content(1)
63
63
  },
64
64
  children: "대표"
65
65
  }
66
66
  ),
67
- /* @__PURE__ */ e(d, { id: `career-item-title-${b}`, tag: "p", variant: "b2M", children: [
67
+ /* @__PURE__ */ e(s, { id: `career-item-title-${u}`, tag: "p", variant: "b2M", children: [
68
68
  v,
69
- f === "VERIFIED" && /* @__PURE__ */ i(
70
- h,
69
+ y === "VERIFIED" && /* @__PURE__ */ i(
70
+ f,
71
71
  {
72
72
  name: "CertifiedFill",
73
73
  size: "small",
@@ -76,12 +76,12 @@ function T({
76
76
  inlineCSS: {
77
77
  minWidth: 20,
78
78
  verticalAlign: "-5px",
79
- marginLeft: c.content(1)
79
+ marginLeft: m.content(1)
80
80
  }
81
81
  }
82
82
  ),
83
- f === "REJECTED" && /* @__PURE__ */ i(
84
- h,
83
+ y === "REJECTED" && /* @__PURE__ */ i(
84
+ f,
85
85
  {
86
86
  name: "AlertFill",
87
87
  size: "small",
@@ -90,46 +90,47 @@ function T({
90
90
  inlineCSS: {
91
91
  minWidth: 20,
92
92
  verticalAlign: "-5px",
93
- marginLeft: c.content(1)
93
+ marginLeft: m.content(1)
94
94
  }
95
95
  }
96
96
  )
97
97
  ] })
98
98
  ] }),
99
- /* @__PURE__ */ e(d, { tag: "p", variant: "b5R", color: "grey.50", children: [
100
- y,
101
- " ~ ",
102
- o ?? "현재"
99
+ /* @__PURE__ */ e(s, { tag: "p", variant: "b5R", color: "grey.50", children: [
100
+ t(b).format("YYYY년 M월"),
101
+ " ~",
102
+ " ",
103
+ o ? t(o).format("YYYY년 M월") : "현재"
103
104
  ] })
104
105
  ] }),
105
- /* @__PURE__ */ e(t, { alignItems: "center", gap: 2, children: [
106
+ /* @__PURE__ */ e(a, { alignItems: "center", gap: 2, children: [
106
107
  /* @__PURE__ */ e(
107
- d,
108
+ s,
108
109
  {
109
110
  tag: "p",
110
111
  variant: "h5R",
111
112
  color: "grey.70",
112
113
  noWrap: !0,
113
- inlineCSS: { "& strong": { color: a[100], fontWeight: 700 } },
114
+ inlineCSS: { "& strong": { color: c[100], fontWeight: 700 } },
114
115
  children: [
115
- m > 0 && /* @__PURE__ */ e(g, { children: [
116
- /* @__PURE__ */ i("strong", { children: m }),
116
+ h > 0 && /* @__PURE__ */ e(d, { children: [
117
+ /* @__PURE__ */ i("strong", { children: h }),
117
118
  "년"
118
119
  ] }),
119
- C > 0 && /* @__PURE__ */ e(g, { children: [
120
- m > 0 && /* @__PURE__ */ i(g, { children: " " }),
120
+ C > 0 && /* @__PURE__ */ e(d, { children: [
121
+ h > 0 && /* @__PURE__ */ i(d, { children: " " }),
121
122
  /* @__PURE__ */ i("strong", { children: C }),
122
123
  "개월"
123
124
  ] })
124
125
  ]
125
126
  }
126
127
  ),
127
- r && /* @__PURE__ */ i(h, { name: "ChevronRightLine", size: "xSmall", color: "grey.50" })
128
+ r && /* @__PURE__ */ i(f, { name: "ChevronRightLine", size: "xSmall", color: "grey.50" })
128
129
  ] })
129
130
  ]
130
131
  }
131
132
  ) });
132
133
  }
133
134
  export {
134
- T as default
135
+ L as default
135
136
  };
@@ -20,7 +20,7 @@ function Y({
20
20
  const {
21
21
  palette: { background: y, brand: E, etc: k },
22
22
  spacing: a
23
- } = G(), [m, D] = R(!1), [z, T] = R(!1), b = F(null), w = S >= 0 && p > 0, c = x ? K(x) : null, I = c ? W(c) : null, j = (o) => {
23
+ } = G(), [m, D] = R(!1), [z, T] = R(!1), b = F(null), w = S > 0 || p > 0, c = x ? K(x) : null, I = c ? W(c) : null, j = (o) => {
24
24
  var s, g;
25
25
  switch (o.key) {
26
26
  case "Enter":
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@dotss/tictoccroc",
3
3
  "type": "module",
4
- "version": "0.0.21",
4
+ "version": "0.0.23",
5
5
  "description": "Tictoccroc shared components, hooks, utils, and APIs for Dotss",
6
6
  "main": "./dist/index.mjs",
7
7
  "module": "./dist/index.mjs",