@tipp/ui 2.3.17 → 2.3.18

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 (270) hide show
  1. package/dist/app/index.cjs +200 -195
  2. package/dist/app/index.cjs.map +1 -1
  3. package/dist/app/index.js +94 -93
  4. package/dist/app/platform/coach-question-list.js +29 -29
  5. package/dist/app/platform/contents-card.js +29 -29
  6. package/dist/app/platform/curriculum-card.js +6 -6
  7. package/dist/app/platform/edit-coaching-time.cjs +29 -24
  8. package/dist/app/platform/edit-coaching-time.cjs.map +1 -1
  9. package/dist/app/platform/edit-coaching-time.js +72 -71
  10. package/dist/app/platform/edit-service-type.cjs +25 -20
  11. package/dist/app/platform/edit-service-type.cjs.map +1 -1
  12. package/dist/app/platform/edit-service-type.js +73 -72
  13. package/dist/app/platform/goal-manage-card-edit.cjs +32 -27
  14. package/dist/app/platform/goal-manage-card-edit.cjs.map +1 -1
  15. package/dist/app/platform/goal-manage-card-edit.js +72 -71
  16. package/dist/app/platform/goal-manage-card-read.js +29 -29
  17. package/dist/app/platform/on-offline-radio-card.cjs +38 -33
  18. package/dist/app/platform/on-offline-radio-card.cjs.map +1 -1
  19. package/dist/app/platform/on-offline-radio-card.js +72 -71
  20. package/dist/app/platform/report-card.js +29 -29
  21. package/dist/app/platform/reservation-card.cjs +48 -43
  22. package/dist/app/platform/reservation-card.cjs.map +1 -1
  23. package/dist/app/platform/reservation-card.js +73 -72
  24. package/dist/app/platform/session-card.cjs +75 -70
  25. package/dist/app/platform/session-card.cjs.map +1 -1
  26. package/dist/app/platform/session-card.js +75 -74
  27. package/dist/app/platform/session-review-simple-read.js +29 -29
  28. package/dist/app/platform/userInfos/coaching-customer-info/index.js +32 -32
  29. package/dist/app/platform/userInfos/coaching-customer-info/large.js +29 -29
  30. package/dist/app/platform/userInfos/coaching-customer-info/medium.js +29 -29
  31. package/dist/app/platform/userInfos/coaching-customer-info/small.js +29 -29
  32. package/dist/app/platform/userInfos/session-user-info-detail.js +29 -29
  33. package/dist/app/platform/userInfos/utils.js +28 -28
  34. package/dist/atoms/bullet-text.js +2 -2
  35. package/dist/atoms/dialog.js +2 -2
  36. package/dist/atoms/field-error-wrapper.js +2 -2
  37. package/dist/atoms/index.js +62 -62
  38. package/dist/atoms/list.js +2 -2
  39. package/dist/atoms/pagination.js +3 -3
  40. package/dist/chunk-2O2CKXEZ.js +69 -0
  41. package/dist/chunk-2O2CKXEZ.js.map +1 -0
  42. package/dist/chunk-2VFMVVWT.js +63 -0
  43. package/dist/chunk-2VFMVVWT.js.map +1 -0
  44. package/dist/chunk-2XNMU67K.js +69 -0
  45. package/dist/chunk-2XNMU67K.js.map +1 -0
  46. package/dist/chunk-2YBJBKBB.js +82 -0
  47. package/dist/chunk-2YBJBKBB.js.map +1 -0
  48. package/dist/chunk-367ZYIOP.js +89 -0
  49. package/dist/chunk-367ZYIOP.js.map +1 -0
  50. package/dist/chunk-3A45CD76.js +196 -0
  51. package/dist/chunk-3A45CD76.js.map +1 -0
  52. package/dist/chunk-4JYSUW7I.js +151 -0
  53. package/dist/chunk-4JYSUW7I.js.map +1 -0
  54. package/dist/chunk-5TPNUG3Y.js +63 -0
  55. package/dist/chunk-5TPNUG3Y.js.map +1 -0
  56. package/dist/chunk-64JB2NO2.js +51 -0
  57. package/dist/chunk-64JB2NO2.js.map +1 -0
  58. package/dist/chunk-6F63WEDJ.js +63 -0
  59. package/dist/chunk-6F63WEDJ.js.map +1 -0
  60. package/dist/chunk-6UCGUA3B.js +30 -0
  61. package/dist/chunk-6UCGUA3B.js.map +1 -0
  62. package/dist/chunk-7IFK5DP5.js +69 -0
  63. package/dist/chunk-7IFK5DP5.js.map +1 -0
  64. package/dist/chunk-7QDV6YRH.js +196 -0
  65. package/dist/chunk-7QDV6YRH.js.map +1 -0
  66. package/dist/chunk-7XG4CK7Y.js +89 -0
  67. package/dist/chunk-7XG4CK7Y.js.map +1 -0
  68. package/dist/chunk-A5VFSD3T.js +129 -0
  69. package/dist/chunk-A5VFSD3T.js.map +1 -0
  70. package/dist/chunk-B5U2JBLX.js +87 -0
  71. package/dist/chunk-B5U2JBLX.js.map +1 -0
  72. package/dist/chunk-BDJUL3JV.js +50 -0
  73. package/dist/chunk-BDJUL3JV.js.map +1 -0
  74. package/dist/chunk-BI5GANUG.js +75 -0
  75. package/dist/chunk-BI5GANUG.js.map +1 -0
  76. package/dist/chunk-BV3ZL4VC.js +196 -0
  77. package/dist/chunk-BV3ZL4VC.js.map +1 -0
  78. package/dist/chunk-BWWSZLTV.js +43 -0
  79. package/dist/chunk-BWWSZLTV.js.map +1 -0
  80. package/dist/chunk-C5MM3PUD.js +89 -0
  81. package/dist/chunk-C5MM3PUD.js.map +1 -0
  82. package/dist/chunk-C5YDIFWN.js +129 -0
  83. package/dist/chunk-C5YDIFWN.js.map +1 -0
  84. package/dist/chunk-CC4LSJRN.js +144 -0
  85. package/dist/chunk-CC4LSJRN.js.map +1 -0
  86. package/dist/chunk-CIQ7ELE6.js +151 -0
  87. package/dist/chunk-CIQ7ELE6.js.map +1 -0
  88. package/dist/chunk-CSLHE7O6.js +196 -0
  89. package/dist/chunk-CSLHE7O6.js.map +1 -0
  90. package/dist/chunk-CTCLKPUM.js +50 -0
  91. package/dist/chunk-CTCLKPUM.js.map +1 -0
  92. package/dist/chunk-DEAVEZQM.js +1 -0
  93. package/dist/chunk-DEAVEZQM.js.map +1 -0
  94. package/dist/chunk-ENVZEWF6.js +98 -0
  95. package/dist/chunk-ENVZEWF6.js.map +1 -0
  96. package/dist/chunk-FSJP6HQY.js +49 -0
  97. package/dist/chunk-FSJP6HQY.js.map +1 -0
  98. package/dist/chunk-FVAZZ46M.js +69 -0
  99. package/dist/chunk-FVAZZ46M.js.map +1 -0
  100. package/dist/chunk-H6UISOMV.js +50 -0
  101. package/dist/chunk-H6UISOMV.js.map +1 -0
  102. package/dist/chunk-HZ5LNRVL.js +101 -0
  103. package/dist/chunk-HZ5LNRVL.js.map +1 -0
  104. package/dist/chunk-I25D6CHU.js +50 -0
  105. package/dist/chunk-I25D6CHU.js.map +1 -0
  106. package/dist/chunk-IF4Q5NV4.js +129 -0
  107. package/dist/chunk-IF4Q5NV4.js.map +1 -0
  108. package/dist/chunk-IYVNZW3B.js +196 -0
  109. package/dist/chunk-IYVNZW3B.js.map +1 -0
  110. package/dist/chunk-J6D5FMYR.js +75 -0
  111. package/dist/chunk-J6D5FMYR.js.map +1 -0
  112. package/dist/chunk-JGM5HN2L.js +69 -0
  113. package/dist/chunk-JGM5HN2L.js.map +1 -0
  114. package/dist/chunk-KJC6WEFI.js +75 -0
  115. package/dist/chunk-KJC6WEFI.js.map +1 -0
  116. package/dist/chunk-LEIPUJCQ.js +75 -0
  117. package/dist/chunk-LEIPUJCQ.js.map +1 -0
  118. package/dist/chunk-LJO2266G.js +64 -0
  119. package/dist/chunk-LJO2266G.js.map +1 -0
  120. package/dist/chunk-LPOX4NKE.js +29 -0
  121. package/dist/chunk-LPOX4NKE.js.map +1 -0
  122. package/dist/chunk-M2DLW32Z.js +77 -0
  123. package/dist/chunk-M2DLW32Z.js.map +1 -0
  124. package/dist/chunk-N662YJXY.js +69 -0
  125. package/dist/chunk-N662YJXY.js.map +1 -0
  126. package/dist/chunk-N6LOS7L5.js +89 -0
  127. package/dist/chunk-N6LOS7L5.js.map +1 -0
  128. package/dist/chunk-NCCAFJJR.js +83 -0
  129. package/dist/chunk-NCCAFJJR.js.map +1 -0
  130. package/dist/chunk-NFI7WDJS.js +50 -0
  131. package/dist/chunk-NFI7WDJS.js.map +1 -0
  132. package/dist/chunk-NTJLECYY.js +37 -0
  133. package/dist/chunk-NTJLECYY.js.map +1 -0
  134. package/dist/chunk-NTWHDYJV.js +89 -0
  135. package/dist/chunk-NTWHDYJV.js.map +1 -0
  136. package/dist/chunk-NVQSH733.js +51 -0
  137. package/dist/chunk-NVQSH733.js.map +1 -0
  138. package/dist/chunk-ODHH7CFR.js +196 -0
  139. package/dist/chunk-ODHH7CFR.js.map +1 -0
  140. package/dist/chunk-OILH5J7Q.js +101 -0
  141. package/dist/chunk-OILH5J7Q.js.map +1 -0
  142. package/dist/chunk-OX5XYAZM.js +37 -0
  143. package/dist/chunk-OX5XYAZM.js.map +1 -0
  144. package/dist/chunk-P76FTCUF.js +64 -0
  145. package/dist/chunk-P76FTCUF.js.map +1 -0
  146. package/dist/chunk-PF3LVPOZ.js +87 -0
  147. package/dist/chunk-PF3LVPOZ.js.map +1 -0
  148. package/dist/chunk-PWF22OOK.js +64 -0
  149. package/dist/chunk-PWF22OOK.js.map +1 -0
  150. package/dist/chunk-QU5M7KZM.js +50 -0
  151. package/dist/chunk-QU5M7KZM.js.map +1 -0
  152. package/dist/chunk-RWK6HLWM.js +75 -0
  153. package/dist/chunk-RWK6HLWM.js.map +1 -0
  154. package/dist/chunk-RYEEDHML.js +64 -0
  155. package/dist/chunk-RYEEDHML.js.map +1 -0
  156. package/dist/chunk-SQIJY72J.js +69 -0
  157. package/dist/chunk-SQIJY72J.js.map +1 -0
  158. package/dist/chunk-SZ73GYOE.js +98 -0
  159. package/dist/chunk-SZ73GYOE.js.map +1 -0
  160. package/dist/chunk-TQ5AJKUH.js +64 -0
  161. package/dist/chunk-TQ5AJKUH.js.map +1 -0
  162. package/dist/chunk-UGCYMUQ4.js +89 -0
  163. package/dist/chunk-UGCYMUQ4.js.map +1 -0
  164. package/dist/chunk-UK7J2BOO.js +83 -0
  165. package/dist/chunk-UK7J2BOO.js.map +1 -0
  166. package/dist/chunk-V4GNPLLT.js +69 -0
  167. package/dist/chunk-V4GNPLLT.js.map +1 -0
  168. package/dist/chunk-VKMRA55P.js +144 -0
  169. package/dist/chunk-VKMRA55P.js.map +1 -0
  170. package/dist/chunk-VLGR5PZX.js +1 -0
  171. package/dist/chunk-VLGR5PZX.js.map +1 -0
  172. package/dist/chunk-VQGBP3JY.js +50 -0
  173. package/dist/chunk-VQGBP3JY.js.map +1 -0
  174. package/dist/chunk-WV4WWBKN.js +69 -0
  175. package/dist/chunk-WV4WWBKN.js.map +1 -0
  176. package/dist/chunk-X3J2UNWS.js +69 -0
  177. package/dist/chunk-X3J2UNWS.js.map +1 -0
  178. package/dist/chunk-X67ER3JU.js +69 -0
  179. package/dist/chunk-X67ER3JU.js.map +1 -0
  180. package/dist/chunk-X732NUWY.js +50 -0
  181. package/dist/chunk-X732NUWY.js.map +1 -0
  182. package/dist/chunk-X7QZ46BZ.js +63 -0
  183. package/dist/chunk-X7QZ46BZ.js.map +1 -0
  184. package/dist/chunk-XDPD6IWK.js +89 -0
  185. package/dist/chunk-XDPD6IWK.js.map +1 -0
  186. package/dist/chunk-XKWY6ZQM.js +196 -0
  187. package/dist/chunk-XKWY6ZQM.js.map +1 -0
  188. package/dist/chunk-XW3D3GLY.js +113 -0
  189. package/dist/chunk-XW3D3GLY.js.map +1 -0
  190. package/dist/chunk-Y6BK7ABB.js +1 -0
  191. package/dist/chunk-Y6BK7ABB.js.map +1 -0
  192. package/dist/chunk-Z2XF3EO2.js +75 -0
  193. package/dist/chunk-Z2XF3EO2.js.map +1 -0
  194. package/dist/chunk-ZFEXH655.js +144 -0
  195. package/dist/chunk-ZFEXH655.js.map +1 -0
  196. package/dist/context/index.js +5 -5
  197. package/dist/index.cjs +394 -283
  198. package/dist/index.cjs.map +1 -1
  199. package/dist/index.d.cts +2 -0
  200. package/dist/index.d.ts +2 -0
  201. package/dist/index.js +156 -151
  202. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/index.js +16 -16
  203. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-comp.js +4 -4
  204. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-body.js +9 -9
  205. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-footer.js +2 -2
  206. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-header.js +3 -3
  207. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-layout.js +2 -2
  208. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-radio.js +5 -5
  209. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-option.js +5 -5
  210. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-text.js +5 -5
  211. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-text.js +5 -5
  212. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/complete-review.js +4 -4
  213. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/index.js +20 -20
  214. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/start-review.js +6 -6
  215. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-ai-traning.js +3 -3
  216. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-file-download.js +3 -3
  217. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-review.js +22 -22
  218. package/dist/molecules/curriculumV2/CurriculumContents/index.js +26 -26
  219. package/dist/molecules/curriculumV2/CurriculumSidebar/Items/curriculum-item-title.js +2 -2
  220. package/dist/molecules/curriculumV2/CurriculumSidebar/Items/section-item.js +4 -4
  221. package/dist/molecules/curriculumV2/CurriculumSidebar/index.js +8 -8
  222. package/dist/molecules/curriculumV2/CurriculumSidebar/sidebar-item.js +5 -5
  223. package/dist/molecules/curriculumV2/curriculum-sub-nav.js +4 -4
  224. package/dist/molecules/curriculumV2/curriculum-v2-layout.js +2 -2
  225. package/dist/molecules/curriculumV2/index.js +37 -37
  226. package/dist/molecules/date-picker/date-picker-button.js +6 -6
  227. package/dist/molecules/date-picker/index.js +5 -5
  228. package/dist/molecules/description-json-render.js +5 -5
  229. package/dist/molecules/download-card.js +2 -2
  230. package/dist/molecules/dynamic-field.js +5 -5
  231. package/dist/molecules/dynamic-form.js +6 -6
  232. package/dist/molecules/expand-table/index.js +4 -4
  233. package/dist/molecules/force-refresh.js +2 -2
  234. package/dist/molecules/ghost-post.js +4 -4
  235. package/dist/molecules/index.cjs +111 -0
  236. package/dist/molecules/index.cjs.map +1 -1
  237. package/dist/molecules/index.d.cts +2 -0
  238. package/dist/molecules/index.d.ts +2 -0
  239. package/dist/molecules/index.js +73 -69
  240. package/dist/molecules/learning-post.js +5 -5
  241. package/dist/molecules/navigation.js +3 -3
  242. package/dist/molecules/one-on-one-guide-list.js +3 -3
  243. package/dist/molecules/stepper.js +4 -4
  244. package/dist/molecules/tag-selector.js +5 -5
  245. package/dist/molecules/training-info-guideline.cjs +508 -0
  246. package/dist/molecules/training-info-guideline.cjs.map +1 -0
  247. package/dist/molecules/training-info-guideline.d.cts +13 -0
  248. package/dist/molecules/training-info-guideline.d.ts +13 -0
  249. package/dist/molecules/training-info-guideline.js +19 -0
  250. package/dist/molecules/training-info-guideline.js.map +1 -0
  251. package/dist/types/curriculumContents.type.cjs.map +1 -1
  252. package/dist/types/dynamic-form-schema-generated.cjs.map +1 -1
  253. package/dist/types/index.cjs.map +1 -1
  254. package/dist/types/index.d.cts +1 -0
  255. package/dist/types/index.d.ts +1 -0
  256. package/dist/types/index.js +2 -1
  257. package/dist/types/training-info-guideline-schema-generated.cjs +19 -0
  258. package/dist/types/training-info-guideline-schema-generated.cjs.map +1 -0
  259. package/dist/types/training-info-guideline-schema-generated.d.cts +22 -0
  260. package/dist/types/training-info-guideline-schema-generated.d.ts +22 -0
  261. package/dist/types/training-info-guideline-schema-generated.js +2 -0
  262. package/dist/types/training-info-guideline-schema-generated.js.map +1 -0
  263. package/package.json +2 -2
  264. package/src/constrant/training-info-guideline.schema.json +45 -0
  265. package/src/molecules/index.ts +2 -1
  266. package/src/molecules/training-info-guideline.tsx +130 -0
  267. package/src/types/curriculumContents.type.ts +1 -0
  268. package/src/types/dynamic-form-schema-generated.ts +1 -0
  269. package/src/types/index.ts +1 -0
  270. package/src/types/training-info-guideline-schema-generated.ts +23 -0
@@ -0,0 +1,508 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __defProps = Object.defineProperties;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
7
+ var __getOwnPropNames = Object.getOwnPropertyNames;
8
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
9
+ var __getProtoOf = Object.getPrototypeOf;
10
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
11
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
12
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13
+ var __spreadValues = (a, b) => {
14
+ for (var prop in b || (b = {}))
15
+ if (__hasOwnProp.call(b, prop))
16
+ __defNormalProp(a, prop, b[prop]);
17
+ if (__getOwnPropSymbols)
18
+ for (var prop of __getOwnPropSymbols(b)) {
19
+ if (__propIsEnum.call(b, prop))
20
+ __defNormalProp(a, prop, b[prop]);
21
+ }
22
+ return a;
23
+ };
24
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
25
+ var __objRest = (source, exclude) => {
26
+ var target = {};
27
+ for (var prop in source)
28
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
29
+ target[prop] = source[prop];
30
+ if (source != null && __getOwnPropSymbols)
31
+ for (var prop of __getOwnPropSymbols(source)) {
32
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
33
+ target[prop] = source[prop];
34
+ }
35
+ return target;
36
+ };
37
+ var __export = (target, all) => {
38
+ for (var name in all)
39
+ __defProp(target, name, { get: all[name], enumerable: true });
40
+ };
41
+ var __copyProps = (to, from, except, desc) => {
42
+ if (from && typeof from === "object" || typeof from === "function") {
43
+ for (let key of __getOwnPropNames(from))
44
+ if (!__hasOwnProp.call(to, key) && key !== except)
45
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
46
+ }
47
+ return to;
48
+ };
49
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
50
+ // If the importer is in node compatibility mode or this is not an ESM
51
+ // file that has been converted to a CommonJS file using a Babel-
52
+ // compatible transform (i.e. "__esModule" has not been set), then set
53
+ // "default" to the CommonJS "module.exports" for node compatibility.
54
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
55
+ mod
56
+ ));
57
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
58
+
59
+ // src/molecules/training-info-guideline.tsx
60
+ var training_info_guideline_exports = {};
61
+ __export(training_info_guideline_exports, {
62
+ TrainingInfoGuideline: () => TrainingInfoGuideline
63
+ });
64
+ module.exports = __toCommonJS(training_info_guideline_exports);
65
+ var import_react6 = require("react");
66
+ var import_react_icons2 = require("@radix-ui/react-icons");
67
+
68
+ // src/atoms/aspect-ratio.tsx
69
+ var import_themes = require("@radix-ui/themes");
70
+
71
+ // src/atoms/button.tsx
72
+ var import_react = require("react");
73
+ var import_themes2 = require("@radix-ui/themes");
74
+ var import_clsx = require("clsx");
75
+
76
+ // src/utils/convert-button-size.ts
77
+ var convertSizeStr = (size) => {
78
+ switch (size) {
79
+ case "small":
80
+ return "1";
81
+ case "medium":
82
+ return "2";
83
+ case "large":
84
+ return "3";
85
+ default:
86
+ return "2";
87
+ }
88
+ };
89
+ var convertSizeResponse = (size) => {
90
+ if (typeof size === "string" || typeof size === "undefined") {
91
+ return convertSizeStr(size);
92
+ }
93
+ const radixSize = {};
94
+ let key = "initial";
95
+ for (key in size) {
96
+ radixSize[key] = convertSizeStr(size[key]);
97
+ }
98
+ return radixSize;
99
+ };
100
+ var convertSize = (size) => {
101
+ if (typeof size === "string") {
102
+ return convertSizeStr(size);
103
+ }
104
+ return convertSizeResponse(size);
105
+ };
106
+
107
+ // src/atoms/button.tsx
108
+ var import_jsx_runtime = require("react/jsx-runtime");
109
+ var Button = (0, import_react.forwardRef)(
110
+ (props, ref) => {
111
+ const _a = props, { size, style, variant } = _a, restProps = __objRest(_a, ["size", "style", "variant"]);
112
+ const radixSize = (0, import_react.useMemo)(() => {
113
+ return convertSize(size);
114
+ }, [size]);
115
+ const radixVariant = (0, import_react.useMemo)(() => {
116
+ if (variant === "transparent") return "ghost";
117
+ return variant;
118
+ }, [variant]);
119
+ const className = (0, import_react.useMemo)(() => {
120
+ return (0, import_clsx.clsx)(props.className, { transparent: variant === "transparent" });
121
+ }, [props.className, variant]);
122
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
123
+ import_themes2.Button,
124
+ __spreadProps(__spreadValues({
125
+ style,
126
+ type: "button",
127
+ variant: radixVariant
128
+ }, restProps), {
129
+ className,
130
+ ref,
131
+ size: radixSize
132
+ })
133
+ );
134
+ }
135
+ );
136
+ Button.displayName = "Button";
137
+
138
+ // src/atoms/dialog.tsx
139
+ var RadixDialog = __toESM(require("@radix-ui/react-dialog"), 1);
140
+ var import_react_icons = require("@radix-ui/react-icons");
141
+ var import_themes6 = require("@radix-ui/themes");
142
+ var import_react5 = require("react");
143
+
144
+ // src/theme/portal-provider.tsx
145
+ var import_react2 = require("react");
146
+ var import_jsx_runtime2 = require("react/jsx-runtime");
147
+ var PortalContext = (0, import_react2.createContext)(
148
+ null
149
+ );
150
+ var usePortalContainer = () => {
151
+ try {
152
+ const state = (0, import_react2.useContext)(PortalContext);
153
+ return state;
154
+ } catch (error) {
155
+ throw new Error("PortalProvider not found");
156
+ }
157
+ };
158
+
159
+ // src/atoms/heading.tsx
160
+ var import_themes3 = require("@radix-ui/themes");
161
+ var import_react3 = require("react");
162
+
163
+ // src/utils/map-with-responsive.ts
164
+ var mapWithResponsive = (args) => {
165
+ const { value, mapFn } = args;
166
+ if (typeof value === "string") {
167
+ return mapFn(value);
168
+ }
169
+ ;
170
+ if (typeof value === "object") {
171
+ const newObj = {};
172
+ let key;
173
+ for (key in value) {
174
+ newObj[key] = mapFn(value[key]);
175
+ }
176
+ return newObj;
177
+ }
178
+ return value;
179
+ };
180
+
181
+ // src/atoms/heading.tsx
182
+ var import_themes4 = require("@radix-ui/themes");
183
+ var import_jsx_runtime3 = require("react/jsx-runtime");
184
+ var mapVariant = (variant) => {
185
+ switch (variant) {
186
+ case "heading1":
187
+ return "7";
188
+ case "heading2":
189
+ return "6";
190
+ case "heading3":
191
+ return "5";
192
+ case "heading4":
193
+ return "4";
194
+ case "heading5":
195
+ return "3";
196
+ default:
197
+ return void 0;
198
+ }
199
+ };
200
+ function Heading2(props) {
201
+ const _a = props, { size, children, variant } = _a, rest = __objRest(_a, ["size", "children", "variant"]);
202
+ const radixSize = (0, import_react3.useMemo)(() => {
203
+ return variant ? mapWithResponsive({
204
+ value: variant,
205
+ mapFn: mapVariant
206
+ }) : size;
207
+ }, [size, variant]);
208
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_themes3.Heading, __spreadProps(__spreadValues({}, rest), { size: radixSize, children }));
209
+ }
210
+
211
+ // src/atoms/icon-button.tsx
212
+ var import_react4 = require("react");
213
+ var import_clsx2 = require("clsx");
214
+ var import_themes5 = require("@radix-ui/themes");
215
+
216
+ // src/utils/convert-icon-button-size.ts
217
+ var convertSizeStr2 = (size) => {
218
+ switch (size) {
219
+ case "small":
220
+ return "1";
221
+ case "medium":
222
+ return "2";
223
+ case "large":
224
+ return "4";
225
+ default:
226
+ return "2";
227
+ }
228
+ };
229
+ var convertSizeResponse2 = (size) => {
230
+ if (typeof size === "string" || typeof size === "undefined") {
231
+ return convertSizeStr2(size);
232
+ }
233
+ const radixSize = {};
234
+ let key = "initial";
235
+ for (key in size) {
236
+ radixSize[key] = convertSizeStr2(size[key]);
237
+ }
238
+ return radixSize;
239
+ };
240
+ var convertSize2 = (size) => {
241
+ if (typeof size === "string") {
242
+ return convertSizeStr2(size);
243
+ }
244
+ return convertSizeResponse2(size);
245
+ };
246
+
247
+ // src/atoms/icon-button.tsx
248
+ var import_jsx_runtime4 = require("react/jsx-runtime");
249
+ var IconButton = (0, import_react4.forwardRef)(
250
+ (props, ref) => {
251
+ const _a = props, { size, style, variant } = _a, restProps = __objRest(_a, ["size", "style", "variant"]);
252
+ const radixSize = (0, import_react4.useMemo)(() => {
253
+ return convertSize2(size);
254
+ }, [size]);
255
+ const radixVariant = (0, import_react4.useMemo)(() => {
256
+ if (variant === "transparent") return "ghost";
257
+ return variant;
258
+ }, [variant]);
259
+ const className = (0, import_react4.useMemo)(() => {
260
+ return (0, import_clsx2.clsx)(props.className, { transparent: variant === "transparent" });
261
+ }, [props.className, variant]);
262
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
263
+ import_themes5.IconButton,
264
+ __spreadProps(__spreadValues({
265
+ style,
266
+ type: "button",
267
+ variant: radixVariant
268
+ }, restProps), {
269
+ className,
270
+ ref,
271
+ size: radixSize
272
+ })
273
+ );
274
+ }
275
+ );
276
+ IconButton.displayName = "IconButton";
277
+
278
+ // src/atoms/dialog.tsx
279
+ var import_jsx_runtime5 = require("react/jsx-runtime");
280
+ var preventDefault = (e) => {
281
+ e.preventDefault();
282
+ };
283
+ function Content2(props) {
284
+ const _a = props, {
285
+ children,
286
+ style = {},
287
+ width,
288
+ maxWidth,
289
+ minWidth,
290
+ maxHeight,
291
+ height,
292
+ minHeight,
293
+ title,
294
+ buttons,
295
+ size,
296
+ hideCloseButton,
297
+ className
298
+ } = _a, rest = __objRest(_a, [
299
+ "children",
300
+ "style",
301
+ "width",
302
+ "maxWidth",
303
+ "minWidth",
304
+ "maxHeight",
305
+ "height",
306
+ "minHeight",
307
+ "title",
308
+ "buttons",
309
+ "size",
310
+ "hideCloseButton",
311
+ "className"
312
+ ]);
313
+ const { dialogContainerRef } = usePortalContainer();
314
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(RadixDialog.Portal, { container: dialogContainerRef.current, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_themes6.Theme, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(RadixDialog.Overlay, { className: "rt-BaseDialogScroll rt-DialogScroll DialogOverlay", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
315
+ RadixDialog.Content,
316
+ __spreadProps(__spreadValues({
317
+ className: `DialogContent ${className || ""} rt-BaseDialogContent rt-DialogContent rt-r-size-${size || "3"}`,
318
+ onPointerDownOutside: preventDefault,
319
+ style: __spreadValues({
320
+ width,
321
+ maxWidth,
322
+ minWidth,
323
+ maxHeight,
324
+ height,
325
+ minHeight
326
+ }, style)
327
+ }, rest), {
328
+ children: [
329
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_themes6.Flex, { gap: "2", justify: "between", width: "100%", children: [
330
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(RadixDialog.Title, { asChild: true, children: typeof title === "string" && title !== "" ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Heading2, { mb: "2", variant: "heading3", children: title }) : title }),
331
+ !hideCloseButton && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(RadixDialog.Close, { asChild: true, className: "DialogClose", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(IconButton, { color: "gray", variant: "ghost", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react_icons.Cross1Icon, {}) }) })
332
+ ] }),
333
+ children,
334
+ buttons ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_themes6.Flex, { gap: "3", justify: "end", mt: "3", width: "100%", children: buttons }) : null
335
+ ]
336
+ })
337
+ ) }) }) });
338
+ }
339
+ function Close2(_a) {
340
+ var _b = _a, {
341
+ children
342
+ } = _b, rest = __objRest(_b, [
343
+ "children"
344
+ ]);
345
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(RadixDialog.Close, __spreadProps(__spreadValues({ asChild: true }, rest), { children }));
346
+ }
347
+ function Trigger2(_a) {
348
+ var _b = _a, {
349
+ children
350
+ } = _b, rest = __objRest(_b, [
351
+ "children"
352
+ ]);
353
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(RadixDialog.Trigger, __spreadProps(__spreadValues({ asChild: true }, rest), { children }));
354
+ }
355
+ function Root2(props) {
356
+ const prevOpenRef = (0, import_react5.useRef)(void 0);
357
+ const cleanupExecutedRef = (0, import_react5.useRef)(false);
358
+ (0, import_react5.useEffect)(() => {
359
+ const prevOpen = prevOpenRef.current;
360
+ const currentOpen = props.open;
361
+ if (prevOpen === true && currentOpen === false && !cleanupExecutedRef.current) {
362
+ cleanupExecutedRef.current = true;
363
+ const timer = setTimeout(() => {
364
+ var _a;
365
+ try {
366
+ const activeElement = document.activeElement;
367
+ (_a = activeElement == null ? void 0 : activeElement.blur) == null ? void 0 : _a.call(activeElement);
368
+ document.body.style.pointerEvents = "";
369
+ } catch (e) {
370
+ } finally {
371
+ cleanupExecutedRef.current = false;
372
+ }
373
+ }, 100);
374
+ return () => {
375
+ clearTimeout(timer);
376
+ cleanupExecutedRef.current = false;
377
+ };
378
+ }
379
+ prevOpenRef.current = currentOpen;
380
+ }, [props.open]);
381
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(RadixDialog.Root, __spreadValues({}, props));
382
+ }
383
+ var Dialog = {
384
+ Root: Root2,
385
+ Trigger: Trigger2,
386
+ Content: Content2,
387
+ Close: Close2,
388
+ Description: RadixDialog.Description,
389
+ Title: RadixDialog.Title
390
+ };
391
+
392
+ // src/atoms/spinner.tsx
393
+ var import_themes7 = require("@radix-ui/themes");
394
+
395
+ // src/atoms/flex.tsx
396
+ var import_themes8 = require("@radix-ui/themes");
397
+
398
+ // src/molecules/training-info-guideline.tsx
399
+ var import_jsx_runtime6 = require("react/jsx-runtime");
400
+ function TrainingInfoGuideline({
401
+ values,
402
+ onClickFileDownload
403
+ }) {
404
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_jsx_runtime6.Fragment, { children: values.map((value) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
405
+ TrainingInfoGuidelineItem,
406
+ {
407
+ onClickFileDownload,
408
+ value
409
+ },
410
+ getItemKey(value)
411
+ )) });
412
+ }
413
+ function getItemKey(value) {
414
+ return value.url;
415
+ }
416
+ function TrainingInfoGuidelineItem({
417
+ value,
418
+ onClickFileDownload
419
+ }) {
420
+ const [isLoading, setIsLoading] = (0, import_react6.useState)(true);
421
+ if (value.type === "file") {
422
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
423
+ Button,
424
+ {
425
+ onClick: () => {
426
+ onClickFileDownload({ url: value.url, filename: value.filename });
427
+ },
428
+ variant: "surface",
429
+ children: [
430
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_icons2.FileTextIcon, {}),
431
+ value.downloadButtonName
432
+ ]
433
+ }
434
+ );
435
+ }
436
+ if (value.type === "video") {
437
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(Dialog.Root, { children: [
438
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Dialog.Trigger, { children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(Button, { variant: "surface", children: [
439
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_icons2.VideoIcon, {}),
440
+ value.videoTitle
441
+ ] }) }),
442
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
443
+ Dialog.Content,
444
+ {
445
+ height: "100%",
446
+ maxHeight: "500px",
447
+ maxWidth: "800px",
448
+ title: value.videoTitle,
449
+ width: "100%",
450
+ children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_themes.AspectRatio, { ratio: 16 / 9, style: { width: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
451
+ import_themes8.Flex,
452
+ {
453
+ align: "center",
454
+ justify: "center",
455
+ style: {
456
+ width: "100%",
457
+ height: "100%",
458
+ backgroundColor: "black",
459
+ position: "relative"
460
+ },
461
+ children: [
462
+ isLoading ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
463
+ import_themes8.Flex,
464
+ {
465
+ align: "center",
466
+ height: "100%",
467
+ justify: "center",
468
+ position: "absolute",
469
+ style: {
470
+ position: "absolute",
471
+ top: 0,
472
+ left: 0,
473
+ zIndex: 1,
474
+ color: "white"
475
+ },
476
+ width: "100%",
477
+ children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_themes7.Spinner, { size: "3", style: { width: 48, height: 48 } })
478
+ }
479
+ ) : null,
480
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
481
+ "iframe",
482
+ {
483
+ allowFullScreen: true,
484
+ onError: () => {
485
+ setIsLoading(false);
486
+ },
487
+ onLoad: () => {
488
+ setIsLoading(false);
489
+ },
490
+ src: `${value.url}?theme=light`,
491
+ style: { width: "100%", height: "100%", border: "none" },
492
+ title: "Curriculum Video"
493
+ }
494
+ )
495
+ ]
496
+ }
497
+ ) })
498
+ }
499
+ )
500
+ ] });
501
+ }
502
+ return null;
503
+ }
504
+ // Annotate the CommonJS export names for ESM import in node:
505
+ 0 && (module.exports = {
506
+ TrainingInfoGuideline
507
+ });
508
+ //# sourceMappingURL=training-info-guideline.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/molecules/training-info-guideline.tsx","../../src/atoms/aspect-ratio.tsx","../../src/atoms/button.tsx","../../src/utils/convert-button-size.ts","../../src/atoms/dialog.tsx","../../src/theme/portal-provider.tsx","../../src/atoms/heading.tsx","../../src/utils/map-with-responsive.ts","../../src/atoms/icon-button.tsx","../../src/utils/convert-icon-button-size.ts","../../src/atoms/spinner.tsx","../../src/atoms/flex.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 { 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 <Button\n onClick={() => {\n onClickFileDownload({ url: value.url, filename: value.filename });\n }}\n variant=\"surface\"\n >\n <FileTextIcon />\n {value.downloadButtonName}\n </Button>\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 <Button variant=\"surface\">\n <VideoIcon />\n {value.videoTitle}\n </Button>\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","export { AspectRatio } from '@radix-ui/themes';\n","import React, { forwardRef, useMemo } from 'react';\nimport { Button as RadixButton } from '@radix-ui/themes';\nimport { clsx } from 'clsx';\nimport { convertSize } from '../utils/convert-button-size';\nimport type { ButtonProps } from './button.type';\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (props, ref): React.ReactNode => {\n const { size, style, variant, ...restProps } = props;\n\n const radixSize = useMemo(() => {\n return convertSize(size);\n }, [size]);\n\n const radixVariant = useMemo(() => {\n if (variant === 'transparent') return 'ghost';\n return variant;\n }, [variant]);\n\n const className = useMemo(() => {\n return clsx(props.className, { transparent: variant === 'transparent' });\n }, [props.className, variant]);\n\n return (\n <RadixButton\n style={style}\n type=\"button\"\n variant={radixVariant}\n {...restProps}\n className={className}\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 * as RadixDialog from '@radix-ui/react-dialog';\nimport { Cross1Icon } from '@radix-ui/react-icons';\nimport { Flex, Theme } from '@radix-ui/themes';\nimport { useEffect, useRef } from 'react';\nimport { usePortalContainer } from '@/theme/portal-provider';\nimport { Heading } from './heading';\nimport { IconButton } from './icon-button';\n\ntype ContentProps = RadixDialog.DialogContentProps & {\n width?: string;\n maxWidth?: string;\n minWidth?: string;\n height?: string;\n maxHeight?: string;\n minHeight?: string;\n title?: string;\n hideCloseButton?: boolean;\n buttons?: React.ReactNode;\n size?: '1' | '2' | '3' | '4';\n};\n\nconst preventDefault: RadixDialog.DialogContentProps['onPointerDownOutside'] = (\n e\n) => {\n e.preventDefault();\n};\n\nfunction Content(props: ContentProps): React.ReactNode {\n const {\n children,\n style = {},\n width,\n maxWidth,\n minWidth,\n maxHeight,\n height,\n minHeight,\n title,\n buttons,\n size,\n hideCloseButton,\n className,\n ...rest\n } = props;\n const { dialogContainerRef } = usePortalContainer();\n\n return (\n <RadixDialog.Portal container={dialogContainerRef.current}>\n <Theme asChild>\n <RadixDialog.Overlay className=\"rt-BaseDialogScroll rt-DialogScroll DialogOverlay\">\n <RadixDialog.Content\n className={`DialogContent ${className || ''} rt-BaseDialogContent rt-DialogContent rt-r-size-${size||'3'}`}\n onPointerDownOutside={preventDefault}\n style={{\n width,\n maxWidth,\n minWidth,\n maxHeight,\n height,\n minHeight,\n ...style,\n }}\n {...rest}\n >\n <Flex gap=\"2\" justify=\"between\" width=\"100%\">\n <RadixDialog.Title asChild>\n {typeof title === 'string' && title !== '' ? (\n <Heading mb=\"2\" variant=\"heading3\">\n {title}\n </Heading>\n ) : (\n title\n )}\n </RadixDialog.Title>\n {!hideCloseButton && (\n <RadixDialog.Close asChild className=\"DialogClose\">\n <IconButton color=\"gray\" variant=\"ghost\">\n <Cross1Icon />\n </IconButton>\n </RadixDialog.Close>\n )}\n </Flex>\n {children}\n {buttons ? (\n <Flex gap=\"3\" justify=\"end\" mt=\"3\" width=\"100%\">\n {buttons}\n </Flex>\n ) : null}\n </RadixDialog.Content>\n </RadixDialog.Overlay>\n </Theme>\n </RadixDialog.Portal>\n );\n}\n\nfunction Close({\n children,\n ...rest\n}: RadixDialog.DialogCloseProps): React.ReactNode {\n return (\n <RadixDialog.Close asChild {...rest}>\n {children}\n </RadixDialog.Close>\n );\n}\n\nfunction Trigger({\n children,\n ...rest\n}: RadixDialog.DialogTriggerProps): React.ReactNode {\n return (\n <RadixDialog.Trigger asChild {...rest}>\n {children}\n </RadixDialog.Trigger>\n );\n}\n\nfunction Root(props: RadixDialog.DialogProps): React.ReactNode {\n const prevOpenRef = useRef<boolean | undefined>(undefined);\n const cleanupExecutedRef = useRef<boolean>(false);\n\n // 모달이 닫힌 후 포커스 복원 및 이벤트 정리\n useEffect(() => {\n const prevOpen = prevOpenRef.current;\n const currentOpen = props.open;\n\n // 모달이 열린 상태에서 닫힌 상태로 변경될 때만 실행\n if (prevOpen === true && currentOpen === false && !cleanupExecutedRef.current) {\n cleanupExecutedRef.current = true;\n \n // 모달이 닫힌 후 약간의 지연을 두고 포커스 복원\n const timer = setTimeout(() => {\n try {\n // 활성 요소에 포커스 복원\n const activeElement = document.activeElement as HTMLElement | null;\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- 어떤 dom인지 확실하지 않음\n activeElement?.blur?.();\n\n // body의 pointer-events 복원\n document.body.style.pointerEvents = '';\n } catch {\n // 에러 무시\n } finally {\n cleanupExecutedRef.current = false;\n }\n }, 100);\n\n return () => { \n clearTimeout(timer);\n cleanupExecutedRef.current = false;\n };\n }\n\n // 현재 상태를 이전 상태로 업데이트\n prevOpenRef.current = currentOpen;\n }, [props.open]);\n\n return <RadixDialog.Root {...props} />;\n}\n\nexport const Dialog = {\n Root,\n Trigger,\n Content,\n Close,\n Description: RadixDialog.Description,\n Title: RadixDialog.Title,\n};\n","import React, { createContext, useContext, useRef } from 'react';\n\ninterface PortalProviderProps {\n children: React.ReactNode;\n}\n\ninterface PortalState {\n dialogContainerRef: React.RefObject<HTMLDivElement | null>;\n drawerContainerRef: React.RefObject<HTMLDivElement | null>;\n}\n\nconst PortalContext = createContext<PortalState>(\n null as unknown as PortalState\n);\n\nexport function PortalProvider({\n children,\n}: PortalProviderProps): React.ReactNode {\n const dialogContainerRef = useRef<HTMLDivElement | null>(null);\n const drawerContainerRef = useRef<HTMLDivElement | null>(null);\n\n return (\n <PortalContext.Provider value={{ dialogContainerRef, drawerContainerRef }}>\n {children}\n <div className=\"drawer-portal-container\" ref={drawerContainerRef} />\n <div className=\"dialog-portal-container\" ref={dialogContainerRef} />\n </PortalContext.Provider>\n );\n}\n\nexport const usePortalContainer = (): PortalState => {\n try {\n const state = useContext(PortalContext);\n return state;\n } catch (error) {\n throw new Error('PortalProvider not found');\n }\n};\n\nexport default PortalProvider;\n","import {\n Heading as RadixHeading,\n type HeadingProps as RadixHeadingProps,\n} from '@radix-ui/themes';\nimport type { Responsive } from '@radix-ui/themes/props';\nimport { useMemo } from 'react';\nimport { mapWithResponsive } from '@/utils/map-with-responsive';\n\nexport { Heading as RadixHeading } from '@radix-ui/themes';\ntype HeadingVariant =\n | 'heading1'\n | 'heading2'\n | 'heading3'\n | 'heading4'\n | 'heading5';\nexport type HeadingProps = RadixHeadingProps & {\n variant?: Responsive<HeadingVariant>;\n};\n\ntype HeadingSize = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9';\n\nconst mapVariant = (variant?: HeadingVariant): HeadingSize | undefined => {\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 undefined;\n }\n};\n\nexport function Heading(props: HeadingProps): React.ReactNode {\n const { size, children, variant, ...rest } = props;\n const radixSize = useMemo<RadixHeadingProps['size']>(() => {\n return variant\n ? mapWithResponsive({\n value: variant,\n mapFn: mapVariant,\n })\n : size;\n \n }, [size, variant]);\n\n return (\n <RadixHeading {...rest} size={radixSize}>\n {children}\n </RadixHeading>\n );\n}\n","import type { Breakpoint, Responsive } from \"@radix-ui/themes/props\";\n\nexport const mapWithResponsive = <T extends string,K extends string>(\n args: {value: Responsive<T>, mapFn: (value?:T)=>K |undefined}\n): Responsive<K> | undefined => {\n const {value, mapFn} = args;\n if(typeof value === 'string'){\n return mapFn(value);\n };\n \n if(typeof value === 'object'){\n const newObj: Partial<Record<Breakpoint, K>> = {};\n let key: Breakpoint;\n for(key in value){\n newObj[key] = mapFn(value[key]);\n }\n return newObj;\n }\n return value;\n};\n","import React, { forwardRef, useMemo } from 'react';\nimport { clsx } from 'clsx';\nimport { IconButton as RadixIconButton } from '@radix-ui/themes';\nimport { convertSize } from '../utils/convert-icon-button-size';\nimport type { ButtonProps } from './button.type';\n\nexport type IconButtonProps = ButtonProps;\nexport const IconButton = forwardRef<HTMLButtonElement, ButtonProps>(\n (props, ref): React.ReactNode => {\n const { size, style, variant, ...restProps } = props;\n\n const radixSize = useMemo(() => {\n return convertSize(size);\n }, [size]);\n\n const radixVariant = useMemo(() => {\n if (variant === 'transparent') return 'ghost';\n return variant;\n }, [variant]);\n\n const className = useMemo(() => {\n return clsx(props.className, { transparent: variant === 'transparent' });\n }, [props.className, variant]);\n\n return (\n <RadixIconButton\n style={style}\n type=\"button\"\n variant={radixVariant}\n {...restProps}\n className={className}\n ref={ref}\n size={radixSize}\n />\n );\n }\n);\n\nIconButton.displayName = 'IconButton';\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 '4';\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","export { Spinner, type SpinnerProps } from '@radix-ui/themes';\n","export { Flex, type FlexProps } from '@radix-ui/themes';\n"],"mappings":"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","names":["import_react","import_react_icons","import_themes","RadixButton","import_themes","import_react","import_react","import_jsx_runtime","import_themes","import_react","import_themes","import_jsx_runtime","Heading","RadixHeading","import_react","import_clsx","import_themes","convertSizeStr","convertSizeResponse","convertSize","import_jsx_runtime","convertSize","RadixIconButton","import_jsx_runtime","Content","Heading","Close","Trigger","Root","import_themes","import_themes","import_jsx_runtime"]}
@@ -0,0 +1,13 @@
1
+ import React__default from 'react';
2
+ import { TrainingInfoGuidelineContents } from '../types/training-info-guideline-schema-generated.cjs';
3
+
4
+ interface TrainingInfoGuidelineProps {
5
+ values: TrainingInfoGuidelineContents['values'];
6
+ onClickFileDownload: (args: {
7
+ url: string;
8
+ filename: string;
9
+ }) => void;
10
+ }
11
+ declare function TrainingInfoGuideline({ values, onClickFileDownload, }: TrainingInfoGuidelineProps): React__default.ReactElement;
12
+
13
+ export { TrainingInfoGuideline, type TrainingInfoGuidelineProps };
@@ -0,0 +1,13 @@
1
+ import React__default from 'react';
2
+ import { TrainingInfoGuidelineContents } from '../types/training-info-guideline-schema-generated.js';
3
+
4
+ interface TrainingInfoGuidelineProps {
5
+ values: TrainingInfoGuidelineContents['values'];
6
+ onClickFileDownload: (args: {
7
+ url: string;
8
+ filename: string;
9
+ }) => void;
10
+ }
11
+ declare function TrainingInfoGuideline({ values, onClickFileDownload, }: TrainingInfoGuidelineProps): React__default.ReactElement;
12
+
13
+ export { TrainingInfoGuideline, type TrainingInfoGuidelineProps };
@@ -0,0 +1,19 @@
1
+ import {
2
+ TrainingInfoGuideline
3
+ } from "../chunk-IF4Q5NV4.js";
4
+ import "../chunk-FR2GDOU2.js";
5
+ import "../chunk-JQ7VQ5SB.js";
6
+ import "../chunk-U7N2PWMO.js";
7
+ import "../chunk-XK6VEVOK.js";
8
+ import "../chunk-HF6GNDPV.js";
9
+ import "../chunk-25HMMI7R.js";
10
+ import "../chunk-ZVDAEY5Q.js";
11
+ import "../chunk-LQY4RKWI.js";
12
+ import "../chunk-EAXUQEO5.js";
13
+ import "../chunk-BESTU2AY.js";
14
+ import "../chunk-LDBWASUA.js";
15
+ import "../chunk-CRTRMMJ7.js";
16
+ export {
17
+ TrainingInfoGuideline
18
+ };
19
+ //# sourceMappingURL=training-info-guideline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/types/curriculumContents.type.ts"],"sourcesContent":["/* eslint-disable */\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\n\nexport type CurriculumSectionTitleContents = ContentBaseType & {\n type?: \"sectionTitle\";\n title: string;\n [k: string]: unknown;\n};\nexport type CurriculumVideoContents = ContentBaseType & {\n type?: \"video\";\n title: string;\n url: string;\n icon?: string;\n [k: string]: unknown;\n};\nexport type CurriculumReviewContents = ContentBaseType & {\n type?: \"review\";\n title: string;\n icon?: string;\n buttonTitle?: string;\n description: string;\n questions: (\n | CurriculumReviewQuestionText\n | CurriculumReviewQuestionRadio\n | CurriculumReviewQuestionSatisfactionText\n | CurriculumReviewQuestionSatisfactionOption\n )[];\n [k: string]: unknown;\n};\nexport type CurriculumReviewQuestionText = ContentBaseType &\n QuestionBaseType & {\n type?: \"question_text\";\n minLength?: number;\n placeholder?: string;\n minLengthInfoMessage?: string;\n [k: string]: unknown;\n };\nexport type CurriculumReviewQuestionRadio = ContentBaseType &\n QuestionBaseType & {\n type?: \"question_radio\";\n options: {\n label?: string;\n value?: number;\n [k: string]: unknown;\n }[];\n correctAnswer: number;\n [k: string]: unknown;\n };\nexport type CurriculumReviewQuestionSatisfactionText = ContentBaseType & {\n type?: \"question_satisfaction_text\";\n minLength?: number;\n placeholder?: string;\n required: boolean;\n question?: string;\n title?: string;\n icon?: string;\n [k: string]: unknown;\n};\nexport type CurriculumReviewQuestionSatisfactionOption = ContentBaseType & {\n type?: \"question_satisfaction_option\";\n options?: {\n label?: string;\n value?: number;\n [k: string]: unknown;\n }[];\n required: boolean;\n question?: string;\n title?: string;\n icon?: string;\n [k: string]: unknown;\n};\nexport type CurriculumAiTrainingContents = ContentBaseType & {\n type: \"aiTraining\";\n title: string;\n description: string;\n aITrainingInfoId: string;\n aiDuration: number;\n buttonTitle?: string;\n [k: string]: unknown;\n};\nexport type CurriculumFileDownloadContents = ContentBaseType & {\n type?: \"fileDownload\";\n title: string;\n description?: string;\n files: CurriculumFileDownloadFile[];\n [k: string]: unknown;\n};\n\nexport interface CurriculumContents {\n version: number;\n list: (\n | CurriculumSectionTitleContents\n | CurriculumVideoContents\n | CurriculumReviewContents\n | CurriculumAiTrainingContents\n | CurriculumFileDownloadContents\n )[];\n satisfactionOptionMeta?: SatisfactionOptionMeta;\n satisfactionTextMeta?: SatisfactionTextMeta;\n reviewMeta?: {\n endReviewTopTitle?: string;\n endReviewDescription?: string;\n endReviewBackButtonTitle?: string;\n endReviewNextButtonTitle?: string;\n };\n}\nexport interface ContentBaseType {\n uuid: string;\n type: string;\n duration?: number;\n [k: string]: unknown;\n}\nexport interface QuestionBaseType {\n required: boolean;\n question: string;\n title: string;\n icon?: string;\n [k: string]: unknown;\n}\nexport interface CurriculumFileDownloadFile {\n name: string;\n url: string;\n}\nexport interface SatisfactionOptionMeta {\n options?: {\n label?: string;\n value?: number;\n [k: string]: unknown;\n }[];\n required?: boolean;\n question?: string;\n title?: string;\n icon?: string;\n [k: string]: unknown;\n}\nexport interface SatisfactionTextMeta {\n minLength?: number;\n placeholder?: string;\n required?: boolean;\n question?: string;\n title?: string;\n icon?: string;\n [k: string]: unknown;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
1
+ {"version":3,"sources":["../../src/types/curriculumContents.type.ts"],"sourcesContent":["/* eslint-disable */\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\n\nexport type CurriculumSectionTitleContents = ContentBaseType & {\n type?: \"sectionTitle\";\n title: string;\n [k: string]: unknown;\n};\nexport type CurriculumVideoContents = ContentBaseType & {\n type?: \"video\";\n title: string;\n url: string;\n icon?: string;\n [k: string]: unknown;\n};\nexport type CurriculumReviewContents = ContentBaseType & {\n type?: \"review\";\n title: string;\n icon?: string;\n buttonTitle?: string;\n description: string;\n questions: (\n | CurriculumReviewQuestionText\n | CurriculumReviewQuestionRadio\n | CurriculumReviewQuestionSatisfactionText\n | CurriculumReviewQuestionSatisfactionOption\n )[];\n [k: string]: unknown;\n};\nexport type CurriculumReviewQuestionText = ContentBaseType &\n QuestionBaseType & {\n type?: \"question_text\";\n minLength?: number;\n placeholder?: string;\n minLengthInfoMessage?: string;\n [k: string]: unknown;\n };\nexport type CurriculumReviewQuestionRadio = ContentBaseType &\n QuestionBaseType & {\n type?: \"question_radio\";\n options: {\n label?: string;\n value?: number;\n [k: string]: unknown;\n }[];\n correctAnswer: number;\n [k: string]: unknown;\n };\nexport type CurriculumReviewQuestionSatisfactionText = ContentBaseType & {\n type?: \"question_satisfaction_text\";\n minLength?: number;\n placeholder?: string;\n required: boolean;\n question?: string;\n title?: string;\n icon?: string;\n [k: string]: unknown;\n};\nexport type CurriculumReviewQuestionSatisfactionOption = ContentBaseType & {\n type?: \"question_satisfaction_option\";\n options?: {\n label?: string;\n value?: number;\n [k: string]: unknown;\n }[];\n required: boolean;\n question?: string;\n title?: string;\n icon?: string;\n [k: string]: unknown;\n};\nexport type CurriculumAiTrainingContents = ContentBaseType & {\n type: \"aiTraining\";\n title: string;\n description: string;\n aITrainingInfoId: string;\n aiDuration: number;\n buttonTitle?: string;\n [k: string]: unknown;\n};\nexport type CurriculumFileDownloadContents = ContentBaseType & {\n type?: \"fileDownload\";\n title: string;\n description?: string;\n files: CurriculumFileDownloadFile[];\n [k: string]: unknown;\n};\n\nexport interface CurriculumContents {\n version: number;\n list: (\n | CurriculumSectionTitleContents\n | CurriculumVideoContents\n | CurriculumReviewContents\n | CurriculumAiTrainingContents\n | CurriculumFileDownloadContents\n )[];\n satisfactionOptionMeta?: SatisfactionOptionMeta;\n satisfactionTextMeta?: SatisfactionTextMeta;\n reviewMeta?: {\n endReviewTopTitle?: string;\n endReviewDescription?: string;\n endReviewBackButtonTitle?: string;\n endReviewNextButtonTitle?: string;\n };\n}\nexport interface ContentBaseType {\n uuid: string;\n type: string;\n duration?: number;\n [k: string]: unknown;\n}\nexport interface QuestionBaseType {\n required: boolean;\n question: string;\n title: string;\n icon?: string;\n [k: string]: unknown;\n}\nexport interface CurriculumFileDownloadFile {\n name: string;\n url: string;\n}\nexport interface SatisfactionOptionMeta {\n options?: {\n label?: string;\n value?: number;\n [k: string]: unknown;\n }[];\n required?: boolean;\n question?: string;\n title?: string;\n icon?: string;\n [k: string]: unknown;\n}\nexport interface SatisfactionTextMeta {\n minLength?: number;\n placeholder?: string;\n required?: boolean;\n question?: string;\n title?: string;\n icon?: string;\n [k: string]: unknown;\n}\n\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/types/dynamic-form-schema-generated.ts"],"sourcesContent":["/* eslint-disable */\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\n\nexport type DynamicFormFieldSchema =\n | ShortTextField\n | LongTextField\n | NumberField\n | EmailField\n | DropdownField\n | ChoiceField\n | ChoicesField\n | YesNoField;\nexport type ShortTextField = FieldBaseType &\n TextFieldCommon & {\n type: \"short_text\";\n [k: string]: unknown;\n };\nexport type LongTextField = FieldBaseType &\n TextFieldCommon & {\n type: \"long_text\";\n [k: string]: unknown;\n };\nexport type NumberField = FieldBaseType &\n TextFieldCommon & {\n type: \"number\";\n [k: string]: unknown;\n };\nexport type EmailField = FieldBaseType &\n TextFieldCommon & {\n type: \"email\";\n [k: string]: unknown;\n };\nexport type DropdownField = FieldBaseType &\n TextFieldCommon &\n OptionFieldCommon & {\n type: \"dropdown\";\n [k: string]: unknown;\n };\nexport type ChoiceField = FieldBaseType &\n OptionFieldCommon &\n OrientationFieldCommon & {\n type: \"choice\";\n [k: string]: unknown;\n };\nexport type ChoicesField = FieldBaseType &\n OptionFieldCommon &\n OrientationFieldCommon & {\n type: \"choices\";\n [k: string]: unknown;\n };\nexport type YesNoField = FieldBaseType & {\n type: \"yes_no\";\n [k: string]: unknown;\n};\n\n/**\n * JSON 스키마 for DynamicForm 컴포넌트\n */\nexport interface DynamicFormSchema {\n /**\n * 폼 필드 정의 배열\n */\n fields: DynamicFormFieldSchema[];\n [k: string]: unknown;\n}\nexport interface FieldBaseType {\n name: string;\n type: string;\n label: string;\n description?: string;\n required?: boolean;\n validation?: ValidationRule;\n [k: string]: unknown;\n}\nexport interface ValidationRule {\n min?: number;\n max?: number;\n pattern?: string;\n message?: string;\n oneOf?: unknown[];\n [k: string]: unknown;\n}\nexport interface TextFieldCommon {\n placeholder?: string;\n [k: string]: unknown;\n}\nexport interface OptionFieldCommon {\n options: FieldOption[];\n [k: string]: unknown;\n}\nexport interface FieldOption {\n label: string;\n value: string | number;\n [k: string]: unknown;\n}\nexport interface OrientationFieldCommon {\n orientation?: \"horizontal\" | \"vertical\";\n [k: string]: unknown;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
1
+ {"version":3,"sources":["../../src/types/dynamic-form-schema-generated.ts"],"sourcesContent":["/* eslint-disable */\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\n\nexport type DynamicFormFieldSchema =\n | ShortTextField\n | LongTextField\n | NumberField\n | EmailField\n | DropdownField\n | ChoiceField\n | ChoicesField\n | YesNoField;\nexport type ShortTextField = FieldBaseType &\n TextFieldCommon & {\n type: \"short_text\";\n [k: string]: unknown;\n };\nexport type LongTextField = FieldBaseType &\n TextFieldCommon & {\n type: \"long_text\";\n [k: string]: unknown;\n };\nexport type NumberField = FieldBaseType &\n TextFieldCommon & {\n type: \"number\";\n [k: string]: unknown;\n };\nexport type EmailField = FieldBaseType &\n TextFieldCommon & {\n type: \"email\";\n [k: string]: unknown;\n };\nexport type DropdownField = FieldBaseType &\n TextFieldCommon &\n OptionFieldCommon & {\n type: \"dropdown\";\n [k: string]: unknown;\n };\nexport type ChoiceField = FieldBaseType &\n OptionFieldCommon &\n OrientationFieldCommon & {\n type: \"choice\";\n [k: string]: unknown;\n };\nexport type ChoicesField = FieldBaseType &\n OptionFieldCommon &\n OrientationFieldCommon & {\n type: \"choices\";\n [k: string]: unknown;\n };\nexport type YesNoField = FieldBaseType & {\n type: \"yes_no\";\n [k: string]: unknown;\n};\n\n/**\n * JSON 스키마 for DynamicForm 컴포넌트\n */\nexport interface DynamicFormSchema {\n /**\n * 폼 필드 정의 배열\n */\n fields: DynamicFormFieldSchema[];\n [k: string]: unknown;\n}\nexport interface FieldBaseType {\n name: string;\n type: string;\n label: string;\n description?: string;\n required?: boolean;\n validation?: ValidationRule;\n [k: string]: unknown;\n}\nexport interface ValidationRule {\n min?: number;\n max?: number;\n pattern?: string;\n message?: string;\n oneOf?: unknown[];\n [k: string]: unknown;\n}\nexport interface TextFieldCommon {\n placeholder?: string;\n [k: string]: unknown;\n}\nexport interface OptionFieldCommon {\n options: FieldOption[];\n [k: string]: unknown;\n}\nexport interface FieldOption {\n label: string;\n value: string | number;\n [k: string]: unknown;\n}\nexport interface OrientationFieldCommon {\n orientation?: \"horizontal\" | \"vertical\";\n [k: string]: unknown;\n}\n\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/types/index.ts"],"sourcesContent":["export * from './curriculumContents.type';\nexport * from './curriculum.type';\nexport * from './dynamic-form-schema-generated';\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
1
+ {"version":3,"sources":["../../src/types/index.ts"],"sourcesContent":["export * from './curriculumContents.type';\nexport * from './curriculum.type';\nexport * from './dynamic-form-schema-generated';\nexport * from './training-info-guideline-schema-generated';"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}