@tipp/ui 1.5.0 → 1.5.1

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 (222) hide show
  1. package/dist/app/index.cjs +100 -92
  2. package/dist/app/index.cjs.map +1 -1
  3. package/dist/app/index.js +26 -26
  4. package/dist/app/platform/coach-question-list.cjs +7 -7
  5. package/dist/app/platform/coach-question-list.cjs.map +1 -1
  6. package/dist/app/platform/coach-question-list.js +10 -10
  7. package/dist/app/platform/edit-coaching-time.cjs +18 -18
  8. package/dist/app/platform/edit-coaching-time.cjs.map +1 -1
  9. package/dist/app/platform/edit-coaching-time.js +18 -18
  10. package/dist/app/platform/edit-service-type.cjs +10 -10
  11. package/dist/app/platform/edit-service-type.cjs.map +1 -1
  12. package/dist/app/platform/edit-service-type.js +17 -17
  13. package/dist/app/platform/goal-manage-card-edit.cjs +14 -14
  14. package/dist/app/platform/goal-manage-card-edit.cjs.map +1 -1
  15. package/dist/app/platform/goal-manage-card-edit.js +16 -16
  16. package/dist/app/platform/goal-manage-card-read.cjs +16 -16
  17. package/dist/app/platform/goal-manage-card-read.cjs.map +1 -1
  18. package/dist/app/platform/goal-manage-card-read.js +11 -11
  19. package/dist/app/platform/on-offline-radio-card.js +15 -15
  20. package/dist/app/platform/report-card.cjs +7 -7
  21. package/dist/app/platform/report-card.cjs.map +1 -1
  22. package/dist/app/platform/report-card.js +15 -15
  23. package/dist/app/platform/reservation-card.cjs +28 -28
  24. package/dist/app/platform/reservation-card.cjs.map +1 -1
  25. package/dist/app/platform/reservation-card.js +16 -16
  26. package/dist/app/platform/session-card.cjs +69 -61
  27. package/dist/app/platform/session-card.cjs.map +1 -1
  28. package/dist/app/platform/session-card.js +19 -19
  29. package/dist/app/platform/session-review-simple-read.cjs +8 -8
  30. package/dist/app/platform/session-review-simple-read.cjs.map +1 -1
  31. package/dist/app/platform/session-review-simple-read.js +10 -10
  32. package/dist/app/platform/userInfos/coaching-customer-info/index.cjs +17 -17
  33. package/dist/app/platform/userInfos/coaching-customer-info/index.cjs.map +1 -1
  34. package/dist/app/platform/userInfos/coaching-customer-info/index.js +13 -13
  35. package/dist/app/platform/userInfos/coaching-customer-info/large.cjs +8 -8
  36. package/dist/app/platform/userInfos/coaching-customer-info/large.cjs.map +1 -1
  37. package/dist/app/platform/userInfos/coaching-customer-info/large.js +11 -11
  38. package/dist/app/platform/userInfos/coaching-customer-info/medium.cjs +13 -13
  39. package/dist/app/platform/userInfos/coaching-customer-info/medium.cjs.map +1 -1
  40. package/dist/app/platform/userInfos/coaching-customer-info/medium.js +11 -11
  41. package/dist/app/platform/userInfos/coaching-customer-info/small.cjs +11 -11
  42. package/dist/app/platform/userInfos/coaching-customer-info/small.cjs.map +1 -1
  43. package/dist/app/platform/userInfos/coaching-customer-info/small.js +10 -10
  44. package/dist/app/platform/userInfos/session-user-info-detail.cjs +11 -11
  45. package/dist/app/platform/userInfos/session-user-info-detail.cjs.map +1 -1
  46. package/dist/app/platform/userInfos/session-user-info-detail.js +11 -11
  47. package/dist/app/platform/userInfos/utils.js +10 -10
  48. package/dist/atoms/dialog.cjs +49 -81
  49. package/dist/atoms/dialog.cjs.map +1 -1
  50. package/dist/atoms/dialog.d.cts +2 -0
  51. package/dist/atoms/dialog.d.ts +2 -0
  52. package/dist/atoms/dialog.js +3 -3
  53. package/dist/atoms/drawer.js +2 -2
  54. package/dist/atoms/index.cjs +76 -68
  55. package/dist/atoms/index.cjs.map +1 -1
  56. package/dist/atoms/index.js +19 -19
  57. package/dist/chunk-2M2IFCSK.js +52 -0
  58. package/dist/chunk-2M2IFCSK.js.map +1 -0
  59. package/dist/chunk-2OS7X2DG.js +138 -0
  60. package/dist/chunk-2OS7X2DG.js.map +1 -0
  61. package/dist/chunk-36JB7UOF.js +138 -0
  62. package/dist/chunk-36JB7UOF.js.map +1 -0
  63. package/dist/chunk-4T4KKREE.js +30 -0
  64. package/dist/chunk-4T4KKREE.js.map +1 -0
  65. package/dist/chunk-5327PTNJ.js +138 -0
  66. package/dist/chunk-5327PTNJ.js.map +1 -0
  67. package/dist/chunk-547DJCAJ.js +74 -0
  68. package/dist/chunk-547DJCAJ.js.map +1 -0
  69. package/dist/chunk-5AAS42YG.js +98 -0
  70. package/dist/chunk-5AAS42YG.js.map +1 -0
  71. package/dist/chunk-5E3TLMRW.js +138 -0
  72. package/dist/chunk-5E3TLMRW.js.map +1 -0
  73. package/dist/chunk-5FP6SWXJ.js +203 -0
  74. package/dist/chunk-5FP6SWXJ.js.map +1 -0
  75. package/dist/chunk-6Y3Z5OIX.js +101 -0
  76. package/dist/chunk-6Y3Z5OIX.js.map +1 -0
  77. package/dist/chunk-7EDPO2Y5.js +138 -0
  78. package/dist/chunk-7EDPO2Y5.js.map +1 -0
  79. package/dist/chunk-7OJSWKHZ.js +138 -0
  80. package/dist/chunk-7OJSWKHZ.js.map +1 -0
  81. package/dist/chunk-7TWIGS7O.js +101 -0
  82. package/dist/chunk-7TWIGS7O.js.map +1 -0
  83. package/dist/chunk-7WLDXOOO.js +350 -0
  84. package/dist/chunk-7WLDXOOO.js.map +1 -0
  85. package/dist/chunk-7ZEWNVHJ.js +192 -0
  86. package/dist/chunk-7ZEWNVHJ.js.map +1 -0
  87. package/dist/chunk-AKKAPBO4.js +52 -0
  88. package/dist/chunk-AKKAPBO4.js.map +1 -0
  89. package/dist/chunk-AOCMD34M.js +138 -0
  90. package/dist/chunk-AOCMD34M.js.map +1 -0
  91. package/dist/chunk-AP5ARKJL.js +138 -0
  92. package/dist/chunk-AP5ARKJL.js.map +1 -0
  93. package/dist/chunk-C24NCIRF.js +138 -0
  94. package/dist/chunk-C24NCIRF.js.map +1 -0
  95. package/dist/chunk-C3QWDJ3D.js +145 -0
  96. package/dist/chunk-C3QWDJ3D.js.map +1 -0
  97. package/dist/chunk-CEMVFONQ.js +104 -0
  98. package/dist/chunk-CEMVFONQ.js.map +1 -0
  99. package/dist/chunk-CJ3XXETF.js +109 -0
  100. package/dist/chunk-CJ3XXETF.js.map +1 -0
  101. package/dist/chunk-EBSM7TV4.js +101 -0
  102. package/dist/chunk-EBSM7TV4.js.map +1 -0
  103. package/dist/chunk-FMCDZEXR.js +58 -0
  104. package/dist/chunk-FMCDZEXR.js.map +1 -0
  105. package/dist/chunk-H623KT6H.js +138 -0
  106. package/dist/chunk-H623KT6H.js.map +1 -0
  107. package/dist/chunk-IE5GRQOQ.js +112 -0
  108. package/dist/chunk-IE5GRQOQ.js.map +1 -0
  109. package/dist/chunk-IVGPZUCB.js +203 -0
  110. package/dist/chunk-IVGPZUCB.js.map +1 -0
  111. package/dist/chunk-JTEQ25Z5.js +101 -0
  112. package/dist/chunk-JTEQ25Z5.js.map +1 -0
  113. package/dist/chunk-JXRHM4PD.js +138 -0
  114. package/dist/chunk-JXRHM4PD.js.map +1 -0
  115. package/dist/chunk-JZXYBYIV.js +39 -0
  116. package/dist/chunk-JZXYBYIV.js.map +1 -0
  117. package/dist/chunk-KJMWCR2G.js +101 -0
  118. package/dist/chunk-KJMWCR2G.js.map +1 -0
  119. package/dist/chunk-LQT6ZGLA.js +138 -0
  120. package/dist/chunk-LQT6ZGLA.js.map +1 -0
  121. package/dist/chunk-M5G5KMUE.js +76 -0
  122. package/dist/chunk-M5G5KMUE.js.map +1 -0
  123. package/dist/chunk-MI2LODDO.js +138 -0
  124. package/dist/chunk-MI2LODDO.js.map +1 -0
  125. package/dist/chunk-MOZLM3CP.js +171 -0
  126. package/dist/chunk-MOZLM3CP.js.map +1 -0
  127. package/dist/chunk-MR4FQ4H6.js +93 -0
  128. package/dist/chunk-MR4FQ4H6.js.map +1 -0
  129. package/dist/chunk-NFTADDQN.js +138 -0
  130. package/dist/chunk-NFTADDQN.js.map +1 -0
  131. package/dist/chunk-NHC6ZFBA.js +138 -0
  132. package/dist/chunk-NHC6ZFBA.js.map +1 -0
  133. package/dist/chunk-NPSJEUC6.js +138 -0
  134. package/dist/chunk-NPSJEUC6.js.map +1 -0
  135. package/dist/chunk-OUZT3SDR.js +59 -0
  136. package/dist/chunk-OUZT3SDR.js.map +1 -0
  137. package/dist/chunk-PWPVK2HB.js +112 -0
  138. package/dist/chunk-PWPVK2HB.js.map +1 -0
  139. package/dist/chunk-Q64HDW6R.js +109 -0
  140. package/dist/chunk-Q64HDW6R.js.map +1 -0
  141. package/dist/chunk-QJ4FYN6G.js +76 -0
  142. package/dist/chunk-QJ4FYN6G.js.map +1 -0
  143. package/dist/chunk-QNYWSY5P.js +164 -0
  144. package/dist/chunk-QNYWSY5P.js.map +1 -0
  145. package/dist/chunk-R255GZPB.js +35 -0
  146. package/dist/chunk-R255GZPB.js.map +1 -0
  147. package/dist/chunk-RGH3ADLO.js +101 -0
  148. package/dist/chunk-RGH3ADLO.js.map +1 -0
  149. package/dist/chunk-RLFG5TCU.js +98 -0
  150. package/dist/chunk-RLFG5TCU.js.map +1 -0
  151. package/dist/chunk-TCF7B3N3.js +101 -0
  152. package/dist/chunk-TCF7B3N3.js.map +1 -0
  153. package/dist/chunk-TJ564MUO.js +145 -0
  154. package/dist/chunk-TJ564MUO.js.map +1 -0
  155. package/dist/chunk-TJSCVJT2.js +138 -0
  156. package/dist/chunk-TJSCVJT2.js.map +1 -0
  157. package/dist/chunk-TMDNIBIV.js +64 -0
  158. package/dist/chunk-TMDNIBIV.js.map +1 -0
  159. package/dist/chunk-TW5EULWR.js +93 -0
  160. package/dist/chunk-TW5EULWR.js.map +1 -0
  161. package/dist/chunk-UB6KOKKQ.js +138 -0
  162. package/dist/chunk-UB6KOKKQ.js.map +1 -0
  163. package/dist/chunk-UVJASJN4.js +64 -0
  164. package/dist/chunk-UVJASJN4.js.map +1 -0
  165. package/dist/chunk-VYGMNI7T.js +138 -0
  166. package/dist/chunk-VYGMNI7T.js.map +1 -0
  167. package/dist/chunk-W4QKUPPN.js +138 -0
  168. package/dist/chunk-W4QKUPPN.js.map +1 -0
  169. package/dist/chunk-WVBFSWKT.js +104 -0
  170. package/dist/chunk-WVBFSWKT.js.map +1 -0
  171. package/dist/chunk-X3SEOKG4.js +243 -0
  172. package/dist/chunk-X3SEOKG4.js.map +1 -0
  173. package/dist/chunk-XBYZM24U.js +112 -0
  174. package/dist/chunk-XBYZM24U.js.map +1 -0
  175. package/dist/chunk-XEJG52Y3.js +112 -0
  176. package/dist/chunk-XEJG52Y3.js.map +1 -0
  177. package/dist/chunk-XEJNYJF6.js +80 -0
  178. package/dist/chunk-XEJNYJF6.js.map +1 -0
  179. package/dist/chunk-XNOQPF6O.js +171 -0
  180. package/dist/chunk-XNOQPF6O.js.map +1 -0
  181. package/dist/chunk-Y2MNPJCI.js +73 -0
  182. package/dist/chunk-Y2MNPJCI.js.map +1 -0
  183. package/dist/chunk-YHW5PCCE.js +57 -0
  184. package/dist/chunk-YHW5PCCE.js.map +1 -0
  185. package/dist/chunk-YK2IAHKI.js +138 -0
  186. package/dist/chunk-YK2IAHKI.js.map +1 -0
  187. package/dist/chunk-YVWOLJ44.js +101 -0
  188. package/dist/chunk-YVWOLJ44.js.map +1 -0
  189. package/dist/chunk-ZAQQ6H6W.js +30 -0
  190. package/dist/chunk-ZAQQ6H6W.js.map +1 -0
  191. package/dist/chunk-ZUL5FOQW.js +203 -0
  192. package/dist/chunk-ZUL5FOQW.js.map +1 -0
  193. package/dist/chunk-ZW34437K.js +138 -0
  194. package/dist/chunk-ZW34437K.js.map +1 -0
  195. package/dist/chunk-ZW37CDPD.js +243 -0
  196. package/dist/chunk-ZW37CDPD.js.map +1 -0
  197. package/dist/index.cjs +147 -139
  198. package/dist/index.cjs.map +1 -1
  199. package/dist/index.css +5 -3
  200. package/dist/index.css.map +1 -1
  201. package/dist/index.js +56 -56
  202. package/dist/layouts/index.js +10 -10
  203. package/dist/layouts/response-display.js +10 -10
  204. package/dist/molecules/date-picker/date-picker-button.cjs +12 -12
  205. package/dist/molecules/date-picker/date-picker-button.cjs.map +1 -1
  206. package/dist/molecules/date-picker/date-picker-button.js +10 -10
  207. package/dist/molecules/expand-table/index.cjs +12 -12
  208. package/dist/molecules/expand-table/index.cjs.map +1 -1
  209. package/dist/molecules/expand-table/index.js +13 -13
  210. package/dist/molecules/expand-table/row.js +10 -10
  211. package/dist/molecules/form.d.cts +1 -1
  212. package/dist/molecules/form.d.ts +1 -1
  213. package/dist/molecules/index.cjs +46 -46
  214. package/dist/molecules/index.cjs.map +1 -1
  215. package/dist/molecules/index.js +15 -15
  216. package/dist/molecules/navigation.js +10 -10
  217. package/dist/molecules/radio-button-card.js +10 -10
  218. package/dist/molecules/stepper.js +2 -2
  219. package/dist/molecules/tag-selector.js +11 -11
  220. package/dist/molecules/time-select.js +10 -10
  221. package/package.json +3 -3
  222. package/src/atoms/dialog.tsx +23 -6
@@ -209,16 +209,10 @@ var import_react_toastify = require("react-toastify");
209
209
  var import_react_toastify2 = require("react-toastify");
210
210
  var import_jsx_runtime4 = require("react/jsx-runtime");
211
211
 
212
- // src/atoms/flex.tsx
213
- var import_themes6 = require("@radix-ui/themes");
214
-
215
- // src/atoms/grid.tsx
216
- var import_themes7 = require("@radix-ui/themes");
217
-
218
212
  // src/atoms/heading.tsx
219
- var import_themes8 = require("@radix-ui/themes");
213
+ var import_themes6 = require("@radix-ui/themes");
220
214
  var import_react4 = require("react");
221
- var import_themes9 = require("@radix-ui/themes");
215
+ var import_themes7 = require("@radix-ui/themes");
222
216
  var import_jsx_runtime5 = require("react/jsx-runtime");
223
217
  function Heading2(props) {
224
218
  const _a = props, { size, children, variant } = _a, rest = __objRest(_a, ["size", "children", "variant"]);
@@ -238,9 +232,15 @@ function Heading2(props) {
238
232
  return size;
239
233
  }
240
234
  }, [size, variant]);
241
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_themes8.Heading, __spreadProps(__spreadValues({}, rest), { size: radixSize, children }));
235
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_themes6.Heading, __spreadProps(__spreadValues({}, rest), { size: radixSize, children }));
242
236
  }
243
237
 
238
+ // src/atoms/flex.tsx
239
+ var import_themes8 = require("@radix-ui/themes");
240
+
241
+ // src/atoms/grid.tsx
242
+ var import_themes9 = require("@radix-ui/themes");
243
+
244
244
  // src/atoms/separator.tsx
245
245
  var import_themes10 = require("@radix-ui/themes");
246
246
 
@@ -285,13 +285,13 @@ function CoachingCustomerInfoSmall({
285
285
  return (0, import_biz_utils.getTextFromProjectState)(session == null ? void 0 : session.state);
286
286
  }, [session == null ? void 0 : session.state]);
287
287
  return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
288
- import_themes6.Flex,
288
+ import_themes8.Flex,
289
289
  {
290
290
  direction: { initial: "column", xs: "row" },
291
291
  gap: "3",
292
292
  justify: "between",
293
293
  children: [
294
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_themes2.Box, { children: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_themes7.Grid, { align: "center", columns: "auto auto 1fr", gapX: "3", children: [
294
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_themes2.Box, { children: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_themes9.Grid, { align: "center", columns: "auto auto 1fr", gapX: "3", children: [
295
295
  /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Heading2, { variant: "heading3", children: (customer == null ? void 0 : customer.username) || "\uC774\uB984 \uC5C6\uC74C" }),
296
296
  /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Typo, { color: "gray", truncate: true, variant: "body", children: customer == null ? void 0 : customer.company }),
297
297
  /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Badge, { color: badgeColor, children: sessionText })
@@ -387,9 +387,9 @@ function CoachingCustomerInfoMedium({
387
387
  const sessionText = (0, import_react7.useMemo)(() => {
388
388
  return (0, import_biz_utils2.getTextFromProjectState)(session == null ? void 0 : session.state);
389
389
  }, [session == null ? void 0 : session.state]);
390
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_themes6.Flex, { direction: "column", gap: "5", children: [
390
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_themes8.Flex, { direction: "column", gap: "5", children: [
391
391
  /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_themes2.Box, { children: [
392
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_themes6.Flex, { align: "center", justify: "between", mb: "1", width: "100%", children: [
392
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_themes8.Flex, { align: "center", justify: "between", mb: "1", width: "100%", children: [
393
393
  /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Heading2, { variant: "heading2", children: (customer == null ? void 0 : customer.username) || "\uC774\uB984 \uC5C6\uC74C" }),
394
394
  /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Badge, { color: badgeColor, children: sessionText })
395
395
  ] }),
@@ -397,11 +397,11 @@ function CoachingCustomerInfoMedium({
397
397
  ] }),
398
398
  children,
399
399
  /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Card, { size: "2", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_themes5.DataList.Root, { orientation: "vertical", children: sessionList.map((el) => renderDataListItem(el, session)) }) }),
400
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_themes7.Grid, { align: "center", columns: "auto 1fr", gap: "3", children: [
400
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_themes9.Grid, { align: "center", columns: "auto 1fr", gap: "3", children: [
401
401
  /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Heading2, { variant: "heading5", children: "\uACE0\uAC1D \uC815\uBCF4" }),
402
402
  /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_themes10.Separator, { size: "4" })
403
403
  ] }),
404
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_themes6.Flex, { direction: "column", gap: "4", children: infoList.map((el) => {
404
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_themes8.Flex, { direction: "column", gap: "4", children: infoList.map((el) => {
405
405
  return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Typo, { children: renderItem(el, customer) }, el.label);
406
406
  }) })
407
407
  ] });
@@ -422,9 +422,9 @@ function CoachingCustomerInfoLarge({
422
422
  const sessionText = (0, import_react8.useMemo)(() => {
423
423
  return (0, import_biz_utils3.getTextFromProjectState)(session == null ? void 0 : session.state);
424
424
  }, [session == null ? void 0 : session.state]);
425
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_themes6.Flex, { direction: "column", gap: "5", children: [
425
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_themes8.Flex, { direction: "column", gap: "5", children: [
426
426
  /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_themes2.Box, { children: [
427
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_themes6.Flex, { align: "center", justify: "between", mb: "1", width: "100%", children: [
427
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_themes8.Flex, { align: "center", justify: "between", mb: "1", width: "100%", children: [
428
428
  /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Heading2, { variant: "heading2", children: (customer == null ? void 0 : customer.username) || "\uC774\uB984 \uC5C6\uC74C" }),
429
429
  /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Badge, { color: badgeColor, children: sessionText })
430
430
  ] }),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/app/platform/userInfos/coaching-customer-info/index.tsx","../../../../../src/atoms/badge.tsx","../../../../../src/atoms/box.tsx","../../../../../src/atoms/button.tsx","../../../../../src/utils/convert-button-size.ts","../../../../../src/atoms/card.tsx","../../../../../src/atoms/data-list.tsx","../../../../../src/atoms/toast.tsx","../../../../../src/atoms/flex.tsx","../../../../../src/atoms/grid.tsx","../../../../../src/atoms/heading.tsx","../../../../../src/atoms/separator.tsx","../../../../../src/atoms/typo.tsx","../../../../../src/app/platform/userInfos/coaching-customer-info/small.tsx","../../../../../src/app/platform/userInfos/coaching-customer-info/medium.tsx","../../../../../src/app/platform/userInfos/utils.tsx","../../../../../src/app/platform/userInfos/coaching-customer-info/large.tsx"],"sourcesContent":["import React from 'react';\nimport { Box } from '../../../../atoms';\nimport type { CoachingCustomerInfoProps } from '../utils';\nimport { CoachingCustomerInfoSmall } from './small';\nimport { CoachingCustomerInfoMedium } from './medium';\nimport { CoachingCustomerInfoLarge } from './large';\n\nexport {\n CoachingCustomerInfoLarge,\n CoachingCustomerInfoMedium,\n CoachingCustomerInfoSmall,\n};\n\nexport function CoachingCustomerInfo(\n props: CoachingCustomerInfoProps\n): React.ReactElement {\n return (\n <>\n <Box display={{ initial: 'block', sm: 'none', md: 'none' }}>\n <CoachingCustomerInfoSmall {...props} />\n </Box>\n <Box display={{ initial: 'none', sm: 'block', md: 'none' }}>\n <CoachingCustomerInfoMedium {...props} />\n </Box>\n <Box display={{ initial: 'none', sm: 'none', md: 'block' }}>\n <CoachingCustomerInfoLarge {...props} />\n </Box>\n </>\n );\n}\n","import {\n Badge as RadixBadge,\n type BadgeProps as RadixBadgeProps,\n} from '@radix-ui/themes';\nimport { useMemo, forwardRef } from 'react';\n\nexport type BadgeProps = Omit<RadixBadgeProps, 'color' | 'size'> & {\n size?: 'small' | 'medium' | 'large';\n color?: 'error' | 'accent' | 'neutral' | 'success';\n};\n\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(\n (props: BadgeProps, ref): React.ReactElement => {\n const { size = 'small', color = 'accent', ...rest } = props;\n\n const radixSize = useMemo(() => {\n switch (size) {\n case 'small':\n return '1';\n case 'medium':\n return '2';\n case 'large':\n return '3';\n default:\n return '1';\n }\n }, [size]);\n\n const radixColor = useMemo(() => {\n switch (color) {\n case 'error':\n return 'red';\n case 'neutral':\n return 'gray';\n case 'success':\n return 'green';\n case 'accent':\n default:\n return undefined;\n }\n }, [color]);\n\n return (\n <RadixBadge {...rest} color={radixColor} ref={ref} size={radixSize} />\n );\n }\n);\n\nBadge.displayName = 'Badge';\n","export { Box, type BoxProps } from '@radix-ui/themes';\n","import React, { forwardRef, useMemo } from 'react';\nimport { Button as RadixButton } from '@radix-ui/themes';\nimport { convertSize } from '../utils/convert-button-size';\nimport type { ButtonProps } from './button.type';\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (props, ref): React.ReactElement => {\n const { size, style, variant, ...restProps } = props;\n\n const radixSize = useMemo(() => {\n return convertSize(size);\n }, [size]);\n\n const mergedStyle = useMemo<ButtonProps['style']>(() => {\n const baseStyle = {\n background: variant === 'transparent' ? 'transparent' : undefined,\n fontWeight: 400,\n };\n return { ...baseStyle, ...style };\n }, [style, variant]);\n\n const radixVariant = useMemo(() => {\n if (variant === 'transparent') return 'ghost';\n return variant;\n }, [variant]);\n\n return (\n <RadixButton\n style={mergedStyle}\n variant={radixVariant}\n {...restProps}\n ref={ref}\n size={radixSize}\n />\n );\n }\n);\n\nButton.displayName = 'Button';\n","import { type ButtonProps as RadixButtonProps } from '@radix-ui/themes';\nimport type { Breakpoint } from '@radix-ui/themes/props';\nimport type { ButtonProps } from '../atoms/button.type';\n\nexport const convertSizeStr = (\n size: ButtonProps['size']\n): '1' | '2' | '3' | '4' => {\n switch (size) {\n case 'small':\n return '1';\n case 'medium':\n return '2';\n case 'large':\n return '3';\n default:\n return '2';\n }\n};\n\nexport const convertSizeResponse = (\n size: ButtonProps['size']\n): RadixButtonProps['size'] => {\n if (typeof size === 'string' || typeof size === 'undefined') {\n return convertSizeStr(size);\n }\n const radixSize: RadixButtonProps['size'] = {};\n let key: Breakpoint = 'initial';\n for (key in size) {\n radixSize[key] = convertSizeStr(size[key]);\n }\n return radixSize;\n};\n\nexport const convertSize = (\n size: ButtonProps['size']\n): RadixButtonProps['size'] => {\n if (typeof size === 'string') {\n return convertSizeStr(size);\n }\n return convertSizeResponse(size);\n};\n","import { forwardRef, useMemo } from 'react';\nimport {\n Card as RadixCard,\n type CardProps as RadixCardProps,\n} from '@radix-ui/themes';\n\nexport type CardProps = RadixCardProps & {\n borderRadius?: 'none';\n borderDisable?: {\n left?: boolean;\n right?: boolean;\n top?: boolean;\n bottom?: boolean;\n };\n error?: boolean;\n};\n\nexport const Card = forwardRef<HTMLDivElement, CardProps>(\n (props, forwardedRef) => {\n const { borderDisable, borderRadius, error, ...rest } = props;\n\n const borderInsetClassName = useMemo(() => {\n if (!borderDisable) return '';\n const { left, right, top, bottom } = borderDisable;\n return [\n left && 'disable-inset-left',\n right && 'disable-inset-right',\n top && 'disable-inset-top',\n bottom && 'disable-inset-bottom',\n ]\n .filter(Boolean)\n .join(' ');\n }, [borderDisable]);\n\n const errorClsName = useMemo(() => {\n return error ? ' error' : '';\n }, [error]);\n\n return (\n <RadixCard\n variant=\"surface\"\n {...rest}\n className={`${borderInsetClassName}${errorClsName} ${rest.className || ''}`}\n data-radius={borderRadius}\n ref={forwardedRef}\n />\n );\n }\n);\n\nCard.displayName = 'Card';\n","export { DataList } from '@radix-ui/themes';\n","import { InfoCircledIcon } from '@radix-ui/react-icons';\nimport {\n ToastContainer as ToastifyContainer,\n type ToastContainerProps,\n} from 'react-toastify';\n\nexport { toast } from 'react-toastify';\n\nfunction CloseButton(): React.ReactNode {\n return null;\n}\n\nexport function ToastContainer(props: ToastContainerProps): React.ReactElement {\n return (\n <ToastifyContainer\n autoClose={5000}\n closeButton={CloseButton}\n closeOnClick\n draggable\n hideProgressBar\n icon={<InfoCircledIcon />}\n newestOnTop\n pauseOnFocusLoss\n pauseOnHover\n position=\"bottom-right\"\n rtl={false}\n style={{ zIndex: 999999 }}\n {...props}\n />\n );\n}\n","export { Flex, type FlexProps } from '@radix-ui/themes';\n","export { Grid, type GridProps } from '@radix-ui/themes';\n","import {\n Heading as RadixHeading,\n type HeadingProps as RadixHeadingProps,\n} from '@radix-ui/themes';\nimport { useMemo } from 'react';\n\nexport { Heading as RadixHeading } from '@radix-ui/themes';\n\nexport type HeadingProps = RadixHeadingProps & {\n variant?: 'heading1' | 'heading2' | 'heading3' | 'heading4' | 'heading5';\n};\n\nexport function Heading(props: HeadingProps): React.ReactElement {\n const { size, children, variant, ...rest } = props;\n const radixSize = useMemo<RadixHeadingProps['size']>(() => {\n switch (variant) {\n case 'heading1':\n return '7';\n case 'heading2':\n return '6';\n case 'heading3':\n return '5';\n case 'heading4':\n return '4';\n case 'heading5':\n return '3';\n default:\n return size;\n }\n }, [size, variant]);\n\n return (\n <RadixHeading {...rest} size={radixSize}>\n {children}\n </RadixHeading>\n );\n}\n","export { Separator, type SeparatorProps } from '@radix-ui/themes';\n","import type { TextProps as RadixTextProps } from '@radix-ui/themes';\nimport { Text as RadixText } from '@radix-ui/themes';\nimport React, { useMemo, forwardRef } from 'react';\n\nexport type TypoProps = RadixTextProps & {\n variant?: 'body' | 'caption' | 'subtitle';\n};\n\nexport const Typo = forwardRef<HTMLSpanElement, TypoProps>(\n (props: TypoProps, ref): React.ReactElement => {\n const { size, variant, children, ...rest } = props;\n\n const radixSize = useMemo<RadixTextProps['size']>(() => {\n if (size !== undefined) return size;\n switch (variant) {\n case 'caption':\n return '1';\n case 'subtitle':\n return '3';\n case 'body':\n default:\n return '2';\n }\n }, [size, variant]);\n\n return (\n <RadixText {...rest} ref={ref} size={radixSize}>\n {children}\n </RadixText>\n );\n }\n);\n\nTypo.displayName = 'Typo';\n","import React, { useMemo } from 'react';\nimport {\n getColorFromProjectState,\n getTextFromProjectState,\n} from '@tipp/biz-utils';\nimport { Badge, Box, Flex, Grid, Heading, Typo } from '../../../../atoms';\nimport type { CoachingCustomerInfoProps } from '../utils';\n\nexport function CoachingCustomerInfoSmall({\n customer,\n session,\n children,\n}: CoachingCustomerInfoProps): React.ReactElement {\n const badgeColor = useMemo(() => {\n return getColorFromProjectState(session?.state);\n }, [session?.state]);\n\n const sessionText = useMemo(() => {\n return getTextFromProjectState(session?.state);\n }, [session?.state]);\n\n return (\n <Flex\n direction={{ initial: 'column', xs: 'row' }}\n gap=\"3\"\n justify=\"between\"\n >\n {/* 이름, 사명 */}\n <Box>\n <Grid align=\"center\" columns=\"auto auto 1fr\" gapX=\"3\">\n <Heading variant=\"heading3\">\n {customer?.username || '이름 없음'}\n </Heading>\n <Typo color=\"gray\" truncate variant=\"body\">\n {customer?.company}\n </Typo>\n <Badge color={badgeColor}>{sessionText}</Badge>\n </Grid>\n </Box>\n {children}\n </Flex>\n );\n}\n","import React, { useMemo } from 'react';\nimport {\n getColorFromProjectState,\n getTextFromProjectState,\n} from '@tipp/biz-utils';\nimport {\n Badge,\n Box,\n Card,\n DataList,\n Flex,\n Grid,\n Heading,\n Separator,\n Typo,\n} from '../../../../atoms';\nimport type { CoachingCustomerInfoProps } from '../utils';\nimport {\n infoList,\n renderDataListItem,\n renderItem,\n sessionList,\n} from '../utils';\n\nexport function CoachingCustomerInfoMedium({\n customer,\n session,\n children,\n}: CoachingCustomerInfoProps): React.ReactElement {\n const badgeColor = useMemo(() => {\n return getColorFromProjectState(session?.state);\n }, [session?.state]);\n\n const sessionText = useMemo(() => {\n return getTextFromProjectState(session?.state);\n }, [session?.state]);\n\n return (\n <Flex direction=\"column\" gap=\"5\">\n {/* 이름, 사명 */}\n <Box>\n <Flex align=\"center\" justify=\"between\" mb=\"1\" width=\"100%\">\n <Heading variant=\"heading2\">\n {customer?.username || '이름 없음'}\n </Heading>\n <Badge color={badgeColor}>{sessionText}</Badge>\n </Flex>\n <Heading truncate variant=\"heading4\" weight=\"regular\">\n {customer?.company}\n </Heading>\n </Box>\n\n {children}\n\n {/* 세션 정보 */}\n <Card size=\"2\">\n <DataList.Root orientation=\"vertical\">\n {sessionList.map((el) => renderDataListItem(el, session))}\n </DataList.Root>\n </Card>\n\n {/* 회원 정보 */}\n <Grid align=\"center\" columns=\"auto 1fr\" gap=\"3\">\n <Heading variant=\"heading5\">고객 정보</Heading>\n <Separator size=\"4\" />\n </Grid>\n <Flex direction=\"column\" gap=\"4\">\n {infoList.map((el) => {\n return <Typo key={el.label}>{renderItem(el, customer)}</Typo>;\n })}\n </Flex>\n </Flex>\n );\n}\n","import type { ProjectStatus } from '@tipp/biz-utils';\nimport { format } from 'date-fns';\nimport { CopyIcon } from '@radix-ui/react-icons';\nimport { Button, DataList, toast } from '../../../atoms';\n\nexport interface CoachingCustomerInfoProps {\n customer?: Customer;\n session?: Session;\n children?: React.ReactElement;\n}\n\nexport interface Customer {\n username: string;\n email: string;\n gender: string;\n birthdate: Date;\n phone: string;\n company: string;\n team: string;\n position: string;\n level: string;\n}\n\nexport interface Session {\n state: ProjectStatus;\n totalSession: number;\n restSession: number;\n nextSessionDate?: Date;\n nextSessionType?: string;\n expiredAt: Date;\n}\n\nexport interface DataListItems<T> {\n label: string;\n getValue: (original?: T) => string | undefined;\n copyable?: boolean;\n}\n\nexport const infoList: DataListItems<Customer>[] = [\n { label: '이름', getValue: (customer) => customer?.username },\n { label: '성별', getValue: (customer) => customer?.email },\n {\n label: '생년월일',\n getValue: (customer) =>\n customer?.birthdate && format(customer.birthdate, 'yyyy.MM.dd'),\n },\n { label: '부서', getValue: (customer) => customer?.team },\n { label: '직책', getValue: (customer) => customer?.position },\n { label: '직급', getValue: (customer) => customer?.level },\n { label: '이메일', getValue: (customer) => customer?.email, copyable: true },\n {\n label: '전화번호',\n getValue: (customer) => customer?.phone,\n copyable: true,\n },\n];\n\nexport const sessionList: DataListItems<Session>[] = [\n {\n label: '진행중인 세션',\n getValue: (session) =>\n `${session?.restSession || '-'}회차/${session?.totalSession || '-'}회차`,\n },\n {\n label: '다음 세션 일시',\n getValue: (session) =>\n session?.nextSessionDate\n ? format(session.nextSessionDate, 'yyyy년 MM월 dd일 HH시 mm분')\n : '-',\n },\n {\n label: '다음 세션 참여 방식',\n getValue: (session) => session?.nextSessionType || '-',\n },\n {\n label: '코칭 만료 기한',\n getValue: (session) =>\n session?.expiredAt ? format(session.expiredAt, 'yyyy년 MM월 dd일') : '-',\n },\n];\n\nexport const renderItem = <T extends object>(\n info: DataListItems<T>,\n data?: T\n): JSX.Element => {\n const value = info.getValue(data);\n return (\n <>\n {value || '-'}\n {info.copyable && value ? <CopyButton value={value} /> : null}\n </>\n );\n};\n\nexport const renderDataListItem = <T extends object>(\n info: DataListItems<T>,\n data?: T\n): React.ReactElement => {\n return (\n <DataList.Item key={info.label}>\n <DataList.Label>{info.label}</DataList.Label>\n <DataList.Value>{renderItem(info, data)}</DataList.Value>\n </DataList.Item>\n );\n};\n\nexport function CopyButton(props: { value: string }): JSX.Element {\n return (\n <Button\n color=\"gray\"\n onClick={() => {\n void navigator.clipboard.writeText(props.value);\n toast.success('복사되었습니다.');\n }}\n style={{ marginLeft: '0', marginTop: '0' }}\n variant=\"transparent\"\n >\n <CopyIcon />\n </Button>\n );\n}\n","import React, { useMemo } from 'react';\nimport {\n getColorFromProjectState,\n getTextFromProjectState,\n} from '@tipp/biz-utils';\nimport {\n Badge,\n Box,\n Card,\n DataList,\n Flex,\n Heading,\n Separator,\n} from '../../../../atoms';\nimport type { CoachingCustomerInfoProps } from '../utils';\nimport { infoList, renderDataListItem, sessionList } from '../utils';\n\nexport function CoachingCustomerInfoLarge({\n customer,\n session,\n children,\n}: CoachingCustomerInfoProps): React.ReactElement {\n const badgeColor = useMemo(() => {\n return getColorFromProjectState(session?.state);\n }, [session?.state]);\n\n const sessionText = useMemo(() => {\n return getTextFromProjectState(session?.state);\n }, [session?.state]);\n\n return (\n <Flex direction=\"column\" gap=\"5\">\n {/* 이름, 사명 */}\n <Box>\n <Flex align=\"center\" justify=\"between\" mb=\"1\" width=\"100%\">\n <Heading variant=\"heading2\">\n {customer?.username || '이름 없음'}\n </Heading>\n <Badge color={badgeColor}>{sessionText}</Badge>\n </Flex>\n <Heading truncate variant=\"heading4\" weight=\"regular\">\n {customer?.company}\n </Heading>\n </Box>\n\n {children}\n\n {/* 세션 정보 */}\n <Card size=\"2\">\n <DataList.Root>\n {sessionList.map((el) => renderDataListItem(el, session))}\n </DataList.Root>\n </Card>\n\n {/* 회원 정보 */}\n <Separator size=\"4\" />\n <DataList.Root>\n {infoList.map((info) => renderDataListItem(info, customer))}\n </DataList.Root>\n </Flex>\n );\n}\n"],"mappings":"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","names":["RadixBadge","import_themes","import_react","import_themes","import_jsx_runtime","RadixButton","import_react","import_themes","import_jsx_runtime","RadixCard","import_themes","import_react_toastify","import_jsx_runtime","import_themes","import_themes","import_themes","import_react","import_jsx_runtime","Heading","RadixHeading","import_themes","import_themes","import_react","import_jsx_runtime","RadixText","import_react","import_jsx_runtime","Heading","import_react","import_biz_utils","import_react_icons","import_jsx_runtime","import_jsx_runtime","Heading","import_react","import_biz_utils","import_jsx_runtime","Heading","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../../../../../src/app/platform/userInfos/coaching-customer-info/index.tsx","../../../../../src/atoms/badge.tsx","../../../../../src/atoms/box.tsx","../../../../../src/atoms/button.tsx","../../../../../src/utils/convert-button-size.ts","../../../../../src/atoms/card.tsx","../../../../../src/atoms/data-list.tsx","../../../../../src/atoms/toast.tsx","../../../../../src/atoms/heading.tsx","../../../../../src/atoms/flex.tsx","../../../../../src/atoms/grid.tsx","../../../../../src/atoms/separator.tsx","../../../../../src/atoms/typo.tsx","../../../../../src/app/platform/userInfos/coaching-customer-info/small.tsx","../../../../../src/app/platform/userInfos/coaching-customer-info/medium.tsx","../../../../../src/app/platform/userInfos/utils.tsx","../../../../../src/app/platform/userInfos/coaching-customer-info/large.tsx"],"sourcesContent":["import React from 'react';\nimport { Box } from '../../../../atoms';\nimport type { CoachingCustomerInfoProps } from '../utils';\nimport { CoachingCustomerInfoSmall } from './small';\nimport { CoachingCustomerInfoMedium } from './medium';\nimport { CoachingCustomerInfoLarge } from './large';\n\nexport {\n CoachingCustomerInfoLarge,\n CoachingCustomerInfoMedium,\n CoachingCustomerInfoSmall,\n};\n\nexport function CoachingCustomerInfo(\n props: CoachingCustomerInfoProps\n): React.ReactElement {\n return (\n <>\n <Box display={{ initial: 'block', sm: 'none', md: 'none' }}>\n <CoachingCustomerInfoSmall {...props} />\n </Box>\n <Box display={{ initial: 'none', sm: 'block', md: 'none' }}>\n <CoachingCustomerInfoMedium {...props} />\n </Box>\n <Box display={{ initial: 'none', sm: 'none', md: 'block' }}>\n <CoachingCustomerInfoLarge {...props} />\n </Box>\n </>\n );\n}\n","import {\n Badge as RadixBadge,\n type BadgeProps as RadixBadgeProps,\n} from '@radix-ui/themes';\nimport { useMemo, forwardRef } from 'react';\n\nexport type BadgeProps = Omit<RadixBadgeProps, 'color' | 'size'> & {\n size?: 'small' | 'medium' | 'large';\n color?: 'error' | 'accent' | 'neutral' | 'success';\n};\n\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(\n (props: BadgeProps, ref): React.ReactElement => {\n const { size = 'small', color = 'accent', ...rest } = props;\n\n const radixSize = useMemo(() => {\n switch (size) {\n case 'small':\n return '1';\n case 'medium':\n return '2';\n case 'large':\n return '3';\n default:\n return '1';\n }\n }, [size]);\n\n const radixColor = useMemo(() => {\n switch (color) {\n case 'error':\n return 'red';\n case 'neutral':\n return 'gray';\n case 'success':\n return 'green';\n case 'accent':\n default:\n return undefined;\n }\n }, [color]);\n\n return (\n <RadixBadge {...rest} color={radixColor} ref={ref} size={radixSize} />\n );\n }\n);\n\nBadge.displayName = 'Badge';\n","export { Box, type BoxProps } from '@radix-ui/themes';\n","import React, { forwardRef, useMemo } from 'react';\nimport { Button as RadixButton } from '@radix-ui/themes';\nimport { convertSize } from '../utils/convert-button-size';\nimport type { ButtonProps } from './button.type';\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (props, ref): React.ReactElement => {\n const { size, style, variant, ...restProps } = props;\n\n const radixSize = useMemo(() => {\n return convertSize(size);\n }, [size]);\n\n const mergedStyle = useMemo<ButtonProps['style']>(() => {\n const baseStyle = {\n background: variant === 'transparent' ? 'transparent' : undefined,\n fontWeight: 400,\n };\n return { ...baseStyle, ...style };\n }, [style, variant]);\n\n const radixVariant = useMemo(() => {\n if (variant === 'transparent') return 'ghost';\n return variant;\n }, [variant]);\n\n return (\n <RadixButton\n style={mergedStyle}\n variant={radixVariant}\n {...restProps}\n ref={ref}\n size={radixSize}\n />\n );\n }\n);\n\nButton.displayName = 'Button';\n","import { type ButtonProps as RadixButtonProps } from '@radix-ui/themes';\nimport type { Breakpoint } from '@radix-ui/themes/props';\nimport type { ButtonProps } from '../atoms/button.type';\n\nexport const convertSizeStr = (\n size: ButtonProps['size']\n): '1' | '2' | '3' | '4' => {\n switch (size) {\n case 'small':\n return '1';\n case 'medium':\n return '2';\n case 'large':\n return '3';\n default:\n return '2';\n }\n};\n\nexport const convertSizeResponse = (\n size: ButtonProps['size']\n): RadixButtonProps['size'] => {\n if (typeof size === 'string' || typeof size === 'undefined') {\n return convertSizeStr(size);\n }\n const radixSize: RadixButtonProps['size'] = {};\n let key: Breakpoint = 'initial';\n for (key in size) {\n radixSize[key] = convertSizeStr(size[key]);\n }\n return radixSize;\n};\n\nexport const convertSize = (\n size: ButtonProps['size']\n): RadixButtonProps['size'] => {\n if (typeof size === 'string') {\n return convertSizeStr(size);\n }\n return convertSizeResponse(size);\n};\n","import { forwardRef, useMemo } from 'react';\nimport {\n Card as RadixCard,\n type CardProps as RadixCardProps,\n} from '@radix-ui/themes';\n\nexport type CardProps = RadixCardProps & {\n borderRadius?: 'none';\n borderDisable?: {\n left?: boolean;\n right?: boolean;\n top?: boolean;\n bottom?: boolean;\n };\n error?: boolean;\n};\n\nexport const Card = forwardRef<HTMLDivElement, CardProps>(\n (props, forwardedRef) => {\n const { borderDisable, borderRadius, error, ...rest } = props;\n\n const borderInsetClassName = useMemo(() => {\n if (!borderDisable) return '';\n const { left, right, top, bottom } = borderDisable;\n return [\n left && 'disable-inset-left',\n right && 'disable-inset-right',\n top && 'disable-inset-top',\n bottom && 'disable-inset-bottom',\n ]\n .filter(Boolean)\n .join(' ');\n }, [borderDisable]);\n\n const errorClsName = useMemo(() => {\n return error ? ' error' : '';\n }, [error]);\n\n return (\n <RadixCard\n variant=\"surface\"\n {...rest}\n className={`${borderInsetClassName}${errorClsName} ${rest.className || ''}`}\n data-radius={borderRadius}\n ref={forwardedRef}\n />\n );\n }\n);\n\nCard.displayName = 'Card';\n","export { DataList } from '@radix-ui/themes';\n","import { InfoCircledIcon } from '@radix-ui/react-icons';\nimport {\n ToastContainer as ToastifyContainer,\n type ToastContainerProps,\n} from 'react-toastify';\n\nexport { toast } from 'react-toastify';\n\nfunction CloseButton(): React.ReactNode {\n return null;\n}\n\nexport function ToastContainer(props: ToastContainerProps): React.ReactElement {\n return (\n <ToastifyContainer\n autoClose={5000}\n closeButton={CloseButton}\n closeOnClick\n draggable\n hideProgressBar\n icon={<InfoCircledIcon />}\n newestOnTop\n pauseOnFocusLoss\n pauseOnHover\n position=\"bottom-right\"\n rtl={false}\n style={{ zIndex: 999999 }}\n {...props}\n />\n );\n}\n","import {\n Heading as RadixHeading,\n type HeadingProps as RadixHeadingProps,\n} from '@radix-ui/themes';\nimport { useMemo } from 'react';\n\nexport { Heading as RadixHeading } from '@radix-ui/themes';\n\nexport type HeadingProps = RadixHeadingProps & {\n variant?: 'heading1' | 'heading2' | 'heading3' | 'heading4' | 'heading5';\n};\n\nexport function Heading(props: HeadingProps): React.ReactElement {\n const { size, children, variant, ...rest } = props;\n const radixSize = useMemo<RadixHeadingProps['size']>(() => {\n switch (variant) {\n case 'heading1':\n return '7';\n case 'heading2':\n return '6';\n case 'heading3':\n return '5';\n case 'heading4':\n return '4';\n case 'heading5':\n return '3';\n default:\n return size;\n }\n }, [size, variant]);\n\n return (\n <RadixHeading {...rest} size={radixSize}>\n {children}\n </RadixHeading>\n );\n}\n","export { Flex, type FlexProps } from '@radix-ui/themes';\n","export { Grid, type GridProps } from '@radix-ui/themes';\n","export { Separator, type SeparatorProps } from '@radix-ui/themes';\n","import type { TextProps as RadixTextProps } from '@radix-ui/themes';\nimport { Text as RadixText } from '@radix-ui/themes';\nimport React, { useMemo, forwardRef } from 'react';\n\nexport type TypoProps = RadixTextProps & {\n variant?: 'body' | 'caption' | 'subtitle';\n};\n\nexport const Typo = forwardRef<HTMLSpanElement, TypoProps>(\n (props: TypoProps, ref): React.ReactElement => {\n const { size, variant, children, ...rest } = props;\n\n const radixSize = useMemo<RadixTextProps['size']>(() => {\n if (size !== undefined) return size;\n switch (variant) {\n case 'caption':\n return '1';\n case 'subtitle':\n return '3';\n case 'body':\n default:\n return '2';\n }\n }, [size, variant]);\n\n return (\n <RadixText {...rest} ref={ref} size={radixSize}>\n {children}\n </RadixText>\n );\n }\n);\n\nTypo.displayName = 'Typo';\n","import React, { useMemo } from 'react';\nimport {\n getColorFromProjectState,\n getTextFromProjectState,\n} from '@tipp/biz-utils';\nimport { Badge, Box, Flex, Grid, Heading, Typo } from '../../../../atoms';\nimport type { CoachingCustomerInfoProps } from '../utils';\n\nexport function CoachingCustomerInfoSmall({\n customer,\n session,\n children,\n}: CoachingCustomerInfoProps): React.ReactElement {\n const badgeColor = useMemo(() => {\n return getColorFromProjectState(session?.state);\n }, [session?.state]);\n\n const sessionText = useMemo(() => {\n return getTextFromProjectState(session?.state);\n }, [session?.state]);\n\n return (\n <Flex\n direction={{ initial: 'column', xs: 'row' }}\n gap=\"3\"\n justify=\"between\"\n >\n {/* 이름, 사명 */}\n <Box>\n <Grid align=\"center\" columns=\"auto auto 1fr\" gapX=\"3\">\n <Heading variant=\"heading3\">\n {customer?.username || '이름 없음'}\n </Heading>\n <Typo color=\"gray\" truncate variant=\"body\">\n {customer?.company}\n </Typo>\n <Badge color={badgeColor}>{sessionText}</Badge>\n </Grid>\n </Box>\n {children}\n </Flex>\n );\n}\n","import React, { useMemo } from 'react';\nimport {\n getColorFromProjectState,\n getTextFromProjectState,\n} from '@tipp/biz-utils';\nimport {\n Badge,\n Box,\n Card,\n DataList,\n Flex,\n Grid,\n Heading,\n Separator,\n Typo,\n} from '../../../../atoms';\nimport type { CoachingCustomerInfoProps } from '../utils';\nimport {\n infoList,\n renderDataListItem,\n renderItem,\n sessionList,\n} from '../utils';\n\nexport function CoachingCustomerInfoMedium({\n customer,\n session,\n children,\n}: CoachingCustomerInfoProps): React.ReactElement {\n const badgeColor = useMemo(() => {\n return getColorFromProjectState(session?.state);\n }, [session?.state]);\n\n const sessionText = useMemo(() => {\n return getTextFromProjectState(session?.state);\n }, [session?.state]);\n\n return (\n <Flex direction=\"column\" gap=\"5\">\n {/* 이름, 사명 */}\n <Box>\n <Flex align=\"center\" justify=\"between\" mb=\"1\" width=\"100%\">\n <Heading variant=\"heading2\">\n {customer?.username || '이름 없음'}\n </Heading>\n <Badge color={badgeColor}>{sessionText}</Badge>\n </Flex>\n <Heading truncate variant=\"heading4\" weight=\"regular\">\n {customer?.company}\n </Heading>\n </Box>\n\n {children}\n\n {/* 세션 정보 */}\n <Card size=\"2\">\n <DataList.Root orientation=\"vertical\">\n {sessionList.map((el) => renderDataListItem(el, session))}\n </DataList.Root>\n </Card>\n\n {/* 회원 정보 */}\n <Grid align=\"center\" columns=\"auto 1fr\" gap=\"3\">\n <Heading variant=\"heading5\">고객 정보</Heading>\n <Separator size=\"4\" />\n </Grid>\n <Flex direction=\"column\" gap=\"4\">\n {infoList.map((el) => {\n return <Typo key={el.label}>{renderItem(el, customer)}</Typo>;\n })}\n </Flex>\n </Flex>\n );\n}\n","import type { ProjectStatus } from '@tipp/biz-utils';\nimport { format } from 'date-fns';\nimport { CopyIcon } from '@radix-ui/react-icons';\nimport { Button, DataList, toast } from '../../../atoms';\n\nexport interface CoachingCustomerInfoProps {\n customer?: Customer;\n session?: Session;\n children?: React.ReactElement;\n}\n\nexport interface Customer {\n username: string;\n email: string;\n gender: string;\n birthdate: Date;\n phone: string;\n company: string;\n team: string;\n position: string;\n level: string;\n}\n\nexport interface Session {\n state: ProjectStatus;\n totalSession: number;\n restSession: number;\n nextSessionDate?: Date;\n nextSessionType?: string;\n expiredAt: Date;\n}\n\nexport interface DataListItems<T> {\n label: string;\n getValue: (original?: T) => string | undefined;\n copyable?: boolean;\n}\n\nexport const infoList: DataListItems<Customer>[] = [\n { label: '이름', getValue: (customer) => customer?.username },\n { label: '성별', getValue: (customer) => customer?.email },\n {\n label: '생년월일',\n getValue: (customer) =>\n customer?.birthdate && format(customer.birthdate, 'yyyy.MM.dd'),\n },\n { label: '부서', getValue: (customer) => customer?.team },\n { label: '직책', getValue: (customer) => customer?.position },\n { label: '직급', getValue: (customer) => customer?.level },\n { label: '이메일', getValue: (customer) => customer?.email, copyable: true },\n {\n label: '전화번호',\n getValue: (customer) => customer?.phone,\n copyable: true,\n },\n];\n\nexport const sessionList: DataListItems<Session>[] = [\n {\n label: '진행중인 세션',\n getValue: (session) =>\n `${session?.restSession || '-'}회차/${session?.totalSession || '-'}회차`,\n },\n {\n label: '다음 세션 일시',\n getValue: (session) =>\n session?.nextSessionDate\n ? format(session.nextSessionDate, 'yyyy년 MM월 dd일 HH시 mm분')\n : '-',\n },\n {\n label: '다음 세션 참여 방식',\n getValue: (session) => session?.nextSessionType || '-',\n },\n {\n label: '코칭 만료 기한',\n getValue: (session) =>\n session?.expiredAt ? format(session.expiredAt, 'yyyy년 MM월 dd일') : '-',\n },\n];\n\nexport const renderItem = <T extends object>(\n info: DataListItems<T>,\n data?: T\n): JSX.Element => {\n const value = info.getValue(data);\n return (\n <>\n {value || '-'}\n {info.copyable && value ? <CopyButton value={value} /> : null}\n </>\n );\n};\n\nexport const renderDataListItem = <T extends object>(\n info: DataListItems<T>,\n data?: T\n): React.ReactElement => {\n return (\n <DataList.Item key={info.label}>\n <DataList.Label>{info.label}</DataList.Label>\n <DataList.Value>{renderItem(info, data)}</DataList.Value>\n </DataList.Item>\n );\n};\n\nexport function CopyButton(props: { value: string }): JSX.Element {\n return (\n <Button\n color=\"gray\"\n onClick={() => {\n void navigator.clipboard.writeText(props.value);\n toast.success('복사되었습니다.');\n }}\n style={{ marginLeft: '0', marginTop: '0' }}\n variant=\"transparent\"\n >\n <CopyIcon />\n </Button>\n );\n}\n","import React, { useMemo } from 'react';\nimport {\n getColorFromProjectState,\n getTextFromProjectState,\n} from '@tipp/biz-utils';\nimport {\n Badge,\n Box,\n Card,\n DataList,\n Flex,\n Heading,\n Separator,\n} from '../../../../atoms';\nimport type { CoachingCustomerInfoProps } from '../utils';\nimport { infoList, renderDataListItem, sessionList } from '../utils';\n\nexport function CoachingCustomerInfoLarge({\n customer,\n session,\n children,\n}: CoachingCustomerInfoProps): React.ReactElement {\n const badgeColor = useMemo(() => {\n return getColorFromProjectState(session?.state);\n }, [session?.state]);\n\n const sessionText = useMemo(() => {\n return getTextFromProjectState(session?.state);\n }, [session?.state]);\n\n return (\n <Flex direction=\"column\" gap=\"5\">\n {/* 이름, 사명 */}\n <Box>\n <Flex align=\"center\" justify=\"between\" mb=\"1\" width=\"100%\">\n <Heading variant=\"heading2\">\n {customer?.username || '이름 없음'}\n </Heading>\n <Badge color={badgeColor}>{sessionText}</Badge>\n </Flex>\n <Heading truncate variant=\"heading4\" weight=\"regular\">\n {customer?.company}\n </Heading>\n </Box>\n\n {children}\n\n {/* 세션 정보 */}\n <Card size=\"2\">\n <DataList.Root>\n {sessionList.map((el) => renderDataListItem(el, session))}\n </DataList.Root>\n </Card>\n\n {/* 회원 정보 */}\n <Separator size=\"4\" />\n <DataList.Root>\n {infoList.map((info) => renderDataListItem(info, customer))}\n </DataList.Root>\n </Flex>\n );\n}\n"],"mappings":"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","names":["RadixBadge","import_themes","import_react","import_themes","import_jsx_runtime","RadixButton","import_react","import_themes","import_jsx_runtime","RadixCard","import_themes","import_react_toastify","import_jsx_runtime","import_themes","import_react","import_jsx_runtime","Heading","RadixHeading","import_themes","import_themes","import_themes","import_themes","import_react","import_jsx_runtime","RadixText","import_react","import_jsx_runtime","Heading","import_react","import_biz_utils","import_react_icons","import_jsx_runtime","import_jsx_runtime","Heading","import_react","import_biz_utils","import_jsx_runtime","Heading","import_jsx_runtime"]}
@@ -1,18 +1,19 @@
1
1
  import {
2
2
  CoachingCustomerInfo
3
- } from "../../../../chunk-ZQMPVUZQ.js";
3
+ } from "../../../../chunk-ZAQQ6H6W.js";
4
4
  import {
5
5
  CoachingCustomerInfoLarge
6
- } from "../../../../chunk-AVQLAFO2.js";
6
+ } from "../../../../chunk-UVJASJN4.js";
7
7
  import {
8
8
  CoachingCustomerInfoMedium
9
- } from "../../../../chunk-NPJ7KUYC.js";
9
+ } from "../../../../chunk-QJ4FYN6G.js";
10
10
  import "../../../../chunk-JDY5555T.js";
11
11
  import {
12
12
  CoachingCustomerInfoSmall
13
13
  } from "../../../../chunk-TXQPIRH3.js";
14
14
  import "../../../../chunk-A6W2ZWYA.js";
15
15
  import "../../../../chunk-SRZ6X74X.js";
16
+ import "../../../../chunk-VOQU7ZOV.js";
16
17
  import "../../../../chunk-5H3YPCZK.js";
17
18
  import "../../../../chunk-FR2GDOU2.js";
18
19
  import "../../../../chunk-74DX4CU7.js";
@@ -20,7 +21,7 @@ import "../../../../chunk-OYM4XCHQ.js";
20
21
  import "../../../../chunk-YJ7ZFOYL.js";
21
22
  import "../../../../chunk-5ZITU5L7.js";
22
23
  import "../../../../chunk-EW6OPYEW.js";
23
- import "../../../../chunk-VOQU7ZOV.js";
24
+ import "../../../../chunk-YO3BQW6S.js";
24
25
  import "../../../../chunk-6IVCARWS.js";
25
26
  import "../../../../chunk-6DJOIRMF.js";
26
27
  import "../../../../chunk-FPD73OHW.js";
@@ -34,25 +35,27 @@ import "../../../../chunk-SIM6HKVI.js";
34
35
  import "../../../../chunk-RKHPVH2G.js";
35
36
  import "../../../../chunk-5AVBYDPB.js";
36
37
  import "../../../../chunk-365QMK4D.js";
37
- import "../../../../chunk-YO3BQW6S.js";
38
+ import "../../../../chunk-4WFMOFN2.js";
38
39
  import "../../../../chunk-WKFZ5MMN.js";
39
40
  import "../../../../chunk-ACVANQJ4.js";
40
41
  import "../../../../chunk-2DZ2Y3JI.js";
41
42
  import "../../../../chunk-QDZS4B6A.js";
42
43
  import "../../../../chunk-EGEQY3KT.js";
43
- import "../../../../chunk-HK224ADT.js";
44
44
  import "../../../../chunk-O3T3TM3V.js";
45
+ import "../../../../chunk-IQEEPHOY.js";
45
46
  import "../../../../chunk-LHCDPZ5E.js";
46
47
  import "../../../../chunk-OHMOP5PV.js";
47
48
  import "../../../../chunk-LZJR77Q2.js";
48
49
  import "../../../../chunk-Q37G2GS6.js";
49
50
  import "../../../../chunk-VTJZMOSP.js";
50
- import "../../../../chunk-XZRRRMPQ.js";
51
+ import "../../../../chunk-CEMVFONQ.js";
51
52
  import "../../../../chunk-CYYWMYE7.js";
52
- import "../../../../chunk-ODNY3R6A.js";
53
+ import "../../../../chunk-HK224ADT.js";
54
+ import "../../../../chunk-7SM2C75W.js";
55
+ import "../../../../chunk-UNTA4JJU.js";
53
56
  import "../../../../chunk-HYITAA4J.js";
54
57
  import "../../../../chunk-O3DNDMV3.js";
55
- import "../../../../chunk-4WFMOFN2.js";
58
+ import "../../../../chunk-YGL6SWKN.js";
56
59
  import "../../../../chunk-4Y5BEXVN.js";
57
60
  import "../../../../chunk-NAL2USH5.js";
58
61
  import "../../../../chunk-52MVZ6AN.js";
@@ -63,15 +66,12 @@ import "../../../../chunk-ZD7MNMED.js";
63
66
  import "../../../../chunk-B6XJN6EC.js";
64
67
  import "../../../../chunk-2ZQK7NTN.js";
65
68
  import "../../../../chunk-MIMJ7LON.js";
66
- import "../../../../chunk-IQEEPHOY.js";
69
+ import "../../../../chunk-UAN5JXP3.js";
67
70
  import "../../../../chunk-J242TTFH.js";
68
71
  import "../../../../chunk-EAXUQEO5.js";
69
72
  import "../../../../chunk-YJCCE5WP.js";
70
73
  import "../../../../chunk-3SSSCLJ5.js";
71
74
  import "../../../../chunk-EWD4AO5N.js";
72
- import "../../../../chunk-YGL6SWKN.js";
73
- import "../../../../chunk-UAN5JXP3.js";
74
- import "../../../../chunk-UNTA4JJU.js";
75
75
  import "../../../../chunk-N552FDTV.js";
76
76
  export {
77
77
  CoachingCustomerInfo,
@@ -208,13 +208,10 @@ var import_react_toastify = require("react-toastify");
208
208
  var import_react_toastify2 = require("react-toastify");
209
209
  var import_jsx_runtime4 = require("react/jsx-runtime");
210
210
 
211
- // src/atoms/flex.tsx
212
- var import_themes6 = require("@radix-ui/themes");
213
-
214
211
  // src/atoms/heading.tsx
215
- var import_themes7 = require("@radix-ui/themes");
212
+ var import_themes6 = require("@radix-ui/themes");
216
213
  var import_react4 = require("react");
217
- var import_themes8 = require("@radix-ui/themes");
214
+ var import_themes7 = require("@radix-ui/themes");
218
215
  var import_jsx_runtime5 = require("react/jsx-runtime");
219
216
  function Heading2(props) {
220
217
  const _a = props, { size, children, variant } = _a, rest = __objRest(_a, ["size", "children", "variant"]);
@@ -234,9 +231,12 @@ function Heading2(props) {
234
231
  return size;
235
232
  }
236
233
  }, [size, variant]);
237
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_themes7.Heading, __spreadProps(__spreadValues({}, rest), { size: radixSize, children }));
234
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_themes6.Heading, __spreadProps(__spreadValues({}, rest), { size: radixSize, children }));
238
235
  }
239
236
 
237
+ // src/atoms/flex.tsx
238
+ var import_themes8 = require("@radix-ui/themes");
239
+
240
240
  // src/atoms/separator.tsx
241
241
  var import_themes9 = require("@radix-ui/themes");
242
242
 
@@ -321,9 +321,9 @@ function CoachingCustomerInfoLarge({
321
321
  const sessionText = (0, import_react5.useMemo)(() => {
322
322
  return (0, import_biz_utils.getTextFromProjectState)(session == null ? void 0 : session.state);
323
323
  }, [session == null ? void 0 : session.state]);
324
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_themes6.Flex, { direction: "column", gap: "5", children: [
324
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_themes8.Flex, { direction: "column", gap: "5", children: [
325
325
  /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_themes2.Box, { children: [
326
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_themes6.Flex, { align: "center", justify: "between", mb: "1", width: "100%", children: [
326
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_themes8.Flex, { align: "center", justify: "between", mb: "1", width: "100%", children: [
327
327
  /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Heading2, { variant: "heading2", children: (customer == null ? void 0 : customer.username) || "\uC774\uB984 \uC5C6\uC74C" }),
328
328
  /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Badge, { color: badgeColor, children: sessionText })
329
329
  ] }),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/app/platform/userInfos/coaching-customer-info/large.tsx","../../../../../src/atoms/badge.tsx","../../../../../src/atoms/box.tsx","../../../../../src/atoms/button.tsx","../../../../../src/utils/convert-button-size.ts","../../../../../src/atoms/card.tsx","../../../../../src/atoms/data-list.tsx","../../../../../src/atoms/toast.tsx","../../../../../src/atoms/flex.tsx","../../../../../src/atoms/heading.tsx","../../../../../src/atoms/separator.tsx","../../../../../src/app/platform/userInfos/utils.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport {\n getColorFromProjectState,\n getTextFromProjectState,\n} from '@tipp/biz-utils';\nimport {\n Badge,\n Box,\n Card,\n DataList,\n Flex,\n Heading,\n Separator,\n} from '../../../../atoms';\nimport type { CoachingCustomerInfoProps } from '../utils';\nimport { infoList, renderDataListItem, sessionList } from '../utils';\n\nexport function CoachingCustomerInfoLarge({\n customer,\n session,\n children,\n}: CoachingCustomerInfoProps): React.ReactElement {\n const badgeColor = useMemo(() => {\n return getColorFromProjectState(session?.state);\n }, [session?.state]);\n\n const sessionText = useMemo(() => {\n return getTextFromProjectState(session?.state);\n }, [session?.state]);\n\n return (\n <Flex direction=\"column\" gap=\"5\">\n {/* 이름, 사명 */}\n <Box>\n <Flex align=\"center\" justify=\"between\" mb=\"1\" width=\"100%\">\n <Heading variant=\"heading2\">\n {customer?.username || '이름 없음'}\n </Heading>\n <Badge color={badgeColor}>{sessionText}</Badge>\n </Flex>\n <Heading truncate variant=\"heading4\" weight=\"regular\">\n {customer?.company}\n </Heading>\n </Box>\n\n {children}\n\n {/* 세션 정보 */}\n <Card size=\"2\">\n <DataList.Root>\n {sessionList.map((el) => renderDataListItem(el, session))}\n </DataList.Root>\n </Card>\n\n {/* 회원 정보 */}\n <Separator size=\"4\" />\n <DataList.Root>\n {infoList.map((info) => renderDataListItem(info, customer))}\n </DataList.Root>\n </Flex>\n );\n}\n","import {\n Badge as RadixBadge,\n type BadgeProps as RadixBadgeProps,\n} from '@radix-ui/themes';\nimport { useMemo, forwardRef } from 'react';\n\nexport type BadgeProps = Omit<RadixBadgeProps, 'color' | 'size'> & {\n size?: 'small' | 'medium' | 'large';\n color?: 'error' | 'accent' | 'neutral' | 'success';\n};\n\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(\n (props: BadgeProps, ref): React.ReactElement => {\n const { size = 'small', color = 'accent', ...rest } = props;\n\n const radixSize = useMemo(() => {\n switch (size) {\n case 'small':\n return '1';\n case 'medium':\n return '2';\n case 'large':\n return '3';\n default:\n return '1';\n }\n }, [size]);\n\n const radixColor = useMemo(() => {\n switch (color) {\n case 'error':\n return 'red';\n case 'neutral':\n return 'gray';\n case 'success':\n return 'green';\n case 'accent':\n default:\n return undefined;\n }\n }, [color]);\n\n return (\n <RadixBadge {...rest} color={radixColor} ref={ref} size={radixSize} />\n );\n }\n);\n\nBadge.displayName = 'Badge';\n","export { Box, type BoxProps } from '@radix-ui/themes';\n","import React, { forwardRef, useMemo } from 'react';\nimport { Button as RadixButton } from '@radix-ui/themes';\nimport { convertSize } from '../utils/convert-button-size';\nimport type { ButtonProps } from './button.type';\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (props, ref): React.ReactElement => {\n const { size, style, variant, ...restProps } = props;\n\n const radixSize = useMemo(() => {\n return convertSize(size);\n }, [size]);\n\n const mergedStyle = useMemo<ButtonProps['style']>(() => {\n const baseStyle = {\n background: variant === 'transparent' ? 'transparent' : undefined,\n fontWeight: 400,\n };\n return { ...baseStyle, ...style };\n }, [style, variant]);\n\n const radixVariant = useMemo(() => {\n if (variant === 'transparent') return 'ghost';\n return variant;\n }, [variant]);\n\n return (\n <RadixButton\n style={mergedStyle}\n variant={radixVariant}\n {...restProps}\n ref={ref}\n size={radixSize}\n />\n );\n }\n);\n\nButton.displayName = 'Button';\n","import { type ButtonProps as RadixButtonProps } from '@radix-ui/themes';\nimport type { Breakpoint } from '@radix-ui/themes/props';\nimport type { ButtonProps } from '../atoms/button.type';\n\nexport const convertSizeStr = (\n size: ButtonProps['size']\n): '1' | '2' | '3' | '4' => {\n switch (size) {\n case 'small':\n return '1';\n case 'medium':\n return '2';\n case 'large':\n return '3';\n default:\n return '2';\n }\n};\n\nexport const convertSizeResponse = (\n size: ButtonProps['size']\n): RadixButtonProps['size'] => {\n if (typeof size === 'string' || typeof size === 'undefined') {\n return convertSizeStr(size);\n }\n const radixSize: RadixButtonProps['size'] = {};\n let key: Breakpoint = 'initial';\n for (key in size) {\n radixSize[key] = convertSizeStr(size[key]);\n }\n return radixSize;\n};\n\nexport const convertSize = (\n size: ButtonProps['size']\n): RadixButtonProps['size'] => {\n if (typeof size === 'string') {\n return convertSizeStr(size);\n }\n return convertSizeResponse(size);\n};\n","import { forwardRef, useMemo } from 'react';\nimport {\n Card as RadixCard,\n type CardProps as RadixCardProps,\n} from '@radix-ui/themes';\n\nexport type CardProps = RadixCardProps & {\n borderRadius?: 'none';\n borderDisable?: {\n left?: boolean;\n right?: boolean;\n top?: boolean;\n bottom?: boolean;\n };\n error?: boolean;\n};\n\nexport const Card = forwardRef<HTMLDivElement, CardProps>(\n (props, forwardedRef) => {\n const { borderDisable, borderRadius, error, ...rest } = props;\n\n const borderInsetClassName = useMemo(() => {\n if (!borderDisable) return '';\n const { left, right, top, bottom } = borderDisable;\n return [\n left && 'disable-inset-left',\n right && 'disable-inset-right',\n top && 'disable-inset-top',\n bottom && 'disable-inset-bottom',\n ]\n .filter(Boolean)\n .join(' ');\n }, [borderDisable]);\n\n const errorClsName = useMemo(() => {\n return error ? ' error' : '';\n }, [error]);\n\n return (\n <RadixCard\n variant=\"surface\"\n {...rest}\n className={`${borderInsetClassName}${errorClsName} ${rest.className || ''}`}\n data-radius={borderRadius}\n ref={forwardedRef}\n />\n );\n }\n);\n\nCard.displayName = 'Card';\n","export { DataList } from '@radix-ui/themes';\n","import { InfoCircledIcon } from '@radix-ui/react-icons';\nimport {\n ToastContainer as ToastifyContainer,\n type ToastContainerProps,\n} from 'react-toastify';\n\nexport { toast } from 'react-toastify';\n\nfunction CloseButton(): React.ReactNode {\n return null;\n}\n\nexport function ToastContainer(props: ToastContainerProps): React.ReactElement {\n return (\n <ToastifyContainer\n autoClose={5000}\n closeButton={CloseButton}\n closeOnClick\n draggable\n hideProgressBar\n icon={<InfoCircledIcon />}\n newestOnTop\n pauseOnFocusLoss\n pauseOnHover\n position=\"bottom-right\"\n rtl={false}\n style={{ zIndex: 999999 }}\n {...props}\n />\n );\n}\n","export { Flex, type FlexProps } from '@radix-ui/themes';\n","import {\n Heading as RadixHeading,\n type HeadingProps as RadixHeadingProps,\n} from '@radix-ui/themes';\nimport { useMemo } from 'react';\n\nexport { Heading as RadixHeading } from '@radix-ui/themes';\n\nexport type HeadingProps = RadixHeadingProps & {\n variant?: 'heading1' | 'heading2' | 'heading3' | 'heading4' | 'heading5';\n};\n\nexport function Heading(props: HeadingProps): React.ReactElement {\n const { size, children, variant, ...rest } = props;\n const radixSize = useMemo<RadixHeadingProps['size']>(() => {\n switch (variant) {\n case 'heading1':\n return '7';\n case 'heading2':\n return '6';\n case 'heading3':\n return '5';\n case 'heading4':\n return '4';\n case 'heading5':\n return '3';\n default:\n return size;\n }\n }, [size, variant]);\n\n return (\n <RadixHeading {...rest} size={radixSize}>\n {children}\n </RadixHeading>\n );\n}\n","export { Separator, type SeparatorProps } from '@radix-ui/themes';\n","import type { ProjectStatus } from '@tipp/biz-utils';\nimport { format } from 'date-fns';\nimport { CopyIcon } from '@radix-ui/react-icons';\nimport { Button, DataList, toast } from '../../../atoms';\n\nexport interface CoachingCustomerInfoProps {\n customer?: Customer;\n session?: Session;\n children?: React.ReactElement;\n}\n\nexport interface Customer {\n username: string;\n email: string;\n gender: string;\n birthdate: Date;\n phone: string;\n company: string;\n team: string;\n position: string;\n level: string;\n}\n\nexport interface Session {\n state: ProjectStatus;\n totalSession: number;\n restSession: number;\n nextSessionDate?: Date;\n nextSessionType?: string;\n expiredAt: Date;\n}\n\nexport interface DataListItems<T> {\n label: string;\n getValue: (original?: T) => string | undefined;\n copyable?: boolean;\n}\n\nexport const infoList: DataListItems<Customer>[] = [\n { label: '이름', getValue: (customer) => customer?.username },\n { label: '성별', getValue: (customer) => customer?.email },\n {\n label: '생년월일',\n getValue: (customer) =>\n customer?.birthdate && format(customer.birthdate, 'yyyy.MM.dd'),\n },\n { label: '부서', getValue: (customer) => customer?.team },\n { label: '직책', getValue: (customer) => customer?.position },\n { label: '직급', getValue: (customer) => customer?.level },\n { label: '이메일', getValue: (customer) => customer?.email, copyable: true },\n {\n label: '전화번호',\n getValue: (customer) => customer?.phone,\n copyable: true,\n },\n];\n\nexport const sessionList: DataListItems<Session>[] = [\n {\n label: '진행중인 세션',\n getValue: (session) =>\n `${session?.restSession || '-'}회차/${session?.totalSession || '-'}회차`,\n },\n {\n label: '다음 세션 일시',\n getValue: (session) =>\n session?.nextSessionDate\n ? format(session.nextSessionDate, 'yyyy년 MM월 dd일 HH시 mm분')\n : '-',\n },\n {\n label: '다음 세션 참여 방식',\n getValue: (session) => session?.nextSessionType || '-',\n },\n {\n label: '코칭 만료 기한',\n getValue: (session) =>\n session?.expiredAt ? format(session.expiredAt, 'yyyy년 MM월 dd일') : '-',\n },\n];\n\nexport const renderItem = <T extends object>(\n info: DataListItems<T>,\n data?: T\n): JSX.Element => {\n const value = info.getValue(data);\n return (\n <>\n {value || '-'}\n {info.copyable && value ? <CopyButton value={value} /> : null}\n </>\n );\n};\n\nexport const renderDataListItem = <T extends object>(\n info: DataListItems<T>,\n data?: T\n): React.ReactElement => {\n return (\n <DataList.Item key={info.label}>\n <DataList.Label>{info.label}</DataList.Label>\n <DataList.Value>{renderItem(info, data)}</DataList.Value>\n </DataList.Item>\n );\n};\n\nexport function CopyButton(props: { value: string }): JSX.Element {\n return (\n <Button\n color=\"gray\"\n onClick={() => {\n void navigator.clipboard.writeText(props.value);\n toast.success('복사되었습니다.');\n }}\n style={{ marginLeft: '0', marginTop: '0' }}\n variant=\"transparent\"\n >\n <CopyIcon />\n </Button>\n );\n}\n"],"mappings":"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","names":["import_react","RadixBadge","import_themes","import_react","import_themes","import_jsx_runtime","RadixButton","import_react","import_themes","import_jsx_runtime","RadixCard","import_themes","import_react_toastify","import_jsx_runtime","import_themes","import_themes","import_react","import_jsx_runtime","Heading","RadixHeading","import_themes","import_react_icons","import_jsx_runtime","import_jsx_runtime","Heading"]}
1
+ {"version":3,"sources":["../../../../../src/app/platform/userInfos/coaching-customer-info/large.tsx","../../../../../src/atoms/badge.tsx","../../../../../src/atoms/box.tsx","../../../../../src/atoms/button.tsx","../../../../../src/utils/convert-button-size.ts","../../../../../src/atoms/card.tsx","../../../../../src/atoms/data-list.tsx","../../../../../src/atoms/toast.tsx","../../../../../src/atoms/heading.tsx","../../../../../src/atoms/flex.tsx","../../../../../src/atoms/separator.tsx","../../../../../src/app/platform/userInfos/utils.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport {\n getColorFromProjectState,\n getTextFromProjectState,\n} from '@tipp/biz-utils';\nimport {\n Badge,\n Box,\n Card,\n DataList,\n Flex,\n Heading,\n Separator,\n} from '../../../../atoms';\nimport type { CoachingCustomerInfoProps } from '../utils';\nimport { infoList, renderDataListItem, sessionList } from '../utils';\n\nexport function CoachingCustomerInfoLarge({\n customer,\n session,\n children,\n}: CoachingCustomerInfoProps): React.ReactElement {\n const badgeColor = useMemo(() => {\n return getColorFromProjectState(session?.state);\n }, [session?.state]);\n\n const sessionText = useMemo(() => {\n return getTextFromProjectState(session?.state);\n }, [session?.state]);\n\n return (\n <Flex direction=\"column\" gap=\"5\">\n {/* 이름, 사명 */}\n <Box>\n <Flex align=\"center\" justify=\"between\" mb=\"1\" width=\"100%\">\n <Heading variant=\"heading2\">\n {customer?.username || '이름 없음'}\n </Heading>\n <Badge color={badgeColor}>{sessionText}</Badge>\n </Flex>\n <Heading truncate variant=\"heading4\" weight=\"regular\">\n {customer?.company}\n </Heading>\n </Box>\n\n {children}\n\n {/* 세션 정보 */}\n <Card size=\"2\">\n <DataList.Root>\n {sessionList.map((el) => renderDataListItem(el, session))}\n </DataList.Root>\n </Card>\n\n {/* 회원 정보 */}\n <Separator size=\"4\" />\n <DataList.Root>\n {infoList.map((info) => renderDataListItem(info, customer))}\n </DataList.Root>\n </Flex>\n );\n}\n","import {\n Badge as RadixBadge,\n type BadgeProps as RadixBadgeProps,\n} from '@radix-ui/themes';\nimport { useMemo, forwardRef } from 'react';\n\nexport type BadgeProps = Omit<RadixBadgeProps, 'color' | 'size'> & {\n size?: 'small' | 'medium' | 'large';\n color?: 'error' | 'accent' | 'neutral' | 'success';\n};\n\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(\n (props: BadgeProps, ref): React.ReactElement => {\n const { size = 'small', color = 'accent', ...rest } = props;\n\n const radixSize = useMemo(() => {\n switch (size) {\n case 'small':\n return '1';\n case 'medium':\n return '2';\n case 'large':\n return '3';\n default:\n return '1';\n }\n }, [size]);\n\n const radixColor = useMemo(() => {\n switch (color) {\n case 'error':\n return 'red';\n case 'neutral':\n return 'gray';\n case 'success':\n return 'green';\n case 'accent':\n default:\n return undefined;\n }\n }, [color]);\n\n return (\n <RadixBadge {...rest} color={radixColor} ref={ref} size={radixSize} />\n );\n }\n);\n\nBadge.displayName = 'Badge';\n","export { Box, type BoxProps } from '@radix-ui/themes';\n","import React, { forwardRef, useMemo } from 'react';\nimport { Button as RadixButton } from '@radix-ui/themes';\nimport { convertSize } from '../utils/convert-button-size';\nimport type { ButtonProps } from './button.type';\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (props, ref): React.ReactElement => {\n const { size, style, variant, ...restProps } = props;\n\n const radixSize = useMemo(() => {\n return convertSize(size);\n }, [size]);\n\n const mergedStyle = useMemo<ButtonProps['style']>(() => {\n const baseStyle = {\n background: variant === 'transparent' ? 'transparent' : undefined,\n fontWeight: 400,\n };\n return { ...baseStyle, ...style };\n }, [style, variant]);\n\n const radixVariant = useMemo(() => {\n if (variant === 'transparent') return 'ghost';\n return variant;\n }, [variant]);\n\n return (\n <RadixButton\n style={mergedStyle}\n variant={radixVariant}\n {...restProps}\n ref={ref}\n size={radixSize}\n />\n );\n }\n);\n\nButton.displayName = 'Button';\n","import { type ButtonProps as RadixButtonProps } from '@radix-ui/themes';\nimport type { Breakpoint } from '@radix-ui/themes/props';\nimport type { ButtonProps } from '../atoms/button.type';\n\nexport const convertSizeStr = (\n size: ButtonProps['size']\n): '1' | '2' | '3' | '4' => {\n switch (size) {\n case 'small':\n return '1';\n case 'medium':\n return '2';\n case 'large':\n return '3';\n default:\n return '2';\n }\n};\n\nexport const convertSizeResponse = (\n size: ButtonProps['size']\n): RadixButtonProps['size'] => {\n if (typeof size === 'string' || typeof size === 'undefined') {\n return convertSizeStr(size);\n }\n const radixSize: RadixButtonProps['size'] = {};\n let key: Breakpoint = 'initial';\n for (key in size) {\n radixSize[key] = convertSizeStr(size[key]);\n }\n return radixSize;\n};\n\nexport const convertSize = (\n size: ButtonProps['size']\n): RadixButtonProps['size'] => {\n if (typeof size === 'string') {\n return convertSizeStr(size);\n }\n return convertSizeResponse(size);\n};\n","import { forwardRef, useMemo } from 'react';\nimport {\n Card as RadixCard,\n type CardProps as RadixCardProps,\n} from '@radix-ui/themes';\n\nexport type CardProps = RadixCardProps & {\n borderRadius?: 'none';\n borderDisable?: {\n left?: boolean;\n right?: boolean;\n top?: boolean;\n bottom?: boolean;\n };\n error?: boolean;\n};\n\nexport const Card = forwardRef<HTMLDivElement, CardProps>(\n (props, forwardedRef) => {\n const { borderDisable, borderRadius, error, ...rest } = props;\n\n const borderInsetClassName = useMemo(() => {\n if (!borderDisable) return '';\n const { left, right, top, bottom } = borderDisable;\n return [\n left && 'disable-inset-left',\n right && 'disable-inset-right',\n top && 'disable-inset-top',\n bottom && 'disable-inset-bottom',\n ]\n .filter(Boolean)\n .join(' ');\n }, [borderDisable]);\n\n const errorClsName = useMemo(() => {\n return error ? ' error' : '';\n }, [error]);\n\n return (\n <RadixCard\n variant=\"surface\"\n {...rest}\n className={`${borderInsetClassName}${errorClsName} ${rest.className || ''}`}\n data-radius={borderRadius}\n ref={forwardedRef}\n />\n );\n }\n);\n\nCard.displayName = 'Card';\n","export { DataList } from '@radix-ui/themes';\n","import { InfoCircledIcon } from '@radix-ui/react-icons';\nimport {\n ToastContainer as ToastifyContainer,\n type ToastContainerProps,\n} from 'react-toastify';\n\nexport { toast } from 'react-toastify';\n\nfunction CloseButton(): React.ReactNode {\n return null;\n}\n\nexport function ToastContainer(props: ToastContainerProps): React.ReactElement {\n return (\n <ToastifyContainer\n autoClose={5000}\n closeButton={CloseButton}\n closeOnClick\n draggable\n hideProgressBar\n icon={<InfoCircledIcon />}\n newestOnTop\n pauseOnFocusLoss\n pauseOnHover\n position=\"bottom-right\"\n rtl={false}\n style={{ zIndex: 999999 }}\n {...props}\n />\n );\n}\n","import {\n Heading as RadixHeading,\n type HeadingProps as RadixHeadingProps,\n} from '@radix-ui/themes';\nimport { useMemo } from 'react';\n\nexport { Heading as RadixHeading } from '@radix-ui/themes';\n\nexport type HeadingProps = RadixHeadingProps & {\n variant?: 'heading1' | 'heading2' | 'heading3' | 'heading4' | 'heading5';\n};\n\nexport function Heading(props: HeadingProps): React.ReactElement {\n const { size, children, variant, ...rest } = props;\n const radixSize = useMemo<RadixHeadingProps['size']>(() => {\n switch (variant) {\n case 'heading1':\n return '7';\n case 'heading2':\n return '6';\n case 'heading3':\n return '5';\n case 'heading4':\n return '4';\n case 'heading5':\n return '3';\n default:\n return size;\n }\n }, [size, variant]);\n\n return (\n <RadixHeading {...rest} size={radixSize}>\n {children}\n </RadixHeading>\n );\n}\n","export { Flex, type FlexProps } from '@radix-ui/themes';\n","export { Separator, type SeparatorProps } from '@radix-ui/themes';\n","import type { ProjectStatus } from '@tipp/biz-utils';\nimport { format } from 'date-fns';\nimport { CopyIcon } from '@radix-ui/react-icons';\nimport { Button, DataList, toast } from '../../../atoms';\n\nexport interface CoachingCustomerInfoProps {\n customer?: Customer;\n session?: Session;\n children?: React.ReactElement;\n}\n\nexport interface Customer {\n username: string;\n email: string;\n gender: string;\n birthdate: Date;\n phone: string;\n company: string;\n team: string;\n position: string;\n level: string;\n}\n\nexport interface Session {\n state: ProjectStatus;\n totalSession: number;\n restSession: number;\n nextSessionDate?: Date;\n nextSessionType?: string;\n expiredAt: Date;\n}\n\nexport interface DataListItems<T> {\n label: string;\n getValue: (original?: T) => string | undefined;\n copyable?: boolean;\n}\n\nexport const infoList: DataListItems<Customer>[] = [\n { label: '이름', getValue: (customer) => customer?.username },\n { label: '성별', getValue: (customer) => customer?.email },\n {\n label: '생년월일',\n getValue: (customer) =>\n customer?.birthdate && format(customer.birthdate, 'yyyy.MM.dd'),\n },\n { label: '부서', getValue: (customer) => customer?.team },\n { label: '직책', getValue: (customer) => customer?.position },\n { label: '직급', getValue: (customer) => customer?.level },\n { label: '이메일', getValue: (customer) => customer?.email, copyable: true },\n {\n label: '전화번호',\n getValue: (customer) => customer?.phone,\n copyable: true,\n },\n];\n\nexport const sessionList: DataListItems<Session>[] = [\n {\n label: '진행중인 세션',\n getValue: (session) =>\n `${session?.restSession || '-'}회차/${session?.totalSession || '-'}회차`,\n },\n {\n label: '다음 세션 일시',\n getValue: (session) =>\n session?.nextSessionDate\n ? format(session.nextSessionDate, 'yyyy년 MM월 dd일 HH시 mm분')\n : '-',\n },\n {\n label: '다음 세션 참여 방식',\n getValue: (session) => session?.nextSessionType || '-',\n },\n {\n label: '코칭 만료 기한',\n getValue: (session) =>\n session?.expiredAt ? format(session.expiredAt, 'yyyy년 MM월 dd일') : '-',\n },\n];\n\nexport const renderItem = <T extends object>(\n info: DataListItems<T>,\n data?: T\n): JSX.Element => {\n const value = info.getValue(data);\n return (\n <>\n {value || '-'}\n {info.copyable && value ? <CopyButton value={value} /> : null}\n </>\n );\n};\n\nexport const renderDataListItem = <T extends object>(\n info: DataListItems<T>,\n data?: T\n): React.ReactElement => {\n return (\n <DataList.Item key={info.label}>\n <DataList.Label>{info.label}</DataList.Label>\n <DataList.Value>{renderItem(info, data)}</DataList.Value>\n </DataList.Item>\n );\n};\n\nexport function CopyButton(props: { value: string }): JSX.Element {\n return (\n <Button\n color=\"gray\"\n onClick={() => {\n void navigator.clipboard.writeText(props.value);\n toast.success('복사되었습니다.');\n }}\n style={{ marginLeft: '0', marginTop: '0' }}\n variant=\"transparent\"\n >\n <CopyIcon />\n </Button>\n );\n}\n"],"mappings":"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","names":["import_react","RadixBadge","import_themes","import_react","import_themes","import_jsx_runtime","RadixButton","import_react","import_themes","import_jsx_runtime","RadixCard","import_themes","import_react_toastify","import_jsx_runtime","import_themes","import_react","import_jsx_runtime","Heading","RadixHeading","import_themes","import_themes","import_react_icons","import_jsx_runtime","import_jsx_runtime","Heading"]}
@@ -1,9 +1,10 @@
1
1
  import {
2
2
  CoachingCustomerInfoLarge
3
- } from "../../../../chunk-AVQLAFO2.js";
3
+ } from "../../../../chunk-UVJASJN4.js";
4
4
  import "../../../../chunk-JDY5555T.js";
5
5
  import "../../../../chunk-A6W2ZWYA.js";
6
6
  import "../../../../chunk-SRZ6X74X.js";
7
+ import "../../../../chunk-VOQU7ZOV.js";
7
8
  import "../../../../chunk-5H3YPCZK.js";
8
9
  import "../../../../chunk-FR2GDOU2.js";
9
10
  import "../../../../chunk-74DX4CU7.js";
@@ -11,7 +12,7 @@ import "../../../../chunk-OYM4XCHQ.js";
11
12
  import "../../../../chunk-YJ7ZFOYL.js";
12
13
  import "../../../../chunk-5ZITU5L7.js";
13
14
  import "../../../../chunk-EW6OPYEW.js";
14
- import "../../../../chunk-VOQU7ZOV.js";
15
+ import "../../../../chunk-YO3BQW6S.js";
15
16
  import "../../../../chunk-6IVCARWS.js";
16
17
  import "../../../../chunk-6DJOIRMF.js";
17
18
  import "../../../../chunk-FPD73OHW.js";
@@ -25,25 +26,27 @@ import "../../../../chunk-SIM6HKVI.js";
25
26
  import "../../../../chunk-RKHPVH2G.js";
26
27
  import "../../../../chunk-5AVBYDPB.js";
27
28
  import "../../../../chunk-365QMK4D.js";
28
- import "../../../../chunk-YO3BQW6S.js";
29
+ import "../../../../chunk-4WFMOFN2.js";
29
30
  import "../../../../chunk-WKFZ5MMN.js";
30
31
  import "../../../../chunk-ACVANQJ4.js";
31
32
  import "../../../../chunk-2DZ2Y3JI.js";
32
33
  import "../../../../chunk-QDZS4B6A.js";
33
34
  import "../../../../chunk-EGEQY3KT.js";
34
- import "../../../../chunk-HK224ADT.js";
35
35
  import "../../../../chunk-O3T3TM3V.js";
36
+ import "../../../../chunk-IQEEPHOY.js";
36
37
  import "../../../../chunk-LHCDPZ5E.js";
37
38
  import "../../../../chunk-OHMOP5PV.js";
38
39
  import "../../../../chunk-LZJR77Q2.js";
39
40
  import "../../../../chunk-Q37G2GS6.js";
40
41
  import "../../../../chunk-VTJZMOSP.js";
41
- import "../../../../chunk-XZRRRMPQ.js";
42
+ import "../../../../chunk-CEMVFONQ.js";
42
43
  import "../../../../chunk-CYYWMYE7.js";
43
- import "../../../../chunk-ODNY3R6A.js";
44
+ import "../../../../chunk-HK224ADT.js";
45
+ import "../../../../chunk-7SM2C75W.js";
46
+ import "../../../../chunk-UNTA4JJU.js";
44
47
  import "../../../../chunk-HYITAA4J.js";
45
48
  import "../../../../chunk-O3DNDMV3.js";
46
- import "../../../../chunk-4WFMOFN2.js";
49
+ import "../../../../chunk-YGL6SWKN.js";
47
50
  import "../../../../chunk-4Y5BEXVN.js";
48
51
  import "../../../../chunk-NAL2USH5.js";
49
52
  import "../../../../chunk-52MVZ6AN.js";
@@ -54,15 +57,12 @@ import "../../../../chunk-ZD7MNMED.js";
54
57
  import "../../../../chunk-B6XJN6EC.js";
55
58
  import "../../../../chunk-2ZQK7NTN.js";
56
59
  import "../../../../chunk-MIMJ7LON.js";
57
- import "../../../../chunk-IQEEPHOY.js";
60
+ import "../../../../chunk-UAN5JXP3.js";
58
61
  import "../../../../chunk-J242TTFH.js";
59
62
  import "../../../../chunk-EAXUQEO5.js";
60
63
  import "../../../../chunk-YJCCE5WP.js";
61
64
  import "../../../../chunk-3SSSCLJ5.js";
62
65
  import "../../../../chunk-EWD4AO5N.js";
63
- import "../../../../chunk-YGL6SWKN.js";
64
- import "../../../../chunk-UAN5JXP3.js";
65
- import "../../../../chunk-UNTA4JJU.js";
66
66
  import "../../../../chunk-N552FDTV.js";
67
67
  export {
68
68
  CoachingCustomerInfoLarge
@@ -208,16 +208,10 @@ var import_react_toastify = require("react-toastify");
208
208
  var import_react_toastify2 = require("react-toastify");
209
209
  var import_jsx_runtime4 = require("react/jsx-runtime");
210
210
 
211
- // src/atoms/flex.tsx
212
- var import_themes6 = require("@radix-ui/themes");
213
-
214
- // src/atoms/grid.tsx
215
- var import_themes7 = require("@radix-ui/themes");
216
-
217
211
  // src/atoms/heading.tsx
218
- var import_themes8 = require("@radix-ui/themes");
212
+ var import_themes6 = require("@radix-ui/themes");
219
213
  var import_react4 = require("react");
220
- var import_themes9 = require("@radix-ui/themes");
214
+ var import_themes7 = require("@radix-ui/themes");
221
215
  var import_jsx_runtime5 = require("react/jsx-runtime");
222
216
  function Heading2(props) {
223
217
  const _a = props, { size, children, variant } = _a, rest = __objRest(_a, ["size", "children", "variant"]);
@@ -237,9 +231,15 @@ function Heading2(props) {
237
231
  return size;
238
232
  }
239
233
  }, [size, variant]);
240
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_themes8.Heading, __spreadProps(__spreadValues({}, rest), { size: radixSize, children }));
234
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_themes6.Heading, __spreadProps(__spreadValues({}, rest), { size: radixSize, children }));
241
235
  }
242
236
 
237
+ // src/atoms/flex.tsx
238
+ var import_themes8 = require("@radix-ui/themes");
239
+
240
+ // src/atoms/grid.tsx
241
+ var import_themes9 = require("@radix-ui/themes");
242
+
243
243
  // src/atoms/separator.tsx
244
244
  var import_themes10 = require("@radix-ui/themes");
245
245
 
@@ -349,9 +349,9 @@ function CoachingCustomerInfoMedium({
349
349
  const sessionText = (0, import_react6.useMemo)(() => {
350
350
  return (0, import_biz_utils.getTextFromProjectState)(session == null ? void 0 : session.state);
351
351
  }, [session == null ? void 0 : session.state]);
352
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_themes6.Flex, { direction: "column", gap: "5", children: [
352
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_themes8.Flex, { direction: "column", gap: "5", children: [
353
353
  /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_themes2.Box, { children: [
354
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_themes6.Flex, { align: "center", justify: "between", mb: "1", width: "100%", children: [
354
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_themes8.Flex, { align: "center", justify: "between", mb: "1", width: "100%", children: [
355
355
  /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Heading2, { variant: "heading2", children: (customer == null ? void 0 : customer.username) || "\uC774\uB984 \uC5C6\uC74C" }),
356
356
  /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Badge, { color: badgeColor, children: sessionText })
357
357
  ] }),
@@ -359,11 +359,11 @@ function CoachingCustomerInfoMedium({
359
359
  ] }),
360
360
  children,
361
361
  /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Card, { size: "2", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_themes5.DataList.Root, { orientation: "vertical", children: sessionList.map((el) => renderDataListItem(el, session)) }) }),
362
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_themes7.Grid, { align: "center", columns: "auto 1fr", gap: "3", children: [
362
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_themes9.Grid, { align: "center", columns: "auto 1fr", gap: "3", children: [
363
363
  /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Heading2, { variant: "heading5", children: "\uACE0\uAC1D \uC815\uBCF4" }),
364
364
  /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_themes10.Separator, { size: "4" })
365
365
  ] }),
366
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_themes6.Flex, { direction: "column", gap: "4", children: infoList.map((el) => {
366
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_themes8.Flex, { direction: "column", gap: "4", children: infoList.map((el) => {
367
367
  return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Typo, { children: renderItem(el, customer) }, el.label);
368
368
  }) })
369
369
  ] });