@learncard/react 2.6.55 → 2.6.56

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 (289) hide show
  1. package/dist/cjs/{AchievementCard-9048086b.js → AchievementCard-c8d3cb7b.js} +2 -2
  2. package/dist/cjs/{AchievementCard-9048086b.js.map → AchievementCard-c8d3cb7b.js.map} +1 -1
  3. package/dist/cjs/CertificateDisplayCard-e83baadf.js +1133 -0
  4. package/dist/cjs/CertificateDisplayCard-e83baadf.js.map +1 -0
  5. package/dist/cjs/CircleIcon-6e2d0b8b.js +77 -0
  6. package/dist/cjs/CircleIcon-6e2d0b8b.js.map +1 -0
  7. package/dist/cjs/{Notification-9d230f1b.js → Notification-0bc2680c.js} +2 -2
  8. package/dist/cjs/{Notification-9d230f1b.js.map → Notification-0bc2680c.js.map} +1 -1
  9. package/dist/cjs/{NotificationBoostCard-3b3bd47d.js → NotificationBoostCard-194ae55a.js} +2 -2
  10. package/dist/cjs/{NotificationBoostCard-3b3bd47d.js.map → NotificationBoostCard-194ae55a.js.map} +1 -1
  11. package/dist/cjs/RoundedSquare-7042b3b7.js +57 -0
  12. package/dist/cjs/RoundedSquare-7042b3b7.js.map +1 -0
  13. package/dist/cjs/SchoolIDCard-fcd1a1ff.js +68 -0
  14. package/dist/cjs/SchoolIDCard-fcd1a1ff.js.map +1 -0
  15. package/dist/cjs/{SmallAchievementCard-c76701ce.js → SmallAchievementCard-a1fa862b.js} +2 -2
  16. package/dist/cjs/{SmallAchievementCard-c76701ce.js.map → SmallAchievementCard-a1fa862b.js.map} +1 -1
  17. package/dist/cjs/{Trophy-9ede7f2b.js → Trophy-3d323be3.js} +5 -2
  18. package/dist/cjs/Trophy-3d323be3.js.map +1 -0
  19. package/dist/cjs/{User-92f9cf40.js → User-dde46685.js} +19 -4
  20. package/dist/cjs/User-dde46685.js.map +1 -0
  21. package/dist/cjs/{VCCard-34b194a2.js → VCCard-1e875d62.js} +40 -4
  22. package/dist/cjs/VCCard-1e875d62.js.map +1 -0
  23. package/dist/cjs/{VCDisplayBackFace-919117cc.js → VCDisplayBackFace-48ae7e66.js} +3 -3
  24. package/dist/cjs/{VCDisplayBackFace-919117cc.js.map → VCDisplayBackFace-48ae7e66.js.map} +1 -1
  25. package/dist/cjs/{VCDisplayCard-d1158c4a.js → VCDisplayCard-6ce09757.js} +3 -3
  26. package/dist/cjs/{VCDisplayCard-d1158c4a.js.map → VCDisplayCard-6ce09757.js.map} +1 -1
  27. package/dist/cjs/VCDisplayCard2-b98cabf4.js +2709 -0
  28. package/dist/cjs/VCDisplayCard2-b98cabf4.js.map +1 -0
  29. package/dist/{esm/types.esm-b07820bb.js → cjs/VCVerificationPill-d0edd7ae.js} +75 -2
  30. package/dist/cjs/VCVerificationPill-d0edd7ae.js.map +1 -0
  31. package/dist/cjs/athletics.svg +9 -0
  32. package/dist/cjs/business.svg +9 -0
  33. package/dist/cjs/{constants-ea765e7c.js → constants-d8f1c89f.js} +2 -51
  34. package/dist/cjs/constants-d8f1c89f.js.map +1 -0
  35. package/dist/cjs/creative.svg +9 -0
  36. package/dist/cjs/{credential.helpers-b8363e2e.js → credential.helpers-703fc1a4.js} +222 -9
  37. package/dist/cjs/credential.helpers-703fc1a4.js.map +1 -0
  38. package/dist/cjs/digital.svg +9 -0
  39. package/dist/cjs/durable.svg +9 -0
  40. package/dist/cjs/index-bee9764e.js.map +1 -1
  41. package/dist/cjs/index.es-6d3ea12a.js +194 -0
  42. package/dist/cjs/index.es-6d3ea12a.js.map +1 -0
  43. package/dist/cjs/index.js +45 -30
  44. package/dist/cjs/index.js.map +1 -1
  45. package/dist/cjs/index10.js +30 -2
  46. package/dist/cjs/index10.js.map +1 -1
  47. package/dist/cjs/index11.js +2 -45
  48. package/dist/cjs/index11.js.map +1 -1
  49. package/dist/cjs/index12.js +3 -132
  50. package/dist/cjs/index12.js.map +1 -1
  51. package/dist/cjs/index13.js +188 -2
  52. package/dist/cjs/index13.js.map +1 -1
  53. package/dist/cjs/index14.js +3 -21
  54. package/dist/cjs/index14.js.map +1 -1
  55. package/dist/cjs/index15.js +21 -3
  56. package/dist/cjs/index15.js.map +1 -1
  57. package/dist/cjs/index16.js +3 -5
  58. package/dist/cjs/index16.js.map +1 -1
  59. package/dist/cjs/index17.js +5 -20
  60. package/dist/cjs/index17.js.map +1 -1
  61. package/dist/cjs/index18.js +20 -3
  62. package/dist/cjs/index18.js.map +1 -1
  63. package/dist/cjs/index19.js +3 -2
  64. package/dist/cjs/index19.js.map +1 -1
  65. package/dist/cjs/index2.js +2 -2
  66. package/dist/cjs/index20.js +2 -3
  67. package/dist/cjs/index20.js.map +1 -1
  68. package/dist/cjs/index21.js +3 -8
  69. package/dist/cjs/index21.js.map +1 -1
  70. package/dist/cjs/index22.js +6 -8
  71. package/dist/cjs/index22.js.map +1 -1
  72. package/dist/cjs/index23.js +7 -3
  73. package/dist/cjs/index23.js.map +1 -1
  74. package/dist/cjs/index24.js +3 -5
  75. package/dist/cjs/index24.js.map +1 -1
  76. package/dist/cjs/index25.js +8 -3
  77. package/dist/cjs/index25.js.map +1 -1
  78. package/dist/cjs/index26.js +3 -27
  79. package/dist/cjs/index26.js.map +1 -1
  80. package/dist/cjs/index27.js +4 -27
  81. package/dist/cjs/index27.js.map +1 -1
  82. package/dist/cjs/index28.js +52 -3
  83. package/dist/cjs/index28.js.map +1 -1
  84. package/dist/cjs/index29.js +3 -3
  85. package/dist/cjs/index30.js +3 -3
  86. package/dist/cjs/index31.js +3 -28
  87. package/dist/cjs/index31.js.map +1 -1
  88. package/dist/cjs/index32.js +28 -3
  89. package/dist/cjs/index32.js.map +1 -1
  90. package/dist/cjs/index33.js +3 -3
  91. package/dist/cjs/index34.js +3 -15
  92. package/dist/cjs/index34.js.map +1 -1
  93. package/dist/cjs/index35.js +15 -24
  94. package/dist/cjs/index35.js.map +1 -1
  95. package/dist/cjs/index36.js +90 -5
  96. package/dist/cjs/index36.js.map +1 -1
  97. package/dist/cjs/index37.js +83 -9
  98. package/dist/cjs/index37.js.map +1 -1
  99. package/dist/cjs/index38.js +87 -8
  100. package/dist/cjs/index38.js.map +1 -1
  101. package/dist/cjs/index39.js +97 -2
  102. package/dist/cjs/index39.js.map +1 -1
  103. package/dist/cjs/index40.js +83 -6
  104. package/dist/cjs/index40.js.map +1 -1
  105. package/dist/cjs/index41.js +4 -6
  106. package/dist/cjs/index41.js.map +1 -1
  107. package/dist/cjs/index42.js +6 -6
  108. package/dist/cjs/index43.js +14 -0
  109. package/dist/cjs/index43.js.map +1 -0
  110. package/dist/cjs/index6.js +67 -5
  111. package/dist/cjs/index6.js.map +1 -1
  112. package/dist/cjs/index7.js +4 -5
  113. package/dist/cjs/index7.js.map +1 -1
  114. package/dist/cjs/index8.js +28 -5
  115. package/dist/cjs/index8.js.map +1 -1
  116. package/dist/cjs/index9.js +4 -28
  117. package/dist/cjs/index9.js.map +1 -1
  118. package/dist/cjs/medical.svg +9 -0
  119. package/dist/{esm/CircleIcon-0fa4ca78.js → cjs/numeral-d057158c.js} +3 -68
  120. package/dist/cjs/numeral-d057158c.js.map +1 -0
  121. package/dist/cjs/{SchoolIDCard-c7b4153a.js → react-barcode-41861282.js} +1185 -61
  122. package/dist/cjs/react-barcode-41861282.js.map +1 -0
  123. package/dist/cjs/social.svg +9 -0
  124. package/dist/cjs/stem.svg +9 -0
  125. package/dist/cjs/trade.svg +9 -0
  126. package/dist/cjs/{types-c83b33ec.js → types-7f6324ea.js} +12 -5
  127. package/dist/cjs/types-7f6324ea.js.map +1 -0
  128. package/dist/esm/{AchievementCard-98cfb362.js → AchievementCard-feac0ebb.js} +2 -2
  129. package/dist/esm/{AchievementCard-98cfb362.js.map → AchievementCard-feac0ebb.js.map} +1 -1
  130. package/dist/esm/CertificateDisplayCard-21dadcd3.js +1114 -0
  131. package/dist/esm/CertificateDisplayCard-21dadcd3.js.map +1 -0
  132. package/dist/esm/CircleIcon-f2df135c.js +70 -0
  133. package/dist/esm/CircleIcon-f2df135c.js.map +1 -0
  134. package/dist/esm/{Notification-0f58ef6a.js → Notification-78a215ff.js} +2 -2
  135. package/dist/esm/{Notification-0f58ef6a.js.map → Notification-78a215ff.js.map} +1 -1
  136. package/dist/esm/{NotificationBoostCard-134edf94.js → NotificationBoostCard-9e7197eb.js} +2 -2
  137. package/dist/esm/{NotificationBoostCard-134edf94.js.map → NotificationBoostCard-9e7197eb.js.map} +1 -1
  138. package/dist/esm/RoundedSquare-7458bd73.js +51 -0
  139. package/dist/esm/RoundedSquare-7458bd73.js.map +1 -0
  140. package/dist/esm/SchoolIDCard-b26cd055.js +62 -0
  141. package/dist/esm/SchoolIDCard-b26cd055.js.map +1 -0
  142. package/dist/esm/{SmallAchievementCard-2d87ac82.js → SmallAchievementCard-d0220751.js} +2 -2
  143. package/dist/esm/{SmallAchievementCard-2d87ac82.js.map → SmallAchievementCard-d0220751.js.map} +1 -1
  144. package/dist/esm/{Trophy-702610b8.js → Trophy-ad67f46a.js} +5 -2
  145. package/dist/esm/Trophy-ad67f46a.js.map +1 -0
  146. package/dist/esm/{User-fd276ad5.js → User-9f253521.js} +19 -4
  147. package/dist/esm/User-9f253521.js.map +1 -0
  148. package/dist/esm/{VCCard-ce237f01.js → VCCard-54844601.js} +40 -4
  149. package/dist/esm/VCCard-54844601.js.map +1 -0
  150. package/dist/esm/{VCDisplayBackFace-c8f0cb3a.js → VCDisplayBackFace-a099e38b.js} +3 -3
  151. package/dist/esm/{VCDisplayBackFace-c8f0cb3a.js.map → VCDisplayBackFace-a099e38b.js.map} +1 -1
  152. package/dist/esm/{VCDisplayCard-a35f3a6a.js → VCDisplayCard-5c84851d.js} +3 -3
  153. package/dist/esm/{VCDisplayCard-a35f3a6a.js.map → VCDisplayCard-5c84851d.js.map} +1 -1
  154. package/dist/esm/VCDisplayCard2-0b6776f9.js +2691 -0
  155. package/dist/esm/VCDisplayCard2-0b6776f9.js.map +1 -0
  156. package/dist/{cjs/types.esm-d5381f5d.js → esm/VCVerificationPill-1a8e55d1.js} +63 -3
  157. package/dist/esm/VCVerificationPill-1a8e55d1.js.map +1 -0
  158. package/dist/esm/athletics.svg +9 -0
  159. package/dist/esm/business.svg +9 -0
  160. package/dist/esm/{constants-16a52524.js → constants-938aa64f.js} +3 -50
  161. package/dist/esm/constants-938aa64f.js.map +1 -0
  162. package/dist/esm/creative.svg +9 -0
  163. package/dist/esm/{credential.helpers-89728941.js → credential.helpers-aae8d75f.js} +211 -7
  164. package/dist/esm/credential.helpers-aae8d75f.js.map +1 -0
  165. package/dist/esm/digital.svg +9 -0
  166. package/dist/esm/durable.svg +9 -0
  167. package/dist/esm/index-146dd88a.js.map +1 -1
  168. package/dist/esm/index.es-ed959f7e.js +187 -0
  169. package/dist/esm/index.es-ed959f7e.js.map +1 -0
  170. package/dist/esm/index.js +39 -27
  171. package/dist/esm/index.js.map +1 -1
  172. package/dist/esm/index10.js +29 -1
  173. package/dist/esm/index10.js.map +1 -1
  174. package/dist/esm/index11.js +1 -44
  175. package/dist/esm/index11.js.map +1 -1
  176. package/dist/esm/index12.js +3 -74
  177. package/dist/esm/index12.js.map +1 -1
  178. package/dist/esm/index13.js +127 -2
  179. package/dist/esm/index13.js.map +1 -1
  180. package/dist/esm/index14.js +2 -19
  181. package/dist/esm/index14.js.map +1 -1
  182. package/dist/esm/index15.js +19 -2
  183. package/dist/esm/index15.js.map +1 -1
  184. package/dist/esm/index16.js +2 -4
  185. package/dist/esm/index16.js.map +1 -1
  186. package/dist/esm/index17.js +4 -19
  187. package/dist/esm/index17.js.map +1 -1
  188. package/dist/esm/index18.js +19 -2
  189. package/dist/esm/index18.js.map +1 -1
  190. package/dist/esm/index19.js +2 -1
  191. package/dist/esm/index19.js.map +1 -1
  192. package/dist/esm/index2.js +2 -2
  193. package/dist/esm/index20.js +1 -2
  194. package/dist/esm/index20.js.map +1 -1
  195. package/dist/esm/index21.js +2 -6
  196. package/dist/esm/index21.js.map +1 -1
  197. package/dist/esm/index22.js +4 -7
  198. package/dist/esm/index22.js.map +1 -1
  199. package/dist/esm/index23.js +6 -2
  200. package/dist/esm/index23.js.map +1 -1
  201. package/dist/esm/index24.js +2 -3
  202. package/dist/esm/index24.js.map +1 -1
  203. package/dist/esm/index25.js +6 -2
  204. package/dist/esm/index25.js.map +1 -1
  205. package/dist/esm/index26.js +2 -25
  206. package/dist/esm/index26.js.map +1 -1
  207. package/dist/esm/index27.js +2 -22
  208. package/dist/esm/index27.js.map +1 -1
  209. package/dist/esm/index28.js +47 -2
  210. package/dist/esm/index28.js.map +1 -1
  211. package/dist/esm/index29.js +2 -1
  212. package/dist/esm/index29.js.map +1 -1
  213. package/dist/esm/index30.js +1 -2
  214. package/dist/esm/index30.js.map +1 -1
  215. package/dist/esm/index31.js +2 -27
  216. package/dist/esm/index31.js.map +1 -1
  217. package/dist/esm/index32.js +27 -2
  218. package/dist/esm/index32.js.map +1 -1
  219. package/dist/esm/index33.js +2 -2
  220. package/dist/esm/index34.js +2 -6
  221. package/dist/esm/index34.js.map +1 -1
  222. package/dist/esm/index35.js +6 -23
  223. package/dist/esm/index35.js.map +1 -1
  224. package/dist/esm/index36.js +89 -4
  225. package/dist/esm/index36.js.map +1 -1
  226. package/dist/esm/index37.js +82 -8
  227. package/dist/esm/index37.js.map +1 -1
  228. package/dist/esm/index38.js +86 -7
  229. package/dist/esm/index38.js.map +1 -1
  230. package/dist/esm/index39.js +90 -2
  231. package/dist/esm/index39.js.map +1 -1
  232. package/dist/esm/index40.js +83 -1
  233. package/dist/esm/index40.js.map +1 -1
  234. package/dist/esm/index41.js +3 -3
  235. package/dist/esm/index42.js +3 -5
  236. package/dist/esm/index42.js.map +1 -1
  237. package/dist/esm/index43.js +6 -0
  238. package/dist/esm/index43.js.map +1 -0
  239. package/dist/esm/index6.js +66 -4
  240. package/dist/esm/index6.js.map +1 -1
  241. package/dist/esm/index7.js +3 -3
  242. package/dist/esm/index8.js +26 -4
  243. package/dist/esm/index8.js.map +1 -1
  244. package/dist/esm/index9.js +3 -27
  245. package/dist/esm/index9.js.map +1 -1
  246. package/dist/esm/medical.svg +9 -0
  247. package/dist/{cjs/CircleIcon-a606678d.js → esm/numeral-804ed0c4.js} +2 -76
  248. package/dist/esm/numeral-804ed0c4.js.map +1 -0
  249. package/dist/esm/{SchoolIDCard-01422d53.js → react-barcode-ecb18dfe.js} +1184 -60
  250. package/dist/esm/react-barcode-ecb18dfe.js.map +1 -0
  251. package/dist/esm/social.svg +9 -0
  252. package/dist/esm/stem.svg +9 -0
  253. package/dist/esm/trade.svg +9 -0
  254. package/dist/esm/{types-7081a9e5.js → types-c31e4bae.js} +12 -6
  255. package/dist/esm/types-c31e4bae.js.map +1 -0
  256. package/dist/index.d.ts +348 -11
  257. package/dist/main.css +1 -1
  258. package/dist/main.js +1 -1
  259. package/package.json +5 -4
  260. package/dist/cjs/CircleIcon-a606678d.js.map +0 -1
  261. package/dist/cjs/SchoolIDCard-c7b4153a.js.map +0 -1
  262. package/dist/cjs/Trophy-9ede7f2b.js.map +0 -1
  263. package/dist/cjs/User-92f9cf40.js.map +0 -1
  264. package/dist/cjs/VCCard-34b194a2.js.map +0 -1
  265. package/dist/cjs/VCDisplayCard2-c112b1d9.js +0 -1254
  266. package/dist/cjs/VCDisplayCard2-c112b1d9.js.map +0 -1
  267. package/dist/cjs/VCVerificationPill-0e60ff1b.js +0 -75
  268. package/dist/cjs/VCVerificationPill-0e60ff1b.js.map +0 -1
  269. package/dist/cjs/constants-ea765e7c.js.map +0 -1
  270. package/dist/cjs/credential.helpers-b8363e2e.js.map +0 -1
  271. package/dist/cjs/index-838fa72c.js +0 -1186
  272. package/dist/cjs/index-838fa72c.js.map +0 -1
  273. package/dist/cjs/types-c83b33ec.js.map +0 -1
  274. package/dist/cjs/types.esm-d5381f5d.js.map +0 -1
  275. package/dist/esm/CircleIcon-0fa4ca78.js.map +0 -1
  276. package/dist/esm/SchoolIDCard-01422d53.js.map +0 -1
  277. package/dist/esm/Trophy-702610b8.js.map +0 -1
  278. package/dist/esm/User-fd276ad5.js.map +0 -1
  279. package/dist/esm/VCCard-ce237f01.js.map +0 -1
  280. package/dist/esm/VCDisplayCard2-531202a8.js +0 -1247
  281. package/dist/esm/VCDisplayCard2-531202a8.js.map +0 -1
  282. package/dist/esm/VCVerificationPill-aa305f20.js +0 -65
  283. package/dist/esm/VCVerificationPill-aa305f20.js.map +0 -1
  284. package/dist/esm/constants-16a52524.js.map +0 -1
  285. package/dist/esm/credential.helpers-89728941.js.map +0 -1
  286. package/dist/esm/index-4fa491c1.js +0 -1184
  287. package/dist/esm/index-4fa491c1.js.map +0 -1
  288. package/dist/esm/types-7081a9e5.js.map +0 -1
  289. package/dist/esm/types.esm-b07820bb.js.map +0 -1
@@ -0,0 +1,2691 @@
1
+ import React, { useRef, useEffect, useState, useLayoutEffect } from 'react';
2
+ import { h, y } from './index.es-ed959f7e.js';
3
+ import { a as VCVerificationCheckWithSpinner } from './VCVerificationCheck-80249524.js';
4
+ import DefaultFace from './default-face.jpeg';
5
+ import { g as getColorForVerificationStatus, h as format, e as getNameFromProfile, f as getImageFromProfile, i as getCategoryColor, j as getTotalCountOfSkills, a as getInfoFromCredential } from './credential.helpers-aae8d75f.js';
6
+ import { g as getBaseUrl, V as VideoIcon, a as Camera, G as GenericDocumentIcon, L as LinkIcon, p as prettyBytes, c as capitalize, X, E as ExclamationPoint, A as AcuteCheckmark, I as InfoIcon, t as truncateWithEllipsis, C as CertificateDisplayCard } from './CertificateDisplayCard-21dadcd3.js';
7
+ import { L as Lightbox } from './Lightbox-a1aab9ea.js';
8
+ import Athletics from './athletics.svg';
9
+ import Business from './business.svg';
10
+ import Creative from './creative.svg';
11
+ import Digital from './digital.svg';
12
+ import Durable from './durable.svg';
13
+ import Medical from './medical.svg';
14
+ import Social from './social.svg';
15
+ import Stem from './stem.svg';
16
+ import Trade from './trade.svg';
17
+ import { P as PuzzlePiece } from './types-c31e4bae.js';
18
+ import { a as VerificationStatusEnum } from './VCVerificationPill-1a8e55d1.js';
19
+ import { A as AwardRibbon } from './AwardRibbon-3e682281.js';
20
+ import { a as LCCategoryEnum } from './index-146dd88a.js';
21
+ import 'react-dom';
22
+
23
+ const LeftArrow = ({ className = "", size = "20" }) => {
24
+ return /* @__PURE__ */ React.createElement("svg", {
25
+ width: size,
26
+ height: size,
27
+ viewBox: "0 0 20 20",
28
+ fill: "none",
29
+ xmlns: "http://www.w3.org/2000/svg",
30
+ className
31
+ }, /* @__PURE__ */ React.createElement("path", {
32
+ d: "M8.93299 17.942L1.43299 10.442C1.31582 10.3247 1.25 10.1657 1.25 9.99999C1.25 9.83423 1.31582 9.67526 1.43299 9.55802L8.93299 2.05802C9.02041 1.97062 9.13178 1.91111 9.25301 1.887C9.37425 1.8629 9.49991 1.87528 9.61412 1.92258C9.72832 1.96989 9.82593 2.04999 9.89461 2.15277C9.96329 2.25554 9.99995 2.37638 9.99996 2.49999V5.62499H16.25C16.5814 5.62537 16.8991 5.75718 17.1334 5.99152C17.3678 6.22586 17.4996 6.54358 17.5 6.87499V13.125C17.4996 13.4564 17.3678 13.7741 17.1334 14.0085C16.8991 14.2428 16.5814 14.3746 16.25 14.375H9.99996V17.5C9.99995 17.6236 9.96329 17.7444 9.89461 17.8472C9.82593 17.95 9.72832 18.0301 9.61412 18.0774C9.49991 18.1247 9.37425 18.1371 9.25301 18.113C9.13178 18.0889 9.02041 18.0294 8.93299 17.942Z",
33
+ fill: "currentColor"
34
+ }));
35
+ };
36
+
37
+ const RoundedX = ({ className = "" }) => {
38
+ return /* @__PURE__ */ React.createElement("svg", {
39
+ width: "24",
40
+ height: "24",
41
+ viewBox: "0 0 24 24",
42
+ fill: "none",
43
+ xmlns: "http://www.w3.org/2000/svg",
44
+ className
45
+ }, /* @__PURE__ */ React.createElement("path", {
46
+ d: "M18.75 5.25L5.25 18.75",
47
+ stroke: "#18224E",
48
+ strokeWidth: "4",
49
+ strokeLinecap: "round",
50
+ strokeLinejoin: "round"
51
+ }), /* @__PURE__ */ React.createElement("path", {
52
+ d: "M18.75 18.75L5.25 5.25",
53
+ stroke: "#18224E",
54
+ strokeWidth: "4",
55
+ strokeLinecap: "round",
56
+ strokeLinejoin: "round"
57
+ }));
58
+ };
59
+
60
+ const FitText = ({
61
+ text,
62
+ width,
63
+ className = "",
64
+ minFontSize = 10,
65
+ maxFontSize = 100
66
+ }) => {
67
+ const textRef = useRef(null);
68
+ let animationFrameId = null;
69
+ const adjustFontSize = () => {
70
+ var _a;
71
+ if (textRef.current) {
72
+ const currentFontSize = parseFloat(window.getComputedStyle(textRef.current).getPropertyValue("font-size"));
73
+ textRef.current.style.whiteSpace = "nowrap";
74
+ const parentWidth = (_a = textRef.current.parentNode) == null ? void 0 : _a.clientWidth;
75
+ const scrollWidth = textRef.current.scrollWidth || textRef.current.offsetWidth;
76
+ if (scrollWidth === 0) {
77
+ if (animationFrameId !== null) {
78
+ cancelAnimationFrame(animationFrameId);
79
+ }
80
+ animationFrameId = requestAnimationFrame(adjustFontSize);
81
+ return;
82
+ }
83
+ const newFontSize = Math.min(Math.max(parentWidth / scrollWidth * currentFontSize, minFontSize), maxFontSize);
84
+ textRef.current.style.fontSize = `${newFontSize}px`;
85
+ textRef.current.style.whiteSpace = newFontSize === minFontSize ? "normal" : "nowrap";
86
+ }
87
+ };
88
+ const handleResize = () => {
89
+ if (animationFrameId !== null) {
90
+ cancelAnimationFrame(animationFrameId);
91
+ }
92
+ animationFrameId = requestAnimationFrame(adjustFontSize);
93
+ };
94
+ useEffect(() => {
95
+ window.addEventListener("resize", handleResize);
96
+ adjustFontSize();
97
+ return () => {
98
+ window.removeEventListener("resize", handleResize);
99
+ if (animationFrameId !== null) {
100
+ cancelAnimationFrame(animationFrameId);
101
+ }
102
+ };
103
+ }, [text]);
104
+ return /* @__PURE__ */ React.createElement("div", {
105
+ style: { width },
106
+ className: `text-center ${className}`
107
+ }, /* @__PURE__ */ React.createElement("span", {
108
+ className: `text-[${minFontSize}px] transition-[font-size] whitespace-nowrap`,
109
+ ref: textRef
110
+ }, text));
111
+ };
112
+
113
+ const InfoBox = ({ text, handleClose, backgroundColor = "#6366F1" }) => {
114
+ const bgColorWithOpacity = `${backgroundColor}1F`;
115
+ return /* @__PURE__ */ React.createElement("div", {
116
+ className: "info-box p-[10px] rounded-[10px] w-full font-poppins text-[12px] leading[18px]",
117
+ style: { backgroundColor: bgColorWithOpacity }
118
+ }, text, " ", /* @__PURE__ */ React.createElement("button", {
119
+ onClick: handleClose,
120
+ className: "text-indigo-500 font-[700] select-none"
121
+ }, "Close"));
122
+ };
123
+
124
+ const IssueHistoryBox = ({
125
+ issueHistory,
126
+ customIssueHistoryComponent
127
+ }) => {
128
+ let renderIssueHistory = issueHistory == null ? void 0 : issueHistory.map((issueItem) => {
129
+ return /* @__PURE__ */ React.createElement("div", {
130
+ className: "flex items-center issue-log-item border-b-[1px] py-[5px] border-grayscale-200 border-solid w-full",
131
+ key: issueItem == null ? void 0 : issueItem.id
132
+ }, /* @__PURE__ */ React.createElement("div", {
133
+ className: "profile-thumb-img vc-issuee-image h-[35px] w-[35px] rounded-full overflow-hidden"
134
+ }, /* @__PURE__ */ React.createElement("img", {
135
+ className: "h-full w-full object-cover select-none",
136
+ src: (issueItem == null ? void 0 : issueItem.thumb) || DefaultFace,
137
+ alt: "profile"
138
+ })), /* @__PURE__ */ React.createElement("div", {
139
+ className: "ml-[9px] flex flex-col justify-center"
140
+ }, /* @__PURE__ */ React.createElement("p", {
141
+ className: "issue-item-name font-montserrat font-semibold text-grayscale-900 text-[14px] "
142
+ }, issueItem == null ? void 0 : issueItem.name), /* @__PURE__ */ React.createElement("p", {
143
+ className: "issue-item-date font-montserrat text-[12px] text-grayscale-600 "
144
+ }, issueItem == null ? void 0 : issueItem.date)));
145
+ });
146
+ return /* @__PURE__ */ React.createElement("div", {
147
+ className: "bg-white flex flex-col items-start gap-[10px] rounded-[20px] shadow-bottom px-[15px] py-[20px] w-full relative"
148
+ }, /* @__PURE__ */ React.createElement("h3", {
149
+ className: "text-[20px] leading-[20px] text-grayscale-900"
150
+ }, "Issue Log"), !customIssueHistoryComponent ? renderIssueHistory : customIssueHistoryComponent);
151
+ };
152
+
153
+ var __async = (__this, __arguments, generator) => {
154
+ return new Promise((resolve, reject) => {
155
+ var fulfilled = (value) => {
156
+ try {
157
+ step(generator.next(value));
158
+ } catch (e) {
159
+ reject(e);
160
+ }
161
+ };
162
+ var rejected = (value) => {
163
+ try {
164
+ step(generator.throw(value));
165
+ } catch (e) {
166
+ reject(e);
167
+ }
168
+ };
169
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
170
+ step((generator = generator.apply(__this, __arguments)).next());
171
+ });
172
+ };
173
+ const defaultGetFileMetadata = (url) => __async(undefined, null, function* () {
174
+ var _a;
175
+ const isFilestack = url.includes("filestack");
176
+ if (!isFilestack)
177
+ return;
178
+ const urlParams = (_a = url.split(".com/")[1]) == null ? void 0 : _a.split("/");
179
+ if (!urlParams)
180
+ return;
181
+ const handle = urlParams[urlParams.length - 1];
182
+ let fetchFailed = false;
183
+ const data = yield fetch(`https://cdn.filestackcontent.com/${handle}/metadata`).then((res) => res.json()).catch(() => fetchFailed = true);
184
+ if (fetchFailed)
185
+ return;
186
+ const fileExtension = data.filename.split(".")[1];
187
+ return {
188
+ fileExtension,
189
+ sizeInBytes: data.size,
190
+ numberOfPages: void 0
191
+ };
192
+ });
193
+ const defaultGetVideoMetadata = (url) => __async(undefined, null, function* () {
194
+ const isYoutube = url.includes("youtube");
195
+ if (!isYoutube)
196
+ return;
197
+ const metadataUrl = `http://youtube.com/oembed?url=${url}&format=json`;
198
+ let fetchFailed = false;
199
+ const metadata = yield fetch(metadataUrl).then((res) => res.json()).catch(() => fetchFailed = true);
200
+ if (fetchFailed)
201
+ return;
202
+ return {
203
+ title: metadata.title,
204
+ imageUrl: metadata.thumbnail_url,
205
+ videoLength: ""
206
+ };
207
+ });
208
+ const MediaAttachmentsBox = ({
209
+ attachments,
210
+ getFileMetadata = defaultGetFileMetadata,
211
+ getVideoMetadata = defaultGetVideoMetadata,
212
+ onMediaAttachmentClick,
213
+ enableLightbox = false
214
+ }) => {
215
+ const [documentMetadata, setDocumentMetadata] = useState({});
216
+ const [videoMetadata, setVideoMetadata] = useState({});
217
+ const mediaAttachments = [];
218
+ const documentsAndLinks = [];
219
+ attachments.forEach((a) => {
220
+ switch (a.type) {
221
+ case "document":
222
+ case "link":
223
+ documentsAndLinks.push(a);
224
+ break;
225
+ case "photo":
226
+ case "video":
227
+ mediaAttachments.push(a);
228
+ break;
229
+ }
230
+ });
231
+ useEffect(() => {
232
+ const getMetadata = (attachments2) => __async(undefined, null, function* () {
233
+ const docMetadata = {};
234
+ const videoMetadata2 = {};
235
+ yield Promise.all(attachments2.map((attachment) => __async(this, null, function* () {
236
+ if (attachment.type === "document") {
237
+ docMetadata[attachment.url] = yield getFileMetadata(attachment.url);
238
+ } else if (attachment.type === "video") {
239
+ videoMetadata2[attachment.url] = yield getVideoMetadata(attachment.url);
240
+ }
241
+ })));
242
+ setVideoMetadata(videoMetadata2);
243
+ setDocumentMetadata(docMetadata);
244
+ });
245
+ const videos = attachments.filter((a) => a.type === "video");
246
+ getMetadata([...documentsAndLinks, ...videos]);
247
+ }, []);
248
+ const [currentLightboxUrl, setCurrentLightboxUrl] = useState(void 0);
249
+ const lightboxItems = mediaAttachments.filter((a) => a.type === "photo" || a.type === "video");
250
+ const handleMediaAttachmentClick = (url, type) => {
251
+ if (type === "photo" || type === "video") {
252
+ setCurrentLightboxUrl(url);
253
+ }
254
+ onMediaAttachmentClick == null ? void 0 : onMediaAttachmentClick(url, type);
255
+ };
256
+ return /* @__PURE__ */ React.createElement("div", {
257
+ className: "media-attachments-box bg-white flex flex-col items-start gap-[10px] rounded-[20px] shadow-bottom px-[15px] py-[20px] w-full"
258
+ }, /* @__PURE__ */ React.createElement("h3", {
259
+ className: "text-[20px] leading-[20px] text-grayscale-900"
260
+ }, "Media Attachments"), mediaAttachments.length > 0 && /* @__PURE__ */ React.createElement("div", {
261
+ className: "flex gap-[5px] justify-between flex-wrap w-full"
262
+ }, enableLightbox && /* @__PURE__ */ React.createElement(Lightbox, {
263
+ items: lightboxItems,
264
+ currentUrl: currentLightboxUrl,
265
+ setCurrentUrl: setCurrentLightboxUrl
266
+ }), mediaAttachments.map((media, index) => {
267
+ var _a, _b;
268
+ let innerContent;
269
+ let title = media.title;
270
+ if (media.type === "video") {
271
+ const metadata = videoMetadata[media.url];
272
+ title = (_a = title || (metadata == null ? void 0 : metadata.title)) != null ? _a : "";
273
+ const baseUrl = getBaseUrl(media.url);
274
+ const iconTop = title || baseUrl;
275
+ innerContent = /* @__PURE__ */ React.createElement("div", {
276
+ className: "absolute top-0 left-0 right-0 bottom-0 bg-cover bg-no-repeat font-poppins text-white text-[12px] font-[400] leading-[17px] flex flex-col justify-end items-start p-[10px] text-left bg-rose-600 rounded-[15px]",
277
+ style: {
278
+ backgroundImage: (metadata == null ? void 0 : metadata.imageUrl) ? `linear-gradient(180deg, rgba(0, 0, 0, 0) 44.20%, rgba(0, 0, 0, 0.6) 69%), url(${(_b = metadata == null ? void 0 : metadata.imageUrl) != null ? _b : ""})` : void 0
279
+ }
280
+ }, !(metadata == null ? void 0 : metadata.imageUrl) && /* @__PURE__ */ React.createElement(VideoIcon, {
281
+ size: "60",
282
+ className: "m-auto"
283
+ }), /* @__PURE__ */ React.createElement("div", {
284
+ className: `absolute ${iconTop ? "top-[10px]" : "bottom-[10px]"} left-[10px] z-10 flex items-center gap-[5px]`
285
+ }, (metadata == null ? void 0 : metadata.imageUrl) && /* @__PURE__ */ React.createElement(VideoIcon, null), (metadata == null ? void 0 : metadata.videoLength) && /* @__PURE__ */ React.createElement("span", {
286
+ className: "leading-[23px]"
287
+ }, metadata.videoLength)), baseUrl && /* @__PURE__ */ React.createElement("span", {
288
+ className: "font-[600]"
289
+ }, baseUrl), title && /* @__PURE__ */ React.createElement("span", {
290
+ className: "line-clamp-2"
291
+ }, title));
292
+ } else {
293
+ innerContent = /* @__PURE__ */ React.createElement("div", {
294
+ className: "absolute top-0 left-0 right-0 bottom-0 h-min"
295
+ }, /* @__PURE__ */ React.createElement("img", {
296
+ className: "rounded-[15px]",
297
+ src: media.url
298
+ }), /* @__PURE__ */ React.createElement(Camera, {
299
+ className: "relative bottom-[30px] left-[10px] z-10"
300
+ }));
301
+ }
302
+ const className = `media-attachment ${media.type} w-[49%] pt-[49%] overflow-hidden relative`;
303
+ if (onMediaAttachmentClick || enableLightbox) {
304
+ return /* @__PURE__ */ React.createElement("button", {
305
+ key: index,
306
+ className,
307
+ onClick: () => handleMediaAttachmentClick(media.url, media.type)
308
+ }, innerContent);
309
+ }
310
+ return /* @__PURE__ */ React.createElement("div", {
311
+ key: index,
312
+ className
313
+ }, innerContent);
314
+ })), documentsAndLinks.length > 0 && /* @__PURE__ */ React.createElement("div", {
315
+ className: "w-full flex flex-col gap-[5px]"
316
+ }, documentsAndLinks.map((docOrLink, index) => {
317
+ var _a;
318
+ const metadata = docOrLink.type === "document" ? documentMetadata[docOrLink.url] : void 0;
319
+ const { fileExtension, sizeInBytes, numberOfPages } = metadata != null ? metadata : {};
320
+ let baseUrl = "";
321
+ if (docOrLink.type === "link") {
322
+ baseUrl = getBaseUrl(docOrLink.url);
323
+ }
324
+ const innerContent = /* @__PURE__ */ React.createElement("div", {
325
+ className: "flex flex-col gap-[5px]"
326
+ }, /* @__PURE__ */ React.createElement("div", {
327
+ className: "flex gap-[5px] items-center"
328
+ }, docOrLink.type === "document" && /* @__PURE__ */ React.createElement(GenericDocumentIcon, {
329
+ className: "shrink-0"
330
+ }), docOrLink.type === "link" && /* @__PURE__ */ React.createElement(LinkIcon, {
331
+ className: "shrink-0"
332
+ }), /* @__PURE__ */ React.createElement("span", {
333
+ className: "text-grayscale-900 font-[400]"
334
+ }, (_a = docOrLink.title) != null ? _a : "No title")), docOrLink.type === "document" && metadata && /* @__PURE__ */ React.createElement("a", {
335
+ href: docOrLink.url,
336
+ target: "_blank",
337
+ rel: "noreferrer",
338
+ className: "text-grayscale-600 font-[600] px-[5px] hover:underline"
339
+ }, fileExtension && /* @__PURE__ */ React.createElement("span", {
340
+ className: "uppercase"
341
+ }, fileExtension), fileExtension && (numberOfPages || sizeInBytes) && " \u2022 ", numberOfPages && /* @__PURE__ */ React.createElement("span", null, numberOfPages, " page", numberOfPages === 1 ? "" : "s"), numberOfPages && sizeInBytes && " \u2022 ", sizeInBytes && /* @__PURE__ */ React.createElement("span", null, prettyBytes(sizeInBytes))), docOrLink.type === "link" && /* @__PURE__ */ React.createElement("a", {
342
+ href: docOrLink.url,
343
+ target: "_blank",
344
+ rel: "noreferrer",
345
+ className: "text-indigo-500 font-[600] px-[5px] hover:underline"
346
+ }, baseUrl));
347
+ const className = `row-attachment ${docOrLink.type} bg-grayscale-100 rounded-[15px] p-[10px] w-full font-poppins text-[12px] leading-[18px] tracking-[-0.33px] text-left`;
348
+ if (onMediaAttachmentClick) {
349
+ return /* @__PURE__ */ React.createElement("button", {
350
+ key: index,
351
+ className,
352
+ onClick: () => handleMediaAttachmentClick(docOrLink.url, docOrLink.type)
353
+ }, innerContent);
354
+ }
355
+ return /* @__PURE__ */ React.createElement("div", {
356
+ key: index,
357
+ className
358
+ }, innerContent);
359
+ })));
360
+ };
361
+
362
+ const RibbonEnd = ({
363
+ side,
364
+ className = "",
365
+ height = "64"
366
+ }) => {
367
+ const halfHeight = parseInt(height) / 2;
368
+ return /* @__PURE__ */ React.createElement("svg", {
369
+ className,
370
+ width: "30",
371
+ height,
372
+ viewBox: `0 0 30 ${height}`,
373
+ fill: "none",
374
+ xmlns: "http://www.w3.org/2000/svg",
375
+ style: { transform: `scaleX(${side === "left" ? "1" : "-1"})` }
376
+ }, /* @__PURE__ */ React.createElement("g", {
377
+ filter: "url(#filter0_d_4620_22659)"
378
+ }, /* @__PURE__ */ React.createElement("path", {
379
+ d: `M0 0H30V${height}H0L6.36364 ${halfHeight}L0 0Z`,
380
+ fill: "white"
381
+ }), /* @__PURE__ */ React.createElement("path", {
382
+ d: `M3.08593 2.5H27.5V${height}H3.08593L8.80922 ${halfHeight}L8.91926 30L8.80922 29.4812L3.08593 2.5Z`,
383
+ stroke: "#EEF2FF",
384
+ strokeWidth: "5"
385
+ })), /* @__PURE__ */ React.createElement("defs", null, /* @__PURE__ */ React.createElement("filter", {
386
+ id: "filter0_d_4620_22659",
387
+ x: "0",
388
+ y: "0",
389
+ width: "30",
390
+ height,
391
+ filterUnits: "userSpaceOnUse",
392
+ colorInterpolationFilters: "sRGB"
393
+ }, /* @__PURE__ */ React.createElement("feFlood", {
394
+ floodOpacity: "0",
395
+ result: "BackgroundImageFix"
396
+ }), /* @__PURE__ */ React.createElement("feColorMatrix", {
397
+ in: "SourceAlpha",
398
+ type: "matrix",
399
+ values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0",
400
+ result: "hardAlpha"
401
+ }), /* @__PURE__ */ React.createElement("feOffset", {
402
+ dy: "4"
403
+ }), /* @__PURE__ */ React.createElement("feComposite", {
404
+ in2: "hardAlpha",
405
+ operator: "out"
406
+ }), /* @__PURE__ */ React.createElement("feColorMatrix", {
407
+ type: "matrix",
408
+ values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"
409
+ }), /* @__PURE__ */ React.createElement("feBlend", {
410
+ mode: "normal",
411
+ in2: "BackgroundImageFix",
412
+ result: "effect1_dropShadow_4620_22659"
413
+ }), /* @__PURE__ */ React.createElement("feBlend", {
414
+ mode: "normal",
415
+ in: "SourceGraphic",
416
+ in2: "effect1_dropShadow_4620_22659",
417
+ result: "shape"
418
+ }))));
419
+ };
420
+
421
+ const boostCMSSKillCategories = [
422
+ {
423
+ id: 1,
424
+ title: "Durable",
425
+ IconComponent: Durable,
426
+ iconClassName: "text-white",
427
+ iconCircleClass: "bg-cyan-700",
428
+ type: "durable" /* Durable */
429
+ },
430
+ {
431
+ id: 2,
432
+ title: "Stem",
433
+ IconComponent: Stem,
434
+ iconClassName: "text-white",
435
+ iconCircleClass: "bg-cyan-700",
436
+ type: "stem" /* Stem */
437
+ },
438
+ {
439
+ id: 3,
440
+ title: "Athletic",
441
+ IconComponent: Athletics,
442
+ iconClassName: "text-white",
443
+ iconCircleClass: "bg-cyan-700",
444
+ type: "athletic" /* Athletic */
445
+ },
446
+ {
447
+ id: 4,
448
+ title: "Creative",
449
+ IconComponent: Creative,
450
+ iconClassName: "text-white",
451
+ iconCircleClass: "bg-cyan-700",
452
+ type: "creative" /* Creative */
453
+ },
454
+ {
455
+ id: 5,
456
+ title: "Business",
457
+ IconComponent: Business,
458
+ iconClassName: "text-white",
459
+ iconCircleClass: "bg-cyan-700",
460
+ type: "business" /* Business */
461
+ },
462
+ {
463
+ id: 6,
464
+ title: "Trade",
465
+ IconComponent: Trade,
466
+ iconClassName: "text-white",
467
+ iconCircleClass: "bg-cyan-700",
468
+ type: "trade" /* Trade */
469
+ },
470
+ {
471
+ id: 7,
472
+ title: "Social",
473
+ IconComponent: Social,
474
+ iconClassName: "text-white",
475
+ iconCircleClass: "bg-cyan-700",
476
+ type: "social" /* Social */
477
+ },
478
+ {
479
+ id: 8,
480
+ title: "Digital",
481
+ IconComponent: Digital,
482
+ iconClassName: "text-white",
483
+ iconCircleClass: "bg-cyan-700",
484
+ type: "digital" /* Digital */
485
+ },
486
+ {
487
+ id: 9,
488
+ title: "Medical",
489
+ IconComponent: Medical,
490
+ iconClassName: "text-white",
491
+ iconCircleClass: "bg-cyan-700",
492
+ type: "medical" /* Medical */
493
+ }
494
+ ];
495
+ const CATEGORY_TO_SKILLS = {
496
+ ["durable" /* Durable */]: [
497
+ {
498
+ id: 1,
499
+ title: "Adaptability",
500
+ IconComponent: Durable,
501
+ iconClassName: "text-white",
502
+ iconCircleClass: "bg-cyan-700",
503
+ category: "durable" /* Durable */,
504
+ type: "adaptability" /* Adaptability */
505
+ },
506
+ {
507
+ id: 2,
508
+ title: "Perseverance",
509
+ IconComponent: Durable,
510
+ iconClassName: "text-white",
511
+ iconCircleClass: "bg-cyan-700",
512
+ category: "durable" /* Durable */,
513
+ type: "perseverance" /* Perseverance */
514
+ },
515
+ {
516
+ id: 3,
517
+ title: "Mental Toughness",
518
+ IconComponent: Durable,
519
+ iconClassName: "text-white",
520
+ iconCircleClass: "bg-cyan-700",
521
+ category: "durable" /* Durable */,
522
+ type: "mentalToughness" /* MentalToughness */
523
+ },
524
+ {
525
+ id: 4,
526
+ title: "Physical Endurance",
527
+ IconComponent: Durable,
528
+ iconClassName: "text-white",
529
+ iconCircleClass: "bg-cyan-700",
530
+ category: "durable" /* Durable */,
531
+ type: "physicalEndurance" /* PhysicalEndurance */
532
+ },
533
+ {
534
+ id: 5,
535
+ title: "Lifelong Learning",
536
+ IconComponent: Durable,
537
+ iconClassName: "text-white",
538
+ iconCircleClass: "bg-cyan-700",
539
+ category: "durable" /* Durable */,
540
+ type: "lifelongLearning" /* LifelongLearning */
541
+ }
542
+ ],
543
+ ["stem" /* Stem */]: [
544
+ {
545
+ id: 1,
546
+ title: "Mathematics",
547
+ IconComponent: Stem,
548
+ iconClassName: "text-white",
549
+ iconCircleClass: "bg-cyan-700",
550
+ category: "stem" /* Stem */,
551
+ type: "mathematics" /* Mathematics */
552
+ },
553
+ {
554
+ id: 2,
555
+ title: "Science",
556
+ IconComponent: Stem,
557
+ iconClassName: "text-white",
558
+ iconCircleClass: "bg-cyan-700",
559
+ category: "stem" /* Stem */,
560
+ type: "science" /* Science */
561
+ },
562
+ {
563
+ id: 3,
564
+ title: "Technology",
565
+ IconComponent: Stem,
566
+ iconClassName: "text-white",
567
+ iconCircleClass: "bg-cyan-700",
568
+ category: "stem" /* Stem */,
569
+ type: "technology" /* Technology */
570
+ },
571
+ {
572
+ id: 4,
573
+ title: "Engineering",
574
+ IconComponent: Stem,
575
+ iconClassName: "text-white",
576
+ iconCircleClass: "bg-cyan-700",
577
+ category: "stem" /* Stem */,
578
+ type: "engineering" /* Engineering */
579
+ },
580
+ {
581
+ id: 5,
582
+ title: "Research",
583
+ IconComponent: Stem,
584
+ iconClassName: "text-white",
585
+ iconCircleClass: "bg-cyan-700",
586
+ category: "stem" /* Stem */,
587
+ type: "research" /* Research */
588
+ }
589
+ ],
590
+ ["athletic" /* Athletic */]: [
591
+ {
592
+ id: 1,
593
+ title: "Sport specific skills",
594
+ IconComponent: Athletics,
595
+ iconClassName: "text-white",
596
+ iconCircleClass: "bg-cyan-700",
597
+ category: "athletic" /* Athletic */,
598
+ type: "sportSpecificSkills" /* SportSpecificSkills */
599
+ },
600
+ {
601
+ id: 2,
602
+ title: "Strength and Conditioning",
603
+ IconComponent: Athletics,
604
+ iconClassName: "text-white",
605
+ iconCircleClass: "bg-cyan-700",
606
+ category: "athletic" /* Athletic */,
607
+ type: "strengthAndConditioning" /* StrengthAndConditioning */
608
+ },
609
+ {
610
+ id: 3,
611
+ title: "Coordination",
612
+ IconComponent: Athletics,
613
+ iconClassName: "text-white",
614
+ iconCircleClass: "bg-cyan-700",
615
+ category: "athletic" /* Athletic */,
616
+ type: "coordination" /* Coordination */
617
+ },
618
+ {
619
+ id: 4,
620
+ title: "Mental Focus",
621
+ IconComponent: Athletics,
622
+ iconClassName: "text-white",
623
+ iconCircleClass: "bg-cyan-700",
624
+ category: "athletic" /* Athletic */,
625
+ type: "mentalFocus" /* MentalFocus */
626
+ },
627
+ {
628
+ id: 5,
629
+ title: "Team work",
630
+ IconComponent: Athletics,
631
+ iconClassName: "text-white",
632
+ iconCircleClass: "bg-cyan-700",
633
+ category: "athletic" /* Athletic */,
634
+ type: "teamwork" /* Teamwork */
635
+ }
636
+ ],
637
+ ["creative" /* Creative */]: [
638
+ {
639
+ id: 1,
640
+ title: "Visual Arts",
641
+ IconComponent: Creative,
642
+ iconClassName: "text-white",
643
+ iconCircleClass: "bg-cyan-700",
644
+ category: "creative" /* Creative */,
645
+ type: "visualArts" /* VisualArts */
646
+ },
647
+ {
648
+ id: 2,
649
+ title: "Performing Arts",
650
+ IconComponent: Creative,
651
+ iconClassName: "text-white",
652
+ iconCircleClass: "bg-cyan-700",
653
+ category: "creative" /* Creative */,
654
+ type: "performingArts" /* PerformingArts */
655
+ },
656
+ {
657
+ id: 3,
658
+ title: "Writing",
659
+ IconComponent: Creative,
660
+ iconClassName: "text-white",
661
+ iconCircleClass: "bg-cyan-700",
662
+ category: "creative" /* Creative */,
663
+ type: "writing" /* Writing */
664
+ },
665
+ {
666
+ id: 4,
667
+ title: "Design",
668
+ IconComponent: Creative,
669
+ iconClassName: "text-white",
670
+ iconCircleClass: "bg-cyan-700",
671
+ category: "creative" /* Creative */,
672
+ type: "design" /* Design */
673
+ },
674
+ {
675
+ id: 5,
676
+ title: "Ideation",
677
+ IconComponent: Creative,
678
+ iconClassName: "text-white",
679
+ iconCircleClass: "bg-cyan-700",
680
+ category: "creative" /* Creative */,
681
+ type: "ideation" /* Ideation */
682
+ }
683
+ ],
684
+ ["business" /* Business */]: [
685
+ {
686
+ id: 1,
687
+ title: "Management",
688
+ IconComponent: Business,
689
+ iconClassName: "text-white",
690
+ iconCircleClass: "bg-cyan-700",
691
+ category: "business" /* Business */,
692
+ type: "management" /* Management */
693
+ },
694
+ {
695
+ id: 2,
696
+ title: "Finance",
697
+ IconComponent: Business,
698
+ iconClassName: "text-white",
699
+ iconCircleClass: "bg-cyan-700",
700
+ category: "business" /* Business */,
701
+ type: "finance" /* Finance */
702
+ },
703
+ {
704
+ id: 3,
705
+ title: "Marketing",
706
+ IconComponent: Business,
707
+ iconClassName: "text-white",
708
+ iconCircleClass: "bg-cyan-700",
709
+ category: "business" /* Business */,
710
+ type: "marketing" /* Marketing */
711
+ },
712
+ {
713
+ id: 4,
714
+ title: "Operations",
715
+ IconComponent: Business,
716
+ iconClassName: "text-white",
717
+ iconCircleClass: "bg-cyan-700",
718
+ category: "business" /* Business */,
719
+ type: "operations" /* Operations */
720
+ },
721
+ {
722
+ id: 5,
723
+ title: "Entrepreneurship",
724
+ IconComponent: Business,
725
+ iconClassName: "text-white",
726
+ iconCircleClass: "bg-cyan-700",
727
+ category: "business" /* Business */,
728
+ type: "entrepreneurship" /* Entrepreneurship */
729
+ }
730
+ ],
731
+ ["trade" /* Trade */]: [
732
+ {
733
+ id: 1,
734
+ title: "Construction",
735
+ IconComponent: Trade,
736
+ iconClassName: "text-white",
737
+ iconCircleClass: "bg-cyan-700",
738
+ category: "trade" /* Trade */,
739
+ type: "construction" /* Construction */
740
+ },
741
+ {
742
+ id: 2,
743
+ title: "Mechanics",
744
+ IconComponent: Trade,
745
+ iconClassName: "text-white",
746
+ iconCircleClass: "bg-cyan-700",
747
+ category: "trade" /* Trade */,
748
+ type: "mechanics" /* Mechanics */
749
+ },
750
+ {
751
+ id: 3,
752
+ title: "Manufacturing",
753
+ IconComponent: Trade,
754
+ iconClassName: "text-white",
755
+ iconCircleClass: "bg-cyan-700",
756
+ category: "trade" /* Trade */,
757
+ type: "manufacturing" /* Manufacturing */
758
+ },
759
+ {
760
+ id: 4,
761
+ title: "Cosmetology",
762
+ IconComponent: Trade,
763
+ iconClassName: "text-white",
764
+ iconCircleClass: "bg-cyan-700",
765
+ category: "trade" /* Trade */,
766
+ type: "cosmetology" /* Cosmetology */
767
+ },
768
+ {
769
+ id: 5,
770
+ title: "Culinary Arts",
771
+ IconComponent: Trade,
772
+ iconClassName: "text-white",
773
+ iconCircleClass: "bg-cyan-700",
774
+ category: "trade" /* Trade */,
775
+ type: "culinaryArts" /* CulinaryArts */
776
+ }
777
+ ],
778
+ ["social" /* Social */]: [
779
+ {
780
+ id: 1,
781
+ title: "History",
782
+ IconComponent: Social,
783
+ iconClassName: "text-white",
784
+ iconCircleClass: "bg-cyan-700",
785
+ category: "social" /* Social */,
786
+ type: "history" /* History */
787
+ },
788
+ {
789
+ id: 2,
790
+ title: "Psychology",
791
+ IconComponent: Social,
792
+ iconClassName: "text-white",
793
+ iconCircleClass: "bg-cyan-700",
794
+ category: "social" /* Social */,
795
+ type: "psychology" /* Psychology */
796
+ },
797
+ {
798
+ id: 3,
799
+ title: "Sociology",
800
+ IconComponent: Social,
801
+ iconClassName: "text-white",
802
+ iconCircleClass: "bg-cyan-700",
803
+ category: "social" /* Social */,
804
+ type: "sociology" /* Sociology */
805
+ },
806
+ {
807
+ id: 4,
808
+ title: "Economics",
809
+ IconComponent: Social,
810
+ iconClassName: "text-white",
811
+ iconCircleClass: "bg-cyan-700",
812
+ category: "social" /* Social */,
813
+ type: "economics" /* Economics */
814
+ },
815
+ {
816
+ id: 5,
817
+ title: "Political Science",
818
+ IconComponent: Social,
819
+ iconClassName: "text-white",
820
+ iconCircleClass: "bg-cyan-700",
821
+ category: "social" /* Social */,
822
+ type: "politicalScience" /* PoliticalScience */
823
+ }
824
+ ],
825
+ ["digital" /* Digital */]: [
826
+ {
827
+ id: 1,
828
+ title: "Basic Computer Skills",
829
+ IconComponent: Digital,
830
+ iconClassName: "text-white",
831
+ iconCircleClass: "bg-cyan-700",
832
+ category: "digital" /* Digital */,
833
+ type: "basicComputerSkills" /* BasicComputerSkills */
834
+ },
835
+ {
836
+ id: 2,
837
+ title: "Information Literacy",
838
+ IconComponent: Digital,
839
+ iconClassName: "text-white",
840
+ iconCircleClass: "bg-cyan-700",
841
+ category: "digital" /* Digital */,
842
+ type: "informationLiteracy" /* InformationLiteracy */
843
+ },
844
+ {
845
+ id: 3,
846
+ title: "Software Proficiency",
847
+ IconComponent: Digital,
848
+ iconClassName: "text-white",
849
+ iconCircleClass: "bg-cyan-700",
850
+ category: "digital" /* Digital */,
851
+ type: "softwareProficiency" /* SoftwareProficiency */
852
+ },
853
+ {
854
+ id: 4,
855
+ title: "Online Communication",
856
+ IconComponent: Digital,
857
+ iconClassName: "text-white",
858
+ iconCircleClass: "bg-cyan-700",
859
+ category: "digital" /* Digital */,
860
+ type: "onlineCommunication" /* OnlineCommunication */
861
+ },
862
+ {
863
+ id: 5,
864
+ title: "Cybersecurity",
865
+ IconComponent: Digital,
866
+ iconClassName: "text-white",
867
+ iconCircleClass: "bg-cyan-700",
868
+ category: "digital" /* Digital */,
869
+ type: "cybersecurity" /* Cybersecurity */
870
+ }
871
+ ],
872
+ ["medical" /* Medical */]: [
873
+ {
874
+ id: 1,
875
+ title: "Clinical Skills",
876
+ IconComponent: Medical,
877
+ iconClassName: "text-white",
878
+ iconCircleClass: "bg-cyan-700",
879
+ category: "medical" /* Medical */,
880
+ type: "clinicalSkills" /* ClinicalSkills */
881
+ },
882
+ {
883
+ id: 2,
884
+ title: "Anatomy and Physiology",
885
+ IconComponent: Medical,
886
+ iconClassName: "text-white",
887
+ iconCircleClass: "bg-cyan-700",
888
+ category: "medical" /* Medical */,
889
+ type: "anatomyAndPhysiology" /* AnatomyAndPhysiology */
890
+ },
891
+ {
892
+ id: 3,
893
+ title: "Patient Care",
894
+ IconComponent: Medical,
895
+ iconClassName: "text-white",
896
+ iconCircleClass: "bg-cyan-700",
897
+ category: "medical" /* Medical */,
898
+ type: "patientCare" /* PatientCare */
899
+ },
900
+ {
901
+ id: 4,
902
+ title: "Medical Specialties",
903
+ IconComponent: Medical,
904
+ iconClassName: "text-white",
905
+ iconCircleClass: "bg-cyan-700",
906
+ category: "medical" /* Medical */,
907
+ type: "medicalSpecialties" /* MedicalSpecialties */
908
+ },
909
+ {
910
+ id: 5,
911
+ title: "Healthcare Administration",
912
+ IconComponent: Medical,
913
+ iconClassName: "text-white",
914
+ iconCircleClass: "bg-cyan-700",
915
+ category: "medical" /* Medical */,
916
+ type: "healthcareAdministration" /* HealthcareAdministration */
917
+ }
918
+ ]
919
+ };
920
+ const SKILLS_TO_SUBSKILLS = {
921
+ ["adaptability" /* Adaptability */]: [
922
+ {
923
+ id: 1,
924
+ title: "Flexibility",
925
+ type: "flexibility" /* flexibility */
926
+ },
927
+ {
928
+ id: 2,
929
+ title: "Resilience",
930
+ type: "resilience" /* resilience */
931
+ },
932
+ {
933
+ id: 3,
934
+ title: "Problem Solving",
935
+ type: "problemSolving" /* problemSolving */
936
+ },
937
+ {
938
+ id: 4,
939
+ title: "Resourcefulness",
940
+ type: "resourcefulness" /* resourcefulness */
941
+ },
942
+ {
943
+ id: 5,
944
+ title: "Stress management",
945
+ type: "stressManagement" /* stressManagement */
946
+ }
947
+ ],
948
+ ["perseverance" /* Perseverance */]: [
949
+ {
950
+ id: 1,
951
+ title: "Discipline",
952
+ type: "discipline" /* discipline */
953
+ },
954
+ {
955
+ id: 2,
956
+ title: "focus",
957
+ type: "focus" /* focus */
958
+ },
959
+ {
960
+ id: 3,
961
+ title: "Commitment",
962
+ type: "commitment" /* commitment */
963
+ },
964
+ {
965
+ id: 4,
966
+ title: "Grit",
967
+ type: "grit" /* grit */
968
+ },
969
+ {
970
+ id: 5,
971
+ title: "Tenacity",
972
+ type: "tenacity" /* tenacity */
973
+ }
974
+ ],
975
+ ["mentalToughness" /* MentalToughness */]: [
976
+ {
977
+ id: 1,
978
+ title: "optimism",
979
+ type: "optimism" /* optimism */
980
+ },
981
+ {
982
+ id: 2,
983
+ title: "Self Confidence",
984
+ type: "selfConfidence" /* selfConfidence */
985
+ },
986
+ {
987
+ id: 3,
988
+ title: "Emotional Regulation",
989
+ type: "emotionalRegulation" /* emotionalRegulation */
990
+ },
991
+ {
992
+ id: 4,
993
+ title: "Growth Mindset",
994
+ type: "growthMindset" /* growthMindset */
995
+ },
996
+ {
997
+ id: 5,
998
+ title: "Positive Self-Talk",
999
+ type: "positiveSelfTalk" /* positiveSelfTalk */
1000
+ }
1001
+ ],
1002
+ ["physicalEndurance" /* PhysicalEndurance */]: [
1003
+ {
1004
+ id: 1,
1005
+ title: "Strength",
1006
+ type: "strength" /* strength */
1007
+ },
1008
+ {
1009
+ id: 2,
1010
+ title: "Stamina",
1011
+ type: "stamina" /* stamina */
1012
+ },
1013
+ {
1014
+ id: 3,
1015
+ title: "Cardiovascular Fitness",
1016
+ type: "cardiovascularFitness" /* cardiovascularFitness */
1017
+ },
1018
+ {
1019
+ id: 4,
1020
+ title: "Pain Tolerance",
1021
+ type: "painTolerance" /* painTolerance */
1022
+ },
1023
+ {
1024
+ id: 5,
1025
+ title: "Injury Prevention",
1026
+ type: "injuryPrevention" /* injuryPrevention */
1027
+ }
1028
+ ],
1029
+ ["lifelongLearning" /* LifelongLearning */]: [
1030
+ {
1031
+ id: 1,
1032
+ title: "Curiosity",
1033
+ type: "curiosity" /* curiosity */
1034
+ },
1035
+ {
1036
+ id: 2,
1037
+ title: "Open Mindedness",
1038
+ type: "openMindedness" /* openMindedness */
1039
+ },
1040
+ {
1041
+ id: 3,
1042
+ title: "Critical Thinking",
1043
+ type: "critical thinking" /* criticalThinking */
1044
+ },
1045
+ {
1046
+ id: 4,
1047
+ title: "Self-directed Learning",
1048
+ type: "selfDirectedLearning" /* selfDirectedLearning */
1049
+ },
1050
+ {
1051
+ id: 5,
1052
+ title: "Knowledge Retention",
1053
+ type: "knowledgeRetention" /* knowledgeRetention */
1054
+ }
1055
+ ],
1056
+ ["mathematics" /* Mathematics */]: [
1057
+ {
1058
+ id: 1,
1059
+ title: "Algebra",
1060
+ type: "algebra" /* algebra */
1061
+ },
1062
+ {
1063
+ id: 2,
1064
+ title: "Geometry",
1065
+ type: "geometry" /* geometry */
1066
+ },
1067
+ {
1068
+ id: 3,
1069
+ title: "Trigonometry",
1070
+ type: "trigonometry" /* trigonometry */
1071
+ },
1072
+ {
1073
+ id: 4,
1074
+ title: "Calculus",
1075
+ type: "calculus" /* calculus */
1076
+ },
1077
+ {
1078
+ id: 5,
1079
+ title: "Statistics",
1080
+ type: "statistics" /* statistics */
1081
+ }
1082
+ ],
1083
+ ["science" /* Science */]: [
1084
+ {
1085
+ id: 1,
1086
+ title: "Physics",
1087
+ type: "physics" /* physics */
1088
+ },
1089
+ {
1090
+ id: 2,
1091
+ title: "Chemistry",
1092
+ type: "chemistry" /* chemistry */
1093
+ },
1094
+ {
1095
+ id: 3,
1096
+ title: "Biology",
1097
+ type: "biology" /* biology */
1098
+ },
1099
+ {
1100
+ id: 4,
1101
+ title: "Earth science",
1102
+ type: "earthScience" /* earthScience */
1103
+ },
1104
+ {
1105
+ id: 5,
1106
+ title: "Environmental science",
1107
+ type: "environmentalScience" /* environmentalScience */
1108
+ }
1109
+ ],
1110
+ ["technology" /* Technology */]: [
1111
+ {
1112
+ id: 1,
1113
+ title: "Coding",
1114
+ type: "coding" /* coding */
1115
+ },
1116
+ {
1117
+ id: 2,
1118
+ title: "Software Development",
1119
+ type: "softwareDevelopment" /* softwareDevelopment */
1120
+ },
1121
+ {
1122
+ id: 3,
1123
+ title: "Data Analysis",
1124
+ type: "dataAnalysis" /* dataAnalysis */
1125
+ },
1126
+ {
1127
+ id: 4,
1128
+ title: "Robotics",
1129
+ type: "robotics" /* robotics */
1130
+ },
1131
+ {
1132
+ id: 5,
1133
+ title: "Cybersecurity",
1134
+ type: "cybersecurity" /* cybersecurity */
1135
+ }
1136
+ ],
1137
+ ["engineering" /* Engineering */]: [
1138
+ {
1139
+ id: 1,
1140
+ title: "Mechanical Engineering",
1141
+ type: "mechanicalEngineering" /* mechanicalEngineering */
1142
+ },
1143
+ {
1144
+ id: 2,
1145
+ title: "Electrical Engineering",
1146
+ type: "electricalEngineering" /* electricalEngineering */
1147
+ },
1148
+ {
1149
+ id: 3,
1150
+ title: "Civil Engineering",
1151
+ type: "civilEngineering" /* civilEngineering */
1152
+ },
1153
+ {
1154
+ id: 4,
1155
+ title: "Chemical Engineering",
1156
+ type: "chemicalEngineering" /* chemicalEngineering */
1157
+ },
1158
+ {
1159
+ id: 5,
1160
+ title: "Computer Engineering",
1161
+ type: "computerEngineering" /* computerEngineering */
1162
+ }
1163
+ ],
1164
+ ["research" /* Research */]: [
1165
+ {
1166
+ id: 1,
1167
+ title: "Hypothesis Development",
1168
+ type: "hypothesisDevelopment" /* hypothesisDevelopment */
1169
+ },
1170
+ {
1171
+ id: 2,
1172
+ title: "Experimental Design",
1173
+ type: "experimentalDesign" /* experimentalDesign */
1174
+ },
1175
+ {
1176
+ id: 3,
1177
+ title: "Data Collection",
1178
+ type: "dataCollection" /* dataCollection */
1179
+ },
1180
+ {
1181
+ id: 4,
1182
+ title: "Analysis",
1183
+ type: "analysis" /* analysis */
1184
+ },
1185
+ {
1186
+ id: 5,
1187
+ title: "presentation",
1188
+ type: "presentation" /* presentation */
1189
+ }
1190
+ ],
1191
+ ["sportSpecificSkills" /* SportSpecificSkills */]: [
1192
+ {
1193
+ id: 1,
1194
+ title: "Ball Handling",
1195
+ type: "ballHandling" /* ballHandling */
1196
+ },
1197
+ {
1198
+ id: 2,
1199
+ title: "Running Technique",
1200
+ type: "runningTechnique" /* runningTechnique */
1201
+ },
1202
+ {
1203
+ id: 3,
1204
+ title: "Swing Mechanics",
1205
+ type: "swingMechanics" /* swingMechanics */
1206
+ },
1207
+ {
1208
+ id: 4,
1209
+ title: "Tackling",
1210
+ type: "tackling" /* tackling */
1211
+ },
1212
+ {
1213
+ id: 5,
1214
+ title: "Swimming Strokes",
1215
+ type: "swimmingStrokes" /* swimmingStrokes */
1216
+ }
1217
+ ],
1218
+ ["strengthAndConditioning" /* StrengthAndConditioning */]: [
1219
+ {
1220
+ id: 1,
1221
+ title: "Weight Lifting",
1222
+ type: "weightLifting" /* weightLifting */
1223
+ },
1224
+ {
1225
+ id: 2,
1226
+ title: "Speed Training",
1227
+ type: "speedTraining" /* speedTraining */
1228
+ },
1229
+ {
1230
+ id: 3,
1231
+ title: "Agility",
1232
+ type: "agility" /* agility */
1233
+ },
1234
+ {
1235
+ id: 4,
1236
+ title: "Flexibility",
1237
+ type: "flexibility" /* flexibility */
1238
+ },
1239
+ {
1240
+ id: 5,
1241
+ title: "Injury Prevention",
1242
+ type: "injuryPrevention" /* injuryPrevention */
1243
+ }
1244
+ ],
1245
+ ["coordination" /* Coordination */]: [
1246
+ {
1247
+ id: 1,
1248
+ title: "Hand Eye Coordination",
1249
+ type: "handEyeCoordination" /* handEyeCoordination */
1250
+ },
1251
+ {
1252
+ id: 2,
1253
+ title: "Footwork",
1254
+ type: "footwork" /* footwork */
1255
+ },
1256
+ {
1257
+ id: 3,
1258
+ title: "Balance",
1259
+ type: "balance" /* balance */
1260
+ },
1261
+ {
1262
+ id: 4,
1263
+ title: "Reaction Time",
1264
+ type: "reactionTime" /* reactionTime */
1265
+ },
1266
+ {
1267
+ id: 5,
1268
+ title: "Spatial Awareness",
1269
+ type: "spatialAwareness" /* spatialAwareness */
1270
+ }
1271
+ ],
1272
+ ["mentalFocus" /* MentalFocus */]: [
1273
+ {
1274
+ id: 1,
1275
+ title: "Visualization",
1276
+ type: "visualization" /* visualization */
1277
+ },
1278
+ {
1279
+ id: 2,
1280
+ title: "Goal Setting",
1281
+ type: "goalSetting" /* goalSetting */
1282
+ },
1283
+ {
1284
+ id: 3,
1285
+ title: "Competitiveness",
1286
+ type: "competitiveness" /* competitiveness */
1287
+ },
1288
+ {
1289
+ id: 4,
1290
+ title: "Resilience",
1291
+ type: "resilience" /* resilience */
1292
+ },
1293
+ {
1294
+ id: 5,
1295
+ title: "Handling pressure",
1296
+ type: "handlingPressure" /* handlingPressure */
1297
+ }
1298
+ ],
1299
+ ["teamwork" /* Teamwork */]: [
1300
+ {
1301
+ id: 1,
1302
+ title: "Communication",
1303
+ type: "communication" /* communication */
1304
+ },
1305
+ {
1306
+ id: 2,
1307
+ title: "Cooperation",
1308
+ type: "cooperation" /* cooperation */
1309
+ },
1310
+ {
1311
+ id: 3,
1312
+ title: "Role Understanding",
1313
+ type: "roleUnderstanding" /* roleUnderstanding */
1314
+ },
1315
+ {
1316
+ id: 4,
1317
+ title: "Strategy",
1318
+ type: "strategy" /* strategy */
1319
+ },
1320
+ {
1321
+ id: 5,
1322
+ title: "Sportsmanship",
1323
+ type: "sportsmanship" /* sportsmanship */
1324
+ }
1325
+ ],
1326
+ ["visualArts" /* VisualArts */]: [
1327
+ {
1328
+ id: 1,
1329
+ title: "Drawing",
1330
+ type: "drawing" /* drawing */
1331
+ },
1332
+ {
1333
+ id: 2,
1334
+ title: "Painting",
1335
+ type: "painting" /* painting */
1336
+ },
1337
+ {
1338
+ id: 3,
1339
+ title: "Sculpture",
1340
+ type: "sculpture" /* sculpture */
1341
+ },
1342
+ {
1343
+ id: 4,
1344
+ title: "Graphic design",
1345
+ type: "graphicDesign" /* graphicDesign */
1346
+ },
1347
+ {
1348
+ id: 5,
1349
+ title: "Photography",
1350
+ type: "photography" /* photography */
1351
+ }
1352
+ ],
1353
+ ["performingArts" /* PerformingArts */]: [
1354
+ {
1355
+ id: 1,
1356
+ title: "Acting",
1357
+ type: "acting" /* acting */
1358
+ },
1359
+ {
1360
+ id: 2,
1361
+ title: "Dance",
1362
+ type: "dance" /* dance */
1363
+ },
1364
+ {
1365
+ id: 3,
1366
+ title: "Singing",
1367
+ type: "singing" /* singing */
1368
+ },
1369
+ {
1370
+ id: 4,
1371
+ title: "Instrumental",
1372
+ type: "instrumental" /* instrumental */
1373
+ },
1374
+ {
1375
+ id: 5,
1376
+ title: "Theatre Production",
1377
+ type: "theaterProduction" /* theaterProduction */
1378
+ },
1379
+ {
1380
+ id: 6,
1381
+ title: "Costume Design",
1382
+ type: "costumeDesign" /* costumeDesign */
1383
+ },
1384
+ {
1385
+ id: 7,
1386
+ title: "Directing",
1387
+ type: "directing" /* directing */
1388
+ }
1389
+ ],
1390
+ ["writing" /* Writing */]: [
1391
+ {
1392
+ id: 1,
1393
+ title: "Poetry",
1394
+ type: "poetry" /* poetry */
1395
+ },
1396
+ {
1397
+ id: 2,
1398
+ title: "Fiction",
1399
+ type: "fiction" /* fiction */
1400
+ },
1401
+ {
1402
+ id: 3,
1403
+ title: "Non fiction",
1404
+ type: "nonfiction" /* nonfiction */
1405
+ },
1406
+ {
1407
+ id: 4,
1408
+ title: "Script Writing",
1409
+ type: "scriptWriting" /* scriptWriting */
1410
+ },
1411
+ {
1412
+ id: 5,
1413
+ title: "Copy Writing",
1414
+ type: "copyWriting" /* copyWriting */
1415
+ },
1416
+ {
1417
+ id: 6,
1418
+ title: "Journalism",
1419
+ type: "journalism" /* journalism */
1420
+ }
1421
+ ],
1422
+ ["design" /* Design */]: [
1423
+ {
1424
+ id: 1,
1425
+ title: "Fashion Design",
1426
+ type: "fashionDesign" /* fashionDesign */
1427
+ },
1428
+ {
1429
+ id: 2,
1430
+ title: "Interior Design",
1431
+ type: "interiorDesign" /* interiorDesign */
1432
+ },
1433
+ {
1434
+ id: 3,
1435
+ title: "Web Design",
1436
+ type: "webDesign" /* webDesign */
1437
+ },
1438
+ {
1439
+ id: 4,
1440
+ title: "Product Design",
1441
+ type: "productDesign" /* productDesign */
1442
+ },
1443
+ {
1444
+ id: 5,
1445
+ title: "Game Design",
1446
+ type: "gameDesign" /* gameDesign */
1447
+ }
1448
+ ],
1449
+ ["ideation" /* Ideation */]: [
1450
+ {
1451
+ id: 1,
1452
+ title: "Brainstorming",
1453
+ type: "brainstorming" /* brainstorming */
1454
+ },
1455
+ {
1456
+ id: 2,
1457
+ title: "Concept Development",
1458
+ type: "concept development" /* conceptDevelopment */
1459
+ },
1460
+ {
1461
+ id: 3,
1462
+ title: "Innovation",
1463
+ type: "innovation" /* innovation */
1464
+ },
1465
+ {
1466
+ id: 4,
1467
+ title: "Problem Solving",
1468
+ type: "problemSolving" /* problemSolving */
1469
+ },
1470
+ {
1471
+ id: 5,
1472
+ title: "Out of the box thinking",
1473
+ type: "outOfTheBoxThinking" /* outOfTheBoxThinking */
1474
+ }
1475
+ ],
1476
+ ["management" /* Management */]: [
1477
+ {
1478
+ id: 1,
1479
+ title: "Leadership",
1480
+ type: "leadership" /* leadership */
1481
+ },
1482
+ {
1483
+ id: 2,
1484
+ title: "Strategic Planning",
1485
+ type: "strategicPlanning" /* strategicPlanning */
1486
+ },
1487
+ {
1488
+ id: 3,
1489
+ title: "Team Building",
1490
+ type: "teamBuilding" /* teamBuilding */
1491
+ },
1492
+ {
1493
+ id: 4,
1494
+ title: "Delegation",
1495
+ type: "delegation" /* delegation */
1496
+ },
1497
+ {
1498
+ id: 5,
1499
+ title: "Conflict Resolution",
1500
+ type: "conflictResolution" /* conflictResolution */
1501
+ }
1502
+ ],
1503
+ ["finance" /* Finance */]: [
1504
+ {
1505
+ id: 1,
1506
+ title: "Accounting",
1507
+ type: "accounting" /* accounting */
1508
+ },
1509
+ {
1510
+ id: 2,
1511
+ title: "Budgeting",
1512
+ type: "budgeting" /* budgeting */
1513
+ },
1514
+ {
1515
+ id: 3,
1516
+ title: "Financial Analysis",
1517
+ type: "financialAnalysis" /* financialAnalysis */
1518
+ },
1519
+ {
1520
+ id: 4,
1521
+ title: "Investment",
1522
+ type: "investment" /* investment */
1523
+ },
1524
+ {
1525
+ id: 5,
1526
+ title: "Risk Management",
1527
+ type: "riskManagement" /* riskManagement */
1528
+ }
1529
+ ],
1530
+ ["marketing" /* Marketing */]: [
1531
+ {
1532
+ id: 1,
1533
+ title: "Market Research",
1534
+ type: "marketResearch" /* marketResearch */
1535
+ },
1536
+ {
1537
+ id: 2,
1538
+ title: "Branding",
1539
+ type: "branding" /* branding */
1540
+ },
1541
+ {
1542
+ id: 3,
1543
+ title: "Advertising",
1544
+ type: "advertising" /* advertising */
1545
+ },
1546
+ {
1547
+ id: 4,
1548
+ title: "Sales",
1549
+ type: "sales" /* sales */
1550
+ },
1551
+ {
1552
+ id: 5,
1553
+ title: "Customer Relationship Management",
1554
+ type: "customerRelationshipManagement" /* customerRelationshipManagement */
1555
+ }
1556
+ ],
1557
+ ["operations" /* Operations */]: [
1558
+ {
1559
+ id: 1,
1560
+ title: "Logistics",
1561
+ type: "logistics" /* logistics */
1562
+ },
1563
+ {
1564
+ id: 2,
1565
+ title: "Supply Chain Management",
1566
+ type: "supplyChainManagement" /* supplyChainManagement */
1567
+ },
1568
+ {
1569
+ id: 3,
1570
+ title: "Process Improvement",
1571
+ type: "processImprovement" /* processImprovement */
1572
+ },
1573
+ {
1574
+ id: 4,
1575
+ title: "Project Management",
1576
+ type: "projectManagement" /* projectManagement */
1577
+ },
1578
+ {
1579
+ id: 5,
1580
+ title: "Quality Control",
1581
+ type: "qualityControl" /* qualityControl */
1582
+ }
1583
+ ],
1584
+ ["entrepreneurship" /* Entrepreneurship */]: [
1585
+ {
1586
+ id: 1,
1587
+ title: "Opportunity Recognition",
1588
+ type: "opportunityRecognition" /* opportunityRecognition */
1589
+ },
1590
+ {
1591
+ id: 2,
1592
+ title: "Business Planning",
1593
+ type: "businessPlanning" /* businessPlanning */
1594
+ },
1595
+ {
1596
+ id: 3,
1597
+ title: "Fundraising",
1598
+ type: "fundraising" /* fundraising */
1599
+ },
1600
+ {
1601
+ id: 4,
1602
+ title: "Networking",
1603
+ type: "networking" /* networking */
1604
+ },
1605
+ {
1606
+ id: 5,
1607
+ title: "Decision-making",
1608
+ type: "decisionMaking" /* decisionMaking */
1609
+ }
1610
+ ],
1611
+ ["construction" /* Construction */]: [
1612
+ {
1613
+ id: 1,
1614
+ title: "Carpentry",
1615
+ type: "carpentry" /* carpentry */
1616
+ },
1617
+ {
1618
+ id: 2,
1619
+ title: "Electrical Work",
1620
+ type: "electricalWork" /* electricalWork */
1621
+ },
1622
+ {
1623
+ id: 3,
1624
+ title: "Plumbing",
1625
+ type: "plumbing" /* plumbing */
1626
+ },
1627
+ {
1628
+ id: 4,
1629
+ title: "Masonry",
1630
+ type: "masonry" /* masonry */
1631
+ },
1632
+ {
1633
+ id: 5,
1634
+ title: "HVAC",
1635
+ type: "HVAC" /* HVAC */
1636
+ }
1637
+ ],
1638
+ ["mechanics" /* Mechanics */]: [
1639
+ {
1640
+ id: 1,
1641
+ title: "Automotive Repair",
1642
+ type: "automotiveRepair" /* automotiveRepair */
1643
+ },
1644
+ {
1645
+ id: 2,
1646
+ title: "Diesel Engine Repair",
1647
+ type: "dieselEngineRepair" /* dieselEngineRepair */
1648
+ },
1649
+ {
1650
+ id: 3,
1651
+ title: "Small Engine Repair",
1652
+ type: "smallEngineRepair" /* smallEngineRepair */
1653
+ },
1654
+ {
1655
+ id: 4,
1656
+ title: "Aircraft Maintenance",
1657
+ type: "aircraftMaintenance" /* aircraftMaintenance */
1658
+ },
1659
+ {
1660
+ id: 5,
1661
+ title: "Heavy Equipment Operation",
1662
+ type: "heavyEquipmentOperation" /* heavyEquipmentOperation */
1663
+ }
1664
+ ],
1665
+ ["manufacturing" /* Manufacturing */]: [
1666
+ {
1667
+ id: 1,
1668
+ title: "Welding",
1669
+ type: "welding" /* welding */
1670
+ },
1671
+ {
1672
+ id: 2,
1673
+ title: "Machining",
1674
+ type: "machining" /* machining */
1675
+ },
1676
+ {
1677
+ id: 3,
1678
+ title: "Assembly",
1679
+ type: "assembly" /* assembly */
1680
+ },
1681
+ {
1682
+ id: 4,
1683
+ title: "Fabrication",
1684
+ type: "fabrication" /* fabrication */
1685
+ },
1686
+ {
1687
+ id: 5,
1688
+ title: "Quality Assurance",
1689
+ type: "qualityAssurance" /* qualityAssurance */
1690
+ }
1691
+ ],
1692
+ ["cosmetology" /* Cosmetology */]: [
1693
+ {
1694
+ id: 1,
1695
+ title: "Hairstyling",
1696
+ type: "hairstyling" /* hairstyling */
1697
+ },
1698
+ {
1699
+ id: 2,
1700
+ title: "Barbering",
1701
+ type: "barbering" /* barbering */
1702
+ },
1703
+ {
1704
+ id: 3,
1705
+ title: "Nail Technology",
1706
+ type: "nailTechnology" /* nailTechnology */
1707
+ },
1708
+ {
1709
+ id: 4,
1710
+ title: "Makeup Artistry",
1711
+ type: "makeupArtistry" /* makeupArtistry */
1712
+ },
1713
+ {
1714
+ id: 5,
1715
+ title: "Esthetics",
1716
+ type: "esthetics" /* esthetics */
1717
+ }
1718
+ ],
1719
+ ["culinaryArts" /* CulinaryArts */]: [
1720
+ {
1721
+ id: 1,
1722
+ title: "Cooking Techniques",
1723
+ type: "cookingTechniques" /* cookingTechniques */
1724
+ },
1725
+ {
1726
+ id: 2,
1727
+ title: "Baking",
1728
+ type: "baking" /* baking */
1729
+ },
1730
+ {
1731
+ id: 3,
1732
+ title: "Food Safety",
1733
+ type: "foodSafety" /* foodSafety */
1734
+ },
1735
+ {
1736
+ id: 4,
1737
+ title: "Menu Planning",
1738
+ type: "menuPlanning" /* menuPlanning */
1739
+ },
1740
+ {
1741
+ id: 5,
1742
+ title: "Restaurant Management",
1743
+ type: "restaurantManagement" /* restaurantManagement */
1744
+ }
1745
+ ],
1746
+ ["history" /* History */]: [
1747
+ {
1748
+ id: 1,
1749
+ title: "Research Methods",
1750
+ type: "researchMethods" /* researchMethods */
1751
+ },
1752
+ {
1753
+ id: 2,
1754
+ title: "Analysis of Primary Sources",
1755
+ type: "analysisOfPrimarySources" /* analysisOfPrimarySources */
1756
+ },
1757
+ {
1758
+ id: 3,
1759
+ title: "Chronological Reasoning",
1760
+ type: "chronologicalReasoning" /* chronologicalReasoning */
1761
+ },
1762
+ {
1763
+ id: 4,
1764
+ title: "Comparative History",
1765
+ type: "comparativeHistory" /* comparativeHistory */
1766
+ },
1767
+ {
1768
+ id: 5,
1769
+ title: "Historiography",
1770
+ type: "historiography" /* historiography */
1771
+ }
1772
+ ],
1773
+ ["psychology" /* Psychology */]: [
1774
+ {
1775
+ id: 1,
1776
+ title: "Cognitive Psychology",
1777
+ type: "cognitivePsychology" /* cognitivePsychology */
1778
+ },
1779
+ {
1780
+ id: 2,
1781
+ title: "Developmental Psychology",
1782
+ type: "developmentalPsychology" /* developmentalPsychology */
1783
+ },
1784
+ {
1785
+ id: 3,
1786
+ title: "Social Psychology",
1787
+ type: "socialPsychology" /* socialPsychology */
1788
+ },
1789
+ {
1790
+ id: 4,
1791
+ title: "Experimental Methods",
1792
+ type: "experimentalMethods" /* experimentalMethods */
1793
+ },
1794
+ {
1795
+ id: 5,
1796
+ title: "Clinical Psychology",
1797
+ type: "clinicalPsychology" /* clinicalPsychology */
1798
+ }
1799
+ ],
1800
+ ["sociology" /* Sociology */]: [
1801
+ {
1802
+ id: 1,
1803
+ title: "Social Inequality",
1804
+ type: "socialInequality" /* socialInequality */
1805
+ },
1806
+ {
1807
+ id: 2,
1808
+ title: "Social Institutions",
1809
+ type: "socialInstitutions" /* socialInstitutions */
1810
+ },
1811
+ {
1812
+ id: 3,
1813
+ title: "Research Methods",
1814
+ type: "researchMethods" /* researchMethods */
1815
+ },
1816
+ {
1817
+ id: 4,
1818
+ title: "Social Change",
1819
+ type: "socialChange" /* socialChange */
1820
+ },
1821
+ {
1822
+ id: 5,
1823
+ title: "Social Movements",
1824
+ type: "socialMovements" /* socialMovements */
1825
+ }
1826
+ ],
1827
+ ["economics" /* Economics */]: [
1828
+ {
1829
+ id: 1,
1830
+ title: "Microeconomics",
1831
+ type: "microeconomics" /* microeconomics */
1832
+ },
1833
+ {
1834
+ id: 2,
1835
+ title: "Macroeconomics",
1836
+ type: "macroeconomics" /* macroeconomics */
1837
+ },
1838
+ {
1839
+ id: 3,
1840
+ title: "Econometrics",
1841
+ type: "econometrics" /* econometrics */
1842
+ },
1843
+ {
1844
+ id: 4,
1845
+ title: "Economic Policy",
1846
+ type: "economicPolicy" /* economicPolicy */
1847
+ },
1848
+ {
1849
+ id: 5,
1850
+ title: "International Economics",
1851
+ type: "internationalEconomics" /* internationalEconomics */
1852
+ }
1853
+ ],
1854
+ ["politicalScience" /* PoliticalScience */]: [
1855
+ {
1856
+ id: 1,
1857
+ title: "Government Systems",
1858
+ type: "governmentSystems" /* governmentSystems */
1859
+ },
1860
+ {
1861
+ id: 2,
1862
+ title: "Political Theory",
1863
+ type: "politicalTheory" /* politicalTheory */
1864
+ },
1865
+ {
1866
+ id: 3,
1867
+ title: "International Relations",
1868
+ type: "internationalRelations" /* internationalRelations */
1869
+ },
1870
+ {
1871
+ id: 4,
1872
+ title: "Comparative Politics",
1873
+ type: "comparativePolitics" /* comparativePolitics */
1874
+ },
1875
+ {
1876
+ id: 5,
1877
+ title: "Public Policy",
1878
+ type: "publicPolicy" /* publicPolicy */
1879
+ }
1880
+ ],
1881
+ ["basicComputerSkills" /* BasicComputerSkills */]: [
1882
+ {
1883
+ id: 1,
1884
+ title: "Typing",
1885
+ type: "typing" /* typing */
1886
+ },
1887
+ {
1888
+ id: 2,
1889
+ title: "File Management",
1890
+ type: "fileManagement" /* fileManagement */
1891
+ },
1892
+ {
1893
+ id: 3,
1894
+ title: "Internet Navigation",
1895
+ type: "internetNavigation" /* internetNavigation */
1896
+ },
1897
+ {
1898
+ id: 4,
1899
+ title: "Email",
1900
+ type: "email" /* email */
1901
+ },
1902
+ {
1903
+ id: 5,
1904
+ title: "Word Processing",
1905
+ type: "wordProcessing" /* wordProcessing */
1906
+ }
1907
+ ],
1908
+ ["informationLiteracy" /* InformationLiteracy */]: [
1909
+ {
1910
+ id: 1,
1911
+ title: "Search Engine Proficiency",
1912
+ type: "searchEngineProficiency" /* searchEngineProficiency */
1913
+ },
1914
+ {
1915
+ id: 2,
1916
+ title: "evaluating sources",
1917
+ type: "evaluatingSources" /* evaluatingSources */
1918
+ },
1919
+ {
1920
+ id: 3,
1921
+ title: "Fact Checking",
1922
+ type: "factChecking" /* factChecking */
1923
+ },
1924
+ {
1925
+ id: 4,
1926
+ title: "Critical Media Analysis",
1927
+ type: "criticalMediaAnalysis" /* criticalMediaAnalysis */
1928
+ },
1929
+ {
1930
+ id: 5,
1931
+ title: "Understanding Bias",
1932
+ type: "understandingBias" /* understandingBias */
1933
+ }
1934
+ ],
1935
+ ["softwareProficiency" /* SoftwareProficiency */]: [
1936
+ {
1937
+ id: 1,
1938
+ title: "Productivity Suites",
1939
+ type: "productivitySuites" /* productivitySuites */
1940
+ },
1941
+ {
1942
+ id: 2,
1943
+ title: "Specialized Software",
1944
+ type: "specializedSoftware" /* specializedSoftware */
1945
+ },
1946
+ {
1947
+ id: 3,
1948
+ title: "Design Software",
1949
+ type: "designSoftware" /* designSoftware */
1950
+ },
1951
+ {
1952
+ id: 4,
1953
+ title: "Programming Basics",
1954
+ type: "programmingBasics" /* programmingBasics */
1955
+ },
1956
+ {
1957
+ id: 5,
1958
+ title: "Data Visualization Tools",
1959
+ type: "dataVisualizationTools" /* dataVisualizationTools */
1960
+ }
1961
+ ],
1962
+ ["onlineCommunication" /* OnlineCommunication */]: [
1963
+ {
1964
+ id: 1,
1965
+ title: "Netiquette",
1966
+ type: "netiquette" /* netiquette */
1967
+ },
1968
+ {
1969
+ id: 2,
1970
+ title: "Effective Email and Messaging",
1971
+ type: "effectiveEmailAndMessaging" /* effectiveEmailAndMessaging */
1972
+ },
1973
+ {
1974
+ id: 3,
1975
+ title: "Social Media Platforms",
1976
+ type: "socialMediaPlatforms" /* socialMediaPlatforms */
1977
+ },
1978
+ {
1979
+ id: 4,
1980
+ title: "Video Conferencing",
1981
+ type: "videoConferencing" /* videoConferencing */
1982
+ },
1983
+ {
1984
+ id: 5,
1985
+ title: "Collaboration Tools",
1986
+ type: "collaborationTools" /* collaborationTools */
1987
+ }
1988
+ ],
1989
+ ["cybersecurity" /* Cybersecurity */]: [
1990
+ {
1991
+ id: 1,
1992
+ title: "Password Management",
1993
+ type: "passwordManagement" /* passwordManagement */
1994
+ },
1995
+ {
1996
+ id: 2,
1997
+ title: "Phishing Awareness",
1998
+ type: "phishingAwareness" /* phishingAwareness */
1999
+ },
2000
+ {
2001
+ id: 3,
2002
+ title: "Data Privacy",
2003
+ type: "dataPrivacy" /* dataPrivacy */
2004
+ },
2005
+ {
2006
+ id: 4,
2007
+ title: "Safe Online Practices",
2008
+ type: "safeOnlinePractices" /* safeOnlinePractices */
2009
+ },
2010
+ {
2011
+ id: 5,
2012
+ title: "Protecting Devices",
2013
+ type: "protectingDevices" /* protectingDevices */
2014
+ }
2015
+ ],
2016
+ ["clinicalSkills" /* ClinicalSkills */]: [
2017
+ {
2018
+ id: 1,
2019
+ title: "Patient Assessment",
2020
+ type: "patientAssessment" /* patientAssessment */
2021
+ },
2022
+ {
2023
+ id: 2,
2024
+ title: "Diagnostic Procedures",
2025
+ type: "diagnosticProcedures" /* diagnosticProcedures */
2026
+ },
2027
+ {
2028
+ id: 3,
2029
+ title: "Medication Administration",
2030
+ type: "medicationAdministration" /* medicationAdministration */
2031
+ },
2032
+ {
2033
+ id: 4,
2034
+ title: "Wound Care",
2035
+ type: "woundCare" /* woundCare */
2036
+ },
2037
+ {
2038
+ id: 5,
2039
+ title: "Basic Life Support",
2040
+ type: "basicLifeSupport" /* basicLifeSupport */
2041
+ }
2042
+ ],
2043
+ ["anatomyAndPhysiology" /* AnatomyAndPhysiology */]: [
2044
+ {
2045
+ id: 1,
2046
+ title: "Body Systems",
2047
+ type: "bodySystems" /* bodySystems */
2048
+ },
2049
+ {
2050
+ id: 2,
2051
+ title: "Medical Terminology",
2052
+ type: "medicalTerminology" /* medicalTerminology */
2053
+ },
2054
+ {
2055
+ id: 3,
2056
+ title: "Disease Processes",
2057
+ type: "diseaseProcesses" /* diseaseProcesses */
2058
+ },
2059
+ {
2060
+ id: 4,
2061
+ title: "Pharmacology",
2062
+ type: "pharmacology" /* pharmacology */
2063
+ },
2064
+ {
2065
+ id: 5,
2066
+ title: "Pathophysiology",
2067
+ type: "pathophysiology" /* pathophysiology */
2068
+ }
2069
+ ],
2070
+ ["patientCare" /* PatientCare */]: [
2071
+ {
2072
+ id: 1,
2073
+ title: "Bedside Manner",
2074
+ type: "bedsideManner" /* bedsideManner */
2075
+ },
2076
+ {
2077
+ id: 2,
2078
+ title: "Empathy",
2079
+ type: "empathy" /* empathy */
2080
+ },
2081
+ {
2082
+ id: 3,
2083
+ title: "Communication",
2084
+ type: "communication" /* communication */
2085
+ },
2086
+ {
2087
+ id: 4,
2088
+ title: "Cultural Sensitivity",
2089
+ type: "culturalSensitivity" /* culturalSensitivity */
2090
+ },
2091
+ {
2092
+ id: 5,
2093
+ title: "Ethics",
2094
+ type: "ethics" /* ethics */
2095
+ }
2096
+ ],
2097
+ ["medicalSpecialties" /* MedicalSpecialties */]: [
2098
+ {
2099
+ id: 1,
2100
+ title: "Surgery",
2101
+ type: "surgery" /* surgery */
2102
+ },
2103
+ {
2104
+ id: 2,
2105
+ title: "Emergency Medicine",
2106
+ type: "emergencyMedicine" /* emergencyMedicine */
2107
+ },
2108
+ {
2109
+ id: 3,
2110
+ title: "Pediatrics",
2111
+ type: "pediatrics" /* pediatrics */
2112
+ },
2113
+ {
2114
+ id: 4,
2115
+ title: "Radiology",
2116
+ type: "radiology" /* radiology */
2117
+ },
2118
+ {
2119
+ id: 5,
2120
+ title: "Diagnostic Reasoning",
2121
+ type: "diagnosticReasoning" /* diagnosticReasoning */
2122
+ },
2123
+ {
2124
+ id: 6,
2125
+ title: "Treatment Planning",
2126
+ type: "treatmentPlanning" /* treatmentPlanning */
2127
+ },
2128
+ {
2129
+ id: 7,
2130
+ title: "Interdisciplinary Collaboration",
2131
+ type: "interdisciplinaryCollaboration" /* interdisciplinaryCollaboration */
2132
+ }
2133
+ ],
2134
+ ["healthcareAdministration" /* HealthcareAdministration */]: [
2135
+ {
2136
+ id: 1,
2137
+ title: "Insurance and Billing",
2138
+ type: "insuranceAndBilling" /* insuranceAndBilling */
2139
+ },
2140
+ {
2141
+ id: 2,
2142
+ title: "Medical Records",
2143
+ type: "medicalRecords" /* medicalRecords */
2144
+ },
2145
+ {
2146
+ id: 3,
2147
+ title: "Patient Scheduling",
2148
+ type: "patientScheduling" /* patientScheduling */
2149
+ },
2150
+ {
2151
+ id: 4,
2152
+ title: "Regulatory Compliance",
2153
+ type: "regulatoryCompliance" /* regulatoryCompliance */
2154
+ },
2155
+ {
2156
+ id: 5,
2157
+ title: "Facility Management",
2158
+ type: "facilityManagement" /* facilityManagement */
2159
+ }
2160
+ ]
2161
+ };
2162
+
2163
+ const TopLevelSkill = ({ skillSelected, skill, handleExpandSubSkills }) => {
2164
+ var _a, _b;
2165
+ const { title, IconComponent, type, category } = skill;
2166
+ const _category = boostCMSSKillCategories.find((c) => c.type === category);
2167
+ const subSkills = (_a = skillSelected.subskills) != null ? _a : [];
2168
+ const subSkillsCount = (_b = skillSelected.subskills.length) != null ? _b : 0;
2169
+ return /* @__PURE__ */ React.createElement("div", {
2170
+ className: `flex items-center justify-between w-full mb-4 bg-violet-100 rounded-[20px]`
2171
+ }, /* @__PURE__ */ React.createElement("div", {
2172
+ className: "flex items-center justify-start w-[80%] px-[6px] py-[10px] overflow-hidden"
2173
+ }, /* @__PURE__ */ React.createElement("div", {
2174
+ className: "rounded-full h-[50px] w-[50px]"
2175
+ }, /* @__PURE__ */ React.createElement("img", {
2176
+ src: IconComponent,
2177
+ alt: "skill icon",
2178
+ className: "w-full h-full"
2179
+ })), /* @__PURE__ */ React.createElement("div", {
2180
+ className: "flex flex-col items-start justify-center ml-2"
2181
+ }, /* @__PURE__ */ React.createElement("p", {
2182
+ className: "font-poppins text-left text-violet-800 font-semibold text-xs"
2183
+ }, _category == null ? void 0 : _category.title), /* @__PURE__ */ React.createElement("p", {
2184
+ className: "text-black font-poppins text-left text-base font-normal"
2185
+ }, title))), (subSkills == null ? void 0 : subSkills.length) > 0 && /* @__PURE__ */ React.createElement("div", {
2186
+ className: "flex items-center justify-center rounded-full bg-white mr-4 h-[40px] w-[40px]"
2187
+ }, /* @__PURE__ */ React.createElement("button", {
2188
+ onClick: () => {
2189
+ handleExpandSubSkills == null ? void 0 : handleExpandSubSkills();
2190
+ },
2191
+ className: "text-black font-bold flex items-center justify-center text-center font-poppins"
2192
+ }, "+", subSkillsCount)));
2193
+ };
2194
+
2195
+ const Subskill = ({ subskillSelected, skill, subSkill }) => {
2196
+ const { title, IconComponent, type, category } = skill;
2197
+ const _category = boostCMSSKillCategories.find((c) => c.type === category);
2198
+ return /* @__PURE__ */ React.createElement("div", {
2199
+ className: "flex items-center justify-between w-full mb-4 bg-violet-100 rounded-[20px]"
2200
+ }, /* @__PURE__ */ React.createElement("div", {
2201
+ className: "flex items-center justify-start w-[80%] px-[6px] py-[10px] overflow-hidden"
2202
+ }, /* @__PURE__ */ React.createElement("div", {
2203
+ className: "rounded-full h-[50px] w-[50px]"
2204
+ }, /* @__PURE__ */ React.createElement("img", {
2205
+ src: IconComponent,
2206
+ alt: "skill icon",
2207
+ className: "w-full h-full"
2208
+ })), /* @__PURE__ */ React.createElement("div", {
2209
+ className: "flex flex-col items-start justify-center ml-2"
2210
+ }, /* @__PURE__ */ React.createElement("p", {
2211
+ className: "font-poppins text-left text-violet-800 font-semibold text-xs"
2212
+ }, _category == null ? void 0 : _category.title, " / ", skill == null ? void 0 : skill.title), /* @__PURE__ */ React.createElement("p", {
2213
+ className: "text-black font-poppins text-left text-base font-normal"
2214
+ }, subSkill == null ? void 0 : subSkill.title))));
2215
+ };
2216
+
2217
+ const SelectedSkills = ({ skill, skillSelected }) => {
2218
+ const [expandSubSkills, setExandSubSkills] = useState(false);
2219
+ const handleExpandSubSkills = () => setExandSubSkills(!expandSubSkills);
2220
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(TopLevelSkill, {
2221
+ skill,
2222
+ skillSelected,
2223
+ handleExpandSubSkills
2224
+ }), skillSelected && skillSelected.subskills.length > 0 && expandSubSkills && /* @__PURE__ */ React.createElement("div", {
2225
+ className: "w-full flex items-center justify-end"
2226
+ }, /* @__PURE__ */ React.createElement("div", {
2227
+ className: "w-[90%] flex items-center flex-col"
2228
+ }, skillSelected.subskills.map((subSkill, i) => {
2229
+ var _a;
2230
+ const subskillSelected = (_a = skillSelected == null ? void 0 : skillSelected.subskills) == null ? void 0 : _a.includes(subSkill);
2231
+ const _subSkill = SKILLS_TO_SUBSKILLS[skill.type].find((ss) => ss.type === subSkill);
2232
+ return /* @__PURE__ */ React.createElement(Subskill, {
2233
+ key: i,
2234
+ skill,
2235
+ subSkill: _subSkill,
2236
+ subskillSelected
2237
+ });
2238
+ }))));
2239
+ };
2240
+
2241
+ const SkillsBox = ({ skills }) => {
2242
+ return /* @__PURE__ */ React.createElement("div", {
2243
+ className: "bg-white flex flex-col items-start gap-[10px] rounded-[20px] shadow-bottom px-[15px] py-[20px] w-full relative"
2244
+ }, /* @__PURE__ */ React.createElement("div", {
2245
+ className: "flex items-center justify-start"
2246
+ }, /* @__PURE__ */ React.createElement("div", {
2247
+ className: "bg-violet-500 rounded-full flex items-center justify-center ml-2 h-[30px] w-[30px] p-1"
2248
+ }, /* @__PURE__ */ React.createElement(PuzzlePiece, {
2249
+ className: "text-white",
2250
+ fill: "#fff"
2251
+ })), " ", /* @__PURE__ */ React.createElement("h3", {
2252
+ className: "text-[20px] leading-[20px] text-grayscale-900 ml-2"
2253
+ }, "Skills")), skills.length > 0 && /* @__PURE__ */ React.createElement("div", {
2254
+ className: "ion-padding pt-0 pb-4 flex items-center justify-center flex-col w-full"
2255
+ }, skills.map((_skill, index) => {
2256
+ boostCMSSKillCategories.find((c) => c.type === _skill.category);
2257
+ const skill = CATEGORY_TO_SKILLS[_skill.category].find((s) => s.type === _skill.skill);
2258
+ SKILLS_TO_SUBSKILLS[_skill.skill];
2259
+ const selectedSkills = skills != null ? skills : [];
2260
+ const skillSelected = selectedSkills.find((s) => s.skill === skill.type);
2261
+ return /* @__PURE__ */ React.createElement(SelectedSkills, {
2262
+ key: index,
2263
+ skill,
2264
+ skillSelected
2265
+ });
2266
+ })));
2267
+ };
2268
+
2269
+ const TruncateTextBox = ({
2270
+ headerText,
2271
+ headerClassName = "",
2272
+ text,
2273
+ truncateThreshold = 132,
2274
+ children,
2275
+ className = "truncate-text-box"
2276
+ }) => {
2277
+ const needsTruncate = (text == null ? void 0 : text.length) > truncateThreshold;
2278
+ const [showFullText, setShowFullText] = useState(false);
2279
+ const truncated = needsTruncate && !showFullText;
2280
+ const displayText = truncated ? text.substring(0, truncateThreshold) : text;
2281
+ return /* @__PURE__ */ React.createElement("div", {
2282
+ className: `${className} bg-white flex flex-col items-start gap-[10px] rounded-[20px] shadow-bottom px-[15px] py-[20px] w-full"`
2283
+ }, /* @__PURE__ */ React.createElement("h3", {
2284
+ className: `${headerClassName} text-[20px] leading-[20px] text-grayscale-900`
2285
+ }, headerText), /* @__PURE__ */ React.createElement("p", {
2286
+ className: "text-[12px] text-grayscale-700 leading-[18px] font-poppins font-[400] mb-0"
2287
+ }, displayText, truncated && /* @__PURE__ */ React.createElement(React.Fragment, null, "...", " ", /* @__PURE__ */ React.createElement("button", {
2288
+ className: "text-indigo-500 font-[700]",
2289
+ onClick: () => setShowFullText(true)
2290
+ }, "More")), needsTruncate && showFullText && /* @__PURE__ */ React.createElement(React.Fragment, null, " ", /* @__PURE__ */ React.createElement("button", {
2291
+ className: "text-indigo-500 font-[700]",
2292
+ onClick: () => setShowFullText(false)
2293
+ }, "Close"))), children);
2294
+ };
2295
+
2296
+ const VerificationRow = ({ verification }) => {
2297
+ var _a, _b;
2298
+ const [showInfo, setShowInfo] = useState(false);
2299
+ const statusColor = getColorForVerificationStatus(verification.status);
2300
+ const getIcon = () => {
2301
+ switch (verification.status) {
2302
+ case VerificationStatusEnum.Success:
2303
+ return /* @__PURE__ */ React.createElement(AcuteCheckmark, null);
2304
+ case VerificationStatusEnum.Error:
2305
+ return /* @__PURE__ */ React.createElement(ExclamationPoint, null);
2306
+ case VerificationStatusEnum.Failed:
2307
+ return /* @__PURE__ */ React.createElement(X, null);
2308
+ }
2309
+ };
2310
+ let primaryText = verification.check ? `${verification.check}: ${verification.message}` : verification.message;
2311
+ if (verification.status === VerificationStatusEnum.Failed) {
2312
+ primaryText = (_b = (_a = verification.message) != null ? _a : verification.details) != null ? _b : "";
2313
+ }
2314
+ primaryText = capitalize(primaryText);
2315
+ const infoText = "";
2316
+ return /* @__PURE__ */ React.createElement("div", {
2317
+ className: "verification-row flex flex-col gap-[5px] font-poppins border-b-[1px] border-grayscale-200 border-solid w-full py-[10px] last:border-0 last:pb-0"
2318
+ }, /* @__PURE__ */ React.createElement("span", {
2319
+ className: "font-[700] text-[11px] leading-[16px] uppercase flex items-center gap-[3px] select-none",
2320
+ style: { color: statusColor }
2321
+ }, getIcon(), verification.status, infoText ), showInfo && infoText && /* @__PURE__ */ React.createElement(InfoBox, {
2322
+ text: infoText,
2323
+ handleClose: () => setShowInfo(false),
2324
+ backgroundColor: statusColor
2325
+ }), /* @__PURE__ */ React.createElement("span", {
2326
+ className: "font-[400] text-[14px] leading-[21px] text-grayscale-900"
2327
+ }, primaryText));
2328
+ };
2329
+
2330
+ const VerificationsBox = ({ verificationItems }) => {
2331
+ const [showInfo, setShowInfo] = useState(false);
2332
+ return /* @__PURE__ */ React.createElement("div", {
2333
+ className: "verifications-box bg-white flex flex-col items-start gap-[10px] rounded-[20px] shadow-bottom px-[15px] py-[20px] w-full relative"
2334
+ }, /* @__PURE__ */ React.createElement("h3", {
2335
+ className: "text-[20px] leading-[20px] text-grayscale-900"
2336
+ }, "Credential Verifications"), /* @__PURE__ */ React.createElement("button", {
2337
+ className: "absolute top-[17px] right-[17px]",
2338
+ onClick: () => setShowInfo(!showInfo)
2339
+ }, /* @__PURE__ */ React.createElement(InfoIcon, {
2340
+ color: showInfo ? "#6366F1" : void 0
2341
+ })), showInfo && /* @__PURE__ */ React.createElement(InfoBox, {
2342
+ text: "Credential verifications check the cryptographic proof of digital credentials to ensure their authenticity and accuracy.",
2343
+ handleClose: () => setShowInfo(false)
2344
+ }), verificationItems.map((verification, index) => /* @__PURE__ */ React.createElement(VerificationRow, {
2345
+ key: index,
2346
+ verification
2347
+ })));
2348
+ };
2349
+
2350
+ const VC2BackFace = ({
2351
+ credential,
2352
+ verificationItems,
2353
+ getFileMetadata,
2354
+ getVideoMetadata,
2355
+ onMediaAttachmentClick,
2356
+ issueHistory,
2357
+ showBackButton,
2358
+ showFrontFace,
2359
+ customDescription,
2360
+ customCriteria,
2361
+ customSkillsComponent,
2362
+ customIssueHistoryComponent,
2363
+ enableLightbox
2364
+ }) => {
2365
+ var _a, _b, _c, _d;
2366
+ const expiration = credential.expirationDate ? format(new Date(credential.expirationDate), "MMM dd, yyyy") : void 0;
2367
+ const isExpired = credential.expirationDate && Number(new Date(credential.expirationDate)) < Number(new Date());
2368
+ const achievement = "achievement" in credential.credentialSubject ? credential.credentialSubject.achievement : void 0;
2369
+ const criteria = (_a = achievement == null ? void 0 : achievement.criteria) == null ? void 0 : _a.narrative;
2370
+ const description = achievement == null ? void 0 : achievement.description;
2371
+ return /* @__PURE__ */ React.createElement("section", {
2372
+ className: "vc-back-face flex flex-col gap-[20px] w-full px-[15px]"
2373
+ }, showBackButton && /* @__PURE__ */ React.createElement("div", {
2374
+ className: "w-full"
2375
+ }, /* @__PURE__ */ React.createElement("button", {
2376
+ className: "vc-card-back-button rounded-full h-[50px] px-[15px] flex items-center justify-center gap-[5px] z-50 text-[30px] text-white select-none",
2377
+ onClick: showFrontFace
2378
+ }, /* @__PURE__ */ React.createElement(LeftArrow, {
2379
+ className: "text-white",
2380
+ size: "25"
2381
+ }), "Details")), customDescription && /* @__PURE__ */ React.createElement(TruncateTextBox, {
2382
+ headerText: "About",
2383
+ text: description,
2384
+ className: "description-box"
2385
+ }, customDescription), !customDescription && (description || expiration) && /* @__PURE__ */ React.createElement(TruncateTextBox, {
2386
+ headerText: "About",
2387
+ text: description,
2388
+ className: "description-box"
2389
+ }, expiration && /* @__PURE__ */ React.createElement("p", {
2390
+ className: "text-grayscale-800 font-poppins font-[600] text-[12px] leading-[18px] mb-0"
2391
+ }, "Expire", isExpired ? "d" : "s", " on ", expiration)), customCriteria && /* @__PURE__ */ React.createElement(TruncateTextBox, {
2392
+ headerText: "Criteria",
2393
+ text: description,
2394
+ className: "description-box"
2395
+ }, customCriteria), !customCriteria && criteria && /* @__PURE__ */ React.createElement(TruncateTextBox, {
2396
+ headerText: "Criteria",
2397
+ text: criteria,
2398
+ className: "criteria-box"
2399
+ }), ((_c = (_b = credential.skills) == null ? void 0 : _b.length) != null ? _c : 0) > 0 && (customSkillsComponent ? customSkillsComponent : /* @__PURE__ */ React.createElement(SkillsBox, {
2400
+ skills: (_d = credential.skills) != null ? _d : []
2401
+ })), issueHistory && (issueHistory == null ? void 0 : issueHistory.length) > 0 && /* @__PURE__ */ React.createElement(IssueHistoryBox, {
2402
+ issueHistory,
2403
+ customIssueHistoryComponent
2404
+ }), credential.attachments && credential.attachments.length > 0 && /* @__PURE__ */ React.createElement(MediaAttachmentsBox, {
2405
+ attachments: credential.attachments,
2406
+ getFileMetadata,
2407
+ getVideoMetadata,
2408
+ onMediaAttachmentClick,
2409
+ enableLightbox
2410
+ }), verificationItems && verificationItems.length > 0 && /* @__PURE__ */ React.createElement(VerificationsBox, {
2411
+ verificationItems
2412
+ }));
2413
+ };
2414
+
2415
+ const VC2FrontFaceInfo = ({
2416
+ issuee,
2417
+ issuer,
2418
+ subjectDID,
2419
+ subjectImageComponent,
2420
+ issuerImageComponent,
2421
+ customBodyCardComponent,
2422
+ createdAt,
2423
+ imageUrl,
2424
+ customThumbComponent
2425
+ }) => {
2426
+ const issuerName = truncateWithEllipsis(getNameFromProfile(issuer != null ? issuer : ""), 25);
2427
+ const issueeName = truncateWithEllipsis(getNameFromProfile(issuee != null ? issuee : ""), 25);
2428
+ const issuerImage = getImageFromProfile(issuer != null ? issuer : "");
2429
+ const issueeImage = getImageFromProfile(issuee != null ? issuee : "");
2430
+ const getImageElement = (imageUrl2, alt, overrideComponent) => {
2431
+ if (overrideComponent)
2432
+ return overrideComponent;
2433
+ return /* @__PURE__ */ React.createElement("img", {
2434
+ className: "h-full w-full object-cover select-none",
2435
+ src: imageUrl2 || DefaultFace,
2436
+ alt
2437
+ });
2438
+ };
2439
+ const issueeImageEl = getImageElement(issueeImage, "Issuee image", subjectImageComponent);
2440
+ const issuerImageEl = getImageElement(issuerImage, "Issuer image", issuerImageComponent);
2441
+ return /* @__PURE__ */ React.createElement("section", {
2442
+ className: "vc-front-face w-full px-[15px] flex flex-col items-center gap-[15px]"
2443
+ }, imageUrl && !customThumbComponent && /* @__PURE__ */ React.createElement("img", {
2444
+ className: "vc-front-image h-[130px] w-[130px] rounded-[10px]",
2445
+ src: imageUrl
2446
+ }), customThumbComponent && customThumbComponent, /* @__PURE__ */ React.createElement("div", {
2447
+ className: "vc-issue-info-box bg-white flex flex-col items-center gap-[5px] rounded-[20px] shadow-bottom px-[15px] py-[20px] w-full"
2448
+ }, customBodyCardComponent && customBodyCardComponent, !customBodyCardComponent && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("h3", {
2449
+ className: "text-[27px] flex flex-col text-center leading-[130%] text-grayscale-900 capitalize"
2450
+ }, issueeName, subjectDID && /* @__PURE__ */ React.createElement("span", {
2451
+ className: "text-[12px] text-grayscale-700 leading-[18px] font-poppins font-[400] m-0 p-0 normal-case"
2452
+ }, subjectDID)), /* @__PURE__ */ React.createElement("div", {
2453
+ className: "relative"
2454
+ }, /* @__PURE__ */ React.createElement("div", {
2455
+ className: "vc-issuee-image h-[60px] w-[60px] rounded-full overflow-hidden"
2456
+ }, issueeImageEl), /* @__PURE__ */ React.createElement("div", {
2457
+ className: "vc-issuer-image h-[30px] w-[30px] rounded-full overflow-hidden absolute bottom-[-12px] right-[-12px]"
2458
+ }, issuerImageEl)), /* @__PURE__ */ React.createElement("div", {
2459
+ className: "vc-issue-details mt-[10px] flex flex-col items-center font-montserrat text-[14px] leading-[20px]"
2460
+ }, /* @__PURE__ */ React.createElement("span", {
2461
+ className: "created-at text-grayscale-700"
2462
+ }, createdAt), /* @__PURE__ */ React.createElement("span", {
2463
+ className: "issued-by text-grayscale-900 font-[500]"
2464
+ }, "by ", /* @__PURE__ */ React.createElement("strong", {
2465
+ className: "font-[700]"
2466
+ }, issuerName))))));
2467
+ };
2468
+
2469
+ const VCDisplayCardCategoryType = ({
2470
+ categoryType = LCCategoryEnum.achievement
2471
+ }) => {
2472
+ const categoryColor = getCategoryColor(categoryType);
2473
+ return /* @__PURE__ */ React.createElement("span", {
2474
+ className: `uppercase font-poppins text-[12px] font-[600] leading-[12px] select-none text-${categoryColor}`
2475
+ }, categoryType);
2476
+ };
2477
+
2478
+ const VCDisplayCardSkillsCount = ({ skills }) => {
2479
+ const skillsCount = getTotalCountOfSkills(skills);
2480
+ if (skillsCount === 0)
2481
+ return /* @__PURE__ */ React.createElement(React.Fragment, null);
2482
+ const text = skillsCount === 1 ? "Skill" : "Skills";
2483
+ return /* @__PURE__ */ React.createElement("div", {
2484
+ className: "flex items-center justify-center mt-8"
2485
+ }, /* @__PURE__ */ React.createElement("p", {
2486
+ className: "text-violet-500 text-xl flex items-center justify-center tracking-[0.75px] font-poppins font-semibold"
2487
+ }, "+", skillsCount, " ", text, " ", /* @__PURE__ */ React.createElement("div", {
2488
+ className: "bg-violet-500 rounded-full flex items-center justify-center ml-2 h-[30px] w-[30px] p-1"
2489
+ }, /* @__PURE__ */ React.createElement(PuzzlePiece, {
2490
+ className: "text-white",
2491
+ fill: "#fff"
2492
+ }))));
2493
+ };
2494
+
2495
+ const VCDisplayCard2 = ({
2496
+ categoryType,
2497
+ credential,
2498
+ verificationItems,
2499
+ issueeOverride,
2500
+ issuerOverride,
2501
+ subjectDID,
2502
+ subjectImageComponent,
2503
+ issuerImageComponent,
2504
+ verificationInProgress = false,
2505
+ handleXClick,
2506
+ getFileMetadata,
2507
+ getVideoMetadata,
2508
+ onMediaAttachmentClick,
2509
+ bottomRightIcon,
2510
+ customFooterComponent,
2511
+ customBodyCardComponent,
2512
+ customThumbComponent,
2513
+ customCriteria,
2514
+ customDescription,
2515
+ customIssueHistoryComponent,
2516
+ issueHistory,
2517
+ titleOverride,
2518
+ showBackButton = true,
2519
+ enableLightbox,
2520
+ customRibbonCategoryComponent,
2521
+ customFrontButton,
2522
+ trustedAppRegistry,
2523
+ hideIssueDate,
2524
+ onDotsClick
2525
+ }) => {
2526
+ var _a, _b, _c, _d, _e, _f;
2527
+ console.log("credential", credential);
2528
+ const {
2529
+ title = "",
2530
+ createdAt,
2531
+ issuer: _issuer = "",
2532
+ issuee: _issuee = "",
2533
+ imageUrl
2534
+ } = getInfoFromCredential(credential, "MMM dd, yyyy");
2535
+ const issuee = issueeOverride || _issuee;
2536
+ const issuer = issuerOverride || _issuer;
2537
+ const [isFront, setIsFront] = useState(true);
2538
+ const [headerHeight, setHeaderHeight] = useState(100);
2539
+ const [headerWidth, setHeaderWidth] = useState(0);
2540
+ const headerRef = useRef(null);
2541
+ useLayoutEffect(() => {
2542
+ setTimeout(() => {
2543
+ var _a2, _b2, _c2, _d2;
2544
+ setHeaderHeight((_b2 = (_a2 = headerRef.current) == null ? void 0 : _a2.clientHeight) != null ? _b2 : 100);
2545
+ setHeaderWidth((_d2 = (_c2 = headerRef.current) == null ? void 0 : _c2.clientWidth) != null ? _d2 : 0);
2546
+ }, 10);
2547
+ });
2548
+ let worstVerificationStatus = verificationItems.reduce((currentWorst, verification) => {
2549
+ switch (currentWorst) {
2550
+ case VerificationStatusEnum.Success:
2551
+ return verification.status;
2552
+ case VerificationStatusEnum.Error:
2553
+ return verification.status === VerificationStatusEnum.Failed ? verification.status : currentWorst;
2554
+ case VerificationStatusEnum.Failed:
2555
+ return currentWorst;
2556
+ }
2557
+ }, VerificationStatusEnum.Success);
2558
+ const statusColor = getColorForVerificationStatus(worstVerificationStatus);
2559
+ const backgroundStyle = {
2560
+ backgroundColor: (_a = credential == null ? void 0 : credential.display) == null ? void 0 : _a.backgroundColor,
2561
+ backgroundImage: ((_b = credential == null ? void 0 : credential.display) == null ? void 0 : _b.backgroundImage) ? `linear-gradient(to bottom, rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.25)), url(${(_c = credential.display) == null ? void 0 : _c.backgroundImage})` : void 0,
2562
+ backgroundSize: "cover",
2563
+ backgroundPosition: "center",
2564
+ backgroundAttachment: "fixed"
2565
+ };
2566
+ const _title = titleOverride || title;
2567
+ if (((_d = credential == null ? void 0 : credential.display) == null ? void 0 : _d.displayType) === "certificate") {
2568
+ return /* @__PURE__ */ React.createElement(CertificateDisplayCard, {
2569
+ credential,
2570
+ categoryType,
2571
+ issueeOverride: issuee,
2572
+ issuerOverride: issuer,
2573
+ verificationItems,
2574
+ getFileMetadata,
2575
+ getVideoMetadata,
2576
+ onMediaAttachmentClick,
2577
+ enableLightbox,
2578
+ trustedAppRegistry,
2579
+ handleXClick,
2580
+ subjectImageComponent,
2581
+ issuerImageComponent,
2582
+ customBodyCardComponent,
2583
+ hideIssueDate,
2584
+ onDotsClick
2585
+ });
2586
+ }
2587
+ return /* @__PURE__ */ React.createElement(h, {
2588
+ className: "w-full",
2589
+ flipKey: isFront
2590
+ }, /* @__PURE__ */ React.createElement(y, {
2591
+ flipId: "card"
2592
+ }, /* @__PURE__ */ React.createElement("section", {
2593
+ className: "vc-display-card font-mouse flex flex-col items-center border-solid border-[5px] border-white rounded-[30px] overflow-visible z-10 min-h-[800px] max-w-[400px] relative bg-white shadow-3xl"
2594
+ }, /* @__PURE__ */ React.createElement(RibbonEnd, {
2595
+ side: "left",
2596
+ className: "absolute left-[-30px] top-[50px] z-0",
2597
+ height: "100"
2598
+ }), /* @__PURE__ */ React.createElement(RibbonEnd, {
2599
+ side: "right",
2600
+ className: "absolute right-[-30px] top-[50px] z-0",
2601
+ height: "100"
2602
+ }), /* @__PURE__ */ React.createElement("h1", {
2603
+ ref: headerRef,
2604
+ className: "vc-card-header px-[20px] pb-[10px] pt-[3px] overflow-visible mt-[40px] absolute text-center bg-white border-y-[5px] border-[#EEF2FF] shadow-bottom w-[calc(100%_+_16px)] rounded-t-[8px] z-50",
2605
+ style: { wordBreak: "break-word" }
2606
+ }, customRibbonCategoryComponent && customRibbonCategoryComponent, !customRibbonCategoryComponent && /* @__PURE__ */ React.createElement(VCDisplayCardCategoryType, {
2607
+ categoryType
2608
+ }), /* @__PURE__ */ React.createElement(FitText, {
2609
+ text: _title != null ? _title : "",
2610
+ maxFontSize: 32,
2611
+ minFontSize: 20,
2612
+ width: ((headerWidth != null ? headerWidth : 290) - 40).toString(),
2613
+ className: "vc-card-header-main-title text-[#18224E] leading-[100%] text-shadow text-[32px]"
2614
+ })), isFront && handleXClick && /* @__PURE__ */ React.createElement("button", {
2615
+ className: "vc-card-x-button absolute top-[-25px] bg-white rounded-full h-[50px] w-[50px] flex items-center justify-center z-50",
2616
+ onClick: handleXClick
2617
+ }, /* @__PURE__ */ React.createElement(RoundedX, null)), /* @__PURE__ */ React.createElement("div", {
2618
+ className: "relative pt-[114px] vc-card-content-container flex flex-col items-center grow basis-0 min-h-0 h-full w-full rounded-t-[30px] bg-[#353E64] rounded-b-[200px]",
2619
+ style: backgroundStyle
2620
+ }, /* @__PURE__ */ React.createElement(y, {
2621
+ flipId: "scroll-container"
2622
+ }, /* @__PURE__ */ React.createElement("div", {
2623
+ className: "vc-card-content-scroll-container w-full pt-[20px] min-h-full flex flex-col justify-start items-center rounded-t-[30px] rounded-b-[200px] overflow-y-auto scrollbar-hide pb-[50px]"
2624
+ }, isFront && /* @__PURE__ */ React.createElement(y, {
2625
+ flipId: "face"
2626
+ }, /* @__PURE__ */ React.createElement(VC2FrontFaceInfo, {
2627
+ issuee,
2628
+ subjectDID,
2629
+ issuer,
2630
+ title,
2631
+ subjectImageComponent,
2632
+ issuerImageComponent,
2633
+ customBodyCardComponent,
2634
+ customThumbComponent,
2635
+ createdAt: createdAt != null ? createdAt : "",
2636
+ imageUrl
2637
+ })), !isFront && /* @__PURE__ */ React.createElement(y, {
2638
+ flipId: "face"
2639
+ }, /* @__PURE__ */ React.createElement(VC2BackFace, {
2640
+ credential,
2641
+ verificationItems,
2642
+ issueHistory,
2643
+ getFileMetadata,
2644
+ getVideoMetadata,
2645
+ onMediaAttachmentClick,
2646
+ showBackButton,
2647
+ showFrontFace: () => setIsFront(true),
2648
+ customDescription,
2649
+ customCriteria,
2650
+ customIssueHistoryComponent,
2651
+ enableLightbox
2652
+ })), /* @__PURE__ */ React.createElement(VCDisplayCardSkillsCount, {
2653
+ skills: credential == null ? void 0 : credential.skills
2654
+ }), isFront && customFrontButton, isFront && !customFrontButton && /* @__PURE__ */ React.createElement(y, {
2655
+ flipId: "details-back-button"
2656
+ }, /* @__PURE__ */ React.createElement("button", {
2657
+ type: "button",
2658
+ className: "vc-toggle-side-button text-white shadow-bottom bg-[#00000099] px-[30px] py-[8px] rounded-[40px] text-[28px] tracking-[0.75px] uppercase leading-[28px] mt-[40px] w-fit select-none",
2659
+ onClick: () => setIsFront(!isFront)
2660
+ }, "Details")), !isFront && /* @__PURE__ */ React.createElement(y, {
2661
+ flipId: "details-back-button"
2662
+ }, /* @__PURE__ */ React.createElement("button", {
2663
+ type: "button",
2664
+ className: "vc-toggle-side-button text-white shadow-bottom bg-[#00000099] px-[30px] py-[8px] rounded-[40px] text-[28px] tracking-[0.75px] uppercase leading-[28px] mt-[40px] w-fit select-none",
2665
+ onClick: () => setIsFront(!isFront)
2666
+ }, /* @__PURE__ */ React.createElement("span", {
2667
+ className: "flex gap-[10px] items-center"
2668
+ }, /* @__PURE__ */ React.createElement(LeftArrow, null), "Back")))))), /* @__PURE__ */ React.createElement("footer", {
2669
+ className: "vc-card-footer w-full flex justify-between p-[5px] mt-[5px]"
2670
+ }, customFooterComponent && customFooterComponent, !customFooterComponent && /* @__PURE__ */ React.createElement(React.Fragment, null, worstVerificationStatus === VerificationStatusEnum.Failed ? /* @__PURE__ */ React.createElement("div", {
2671
+ className: "w-[40px]",
2672
+ role: "presentation"
2673
+ }) : /* @__PURE__ */ React.createElement(VCVerificationCheckWithSpinner, {
2674
+ spinnerSize: "40px",
2675
+ size: "32px",
2676
+ loading: verificationInProgress
2677
+ }), /* @__PURE__ */ React.createElement("div", {
2678
+ className: "vc-footer-text font-montserrat flex flex-col items-center justify-center text-[12px] font-[700] leading-[15px] select-none"
2679
+ }, /* @__PURE__ */ React.createElement("span", {
2680
+ className: "text-[#4F4F4F]"
2681
+ }, "Verified Credential"), /* @__PURE__ */ React.createElement("span", {
2682
+ className: "vc-footer-status uppercase",
2683
+ style: { color: statusColor }
2684
+ }, worstVerificationStatus)), /* @__PURE__ */ React.createElement("div", {
2685
+ className: "vc-footer-icon rounded-[20px] h-[40px] w-[40px] flex items-center justify-center overflow-hidden",
2686
+ style: { backgroundColor: (_e = bottomRightIcon == null ? void 0 : bottomRightIcon.color) != null ? _e : "#6366F1" }
2687
+ }, (_f = bottomRightIcon == null ? void 0 : bottomRightIcon.image) != null ? _f : /* @__PURE__ */ React.createElement(AwardRibbon, null)))))));
2688
+ };
2689
+
2690
+ export { SelectedSkills as S, VCDisplayCard2 as V, VCDisplayCardSkillsCount as a };
2691
+ //# sourceMappingURL=VCDisplayCard2-0b6776f9.js.map