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