@learncard/react 2.3.57 → 2.3.62

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 (72) hide show
  1. package/LICENSE +25 -0
  2. package/README.md +6 -2
  3. package/dist/base.css +1 -1
  4. package/dist/base.js +1 -1
  5. package/dist/cjs/{CourseVerticalCard-ba8fc2f7.js → CourseVerticalCard-ef3e7ea6.js} +3 -2
  6. package/dist/cjs/CourseVerticalCard-ef3e7ea6.js.map +1 -0
  7. package/dist/cjs/{FlippyCard-33e03a9e.js → FlippyCard-2cbe2dbe.js} +4 -14
  8. package/dist/cjs/FlippyCard-2cbe2dbe.js.map +1 -0
  9. package/dist/cjs/{GenericCard-c5b70b29.js → GenericCard-39248302.js} +16 -4
  10. package/dist/cjs/GenericCard-39248302.js.map +1 -0
  11. package/dist/cjs/{SkillTabCard-82f2fae0.js → SkillTabCard-2f6e8b78.js} +6 -3
  12. package/dist/cjs/SkillTabCard-2f6e8b78.js.map +1 -0
  13. package/dist/cjs/{VCCard-5f411418.js → VCCard-69176b38.js} +2 -2
  14. package/dist/cjs/{VCCard-5f411418.js.map → VCCard-69176b38.js.map} +1 -1
  15. package/dist/cjs/{VCDisplayBackFace-0ffe0e45.js → VCDisplayBackFace-30fcbf18.js} +23 -18
  16. package/dist/cjs/VCDisplayBackFace-30fcbf18.js.map +1 -0
  17. package/dist/cjs/{VCDisplayCard-dfb9701f.js → VCDisplayCard-1f6d7964.js} +49 -24
  18. package/dist/cjs/{VCDisplayCard-dfb9701f.js.map → VCDisplayCard-1f6d7964.js.map} +1 -1
  19. package/dist/cjs/index-63ee021e.js.map +1 -1
  20. package/dist/cjs/index.js +7 -7
  21. package/dist/cjs/index10.js +7 -7
  22. package/dist/cjs/index25.js +1 -1
  23. package/dist/cjs/index29.js +5 -5
  24. package/dist/cjs/index30.js +1 -1
  25. package/dist/cjs/index31.js +4 -4
  26. package/dist/cjs/index32.js +0 -1
  27. package/dist/cjs/index32.js.map +1 -1
  28. package/dist/cjs/index7.js +1 -1
  29. package/dist/cjs/index8.js +1 -1
  30. package/dist/cjs/index9.js +13 -1
  31. package/dist/cjs/index9.js.map +1 -1
  32. package/dist/esm/{CourseVerticalCard-643f767b.js → CourseVerticalCard-c91c7a7a.js} +3 -2
  33. package/dist/esm/CourseVerticalCard-c91c7a7a.js.map +1 -0
  34. package/dist/esm/{FlippyCard-682649d7.js → FlippyCard-f4f0b3f8.js} +5 -15
  35. package/dist/esm/FlippyCard-f4f0b3f8.js.map +1 -0
  36. package/dist/esm/{GenericCard-ada539c7.js → GenericCard-2aaadb4b.js} +16 -4
  37. package/dist/esm/GenericCard-2aaadb4b.js.map +1 -0
  38. package/dist/esm/{SkillTabCard-ade7a48c.js → SkillTabCard-82b97c62.js} +6 -3
  39. package/dist/esm/SkillTabCard-82b97c62.js.map +1 -0
  40. package/dist/esm/{VCCard-fff987be.js → VCCard-3a8f5414.js} +2 -2
  41. package/dist/esm/{VCCard-fff987be.js.map → VCCard-3a8f5414.js.map} +1 -1
  42. package/dist/esm/{VCDisplayBackFace-84d93238.js → VCDisplayBackFace-b3aff90b.js} +23 -18
  43. package/dist/esm/VCDisplayBackFace-b3aff90b.js.map +1 -0
  44. package/dist/esm/{VCDisplayCard-b9c4a087.js → VCDisplayCard-bce0b106.js} +50 -24
  45. package/dist/esm/{VCDisplayCard-b9c4a087.js.map → VCDisplayCard-bce0b106.js.map} +1 -1
  46. package/dist/esm/index-15b828c0.js.map +1 -1
  47. package/dist/esm/index.js +7 -7
  48. package/dist/esm/index10.js +7 -7
  49. package/dist/esm/index25.js +1 -1
  50. package/dist/esm/index29.js +5 -5
  51. package/dist/esm/index30.js +1 -1
  52. package/dist/esm/index31.js +4 -4
  53. package/dist/esm/index32.js +0 -1
  54. package/dist/esm/index32.js.map +1 -1
  55. package/dist/esm/index7.js +1 -1
  56. package/dist/esm/index8.js +1 -1
  57. package/dist/esm/index9.js +13 -1
  58. package/dist/esm/index9.js.map +1 -1
  59. package/dist/index.d.ts +15 -0
  60. package/dist/main.css +1 -1
  61. package/dist/main.js +1 -1
  62. package/package.json +2 -2
  63. package/dist/cjs/CourseVerticalCard-ba8fc2f7.js.map +0 -1
  64. package/dist/cjs/FlippyCard-33e03a9e.js.map +0 -1
  65. package/dist/cjs/GenericCard-c5b70b29.js.map +0 -1
  66. package/dist/cjs/SkillTabCard-82f2fae0.js.map +0 -1
  67. package/dist/cjs/VCDisplayBackFace-0ffe0e45.js.map +0 -1
  68. package/dist/esm/CourseVerticalCard-643f767b.js.map +0 -1
  69. package/dist/esm/FlippyCard-682649d7.js.map +0 -1
  70. package/dist/esm/GenericCard-ada539c7.js.map +0 -1
  71. package/dist/esm/SkillTabCard-ade7a48c.js.map +0 -1
  72. package/dist/esm/VCDisplayBackFace-84d93238.js.map +0 -1
package/LICENSE ADDED
@@ -0,0 +1,25 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2022 Learning Economy Foundation <sdk@learningeconomy.io>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+ Footer
23
+ © 2022 GitHub, Inc.
24
+ Footer navigation
25
+ Terms
package/README.md CHANGED
@@ -8,10 +8,14 @@
8
8
 
9
9
  **LearnCard React** is dedicated set of **open-source**, **flexible**, and **reusable Storybook UX React components for credential and currency** built for the future of education and work.
10
10
 
11
+ ![learn-card](https://user-images.githubusercontent.com/2185016/201373744-058bef30-dec8-46cf-9552-408b7bc43532.gif)
12
+
11
13
  ## Documentation
12
14
  All LearnCard documentation can be found at:
13
15
  https://docs.learncard.com
14
16
 
17
+ Docs for LearnCard React can be found at:
18
+ https://docs.learncard.com/learn-card-sdk/learncard-ux
15
19
 
16
20
  ## Install
17
21
 
@@ -35,8 +39,8 @@ const Test = () => {
35
39
  useEffect(() => {
36
40
  const getVc = async () => {
37
41
  const wallet = await initLearnCard({ seed: 'a' }); // Bad practice! You should be generating keys...
38
- const uvc = wallet.getTestVc();
39
- setVc(await wallet.issueCredential(uvc));
42
+ const uvc = wallet.invoke.getTestVc();
43
+ setVc(await wallet.invoke.issueCredential(uvc));
40
44
  };
41
45
 
42
46
  getVc();
package/dist/base.css CHANGED
@@ -1 +1 @@
1
- /*! tailwindcss v3.2.1 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}html{-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}
1
+ /*! tailwindcss v3.2.3 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}html{-webkit-text-size-adjust:100%;font-feature-settings:normal;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}
package/dist/base.js CHANGED
@@ -1,3 +1,3 @@
1
- var css = "/*! tailwindcss v3.2.1 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:\"\"}html{-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}";
1
+ var css = "/*! tailwindcss v3.2.3 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:\"\"}html{-webkit-text-size-adjust:100%;font-feature-settings:normal;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}";
2
2
 
3
3
  export { css, css as default };
@@ -53,6 +53,7 @@ const CourseVerticalCard = ({
53
53
  skillCount = 0,
54
54
  checked,
55
55
  showChecked,
56
+ showSubCount,
56
57
  onCheckClick,
57
58
  onClick
58
59
  }) => {
@@ -73,7 +74,7 @@ const CourseVerticalCard = ({
73
74
  className: "course-card-detail-info flex flex-col justify-between"
74
75
  }, /* @__PURE__ */ React__default["default"].createElement("p", {
75
76
  className: "course-card-title text-sm text-center font-semibold line-clamp-2 mt-[4px]"
76
- }, title), /* @__PURE__ */ React__default["default"].createElement("div", {
77
+ }, title), showSubCount && /* @__PURE__ */ React__default["default"].createElement("div", {
77
78
  className: "course-card-counts-container flex items-center justify-center my-[5px]"
78
79
  }, /* @__PURE__ */ React__default["default"].createElement(CourseCardStatBubble, {
79
80
  type: "achievement",
@@ -94,4 +95,4 @@ const CourseVerticalCard = ({
94
95
  };
95
96
 
96
97
  exports.CourseVerticalCard = CourseVerticalCard;
97
- //# sourceMappingURL=CourseVerticalCard-ba8fc2f7.js.map
98
+ //# sourceMappingURL=CourseVerticalCard-ef3e7ea6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CourseVerticalCard-ef3e7ea6.js","sources":["../../src/components/CourseVerticalCard/CourseVerticalCard.tsx"],"sourcesContent":["import React from 'react';\nimport { CourseCardVerticalProps } from '../../types';\nimport { CircleCheckButton } from '../CircleCheckButton';\nimport CourseCardPlaceholder from '../../assets/images/lhplaceholder.png';\nimport { RoundedPill } from '../RoundedPill';\nimport MiniTrophyIcon from '../../assets/images/minitrophy.svg';\nimport MiniJobIcon from '../../assets/images/minijob.svg';\nimport MiniPuzzleIcon from '../../assets/images/minipuzzle.svg';\nimport { LCSubtypes } from '../../types';\n\nconst TYPE_TO_COURSE_MINI_ICON: any = {\n ['job']: MiniJobIcon,\n ['achievement']: MiniTrophyIcon,\n ['skill']: MiniPuzzleIcon,\n};\n\nconst TYPE_TO_COLOR: any = {\n ['job']: 'bg-emerald-700',\n ['achievement']: 'bg-spice-500',\n ['skill']: 'bg-indigo-500',\n};\n\ntype CourseCardStatBubbleProps = {\n count: number | string;\n type: string;\n className?: string;\n};\n\nconst CourseCardStatBubble: React.FC<CourseCardStatBubbleProps> = ({\n count = 0,\n type = LCSubtypes.job,\n className,\n}) => {\n const imgSrc = TYPE_TO_COURSE_MINI_ICON[type];\n const bgColor = TYPE_TO_COLOR[type];\n\n return (\n <div\n className={`course-card-stat-bubble px-[10px] rounded-[30px] flex ${bgColor} min-w-[48px] max-w-[80px] h-[30px] items-center ${className}`}\n >\n <img src={imgSrc} className=\"pr-[5px]\" />\n <span className=\"flex items-center text-sm text-white\">{count}</span>\n </div>\n );\n};\n\nexport const CourseVerticalCard: React.FC<CourseCardVerticalProps> = ({\n className,\n title,\n thumbImgSrc,\n showStatus,\n claimStatus = false,\n achievementCount = 0,\n skillCount = 0,\n checked,\n showChecked,\n showSubCount,\n onCheckClick,\n onClick,\n}) => {\n const claimBtnStatusType = claimStatus ? LCSubtypes.course : LCSubtypes.locked;\n\n return (\n <div\n onClick={onClick}\n className={`flex flex-col shadow-[0_0_8px_0px_rgba(0,0,0,0.2)] relative $ py-[8px] px-[8px] w-[190px] h-[265px] rounded-[20px] ${className}`}\n >\n <section\n className={`relative flex h-[120px] flex-col justify-center items-center w-full rounded-[20px]`}\n >\n <img\n src={CourseCardPlaceholder}\n className=\"course-card-img h-full w-full object-cover rounded-[20px]\"\n />\n\n {showChecked && (\n <CircleCheckButton\n checked={checked}\n onClick={onCheckClick}\n className=\"absolute top-[5px] left-[5px]\"\n />\n )}\n </section>\n\n <div className=\"course-card-detail-info flex flex-col justify-between\">\n <p className=\"course-card-title text-sm text-center font-semibold line-clamp-2 mt-[4px]\">\n {title}\n </p>\n {showSubCount && (\n <div className=\"course-card-counts-container flex items-center justify-center my-[5px]\">\n <CourseCardStatBubble\n type={'achievement'}\n count={achievementCount}\n className={'mr-[5px]'}\n />\n <CourseCardStatBubble\n type={'skill'}\n count={skillCount}\n className={'mr-[0px]'}\n />\n </div>\n )}\n </div>\n {showStatus && (\n <div className=\"course-card-footer absolute bottom-[6px] left-[5px]\">\n <RoundedPill\n onClick={onClick}\n showCheckmark\n type={claimBtnStatusType}\n statusText={'Passed'}\n />\n </div>\n )}\n </div>\n );\n};\n\nexport default CourseVerticalCard;\n"],"names":["MiniJobIcon","MiniTrophyIcon","MiniPuzzleIcon","LCSubtypes","React","CourseCardPlaceholder","CircleCheckButton","RoundedPill"],"mappings":"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"}
@@ -6,10 +6,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
6
6
 
7
7
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
8
8
 
9
- const FRONT_FACE = "front";
10
- const BACK_FACE = "back";
11
- const FlippyCard = ({ children }) => {
12
- const [flipState, setFlipState] = React.useState(FRONT_FACE);
9
+ const FlippyCard = ({ children, flipState }) => {
13
10
  if ((children == null ? void 0 : children.length) > 3) {
14
11
  console.warn("More than two children passed into Flippy Card! \u{1F633}\u{1F633}\u{1F633} Picking first two...");
15
12
  }
@@ -17,20 +14,13 @@ const FlippyCard = ({ children }) => {
17
14
  return /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null);
18
15
  const frontCard = children == null ? void 0 : children[0];
19
16
  const backCard = (children == null ? void 0 : children[1]) || (children == null ? void 0 : children[0]);
20
- const handleClick = () => {
21
- if (flipState === FRONT_FACE)
22
- setFlipState(BACK_FACE);
23
- if (flipState === BACK_FACE)
24
- setFlipState(FRONT_FACE);
25
- };
26
- const flipCardCSSClass = flipState === FRONT_FACE ? "flippy-card" : "flippy-card is-flipped";
17
+ const flipCardCSSClass = flipState === "front" ? "flippy-card" : "flippy-card is-flipped";
27
18
  return /* @__PURE__ */ React__default["default"].createElement("div", {
28
19
  "data-testid": "flippy-card-wrapper",
29
20
  className: "flippy-wrapper-container"
30
21
  }, /* @__PURE__ */ React__default["default"].createElement("div", {
31
22
  "data-testid": "flippy-card",
32
- className: flipCardCSSClass,
33
- onClick: handleClick
23
+ className: flipCardCSSClass
34
24
  }, /* @__PURE__ */ React__default["default"].createElement("section", {
35
25
  "data-testid": "flippy-card-front",
36
26
  className: "card-face card-face--front"
@@ -41,4 +31,4 @@ const FlippyCard = ({ children }) => {
41
31
  };
42
32
 
43
33
  exports.FlippyCard = FlippyCard;
44
- //# sourceMappingURL=FlippyCard-33e03a9e.js.map
34
+ //# sourceMappingURL=FlippyCard-2cbe2dbe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlippyCard-2cbe2dbe.js","sources":["../../src/components/FlippyCard/FlippyCard.tsx"],"sourcesContent":["import React from 'react';\n\nexport type FlippyCardProps = {\n children: React.ReactChild[];\n flipState?: 'front' | 'back' | undefined | string;\n};\n\nexport const FlippyCard: React.FC<FlippyCardProps> = ({ children, flipState }) => {\n if (children?.length > 3) {\n console.warn('More than two children passed into Flippy Card! 😳😳😳 Picking first two...');\n }\n\n if (!children) return <></>;\n\n const frontCard = children?.[0] as React.ReactNode;\n const backCard = (children?.[1] as React.ReactNode) || (children?.[0] as React.ReactNode);\n\n const flipCardCSSClass = flipState === 'front' ? 'flippy-card' : 'flippy-card is-flipped';\n\n return (\n <div data-testid=\"flippy-card-wrapper\" className=\"flippy-wrapper-container\">\n <div data-testid=\"flippy-card\" className={flipCardCSSClass}>\n <section data-testid=\"flippy-card-front\" className=\"card-face card-face--front\">\n {frontCard}\n </section>\n <section data-testid=\"flippy-card-back\" className=\"card-face card-face--back\">\n {backCard}\n </section>\n </div>\n </div>\n );\n};\n\nexport default FlippyCard;\n"],"names":["React"],"mappings":";;;;;;;;AAOO,MAAM,UAAwC,GAAA,CAAC,EAAE,QAAA,EAAU,WAAgB,KAAA;AAC9E,EAAI,IAAA,CAAA,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAU,UAAS,CAAG,EAAA;AACtB,IAAA,OAAA,CAAQ,KAAK,kGAA6E,CAAA,CAAA;AAAA,GAC9F;AAEA,EAAA,IAAI,CAAC,QAAA;AAAU,IAAA,uBAASA,yBAAA,CAAA,aAAA,CAAAA,yBAAA,CAAA,QAAA,EAAA,IAAA,CAAA,CAAA;AAExB,EAAA,MAAM,YAAY,QAAW,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,CAAA,CAAA,CAAA;AAC7B,EAAM,MAAA,QAAA,GAAA,CAAY,QAAW,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,CAAA,CAAA,MAA2B,QAAW,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEnE,EAAM,MAAA,gBAAA,GAAmB,SAAc,KAAA,OAAA,GAAU,aAAgB,GAAA,wBAAA,CAAA;AAEjE,EAAA,uBACKA,yBAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAA,IAAI,aAAY,EAAA,qBAAA;AAAA,IAAsB,SAAU,EAAA,0BAAA;AAAA,GAAA,kBAC5CA,yBAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAA,IAAI,aAAY,EAAA,aAAA;AAAA,IAAc,SAAW,EAAA,gBAAA;AAAA,GAAA,kBACrCA,yBAAA,CAAA,aAAA,CAAA,SAAA,EAAA;AAAA,IAAQ,aAAY,EAAA,mBAAA;AAAA,IAAoB,SAAU,EAAA,4BAAA;AAAA,GAC9C,EAAA,SACL,mBACCA,yBAAA,CAAA,aAAA,CAAA,SAAA,EAAA;AAAA,IAAQ,aAAY,EAAA,kBAAA;AAAA,IAAmB,SAAU,EAAA,2BAAA;AAAA,GAC7C,EAAA,QACL,CACJ,CACJ,CAAA,CAAA;AAER;;;;"}
@@ -3,6 +3,7 @@
3
3
  var React = require('react');
4
4
  var index$1 = require('./index-63ee021e.js');
5
5
  var index = require('./index-6cab6d37.js');
6
+ var CircleCheckButton = require('./CircleCheckButton-97c4f608.js');
6
7
 
7
8
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
9
 
@@ -16,17 +17,22 @@ const GenericCard = ({
16
17
  type = index$1.WalletCategoryTypes.achievements,
17
18
  className,
18
19
  onClick = () => {
19
- }
20
+ },
21
+ showChecked,
22
+ checkStatus,
23
+ flipped
20
24
  }) => {
21
25
  var _a, _b;
22
26
  const thumbClass = (_a = `bg-${index.TYPE_TO_WALLET_DARK_COLOR[type]}`) != null ? _a : "bg-grayscale-50";
23
27
  const defaultThumbClass = `flex h-[110px] m-auto ${thumbClass} w-[140px] overflow-hidden flex-col justify-center items-center w-full rounded-[20px] ${customThumbClass}`;
24
28
  const imgSrc = (thumbImgSrc == null ? void 0 : thumbImgSrc.trim()) !== "" ? thumbImgSrc : index.TYPE_TO_IMG_SRC[type];
25
29
  const headerBgColor = (_b = `bg-${index.TYPE_TO_WALLET_DARK_COLOR[type]}`) != null ? _b : "bg-grayscale-900";
30
+ const checkBtnClass = checkStatus ? "generic-vc-card checked" : "generic-vc-card unchecked";
26
31
  const defaultHeaderClass = `flex generic-card-title w-full flex justify-center items-center h-[76px] ${headerBgColor} ${customHeaderClass}`;
32
+ const flippedClass = flipped ? "flex-col-reverse" : "flex-col";
27
33
  return /* @__PURE__ */ React__default["default"].createElement("button", {
28
34
  onClick,
29
- className: `flex generic-display-card-simple bg-white flex-col shadow-[0_0_8px_0px_rgba(0,0,0,0.2)] relative $ py-[0px] px-[0px] w-[160px] h-[215px] rounded-[20px] overflow-hidden ${className}`
35
+ className: `flex generic-display-card-simple bg-white ${flippedClass} shadow-[0_0_8px_0px_rgba(0,0,0,0.2)] relative $ py-[0px] px-[0px] w-[160px] h-[215px] rounded-[20px] overflow-hidden ${className}`
30
36
  }, /* @__PURE__ */ React__default["default"].createElement("section", {
31
37
  className: defaultHeaderClass
32
38
  }, /* @__PURE__ */ React__default["default"].createElement("p", {
@@ -42,8 +48,14 @@ const GenericCard = ({
42
48
  src: imgSrc
43
49
  })), /* @__PURE__ */ React__default["default"].createElement("section", {
44
50
  className: "generic-card-footer"
45
- }));
51
+ }), showChecked && /* @__PURE__ */ React__default["default"].createElement("div", {
52
+ className: "check-btn-overlay absolute top-[5px] left-[5px]"
53
+ }, /* @__PURE__ */ React__default["default"].createElement(CircleCheckButton.CircleCheckButton, {
54
+ checked: checkStatus,
55
+ onClick,
56
+ className: checkBtnClass
57
+ })));
46
58
  };
47
59
 
48
60
  exports.GenericCard = GenericCard;
49
- //# sourceMappingURL=GenericCard-c5b70b29.js.map
61
+ //# sourceMappingURL=GenericCard-39248302.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenericCard-39248302.js","sources":["../../src/components/GenericCard/GenericCard.tsx"],"sourcesContent":["import React from 'react';\nimport { GenericCardProps, WalletCategoryTypes } from '../../types';\nimport { TYPE_TO_IMG_SRC, TYPE_TO_WALLET_DARK_COLOR } from '../../constants';\nimport { CircleCheckButton } from '../CircleCheckButton';\n\nexport const GenericCard: React.FC<GenericCardProps> = ({\n title = 'Title Lorem Ipsum',\n thumbImgSrc,\n customThumbClass = '',\n customHeaderClass = '',\n type = WalletCategoryTypes.achievements,\n className,\n onClick = () => {},\n showChecked,\n checkStatus,\n flipped,\n}) => {\n const thumbClass = `bg-${TYPE_TO_WALLET_DARK_COLOR[type]}` ?? 'bg-grayscale-50';\n const defaultThumbClass = `flex h-[110px] m-auto ${thumbClass} w-[140px] overflow-hidden flex-col justify-center items-center w-full rounded-[20px] ${customThumbClass}`;\n const imgSrc = thumbImgSrc?.trim() !== '' ? thumbImgSrc : TYPE_TO_IMG_SRC[type];\n const headerBgColor = `bg-${TYPE_TO_WALLET_DARK_COLOR[type]}` ?? 'bg-grayscale-900';\n const checkBtnClass = checkStatus ? 'generic-vc-card checked' : 'generic-vc-card unchecked';\n const defaultHeaderClass = `flex generic-card-title w-full flex justify-center items-center h-[76px] ${headerBgColor} ${customHeaderClass}`;\n const flippedClass = flipped ? 'flex-col-reverse' : 'flex-col';\n\n return (\n <button\n onClick={onClick}\n className={`flex generic-display-card-simple bg-white ${flippedClass} shadow-[0_0_8px_0px_rgba(0,0,0,0.2)] relative $ py-[0px] px-[0px] w-[160px] h-[215px] rounded-[20px] overflow-hidden ${className}`}\n >\n <section className={defaultHeaderClass}>\n <p className=\"relative z-[100] text-[14px] px-[10px] py-[0px] font-bold mt-[10px] text-center text-white line-clamp-2\">\n {title}\n </p>\n </section>\n <section className={defaultThumbClass}>\n {thumbImgSrc && thumbImgSrc?.trim() !== '' && (\n <img\n className=\"generic-display-card-img h-full w-full w-[140px] h-[119px] rounded-[20px] object-cover overflow-hidden\"\n src={thumbImgSrc ?? ''}\n alt=\"Credential Achievement Image\"\n />\n )}\n {(!thumbImgSrc || thumbImgSrc?.trim() === '') && (\n <img\n className=\"max-w-[130px] w-full h-full p-[10px] object-contain\"\n src={imgSrc}\n />\n )}\n </section>\n\n <section className=\"generic-card-footer\"></section>\n {showChecked && (\n <div className=\"check-btn-overlay absolute top-[5px] left-[5px]\">\n <CircleCheckButton\n checked={checkStatus}\n onClick={onClick}\n className={checkBtnClass}\n />\n </div>\n )}\n </button>\n );\n};\n\nexport default GenericCard;\n"],"names":["WalletCategoryTypes","TYPE_TO_WALLET_DARK_COLOR","TYPE_TO_IMG_SRC","React","CircleCheckButton"],"mappings":";;;;;;;;;;;AAKO,MAAM,cAA0C,CAAC;AAAA,EACpD,KAAQ,GAAA,mBAAA;AAAA,EACR,WAAA;AAAA,EACA,gBAAmB,GAAA,EAAA;AAAA,EACnB,iBAAoB,GAAA,EAAA;AAAA,EACpB,OAAOA,2BAAoB,CAAA,YAAA;AAAA,EAC3B,SAAA;AAAA,EACA,UAAU,MAAM;AAAA,GAAC;AAAA,EACjB,WAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AACJ,CAAM,KAAA;AAhBN,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAiBI,EAAA,MAAM,UAAa,GAAA,CAAA,EAAA,GAAA,CAAA,GAAA,EAAMC,+BAA0B,CAAA,IAAA,CAAA,CAAA,CAAA,KAAhC,IAA2C,GAAA,EAAA,GAAA,iBAAA,CAAA;AAC9D,EAAM,MAAA,iBAAA,GAAoB,yBAAyB,UAAmG,CAAA,sFAAA,EAAA,gBAAA,CAAA,CAAA,CAAA;AACtJ,EAAA,MAAM,MAAS,GAAA,CAAA,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAa,IAAW,EAAA,MAAA,EAAA,GAAK,cAAcC,qBAAgB,CAAA,IAAA,CAAA,CAAA;AAC1E,EAAA,MAAM,aAAgB,GAAA,CAAA,EAAA,GAAA,CAAA,GAAA,EAAMD,+BAA0B,CAAA,IAAA,CAAA,CAAA,CAAA,KAAhC,IAA2C,GAAA,EAAA,GAAA,kBAAA,CAAA;AACjE,EAAM,MAAA,aAAA,GAAgB,cAAc,yBAA4B,GAAA,2BAAA,CAAA;AAChE,EAAM,MAAA,kBAAA,GAAqB,6EAA6E,aAAiB,CAAA,CAAA,EAAA,iBAAA,CAAA,CAAA,CAAA;AACzH,EAAM,MAAA,YAAA,GAAe,UAAU,kBAAqB,GAAA,UAAA,CAAA;AAEpD,EAAA,uBACKE,yBAAA,CAAA,aAAA,CAAA,QAAA,EAAA;AAAA,IACG,OAAA;AAAA,IACA,SAAA,EAAW,6CAA6C,YAAqI,CAAA,sHAAA,EAAA,SAAA,CAAA,CAAA;AAAA,GAAA,kBAE5LA,yBAAA,CAAA,aAAA,CAAA,SAAA,EAAA;AAAA,IAAQ,SAAW,EAAA,kBAAA;AAAA,GAAA,kBACfA,yBAAA,CAAA,aAAA,CAAA,GAAA,EAAA;AAAA,IAAE,SAAU,EAAA,yGAAA;AAAA,GACR,EAAA,KACL,CACJ,CAAA,kBACCA,yBAAA,CAAA,aAAA,CAAA,SAAA,EAAA;AAAA,IAAQ,SAAW,EAAA,iBAAA;AAAA,GAAA,EACf,WAAe,IAAA,CAAA,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAa,IAAW,EAAA,MAAA,EAAA,oBACnCA,yBAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAA,IACG,SAAU,EAAA,yGAAA;AAAA,IACV,KAAK,WAAe,IAAA,IAAA,GAAA,WAAA,GAAA,EAAA;AAAA,IACpB,GAAI,EAAA,8BAAA;AAAA,GACR,IAEF,CAAC,WAAA,IAAA,CAAe,WAAa,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAA,IAAA,EAAA,MAAW,uBACrCA,yBAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAA,IACG,SAAU,EAAA,qDAAA;AAAA,IACV,GAAK,EAAA,MAAA;AAAA,GACT,CAER,mBAECA,yBAAA,CAAA,aAAA,CAAA,SAAA,EAAA;AAAA,IAAQ,SAAU,EAAA,qBAAA;AAAA,GAAsB,CAAA,EACxC,+BACIA,yBAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAA,IAAI,SAAU,EAAA,iDAAA;AAAA,GAAA,kBACVA,yBAAA,CAAA,aAAA,CAAAC,mCAAA,EAAA;AAAA,IACG,OAAS,EAAA,WAAA;AAAA,IACT,OAAA;AAAA,IACA,SAAW,EAAA,aAAA;AAAA,GACf,CACJ,CAER,CAAA,CAAA;AAER;;;;"}
@@ -16,24 +16,27 @@ const SkillTabCard = ({
16
16
  showChecked,
17
17
  onClick,
18
18
  onCheckClicked,
19
+ showStatus = true,
19
20
  className = "skill-tab-card"
20
21
  }) => {
22
+ const buttonClass = checked ? "skill-tab-check-toggle checked" : "skill-tab-check-toggle unchecked";
21
23
  return /* @__PURE__ */ React__default["default"].createElement("div", {
22
24
  className: `flex-col flex justify-between items-center font-bold shadow-[0_0_8px_0px_rgba(0,0,0,0.2)] relative $ py-[8px] px-[8px] w-[190px] h-[168px] rounded-[20px] ${className}`
23
25
  }, showChecked && /* @__PURE__ */ React__default["default"].createElement(CircleCheckButton.CircleCheckButton, {
24
26
  onClick: onCheckClicked,
25
27
  checked,
28
+ className: buttonClass,
26
29
  bgColor: "bg-grayscale-200"
27
30
  }), /* @__PURE__ */ React__default["default"].createElement("h4", {
28
31
  className: "text-indigo-600 text-[14px] text-center line-clamp-2"
29
32
  }, title), /* @__PURE__ */ React__default["default"].createElement("p", {
30
33
  className: "line-clamp-2 text-[12px] text-center"
31
- }, description), /* @__PURE__ */ React__default["default"].createElement(RoundedPill.RoundedPill, {
34
+ }, description), /* @__PURE__ */ React__default["default"].createElement("div", null, showStatus && /* @__PURE__ */ React__default["default"].createElement(RoundedPill.RoundedPill, {
32
35
  type: index.LCSubtypes.skill,
33
36
  statusText: "Earned",
34
37
  onClick
35
- }));
38
+ })));
36
39
  };
37
40
 
38
41
  exports.SkillTabCard = SkillTabCard;
39
- //# sourceMappingURL=SkillTabCard-82f2fae0.js.map
42
+ //# sourceMappingURL=SkillTabCard-2f6e8b78.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillTabCard-2f6e8b78.js","sources":["../../src/components/SkillTabCard/SkillTabCard.tsx"],"sourcesContent":["import React from 'react';\nimport { RoundedPill } from '../RoundedPill';\nimport { LCSubtypes } from '../../types';\nimport { CircleCheckButton } from '../CircleCheckButton';\nimport { SkillTabCardProps } from '../../types';\n\nexport const SkillTabCard: React.FC<SkillTabCardProps> = ({\n title,\n description,\n checked = false,\n showChecked,\n onClick,\n onCheckClicked,\n showStatus = true,\n className = 'skill-tab-card',\n}) => {\n const buttonClass = checked\n ? 'skill-tab-check-toggle checked'\n : 'skill-tab-check-toggle unchecked';\n return (\n <div\n className={`flex-col flex justify-between items-center font-bold shadow-[0_0_8px_0px_rgba(0,0,0,0.2)] relative $ py-[8px] px-[8px] w-[190px] h-[168px] rounded-[20px] ${className}`}\n >\n {showChecked && (\n <CircleCheckButton\n onClick={onCheckClicked}\n checked={checked}\n className={buttonClass}\n bgColor=\"bg-grayscale-200\"\n />\n )}\n <h4 className=\"text-indigo-600 text-[14px] text-center line-clamp-2\">{title}</h4>\n <p className=\"line-clamp-2 text-[12px] text-center\">{description}</p>\n\n <div>\n {showStatus && (\n <RoundedPill type={LCSubtypes.skill} statusText={'Earned'} onClick={onClick} />\n )}\n </div>\n </div>\n );\n};\n\nexport default SkillTabCard;\n"],"names":["React","CircleCheckButton","RoundedPill","LCSubtypes"],"mappings":";;;;;;;;;;;AAMO,MAAM,eAA4C,CAAC;AAAA,EACtD,KAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAU,GAAA,KAAA;AAAA,EACV,WAAA;AAAA,EACA,OAAA;AAAA,EACA,cAAA;AAAA,EACA,UAAa,GAAA,IAAA;AAAA,EACb,SAAY,GAAA,gBAAA;AAChB,CAAM,KAAA;AACF,EAAM,MAAA,WAAA,GAAc,UACd,gCACA,GAAA,kCAAA,CAAA;AACN,EAAA,uBACKA,yBAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAA,IACG,WAAW,CAA6J,0JAAA,EAAA,SAAA,CAAA,CAAA;AAAA,GAAA,EAEvK,+BACIA,yBAAA,CAAA,aAAA,CAAAC,mCAAA,EAAA;AAAA,IACG,OAAS,EAAA,cAAA;AAAA,IACT,OAAA;AAAA,IACA,SAAW,EAAA,WAAA;AAAA,IACX,OAAQ,EAAA,kBAAA;AAAA,GACZ,mBAEHD,yBAAA,CAAA,aAAA,CAAA,IAAA,EAAA;AAAA,IAAG,SAAU,EAAA,sDAAA;AAAA,GAAwD,EAAA,KAAM,mBAC3EA,yBAAA,CAAA,aAAA,CAAA,GAAA,EAAA;AAAA,IAAE,SAAU,EAAA,sCAAA;AAAA,GAAA,EAAwC,WAAY,CAAA,kBAEhEA,yBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA,EACI,8BACIA,yBAAA,CAAA,aAAA,CAAAE,uBAAA,EAAA;AAAA,IAAY,MAAMC,gBAAW,CAAA,KAAA;AAAA,IAAO,UAAY,EAAA,QAAA;AAAA,IAAU,OAAA;AAAA,GAAkB,CAErF,CACJ,CAAA,CAAA;AAER;;;;"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  var React = require('react');
4
4
  var core = require('@learncard/core');
5
- var VCDisplayCard = require('./VCDisplayCard-dfb9701f.js');
5
+ var VCDisplayCard = require('./VCDisplayCard-1f6d7964.js');
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
@@ -50,4 +50,4 @@ const VCCard = ({ credential, issueeOverride, className = "" }) => {
50
50
  };
51
51
 
52
52
  exports.VCCard = VCCard;
53
- //# sourceMappingURL=VCCard-5f411418.js.map
53
+ //# sourceMappingURL=VCCard-69176b38.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VCCard-5f411418.js","sources":["../../src/components/VCCard/VCCard.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport { initLearnCard } from '@learncard/core';\nimport { VC, Profile, VerificationItem } from '@learncard/types';\n\nimport { VCDisplayCard } from '../VCDisplayCard';\n\nexport type VCCardProps = {\n credential: VC;\n issueeOverride?: Profile;\n className?: string;\n};\n\nexport const VCCard: React.FC<VCCardProps> = ({ credential, issueeOverride, className = '' }) => {\n const [loading, setLoading] = useState(true);\n const [vcVerification, setVCVerification] = useState<VerificationItem[]>([]);\n\n useEffect(() => {\n const verify = async () => {\n const wallet = await initLearnCard();\n const verification = await wallet.invoke.verifyCredential(credential, {}, true);\n setVCVerification(verification);\n setLoading(false);\n };\n\n verify();\n }, [credential]);\n\n return (\n <VCDisplayCard\n credential={credential}\n issueeOverride={issueeOverride}\n className={className}\n loading={loading}\n verification={vcVerification}\n />\n );\n};\n\nexport default VCCard;\n"],"names":["useState","useEffect","initLearnCard","React","VCDisplayCard"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYO,MAAM,SAAgC,CAAC,EAAE,YAAY,cAAgB,EAAA,SAAA,GAAY,IAAS,KAAA;AAC7F,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIA,eAAS,IAAI,CAAA,CAAA;AAC3C,EAAA,MAAM,CAAC,cAAgB,EAAA,iBAAiB,CAAI,GAAAA,cAAA,CAA6B,EAAE,CAAA,CAAA;AAE3E,EAAAC,eAAA,CAAU,MAAM;AACZ,IAAA,MAAM,SAAS,MAAY,OAAA,CAAA,KAAA,CAAA,EAAA,IAAA,EAAA,aAAA;AACvB,MAAM,MAAA,MAAA,GAAS,MAAMC,kBAAc,EAAA,CAAA;AACnC,MAAM,MAAA,YAAA,GAAe,MAAM,MAAO,CAAA,MAAA,CAAO,iBAAiB,UAAY,EAAA,IAAI,IAAI,CAAA,CAAA;AAC9E,MAAA,iBAAA,CAAkB,YAAY,CAAA,CAAA;AAC9B,MAAA,UAAA,CAAW,KAAK,CAAA,CAAA;AAAA,KACpB,CAAA,CAAA;AAEA,IAAO,MAAA,EAAA,CAAA;AAAA,GACX,EAAG,CAAC,UAAU,CAAC,CAAA,CAAA;AAEf,EAAA,uBACKC,yBAAA,CAAA,aAAA,CAAAC,2BAAA,EAAA;AAAA,IACG,UAAA;AAAA,IACA,cAAA;AAAA,IACA,SAAA;AAAA,IACA,OAAA;AAAA,IACA,YAAc,EAAA,cAAA;AAAA,GAClB,CAAA,CAAA;AAER;;;;"}
1
+ {"version":3,"file":"VCCard-69176b38.js","sources":["../../src/components/VCCard/VCCard.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport { initLearnCard } from '@learncard/core';\nimport { VC, Profile, VerificationItem } from '@learncard/types';\n\nimport { VCDisplayCard } from '../VCDisplayCard';\n\nexport type VCCardProps = {\n credential: VC;\n issueeOverride?: Profile;\n className?: string;\n};\n\nexport const VCCard: React.FC<VCCardProps> = ({ credential, issueeOverride, className = '' }) => {\n const [loading, setLoading] = useState(true);\n const [vcVerification, setVCVerification] = useState<VerificationItem[]>([]);\n\n useEffect(() => {\n const verify = async () => {\n const wallet = await initLearnCard();\n const verification = await wallet.invoke.verifyCredential(credential, {}, true);\n setVCVerification(verification);\n setLoading(false);\n };\n\n verify();\n }, [credential]);\n\n return (\n <VCDisplayCard\n credential={credential}\n issueeOverride={issueeOverride}\n className={className}\n loading={loading}\n verification={vcVerification}\n />\n );\n};\n\nexport default VCCard;\n"],"names":["useState","useEffect","initLearnCard","React","VCDisplayCard"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYO,MAAM,SAAgC,CAAC,EAAE,YAAY,cAAgB,EAAA,SAAA,GAAY,IAAS,KAAA;AAC7F,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIA,eAAS,IAAI,CAAA,CAAA;AAC3C,EAAA,MAAM,CAAC,cAAgB,EAAA,iBAAiB,CAAI,GAAAA,cAAA,CAA6B,EAAE,CAAA,CAAA;AAE3E,EAAAC,eAAA,CAAU,MAAM;AACZ,IAAA,MAAM,SAAS,MAAY,OAAA,CAAA,KAAA,CAAA,EAAA,IAAA,EAAA,aAAA;AACvB,MAAM,MAAA,MAAA,GAAS,MAAMC,kBAAc,EAAA,CAAA;AACnC,MAAM,MAAA,YAAA,GAAe,MAAM,MAAO,CAAA,MAAA,CAAO,iBAAiB,UAAY,EAAA,IAAI,IAAI,CAAA,CAAA;AAC9E,MAAA,iBAAA,CAAkB,YAAY,CAAA,CAAA;AAC9B,MAAA,UAAA,CAAW,KAAK,CAAA,CAAA;AAAA,KACpB,CAAA,CAAA;AAEA,IAAO,MAAA,EAAA,CAAA;AAAA,GACX,EAAG,CAAC,UAAU,CAAC,CAAA,CAAA;AAEf,EAAA,uBACKC,yBAAA,CAAA,aAAA,CAAAC,2BAAA,EAAA;AAAA,IACG,UAAA;AAAA,IACA,cAAA;AAAA,IACA,SAAA;AAAA,IACA,OAAA;AAAA,IACA,YAAc,EAAA,cAAA;AAAA,GAClB,CAAA,CAAA;AAER;;;;"}
@@ -34,27 +34,16 @@ const VCDisplayBackFace = ({
34
34
  credentialSubject,
35
35
  className = "",
36
36
  loading,
37
- verification = []
37
+ verification = [],
38
+ handleClick,
39
+ overrideDetailsComponent
38
40
  }) => {
39
41
  var _a, _b, _c, _d;
40
42
  const descriptionText = (_a = credentialSubject == null ? void 0 : credentialSubject.achievement) == null ? void 0 : _a.description;
41
43
  const criteriaText = (_c = (_b = credentialSubject == null ? void 0 : credentialSubject.achievement) == null ? void 0 : _b.criteria) == null ? void 0 : _c.narrative;
42
44
  const issuerUrl = typeof issuer === "object" ? issuer.url : "";
43
45
  const issuerName = getNameFromProfile(issuer != null ? issuer : "");
44
- return /* @__PURE__ */ React__default["default"].createElement("div", {
45
- className: `flex overflow-hidden flex-col items-center justify-between relative max-w-[400px] h-[100%] max-h-[1100px] min-h-[600px] p-7 rounded-3xl shadow-3xl bg-emerald-700 vc-display-card-full-container ${className}`
46
- }, /* @__PURE__ */ React__default["default"].createElement("section", {
47
- className: "flex max-h-[150px] items-end bg-white rounded-bl-[50%] rounded-br-[50%] absolute top-0 w-[110%] h-[55%] min-h-[400px]"
48
- }), /* @__PURE__ */ React__default["default"].createElement("section", {
49
- className: "flex flex-col items-center justify-center z-10 text-left credential-details-container max-w-[100%] relative"
50
- }, /* @__PURE__ */ React__default["default"].createElement("section", {
51
- className: "flex flex-row items-start justify-start w-full line-clamp-2"
52
- }, /* @__PURE__ */ React__default["default"].createElement("h3", {
53
- className: "text-2xl line-clamp-2 tracking-wide leading-snug text-left text-emerald-700",
54
- "data-testid": "vc-credential-details-title tracking-wide subpixel-antialiased"
55
- }, "Credential Details")), /* @__PURE__ */ React__default["default"].createElement("section", {
56
- className: "flex flex-col mt-2 w-full my-2 min-h-[200px] credential-details-info"
57
- }, /* @__PURE__ */ React__default["default"].createElement("div", {
46
+ const defaultDetails = /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, /* @__PURE__ */ React__default["default"].createElement("div", {
58
47
  className: "width-full"
59
48
  }, /* @__PURE__ */ React__default["default"].createElement("h6", {
60
49
  className: "line-clamp-1 text-grayscale-900 font-bold uppercase text-xs tracking-wider subpixel-antialiased"
@@ -74,10 +63,26 @@ const VCDisplayBackFace = ({
74
63
  className: "max-w-[344px] line-clamp-1 subpixel-antialiased text-grayscale-600 text-[14px] block overflow-ellipsis break-all"
75
64
  }, issuerName)), issuerUrl && /* @__PURE__ */ React__default["default"].createElement("p", {
76
65
  className: "text-indigo-500 font-bold text-xs width-full text-center mt-8"
77
- }, issuerUrl)), /* @__PURE__ */ React__default["default"].createElement("div", {
66
+ }, issuerUrl));
67
+ const renderDetails = overrideDetailsComponent ? overrideDetailsComponent : defaultDetails;
68
+ return /* @__PURE__ */ React__default["default"].createElement("div", {
69
+ className: `z-[9] vc-display-main-card-back flex overflow-hidden flex-col items-center justify-between relative max-w-[400px] h-[100%] max-h-[1100px] min-h-[600px] p-7 rounded-3xl shadow-3xl bg-emerald-700 vc-display-card-full-container ${className}`
70
+ }, /* @__PURE__ */ React__default["default"].createElement("section", {
71
+ className: "flex max-h-[150px] items-end bg-white rounded-bl-[50%] rounded-br-[50%] absolute top-0 w-[110%] h-[55%] min-h-[400px]"
72
+ }), /* @__PURE__ */ React__default["default"].createElement("section", {
73
+ className: "flex flex-col items-center justify-center w-full z-10 text-left credential-details-container max-w-[100%] relative"
74
+ }, /* @__PURE__ */ React__default["default"].createElement("section", {
75
+ className: "flex flex-row items-start justify-start w-full line-clamp-2"
76
+ }, /* @__PURE__ */ React__default["default"].createElement("h3", {
77
+ className: "text-2xl line-clamp-2 tracking-wide leading-snug text-left text-emerald-700",
78
+ "data-testid": "vc-credential-details-title tracking-wide subpixel-antialiased"
79
+ }, "Credential Details")), /* @__PURE__ */ React__default["default"].createElement("section", {
80
+ className: "flex flex-col mt-2 w-full my-2 min-h-[200px] credential-details-info"
81
+ }, renderDetails), /* @__PURE__ */ React__default["default"].createElement("div", {
78
82
  className: "w-full mt-2"
79
83
  }), /* @__PURE__ */ React__default["default"].createElement("button", {
80
- className: "bg-white my-3 border-2 text-indigo-500 font-semibold py-2 px-4 shadow-3xl rounded-full"
84
+ onClick: handleClick,
85
+ className: "vc-flip-btn bg-white my-3 border-2 text-indigo-500 font-semibold py-2 px-4 shadow-3xl rounded-full"
81
86
  }, /* @__PURE__ */ React__default["default"].createElement("span", {
82
87
  className: "flex justify-center"
83
88
  }, /* @__PURE__ */ React__default["default"].createElement("img", {
@@ -99,4 +104,4 @@ const VCDisplayBackFace = ({
99
104
  exports.VCDisplayBackFace = VCDisplayBackFace;
100
105
  exports.getImageFromProfile = getImageFromProfile;
101
106
  exports.getNameFromProfile = getNameFromProfile;
102
- //# sourceMappingURL=VCDisplayBackFace-0ffe0e45.js.map
107
+ //# sourceMappingURL=VCDisplayBackFace-30fcbf18.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VCDisplayBackFace-30fcbf18.js","sources":["../../src/helpers/credential.helpers.ts","../../src/components/VCDisplayBackFace/VCDisplayBackFace.tsx"],"sourcesContent":["import { Image, Profile } from '@learncard/types';\n\nexport const getImageFromImage = (image: Image): string => {\n if (typeof image === 'string') return image;\n\n return image.id ?? '';\n};\n\nexport const getNameFromProfile = (profile: Profile): string => {\n if (typeof profile === 'string') return profile;\n\n return profile.name ?? '';\n};\n\nexport const getImageFromProfile = (profile: Profile): string => {\n if (typeof profile === 'string') return '';\n\n return getImageFromImage(profile.image ?? '');\n};\n","import React from 'react';\nimport { VCDisplayCardProps } from '../../types';\nimport { VCVerificationCheckWithText } from '../VCVerificationCheck/VCVerificationCheck';\nimport VCVerificationPill from '../VCVerificationPill/VCVerificationPill';\nimport FlipArrowRight from '../../assets/images/ArrowArcRight.svg';\nimport { getNameFromProfile } from '../../helpers/credential.helpers';\n\nexport const VCDisplayBackFace: React.FC<VCDisplayCardProps> = ({\n issuer,\n credentialSubject,\n className = '',\n loading,\n verification = [],\n handleClick,\n overrideDetailsComponent,\n}) => {\n const descriptionText = credentialSubject?.achievement?.description;\n const criteriaText = credentialSubject?.achievement?.criteria?.narrative;\n const issuerUrl = typeof issuer === 'object' ? issuer.url : '';\n const issuerName = getNameFromProfile(issuer ?? '');\n const defaultDetails = (\n <>\n <div className=\"width-full\">\n <h6 className=\"line-clamp-1 text-grayscale-900 font-bold uppercase text-xs tracking-wider subpixel-antialiased\">\n Description\n </h6>\n <p className=\"line-clamp-3 subpixel-antialiased text-grayscale-600 text-[14px] lc-line-clamp\">\n {descriptionText}\n </p>\n </div>\n\n <div className=\"width-full mt-[10px]\">\n <h6 className=\"line-clamp-1 text-grayscale-900 font-bold uppercase text-xs tracking-wider subpixel-antialiased\">\n Criteria\n </h6>\n <p className=\"line-clamp-3 subpixel-antialiased text-grayscale-600 text-[14px] lc-line-clamp\">\n {criteriaText}\n </p>\n </div>\n\n <div className=\"width-full mt-[10px] line-clamp-1 overflow-hidden vc-issuer-name-info\">\n <h6 className=\"line-clamp-1 text-grayscale-900 font-bold uppercase text-xs tracking-wider subpixel-antialiased\">\n Issuer\n </h6>\n <p className=\"max-w-[344px] line-clamp-1 subpixel-antialiased text-grayscale-600 text-[14px] block overflow-ellipsis break-all\">\n {issuerName}\n </p>\n </div>\n\n {issuerUrl && (\n <p className=\"text-indigo-500 font-bold text-xs width-full text-center mt-8\">\n {issuerUrl}\n </p>\n )}\n </>\n );\n\n const renderDetails = overrideDetailsComponent ? overrideDetailsComponent : defaultDetails;\n\n return (\n <div\n className={`z-[9] vc-display-main-card-back flex overflow-hidden flex-col items-center justify-between relative max-w-[400px] h-[100%] max-h-[1100px] min-h-[600px] p-7 rounded-3xl shadow-3xl bg-emerald-700 vc-display-card-full-container ${className}`}\n >\n <section className=\"flex max-h-[150px] items-end bg-white rounded-bl-[50%] rounded-br-[50%] absolute top-0 w-[110%] h-[55%] min-h-[400px]\"></section>\n <section className=\"flex flex-col items-center justify-center w-full z-10 text-left credential-details-container max-w-[100%] relative\">\n <section className=\"flex flex-row items-start justify-start w-full line-clamp-2\">\n <h3\n className=\"text-2xl line-clamp-2 tracking-wide leading-snug text-left text-emerald-700\"\n data-testid=\"vc-credential-details-title tracking-wide subpixel-antialiased\"\n >\n Credential Details\n </h3>\n </section>\n\n <section className=\"flex flex-col mt-2 w-full my-2 min-h-[200px] credential-details-info\">\n {renderDetails}\n </section>\n\n <div className=\"w-full mt-2\"></div>\n\n <button\n onClick={handleClick}\n className=\"vc-flip-btn bg-white my-3 border-2 text-indigo-500 font-semibold py-2 px-4 shadow-3xl rounded-full\"\n >\n <span className=\"flex justify-center\">\n <img\n className=\"h-8 w-8 my-0 mx-4 scale-x-[-1]\"\n src={FlipArrowRight ?? ''}\n alt=\"Flip Card\"\n />\n </span>\n </button>\n\n <section className=\"flex-col items-center justify-center checklist-container justify-center w-[100%] width-full mt-[20px]\">\n <VCVerificationCheckWithText loading={loading} />\n <section>\n {verification.map(item => (\n <VCVerificationPill\n key={item.check}\n status={item.status}\n message={item.message}\n details={item.details}\n />\n ))}\n </section>\n </section>\n </section>\n </div>\n );\n};\n\nexport default VCDisplayBackFace;\n"],"names":["React","FlipArrowRight","VCVerificationCheckWithText","VCVerificationPill"],"mappings":"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"}
@@ -1,18 +1,16 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
- var FlippyCard = require('./FlippyCard-33e03a9e.js');
4
+ var FlippyCard = require('./FlippyCard-2cbe2dbe.js');
5
5
  var FatArrow = require('./icon.green.fat-arrow.png');
6
- var FlipArrowRight = require('./ArrowArcRight.svg');
7
6
  var DefaultFace = require('./default-face.jpeg');
8
7
  var VCVerificationCheck = require('./VCVerificationCheck-0e495524.js');
9
- var VCDisplayBackFace = require('./VCDisplayBackFace-0ffe0e45.js');
8
+ var VCDisplayBackFace = require('./VCDisplayBackFace-30fcbf18.js');
10
9
 
11
10
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
11
 
13
12
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
14
13
  var FatArrow__default = /*#__PURE__*/_interopDefaultLegacy(FatArrow);
15
- var FlipArrowRight__default = /*#__PURE__*/_interopDefaultLegacy(FlipArrowRight);
16
14
  var DefaultFace__default = /*#__PURE__*/_interopDefaultLegacy(DefaultFace);
17
15
 
18
16
  function toInteger(dirtyNumber) {
@@ -5688,9 +5686,13 @@ const VCDisplayFrontFace = ({
5688
5686
  hideProfileBubbles = false,
5689
5687
  credentialSubject,
5690
5688
  className = "",
5691
- loading
5689
+ loading,
5690
+ handleClick,
5691
+ overrideCardImageComponent,
5692
+ overrideCardTitle,
5693
+ customHeaderComponent
5692
5694
  }) => {
5693
- var _a, _b, _c, _d, _e, _f;
5695
+ var _a, _b, _c, _d, _e;
5694
5696
  const credentialAchievementImage = ((_b = (_a = credentialSubject == null ? void 0 : credentialSubject.achievement) == null ? void 0 : _a.image) == null ? void 0 : _b.id) || ((_c = credentialSubject == null ? void 0 : credentialSubject.achievement) == null ? void 0 : _c.image);
5695
5697
  const issuerName = VCDisplayBackFace.getNameFromProfile(issuer != null ? issuer : "");
5696
5698
  const issueeName = VCDisplayBackFace.getNameFromProfile(issuee != null ? issuee : "");
@@ -5726,26 +5728,29 @@ const VCDisplayFrontFace = ({
5726
5728
  if (issuerImageComponent) {
5727
5729
  issuerImageEl = issuerImageComponent;
5728
5730
  }
5731
+ const credImg = credentialAchievementImage ? /* @__PURE__ */ React__default["default"].createElement("img", {
5732
+ className: "h-full w-full object-cover",
5733
+ src: credentialAchievementImage != null ? credentialAchievementImage : "",
5734
+ alt: "Credential Achievement Image"
5735
+ }) : /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null);
5736
+ const renderCardImg = overrideCardImageComponent ? overrideCardImageComponent : credImg;
5737
+ const cardTitle = overrideCardTitle ? overrideCardTitle : title;
5729
5738
  return /* @__PURE__ */ React__default["default"].createElement("div", {
5730
- className: `flex overflow-hidden flex-col items-center justify-between relative max-w-[400px] h-[100%] max-h-[600px] min-h-[600px] p-7 rounded-3xl shadow-3xl bg-emerald-700 vc-display-card-full-container ${className}`
5739
+ className: `z-[9] vc-display-main-card-front flex overflow-hidden flex-col items-center justify-between relative max-w-[400px] h-[100%] max-h-[600px] min-h-[600px] p-7 rounded-3xl shadow-3xl bg-emerald-700 vc-display-card-full-container ${className}`
5731
5740
  }, /* @__PURE__ */ React__default["default"].createElement("section", {
5732
5741
  className: "bg-white rounded-bl-[50%] rounded-br-[50%] absolute top-0 w-[110%] h-[77%]"
5733
5742
  }), /* @__PURE__ */ React__default["default"].createElement("section", {
5734
5743
  className: "flex flex-col items-center justify-center z-10 text-center credential-thumb-img"
5735
5744
  }, /* @__PURE__ */ React__default["default"].createElement("section", {
5736
5745
  className: "max-w-[100px] max-h-[100px]"
5737
- }, credentialAchievementImage && /* @__PURE__ */ React__default["default"].createElement("img", {
5738
- className: "h-full w-full object-cover",
5739
- src: credentialAchievementImage != null ? credentialAchievementImage : "",
5740
- alt: "Credential Achievement Image"
5741
- })), /* @__PURE__ */ React__default["default"].createElement("section", {
5746
+ }, renderCardImg), /* @__PURE__ */ React__default["default"].createElement("section", {
5742
5747
  className: "flex flex-row w-full line-clamp-2"
5743
5748
  }, /* @__PURE__ */ React__default["default"].createElement("div", {
5744
5749
  className: "flex flex-row w-full line-clamp-2 py-4 vc-flippy-card-title-front "
5745
5750
  }, /* @__PURE__ */ React__default["default"].createElement("h3", {
5746
5751
  className: "vc-thumbnail-title w-full text-2xl line-clamp-2 tracking-wide leading-snug text-center vc-display-title text-gray-900 font-medium",
5747
5752
  "data-testid": "vc-thumbnail-title"
5748
- }, title != null ? title : ""))), /* @__PURE__ */ React__default["default"].createElement("section", {
5753
+ }, cardTitle != null ? cardTitle : "")), customHeaderComponent && customHeaderComponent), /* @__PURE__ */ React__default["default"].createElement("section", {
5749
5754
  className: "flex flex-row items-center justify-center mt-2 w-full my-2 vc-card-issuer-thumbs"
5750
5755
  }, !hideProfileBubbles && /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, /* @__PURE__ */ React__default["default"].createElement("div", {
5751
5756
  className: "flex items-center justify-center h-16 w-16 shadow-3xl rounded-full overflow-hidden bg-white"
@@ -5765,22 +5770,21 @@ const VCDisplayFrontFace = ({
5765
5770
  }, issueeName), " on", " ", createdAt != null ? createdAt : "", " by", " ", /* @__PURE__ */ React__default["default"].createElement("span", {
5766
5771
  className: "font-bold text-gray-900"
5767
5772
  }, " ", issuerName))), /* @__PURE__ */ React__default["default"].createElement("button", {
5768
- className: "cursor-alias bg-white my-3 border-2 text-indigo-500 font-semibold py-2 px-4 shadow-3xl rounded-full"
5773
+ onClick: handleClick,
5774
+ className: "cursor-alias bg-white my-3 border-0 text-indigo-500 font-semibold py-2 px-4 sl"
5769
5775
  }, /* @__PURE__ */ React__default["default"].createElement("span", {
5770
5776
  className: "flex justify-center"
5771
5777
  }, /* @__PURE__ */ React__default["default"].createElement("p", {
5772
5778
  className: "flex items-center"
5773
- }, "Details"), /* @__PURE__ */ React__default["default"].createElement("img", {
5774
- className: "h-8 w-8 my-0 mx-1",
5775
- src: (_f = FlipArrowRight__default["default"]) != null ? _f : "",
5776
- alt: "Flip Card"
5777
- })))), /* @__PURE__ */ React__default["default"].createElement("div", {
5779
+ }, "View Details")))), /* @__PURE__ */ React__default["default"].createElement("div", {
5778
5780
  className: "flex items-center justify-center w-full"
5779
5781
  }, /* @__PURE__ */ React__default["default"].createElement(VCVerificationCheck.VCVerificationCheckWithText, {
5780
5782
  loading
5781
5783
  })));
5782
5784
  };
5783
5785
 
5786
+ const FRONT_FACE = "front";
5787
+ const BACK_FACE = "back";
5784
5788
  const getInfoFromCredential = (credential) => {
5785
5789
  var _a;
5786
5790
  const { issuer, issuanceDate } = credential;
@@ -5799,8 +5803,13 @@ const VCDisplayCard = ({
5799
5803
  verification = [],
5800
5804
  hideProfileBubbles = false,
5801
5805
  subjectImageComponent,
5802
- issuerImageComponent
5806
+ issuerImageComponent,
5807
+ overrideDetailsComponent,
5808
+ overrideCardTitle,
5809
+ overrideCardImageComponent,
5810
+ customHeaderComponent
5803
5811
  }) => {
5812
+ const [flipState, setFlipState] = React.useState(FRONT_FACE);
5804
5813
  const {
5805
5814
  title,
5806
5815
  createdAt,
@@ -5810,28 +5819,44 @@ const VCDisplayCard = ({
5810
5819
  } = getInfoFromCredential(credential);
5811
5820
  const issuee = issueeOverride || _issuee;
5812
5821
  const issuer = issuerOverride || _issuer;
5813
- return /* @__PURE__ */ React__default["default"].createElement(FlippyCard.FlippyCard, null, /* @__PURE__ */ React__default["default"].createElement(VCDisplayFrontFace, {
5822
+ const handleFlip = () => {
5823
+ if (flipState === FRONT_FACE) {
5824
+ setFlipState(BACK_FACE);
5825
+ }
5826
+ if (flipState === BACK_FACE) {
5827
+ setFlipState(FRONT_FACE);
5828
+ }
5829
+ };
5830
+ return /* @__PURE__ */ React__default["default"].createElement(FlippyCard.FlippyCard, {
5831
+ flipState
5832
+ }, /* @__PURE__ */ React__default["default"].createElement(VCDisplayFrontFace, {
5814
5833
  title,
5815
5834
  credentialSubject,
5835
+ customHeaderComponent,
5816
5836
  issuer,
5817
5837
  issuee,
5818
5838
  subjectImageComponent,
5819
5839
  issuerImageComponent,
5840
+ overrideCardImageComponent,
5841
+ overrideCardTitle,
5820
5842
  hideProfileBubbles,
5821
5843
  createdAt,
5822
5844
  className,
5823
- loading
5845
+ loading,
5846
+ handleClick: handleFlip
5824
5847
  }), /* @__PURE__ */ React__default["default"].createElement(VCDisplayBackFace.VCDisplayBackFace, {
5825
5848
  title,
5826
5849
  credentialSubject,
5850
+ overrideDetailsComponent,
5827
5851
  issuer,
5828
5852
  issuee,
5829
5853
  createdAt,
5830
5854
  className,
5831
5855
  loading,
5832
- verification
5856
+ verification,
5857
+ handleClick: handleFlip
5833
5858
  }));
5834
5859
  };
5835
5860
 
5836
5861
  exports.VCDisplayCard = VCDisplayCard;
5837
- //# sourceMappingURL=VCDisplayCard-dfb9701f.js.map
5862
+ //# sourceMappingURL=VCDisplayCard-1f6d7964.js.map