@tipp/ui 2.3.39 → 2.3.40

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 (134) hide show
  1. package/dist/app/index.cjs +7 -7
  2. package/dist/app/index.cjs.map +1 -1
  3. package/dist/app/index.js +60 -60
  4. package/dist/app/platform/coach-question-list.js +26 -26
  5. package/dist/app/platform/contents-card.cjs +7 -7
  6. package/dist/app/platform/contents-card.cjs.map +1 -1
  7. package/dist/app/platform/contents-card.js +26 -26
  8. package/dist/app/platform/curriculum-card.js +2 -2
  9. package/dist/app/platform/edit-coaching-time.cjs.map +1 -1
  10. package/dist/app/platform/edit-coaching-time.js +48 -48
  11. package/dist/app/platform/edit-service-type.cjs.map +1 -1
  12. package/dist/app/platform/edit-service-type.js +48 -48
  13. package/dist/app/platform/goal-manage-card-edit.cjs.map +1 -1
  14. package/dist/app/platform/goal-manage-card-edit.js +49 -49
  15. package/dist/app/platform/goal-manage-card-read.js +26 -26
  16. package/dist/app/platform/on-offline-radio-card.cjs.map +1 -1
  17. package/dist/app/platform/on-offline-radio-card.js +48 -48
  18. package/dist/app/platform/report-card.js +26 -26
  19. package/dist/app/platform/reservation-card.cjs.map +1 -1
  20. package/dist/app/platform/reservation-card.js +49 -49
  21. package/dist/app/platform/session-card.cjs.map +1 -1
  22. package/dist/app/platform/session-card.js +49 -49
  23. package/dist/app/platform/session-review-simple-read.js +26 -26
  24. package/dist/app/platform/userInfos/coaching-customer-info/index.js +28 -28
  25. package/dist/app/platform/userInfos/coaching-customer-info/large.js +26 -26
  26. package/dist/app/platform/userInfos/coaching-customer-info/medium.js +26 -26
  27. package/dist/app/platform/userInfos/coaching-customer-info/small.js +25 -25
  28. package/dist/app/platform/userInfos/session-user-info-detail.js +25 -25
  29. package/dist/app/platform/userInfos/utils.js +25 -25
  30. package/dist/atoms/index.js +60 -60
  31. package/dist/{chunk-2REWQIZJ.js → chunk-3G3RPU6Q.js} +7 -7
  32. package/dist/{chunk-YZLPQOH2.js → chunk-4P45P2ZE.js} +10 -10
  33. package/dist/{chunk-K2XSUIM7.js → chunk-4UBN6JY7.js} +3 -3
  34. package/dist/{chunk-SSSGPTRM.js → chunk-5TZNUXBT.js} +4 -4
  35. package/dist/{chunk-KD6EXWP7.js → chunk-62HSZXVT.js} +4 -4
  36. package/dist/{chunk-RFXVHZAN.js → chunk-64XYTE54.js} +4 -4
  37. package/dist/{chunk-QNJ2H7J4.js → chunk-6OKBTWEC.js} +4 -4
  38. package/dist/{chunk-55K447PE.js → chunk-6SQZJN5Y.js} +4 -4
  39. package/dist/{chunk-R4BUPO55.js → chunk-7PZPKTQ4.js} +2 -2
  40. package/dist/{chunk-6UXCNYVO.js → chunk-7R65MUL6.js} +4 -4
  41. package/dist/{chunk-MIATMZDP.js → chunk-AA6OYHCE.js} +4 -4
  42. package/dist/{chunk-VPKWECOE.js → chunk-ADD4KFPG.js} +4 -4
  43. package/dist/{chunk-IZOZGJPW.js → chunk-BYFSYL7V.js} +2 -2
  44. package/dist/{chunk-P6DHFQXU.js → chunk-C6ZC7TXX.js} +3 -3
  45. package/dist/{chunk-4QHXYLE4.js → chunk-CIQ7ELE6.js} +4 -4
  46. package/dist/{chunk-SACH3XVV.js → chunk-F7JSPN5P.js} +4 -4
  47. package/dist/{chunk-CIQ66LY6.js → chunk-FGLOHHYP.js} +7 -7
  48. package/dist/{chunk-KCAOUZCT.js → chunk-GTO7GG2K.js} +2 -2
  49. package/dist/{chunk-BXRTYDSY.js → chunk-GVUXGWAM.js} +16 -16
  50. package/dist/chunk-GVUXGWAM.js.map +1 -0
  51. package/dist/{chunk-MPZJH3PI.js → chunk-HTNDVNLQ.js} +4 -4
  52. package/dist/{chunk-HXLXXCB7.js → chunk-LY7HAQMV.js} +10 -10
  53. package/dist/{chunk-JFJ3N4V5.js → chunk-NTJLECYY.js} +4 -4
  54. package/dist/{chunk-HYMODLGE.js → chunk-NX5ESRCX.js} +4 -4
  55. package/dist/{chunk-SLZNCBSK.js → chunk-O7DAGKLJ.js} +4 -4
  56. package/dist/{chunk-GXG26SHU.js → chunk-OILH5J7Q.js} +4 -4
  57. package/dist/{chunk-S23S57PQ.js → chunk-P4R5JOBT.js} +2 -2
  58. package/dist/{chunk-DKUHYVHC.js → chunk-PW7GCTMS.js} +4 -4
  59. package/dist/{chunk-Q3NPY6DI.js → chunk-QUQSTW5O.js} +7 -7
  60. package/dist/{chunk-3JRHAKLV.js → chunk-RM5CQ77X.js} +7 -7
  61. package/dist/{chunk-QHHD36G7.js → chunk-RNRZ3LV7.js} +4 -4
  62. package/dist/{chunk-YC5XSFKC.js → chunk-SH6FSA7T.js} +9 -9
  63. package/dist/{chunk-MLAQDU6U.js → chunk-XLKJYRFY.js} +37 -7
  64. package/dist/{chunk-MLAQDU6U.js.map → chunk-XLKJYRFY.js.map} +1 -1
  65. package/dist/{chunk-JRSZNGFD.js → chunk-ZA4NYPSW.js} +5 -5
  66. package/dist/context/index.js +1 -1
  67. package/dist/index.cjs +43 -13
  68. package/dist/index.cjs.map +1 -1
  69. package/dist/index.js +112 -112
  70. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/index.js +7 -7
  71. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-body.js +6 -6
  72. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-radio.js +2 -2
  73. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-option.js +2 -2
  74. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-text.js +1 -1
  75. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-text.js +3 -3
  76. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/index.js +10 -10
  77. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/start-review.js +2 -2
  78. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-review.js +11 -11
  79. package/dist/molecules/curriculumV2/CurriculumContents/index.js +12 -12
  80. package/dist/molecules/curriculumV2/CurriculumSidebar/index.js +1 -1
  81. package/dist/molecules/curriculumV2/index.js +13 -13
  82. package/dist/molecules/description-json-render.js +2 -2
  83. package/dist/molecules/dynamic-field.js +3 -3
  84. package/dist/molecules/dynamic-form-editor-field-editor-panel.js +3 -3
  85. package/dist/molecules/dynamic-form-editor-field-list-panel.js +2 -2
  86. package/dist/molecules/dynamic-form-editor-issues-panel.js +2 -2
  87. package/dist/molecules/dynamic-form-editor-preview-panel.js +6 -6
  88. package/dist/molecules/dynamic-form-editor.js +11 -11
  89. package/dist/molecules/dynamic-form.js +4 -4
  90. package/dist/molecules/expand-table/index.js +1 -1
  91. package/dist/molecules/index.cjs +36 -6
  92. package/dist/molecules/index.cjs.map +1 -1
  93. package/dist/molecules/index.js +43 -43
  94. package/dist/molecules/learning-post.js +2 -2
  95. package/dist/molecules/stepper.js +2 -2
  96. package/dist/molecules/tag-selector.js +3 -3
  97. package/dist/molecules/training-info-guideline.cjs +36 -6
  98. package/dist/molecules/training-info-guideline.cjs.map +1 -1
  99. package/dist/molecules/training-info-guideline.js +1 -1
  100. package/package.json +1 -1
  101. package/src/app/platform/contents-card.tsx +5 -5
  102. package/src/molecules/training-info-guideline.tsx +28 -7
  103. package/dist/chunk-BXRTYDSY.js.map +0 -1
  104. /package/dist/{chunk-2REWQIZJ.js.map → chunk-3G3RPU6Q.js.map} +0 -0
  105. /package/dist/{chunk-YZLPQOH2.js.map → chunk-4P45P2ZE.js.map} +0 -0
  106. /package/dist/{chunk-K2XSUIM7.js.map → chunk-4UBN6JY7.js.map} +0 -0
  107. /package/dist/{chunk-SSSGPTRM.js.map → chunk-5TZNUXBT.js.map} +0 -0
  108. /package/dist/{chunk-KD6EXWP7.js.map → chunk-62HSZXVT.js.map} +0 -0
  109. /package/dist/{chunk-RFXVHZAN.js.map → chunk-64XYTE54.js.map} +0 -0
  110. /package/dist/{chunk-QNJ2H7J4.js.map → chunk-6OKBTWEC.js.map} +0 -0
  111. /package/dist/{chunk-55K447PE.js.map → chunk-6SQZJN5Y.js.map} +0 -0
  112. /package/dist/{chunk-R4BUPO55.js.map → chunk-7PZPKTQ4.js.map} +0 -0
  113. /package/dist/{chunk-6UXCNYVO.js.map → chunk-7R65MUL6.js.map} +0 -0
  114. /package/dist/{chunk-MIATMZDP.js.map → chunk-AA6OYHCE.js.map} +0 -0
  115. /package/dist/{chunk-VPKWECOE.js.map → chunk-ADD4KFPG.js.map} +0 -0
  116. /package/dist/{chunk-IZOZGJPW.js.map → chunk-BYFSYL7V.js.map} +0 -0
  117. /package/dist/{chunk-P6DHFQXU.js.map → chunk-C6ZC7TXX.js.map} +0 -0
  118. /package/dist/{chunk-4QHXYLE4.js.map → chunk-CIQ7ELE6.js.map} +0 -0
  119. /package/dist/{chunk-SACH3XVV.js.map → chunk-F7JSPN5P.js.map} +0 -0
  120. /package/dist/{chunk-CIQ66LY6.js.map → chunk-FGLOHHYP.js.map} +0 -0
  121. /package/dist/{chunk-KCAOUZCT.js.map → chunk-GTO7GG2K.js.map} +0 -0
  122. /package/dist/{chunk-MPZJH3PI.js.map → chunk-HTNDVNLQ.js.map} +0 -0
  123. /package/dist/{chunk-HXLXXCB7.js.map → chunk-LY7HAQMV.js.map} +0 -0
  124. /package/dist/{chunk-JFJ3N4V5.js.map → chunk-NTJLECYY.js.map} +0 -0
  125. /package/dist/{chunk-HYMODLGE.js.map → chunk-NX5ESRCX.js.map} +0 -0
  126. /package/dist/{chunk-SLZNCBSK.js.map → chunk-O7DAGKLJ.js.map} +0 -0
  127. /package/dist/{chunk-GXG26SHU.js.map → chunk-OILH5J7Q.js.map} +0 -0
  128. /package/dist/{chunk-S23S57PQ.js.map → chunk-P4R5JOBT.js.map} +0 -0
  129. /package/dist/{chunk-DKUHYVHC.js.map → chunk-PW7GCTMS.js.map} +0 -0
  130. /package/dist/{chunk-Q3NPY6DI.js.map → chunk-QUQSTW5O.js.map} +0 -0
  131. /package/dist/{chunk-3JRHAKLV.js.map → chunk-RM5CQ77X.js.map} +0 -0
  132. /package/dist/{chunk-QHHD36G7.js.map → chunk-RNRZ3LV7.js.map} +0 -0
  133. /package/dist/{chunk-YC5XSFKC.js.map → chunk-SH6FSA7T.js.map} +0 -0
  134. /package/dist/{chunk-JRSZNGFD.js.map → chunk-ZA4NYPSW.js.map} +0 -0
@@ -1,9 +1,15 @@
1
1
  import {
2
2
  DynamicFormEditorFieldEditorPanel
3
- } from "./chunk-2REWQIZJ.js";
3
+ } from "./chunk-3G3RPU6Q.js";
4
4
  import {
5
5
  DynamicFormEditorFieldListPanel
6
- } from "./chunk-6UXCNYVO.js";
6
+ } from "./chunk-7R65MUL6.js";
7
+ import {
8
+ DynamicFormEditorIssuesPanel
9
+ } from "./chunk-AA6OYHCE.js";
10
+ import {
11
+ DynamicFormEditorPreviewPanel
12
+ } from "./chunk-ZA4NYPSW.js";
7
13
  import {
8
14
  createDefaultField,
9
15
  createUniqueFieldName,
@@ -16,12 +22,6 @@ import {
16
22
  updateSchemaFields,
17
23
  validateDynamicFormSchema
18
24
  } from "./chunk-Z7WNKARH.js";
19
- import {
20
- DynamicFormEditorIssuesPanel
21
- } from "./chunk-MIATMZDP.js";
22
- import {
23
- DynamicFormEditorPreviewPanel
24
- } from "./chunk-JRSZNGFD.js";
25
25
  import {
26
26
  Flex
27
27
  } from "./chunk-25HMMI7R.js";
@@ -227,4 +227,4 @@ function DynamicFormEditor(props) {
227
227
  export {
228
228
  DynamicFormEditor
229
229
  };
230
- //# sourceMappingURL=chunk-YC5XSFKC.js.map
230
+ //# sourceMappingURL=chunk-SH6FSA7T.js.map
@@ -156,14 +156,44 @@ function TrainingInfoGuidelineButton({
156
156
  Button,
157
157
  {
158
158
  onClick,
159
- style: { width: "100%", height: "48px", textAlign: "left" },
159
+ style: {
160
+ width: "100%",
161
+ height: "auto",
162
+ minHeight: "48px",
163
+ textAlign: "left",
164
+ paddingTop: 8,
165
+ paddingBottom: 8
166
+ },
160
167
  variant: "outline",
161
168
  children: /* @__PURE__ */ jsxs(Flex, { align: "center", gap: "2", width: "100%", children: [
162
- icon,
163
- /* @__PURE__ */ jsx(Separator, { orientation: "vertical", size: "2" }),
164
- /* @__PURE__ */ jsxs(Box, { children: [
165
- /* @__PURE__ */ jsx(Typo, { as: "div", children: title }),
166
- typeof description === "string" && description !== "" ? /* @__PURE__ */ jsx(Typo, { variant: "caption", children: description }) : null
169
+ /* @__PURE__ */ jsx(Flex, { align: "center", flexShrink: "0", children: icon }),
170
+ /* @__PURE__ */ jsx(Separator, { orientation: "vertical", size: "2", style: { flexShrink: 0 } }),
171
+ /* @__PURE__ */ jsxs(Box, { flexGrow: "1", style: { minWidth: 0 }, children: [
172
+ /* @__PURE__ */ jsx(
173
+ Typo,
174
+ {
175
+ as: "div",
176
+ style: {
177
+ whiteSpace: "normal",
178
+ wordBreak: "break-word",
179
+ overflowWrap: "anywhere"
180
+ },
181
+ children: title
182
+ }
183
+ ),
184
+ typeof description === "string" && description !== "" ? /* @__PURE__ */ jsx(
185
+ Typo,
186
+ {
187
+ style: {
188
+ display: "block",
189
+ whiteSpace: "normal",
190
+ wordBreak: "break-word",
191
+ overflowWrap: "anywhere"
192
+ },
193
+ variant: "caption",
194
+ children: description
195
+ }
196
+ ) : null
167
197
  ] })
168
198
  ] })
169
199
  }
@@ -173,4 +203,4 @@ function TrainingInfoGuidelineButton({
173
203
  export {
174
204
  TrainingInfoGuideline
175
205
  };
176
- //# sourceMappingURL=chunk-MLAQDU6U.js.map
206
+ //# sourceMappingURL=chunk-XLKJYRFY.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/molecules/training-info-guideline.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { FileTextIcon, VideoIcon } from '@radix-ui/react-icons';\nimport { AspectRatio } from '@/atoms/aspect-ratio';\nimport { Button } from '@/atoms/button';\nimport type { TrainingInfoGuidelineContents } from '@/types/training-info-guideline-schema-generated';\nimport { Dialog } from '@/atoms/dialog';\nimport { Spinner } from '@/atoms/spinner';\nimport { Box } from '@/atoms/box';\nimport { Separator } from '@/atoms/separator';\nimport { Typo } from '@/atoms/typo';\nimport { Flex } from '../atoms/flex';\n\nexport interface TrainingInfoGuidelineProps {\n values: TrainingInfoGuidelineContents['values'];\n onClickFileDownload: (args: { url: string; filename: string }) => void;\n}\n\nexport function TrainingInfoGuideline({\n values,\n onClickFileDownload,\n}: TrainingInfoGuidelineProps): React.ReactElement {\n return (\n <>\n {values.map((value) => (\n <TrainingInfoGuidelineItem\n key={getItemKey(value)}\n onClickFileDownload={onClickFileDownload}\n value={value}\n />\n ))}\n </>\n );\n}\n\ntype TrainingInfoGuidelineValue =\n TrainingInfoGuidelineContents['values'][number];\n\nfunction getItemKey(value: TrainingInfoGuidelineValue): string {\n return value.url;\n}\n\ninterface TrainingInfoGuidelineItemProps {\n value: TrainingInfoGuidelineValue;\n onClickFileDownload: TrainingInfoGuidelineProps['onClickFileDownload'];\n}\n\nfunction TrainingInfoGuidelineItem({\n value,\n onClickFileDownload,\n}: TrainingInfoGuidelineItemProps): React.ReactElement | null {\n const [isLoading, setIsLoading] = useState(true);\n\n if (value.type === 'file') {\n return (\n <TrainingInfoGuidelineButton\n description=\"파일 다운로드\"\n icon={<FileTextIcon />}\n onClick={() => {\n onClickFileDownload({ url: value.url, filename: value.filename });\n }}\n title={value.downloadButtonName}\n />\n );\n }\n\n if (value.type === 'youtube-shorts') {\n return (\n <TrainingInfoGuidelineButton\n description=\"TIPP 쇼츠 보기\"\n icon={<VideoIcon />}\n onClick={() => {\n window.open(value.url, '_blank');\n }}\n title={value.title}\n />\n );\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- 차후 다른 타입 추가 시 사용\n if (value.type === 'video') {\n return (\n <Dialog.Root>\n <Dialog.Trigger>\n <TrainingInfoGuidelineButton\n description=\"영상 자료\"\n icon={<VideoIcon />}\n title={value.videoTitle}\n />\n </Dialog.Trigger>\n <Dialog.Content\n height=\"100%\"\n maxHeight=\"500px\"\n maxWidth=\"800px\"\n title={value.videoTitle}\n width=\"100%\"\n >\n <AspectRatio ratio={16 / 9} style={{ width: '100%' }}>\n <Flex\n align=\"center\"\n justify=\"center\"\n style={{\n width: '100%',\n height: '100%',\n backgroundColor: 'black',\n position: 'relative',\n }}\n >\n {isLoading ? (\n <Flex\n align=\"center\"\n height=\"100%\"\n justify=\"center\"\n position=\"absolute\"\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n zIndex: 1,\n color: 'white',\n }}\n width=\"100%\"\n >\n <Spinner size=\"3\" style={{ width: 48, height: 48 }} />\n </Flex>\n ) : null}\n\n <iframe\n allowFullScreen\n onError={() => {\n setIsLoading(false);\n }} // 필요시 에러 메시지로 대체\n onLoad={() => {\n setIsLoading(false);\n }}\n src={`${value.url}?theme=light`}\n style={{ width: '100%', height: '100%', border: 'none' }}\n title=\"Curriculum Video\"\n />\n </Flex>\n </AspectRatio>\n </Dialog.Content>\n </Dialog.Root>\n );\n }\n return null;\n}\n\ninterface TrainingInfoGuidelineButtonProps {\n icon: React.ReactNode;\n title: string;\n description?: string;\n onClick?: () => void;\n}\n\nfunction TrainingInfoGuidelineButton({\n icon,\n title,\n description,\n onClick,\n}: TrainingInfoGuidelineButtonProps): React.ReactElement {\n return (\n <Button\n onClick={onClick}\n style={{ width: '100%', height: '48px' , textAlign: 'left'}}\n variant=\"outline\"\n >\n <Flex align=\"center\" gap=\"2\" width=\"100%\">\n {icon}\n <Separator orientation=\"vertical\" size=\"2\" />\n <Box>\n <Typo as=\"div\">\n {title}\n </Typo>\n {typeof description === 'string' && description !== '' ? (\n <Typo variant=\"caption\" >\n {description}\n </Typo>\n ) : null}\n </Box>\n \n </Flex>\n </Button>\n );\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/molecules/training-info-guideline.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { FileTextIcon, VideoIcon } from '@radix-ui/react-icons';\nimport { AspectRatio } from '@/atoms/aspect-ratio';\nimport { Button } from '@/atoms/button';\nimport type { TrainingInfoGuidelineContents } from '@/types/training-info-guideline-schema-generated';\nimport { Dialog } from '@/atoms/dialog';\nimport { Spinner } from '@/atoms/spinner';\nimport { Box } from '@/atoms/box';\nimport { Separator } from '@/atoms/separator';\nimport { Typo } from '@/atoms/typo';\nimport { Flex } from '../atoms/flex';\n\nexport interface TrainingInfoGuidelineProps {\n values: TrainingInfoGuidelineContents['values'];\n onClickFileDownload: (args: { url: string; filename: string }) => void;\n}\n\nexport function TrainingInfoGuideline({\n values,\n onClickFileDownload,\n}: TrainingInfoGuidelineProps): React.ReactElement {\n return (\n <>\n {values.map((value) => (\n <TrainingInfoGuidelineItem\n key={getItemKey(value)}\n onClickFileDownload={onClickFileDownload}\n value={value}\n />\n ))}\n </>\n );\n}\n\ntype TrainingInfoGuidelineValue =\n TrainingInfoGuidelineContents['values'][number];\n\nfunction getItemKey(value: TrainingInfoGuidelineValue): string {\n return value.url;\n}\n\ninterface TrainingInfoGuidelineItemProps {\n value: TrainingInfoGuidelineValue;\n onClickFileDownload: TrainingInfoGuidelineProps['onClickFileDownload'];\n}\n\nfunction TrainingInfoGuidelineItem({\n value,\n onClickFileDownload,\n}: TrainingInfoGuidelineItemProps): React.ReactElement | null {\n const [isLoading, setIsLoading] = useState(true);\n\n if (value.type === 'file') {\n return (\n <TrainingInfoGuidelineButton\n description=\"파일 다운로드\"\n icon={<FileTextIcon />}\n onClick={() => {\n onClickFileDownload({ url: value.url, filename: value.filename });\n }}\n title={value.downloadButtonName}\n />\n );\n }\n\n if (value.type === 'youtube-shorts') {\n return (\n <TrainingInfoGuidelineButton\n description=\"TIPP 쇼츠 보기\"\n icon={<VideoIcon />}\n onClick={() => {\n window.open(value.url, '_blank');\n }}\n title={value.title}\n />\n );\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- 차후 다른 타입 추가 시 사용\n if (value.type === 'video') {\n return (\n <Dialog.Root>\n <Dialog.Trigger>\n <TrainingInfoGuidelineButton\n description=\"영상 자료\"\n icon={<VideoIcon />}\n title={value.videoTitle}\n />\n </Dialog.Trigger>\n <Dialog.Content\n height=\"100%\"\n maxHeight=\"500px\"\n maxWidth=\"800px\"\n title={value.videoTitle}\n width=\"100%\"\n >\n <AspectRatio ratio={16 / 9} style={{ width: '100%' }}>\n <Flex\n align=\"center\"\n justify=\"center\"\n style={{\n width: '100%',\n height: '100%',\n backgroundColor: 'black',\n position: 'relative',\n }}\n >\n {isLoading ? (\n <Flex\n align=\"center\"\n height=\"100%\"\n justify=\"center\"\n position=\"absolute\"\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n zIndex: 1,\n color: 'white',\n }}\n width=\"100%\"\n >\n <Spinner size=\"3\" style={{ width: 48, height: 48 }} />\n </Flex>\n ) : null}\n\n <iframe\n allowFullScreen\n onError={() => {\n setIsLoading(false);\n }} // 필요시 에러 메시지로 대체\n onLoad={() => {\n setIsLoading(false);\n }}\n src={`${value.url}?theme=light`}\n style={{ width: '100%', height: '100%', border: 'none' }}\n title=\"Curriculum Video\"\n />\n </Flex>\n </AspectRatio>\n </Dialog.Content>\n </Dialog.Root>\n );\n }\n return null;\n}\n\ninterface TrainingInfoGuidelineButtonProps {\n icon: React.ReactNode;\n title: string;\n description?: string;\n onClick?: () => void;\n}\n\nfunction TrainingInfoGuidelineButton({\n icon,\n title,\n description,\n onClick,\n}: TrainingInfoGuidelineButtonProps): React.ReactElement {\n return (\n <Button\n onClick={onClick}\n style={{\n width: '100%',\n height: 'auto',\n minHeight: '48px',\n textAlign: 'left',\n paddingTop: 8,\n paddingBottom: 8,\n }}\n variant=\"outline\"\n >\n <Flex align=\"center\" gap=\"2\" width=\"100%\">\n <Flex align=\"center\" flexShrink=\"0\">{icon}</Flex>\n <Separator orientation=\"vertical\" size=\"2\" style={{ flexShrink: 0 }} />\n <Box flexGrow=\"1\" style={{ minWidth: 0 }}>\n <Typo\n as=\"div\"\n style={{\n whiteSpace: 'normal',\n wordBreak: 'break-word',\n overflowWrap: 'anywhere',\n }}\n >\n {title}\n </Typo>\n {typeof description === 'string' && description !== '' ? (\n <Typo\n style={{\n display: 'block',\n whiteSpace: 'normal',\n wordBreak: 'break-word',\n overflowWrap: 'anywhere',\n }}\n variant=\"caption\"\n >\n {description}\n </Typo>\n ) : null}\n </Box>\n </Flex>\n </Button>\n );\n}\n"],"mappings":"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","names":[]}
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  DynamicForm
3
- } from "./chunk-KCAOUZCT.js";
3
+ } from "./chunk-GTO7GG2K.js";
4
+ import {
5
+ Card
6
+ } from "./chunk-RP2RGCAW.js";
4
7
  import {
5
8
  Typo
6
9
  } from "./chunk-PMJIFLDT.js";
7
10
  import {
8
11
  Flex
9
12
  } from "./chunk-25HMMI7R.js";
10
- import {
11
- Card
12
- } from "./chunk-RP2RGCAW.js";
13
13
 
14
14
  // src/molecules/dynamic-form-editor-preview-panel.tsx
15
15
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -25,4 +25,4 @@ function DynamicFormEditorPreviewPanel(props) {
25
25
  export {
26
26
  DynamicFormEditorPreviewPanel
27
27
  };
28
- //# sourceMappingURL=chunk-JRSZNGFD.js.map
28
+ //# sourceMappingURL=chunk-ZA4NYPSW.js.map
@@ -4,12 +4,12 @@ import {
4
4
  useDynamicForm
5
5
  } from "../chunk-4U6DFH7Z.js";
6
6
  import "../chunk-QDC3LFHS.js";
7
+ import "../chunk-BESTU2AY.js";
7
8
  import {
8
9
  UIStateContext,
9
10
  UIStateProvider,
10
11
  useUIState
11
12
  } from "../chunk-PT57HCAI.js";
12
- import "../chunk-BESTU2AY.js";
13
13
  import "../chunk-PMJIFLDT.js";
14
14
  import "../chunk-LDBWASUA.js";
15
15
  import "../chunk-CRTRMMJ7.js";
package/dist/index.cjs CHANGED
@@ -6527,14 +6527,44 @@ function TrainingInfoGuidelineButton({
6527
6527
  Button,
6528
6528
  {
6529
6529
  onClick,
6530
- style: { width: "100%", height: "48px", textAlign: "left" },
6530
+ style: {
6531
+ width: "100%",
6532
+ height: "auto",
6533
+ minHeight: "48px",
6534
+ textAlign: "left",
6535
+ paddingTop: 8,
6536
+ paddingBottom: 8
6537
+ },
6531
6538
  variant: "outline",
6532
6539
  children: /* @__PURE__ */ (0, import_jsx_runtime93.jsxs)(import_themes22.Flex, { align: "center", gap: "2", width: "100%", children: [
6533
- icon,
6534
- /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(import_themes39.Separator, { orientation: "vertical", size: "2" }),
6535
- /* @__PURE__ */ (0, import_jsx_runtime93.jsxs)(import_themes6.Box, { children: [
6536
- /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(Typo, { as: "div", children: title }),
6537
- typeof description === "string" && description !== "" ? /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(Typo, { variant: "caption", children: description }) : null
6540
+ /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(import_themes22.Flex, { align: "center", flexShrink: "0", children: icon }),
6541
+ /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(import_themes39.Separator, { orientation: "vertical", size: "2", style: { flexShrink: 0 } }),
6542
+ /* @__PURE__ */ (0, import_jsx_runtime93.jsxs)(import_themes6.Box, { flexGrow: "1", style: { minWidth: 0 }, children: [
6543
+ /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(
6544
+ Typo,
6545
+ {
6546
+ as: "div",
6547
+ style: {
6548
+ whiteSpace: "normal",
6549
+ wordBreak: "break-word",
6550
+ overflowWrap: "anywhere"
6551
+ },
6552
+ children: title
6553
+ }
6554
+ ),
6555
+ typeof description === "string" && description !== "" ? /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(
6556
+ Typo,
6557
+ {
6558
+ style: {
6559
+ display: "block",
6560
+ whiteSpace: "normal",
6561
+ wordBreak: "break-word",
6562
+ overflowWrap: "anywhere"
6563
+ },
6564
+ variant: "caption",
6565
+ children: description
6566
+ }
6567
+ ) : null
6538
6568
  ] })
6539
6569
  ] })
6540
6570
  }
@@ -9281,25 +9311,25 @@ var ContentsCard = (0, import_react59.forwardRef)(
9281
9311
  height: "100%",
9282
9312
  width: "100%",
9283
9313
  display: "grid",
9284
- cursor: "pointer",
9285
- maxHeight: "450px"
9314
+ cursor: "pointer"
9286
9315
  },
9287
9316
  children: [
9288
9317
  /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(import_themes25.Inset, { clip: "padding-box", pb: "0", side: "top", children: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(import_themes40.Skeleton, { loading: isLoading, children: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
9289
9318
  import_themes6.Box,
9290
9319
  {
9291
- height: "210px",
9292
9320
  style: {
9321
+ aspectRatio: "704 / 407",
9293
9322
  backgroundImage: `url(${imageSrc})`,
9294
9323
  backgroundSize: "cover",
9295
- backgroundPosition: "center"
9324
+ backgroundPosition: "center",
9325
+ backgroundRepeat: "no-repeat"
9296
9326
  },
9297
9327
  width: "100%"
9298
9328
  }
9299
9329
  ) }) }),
9300
- /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(import_themes22.Flex, { direction: "column", p: "4", pb: "3", children: [
9330
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(import_themes22.Flex, { direction: "column", pb: "4", px: "3", py: "4", children: [
9301
9331
  /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(import_themes6.Box, { children: [
9302
- /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(import_themes40.Skeleton, { loading: isLoading, children: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Heading2, { mb: "3", variant: "heading5", children: title }) }),
9332
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(import_themes40.Skeleton, { loading: isLoading, children: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Heading2, { variant: "heading5", children: title }) }),
9303
9333
  /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(import_themes40.Skeleton, { loading: isLoading, children: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Typo, { as: "p", variant: "caption", children: description }) })
9304
9334
  ] }),
9305
9335
  /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(
@@ -9308,7 +9338,7 @@ var ContentsCard = (0, import_react59.forwardRef)(
9308
9338
  align: "center",
9309
9339
  columns: "1fr auto",
9310
9340
  justify: "between",
9311
- pt: "2",
9341
+ pt: "4",
9312
9342
  style: { marginTop: "auto" },
9313
9343
  width: "100%",
9314
9344
  children: [