@dotss/tictoccroc 0.0.0 → 0.0.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.
Files changed (159) hide show
  1. package/dist/LessonNotesSection-a2QNdQtj.js +196 -0
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.mjs +109 -52
  4. package/dist/shared/components/Calendar/Calendar.d.ts +3 -2
  5. package/dist/shared/components/Calendar/Calendar.mjs +1 -1
  6. package/dist/shared/components/Carousel/Carousel.d.ts +1 -1
  7. package/dist/shared/components/Carousel/Carousel.mjs +13 -13
  8. package/dist/shared/components/Carousel/CarouselSlide/CarouselSlide.d.ts +1 -1
  9. package/dist/shared/components/Carousel/CarouselSlide/CarouselSlide.mjs +1 -1
  10. package/dist/shared/components/Image/Image.d.ts +1 -1
  11. package/dist/shared/components/Image/Image.mjs +94 -93
  12. package/dist/shared/components/ImageZoomDialog/ImageBlock/ImageBlock.mjs +12 -26
  13. package/dist/shared/components/ImageZoomDialog/ImageZoomDialog.mjs +77 -98
  14. package/dist/shared/components/ImageZoomDialog/ImageZoomDialogContent/ImageZoomDialogContent.mjs +4 -4
  15. package/dist/shared/components/ImageZoomDialog/ImageZoomDialogFooter/ImageZoomDialogFooter.mjs +4 -4
  16. package/dist/shared/components/ImageZoomDialog/ImageZoomDialogToolbar/ImageZoomDialogToolbar.mjs +1 -1
  17. package/dist/shared/components/LoadingAnnouncer/LoadingAnnouncer.d.ts +7 -0
  18. package/dist/shared/components/LoadingAnnouncer/LoadingAnnouncer.mjs +19 -0
  19. package/dist/shared/components/LoadingAnnouncer/index.d.ts +3 -0
  20. package/dist/shared/components/LoadingAnnouncer/index.mjs +4 -0
  21. package/dist/shared/components/Masonry/Masonry.d.ts +12 -0
  22. package/dist/shared/components/Masonry/Masonry.mjs +220 -0
  23. package/dist/shared/components/Masonry/Masonry.utils.d.ts +7 -0
  24. package/dist/shared/components/Masonry/Masonry.utils.mjs +76 -0
  25. package/dist/shared/components/Masonry/MasonryBlock/MasonryBlock.d.ts +11 -0
  26. package/dist/shared/components/Masonry/MasonryBlock/MasonryBlock.mjs +77 -0
  27. package/dist/shared/components/Masonry/MasonryBlock/index.d.ts +3 -0
  28. package/dist/shared/components/Masonry/MasonryBlock/index.mjs +4 -0
  29. package/dist/shared/components/Masonry/index.d.ts +4 -0
  30. package/dist/shared/components/Masonry/index.mjs +6 -0
  31. package/dist/shared/components/Roller/Roller.d.ts +1 -2
  32. package/dist/shared/components/Roller/Roller.mjs +7 -120
  33. package/dist/shared/components/Roller/RollerBlock/RollerBlock.d.ts +1 -1
  34. package/dist/shared/components/Roller/RollerBlock/RollerBlock.mjs +1 -1
  35. package/dist/shared/components/Roller/index.mjs +3 -3
  36. package/dist/shared/components/Scheduler/ScheduleBlock/ScheduleBlock.d.ts +2 -5
  37. package/dist/shared/components/Scheduler/ScheduleBlock/ScheduleBlock.mjs +1 -1
  38. package/dist/shared/components/Scheduler/ScheduleEvent/ScheduleEvent.d.ts +1 -1
  39. package/dist/shared/components/Scheduler/ScheduleEvent/ScheduleEvent.mjs +2 -2
  40. package/dist/shared/components/Scheduler/Scheduler.d.ts +4 -4
  41. package/dist/shared/components/Scheduler/Scheduler.mjs +167 -178
  42. package/dist/shared/components/Swiper/Swiper.d.ts +1 -1
  43. package/dist/shared/components/Swiper/Swiper.mjs +77 -97
  44. package/dist/shared/components/Swiper/SwiperBlock/SwiperBlock.d.ts +1 -1
  45. package/dist/shared/components/Swiper/SwiperBlock/SwiperBlock.mjs +1 -1
  46. package/dist/shared/components/TimePicker/TimePicker.d.ts +2 -2
  47. package/dist/shared/components/TimePicker/TimePicker.mjs +1 -1
  48. package/dist/shared/components/index.d.ts +14 -1
  49. package/dist/shared/components/index.mjs +40 -28
  50. package/dist/shared/utils/birthDateToAge/birthDateToAge.test.mjs +9 -10
  51. package/dist/shared/utils/getDateRange/getDateRange.d.ts +1 -1
  52. package/dist/shared/utils/getDateRange/getDateRange.test.mjs +27 -28
  53. package/dist/shared/utils/getImageUrl/getImageUrl.test.mjs +19 -20
  54. package/dist/shared/utils/getTimeRange/getTimeRange.test.mjs +22 -23
  55. package/dist/shared/utils/getVimeoId/getVimeoId.test.mjs +11 -12
  56. package/dist/shared/utils/index.d.ts +1 -0
  57. package/dist/shared/utils/index.mjs +6 -4
  58. package/dist/shared/utils/isAndroid/isAndroid.test.mjs +9 -10
  59. package/dist/shared/utils/isApp/isApp.test.mjs +14 -15
  60. package/dist/shared/utils/isDesktop/isDesktop.test.mjs +8 -9
  61. package/dist/shared/utils/isServer/isServer.test.mjs +10 -11
  62. package/dist/shared/utils/objectToQueryString/objectToQueryString.test.mjs +7 -7
  63. package/dist/shared/utils/parseQueryString/parseQueryString.test.mjs +10 -11
  64. package/dist/shared/utils/share/index.d.ts +2 -0
  65. package/dist/shared/utils/share/index.mjs +4 -0
  66. package/dist/shared/utils/share/share.d.ts +9 -0
  67. package/dist/shared/utils/share/share.mjs +15 -0
  68. package/dist/shared/utils/share/share.test.d.ts +1 -0
  69. package/dist/shared/utils/share/share.test.mjs +31 -0
  70. package/dist/teacher/profile/components/AbilityCollection/AbilityBadge/AbilityBadge.d.ts +15 -0
  71. package/dist/teacher/profile/components/AbilityCollection/AbilityBadge/AbilityBadge.mjs +441 -0
  72. package/dist/teacher/profile/components/AbilityCollection/AbilityBadge/index.d.ts +3 -0
  73. package/dist/teacher/profile/components/AbilityCollection/AbilityBadge/index.mjs +5 -0
  74. package/dist/teacher/profile/components/AbilityCollection/AbilityCollection.d.ts +6 -0
  75. package/dist/teacher/profile/components/AbilityCollection/AbilityCollection.mjs +111 -0
  76. package/dist/teacher/profile/components/AbilityCollection/AbilityCollection.utils.d.ts +6 -0
  77. package/dist/teacher/profile/components/AbilityCollection/AbilityCollection.utils.mjs +43 -0
  78. package/dist/teacher/profile/components/AbilityCollection/index.d.ts +5 -0
  79. package/dist/teacher/profile/components/AbilityCollection/index.mjs +8 -0
  80. package/dist/teacher/profile/components/ActivityGallery/ActivityGallery.d.ts +11 -0
  81. package/dist/teacher/profile/components/ActivityGallery/ActivityGallery.mjs +101 -0
  82. package/dist/teacher/profile/components/ActivityGallery/ActivityGalleryItem/ActivityGalleryItem.d.ts +8 -0
  83. package/dist/teacher/profile/components/ActivityGallery/ActivityGalleryItem/ActivityGalleryItem.mjs +124 -0
  84. package/dist/teacher/profile/components/ActivityGallery/ActivityGalleryItem/index.d.ts +3 -0
  85. package/dist/teacher/profile/components/ActivityGallery/ActivityGalleryItem/index.mjs +4 -0
  86. package/dist/teacher/profile/components/ActivityGallery/index.d.ts +4 -0
  87. package/dist/teacher/profile/components/ActivityGallery/index.mjs +6 -0
  88. package/dist/teacher/profile/components/AvailableScheduleSection/AvailableScheduleSection.d.ts +22 -0
  89. package/dist/teacher/profile/components/AvailableScheduleSection/AvailableScheduleSection.mjs +179 -0
  90. package/dist/teacher/profile/components/AvailableScheduleSection/index.d.ts +3 -0
  91. package/dist/teacher/profile/components/AvailableScheduleSection/index.mjs +4 -0
  92. package/dist/teacher/profile/components/CareerSection/CareerItem/CareerItem.d.ts +10 -0
  93. package/dist/teacher/profile/components/CareerSection/CareerItem/CareerItem.mjs +136 -0
  94. package/dist/teacher/profile/components/CareerSection/CareerItem/index.d.ts +3 -0
  95. package/dist/teacher/profile/components/CareerSection/CareerItem/index.mjs +4 -0
  96. package/dist/teacher/profile/components/CareerSection/CareerSection.d.ts +9 -0
  97. package/dist/teacher/profile/components/CareerSection/CareerSection.mjs +185 -0
  98. package/dist/teacher/profile/components/CareerSection/index.d.ts +4 -0
  99. package/dist/teacher/profile/components/CareerSection/index.mjs +6 -0
  100. package/dist/teacher/profile/components/CertificationSection/CertificationItem/CertificationItem.d.ts +8 -0
  101. package/dist/teacher/profile/components/CertificationSection/CertificationItem/CertificationItem.mjs +91 -0
  102. package/dist/teacher/profile/components/CertificationSection/CertificationItem/index.d.ts +3 -0
  103. package/dist/teacher/profile/components/CertificationSection/CertificationItem/index.mjs +4 -0
  104. package/dist/teacher/profile/components/CertificationSection/CertificationSection.d.ts +9 -0
  105. package/dist/teacher/profile/components/CertificationSection/CertificationSection.mjs +152 -0
  106. package/dist/teacher/profile/components/CertificationSection/index.d.ts +4 -0
  107. package/dist/teacher/profile/components/CertificationSection/index.mjs +6 -0
  108. package/dist/teacher/profile/components/EducationSection/EducationItem/EducationItem.d.ts +9 -0
  109. package/dist/teacher/profile/components/EducationSection/EducationItem/EducationItem.mjs +105 -0
  110. package/dist/teacher/profile/components/EducationSection/EducationItem/index.d.ts +3 -0
  111. package/dist/teacher/profile/components/EducationSection/EducationItem/index.mjs +4 -0
  112. package/dist/teacher/profile/components/EducationSection/EducationSection.d.ts +9 -0
  113. package/dist/teacher/profile/components/EducationSection/EducationSection.mjs +152 -0
  114. package/dist/teacher/profile/components/EducationSection/index.d.ts +4 -0
  115. package/dist/teacher/profile/components/EducationSection/index.mjs +6 -0
  116. package/dist/teacher/profile/components/LessonNotesSection/LessonNote/LessonNote.d.ts +9 -0
  117. package/dist/teacher/profile/components/LessonNotesSection/LessonNote/LessonNote.mjs +54 -0
  118. package/dist/teacher/profile/components/LessonNotesSection/LessonNote/index.d.ts +3 -0
  119. package/dist/teacher/profile/components/LessonNotesSection/LessonNote/index.mjs +4 -0
  120. package/dist/teacher/profile/components/LessonNotesSection/LessonNotesSection.d.ts +7 -0
  121. package/dist/teacher/profile/components/LessonNotesSection/LessonNotesSection.mjs +8 -0
  122. package/dist/teacher/profile/components/LessonNotesSection/LessonNotesSection.utils.d.ts +4 -0
  123. package/dist/teacher/profile/components/LessonNotesSection/LessonNotesSection.utils.mjs +13 -0
  124. package/dist/teacher/profile/components/LessonNotesSection/index.d.ts +4 -0
  125. package/dist/teacher/profile/components/LessonNotesSection/index.mjs +6 -0
  126. package/dist/teacher/profile/components/ParentReviewSection/ParentReviewCard/ParentReviewCard.d.ts +10 -0
  127. package/dist/teacher/profile/components/ParentReviewSection/ParentReviewCard/ParentReviewCard.mjs +103 -0
  128. package/dist/teacher/profile/components/ParentReviewSection/ParentReviewCard/index.d.ts +3 -0
  129. package/dist/teacher/profile/components/ParentReviewSection/ParentReviewCard/index.mjs +4 -0
  130. package/dist/teacher/profile/components/ParentReviewSection/ParentReviewSection.d.ts +7 -0
  131. package/dist/teacher/profile/components/ParentReviewSection/ParentReviewSection.mjs +79 -0
  132. package/dist/teacher/profile/components/ParentReviewSection/ParentReviewSection.utils.d.ts +4 -0
  133. package/dist/teacher/profile/components/ParentReviewSection/ParentReviewSection.utils.mjs +13 -0
  134. package/dist/teacher/profile/components/ParentReviewSection/index.d.ts +4 -0
  135. package/dist/teacher/profile/components/ParentReviewSection/index.mjs +6 -0
  136. package/dist/teacher/profile/components/PreferredActivityKeywordGroup/PreferredActivityKeywordGroup.d.ts +9 -0
  137. package/dist/teacher/profile/components/PreferredActivityKeywordGroup/PreferredActivityKeywordGroup.mjs +37 -0
  138. package/dist/teacher/profile/components/PreferredActivityKeywordGroup/index.d.ts +3 -0
  139. package/dist/teacher/profile/components/PreferredActivityKeywordGroup/index.mjs +4 -0
  140. package/dist/teacher/profile/components/PreferredAgeGroup/PreferredAgeGroup.d.ts +8 -0
  141. package/dist/teacher/profile/components/PreferredAgeGroup/PreferredAgeGroup.mjs +32 -0
  142. package/dist/teacher/profile/components/PreferredAgeGroup/PreferredAgeGroup.utils.d.ts +18 -0
  143. package/dist/teacher/profile/components/PreferredAgeGroup/PreferredAgeGroup.utils.mjs +14 -0
  144. package/dist/teacher/profile/components/PreferredAgeGroup/index.d.ts +4 -0
  145. package/dist/teacher/profile/components/PreferredAgeGroup/index.mjs +6 -0
  146. package/dist/teacher/profile/components/ProfileSummary/ProfileSummary.d.ts +25 -1
  147. package/dist/teacher/profile/components/ProfileSummary/ProfileSummary.mjs +413 -5
  148. package/dist/teacher/profile/components/ProfileSummary/index.d.ts +2 -1
  149. package/dist/teacher/profile/components/StatBadgeCollection/StatBadge/StatBadge.d.ts +7 -0
  150. package/dist/teacher/profile/components/StatBadgeCollection/StatBadge/StatBadge.mjs +105 -0
  151. package/dist/teacher/profile/components/StatBadgeCollection/StatBadge/index.d.ts +3 -0
  152. package/dist/teacher/profile/components/StatBadgeCollection/StatBadge/index.mjs +4 -0
  153. package/dist/teacher/profile/components/StatBadgeCollection/StatBadgeCollection.d.ts +6 -0
  154. package/dist/teacher/profile/components/StatBadgeCollection/StatBadgeCollection.mjs +28 -0
  155. package/dist/teacher/profile/components/StatBadgeCollection/index.d.ts +4 -0
  156. package/dist/teacher/profile/components/StatBadgeCollection/index.mjs +6 -0
  157. package/dist/teacher/profile/components/index.d.ts +24 -0
  158. package/dist/teacher/profile/components/index.mjs +46 -0
  159. package/package.json +2 -2
@@ -0,0 +1,18 @@
1
+ export declare const preferredAgeGroup: {
2
+ age1: {
3
+ label: string;
4
+ };
5
+ age2: {
6
+ label: string;
7
+ };
8
+ age3: {
9
+ label: string;
10
+ };
11
+ age4: {
12
+ label: string;
13
+ };
14
+ age5: {
15
+ label: string;
16
+ };
17
+ };
18
+ export declare function getPreferredAgeKeywords(data: Record<string, string>): string[];
@@ -0,0 +1,14 @@
1
+ const l = {
2
+ age1: { label: "~24개월" },
3
+ age2: { label: "3~4세" },
4
+ age3: { label: "5~7세" },
5
+ age4: { label: "8~10세" },
6
+ age5: { label: "11~13세" }
7
+ };
8
+ function r(a) {
9
+ return Object.keys(l).filter((e) => a[e] === "Y").map((e) => l[e].label);
10
+ }
11
+ export {
12
+ r as getPreferredAgeKeywords,
13
+ l as preferredAgeGroup
14
+ };
@@ -0,0 +1,4 @@
1
+ import { default as PreferredAgeGroup, PreferredAgeGroupProps } from './PreferredAgeGroup';
2
+ export type { PreferredAgeGroupProps };
3
+ export { getPreferredAgeKeywords } from './PreferredAgeGroup.utils';
4
+ export default PreferredAgeGroup;
@@ -0,0 +1,6 @@
1
+ import r from "./PreferredAgeGroup.mjs";
2
+ import { getPreferredAgeKeywords as t } from "./PreferredAgeGroup.utils.mjs";
3
+ export {
4
+ r as default,
5
+ t as getPreferredAgeKeywords
6
+ };
@@ -1,2 +1,26 @@
1
- declare function ProfileSummary(): import("@emotion/react/jsx-runtime").JSX.Element;
1
+ import { KeyboardEvent, MouseEvent, ReactNode } from 'react';
2
+ import { FlexboxProps } from 'node_modules/@dotss/ui/Flexbox/Flexbox';
3
+ export interface ProfileSummaryProps extends FlexboxProps {
4
+ avatar: {
5
+ src: string;
6
+ placeholder?: ReactNode;
7
+ status: 'VERIFIED' | 'PENDING' | 'REJECTED' | 'DELETED';
8
+ onClick?: (e: MouseEvent<HTMLDivElement> | KeyboardEvent<HTMLDivElement>) => void;
9
+ };
10
+ introduction: {
11
+ summary: string;
12
+ aboutMe: string;
13
+ placeholder?: ReactNode;
14
+ status: 'VERIFIED' | 'PENDING' | 'REJECTED' | 'DELETED';
15
+ };
16
+ name: string;
17
+ adronment?: ReactNode;
18
+ grade?: string;
19
+ activeHours: number;
20
+ rating: number;
21
+ reviewCount: number;
22
+ lastActiveAt?: string;
23
+ action?: ReactNode;
24
+ }
25
+ declare function ProfileSummary({ avatar, introduction, name, grade, activeHours, rating, reviewCount, adronment, lastActiveAt, action }: ProfileSummaryProps): import("@emotion/react/jsx-runtime").JSX.Element;
2
26
  export default ProfileSummary;
@@ -1,8 +1,416 @@
1
- import { jsx as r } from "react/jsx-runtime";
2
- import o from "@thedotscorp/ui/Typography";
3
- function f() {
4
- return /* @__PURE__ */ r(o, { children: "ProfileSummary" });
1
+ import { jsxs as n, jsx as e, Fragment as C } from "react/jsx-runtime";
2
+ import { useState as E, useRef as F, useEffect as J } from "react";
3
+ import { Flexbox as r, Typography as t, Icon as d, Label as B, Button as G } from "@dotss/ui";
4
+ import K from "@dotss/ui/core/useTheme";
5
+ import I from "dayjs";
6
+ import N from "dayjs/plugin/relativeTime";
7
+ import O from "../../../../shared/components/Image/Image.mjs";
8
+ I.extend(N);
9
+ function X({
10
+ avatar: l,
11
+ introduction: i,
12
+ name: p,
13
+ grade: u,
14
+ activeHours: S = 0,
15
+ rating: h = 0,
16
+ reviewCount: m = 0,
17
+ adronment: R,
18
+ lastActiveAt: x,
19
+ action: L
20
+ }) {
21
+ const {
22
+ palette: { background: y, brand: w, etc: k },
23
+ spacing: a
24
+ } = K(), [g, D] = E(!1), [z, v] = E(!1), b = F(null), M = S >= 0 && m > 0, c = x ? I(x) : null, T = (o) => {
25
+ var s, f;
26
+ switch (o.key) {
27
+ case "Enter":
28
+ o.preventDefault(), (s = l.onClick) == null || s.call(l, o);
29
+ break;
30
+ case " ":
31
+ o.preventDefault(), (f = l.onClick) == null || f.call(l, o);
32
+ break;
33
+ }
34
+ }, j = () => D((o) => !o);
35
+ return J(() => {
36
+ const o = () => {
37
+ if (!b.current) return;
38
+ const s = b.current, f = parseInt(window.getComputedStyle(s).lineHeight), $ = s.scrollHeight, H = Math.ceil($ / f);
39
+ v(H > 4);
40
+ };
41
+ return o(), window.addEventListener("resize", o), () => {
42
+ window.removeEventListener("resize", o);
43
+ };
44
+ }, [i.aboutMe]), /* @__PURE__ */ n(
45
+ r,
46
+ {
47
+ tag: "section",
48
+ flexDirection: "column",
49
+ gap: 4,
50
+ "aria-label": "선생님 프로필 요약 정보",
51
+ inlineCSS: {
52
+ width: "100%"
53
+ },
54
+ children: [
55
+ /* @__PURE__ */ n(r, { alignItems: "flex-start", gap: 4, children: [
56
+ /* @__PURE__ */ n(r, { flexDirection: "column", gap: 2, alignItems: "center", justifyContent: "center", children: [
57
+ /* @__PURE__ */ n(
58
+ r,
59
+ {
60
+ role: typeof l.onClick == "function" ? "button" : void 0,
61
+ tabIndex: typeof l.onClick == "function" ? 0 : -1,
62
+ onKeyDown: T,
63
+ onClick: l.onClick,
64
+ alignItems: "center",
65
+ justifyContent: "center",
66
+ flexDirection: "column",
67
+ gap: 2,
68
+ inlineCSS: {
69
+ position: "relative",
70
+ border: "1px solid rgba(0, 0, 0, 0.05)",
71
+ borderRadius: 100,
72
+ width: 88,
73
+ height: 88,
74
+ overflow: "hidden",
75
+ backgroundColor: y.primary,
76
+ cursor: typeof l.onClick == "function" ? "pointer" : void 0
77
+ },
78
+ children: [
79
+ l.src && /* @__PURE__ */ e(
80
+ O,
81
+ {
82
+ width: 88,
83
+ height: 88,
84
+ src: l.src,
85
+ alt: `${p} 선생님 프로필 이미지`,
86
+ fit: "cover"
87
+ }
88
+ ),
89
+ !l.src && !l.placeholder && /* @__PURE__ */ n(
90
+ r,
91
+ {
92
+ role: "status",
93
+ flexDirection: "column",
94
+ alignItems: "center",
95
+ justifyContent: "center",
96
+ children: [
97
+ /* @__PURE__ */ e(
98
+ t,
99
+ {
100
+ tag: "p",
101
+ variant: "c3M",
102
+ color: "grey.70",
103
+ "aria-label": "등록된 프로필 사진이 없어요.",
104
+ children: "프로필 사진"
105
+ }
106
+ ),
107
+ /* @__PURE__ */ e(t, { tag: "span", variant: "c5R", color: "etc.red", "aria-hidden": !0, children: "(필수)" })
108
+ ]
109
+ }
110
+ ),
111
+ !l.src && l.placeholder && l.placeholder,
112
+ l.status === "REJECTED" && /* @__PURE__ */ n(C, { children: [
113
+ /* @__PURE__ */ e(
114
+ r,
115
+ {
116
+ alignItems: "center",
117
+ justifyContent: "center",
118
+ inlineCSS: {
119
+ position: "absolute",
120
+ top: 0,
121
+ left: 0,
122
+ width: "100%",
123
+ height: "100%",
124
+ opacity: 0.8,
125
+ backgroundColor: y.primary,
126
+ zIndex: 1
127
+ }
128
+ }
129
+ ),
130
+ /* @__PURE__ */ e(
131
+ d,
132
+ {
133
+ name: "AlertFill",
134
+ size: "xSmall",
135
+ color: "etc.red",
136
+ inlineCSS: {
137
+ position: "absolute",
138
+ top: "50%",
139
+ left: "50%",
140
+ transform: "translate(-50%, -50%)",
141
+ zIndex: 1
142
+ }
143
+ }
144
+ ),
145
+ /* @__PURE__ */ e(t, { role: "status", visuallyHidden: !0, children: "프로필 사진이 반려되었어요. 다시 등록해주세요." })
146
+ ] })
147
+ ]
148
+ }
149
+ ),
150
+ (c == null ? void 0 : c.isValid()) && /* @__PURE__ */ e(
151
+ t,
152
+ {
153
+ tag: "p",
154
+ variant: "c3M",
155
+ color: "grey.50",
156
+ "aria-label": `마지막 활동 시간 ${c.fromNow()}`,
157
+ children: c.fromNow()
158
+ }
159
+ )
160
+ ] }),
161
+ /* @__PURE__ */ n(
162
+ r,
163
+ {
164
+ flexDirection: "column",
165
+ justifyContent: "flex-start",
166
+ gap: 3,
167
+ pt: 0.75,
168
+ pb: 0.75,
169
+ flexGrow: 1,
170
+ children: [
171
+ /* @__PURE__ */ n(
172
+ r,
173
+ {
174
+ alignItems: "center",
175
+ gap: 2,
176
+ inlineCSS: {
177
+ maxHeight: 30
178
+ },
179
+ children: [
180
+ u && /* @__PURE__ */ e(
181
+ B,
182
+ {
183
+ variant: "outlined",
184
+ size: "small",
185
+ color: "blue",
186
+ "aria-label": `${p} 선생님의 등급: ${u}`,
187
+ children: u
188
+ }
189
+ ),
190
+ /* @__PURE__ */ n(
191
+ t,
192
+ {
193
+ tag: "p",
194
+ variant: "h2B",
195
+ "aria-label": `${p} 선생님`,
196
+ inlineCSS: {
197
+ flexGrow: 1,
198
+ "& > span": {
199
+ marginLeft: a.content(1),
200
+ fontWeight: 400
201
+ }
202
+ },
203
+ children: [
204
+ p,
205
+ /* @__PURE__ */ e("span", { "aria-hidden": !0, children: "선생님" })
206
+ ]
207
+ }
208
+ ),
209
+ R
210
+ ]
211
+ }
212
+ ),
213
+ M && /* @__PURE__ */ n(
214
+ r,
215
+ {
216
+ pl: 4,
217
+ pr: 4,
218
+ pt: 2,
219
+ pb: 2,
220
+ justifyContent: "space-between",
221
+ alignItems: "center",
222
+ gap: 5,
223
+ inlineCSS: {
224
+ borderRadius: 8,
225
+ backgroundColor: y.primary
226
+ },
227
+ children: [
228
+ /* @__PURE__ */ n(r, { alignItems: "center", role: "group", "aria-label": `누적 수업 ${S}시간`, children: [
229
+ /* @__PURE__ */ e(d, { name: "TimeLine", size: "xSmall", color: "grey.70" }),
230
+ /* @__PURE__ */ e(
231
+ t,
232
+ {
233
+ tag: "p",
234
+ variant: "h4B",
235
+ inlineCSS: {
236
+ marginLeft: a.content(1),
237
+ color: w.primary.text
238
+ },
239
+ children: S.toLocaleString()
240
+ }
241
+ ),
242
+ /* @__PURE__ */ e(
243
+ t,
244
+ {
245
+ tag: "span",
246
+ variant: "b5R",
247
+ color: "grey.70",
248
+ inlineCSS: {
249
+ marginLeft: a.content(0.5)
250
+ },
251
+ children: "시간"
252
+ }
253
+ )
254
+ ] }),
255
+ /* @__PURE__ */ n(
256
+ r,
257
+ {
258
+ alignItems: "center",
259
+ role: "group",
260
+ "aria-label": h > 0 ? `평점 ${h}, 리뷰 ${m}개` : `평점 집계중, 리뷰 ${m}개`,
261
+ children: [
262
+ /* @__PURE__ */ e(d, { name: "ReviewFill", size: "xSmall", color: "grey.70" }),
263
+ h > 0 ? /* @__PURE__ */ n(C, { children: [
264
+ /* @__PURE__ */ e(
265
+ t,
266
+ {
267
+ tag: "p",
268
+ variant: "h4B",
269
+ inlineCSS: {
270
+ marginLeft: a.content(1),
271
+ color: w.primary.text
272
+ },
273
+ children: h.toLocaleString()
274
+ }
275
+ ),
276
+ /* @__PURE__ */ n(
277
+ t,
278
+ {
279
+ tag: "span",
280
+ variant: "b5R",
281
+ color: "grey.70",
282
+ inlineCSS: {
283
+ marginLeft: a.content(0.5)
284
+ },
285
+ children: [
286
+ "(",
287
+ m.toLocaleString(),
288
+ ")"
289
+ ]
290
+ }
291
+ )
292
+ ] }) : /* @__PURE__ */ e(
293
+ t,
294
+ {
295
+ tag: "p",
296
+ variant: "h4R",
297
+ color: "grey.70",
298
+ inlineCSS: {
299
+ marginLeft: a.content(1)
300
+ },
301
+ children: "집계중"
302
+ }
303
+ )
304
+ ]
305
+ }
306
+ )
307
+ ]
308
+ }
309
+ )
310
+ ]
311
+ }
312
+ )
313
+ ] }),
314
+ /* @__PURE__ */ n(
315
+ r,
316
+ {
317
+ flexDirection: "column",
318
+ inlineCSS: {
319
+ position: "relative"
320
+ },
321
+ children: [
322
+ (!i.summary || !i.aboutMe) && !i.placeholder && /* @__PURE__ */ n(
323
+ t,
324
+ {
325
+ tag: "p",
326
+ variant: "b4R",
327
+ color: "grey.70",
328
+ "aria-label": "작성된 프로필 소개가 없어요.",
329
+ inlineCSS: {
330
+ "& > span": {
331
+ color: k.red
332
+ }
333
+ },
334
+ children: [
335
+ /* @__PURE__ */ e("span", { "aria-hidden": !0, children: "(필수)" }),
336
+ " 프로필 소개를 작성하세요."
337
+ ]
338
+ }
339
+ ),
340
+ (!i.summary || !i.aboutMe) && i.placeholder && i.placeholder,
341
+ i.summary && i.aboutMe && /* @__PURE__ */ n(C, { children: [
342
+ i.status === "REJECTED" && /* @__PURE__ */ e(t, { role: "status", visuallyHidden: !0, children: "프로필 소개가 반려되었어요. 다시 작성해주세요." }),
343
+ /* @__PURE__ */ n(
344
+ t,
345
+ {
346
+ tag: "dl",
347
+ variant: "b4M",
348
+ color: i.status === "REJECTED" ? "grey.30" : void 0,
349
+ inlineCSS: {
350
+ display: "flex",
351
+ alignItems: "center"
352
+ },
353
+ children: [
354
+ i.status === "REJECTED" && /* @__PURE__ */ e(
355
+ d,
356
+ {
357
+ name: "AlertFill",
358
+ size: "xSmall",
359
+ color: "etc.red",
360
+ inlineCSS: {
361
+ marginRight: a.content(1)
362
+ }
363
+ }
364
+ ),
365
+ /* @__PURE__ */ e(r, { tag: "dt", visuallyHidden: !0, children: "한 줄 소개" }),
366
+ /* @__PURE__ */ e("dd", { children: i.summary })
367
+ ]
368
+ }
369
+ ),
370
+ /* @__PURE__ */ n(
371
+ t,
372
+ {
373
+ ref: b,
374
+ id: "about-me",
375
+ tag: "dl",
376
+ variant: "b4R",
377
+ color: i.status === "REJECTED" ? "grey.30" : "grey.70",
378
+ lineClamp: g ? void 0 : 4,
379
+ inlineCSS: {
380
+ marginTop: a.content(2),
381
+ whiteSpace: "pre-wrap"
382
+ },
383
+ children: [
384
+ /* @__PURE__ */ e(r, { tag: "dt", visuallyHidden: !0, children: "자기소개" }),
385
+ /* @__PURE__ */ e("dd", { children: i.aboutMe })
386
+ ]
387
+ }
388
+ )
389
+ ] }),
390
+ z && /* @__PURE__ */ e(
391
+ G,
392
+ {
393
+ variant: "text",
394
+ size: "xSmall",
395
+ color: "secondary",
396
+ endAdornment: /* @__PURE__ */ e(d, { name: g ? "ChevronUpLine" : "ChevronDownLine" }),
397
+ onClick: j,
398
+ "aria-expanded": g,
399
+ "aria-controls": "about-me",
400
+ inlineCSS: {
401
+ marginLeft: "auto"
402
+ },
403
+ children: g ? "접기" : "더보기"
404
+ }
405
+ )
406
+ ]
407
+ }
408
+ ),
409
+ L
410
+ ]
411
+ }
412
+ );
5
413
  }
6
414
  export {
7
- f as default
415
+ X as default
8
416
  };
@@ -1,2 +1,3 @@
1
- import { default as ProfileSummary } from './ProfileSummary';
1
+ import { ProfileSummaryProps, default as ProfileSummary } from './ProfileSummary';
2
+ export type { ProfileSummaryProps };
2
3
  export default ProfileSummary;
@@ -0,0 +1,7 @@
1
+ import { LabelProps } from 'node_modules/@dotss/ui/Label/Label';
2
+ export interface StatBadgeProps extends LabelProps {
3
+ type: 'play' | 'creativeArt' | 'english' | 'learning';
4
+ percent: number;
5
+ }
6
+ declare function StatBadge({ type, percent, ...props }: StatBadgeProps): import("@emotion/react/jsx-runtime").JSX.Element;
7
+ export default StatBadge;
@@ -0,0 +1,105 @@
1
+ import { jsxs as r, jsx as a } from "react/jsx-runtime";
2
+ import { Label as e } from "@dotss/ui";
3
+ import s from "../../../../../shared/components/Image/Image.mjs";
4
+ function n({ type: l, percent: t, ...i }) {
5
+ return l === "creativeArt" ? /* @__PURE__ */ r(
6
+ e,
7
+ {
8
+ variant: "ghost",
9
+ size: "small",
10
+ color: "grey",
11
+ startAdornment: /* @__PURE__ */ a(
12
+ s,
13
+ {
14
+ width: 16,
15
+ height: 16,
16
+ src: "https://dev-static.tictoccroc.co.kr/teacher/images/design-system/graphic/illustration3D/brush.png",
17
+ alt: "창의미술 상위 배지 아이콘",
18
+ "aria-hidden": !0
19
+ }
20
+ ),
21
+ "aria-label": `창의미술 상위 ${t}퍼센트`,
22
+ ...i,
23
+ children: [
24
+ "창의미술 상위 ",
25
+ t,
26
+ "%"
27
+ ]
28
+ }
29
+ ) : l === "english" ? /* @__PURE__ */ r(
30
+ e,
31
+ {
32
+ variant: "ghost",
33
+ size: "small",
34
+ color: "grey",
35
+ startAdornment: /* @__PURE__ */ a(
36
+ s,
37
+ {
38
+ width: 16,
39
+ height: 16,
40
+ src: "https://dev-static.tictoccroc.co.kr/teacher/images/design-system/graphic/illustration3D/english.png",
41
+ alt: "영어 상위 배지 아이콘",
42
+ "aria-hidden": !0
43
+ }
44
+ ),
45
+ "aria-label": `영어 상위 ${t}퍼센트`,
46
+ ...i,
47
+ children: [
48
+ "영어 상위 ",
49
+ t,
50
+ "%"
51
+ ]
52
+ }
53
+ ) : l === "learning" ? /* @__PURE__ */ r(
54
+ e,
55
+ {
56
+ variant: "ghost",
57
+ size: "small",
58
+ color: "grey",
59
+ startAdornment: /* @__PURE__ */ a(
60
+ s,
61
+ {
62
+ width: 16,
63
+ height: 16,
64
+ src: "https://dev-static.tictoccroc.co.kr/teacher/images/design-system/graphic/illustration3D/pencil.png",
65
+ alt: "학습 상위 배지 아이콘",
66
+ "aria-hidden": !0
67
+ }
68
+ ),
69
+ "aria-label": `학습 상위 ${t}퍼센트`,
70
+ ...i,
71
+ children: [
72
+ "학습 상위 ",
73
+ t,
74
+ "%"
75
+ ]
76
+ }
77
+ ) : /* @__PURE__ */ r(
78
+ e,
79
+ {
80
+ variant: "ghost",
81
+ size: "small",
82
+ color: "grey",
83
+ startAdornment: /* @__PURE__ */ a(
84
+ s,
85
+ {
86
+ width: 16,
87
+ height: 16,
88
+ src: "https://dev-static.tictoccroc.co.kr/teacher/images/design-system/graphic/illustration3D/block.png",
89
+ alt: "놀이 상위 배지 아이콘",
90
+ "aria-hidden": !0
91
+ }
92
+ ),
93
+ "aria-label": `놀이 상위 ${t}퍼센트`,
94
+ ...i,
95
+ children: [
96
+ "놀이 상위 ",
97
+ t,
98
+ "%"
99
+ ]
100
+ }
101
+ );
102
+ }
103
+ export {
104
+ n as default
105
+ };
@@ -0,0 +1,3 @@
1
+ import { default as StatBadge, StatBadgeProps } from './StatBadge';
2
+ export type { StatBadgeProps };
3
+ export default StatBadge;
@@ -0,0 +1,4 @@
1
+ import a from "./StatBadge.mjs";
2
+ export {
3
+ a as default
4
+ };
@@ -0,0 +1,6 @@
1
+ import { FlexboxProps } from 'node_modules/@dotss/ui/Flexbox/Flexbox';
2
+ export interface StatBadgeCollectionProps extends FlexboxProps {
3
+ hideDescription?: boolean;
4
+ }
5
+ declare function StatBadgeCollection({ children, hideDescription, ...props }: StatBadgeCollectionProps): import("@emotion/react/jsx-runtime").JSX.Element;
6
+ export default StatBadgeCollection;
@@ -0,0 +1,28 @@
1
+ import { jsxs as r, jsx as e } from "react/jsx-runtime";
2
+ import { Flexbox as a, Icon as t, Typography as i } from "@dotss/ui";
3
+ function p({
4
+ children: l,
5
+ hideDescription: o = !1,
6
+ ...n
7
+ }) {
8
+ return /* @__PURE__ */ r(
9
+ a,
10
+ {
11
+ tag: "section",
12
+ flexDirection: "column",
13
+ gap: 1,
14
+ "aria-label": "째깍악어 돌봄 통계 배지 안내",
15
+ ...n,
16
+ children: [
17
+ /* @__PURE__ */ e(a, { alignItems: "center", flexWrap: "wrap", gap: 1, role: "group", "aria-label": "획득한 배지", children: l }),
18
+ !o && /* @__PURE__ */ r(a, { gap: 0.5, alignItems: "center", children: [
19
+ /* @__PURE__ */ e(t, { name: "InformationLine", color: "grey.50", size: "xSmall" }),
20
+ /* @__PURE__ */ e(i, { tag: "p", variant: "c5M", color: "grey.50", children: "째깍악어 통계 기반으로 자동 부여되는 배지예요." })
21
+ ] })
22
+ ]
23
+ }
24
+ );
25
+ }
26
+ export {
27
+ p as default
28
+ };
@@ -0,0 +1,4 @@
1
+ import { default as StatBadgeCollection, StatBadgeCollectionProps } from './StatBadgeCollection';
2
+ export { default as StatBadge, type StatBadgeProps } from './StatBadge';
3
+ export type { StatBadgeCollectionProps };
4
+ export default StatBadgeCollection;
@@ -0,0 +1,6 @@
1
+ import a from "./StatBadgeCollection.mjs";
2
+ import { default as r } from "./StatBadge/StatBadge.mjs";
3
+ export {
4
+ r as StatBadge,
5
+ a as default
6
+ };