@tipp/ui 1.5.10 → 1.5.11

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 (195) hide show
  1. package/dist/app/index.cjs +142 -111
  2. package/dist/app/index.cjs.map +1 -1
  3. package/dist/app/index.js +15 -15
  4. package/dist/app/platform/coach-question-list.cjs.map +1 -1
  5. package/dist/app/platform/coach-question-list.js +3 -3
  6. package/dist/app/platform/edit-coaching-time.cjs +26 -3
  7. package/dist/app/platform/edit-coaching-time.cjs.map +1 -1
  8. package/dist/app/platform/edit-coaching-time.js +5 -5
  9. package/dist/app/platform/edit-service-type.cjs +1 -0
  10. package/dist/app/platform/edit-service-type.cjs.map +1 -1
  11. package/dist/app/platform/edit-service-type.js +5 -5
  12. package/dist/app/platform/goal-manage-card-edit.cjs +3 -2
  13. package/dist/app/platform/goal-manage-card-edit.cjs.map +1 -1
  14. package/dist/app/platform/goal-manage-card-edit.js +4 -4
  15. package/dist/app/platform/goal-manage-card-read.cjs +9 -7
  16. package/dist/app/platform/goal-manage-card-read.cjs.map +1 -1
  17. package/dist/app/platform/goal-manage-card-read.js +4 -4
  18. package/dist/app/platform/on-offline-radio-card.cjs +1 -0
  19. package/dist/app/platform/on-offline-radio-card.cjs.map +1 -1
  20. package/dist/app/platform/on-offline-radio-card.js +4 -4
  21. package/dist/app/platform/report-card.cjs.map +1 -1
  22. package/dist/app/platform/report-card.js +3 -3
  23. package/dist/app/platform/reservation-card.cjs +60 -7
  24. package/dist/app/platform/reservation-card.cjs.map +1 -1
  25. package/dist/app/platform/reservation-card.d.cts +2 -0
  26. package/dist/app/platform/reservation-card.d.ts +2 -0
  27. package/dist/app/platform/reservation-card.js +5 -5
  28. package/dist/app/platform/session-card.cjs +28 -5
  29. package/dist/app/platform/session-card.cjs.map +1 -1
  30. package/dist/app/platform/session-card.js +7 -7
  31. package/dist/app/platform/session-review-simple-read.cjs.map +1 -1
  32. package/dist/app/platform/session-review-simple-read.js +3 -3
  33. package/dist/app/platform/userInfos/coaching-customer-info/index.cjs +9 -33
  34. package/dist/app/platform/userInfos/coaching-customer-info/index.cjs.map +1 -1
  35. package/dist/app/platform/userInfos/coaching-customer-info/index.js +8 -8
  36. package/dist/app/platform/userInfos/coaching-customer-info/large.cjs +3 -10
  37. package/dist/app/platform/userInfos/coaching-customer-info/large.cjs.map +1 -1
  38. package/dist/app/platform/userInfos/coaching-customer-info/large.d.cts +1 -1
  39. package/dist/app/platform/userInfos/coaching-customer-info/large.d.ts +1 -1
  40. package/dist/app/platform/userInfos/coaching-customer-info/large.js +5 -5
  41. package/dist/app/platform/userInfos/coaching-customer-info/medium.cjs +3 -10
  42. package/dist/app/platform/userInfos/coaching-customer-info/medium.cjs.map +1 -1
  43. package/dist/app/platform/userInfos/coaching-customer-info/medium.d.cts +1 -1
  44. package/dist/app/platform/userInfos/coaching-customer-info/medium.d.ts +1 -1
  45. package/dist/app/platform/userInfos/coaching-customer-info/medium.js +5 -5
  46. package/dist/app/platform/userInfos/coaching-customer-info/small.cjs +3 -11
  47. package/dist/app/platform/userInfos/coaching-customer-info/small.cjs.map +1 -1
  48. package/dist/app/platform/userInfos/coaching-customer-info/small.d.cts +1 -1
  49. package/dist/app/platform/userInfos/coaching-customer-info/small.d.ts +1 -1
  50. package/dist/app/platform/userInfos/coaching-customer-info/small.js +4 -4
  51. package/dist/app/platform/userInfos/session-user-info-detail.cjs.map +1 -1
  52. package/dist/app/platform/userInfos/session-user-info-detail.js +5 -5
  53. package/dist/app/platform/userInfos/utils.cjs.map +1 -1
  54. package/dist/app/platform/userInfos/utils.d.cts +1 -0
  55. package/dist/app/platform/userInfos/utils.d.ts +1 -0
  56. package/dist/app/platform/userInfos/utils.js +4 -4
  57. package/dist/atoms/dialog.js +2 -2
  58. package/dist/atoms/drawer.cjs +38 -9
  59. package/dist/atoms/drawer.cjs.map +1 -1
  60. package/dist/atoms/drawer.js +2 -1
  61. package/dist/atoms/index.cjs +1 -0
  62. package/dist/atoms/index.cjs.map +1 -1
  63. package/dist/atoms/index.js +6 -6
  64. package/dist/chunk-2MNNK576.js +52 -0
  65. package/dist/chunk-2MNNK576.js.map +1 -0
  66. package/dist/chunk-4DHKHART.js +177 -0
  67. package/dist/chunk-4DHKHART.js.map +1 -0
  68. package/dist/chunk-4VVKVY67.js +45 -0
  69. package/dist/chunk-4VVKVY67.js.map +1 -0
  70. package/dist/chunk-55BS56C7.js +165 -0
  71. package/dist/chunk-55BS56C7.js.map +1 -0
  72. package/dist/chunk-5QXQPRW7.js +89 -0
  73. package/dist/chunk-5QXQPRW7.js.map +1 -0
  74. package/dist/chunk-6LNT56PI.js +30 -0
  75. package/dist/chunk-6LNT56PI.js.map +1 -0
  76. package/dist/chunk-6NK4TENV.js +244 -0
  77. package/dist/chunk-6NK4TENV.js.map +1 -0
  78. package/dist/chunk-7HTPOEYY.js +60 -0
  79. package/dist/chunk-7HTPOEYY.js.map +1 -0
  80. package/dist/chunk-7QSHSKGH.js +250 -0
  81. package/dist/chunk-7QSHSKGH.js.map +1 -0
  82. package/dist/chunk-7XPVJ35J.js +177 -0
  83. package/dist/chunk-7XPVJ35J.js.map +1 -0
  84. package/dist/chunk-AEM57IUZ.js +145 -0
  85. package/dist/chunk-AEM57IUZ.js.map +1 -0
  86. package/dist/chunk-BN23HSLB.js +145 -0
  87. package/dist/chunk-BN23HSLB.js.map +1 -0
  88. package/dist/chunk-BSDY5S2S.js +177 -0
  89. package/dist/chunk-BSDY5S2S.js.map +1 -0
  90. package/dist/chunk-BXSGWGPX.js +51 -0
  91. package/dist/chunk-BXSGWGPX.js.map +1 -0
  92. package/dist/chunk-DEC74YZM.js +277 -0
  93. package/dist/chunk-DEC74YZM.js.map +1 -0
  94. package/dist/chunk-EDGXK4S3.js +30 -0
  95. package/dist/chunk-EDGXK4S3.js.map +1 -0
  96. package/dist/chunk-FLHTCZJ6.js +145 -0
  97. package/dist/chunk-FLHTCZJ6.js.map +1 -0
  98. package/dist/chunk-FYMXBVJN.js +163 -0
  99. package/dist/chunk-FYMXBVJN.js.map +1 -0
  100. package/dist/chunk-GWJPOXZB.js +145 -0
  101. package/dist/chunk-GWJPOXZB.js.map +1 -0
  102. package/dist/chunk-GWV7ZQS7.js +165 -0
  103. package/dist/chunk-GWV7ZQS7.js.map +1 -0
  104. package/dist/chunk-HVKX7LGP.js +63 -0
  105. package/dist/chunk-HVKX7LGP.js.map +1 -0
  106. package/dist/chunk-HW5TXRPH.js +51 -0
  107. package/dist/chunk-HW5TXRPH.js.map +1 -0
  108. package/dist/chunk-HXUZQJQY.js +60 -0
  109. package/dist/chunk-HXUZQJQY.js.map +1 -0
  110. package/dist/chunk-I5NKXTH5.js +63 -0
  111. package/dist/chunk-I5NKXTH5.js.map +1 -0
  112. package/dist/chunk-JHZGOPC4.js +104 -0
  113. package/dist/chunk-JHZGOPC4.js.map +1 -0
  114. package/dist/chunk-KEVIRRIU.js +250 -0
  115. package/dist/chunk-KEVIRRIU.js.map +1 -0
  116. package/dist/chunk-LSZ6443S.js +250 -0
  117. package/dist/chunk-LSZ6443S.js.map +1 -0
  118. package/dist/chunk-MEVO4WQM.js +163 -0
  119. package/dist/chunk-MEVO4WQM.js.map +1 -0
  120. package/dist/chunk-NCAJKLJL.js +277 -0
  121. package/dist/chunk-NCAJKLJL.js.map +1 -0
  122. package/dist/chunk-NTS2GASQ.js +30 -0
  123. package/dist/chunk-NTS2GASQ.js.map +1 -0
  124. package/dist/chunk-OCCR3BYX.js +145 -0
  125. package/dist/chunk-OCCR3BYX.js.map +1 -0
  126. package/dist/chunk-P3IQELLW.js +103 -0
  127. package/dist/chunk-P3IQELLW.js.map +1 -0
  128. package/dist/chunk-P7MEVIA2.js +177 -0
  129. package/dist/chunk-P7MEVIA2.js.map +1 -0
  130. package/dist/chunk-PM2MEPSY.js +145 -0
  131. package/dist/chunk-PM2MEPSY.js.map +1 -0
  132. package/dist/chunk-Q4B4TVV6.js +52 -0
  133. package/dist/chunk-Q4B4TVV6.js.map +1 -0
  134. package/dist/chunk-Q76YER7W.js +177 -0
  135. package/dist/chunk-Q76YER7W.js.map +1 -0
  136. package/dist/chunk-QW3Q5PDH.js +250 -0
  137. package/dist/chunk-QW3Q5PDH.js.map +1 -0
  138. package/dist/chunk-S3F7WBI2.js +45 -0
  139. package/dist/chunk-S3F7WBI2.js.map +1 -0
  140. package/dist/chunk-SDY76VWM.js +145 -0
  141. package/dist/chunk-SDY76VWM.js.map +1 -0
  142. package/dist/chunk-SNL4BT3L.js +249 -0
  143. package/dist/chunk-SNL4BT3L.js.map +1 -0
  144. package/dist/chunk-T24Z37LZ.js +51 -0
  145. package/dist/chunk-T24Z37LZ.js.map +1 -0
  146. package/dist/chunk-TU453YST.js +63 -0
  147. package/dist/chunk-TU453YST.js.map +1 -0
  148. package/dist/chunk-UTBSTESQ.js +30 -0
  149. package/dist/chunk-UTBSTESQ.js.map +1 -0
  150. package/dist/chunk-VIOAD7BY.js +145 -0
  151. package/dist/chunk-VIOAD7BY.js.map +1 -0
  152. package/dist/chunk-VKXZLSWB.js +249 -0
  153. package/dist/chunk-VKXZLSWB.js.map +1 -0
  154. package/dist/chunk-VVZ6M3AZ.js +145 -0
  155. package/dist/chunk-VVZ6M3AZ.js.map +1 -0
  156. package/dist/chunk-WNSDISYV.js +54 -0
  157. package/dist/chunk-WNSDISYV.js.map +1 -0
  158. package/dist/chunk-YDPVHTY2.js +163 -0
  159. package/dist/chunk-YDPVHTY2.js.map +1 -0
  160. package/dist/index.cjs +127 -95
  161. package/dist/index.cjs.map +1 -1
  162. package/dist/index.js +18 -18
  163. package/dist/layouts/index.cjs.map +1 -1
  164. package/dist/layouts/index.js +3 -3
  165. package/dist/layouts/response-display.cjs.map +1 -1
  166. package/dist/layouts/response-display.js +3 -3
  167. package/dist/molecules/date-picker/date-picker-button.cjs.map +1 -1
  168. package/dist/molecules/date-picker/date-picker-button.js +3 -3
  169. package/dist/molecules/expand-table/index.cjs.map +1 -1
  170. package/dist/molecules/expand-table/index.js +3 -3
  171. package/dist/molecules/expand-table/row.cjs.map +1 -1
  172. package/dist/molecules/expand-table/row.js +3 -3
  173. package/dist/molecules/index.cjs +26 -3
  174. package/dist/molecules/index.cjs.map +1 -1
  175. package/dist/molecules/index.js +4 -4
  176. package/dist/molecules/navigation.cjs.map +1 -1
  177. package/dist/molecules/navigation.js +3 -3
  178. package/dist/molecules/radio-button-card.cjs.map +1 -1
  179. package/dist/molecules/radio-button-card.js +3 -3
  180. package/dist/molecules/tag-selector.cjs.map +1 -1
  181. package/dist/molecules/tag-selector.js +3 -3
  182. package/dist/molecules/time-select.cjs +26 -3
  183. package/dist/molecules/time-select.cjs.map +1 -1
  184. package/dist/molecules/time-select.d.cts +6 -1
  185. package/dist/molecules/time-select.d.ts +6 -1
  186. package/dist/molecules/time-select.js +4 -4
  187. package/package.json +1 -1
  188. package/src/app/platform/goal-manage-card-read.tsx +10 -7
  189. package/src/app/platform/reservation-card.tsx +39 -2
  190. package/src/app/platform/userInfos/coaching-customer-info/large.tsx +3 -15
  191. package/src/app/platform/userInfos/coaching-customer-info/medium.tsx +3 -15
  192. package/src/app/platform/userInfos/coaching-customer-info/small.tsx +4 -18
  193. package/src/app/platform/userInfos/utils.tsx +1 -0
  194. package/src/atoms/drawer.tsx +2 -0
  195. package/src/molecules/time-select.tsx +37 -6
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/app/platform/goal-manage-card-read.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useState } from 'react';\nimport { endOfDay, format, setHours, startOfDay } from 'date-fns';\nimport type { BadgeProps } from '../../atoms';\nimport {\n Box,\n Button,\n Card,\n Collapse,\n Flex,\n Heading,\n Badge,\n Typo,\n Popover,\n Grid,\n Separator,\n IconButton,\n} from '../../atoms';\nimport {\n ChevronDownIcon,\n ChevronUpIcon,\n Pencil1Icon,\n RocketIcon,\n TrashIcon,\n} from '../../icon';\n\nexport interface GoalManageCardProps {\n defaultOpen?: boolean;\n title?: string;\n dueDate?: Date;\n completed?: boolean;\n expectedEffect?: string;\n huddle?: string;\n onClickDelete?: () => void;\n onClickEdit?: () => void;\n onClickComplete?: () => void;\n onClickIncomplete?: () => void;\n}\n\nexport function GoalManageCardRead(\n props: GoalManageCardProps\n): React.ReactElement {\n const {\n title,\n dueDate,\n completed,\n expectedEffect,\n huddle,\n onClickDelete,\n onClickEdit,\n defaultOpen,\n onClickIncomplete,\n onClickComplete,\n } = props;\n const [open, setOpen] = useState<boolean>(Boolean(defaultOpen));\n const onClickOpen = useCallback(() => {\n setOpen((p) => !p);\n }, []);\n\n const icon = open ? <ChevronUpIcon /> : <ChevronDownIcon />;\n\n const badgeMeta = useMemo<BadgeProps | null>(() => {\n if (!completed && dueDate) {\n if (dueDate >= startOfDay(new Date()))\n return {\n color: 'success',\n children: '진행 중',\n } as const;\n return { color: 'error', children: '미달성' };\n }\n return null;\n }, [completed, dueDate]);\n\n const renderSubTitle = useCallback((subTitle: string) => {\n return (\n <Heading mb=\"2\" variant=\"heading5\">\n {subTitle}\n </Heading>\n );\n }, []);\n\n const renderSubContent = useCallback((content?: string) => {\n return (\n <Typo as=\"p\" color=\"gray\">\n {content}\n </Typo>\n );\n }, []);\n\n const renderCompleteButton = useCallback(() => {\n if (completed) {\n return (\n <Button onClick={onClickIncomplete} size=\"small\" variant=\"surface\">\n 진행중인 과제로 돌려놓기\n </Button>\n );\n }\n\n return (\n <Popover.Root>\n <Popover.Trigger>\n <Button size=\"small\">\n <RocketIcon />\n 달성하기\n </Button>\n </Popover.Trigger>\n <Popover.Content>\n <Typo color=\"gray\">목표를 달성하시겠습니까?</Typo>\n <Flex gap=\"3\" justify=\"end\" mt=\"3\">\n <Popover.Close>\n <Button color=\"gray\" size=\"small\" variant=\"outline\">\n 아니요\n </Button>\n </Popover.Close>\n <Popover.Close>\n <Button onClick={onClickComplete} size=\"small\">\n 예\n </Button>\n </Popover.Close>\n </Flex>\n </Popover.Content>\n </Popover.Root>\n );\n }, [completed, onClickIncomplete, onClickComplete]);\n\n return (\n <Card>\n <Grid align=\"center\" columns=\"auto 1fr\" gapX=\"3\">\n <IconButton onClick={onClickOpen} variant=\"ghost\">\n {icon}\n </IconButton>\n <Heading variant=\"heading4\">{title}</Heading>\n\n <Flex align=\"center\" gridColumnStart=\"2\" justify=\"between\" mt=\"2\">\n <Flex align=\"center\" gap=\"3\">\n {badgeMeta ? <Badge {...badgeMeta} /> : null}\n <Typo color=\"gray\">\n {dueDate ? format(dueDate, 'yyyy년 MM월 dd일') : null}\n </Typo>\n </Flex>\n {renderCompleteButton()}\n </Flex>\n {open ? (\n <Separator\n mb=\"4\"\n mt=\"4\"\n size=\"4\"\n style={{ gridColumnStart: 'span 2' }}\n />\n ) : null}\n <Box gridColumnStart=\"2\" p=\"0\">\n <Collapse open={open}>\n <Flex direction=\"column\" gap=\"5\">\n <Box>\n {renderSubTitle(\n '해당 목표를 달성하면, 아래와 같은 결과를 얻을 수 있습니다'\n )}\n {renderSubContent(expectedEffect)}\n </Box>\n <Box>\n {renderSubTitle('해당 목표를 달성하기 위해 필요한 허들')}\n {renderSubContent(huddle)}\n </Box>\n </Flex>\n <Flex align=\"center\" gap=\"3\" justify=\"end\" mt=\"3\">\n <Popover.Root>\n <Popover.Trigger>\n <Button color=\"gray\" size=\"small\" variant=\"ghost\">\n <TrashIcon />\n 삭제하기\n </Button>\n </Popover.Trigger>\n <Popover.Content>\n <Typo color=\"gray\">목표를 삭제하시겠습니까?</Typo>\n <Flex gap=\"3\" justify=\"end\" mt=\"3\">\n <Popover.Close>\n <Button color=\"gray\" size=\"small\" variant=\"outline\">\n 아니요\n </Button>\n </Popover.Close>\n <Popover.Close>\n <Button onClick={onClickDelete} size=\"small\">\n 예\n </Button>\n </Popover.Close>\n </Flex>\n </Popover.Content>\n </Popover.Root>\n <Button onClick={onClickEdit} size=\"small\" variant=\"surface\">\n <Pencil1Icon />\n 수정하기\n </Button>\n </Flex>\n </Collapse>\n </Box>\n </Grid>\n </Card>\n );\n}\n"],"mappings":"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","names":[]}
package/dist/index.cjs CHANGED
@@ -1086,6 +1086,7 @@ function Content6(props) {
1086
1086
  const separatorSize = 1;
1087
1087
  return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Dialog2.Portal, { container: containerRef.current, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_themes50.Theme, { children: [
1088
1088
  /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Dialog2.Overlay, { className: "DrawerOverlay" }),
1089
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ToastContainer, {}),
1089
1090
  /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1090
1091
  Dialog2.Content,
1091
1092
  __spreadProps(__spreadValues({
@@ -2439,6 +2440,7 @@ function DatePickerButton(props) {
2439
2440
 
2440
2441
  // src/molecules/time-select.tsx
2441
2442
  var import_react27 = require("react");
2443
+ var import_date_fns2 = require("date-fns");
2442
2444
 
2443
2445
  // src/utils/get-cell-align.ts
2444
2446
  var getCellAlign = (type) => {
@@ -2511,18 +2513,40 @@ var getTimeOption = (time) => {
2511
2513
 
2512
2514
  // src/molecules/time-select.tsx
2513
2515
  var import_jsx_runtime38 = require("react/jsx-runtime");
2516
+ var getOptionValue = (date, timeValue) => {
2517
+ if (date && timeValue) {
2518
+ if ((0, import_date_fns2.format)(date, "yyyyMMdd") === (0, import_date_fns2.format)(timeValue, "yyyyMMdd")) {
2519
+ return (0, import_date_fns2.format)(date, "HH:mm");
2520
+ }
2521
+ }
2522
+ };
2514
2523
  function TimeSelect(_a) {
2515
2524
  var _b = _a, {
2516
- value
2525
+ value,
2526
+ maxTime,
2527
+ minTime,
2528
+ time
2517
2529
  } = _b, rest = __objRest(_b, [
2518
- "value"
2530
+ "value",
2531
+ "maxTime",
2532
+ "minTime",
2533
+ "time"
2519
2534
  ]);
2520
2535
  const timeOptions = (0, import_react27.useMemo)(() => {
2521
2536
  return getTimeOptions();
2522
2537
  }, []);
2538
+ const [minOption, maxOption] = (0, import_react27.useMemo)(() => {
2539
+ return [getOptionValue(minTime, time), getOptionValue(maxTime, time)];
2540
+ }, [maxTime, minTime, time]);
2523
2541
  return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Select.Root, __spreadProps(__spreadValues({ value }, rest), { children: [
2524
2542
  /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_themes22.Flex, { direction: "column", width: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Select.Trigger, { placeholder: "- ", style: { minWidth: "100px" } }) }),
2525
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Select.Content, { children: timeOptions.map((time) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Select.Item, { value: time, children: time }, time)) })
2543
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Select.Content, { children: timeOptions.map((option) => {
2544
+ const visible = (!minOption || option >= minOption) && (!maxOption || option <= maxOption);
2545
+ if (!visible) {
2546
+ return null;
2547
+ }
2548
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Select.Item, { value: option, children: option }, option);
2549
+ }) })
2526
2550
  ] }));
2527
2551
  }
2528
2552
 
@@ -2788,20 +2812,12 @@ var EchartDefaultProps = {
2788
2812
  };
2789
2813
 
2790
2814
  // src/app/platform/userInfos/coaching-customer-info/small.tsx
2791
- var import_react29 = require("react");
2792
- var import_biz_utils = require("@tipp/biz-utils");
2793
2815
  var import_jsx_runtime42 = require("react/jsx-runtime");
2794
2816
  function CoachingCustomerInfoSmall({
2795
2817
  customer,
2796
- session,
2797
- children
2818
+ children,
2819
+ badge
2798
2820
  }) {
2799
- const badgeColor = (0, import_react29.useMemo)(() => {
2800
- return (0, import_biz_utils.getColorFromProjectState)(session == null ? void 0 : session.state);
2801
- }, [session == null ? void 0 : session.state]);
2802
- const sessionText = (0, import_react29.useMemo)(() => {
2803
- return (0, import_biz_utils.getTextFromProjectState)(session == null ? void 0 : session.state);
2804
- }, [session == null ? void 0 : session.state]);
2805
2821
  return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
2806
2822
  import_themes22.Flex,
2807
2823
  {
@@ -2812,7 +2828,7 @@ function CoachingCustomerInfoSmall({
2812
2828
  /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_themes6.Box, { children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_themes23.Grid, { align: "center", columns: "auto auto 1fr", gapX: "3", children: [
2813
2829
  /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Heading2, { variant: "heading3", children: (customer == null ? void 0 : customer.username) || "\uC774\uB984 \uC5C6\uC74C" }),
2814
2830
  /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Typo, { color: "gray", truncate: true, variant: "body", children: customer == null ? void 0 : customer.company }),
2815
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_themes6.Box, { style: { justifySelf: "end" }, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Badge, { color: badgeColor, children: sessionText }) })
2831
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_themes6.Box, { style: { justifySelf: "end" }, children: badge })
2816
2832
  ] }) }),
2817
2833
  children
2818
2834
  ]
@@ -2820,12 +2836,8 @@ function CoachingCustomerInfoSmall({
2820
2836
  );
2821
2837
  }
2822
2838
 
2823
- // src/app/platform/userInfos/coaching-customer-info/medium.tsx
2824
- var import_react30 = require("react");
2825
- var import_biz_utils2 = require("@tipp/biz-utils");
2826
-
2827
2839
  // src/app/platform/userInfos/utils.tsx
2828
- var import_date_fns2 = require("date-fns");
2840
+ var import_date_fns3 = require("date-fns");
2829
2841
  var import_react_icons8 = require("@radix-ui/react-icons");
2830
2842
  var import_jsx_runtime43 = require("react/jsx-runtime");
2831
2843
  var infoList = [
@@ -2833,7 +2845,7 @@ var infoList = [
2833
2845
  { label: "\uC131\uBCC4", getValue: (customer) => customer == null ? void 0 : customer.gender },
2834
2846
  {
2835
2847
  label: "\uC0DD\uB144\uC6D4\uC77C",
2836
- getValue: (customer) => (customer == null ? void 0 : customer.birthdate) && (0, import_date_fns2.format)(customer.birthdate, "yyyy.MM.dd")
2848
+ getValue: (customer) => (customer == null ? void 0 : customer.birthdate) && (0, import_date_fns3.format)(customer.birthdate, "yyyy.MM.dd")
2837
2849
  },
2838
2850
  { label: "\uBD80\uC11C", getValue: (customer) => customer == null ? void 0 : customer.team },
2839
2851
  { label: "\uC9C1\uCC45", getValue: (customer) => customer == null ? void 0 : customer.position },
@@ -2867,7 +2879,7 @@ var sessionList = [
2867
2879
  {
2868
2880
  label: "\uB2E4\uC74C \uC138\uC158 \uC77C\uC2DC",
2869
2881
  getValue: (session) => sessionStatusChecker(
2870
- (session == null ? void 0 : session.nextSessionDate) ? (0, import_date_fns2.format)(session.nextSessionDate, "yyyy\uB144 MM\uC6D4 dd\uC77C HH\uC2DC mm\uBD84") : "-",
2882
+ (session == null ? void 0 : session.nextSessionDate) ? (0, import_date_fns3.format)(session.nextSessionDate, "yyyy\uB144 MM\uC6D4 dd\uC77C HH\uC2DC mm\uBD84") : "-",
2871
2883
  session
2872
2884
  )
2873
2885
  },
@@ -2877,7 +2889,7 @@ var sessionList = [
2877
2889
  },
2878
2890
  {
2879
2891
  label: "\uCF54\uCE6D \uB9CC\uB8CC \uAE30\uD55C",
2880
- getValue: (session) => (session == null ? void 0 : session.expiredAt) ? (0, import_date_fns2.format)(session.expiredAt, "yyyy\uB144 MM\uC6D4 dd\uC77C") : "-"
2892
+ getValue: (session) => (session == null ? void 0 : session.expiredAt) ? (0, import_date_fns3.format)(session.expiredAt, "yyyy\uB144 MM\uC6D4 dd\uC77C") : "-"
2881
2893
  }
2882
2894
  ];
2883
2895
  var renderItem = (info, data) => {
@@ -2914,19 +2926,14 @@ var import_jsx_runtime44 = require("react/jsx-runtime");
2914
2926
  function CoachingCustomerInfoMedium({
2915
2927
  customer,
2916
2928
  session,
2917
- children
2929
+ children,
2930
+ badge
2918
2931
  }) {
2919
- const badgeColor = (0, import_react30.useMemo)(() => {
2920
- return (0, import_biz_utils2.getColorFromProjectState)(session == null ? void 0 : session.state);
2921
- }, [session == null ? void 0 : session.state]);
2922
- const sessionText = (0, import_react30.useMemo)(() => {
2923
- return (0, import_biz_utils2.getTextFromProjectState)(session == null ? void 0 : session.state);
2924
- }, [session == null ? void 0 : session.state]);
2925
2932
  return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_themes22.Flex, { direction: "column", gap: "5", children: [
2926
2933
  /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_themes6.Box, { children: [
2927
2934
  /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_themes22.Flex, { align: "center", justify: "between", mb: "1", width: "100%", children: [
2928
2935
  /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Heading2, { variant: "heading2", children: (customer == null ? void 0 : customer.username) || "\uC774\uB984 \uC5C6\uC74C" }),
2929
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Badge, { color: badgeColor, children: sessionText })
2936
+ badge
2930
2937
  ] }),
2931
2938
  /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Heading2, { truncate: true, variant: "heading4", weight: "regular", children: customer == null ? void 0 : customer.company })
2932
2939
  ] }),
@@ -2943,25 +2950,18 @@ function CoachingCustomerInfoMedium({
2943
2950
  }
2944
2951
 
2945
2952
  // src/app/platform/userInfos/coaching-customer-info/large.tsx
2946
- var import_react31 = require("react");
2947
- var import_biz_utils3 = require("@tipp/biz-utils");
2948
2953
  var import_jsx_runtime45 = require("react/jsx-runtime");
2949
2954
  function CoachingCustomerInfoLarge({
2950
2955
  customer,
2951
2956
  session,
2952
- children
2957
+ children,
2958
+ badge
2953
2959
  }) {
2954
- const badgeColor = (0, import_react31.useMemo)(() => {
2955
- return (0, import_biz_utils3.getColorFromProjectState)(session == null ? void 0 : session.state);
2956
- }, [session == null ? void 0 : session.state]);
2957
- const sessionText = (0, import_react31.useMemo)(() => {
2958
- return (0, import_biz_utils3.getTextFromProjectState)(session == null ? void 0 : session.state);
2959
- }, [session == null ? void 0 : session.state]);
2960
2960
  return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_themes22.Flex, { direction: "column", gap: "5", children: [
2961
2961
  /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_themes6.Box, { children: [
2962
2962
  /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_themes22.Flex, { align: "center", justify: "between", mb: "1", width: "100%", children: [
2963
2963
  /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Heading2, { variant: "heading2", children: (customer == null ? void 0 : customer.username) || "\uC774\uB984 \uC5C6\uC74C" }),
2964
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Badge, { color: badgeColor, children: sessionText })
2964
+ badge
2965
2965
  ] }),
2966
2966
  /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Heading2, { truncate: true, variant: "heading4", weight: "regular", children: customer == null ? void 0 : customer.company })
2967
2967
  ] }),
@@ -2983,8 +2983,8 @@ function CoachingCustomerInfo(props) {
2983
2983
  }
2984
2984
 
2985
2985
  // src/app/platform/goal-manage-card-read.tsx
2986
- var import_react32 = require("react");
2987
- var import_date_fns3 = require("date-fns");
2986
+ var import_react29 = require("react");
2987
+ var import_date_fns4 = require("date-fns");
2988
2988
  var import_jsx_runtime47 = require("react/jsx-runtime");
2989
2989
  function GoalManageCardRead(props) {
2990
2990
  const {
@@ -2999,29 +2999,29 @@ function GoalManageCardRead(props) {
2999
2999
  onClickIncomplete,
3000
3000
  onClickComplete
3001
3001
  } = props;
3002
- const [open, setOpen] = (0, import_react32.useState)(Boolean(defaultOpen));
3003
- const onClickOpen = (0, import_react32.useCallback)(() => {
3002
+ const [open, setOpen] = (0, import_react29.useState)(Boolean(defaultOpen));
3003
+ const onClickOpen = (0, import_react29.useCallback)(() => {
3004
3004
  setOpen((p) => !p);
3005
3005
  }, []);
3006
3006
  const icon = open ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_react_icons3.ChevronUpIcon, {}) : /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_react_icons3.ChevronDownIcon, {});
3007
- const badgeMeta = (0, import_react32.useMemo)(() => {
3007
+ const badgeMeta = (0, import_react29.useMemo)(() => {
3008
3008
  if (!completed && dueDate) {
3009
- if (dueDate < /* @__PURE__ */ new Date())
3010
- return { color: "error", children: "\uBBF8\uB2EC\uC131" };
3011
- return {
3012
- color: "success",
3013
- children: "\uC9C4\uD589 \uC911"
3014
- };
3009
+ if (dueDate >= (0, import_date_fns4.startOfDay)(/* @__PURE__ */ new Date()))
3010
+ return {
3011
+ color: "success",
3012
+ children: "\uC9C4\uD589 \uC911"
3013
+ };
3014
+ return { color: "error", children: "\uBBF8\uB2EC\uC131" };
3015
3015
  }
3016
3016
  return null;
3017
3017
  }, [completed, dueDate]);
3018
- const renderSubTitle = (0, import_react32.useCallback)((subTitle) => {
3018
+ const renderSubTitle = (0, import_react29.useCallback)((subTitle) => {
3019
3019
  return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Heading2, { mb: "2", variant: "heading5", children: subTitle });
3020
3020
  }, []);
3021
- const renderSubContent = (0, import_react32.useCallback)((content) => {
3021
+ const renderSubContent = (0, import_react29.useCallback)((content) => {
3022
3022
  return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Typo, { as: "p", color: "gray", children: content });
3023
3023
  }, []);
3024
- const renderCompleteButton = (0, import_react32.useCallback)(() => {
3024
+ const renderCompleteButton = (0, import_react29.useCallback)(() => {
3025
3025
  if (completed) {
3026
3026
  return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Button, { onClick: onClickIncomplete, size: "small", variant: "surface", children: "\uC9C4\uD589\uC911\uC778 \uACFC\uC81C\uB85C \uB3CC\uB824\uB193\uAE30" });
3027
3027
  }
@@ -3045,7 +3045,7 @@ function GoalManageCardRead(props) {
3045
3045
  /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(import_themes22.Flex, { align: "center", gridColumnStart: "2", justify: "between", mt: "2", children: [
3046
3046
  /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(import_themes22.Flex, { align: "center", gap: "3", children: [
3047
3047
  badgeMeta ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Badge, __spreadValues({}, badgeMeta)) : null,
3048
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Typo, { color: "gray", children: dueDate ? (0, import_date_fns3.format)(dueDate, "yyyy\uB144 MM\uC6D4 dd\uC77C") : null })
3048
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Typo, { color: "gray", children: dueDate ? (0, import_date_fns4.format)(dueDate, "yyyy\uB144 MM\uC6D4 dd\uC77C") : null })
3049
3049
  ] }),
3050
3050
  renderCompleteButton()
3051
3051
  ] }),
@@ -3067,7 +3067,9 @@ function GoalManageCardRead(props) {
3067
3067
  renderSubContent(expectedEffect)
3068
3068
  ] }),
3069
3069
  /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(import_themes6.Box, { children: [
3070
- renderSubTitle("\uD574\uB2F9 \uBAA9\uD45C\uB97C \uB2EC\uC131\uD558\uAE30 \uC704\uD574 \uD544\uC694\uD55C \uD5C8\uB4E4"),
3070
+ renderSubTitle(
3071
+ "\uBAA9\uD45C\uB97C \uC774\uB8E8\uAE30\uAE4C\uC9C0 \uBC29\uD574\uAC00 \uB420 \uC218 \uC788\uB294 \uC694\uC18C\uB4E4\uC740 \uB2E4\uC74C\uACFC \uAC19\uC2B5\uB2C8\uB2E4"
3072
+ ),
3071
3073
  renderSubContent(huddle)
3072
3074
  ] })
3073
3075
  ] }),
@@ -3095,8 +3097,8 @@ function GoalManageCardRead(props) {
3095
3097
  }
3096
3098
 
3097
3099
  // src/app/platform/goal-manage-card-edit.tsx
3098
- var import_react33 = require("react");
3099
- var import_date_fns4 = require("date-fns");
3100
+ var import_react30 = require("react");
3101
+ var import_date_fns5 = require("date-fns");
3100
3102
  var import_jsx_runtime48 = require("react/jsx-runtime");
3101
3103
  var initialValues = {
3102
3104
  goal: "",
@@ -3108,8 +3110,8 @@ var dummyFn = () => {
3108
3110
  };
3109
3111
  function GoalManageCardEdit(props) {
3110
3112
  const { defaultValues, errors } = props;
3111
- const [values, setValues] = (0, import_react33.useState)(defaultValues || initialValues);
3112
- const onChange = (0, import_react33.useCallback)(
3113
+ const [values, setValues] = (0, import_react30.useState)(defaultValues || initialValues);
3114
+ const onChange = (0, import_react30.useCallback)(
3113
3115
  (v) => {
3114
3116
  var _a;
3115
3117
  setValues((prev) => __spreadValues(__spreadValues({}, prev), v));
@@ -3117,12 +3119,12 @@ function GoalManageCardEdit(props) {
3117
3119
  },
3118
3120
  [props]
3119
3121
  );
3120
- const onClickInit = (0, import_react33.useCallback)(() => {
3122
+ const onClickInit = (0, import_react30.useCallback)(() => {
3121
3123
  var _a;
3122
3124
  setValues(initialValues);
3123
3125
  (_a = props.onChange) == null ? void 0 : _a.call(props, defaultValues || initialValues);
3124
3126
  }, [defaultValues, props]);
3125
- const onClickSubmit = (0, import_react33.useCallback)(() => {
3127
+ const onClickSubmit = (0, import_react30.useCallback)(() => {
3126
3128
  var _a;
3127
3129
  (_a = props.onSubmit) == null ? void 0 : _a.call(props, values);
3128
3130
  }, [props, values]);
@@ -3182,7 +3184,7 @@ function GoalManageCardEdit(props) {
3182
3184
  /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
3183
3185
  DatePickerButton,
3184
3186
  {
3185
- format: (v) => (0, import_date_fns4.format)(v, "yyyy\uB144 MM\uC6D4 dd\uC77C"),
3187
+ format: (v) => (0, import_date_fns5.format)(v, "yyyy\uB144 MM\uC6D4 dd\uC77C"),
3186
3188
  onChange: (date) => {
3187
3189
  date && onChange({ dueDate: date });
3188
3190
  },
@@ -3211,11 +3213,11 @@ function GoalManageCardEdit(props) {
3211
3213
  }
3212
3214
 
3213
3215
  // src/app/platform/session-card.tsx
3214
- var import_react36 = require("react");
3215
- var import_date_fns5 = require("date-fns");
3216
+ var import_react33 = require("react");
3217
+ var import_date_fns6 = require("date-fns");
3216
3218
 
3217
3219
  // src/app/platform/edit-coaching-time.tsx
3218
- var import_react34 = require("react");
3220
+ var import_react31 = require("react");
3219
3221
 
3220
3222
  // src/layouts/response-display.tsx
3221
3223
  var import_jsx_runtime49 = require("react/jsx-runtime");
@@ -3276,14 +3278,14 @@ var getDateFromValue = (date, time) => {
3276
3278
  };
3277
3279
  function EditCoachingTime(props) {
3278
3280
  const { defaultEndAt, defaultStartAt, onClickCancel } = props;
3279
- const [values, setValues] = (0, import_react34.useState)(() => {
3281
+ const [values, setValues] = (0, import_react31.useState)(() => {
3280
3282
  return getValueFromDefaultValue({
3281
3283
  startAt: defaultStartAt,
3282
3284
  endAt: defaultEndAt
3283
3285
  });
3284
3286
  });
3285
- const [timeError, setTimeError] = (0, import_react34.useState)("");
3286
- const checkTimeError = (0, import_react34.useCallback)(
3287
+ const [timeError, setTimeError] = (0, import_react31.useState)("");
3288
+ const checkTimeError = (0, import_react31.useCallback)(
3287
3289
  (startTime, endTime) => {
3288
3290
  const error = startTime >= endTime ? "\uC2DC\uC791\uC2DC\uAC04\uC744 \uC885\uB8CC\uC2DC\uAC04\uBCF4\uB2E4 \uBE60\uB974\uAC8C \uC120\uD0DD\uD574\uC8FC\uC138\uC694." : "";
3289
3291
  if (error) {
@@ -3294,7 +3296,7 @@ function EditCoachingTime(props) {
3294
3296
  },
3295
3297
  []
3296
3298
  );
3297
- const onChangeStartTime = (0, import_react34.useCallback)(
3299
+ const onChangeStartTime = (0, import_react31.useCallback)(
3298
3300
  (v) => {
3299
3301
  checkTimeError(v, values.endTime);
3300
3302
  setValues((prev) => __spreadProps(__spreadValues({}, prev), {
@@ -3303,7 +3305,7 @@ function EditCoachingTime(props) {
3303
3305
  },
3304
3306
  [checkTimeError, values.endTime]
3305
3307
  );
3306
- const onChangeEndTime = (0, import_react34.useCallback)(
3308
+ const onChangeEndTime = (0, import_react31.useCallback)(
3307
3309
  (v) => {
3308
3310
  checkTimeError(values.startTime, v);
3309
3311
  setValues((prev) => __spreadProps(__spreadValues({}, prev), {
@@ -3312,12 +3314,12 @@ function EditCoachingTime(props) {
3312
3314
  },
3313
3315
  [checkTimeError, values.startTime]
3314
3316
  );
3315
- const onChangeDate = (0, import_react34.useCallback)((date) => {
3317
+ const onChangeDate = (0, import_react31.useCallback)((date) => {
3316
3318
  date && setValues((prev) => __spreadProps(__spreadValues({}, prev), {
3317
3319
  date
3318
3320
  }));
3319
3321
  }, []);
3320
- const onClickSave = (0, import_react34.useCallback)(() => {
3322
+ const onClickSave = (0, import_react31.useCallback)(() => {
3321
3323
  if (checkTimeError(values.startTime, values.endTime)) {
3322
3324
  const startAt = getDateFromValue(values.date, values.startTime);
3323
3325
  const endAt = getDateFromValue(values.date, values.endTime);
@@ -3386,7 +3388,7 @@ function EditCoachingTime(props) {
3386
3388
  }
3387
3389
 
3388
3390
  // src/app/platform/edit-service-type.tsx
3389
- var import_react35 = require("react");
3391
+ var import_react32 = require("react");
3390
3392
 
3391
3393
  // src/app/platform/on-offline-radio-card.tsx
3392
3394
  var import_react_icons9 = require("@radix-ui/react-icons");
@@ -3429,10 +3431,10 @@ function OnOfflineRadioCard(props) {
3429
3431
  var import_jsx_runtime52 = require("react/jsx-runtime");
3430
3432
  function EditServiceType(props) {
3431
3433
  const { defaultServiceType, onClickCancel } = props;
3432
- const [sessionType, setSessionType] = (0, import_react35.useState)(
3434
+ const [sessionType, setSessionType] = (0, import_react32.useState)(
3433
3435
  defaultServiceType
3434
3436
  );
3435
- const onClickSave = (0, import_react35.useCallback)(() => {
3437
+ const onClickSave = (0, import_react32.useCallback)(() => {
3436
3438
  var _a;
3437
3439
  (_a = props.onClickSave) == null ? void 0 : _a.call(props, sessionType);
3438
3440
  }, [props, sessionType]);
@@ -3486,13 +3488,13 @@ function SessionCard(props) {
3486
3488
  "endAt",
3487
3489
  "sessionType"
3488
3490
  ]);
3489
- const renderEditButton = (0, import_react36.useCallback)(() => {
3491
+ const renderEditButton = (0, import_react33.useCallback)(() => {
3490
3492
  return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Button, { color: "gray", ml: "2", variant: "transparent", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_icons3.Pencil1Icon, {}) });
3491
3493
  }, []);
3492
- const sessionTimeStr = (0, import_react36.useMemo)(() => {
3494
+ const sessionTimeStr = (0, import_react33.useMemo)(() => {
3493
3495
  if (!startAt || !endAt)
3494
3496
  return "\uC54C \uC218 \uC5C6\uC74C";
3495
- return `${(0, import_date_fns5.format)(startAt, "yyyy\uB144 MM\uC6D4 dd\uC77C HH\uC2DC mm\uBD84")} ~ ${(0, import_date_fns5.format)(endAt, "HH\uC2DC mm\uBD84")}`;
3497
+ return `${(0, import_date_fns6.format)(startAt, "yyyy\uB144 MM\uC6D4 dd\uC77C HH\uC2DC mm\uBD84")} ~ ${(0, import_date_fns6.format)(endAt, "HH\uC2DC mm\uBD84")}`;
3496
3498
  }, [startAt, endAt]);
3497
3499
  return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Card, __spreadProps(__spreadValues({ error: Boolean(error) }, rest), { children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_themes22.Flex, { direction: "column", gap: "3", children: [
3498
3500
  /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_themes22.Flex, { align: "center", width: "100%", children: [
@@ -3572,8 +3574,8 @@ function CoachQuestionList({
3572
3574
  }
3573
3575
 
3574
3576
  // src/app/platform/reservation-card.tsx
3575
- var import_react37 = require("react");
3576
- var import_date_fns6 = require("date-fns");
3577
+ var import_react34 = require("react");
3578
+ var import_date_fns7 = require("date-fns");
3577
3579
  var import_jsx_runtime55 = require("react/jsx-runtime");
3578
3580
  function ReservationCard(props) {
3579
3581
  const {
@@ -3583,64 +3585,90 @@ function ReservationCard(props) {
3583
3585
  defaultTime,
3584
3586
  defaultType,
3585
3587
  error,
3588
+ minTime,
3589
+ maxTime,
3586
3590
  onClickReserve,
3587
3591
  onClickCancel,
3588
3592
  onClickCompleteSession
3589
3593
  } = props;
3590
- const [editValues, setEditValues] = (0, import_react37.useState)({
3594
+ const [editValues, setEditValues] = (0, import_react34.useState)({
3591
3595
  date: props.defaultTime,
3592
3596
  type: props.defaultType
3593
3597
  });
3594
3598
  const date = readonly ? defaultTime : editValues.date;
3595
3599
  const type = readonly ? defaultType : editValues.type;
3596
3600
  const time = date && getTimeOption(date);
3597
- const onClickSave = (0, import_react37.useCallback)(() => {
3601
+ const onClickSave = (0, import_react34.useCallback)(() => {
3598
3602
  var _a;
3599
3603
  (_a = props.onClickSave) == null ? void 0 : _a.call(props, editValues);
3600
3604
  }, [editValues, props]);
3601
- const onClickReset = (0, import_react37.useCallback)(() => {
3605
+ const onClickReset = (0, import_react34.useCallback)(() => {
3602
3606
  setEditValues({
3603
3607
  date: defaultTime,
3604
3608
  type: defaultType
3605
3609
  });
3606
3610
  }, [defaultTime, defaultType]);
3607
- const ActionButtons = (0, import_react37.useMemo)(() => {
3611
+ const ActionButtons = (0, import_react34.useMemo)(() => {
3608
3612
  if (readonly) {
3609
3613
  return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Button, { onClick: onClickReserve, size: "small", variant: "surface", children: defaultTime && defaultType ? "\uC608\uC57D \uC218\uC815\uD558\uAE30" : "\uC608\uC57D\uD558\uAE30" });
3610
3614
  }
3611
3615
  return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Button, { color: "gray", onClick: onClickCancel, variant: "transparent", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_react_icons3.Cross1Icon, {}) });
3612
3616
  }, [defaultTime, defaultType, onClickCancel, onClickReserve, readonly]);
3613
- const onChangeDate = (0, import_react37.useCallback)(
3617
+ const onChangeDate = (0, import_react34.useCallback)(
3614
3618
  (newDate) => {
3615
3619
  if (!newDate)
3616
3620
  return;
3617
3621
  const { hour = 0, minute = 0 } = time ? parseTimeOption(time) : {};
3618
3622
  setEditValues((prev) => {
3619
3623
  return __spreadProps(__spreadValues({}, prev), {
3620
- date: (0, import_date_fns6.setMinutes)((0, import_date_fns6.setHours)(newDate, hour), minute)
3624
+ date: (0, import_date_fns7.setMinutes)((0, import_date_fns7.setHours)(newDate, hour), minute)
3621
3625
  });
3622
3626
  });
3623
3627
  },
3624
3628
  [time]
3625
3629
  );
3626
- const onChangeType = (0, import_react37.useCallback)((newType) => {
3630
+ const onChangeType = (0, import_react34.useCallback)((newType) => {
3627
3631
  setEditValues((prev) => {
3628
3632
  return __spreadProps(__spreadValues({}, prev), {
3629
3633
  type: newType
3630
3634
  });
3631
3635
  });
3632
3636
  }, []);
3633
- const onChangeTime = (0, import_react37.useCallback)(
3637
+ const onChangeTime = (0, import_react34.useCallback)(
3634
3638
  (v) => {
3635
3639
  const { hour, minute } = parseTimeOption(v);
3636
3640
  setEditValues((prev) => {
3637
3641
  return __spreadProps(__spreadValues({}, prev), {
3638
- date: (0, import_date_fns6.setMinutes)((0, import_date_fns6.setHours)(date || /* @__PURE__ */ new Date(), hour), minute)
3642
+ date: (0, import_date_fns7.setMinutes)((0, import_date_fns7.setHours)(date || /* @__PURE__ */ new Date(), hour), minute)
3639
3643
  });
3640
3644
  });
3641
3645
  },
3642
3646
  [date]
3643
3647
  );
3648
+ (0, import_react34.useEffect)(() => {
3649
+ if (!minTime || !editValues.date)
3650
+ return;
3651
+ if (editValues.date < minTime) {
3652
+ import_react_toastify2.toast.warn("\uC120\uD0DD \uAC00\uB2A5\uD55C \uC2DC\uAC04\uB300\uB85C \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4.");
3653
+ setEditValues((prev) => {
3654
+ return __spreadProps(__spreadValues({}, prev), {
3655
+ date: minTime
3656
+ });
3657
+ });
3658
+ }
3659
+ }, [editValues, minTime]);
3660
+ (0, import_react34.useEffect)(() => {
3661
+ if (!maxTime || !editValues.date)
3662
+ return;
3663
+ if (editValues.date > maxTime) {
3664
+ import_react_toastify2.toast.warn("\uC120\uD0DD \uAC00\uB2A5\uD55C \uC2DC\uAC04\uB300\uB85C \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4.");
3665
+ setEditValues((prev) => {
3666
+ return __spreadProps(__spreadValues({}, prev), {
3667
+ date: maxTime
3668
+ });
3669
+ });
3670
+ }
3671
+ }, [editValues, maxTime]);
3644
3672
  return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
3645
3673
  Card,
3646
3674
  {
@@ -3685,7 +3713,8 @@ function ReservationCard(props) {
3685
3713
  DatePickerButton,
3686
3714
  {
3687
3715
  disabled: readonly,
3688
- minDate: /* @__PURE__ */ new Date(),
3716
+ maxDate: maxTime,
3717
+ minDate: minTime,
3689
3718
  onChange: onChangeDate,
3690
3719
  placeholder: "\uC77C\uC790\uB97C \uC120\uD0DD\uD574\uC8FC\uC138\uC694",
3691
3720
  selected: date,
@@ -3696,8 +3725,11 @@ function ReservationCard(props) {
3696
3725
  TimeSelect,
3697
3726
  {
3698
3727
  disabled: readonly,
3728
+ maxTime,
3729
+ minTime,
3699
3730
  onValueChange: onChangeTime,
3700
3731
  size: "3",
3732
+ time: date,
3701
3733
  value: time
3702
3734
  }
3703
3735
  )
@@ -3757,7 +3789,7 @@ function ReservationCard(props) {
3757
3789
  }
3758
3790
 
3759
3791
  // src/app/platform/session-review-simple-read.tsx
3760
- var import_react38 = require("react");
3792
+ var import_react35 = require("react");
3761
3793
  var import_jsx_runtime56 = require("react/jsx-runtime");
3762
3794
  function SubTitleWrapper({
3763
3795
  children,
@@ -3772,7 +3804,7 @@ function SessionReviewSimpleRead({
3772
3804
  helpfulness,
3773
3805
  review
3774
3806
  }) {
3775
- const helpfulnessMeta = (0, import_react38.useMemo)(() => {
3807
+ const helpfulnessMeta = (0, import_react35.useMemo)(() => {
3776
3808
  if (helpfulness) {
3777
3809
  return {
3778
3810
  text: "\uB124",
@@ -3821,11 +3853,11 @@ function SessionUserInfoDetail({
3821
3853
  }
3822
3854
 
3823
3855
  // src/app/platform/report-card.tsx
3824
- var import_react39 = require("react");
3856
+ var import_react36 = require("react");
3825
3857
  var import_jsx_runtime58 = require("react/jsx-runtime");
3826
3858
  function ReportCard(props) {
3827
3859
  const { title, file, status } = props;
3828
- const onClickDownload = (0, import_react39.useCallback)(() => {
3860
+ const onClickDownload = (0, import_react36.useCallback)(() => {
3829
3861
  if (!file)
3830
3862
  return;
3831
3863
  const { url, fileName } = file;