@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
@@ -1,1075 +0,0 @@
1
- 'use strict';
2
-
3
- var React = require('react');
4
- var VCVerificationCheck = require('./VCVerificationCheck-46fa75d3.js');
5
- var DefaultFace = require('./default-face.jpeg');
6
- var credential_helpers = require('./credential.helpers-b8363e2e.js');
7
- var Lightbox = require('./Lightbox-f19e13d2.js');
8
- var types_esm = require('./types.esm-d5381f5d.js');
9
- var AwardRibbon = require('./AwardRibbon-14ba45fb.js');
10
- var index = require('./index-bee9764e.js');
11
-
12
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
-
14
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
15
- var DefaultFace__default = /*#__PURE__*/_interopDefaultLegacy(DefaultFace);
16
-
17
- const AcuteCheckmark = ({ className = "" }) => {
18
- return /* @__PURE__ */ React__default["default"].createElement("svg", {
19
- width: "16",
20
- height: "11",
21
- viewBox: "0 0 16 11",
22
- fill: "none",
23
- xmlns: "http://www.w3.org/2000/svg",
24
- className
25
- }, /* @__PURE__ */ React__default["default"].createElement("path", {
26
- d: "M0.5 4.26859L5.96103 10.5L15.3 0.5H10.6348L5.96103 6.3205L4.49338 4.06677L0.5 4.26859Z",
27
- fill: "#00BA88"
28
- }));
29
- };
30
-
31
- const Camera = ({ className = "" }) => {
32
- return /* @__PURE__ */ React__default["default"].createElement("svg", {
33
- width: "25",
34
- height: "24",
35
- viewBox: "0 0 25 24",
36
- fill: "none",
37
- xmlns: "http://www.w3.org/2000/svg",
38
- className
39
- }, /* @__PURE__ */ React__default["default"].createElement("path", {
40
- d: "M20.7415 5.81958H18.6871C18.0439 5.81958 17.4439 5.49798 17.0887 4.96518L16.2295 3.67398C15.8743 3.14118 15.2743 2.81958 14.6311 2.81958L10.6855 2.81958C10.0423 2.81958 9.44231 3.14118 9.08711 3.67398L8.22791 4.96518C7.87271 5.49798 7.27271 5.81958 6.62951 5.81958H4.57991C3.51911 5.81958 2.65991 6.67878 2.65991 7.73958L2.65991 18.8996C2.65991 19.9604 3.51911 20.8196 4.57991 20.8196L20.7415 20.8196C21.8023 20.8196 22.6615 19.9604 22.6615 18.8996L22.6615 7.73958C22.6615 6.67878 21.8023 5.81958 20.7415 5.81958ZM12.7399 17.738C10.0903 17.738 7.93991 15.5876 7.93991 12.938C7.93991 10.2884 10.0903 8.13798 12.7399 8.13798C15.3895 8.13798 17.5399 10.2884 17.5399 12.938C17.5399 15.5876 15.3895 17.738 12.7399 17.738Z",
41
- fill: "white"
42
- }));
43
- };
44
-
45
- const ExclamationPoint = ({ className = "" }) => {
46
- return /* @__PURE__ */ React__default["default"].createElement("svg", {
47
- width: "5",
48
- height: "11",
49
- viewBox: "0 0 5 11",
50
- fill: "none",
51
- xmlns: "http://www.w3.org/2000/svg",
52
- className
53
- }, /* @__PURE__ */ React__default["default"].createElement("path", {
54
- d: "M1.1338 6.58451L0.5 0.5H4.30282L3.66901 6.58451H1.1338ZM2.40141 10.5C1.85681 10.5 1.4108 10.3357 1.06338 10.007C0.715963 9.66901 0.542253 9.26995 0.542253 8.80986C0.542253 8.34037 0.715963 7.94601 1.06338 7.62676C1.4108 7.30751 1.85681 7.14789 2.40141 7.14789C2.9554 7.14789 3.40141 7.30751 3.73944 7.62676C4.08685 7.94601 4.26056 8.34037 4.26056 8.80986C4.26056 9.26995 4.08685 9.66901 3.73944 10.007C3.40141 10.3357 2.9554 10.5 2.40141 10.5Z",
55
- fill: "#FACC15"
56
- }));
57
- };
58
-
59
- const GenericDocumentIcon = ({ className = "" }) => {
60
- return /* @__PURE__ */ React__default["default"].createElement("svg", {
61
- width: "41",
62
- height: "40",
63
- viewBox: "0 0 41 40",
64
- fill: "none",
65
- xmlns: "http://www.w3.org/2000/svg",
66
- className
67
- }, /* @__PURE__ */ React__default["default"].createElement("path", {
68
- d: "M5.5 4.66675C5.5 3.0099 6.84315 1.66675 8.5 1.66675H18.6813C21.3361 1.66675 23.8555 2.83885 25.5655 4.86953L33.3842 14.1542C34.7507 15.7769 35.5 17.8301 35.5 19.9515V35.3334C35.5 36.9903 34.1569 38.3334 32.5 38.3334H8.5C6.84315 38.3334 5.5 36.9903 5.5 35.3334V4.66675Z",
69
- fill: "#FF3636"
70
- }), /* @__PURE__ */ React__default["default"].createElement("path", {
71
- d: "M22 13V2.5C26 3.5 34.5 14 35.5 18H27C23 18 22 16 22 13Z",
72
- fill: "#FF7A7A"
73
- }));
74
- };
75
-
76
- const InfoIcon = ({ className = "", color = "#A8ACBD" }) => {
77
- return /* @__PURE__ */ React__default["default"].createElement("svg", {
78
- width: "22",
79
- height: "21",
80
- viewBox: "0 0 22 21",
81
- fill: "none",
82
- xmlns: "http://www.w3.org/2000/svg",
83
- className
84
- }, /* @__PURE__ */ React__default["default"].createElement("path", {
85
- d: "M11.0003 0.34375C8.99153 0.34375 7.02793 0.939404 5.35774 2.05539C3.68755 3.17137 2.3858 4.75756 1.6171 6.61337C0.848395 8.46918 0.647267 10.5113 1.03915 12.4814C1.43103 14.4515 2.39832 16.2612 3.8187 17.6816C5.23907 19.1019 7.04874 20.0692 9.01886 20.4611C10.989 20.853 13.0311 20.6519 14.8869 19.8832C16.7427 19.1144 18.3289 17.8127 19.4449 16.1425C20.5608 14.4723 21.1565 12.5087 21.1565 10.5C21.1534 7.80735 20.0824 5.22588 18.1784 3.32188C16.2744 1.41789 13.6929 0.346862 11.0003 0.34375V0.34375ZM11.0002 5.03125C11.2319 5.03125 11.4585 5.09998 11.6512 5.22875C11.8439 5.35751 11.9941 5.54054 12.0828 5.75467C12.1715 5.9688 12.1947 6.20443 12.1495 6.43175C12.1043 6.65907 11.9927 6.86788 11.8288 7.03177C11.6649 7.19566 11.4561 7.30727 11.2288 7.35248C11.0015 7.3977 10.7658 7.37449 10.5517 7.2858C10.3376 7.1971 10.1545 7.0469 10.0258 6.85418C9.89701 6.66147 9.82828 6.4349 9.82828 6.20313C9.82828 6.04923 9.85859 5.89685 9.91748 5.75467C9.97637 5.61249 10.0627 5.4833 10.1715 5.37448C10.2803 5.26566 10.4095 5.17934 10.5517 5.12045C10.6939 5.06156 10.8463 5.03125 11.0002 5.03125H11.0002ZM11.7815 15.9688H11.0003C10.8976 15.9688 10.796 15.9486 10.7012 15.9094C10.6064 15.8702 10.5202 15.8126 10.4477 15.7401C10.3751 15.6675 10.3176 15.5814 10.2783 15.4865C10.2391 15.3917 10.2189 15.2901 10.219 15.1875V10.5C10.0118 10.5 9.81309 10.4177 9.66657 10.2712C9.52006 10.1247 9.43775 9.92595 9.43775 9.71875C9.43775 9.51155 9.52006 9.31284 9.66657 9.16632C9.81309 9.01981 10.0118 8.9375 10.219 8.9375H11.0003C11.1029 8.93744 11.2045 8.95761 11.2993 8.99685C11.3941 9.03609 11.4803 9.09363 11.5528 9.16619C11.6254 9.23875 11.6829 9.3249 11.7222 9.41971C11.7614 9.51452 11.7816 9.61614 11.7815 9.71875V14.4063C11.9887 14.4063 12.1874 14.4886 12.3339 14.6351C12.4804 14.7816 12.5628 14.9803 12.5628 15.1875C12.5628 15.3947 12.4804 15.5934 12.3339 15.7399C12.1874 15.8864 11.9887 15.9688 11.7815 15.9688Z",
86
- fill: color
87
- }));
88
- };
89
-
90
- const LeftArrow = ({ className = "", size = "20" }) => {
91
- return /* @__PURE__ */ React__default["default"].createElement("svg", {
92
- width: size,
93
- height: size,
94
- viewBox: "0 0 20 20",
95
- fill: "none",
96
- xmlns: "http://www.w3.org/2000/svg",
97
- className
98
- }, /* @__PURE__ */ React__default["default"].createElement("path", {
99
- 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",
100
- fill: "currentColor"
101
- }));
102
- };
103
-
104
- const LinkIcon = ({ className = "" }) => {
105
- return /* @__PURE__ */ React__default["default"].createElement("svg", {
106
- width: "33",
107
- height: "32",
108
- viewBox: "0 0 33 32",
109
- fill: "none",
110
- xmlns: "http://www.w3.org/2000/svg",
111
- className
112
- }, /* @__PURE__ */ React__default["default"].createElement("path", {
113
- d: "M16.8117 7.91003L18.2677 6.45403C18.7784 5.94292 19.3847 5.53742 20.0521 5.26071C20.7195 4.98399 21.4348 4.84148 22.1573 4.84131C22.8798 4.84114 23.5953 4.98332 24.2628 5.25973C24.9303 5.53613 25.5368 5.94135 26.0477 6.45222C26.5586 6.9631 26.9638 7.56962 27.2402 8.23714C27.5166 8.90466 27.6588 9.6201 27.6586 10.3426C27.6584 11.0651 27.5159 11.7804 27.2392 12.4478C26.9625 13.1152 26.557 13.7216 26.0459 14.2322L22.5104 17.7677C21.9996 18.2785 21.3933 18.6836 20.726 18.96C20.0587 19.2364 19.3435 19.3787 18.6213 19.3787C17.899 19.3787 17.1838 19.2364 16.5165 18.96C15.8492 18.6836 15.2429 18.2785 14.7322 17.7677",
114
- stroke: "#6366F1",
115
- strokeWidth: "3",
116
- strokeLinecap: "round",
117
- strokeLinejoin: "round"
118
- }), /* @__PURE__ */ React__default["default"].createElement("path", {
119
- d: "M16.188 24.0902L14.7322 25.546C14.2216 26.0571 13.6152 26.4626 12.9478 26.7393C12.2804 27.016 11.5651 27.1585 10.8426 27.1587C10.1201 27.1589 9.40466 27.0167 8.73714 26.7403C8.06962 26.4639 7.4631 26.0586 6.95222 25.5478C6.44135 25.0369 6.03613 24.4304 5.75973 23.7629C5.48332 23.0953 5.34114 22.3799 5.34131 21.6574C5.34148 20.9349 5.48399 20.2195 5.76071 19.5521C6.03742 18.8848 6.44292 18.2784 6.95403 17.7678L10.4896 14.2323C11.0003 13.7215 11.6066 13.3164 12.2739 13.04C12.9412 12.7636 13.6564 12.6213 14.3787 12.6213C15.1009 12.6213 15.8161 12.7636 16.4834 13.04C17.1507 13.3164 17.757 13.7215 18.2677 14.2323",
120
- stroke: "#6366F1",
121
- strokeWidth: "3",
122
- strokeLinecap: "round",
123
- strokeLinejoin: "round"
124
- }));
125
- };
126
-
127
- const RoundedX = ({ className = "" }) => {
128
- return /* @__PURE__ */ React__default["default"].createElement("svg", {
129
- width: "24",
130
- height: "24",
131
- viewBox: "0 0 24 24",
132
- fill: "none",
133
- xmlns: "http://www.w3.org/2000/svg",
134
- className
135
- }, /* @__PURE__ */ React__default["default"].createElement("path", {
136
- d: "M18.75 5.25L5.25 18.75",
137
- stroke: "#18224E",
138
- strokeWidth: "4",
139
- strokeLinecap: "round",
140
- strokeLinejoin: "round"
141
- }), /* @__PURE__ */ React__default["default"].createElement("path", {
142
- d: "M18.75 18.75L5.25 5.25",
143
- stroke: "#18224E",
144
- strokeWidth: "4",
145
- strokeLinecap: "round",
146
- strokeLinejoin: "round"
147
- }));
148
- };
149
-
150
- const VideoIcon = ({ className = "", size = "25" }) => {
151
- return /* @__PURE__ */ React__default["default"].createElement("svg", {
152
- width: size,
153
- height: size,
154
- viewBox: "0 0 25 24",
155
- fill: "none",
156
- xmlns: "http://www.w3.org/2000/svg",
157
- className
158
- }, /* @__PURE__ */ React__default["default"].createElement("path", {
159
- fillRule: "evenodd",
160
- clipRule: "evenodd",
161
- d: "M6.61304 4.5H12.4051C14.8271 4.5 16.5181 6.16904 16.5181 8.56091V15.4391C16.5181 17.831 14.8271 19.5 12.4051 19.5H6.61304C4.19102 19.5 2.5 17.831 2.5 15.4391V8.56091C2.5 6.16904 4.19102 4.5 6.61304 4.5ZM20.458 6.87898C20.897 6.65563 21.412 6.67898 21.831 6.94294C22.25 7.20589 22.5 7.66274 22.5 8.16223V15.8384C22.5 16.3389 22.25 16.7947 21.831 17.0577C21.602 17.2008 21.346 17.2739 21.088 17.2739C20.873 17.2739 20.658 17.2231 20.457 17.1206L18.976 16.3734C18.428 16.0952 18.088 15.5369 18.088 14.9165V9.08305C18.088 8.46173 18.428 7.90335 18.976 7.62721L20.458 6.87898Z",
162
- fill: "white"
163
- }));
164
- };
165
-
166
- const X = ({ className = "" }) => {
167
- return /* @__PURE__ */ React__default["default"].createElement("svg", {
168
- width: "11",
169
- height: "11",
170
- viewBox: "0 0 11 11",
171
- fill: "none",
172
- xmlns: "http://www.w3.org/2000/svg",
173
- className
174
- }, /* @__PURE__ */ React__default["default"].createElement("path", {
175
- d: "M7.47753 10.25C7.20582 9.8045 6.92868 9.37104 6.6461 8.94962C6.37439 8.52218 6.08637 8.09173 5.78206 7.65827C5.49948 8.07969 5.22233 8.50412 4.95062 8.93156C4.67891 9.35298 4.41807 9.78042 4.1681 10.2139L0.5 10.1055C1.15211 9.33492 1.78247 8.57335 2.39111 7.82082C3.01061 7.06828 3.60294 6.3007 4.1681 5.51806C3.5812 4.74747 2.98344 3.98891 2.3748 3.2424C1.77704 2.48986 1.17384 1.73131 0.565211 0.96673L4.38003 0.75C4.77129 1.57478 5.23864 2.3815 5.78206 3.17015C6.01029 2.77883 6.24397 2.38451 6.48307 1.98717C6.73305 1.58983 6.96672 1.17744 7.18409 0.75L10.95 0.912548C10.2979 1.67712 9.67839 2.43267 9.0915 3.17918C8.5046 3.9257 7.92314 4.68124 7.34711 5.44582C7.9014 6.21039 8.46113 6.95691 9.02629 7.68536C9.60231 8.41382 10.1783 9.1513 10.7544 9.89781L7.47753 10.25Z",
176
- fill: "#FF2C3C"
177
- }));
178
- };
179
-
180
- const FitText = ({
181
- text,
182
- width,
183
- className = "",
184
- minFontSize = 10,
185
- maxFontSize = 100
186
- }) => {
187
- const textRef = React.useRef(null);
188
- let animationFrameId = null;
189
- const adjustFontSize = () => {
190
- var _a;
191
- if (textRef.current) {
192
- const currentFontSize = parseFloat(window.getComputedStyle(textRef.current).getPropertyValue("font-size"));
193
- textRef.current.style.whiteSpace = "nowrap";
194
- const parentWidth = (_a = textRef.current.parentNode) == null ? void 0 : _a.clientWidth;
195
- const scrollWidth = textRef.current.scrollWidth || textRef.current.offsetWidth;
196
- if (scrollWidth === 0) {
197
- if (animationFrameId !== null) {
198
- cancelAnimationFrame(animationFrameId);
199
- }
200
- animationFrameId = requestAnimationFrame(adjustFontSize);
201
- return;
202
- }
203
- const newFontSize = Math.min(Math.max(parentWidth / scrollWidth * currentFontSize, minFontSize), maxFontSize);
204
- textRef.current.style.fontSize = `${newFontSize}px`;
205
- textRef.current.style.whiteSpace = newFontSize === minFontSize ? "normal" : "nowrap";
206
- }
207
- };
208
- const handleResize = () => {
209
- if (animationFrameId !== null) {
210
- cancelAnimationFrame(animationFrameId);
211
- }
212
- animationFrameId = requestAnimationFrame(adjustFontSize);
213
- };
214
- React.useEffect(() => {
215
- window.addEventListener("resize", handleResize);
216
- adjustFontSize();
217
- return () => {
218
- window.removeEventListener("resize", handleResize);
219
- if (animationFrameId !== null) {
220
- cancelAnimationFrame(animationFrameId);
221
- }
222
- };
223
- }, [text]);
224
- return /* @__PURE__ */ React__default["default"].createElement("div", {
225
- style: { width },
226
- className: `text-center ${className}`
227
- }, /* @__PURE__ */ React__default["default"].createElement("span", {
228
- className: `text-[${minFontSize}px] transition-[font-size] whitespace-nowrap`,
229
- ref: textRef
230
- }, text));
231
- };
232
-
233
- const InfoBox = ({ text, handleClose, backgroundColor = "#6366F1" }) => {
234
- const bgColorWithOpacity = `${backgroundColor}1F`;
235
- return /* @__PURE__ */ React__default["default"].createElement("div", {
236
- className: "info-box p-[10px] rounded-[10px] w-full font-poppins text-[12px] leading[18px]",
237
- style: { backgroundColor: bgColorWithOpacity }
238
- }, text, " ", /* @__PURE__ */ React__default["default"].createElement("button", {
239
- onClick: handleClose,
240
- className: "text-indigo-500 font-[700] select-none"
241
- }, "Close"));
242
- };
243
-
244
- const IssueHistoryBox = ({
245
- issueHistory,
246
- customIssueHistoryComponent
247
- }) => {
248
- let renderIssueHistory = issueHistory == null ? void 0 : issueHistory.map((issueItem) => {
249
- return /* @__PURE__ */ React__default["default"].createElement("div", {
250
- className: "flex items-center issue-log-item border-b-[1px] py-[5px] border-grayscale-200 border-solid w-full",
251
- key: issueItem == null ? void 0 : issueItem.id
252
- }, /* @__PURE__ */ React__default["default"].createElement("div", {
253
- className: "profile-thumb-img vc-issuee-image h-[35px] w-[35px] rounded-full overflow-hidden"
254
- }, /* @__PURE__ */ React__default["default"].createElement("img", {
255
- className: "h-full w-full object-cover select-none",
256
- src: (issueItem == null ? void 0 : issueItem.thumb) || DefaultFace__default["default"],
257
- alt: "profile"
258
- })), /* @__PURE__ */ React__default["default"].createElement("div", {
259
- className: "ml-[9px] flex flex-col justify-center"
260
- }, /* @__PURE__ */ React__default["default"].createElement("p", {
261
- className: "issue-item-name font-montserrat font-semibold text-grayscale-900 text-[14px] "
262
- }, issueItem == null ? void 0 : issueItem.name), /* @__PURE__ */ React__default["default"].createElement("p", {
263
- className: "issue-item-date font-montserrat text-[12px] text-grayscale-600 "
264
- }, issueItem == null ? void 0 : issueItem.date)));
265
- });
266
- return /* @__PURE__ */ React__default["default"].createElement("div", {
267
- className: "bg-white flex flex-col items-start gap-[10px] rounded-[20px] shadow-bottom px-[15px] py-[20px] w-full relative"
268
- }, /* @__PURE__ */ React__default["default"].createElement("h3", {
269
- className: "text-[20px] leading-[20px] text-grayscale-900"
270
- }, "Issue Log"), !customIssueHistoryComponent ? renderIssueHistory : customIssueHistoryComponent);
271
- };
272
-
273
- const BYTE_UNITS = [
274
- 'B',
275
- 'kB',
276
- 'MB',
277
- 'GB',
278
- 'TB',
279
- 'PB',
280
- 'EB',
281
- 'ZB',
282
- 'YB',
283
- ];
284
-
285
- const BIBYTE_UNITS = [
286
- 'B',
287
- 'kiB',
288
- 'MiB',
289
- 'GiB',
290
- 'TiB',
291
- 'PiB',
292
- 'EiB',
293
- 'ZiB',
294
- 'YiB',
295
- ];
296
-
297
- const BIT_UNITS = [
298
- 'b',
299
- 'kbit',
300
- 'Mbit',
301
- 'Gbit',
302
- 'Tbit',
303
- 'Pbit',
304
- 'Ebit',
305
- 'Zbit',
306
- 'Ybit',
307
- ];
308
-
309
- const BIBIT_UNITS = [
310
- 'b',
311
- 'kibit',
312
- 'Mibit',
313
- 'Gibit',
314
- 'Tibit',
315
- 'Pibit',
316
- 'Eibit',
317
- 'Zibit',
318
- 'Yibit',
319
- ];
320
-
321
- /*
322
- Formats the given number using `Number#toLocaleString`.
323
- - If locale is a string, the value is expected to be a locale-key (for example: `de`).
324
- - If locale is true, the system default locale is used for translation.
325
- - If no value for locale is specified, the number is returned unmodified.
326
- */
327
- const toLocaleString = (number, locale, options) => {
328
- let result = number;
329
- if (typeof locale === 'string' || Array.isArray(locale)) {
330
- result = number.toLocaleString(locale, options);
331
- } else if (locale === true || options !== undefined) {
332
- result = number.toLocaleString(undefined, options);
333
- }
334
-
335
- return result;
336
- };
337
-
338
- function prettyBytes(number, options) {
339
- if (!Number.isFinite(number)) {
340
- throw new TypeError(`Expected a finite number, got ${typeof number}: ${number}`);
341
- }
342
-
343
- options = {
344
- bits: false,
345
- binary: false,
346
- ...options,
347
- };
348
-
349
- const UNITS = options.bits
350
- ? (options.binary ? BIBIT_UNITS : BIT_UNITS)
351
- : (options.binary ? BIBYTE_UNITS : BYTE_UNITS);
352
-
353
- if (options.signed && number === 0) {
354
- return ` 0 ${UNITS[0]}`;
355
- }
356
-
357
- const isNegative = number < 0;
358
- const prefix = isNegative ? '-' : (options.signed ? '+' : '');
359
-
360
- if (isNegative) {
361
- number = -number;
362
- }
363
-
364
- let localeOptions;
365
-
366
- if (options.minimumFractionDigits !== undefined) {
367
- localeOptions = {minimumFractionDigits: options.minimumFractionDigits};
368
- }
369
-
370
- if (options.maximumFractionDigits !== undefined) {
371
- localeOptions = {maximumFractionDigits: options.maximumFractionDigits, ...localeOptions};
372
- }
373
-
374
- if (number < 1) {
375
- const numberString = toLocaleString(number, options.locale, localeOptions);
376
- return prefix + numberString + ' ' + UNITS[0];
377
- }
378
-
379
- const exponent = Math.min(Math.floor(options.binary ? Math.log(number) / Math.log(1024) : Math.log10(number) / 3), UNITS.length - 1);
380
- number /= (options.binary ? 1024 : 1000) ** exponent;
381
-
382
- if (!localeOptions) {
383
- number = number.toPrecision(3);
384
- }
385
-
386
- const numberString = toLocaleString(Number(number), options.locale, localeOptions);
387
-
388
- const unit = UNITS[exponent];
389
-
390
- return prefix + numberString + ' ' + unit;
391
- }
392
-
393
- const getBaseUrl = (url) => {
394
- return url.replace(/(https?:\/\/(www\.)?)/, "").split("/")[0];
395
- };
396
-
397
- var __async = (__this, __arguments, generator) => {
398
- return new Promise((resolve, reject) => {
399
- var fulfilled = (value) => {
400
- try {
401
- step(generator.next(value));
402
- } catch (e) {
403
- reject(e);
404
- }
405
- };
406
- var rejected = (value) => {
407
- try {
408
- step(generator.throw(value));
409
- } catch (e) {
410
- reject(e);
411
- }
412
- };
413
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
414
- step((generator = generator.apply(__this, __arguments)).next());
415
- });
416
- };
417
- const defaultGetFileMetadata = (url) => __async(undefined, null, function* () {
418
- var _a;
419
- const isFilestack = url.includes("filestack");
420
- if (!isFilestack)
421
- return;
422
- const urlParams = (_a = url.split(".com/")[1]) == null ? void 0 : _a.split("/");
423
- if (!urlParams)
424
- return;
425
- const handle = urlParams[urlParams.length - 1];
426
- let fetchFailed = false;
427
- const data = yield fetch(`https://cdn.filestackcontent.com/${handle}/metadata`).then((res) => res.json()).catch(() => fetchFailed = true);
428
- if (fetchFailed)
429
- return;
430
- const fileExtension = data.filename.split(".")[1];
431
- return {
432
- fileExtension,
433
- sizeInBytes: data.size,
434
- numberOfPages: void 0
435
- };
436
- });
437
- const defaultGetVideoMetadata = (url) => __async(undefined, null, function* () {
438
- const isYoutube = url.includes("youtube");
439
- if (!isYoutube)
440
- return;
441
- const metadataUrl = `http://youtube.com/oembed?url=${url}&format=json`;
442
- let fetchFailed = false;
443
- const metadata = yield fetch(metadataUrl).then((res) => res.json()).catch(() => fetchFailed = true);
444
- if (fetchFailed)
445
- return;
446
- return {
447
- title: metadata.title,
448
- imageUrl: metadata.thumbnail_url,
449
- videoLength: ""
450
- };
451
- });
452
- const MediaAttachmentsBox = ({
453
- attachments,
454
- getFileMetadata = defaultGetFileMetadata,
455
- getVideoMetadata = defaultGetVideoMetadata,
456
- onMediaAttachmentClick,
457
- enableLightbox = false
458
- }) => {
459
- const [documentMetadata, setDocumentMetadata] = React.useState({});
460
- const [videoMetadata, setVideoMetadata] = React.useState({});
461
- const mediaAttachments = [];
462
- const documentsAndLinks = [];
463
- attachments.forEach((a) => {
464
- switch (a.type) {
465
- case "document":
466
- case "link":
467
- documentsAndLinks.push(a);
468
- break;
469
- case "photo":
470
- case "video":
471
- mediaAttachments.push(a);
472
- break;
473
- }
474
- });
475
- React.useEffect(() => {
476
- const getMetadata = (attachments2) => __async(undefined, null, function* () {
477
- const docMetadata = {};
478
- const videoMetadata2 = {};
479
- yield Promise.all(attachments2.map((attachment) => __async(this, null, function* () {
480
- if (attachment.type === "document") {
481
- docMetadata[attachment.url] = yield getFileMetadata(attachment.url);
482
- } else if (attachment.type === "video") {
483
- videoMetadata2[attachment.url] = yield getVideoMetadata(attachment.url);
484
- }
485
- })));
486
- setVideoMetadata(videoMetadata2);
487
- setDocumentMetadata(docMetadata);
488
- });
489
- const videos = attachments.filter((a) => a.type === "video");
490
- getMetadata([...documentsAndLinks, ...videos]);
491
- }, []);
492
- const [currentLightboxUrl, setCurrentLightboxUrl] = React.useState(void 0);
493
- const lightboxItems = mediaAttachments.filter((a) => a.type === "photo" || a.type === "video");
494
- const handleMediaAttachmentClick = (url, type) => {
495
- if (type === "photo" || type === "video") {
496
- setCurrentLightboxUrl(url);
497
- }
498
- onMediaAttachmentClick == null ? void 0 : onMediaAttachmentClick(url, type);
499
- };
500
- return /* @__PURE__ */ React__default["default"].createElement("div", {
501
- className: "media-attachments-box bg-white flex flex-col items-start gap-[10px] rounded-[20px] shadow-bottom px-[15px] py-[20px] w-full"
502
- }, /* @__PURE__ */ React__default["default"].createElement("h3", {
503
- className: "text-[20px] leading-[20px] text-grayscale-900"
504
- }, "Media Attachments"), mediaAttachments.length > 0 && /* @__PURE__ */ React__default["default"].createElement("div", {
505
- className: "flex gap-[5px] justify-between flex-wrap w-full"
506
- }, enableLightbox && /* @__PURE__ */ React__default["default"].createElement(Lightbox.Lightbox, {
507
- items: lightboxItems,
508
- currentUrl: currentLightboxUrl,
509
- setCurrentUrl: setCurrentLightboxUrl
510
- }), mediaAttachments.map((media, index) => {
511
- var _a, _b;
512
- let innerContent;
513
- let title = media.title;
514
- if (media.type === "video") {
515
- const metadata = videoMetadata[media.url];
516
- title = (_a = title || (metadata == null ? void 0 : metadata.title)) != null ? _a : "";
517
- const baseUrl = getBaseUrl(media.url);
518
- const iconTop = title || baseUrl;
519
- innerContent = /* @__PURE__ */ React__default["default"].createElement("div", {
520
- 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]",
521
- style: {
522
- 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
523
- }
524
- }, !(metadata == null ? void 0 : metadata.imageUrl) && /* @__PURE__ */ React__default["default"].createElement(VideoIcon, {
525
- size: "60",
526
- className: "m-auto"
527
- }), /* @__PURE__ */ React__default["default"].createElement("div", {
528
- className: `absolute ${iconTop ? "top-[10px]" : "bottom-[10px]"} left-[10px] z-10 flex items-center gap-[5px]`
529
- }, (metadata == null ? void 0 : metadata.imageUrl) && /* @__PURE__ */ React__default["default"].createElement(VideoIcon, null), (metadata == null ? void 0 : metadata.videoLength) && /* @__PURE__ */ React__default["default"].createElement("span", {
530
- className: "leading-[23px]"
531
- }, metadata.videoLength)), baseUrl && /* @__PURE__ */ React__default["default"].createElement("span", {
532
- className: "font-[600]"
533
- }, baseUrl), title && /* @__PURE__ */ React__default["default"].createElement("span", {
534
- className: "line-clamp-2"
535
- }, title));
536
- } else {
537
- innerContent = /* @__PURE__ */ React__default["default"].createElement("div", {
538
- className: "absolute top-0 left-0 right-0 bottom-0 h-min"
539
- }, /* @__PURE__ */ React__default["default"].createElement("img", {
540
- className: "rounded-[15px]",
541
- src: media.url
542
- }), /* @__PURE__ */ React__default["default"].createElement(Camera, {
543
- className: "relative bottom-[30px] left-[10px] z-10"
544
- }));
545
- }
546
- const className = `media-attachment ${media.type} w-[49%] pt-[49%] overflow-hidden relative`;
547
- if (onMediaAttachmentClick || enableLightbox) {
548
- return /* @__PURE__ */ React__default["default"].createElement("button", {
549
- key: index,
550
- className,
551
- onClick: () => handleMediaAttachmentClick(media.url, media.type)
552
- }, innerContent);
553
- }
554
- return /* @__PURE__ */ React__default["default"].createElement("div", {
555
- key: index,
556
- className
557
- }, innerContent);
558
- })), documentsAndLinks.length > 0 && /* @__PURE__ */ React__default["default"].createElement("div", {
559
- className: "w-full flex flex-col gap-[5px]"
560
- }, documentsAndLinks.map((docOrLink, index) => {
561
- var _a;
562
- const metadata = docOrLink.type === "document" ? documentMetadata[docOrLink.url] : void 0;
563
- const { fileExtension, sizeInBytes, numberOfPages } = metadata != null ? metadata : {};
564
- let baseUrl = "";
565
- if (docOrLink.type === "link") {
566
- baseUrl = getBaseUrl(docOrLink.url);
567
- }
568
- const innerContent = /* @__PURE__ */ React__default["default"].createElement("div", {
569
- className: "flex flex-col gap-[5px]"
570
- }, /* @__PURE__ */ React__default["default"].createElement("div", {
571
- className: "flex gap-[5px] items-center"
572
- }, docOrLink.type === "document" && /* @__PURE__ */ React__default["default"].createElement(GenericDocumentIcon, {
573
- className: "shrink-0"
574
- }), docOrLink.type === "link" && /* @__PURE__ */ React__default["default"].createElement(LinkIcon, {
575
- className: "shrink-0"
576
- }), /* @__PURE__ */ React__default["default"].createElement("span", {
577
- className: "text-grayscale-900 font-[400]"
578
- }, (_a = docOrLink.title) != null ? _a : "No title")), docOrLink.type === "document" && metadata && /* @__PURE__ */ React__default["default"].createElement("a", {
579
- href: docOrLink.url,
580
- target: "_blank",
581
- rel: "noreferrer",
582
- className: "text-grayscale-600 font-[600] px-[5px] hover:underline"
583
- }, fileExtension && /* @__PURE__ */ React__default["default"].createElement("span", {
584
- className: "uppercase"
585
- }, 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, prettyBytes(sizeInBytes))), docOrLink.type === "link" && /* @__PURE__ */ React__default["default"].createElement("a", {
586
- href: docOrLink.url,
587
- target: "_blank",
588
- rel: "noreferrer",
589
- className: "text-indigo-500 font-[600] px-[5px] hover:underline"
590
- }, baseUrl));
591
- 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`;
592
- if (onMediaAttachmentClick) {
593
- return /* @__PURE__ */ React__default["default"].createElement("button", {
594
- key: index,
595
- className,
596
- onClick: () => handleMediaAttachmentClick(docOrLink.url, docOrLink.type)
597
- }, innerContent);
598
- }
599
- return /* @__PURE__ */ React__default["default"].createElement("div", {
600
- key: index,
601
- className
602
- }, innerContent);
603
- })));
604
- };
605
-
606
- const RibbonEnd = ({
607
- side,
608
- className = "",
609
- height = "64"
610
- }) => {
611
- const halfHeight = parseInt(height) / 2;
612
- return /* @__PURE__ */ React__default["default"].createElement("svg", {
613
- className,
614
- width: "30",
615
- height,
616
- viewBox: `0 0 30 ${height}`,
617
- fill: "none",
618
- xmlns: "http://www.w3.org/2000/svg",
619
- style: { transform: `scaleX(${side === "left" ? "1" : "-1"})` }
620
- }, /* @__PURE__ */ React__default["default"].createElement("g", {
621
- filter: "url(#filter0_d_4620_22659)"
622
- }, /* @__PURE__ */ React__default["default"].createElement("path", {
623
- d: `M0 0H30V${height}H0L6.36364 ${halfHeight}L0 0Z`,
624
- fill: "white"
625
- }), /* @__PURE__ */ React__default["default"].createElement("path", {
626
- d: `M3.08593 2.5H27.5V${height}H3.08593L8.80922 ${halfHeight}L8.91926 30L8.80922 29.4812L3.08593 2.5Z`,
627
- stroke: "#EEF2FF",
628
- strokeWidth: "5"
629
- })), /* @__PURE__ */ React__default["default"].createElement("defs", null, /* @__PURE__ */ React__default["default"].createElement("filter", {
630
- id: "filter0_d_4620_22659",
631
- x: "0",
632
- y: "0",
633
- width: "30",
634
- height,
635
- filterUnits: "userSpaceOnUse",
636
- colorInterpolationFilters: "sRGB"
637
- }, /* @__PURE__ */ React__default["default"].createElement("feFlood", {
638
- floodOpacity: "0",
639
- result: "BackgroundImageFix"
640
- }), /* @__PURE__ */ React__default["default"].createElement("feColorMatrix", {
641
- in: "SourceAlpha",
642
- type: "matrix",
643
- values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0",
644
- result: "hardAlpha"
645
- }), /* @__PURE__ */ React__default["default"].createElement("feOffset", {
646
- dy: "4"
647
- }), /* @__PURE__ */ React__default["default"].createElement("feComposite", {
648
- in2: "hardAlpha",
649
- operator: "out"
650
- }), /* @__PURE__ */ React__default["default"].createElement("feColorMatrix", {
651
- type: "matrix",
652
- values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"
653
- }), /* @__PURE__ */ React__default["default"].createElement("feBlend", {
654
- mode: "normal",
655
- in2: "BackgroundImageFix",
656
- result: "effect1_dropShadow_4620_22659"
657
- }), /* @__PURE__ */ React__default["default"].createElement("feBlend", {
658
- mode: "normal",
659
- in: "SourceGraphic",
660
- in2: "effect1_dropShadow_4620_22659",
661
- result: "shape"
662
- }))));
663
- };
664
-
665
- const TruncateTextBox = ({
666
- headerText,
667
- headerClassName = "",
668
- text,
669
- truncateThreshold = 132,
670
- children,
671
- className = "truncate-text-box"
672
- }) => {
673
- const needsTruncate = (text == null ? void 0 : text.length) > truncateThreshold;
674
- const [showFullText, setShowFullText] = React.useState(false);
675
- const truncated = needsTruncate && !showFullText;
676
- const displayText = truncated ? text.substring(0, truncateThreshold) : text;
677
- return /* @__PURE__ */ React__default["default"].createElement("div", {
678
- className: `${className} bg-white flex flex-col items-start gap-[10px] rounded-[20px] shadow-bottom px-[15px] py-[20px] w-full"`
679
- }, /* @__PURE__ */ React__default["default"].createElement("h3", {
680
- className: `${headerClassName} text-[20px] leading-[20px] text-grayscale-900`
681
- }, headerText), /* @__PURE__ */ React__default["default"].createElement("p", {
682
- className: "text-[12px] text-grayscale-700 leading-[18px] font-poppins font-[400] mb-0"
683
- }, displayText, truncated && /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, "...", " ", /* @__PURE__ */ React__default["default"].createElement("button", {
684
- className: "text-indigo-500 font-[700]",
685
- onClick: () => setShowFullText(true)
686
- }, "More")), needsTruncate && showFullText && /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, " ", /* @__PURE__ */ React__default["default"].createElement("button", {
687
- className: "text-indigo-500 font-[700]",
688
- onClick: () => setShowFullText(false)
689
- }, "Close"))), children);
690
- };
691
-
692
- const truncateWithEllipsis = (str, maxLength) => {
693
- return str.length > maxLength ? `${str.substring(0, maxLength)}...` : str;
694
- };
695
- const capitalize = (string) => {
696
- return string ? string[0].toUpperCase() + string.slice(1) : "";
697
- };
698
-
699
- const VerificationRow = ({ verification }) => {
700
- var _a, _b;
701
- const [showInfo, setShowInfo] = React.useState(false);
702
- const statusColor = credential_helpers.getColorForVerificationStatus(verification.status);
703
- const getIcon = () => {
704
- switch (verification.status) {
705
- case types_esm.VerificationStatusEnum.Success:
706
- return /* @__PURE__ */ React__default["default"].createElement(AcuteCheckmark, null);
707
- case types_esm.VerificationStatusEnum.Error:
708
- return /* @__PURE__ */ React__default["default"].createElement(ExclamationPoint, null);
709
- case types_esm.VerificationStatusEnum.Failed:
710
- return /* @__PURE__ */ React__default["default"].createElement(X, null);
711
- }
712
- };
713
- let primaryText = verification.check ? `${verification.check}: ${verification.message}` : verification.message;
714
- if (verification.status === types_esm.VerificationStatusEnum.Failed) {
715
- primaryText = (_b = (_a = verification.message) != null ? _a : verification.details) != null ? _b : "";
716
- }
717
- primaryText = capitalize(primaryText);
718
- const infoText = "";
719
- return /* @__PURE__ */ React__default["default"].createElement("div", {
720
- 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"
721
- }, /* @__PURE__ */ React__default["default"].createElement("span", {
722
- className: "font-[700] text-[11px] leading-[16px] uppercase flex items-center gap-[3px] select-none",
723
- style: { color: statusColor }
724
- }, getIcon(), verification.status, infoText ), showInfo && infoText && /* @__PURE__ */ React__default["default"].createElement(InfoBox, {
725
- text: infoText,
726
- handleClose: () => setShowInfo(false),
727
- backgroundColor: statusColor
728
- }), /* @__PURE__ */ React__default["default"].createElement("span", {
729
- className: "font-[400] text-[14px] leading-[21px] text-grayscale-900"
730
- }, primaryText));
731
- };
732
-
733
- const VerificationsBox = ({ verificationItems }) => {
734
- const [showInfo, setShowInfo] = React.useState(false);
735
- return /* @__PURE__ */ React__default["default"].createElement("div", {
736
- className: "verifications-box bg-white flex flex-col items-start gap-[10px] rounded-[20px] shadow-bottom px-[15px] py-[20px] w-full relative"
737
- }, /* @__PURE__ */ React__default["default"].createElement("h3", {
738
- className: "text-[20px] leading-[20px] text-grayscale-900"
739
- }, "Credential Verifications"), /* @__PURE__ */ React__default["default"].createElement("button", {
740
- className: "absolute top-[17px] right-[17px]",
741
- onClick: () => setShowInfo(!showInfo)
742
- }, /* @__PURE__ */ React__default["default"].createElement(InfoIcon, {
743
- color: showInfo ? "#6366F1" : void 0
744
- })), showInfo && /* @__PURE__ */ React__default["default"].createElement(InfoBox, {
745
- text: "Credential verifications check the cryptographic proof of digital credentials to ensure their authenticity and accuracy.",
746
- handleClose: () => setShowInfo(false)
747
- }), verificationItems.map((verification, index) => /* @__PURE__ */ React__default["default"].createElement(VerificationRow, {
748
- key: index,
749
- verification
750
- })));
751
- };
752
-
753
- const VC2BackFace = ({
754
- credential,
755
- verificationItems,
756
- getFileMetadata,
757
- getVideoMetadata,
758
- onMediaAttachmentClick,
759
- issueHistory,
760
- showBackButton,
761
- showFrontFace,
762
- customDescription,
763
- customCriteria,
764
- customIssueHistoryComponent,
765
- enableLightbox
766
- }) => {
767
- var _a;
768
- const expiration = credential.expirationDate ? credential_helpers.format(new Date(credential.expirationDate), "MMM dd, yyyy") : void 0;
769
- const isExpired = credential.expirationDate && Number(new Date(credential.expirationDate)) < Number(new Date());
770
- const achievement = "achievement" in credential.credentialSubject ? credential.credentialSubject.achievement : void 0;
771
- const criteria = (_a = achievement == null ? void 0 : achievement.criteria) == null ? void 0 : _a.narrative;
772
- const description = achievement == null ? void 0 : achievement.description;
773
- return /* @__PURE__ */ React__default["default"].createElement("section", {
774
- className: "vc-back-face flex flex-col gap-[20px] w-full px-[15px]"
775
- }, showBackButton && /* @__PURE__ */ React__default["default"].createElement("div", {
776
- className: "w-full"
777
- }, /* @__PURE__ */ React__default["default"].createElement("button", {
778
- 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",
779
- onClick: showFrontFace
780
- }, /* @__PURE__ */ React__default["default"].createElement(LeftArrow, {
781
- className: "text-white",
782
- size: "25"
783
- }), "Details")), customDescription && /* @__PURE__ */ React__default["default"].createElement(TruncateTextBox, {
784
- headerText: "About",
785
- text: description,
786
- className: "description-box"
787
- }, customDescription), !customDescription && (description || expiration) && /* @__PURE__ */ React__default["default"].createElement(TruncateTextBox, {
788
- headerText: "About",
789
- text: description,
790
- className: "description-box"
791
- }, expiration && /* @__PURE__ */ React__default["default"].createElement("p", {
792
- className: "text-grayscale-800 font-poppins font-[600] text-[12px] leading-[18px] mb-0"
793
- }, "Expire", isExpired ? "d" : "s", " on ", expiration)), customCriteria && /* @__PURE__ */ React__default["default"].createElement(TruncateTextBox, {
794
- headerText: "Criteria",
795
- text: description,
796
- className: "description-box"
797
- }, customCriteria), !customCriteria && criteria && /* @__PURE__ */ React__default["default"].createElement(TruncateTextBox, {
798
- headerText: "Criteria",
799
- text: criteria,
800
- className: "criteria-box"
801
- }), issueHistory && (issueHistory == null ? void 0 : issueHistory.length) > 0 && /* @__PURE__ */ React__default["default"].createElement(IssueHistoryBox, {
802
- issueHistory,
803
- customIssueHistoryComponent
804
- }), credential.attachments && credential.attachments.length > 0 && /* @__PURE__ */ React__default["default"].createElement(MediaAttachmentsBox, {
805
- attachments: credential.attachments,
806
- getFileMetadata,
807
- getVideoMetadata,
808
- onMediaAttachmentClick,
809
- enableLightbox
810
- }), verificationItems && verificationItems.length > 0 && /* @__PURE__ */ React__default["default"].createElement(VerificationsBox, {
811
- verificationItems
812
- }));
813
- };
814
-
815
- const VC2FrontFaceInfo = ({
816
- issuee,
817
- issuer,
818
- subjectDID,
819
- subjectImageComponent,
820
- issuerImageComponent,
821
- customBodyCardComponent,
822
- createdAt,
823
- imageUrl,
824
- customThumbComponent
825
- }) => {
826
- const issuerName = truncateWithEllipsis(credential_helpers.getNameFromProfile(issuer != null ? issuer : ""), 25);
827
- const issueeName = truncateWithEllipsis(credential_helpers.getNameFromProfile(issuee != null ? issuee : ""), 25);
828
- const issuerImage = credential_helpers.getImageFromProfile(issuer != null ? issuer : "");
829
- const issueeImage = credential_helpers.getImageFromProfile(issuee != null ? issuee : "");
830
- const getImageElement = (imageUrl2, alt, overrideComponent) => {
831
- if (overrideComponent)
832
- return overrideComponent;
833
- return /* @__PURE__ */ React__default["default"].createElement("img", {
834
- className: "h-full w-full object-cover select-none",
835
- src: imageUrl2 || DefaultFace__default["default"],
836
- alt
837
- });
838
- };
839
- const issueeImageEl = getImageElement(issueeImage, "Issuee image", subjectImageComponent);
840
- const issuerImageEl = getImageElement(issuerImage, "Issuer image", issuerImageComponent);
841
- return /* @__PURE__ */ React__default["default"].createElement("section", {
842
- className: "vc-front-face w-full px-[15px] flex flex-col items-center gap-[15px]"
843
- }, imageUrl && !customThumbComponent && /* @__PURE__ */ React__default["default"].createElement("img", {
844
- className: "vc-front-image h-[130px] w-[130px] rounded-[10px]",
845
- src: imageUrl
846
- }), customThumbComponent && customThumbComponent, /* @__PURE__ */ React__default["default"].createElement("div", {
847
- className: "vc-issue-info-box bg-white flex flex-col items-center gap-[5px] rounded-[20px] shadow-bottom px-[15px] py-[20px] w-full"
848
- }, customBodyCardComponent && customBodyCardComponent, !customBodyCardComponent && /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, /* @__PURE__ */ React__default["default"].createElement("h3", {
849
- className: "text-[27px] flex flex-col text-center leading-[130%] text-grayscale-900 capitalize"
850
- }, issueeName, subjectDID && /* @__PURE__ */ React__default["default"].createElement("span", {
851
- className: "text-[12px] text-grayscale-700 leading-[18px] font-poppins font-[400] m-0 p-0 normal-case"
852
- }, subjectDID)), /* @__PURE__ */ React__default["default"].createElement("div", {
853
- className: "relative"
854
- }, /* @__PURE__ */ React__default["default"].createElement("div", {
855
- className: "vc-issuee-image h-[60px] w-[60px] rounded-full overflow-hidden"
856
- }, issueeImageEl), /* @__PURE__ */ React__default["default"].createElement("div", {
857
- className: "vc-issuer-image h-[30px] w-[30px] rounded-full overflow-hidden absolute bottom-[-12px] right-[-12px]"
858
- }, issuerImageEl)), /* @__PURE__ */ React__default["default"].createElement("div", {
859
- className: "vc-issue-details mt-[10px] flex flex-col items-center font-montserrat text-[14px] leading-[20px]"
860
- }, /* @__PURE__ */ React__default["default"].createElement("span", {
861
- className: "created-at text-grayscale-700"
862
- }, createdAt), /* @__PURE__ */ React__default["default"].createElement("span", {
863
- className: "issued-by text-grayscale-900 font-[500]"
864
- }, "by ", /* @__PURE__ */ React__default["default"].createElement("strong", {
865
- className: "font-[700]"
866
- }, issuerName))))));
867
- };
868
-
869
- const getCategoryTextColor = (category = index.LCCategoryEnum.achievement) => {
870
- if (category === index.LCCategoryEnum.socialBadge)
871
- return "text-cyan-700";
872
- if (category === index.LCCategoryEnum.skill)
873
- return "text-indigo-600";
874
- if (category === index.LCCategoryEnum.achievement)
875
- return "text-spice-600";
876
- if (category === index.LCCategoryEnum.learningHistory)
877
- return "text-emerald-700";
878
- if (category === index.LCCategoryEnum.id)
879
- return "text-yellow-400";
880
- if (category === index.LCCategoryEnum.workHistory)
881
- return "text-rose-600";
882
- if (category === index.LCCategoryEnum.course)
883
- return "text-emerald-700";
884
- if (category === index.LCCategoryEnum.job)
885
- return "text-rose-600";
886
- if (category === index.LCCategoryEnum.currency)
887
- return "text-cyan-700";
888
- if (category === index.LCCategoryEnum.membership)
889
- return "text-teal-500";
890
- return "text-spice-600";
891
- };
892
- const VCDisplayCardCategoryType = ({
893
- categoryType = index.LCCategoryEnum.achievement
894
- }) => {
895
- const categoryColor = getCategoryTextColor(categoryType);
896
- return /* @__PURE__ */ React__default["default"].createElement("span", {
897
- className: `uppercase font-poppins text-[12px] font-[600] leading-[12px] select-none ${categoryColor}`
898
- }, categoryType);
899
- };
900
-
901
- var __defProp = Object.defineProperty;
902
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
903
- var __hasOwnProp = Object.prototype.hasOwnProperty;
904
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
905
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
906
- var __spreadValues = (a, b) => {
907
- for (var prop in b || (b = {}))
908
- if (__hasOwnProp.call(b, prop))
909
- __defNormalProp(a, prop, b[prop]);
910
- if (__getOwnPropSymbols)
911
- for (var prop of __getOwnPropSymbols(b)) {
912
- if (__propIsEnum.call(b, prop))
913
- __defNormalProp(a, prop, b[prop]);
914
- }
915
- return a;
916
- };
917
- const VCDisplayCard2 = ({
918
- categoryType,
919
- credential,
920
- verificationItems,
921
- issueeOverride,
922
- issuerOverride,
923
- subjectDID,
924
- subjectImageComponent,
925
- issuerImageComponent,
926
- verificationInProgress = false,
927
- handleXClick,
928
- getFileMetadata,
929
- getVideoMetadata,
930
- onMediaAttachmentClick,
931
- bottomRightIcon,
932
- customFooterComponent,
933
- customBodyCardComponent,
934
- customThumbComponent,
935
- customCriteria,
936
- customDescription,
937
- customIssueHistoryComponent,
938
- issueHistory,
939
- titleOverride,
940
- showBackButton = true,
941
- enableLightbox,
942
- customRibbonCategoryComponent,
943
- customFrontButton
944
- }) => {
945
- var _a, _b, _c, _d, _e;
946
- const {
947
- title = "",
948
- createdAt,
949
- issuer: _issuer = "",
950
- issuee: _issuee = "",
951
- imageUrl
952
- } = credential_helpers.getInfoFromCredential(credential, "MMM dd, yyyy");
953
- const issuee = issueeOverride || _issuee;
954
- const issuer = issuerOverride || _issuer;
955
- const [isFront, setIsFront] = React.useState(true);
956
- const [headerHeight, setHeaderHeight] = React.useState(100);
957
- const [headerWidth, setHeaderWidth] = React.useState(0);
958
- const headerRef = React.useRef(null);
959
- React.useLayoutEffect(() => {
960
- setTimeout(() => {
961
- var _a2, _b2, _c2, _d2;
962
- setHeaderHeight((_b2 = (_a2 = headerRef.current) == null ? void 0 : _a2.clientHeight) != null ? _b2 : 100);
963
- setHeaderWidth((_d2 = (_c2 = headerRef.current) == null ? void 0 : _c2.clientWidth) != null ? _d2 : 0);
964
- }, 10);
965
- });
966
- let worstVerificationStatus = verificationItems.reduce((currentWorst, verification) => {
967
- switch (currentWorst) {
968
- case types_esm.VerificationStatusEnum.Success:
969
- return verification.status;
970
- case types_esm.VerificationStatusEnum.Error:
971
- return verification.status === types_esm.VerificationStatusEnum.Failed ? verification.status : currentWorst;
972
- case types_esm.VerificationStatusEnum.Failed:
973
- return currentWorst;
974
- }
975
- }, types_esm.VerificationStatusEnum.Success);
976
- const statusColor = credential_helpers.getColorForVerificationStatus(worstVerificationStatus);
977
- const backgroundStyle = {
978
- backgroundColor: (_a = credential.display) == null ? void 0 : _a.backgroundColor,
979
- backgroundImage: ((_b = 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,
980
- backgroundSize: "cover",
981
- backgroundPosition: "center",
982
- backgroundAttachment: "fixed"
983
- };
984
- const _title = titleOverride || title;
985
- return /* @__PURE__ */ React__default["default"].createElement("section", {
986
- className: "vc-display-card font-mouse flex flex-col items-center border-solid border-[5px] border-white rounded-[30px] overflow-visible z-10 max-w-[400px] relative bg-white shadow-3xl"
987
- }, /* @__PURE__ */ React__default["default"].createElement(RibbonEnd, {
988
- side: "left",
989
- className: "absolute left-[-30px] top-[50px] z-0",
990
- height: "100"
991
- }), /* @__PURE__ */ React__default["default"].createElement(RibbonEnd, {
992
- side: "right",
993
- className: "absolute right-[-30px] top-[50px] z-0",
994
- height: "100"
995
- }), /* @__PURE__ */ React__default["default"].createElement("h1", {
996
- ref: headerRef,
997
- 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",
998
- style: { wordBreak: "break-word" }
999
- }, customRibbonCategoryComponent && customRibbonCategoryComponent, !customRibbonCategoryComponent && /* @__PURE__ */ React__default["default"].createElement(VCDisplayCardCategoryType, {
1000
- categoryType
1001
- }), /* @__PURE__ */ React__default["default"].createElement(FitText, {
1002
- text: _title != null ? _title : "",
1003
- maxFontSize: 32,
1004
- minFontSize: 20,
1005
- width: ((headerWidth != null ? headerWidth : 290) - 40).toString(),
1006
- className: "vc-card-header-main-title text-[#18224E] leading-[100%] text-shadow text-[32px]"
1007
- })), isFront && handleXClick && /* @__PURE__ */ React__default["default"].createElement("button", {
1008
- className: "vc-card-x-button absolute top-[-25px] bg-white rounded-full h-[50px] w-[50px] flex items-center justify-center z-50",
1009
- onClick: handleXClick
1010
- }, /* @__PURE__ */ React__default["default"].createElement(RoundedX, null)), /* @__PURE__ */ React__default["default"].createElement("div", {
1011
- className: "vc-card-background-hider absolute h-[40px] w-full z-20 flex grow rounded-t-[30px] ",
1012
- style: backgroundStyle
1013
- }), /* @__PURE__ */ React__default["default"].createElement("div", {
1014
- className: "vc-card-content-container flex flex-col items-center grow w-full rounded-t-[30px] rounded-b-[20px] overflow-scroll scrollbar-hide"
1015
- }, /* @__PURE__ */ React__default["default"].createElement("div", {
1016
- className: "vc-card-content-scroll-container w-full flex flex-col justify-center items-center rounded-b-[200px] bg-[#353E64] pb-[50px]",
1017
- style: __spreadValues({ paddingTop: "170px" }, backgroundStyle)
1018
- }, isFront && /* @__PURE__ */ React__default["default"].createElement(VC2FrontFaceInfo, {
1019
- issuee,
1020
- subjectDID,
1021
- issuer,
1022
- title,
1023
- subjectImageComponent,
1024
- issuerImageComponent,
1025
- customBodyCardComponent,
1026
- customThumbComponent,
1027
- createdAt: createdAt != null ? createdAt : "",
1028
- imageUrl
1029
- }), !isFront && /* @__PURE__ */ React__default["default"].createElement(VC2BackFace, {
1030
- credential,
1031
- verificationItems,
1032
- issueHistory,
1033
- getFileMetadata,
1034
- getVideoMetadata,
1035
- onMediaAttachmentClick,
1036
- showBackButton,
1037
- showFrontFace: () => setIsFront(true),
1038
- customDescription,
1039
- customCriteria,
1040
- customIssueHistoryComponent,
1041
- enableLightbox
1042
- }), isFront && customFrontButton, isFront && !customFrontButton && /* @__PURE__ */ React__default["default"].createElement("button", {
1043
- type: "button",
1044
- 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",
1045
- onClick: () => setIsFront(!isFront)
1046
- }, "Details"), !isFront && /* @__PURE__ */ React__default["default"].createElement("button", {
1047
- type: "button",
1048
- 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",
1049
- onClick: () => setIsFront(!isFront)
1050
- }, /* @__PURE__ */ React__default["default"].createElement("span", {
1051
- className: "flex gap-[10px] items-center"
1052
- }, /* @__PURE__ */ React__default["default"].createElement(LeftArrow, null), "Back")))), /* @__PURE__ */ React__default["default"].createElement("footer", {
1053
- className: "vc-card-footer w-full flex justify-between p-[5px] mt-[5px]"
1054
- }, customFooterComponent && customFooterComponent, !customFooterComponent && /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, worstVerificationStatus === types_esm.VerificationStatusEnum.Failed ? /* @__PURE__ */ React__default["default"].createElement("div", {
1055
- className: "w-[40px]",
1056
- role: "presentation"
1057
- }) : /* @__PURE__ */ React__default["default"].createElement(VCVerificationCheck.VCVerificationCheckWithSpinner, {
1058
- spinnerSize: "40px",
1059
- size: "32px",
1060
- loading: verificationInProgress
1061
- }), /* @__PURE__ */ React__default["default"].createElement("div", {
1062
- className: "vc-footer-text font-montserrat flex flex-col items-center justify-center text-[12px] font-[700] leading-[15px] select-none"
1063
- }, /* @__PURE__ */ React__default["default"].createElement("span", {
1064
- className: "text-[#4F4F4F]"
1065
- }, "Verified Credential"), /* @__PURE__ */ React__default["default"].createElement("span", {
1066
- className: "vc-footer-status uppercase",
1067
- style: { color: statusColor }
1068
- }, worstVerificationStatus)), /* @__PURE__ */ React__default["default"].createElement("div", {
1069
- className: "vc-footer-icon rounded-[20px] h-[40px] w-[40px] flex items-center justify-center overflow-hidden",
1070
- style: { backgroundColor: (_d = bottomRightIcon == null ? void 0 : bottomRightIcon.color) != null ? _d : "#6366F1" }
1071
- }, (_e = bottomRightIcon == null ? void 0 : bottomRightIcon.image) != null ? _e : /* @__PURE__ */ React__default["default"].createElement(AwardRibbon.AwardRibbon, null)))));
1072
- };
1073
-
1074
- exports.VCDisplayCard2 = VCDisplayCard2;
1075
- //# sourceMappingURL=VCDisplayCard2-487d3d88.js.map