@learncard/react 2.8.10 → 2.8.11

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 (41) hide show
  1. package/dist/cjs/{CertificateDisplayCard-081fb157.js → CertificateDisplayCard-355bb9db.js} +2 -2
  2. package/dist/cjs/{CertificateDisplayCard-081fb157.js.map → CertificateDisplayCard-355bb9db.js.map} +1 -1
  3. package/dist/cjs/Lightbox-d7b749fd.js +175 -0
  4. package/dist/cjs/Lightbox-d7b749fd.js.map +1 -0
  5. package/dist/cjs/{MeritBadgeDisplayCard-3f8eb0fc.js → MeritBadgeDisplayCard-cdb59ca4.js} +2 -2
  6. package/dist/cjs/{MeritBadgeDisplayCard-3f8eb0fc.js.map → MeritBadgeDisplayCard-cdb59ca4.js.map} +1 -1
  7. package/dist/cjs/{VCCard-d4b60ae8.js → VCCard-41ec5401.js} +2 -2
  8. package/dist/cjs/{VCCard-d4b60ae8.js.map → VCCard-41ec5401.js.map} +1 -1
  9. package/dist/cjs/{VCDisplayCard2-0bf59253.js → VCDisplayCard2-896291d9.js} +4 -4
  10. package/dist/cjs/{VCDisplayCard2-0bf59253.js.map → VCDisplayCard2-896291d9.js.map} +1 -1
  11. package/dist/cjs/index.js +5 -5
  12. package/dist/cjs/index13.js +5 -5
  13. package/dist/cjs/index19.js +1 -1
  14. package/dist/cjs/index21.js +2 -2
  15. package/dist/cjs/index37.js +5 -5
  16. package/dist/cjs/index40.js +4 -4
  17. package/dist/cjs/index6.js +2 -2
  18. package/dist/esm/{CertificateDisplayCard-98ec793a.js → CertificateDisplayCard-3ff759b1.js} +2 -2
  19. package/dist/esm/{CertificateDisplayCard-98ec793a.js.map → CertificateDisplayCard-3ff759b1.js.map} +1 -1
  20. package/dist/esm/Lightbox-f02b5b4f.js +169 -0
  21. package/dist/esm/Lightbox-f02b5b4f.js.map +1 -0
  22. package/dist/esm/{MeritBadgeDisplayCard-3a5d50b0.js → MeritBadgeDisplayCard-a3e1cac5.js} +2 -2
  23. package/dist/esm/{MeritBadgeDisplayCard-3a5d50b0.js.map → MeritBadgeDisplayCard-a3e1cac5.js.map} +1 -1
  24. package/dist/esm/{VCCard-d252e48a.js → VCCard-ec7b123f.js} +2 -2
  25. package/dist/esm/{VCCard-d252e48a.js.map → VCCard-ec7b123f.js.map} +1 -1
  26. package/dist/esm/{VCDisplayCard2-e7ea7aaa.js → VCDisplayCard2-a4144508.js} +4 -4
  27. package/dist/esm/{VCDisplayCard2-e7ea7aaa.js.map → VCDisplayCard2-a4144508.js.map} +1 -1
  28. package/dist/esm/index.js +5 -5
  29. package/dist/esm/index13.js +5 -5
  30. package/dist/esm/index19.js +1 -1
  31. package/dist/esm/index21.js +2 -2
  32. package/dist/esm/index37.js +5 -5
  33. package/dist/esm/index40.js +4 -4
  34. package/dist/esm/index6.js +2 -2
  35. package/dist/main.css +1 -1
  36. package/dist/main.js +1 -1
  37. package/package.json +1 -1
  38. package/dist/cjs/Lightbox-880f4672.js +0 -81
  39. package/dist/cjs/Lightbox-880f4672.js.map +0 -1
  40. package/dist/esm/Lightbox-883afe8f.js +0 -75
  41. package/dist/esm/Lightbox-883afe8f.js.map +0 -1
@@ -0,0 +1,175 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var reactDom = require('react-dom');
5
+
6
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
7
+
8
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
9
+
10
+ var __async$1 = (__this, __arguments, generator) => {
11
+ return new Promise((resolve, reject) => {
12
+ var fulfilled = (value) => {
13
+ try {
14
+ step(generator.next(value));
15
+ } catch (e) {
16
+ reject(e);
17
+ }
18
+ };
19
+ var rejected = (value) => {
20
+ try {
21
+ step(generator.throw(value));
22
+ } catch (e) {
23
+ reject(e);
24
+ }
25
+ };
26
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
27
+ step((generator = generator.apply(__this, __arguments)).next());
28
+ });
29
+ };
30
+ const getVideoMetadata = (url) => __async$1(void 0, null, function* () {
31
+ var _a, _b, _c;
32
+ try {
33
+ const parsedUrl = new URL(url);
34
+ const hostname = parsedUrl.hostname.replace(/^www\./, "");
35
+ if (hostname.includes("youtube.com") || hostname === "youtu.be") {
36
+ const match = url.match(
37
+ /(?:youtu\.be\/|youtube\.com\/(?:watch\?v=|embed\/|v\/|shorts\/))([\w-]{11})/
38
+ );
39
+ const videoId = (_a = match == null ? void 0 : match[1]) != null ? _a : null;
40
+ return {
41
+ type: "youtube",
42
+ videoId,
43
+ embedUrl: videoId ? `https://www.youtube.com/embed/${videoId}` : null,
44
+ thumbnailUrl: videoId ? `https://img.youtube.com/vi/${videoId}/maxresdefault.jpg` : null
45
+ };
46
+ }
47
+ if (hostname.includes("vimeo.com")) {
48
+ const match = url.match(/vimeo\.com\/(\d+)/);
49
+ const videoId = (_b = match == null ? void 0 : match[1]) != null ? _b : null;
50
+ const oembedUrl = `https://vimeo.com/api/oembed.json?url=${encodeURIComponent(url)}`;
51
+ const res = yield fetch(oembedUrl);
52
+ const data = yield res.json();
53
+ return {
54
+ type: "vimeo",
55
+ videoId,
56
+ embedUrl: videoId ? `https://player.vimeo.com/video/${videoId}` : null,
57
+ thumbnailUrl: (_c = data == null ? void 0 : data.thumbnail_url) != null ? _c : null
58
+ };
59
+ }
60
+ return {
61
+ type: "unknown",
62
+ videoId: null,
63
+ embedUrl: null,
64
+ thumbnailUrl: null
65
+ };
66
+ } catch (err) {
67
+ console.error("Failed to extract video metadata:", err);
68
+ return {
69
+ type: "unknown",
70
+ videoId: null,
71
+ embedUrl: null,
72
+ thumbnailUrl: null
73
+ };
74
+ }
75
+ });
76
+
77
+ var __async = (__this, __arguments, generator) => {
78
+ return new Promise((resolve, reject) => {
79
+ var fulfilled = (value) => {
80
+ try {
81
+ step(generator.next(value));
82
+ } catch (e) {
83
+ reject(e);
84
+ }
85
+ };
86
+ var rejected = (value) => {
87
+ try {
88
+ step(generator.throw(value));
89
+ } catch (e) {
90
+ reject(e);
91
+ }
92
+ };
93
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
94
+ step((generator = generator.apply(__this, __arguments)).next());
95
+ });
96
+ };
97
+ const Lightbox = ({ items, currentUrl, setCurrentUrl }) => {
98
+ const currentItem = items.find((item) => item.url === currentUrl);
99
+ const innerRef = React.useRef(null);
100
+ const [videoMetadata, setVideoMetadata] = React.useState(null);
101
+ const goToNextItem = React.useCallback(() => {
102
+ const currentIndex = items.findIndex((item) => item.url === currentUrl);
103
+ const nextItem = items.at((currentIndex + 1) % items.length);
104
+ if (nextItem)
105
+ setCurrentUrl(nextItem.url);
106
+ }, [currentUrl, items, setCurrentUrl]);
107
+ const goToPreviousItem = React.useCallback(() => {
108
+ const currentIndex = items.findIndex((item) => item.url === currentUrl);
109
+ const previousItem = items.at((currentIndex - 1 + items.length) % items.length);
110
+ if (previousItem)
111
+ setCurrentUrl(previousItem.url);
112
+ }, [currentUrl, items, setCurrentUrl]);
113
+ React.useEffect(() => {
114
+ const keydownListener = (e) => {
115
+ if (!currentUrl || !currentItem)
116
+ return;
117
+ if (e.key === "Escape") {
118
+ e.preventDefault();
119
+ setCurrentUrl(void 0);
120
+ }
121
+ if (e.key === "ArrowRight") {
122
+ e.preventDefault();
123
+ goToNextItem();
124
+ }
125
+ if (e.key === "ArrowLeft") {
126
+ e.preventDefault();
127
+ goToPreviousItem();
128
+ }
129
+ };
130
+ window.addEventListener("keydown", keydownListener);
131
+ return () => window.removeEventListener("keydown", keydownListener);
132
+ }, [currentUrl, currentItem, goToNextItem, goToPreviousItem, setCurrentUrl]);
133
+ React.useEffect(() => {
134
+ const fetchMetadata = () => __async(void 0, null, function* () {
135
+ if ((currentItem == null ? void 0 : currentItem.type) === "video") {
136
+ const metadata = yield getVideoMetadata(currentItem.url);
137
+ setVideoMetadata(metadata);
138
+ } else {
139
+ setVideoMetadata(null);
140
+ }
141
+ });
142
+ fetchMetadata();
143
+ }, []);
144
+ if (!currentUrl || !currentItem)
145
+ return null;
146
+ return reactDom.createPortal(
147
+ /* @__PURE__ */ React__default["default"].createElement("div", {
148
+ className: "absolute top-0 left-0 w-screen h-screen bg-[rgba(0,0,0,0.9)] text-white flex justify-center items-center z-[999999]",
149
+ onClick: (e) => {
150
+ if (e.target !== innerRef.current) {
151
+ setCurrentUrl(void 0);
152
+ }
153
+ }
154
+ }, currentItem.type === "photo" && /* @__PURE__ */ React__default["default"].createElement("img", {
155
+ className: "cursor-pointer max-w-[90vw] max-h-[90vh]",
156
+ src: currentUrl,
157
+ onClick: () => window.open(currentUrl, "_blank"),
158
+ ref: innerRef,
159
+ alt: ""
160
+ }), currentItem.type === "video" && (videoMetadata == null ? void 0 : videoMetadata.embedUrl) && /* @__PURE__ */ React__default["default"].createElement("div", {
161
+ className: "relative w-[90vw] max-w-[800px] aspect-video"
162
+ }, /* @__PURE__ */ React__default["default"].createElement("iframe", {
163
+ src: videoMetadata.embedUrl,
164
+ className: "absolute top-0 left-0 w-full h-full rounded-md",
165
+ title: "Video player",
166
+ frameBorder: "0",
167
+ allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",
168
+ allowFullScreen: true
169
+ }))),
170
+ document.body
171
+ );
172
+ };
173
+
174
+ exports.Lightbox = Lightbox;
175
+ //# sourceMappingURL=Lightbox-d7b749fd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Lightbox-d7b749fd.js","sources":["../../src/helpers/video.helpers.ts","../../src/components/Lightbox/Lightbox.tsx"],"sourcesContent":["type VideoPlatform = 'youtube' | 'vimeo' | 'unknown';\n\nexport type VideoMetadata = {\n type: VideoPlatform;\n videoId: string | null;\n embedUrl: string | null;\n thumbnailUrl: string | null;\n};\n\nexport const getVideoMetadata = async (url: string): Promise<VideoMetadata> => {\n try {\n const parsedUrl = new URL(url);\n const hostname = parsedUrl.hostname.replace(/^www\\./, '');\n\n // YouTube\n if (hostname.includes('youtube.com') || hostname === 'youtu.be') {\n const match = url.match(\n /(?:youtu\\.be\\/|youtube\\.com\\/(?:watch\\?v=|embed\\/|v\\/|shorts\\/))([\\w-]{11})/\n );\n const videoId = match?.[1] ?? null;\n\n return {\n type: 'youtube',\n videoId,\n embedUrl: videoId ? `https://www.youtube.com/embed/${videoId}` : null,\n thumbnailUrl: videoId\n ? `https://img.youtube.com/vi/${videoId}/maxresdefault.jpg`\n : null,\n };\n }\n\n // Vimeo\n if (hostname.includes('vimeo.com')) {\n const match = url.match(/vimeo\\.com\\/(\\d+)/);\n const videoId = match?.[1] ?? null;\n\n const oembedUrl = `https://vimeo.com/api/oembed.json?url=${encodeURIComponent(url)}`;\n const res = await fetch(oembedUrl);\n const data = await res.json();\n\n return {\n type: 'vimeo',\n videoId,\n embedUrl: videoId ? `https://player.vimeo.com/video/${videoId}` : null,\n thumbnailUrl: data?.thumbnail_url ?? null,\n };\n }\n\n return {\n type: 'unknown',\n videoId: null,\n embedUrl: null,\n thumbnailUrl: null,\n };\n } catch (err) {\n console.error('Failed to extract video metadata:', err);\n return {\n type: 'unknown',\n videoId: null,\n embedUrl: null,\n thumbnailUrl: null,\n };\n }\n};\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { getVideoMetadata, VideoMetadata } from '../../helpers/video.helpers';\n\nexport type LightboxItemType = 'photo' | 'video';\n\nexport type LightboxItem = {\n url: string;\n type: LightboxItemType;\n};\n\nexport type LightboxImage = LightboxItem & {\n type: 'photo';\n alt?: string;\n};\n\nexport type LightboxVideo = LightboxItem & {\n type: 'video';\n};\n\nexport type LightboxProps = {\n items: LightboxItem[];\n currentUrl: string | undefined;\n setCurrentUrl: (url: string | undefined) => void;\n};\n\nexport const Lightbox: React.FC<LightboxProps> = ({ items, currentUrl, setCurrentUrl }) => {\n const currentItem = items.find(item => item.url === currentUrl);\n const innerRef = useRef<HTMLImageElement>(null);\n const [videoMetadata, setVideoMetadata] = useState<VideoMetadata | null>(null);\n\n const goToNextItem = useCallback(() => {\n const currentIndex = items.findIndex(item => item.url === currentUrl);\n const nextItem = items.at((currentIndex + 1) % items.length);\n if (nextItem) setCurrentUrl(nextItem.url);\n }, [currentUrl, items, setCurrentUrl]);\n\n const goToPreviousItem = useCallback(() => {\n const currentIndex = items.findIndex(item => item.url === currentUrl);\n const previousItem = items.at((currentIndex - 1 + items.length) % items.length);\n if (previousItem) setCurrentUrl(previousItem.url);\n }, [currentUrl, items, setCurrentUrl]);\n\n useEffect(() => {\n const keydownListener = (e: KeyboardEvent) => {\n if (!currentUrl || !currentItem) return;\n\n if (e.key === 'Escape') {\n e.preventDefault();\n setCurrentUrl(undefined);\n }\n\n if (e.key === 'ArrowRight') {\n e.preventDefault();\n goToNextItem();\n }\n\n if (e.key === 'ArrowLeft') {\n e.preventDefault();\n goToPreviousItem();\n }\n };\n\n window.addEventListener('keydown', keydownListener);\n return () => window.removeEventListener('keydown', keydownListener);\n }, [currentUrl, currentItem, goToNextItem, goToPreviousItem, setCurrentUrl]);\n\n useEffect(() => {\n const fetchMetadata = async () => {\n if (currentItem?.type === 'video') {\n const metadata = await getVideoMetadata(currentItem.url);\n setVideoMetadata(metadata);\n } else {\n setVideoMetadata(null);\n }\n };\n\n fetchMetadata();\n }, []);\n\n if (!currentUrl || !currentItem) return null;\n\n return createPortal(\n <div\n className=\"absolute top-0 left-0 w-screen h-screen bg-[rgba(0,0,0,0.9)] text-white flex justify-center items-center z-[999999]\"\n onClick={e => {\n if (e.target !== innerRef.current) {\n setCurrentUrl(undefined);\n }\n }}\n >\n {currentItem.type === 'photo' && (\n <img\n className=\"cursor-pointer max-w-[90vw] max-h-[90vh]\"\n src={currentUrl}\n onClick={() => window.open(currentUrl, '_blank')}\n ref={innerRef}\n alt=\"\"\n />\n )}\n\n {currentItem.type === 'video' && videoMetadata?.embedUrl && (\n <div className=\"relative w-[90vw] max-w-[800px] aspect-video\">\n <iframe\n src={videoMetadata.embedUrl}\n className=\"absolute top-0 left-0 w-full h-full rounded-md\"\n title=\"Video player\"\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n />\n </div>\n )}\n </div>,\n document.body\n );\n};\n"],"names":["__async","useRef","useState","useCallback","useEffect","createPortal","React"],"mappings":"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"}
@@ -6,7 +6,7 @@ var credential_helpers = require('./credential.helpers-a6eb673d.js');
6
6
  var index = require('./index-5488badc.js');
7
7
  var types_esm = require('./types.esm-9e1f15fe.js');
8
8
  var CaretRightFilled = require('./CaretRightFilled.svg');
9
- var Lightbox = require('./Lightbox-880f4672.js');
9
+ var Lightbox = require('./Lightbox-d7b749fd.js');
10
10
  var ThreeDots = require('./DotsThreeOutline.svg');
11
11
 
12
12
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -867,4 +867,4 @@ const MeritBadgeDisplayCard = ({
867
867
  exports.MeritBadgeBackFace = MeritBadgeBackFace;
868
868
  exports.MeritBadgeDisplayCard = MeritBadgeDisplayCard;
869
869
  exports.MeritBadgeFrontFace = MeritBadgeFrontFace;
870
- //# sourceMappingURL=MeritBadgeDisplayCard-3f8eb0fc.js.map
870
+ //# sourceMappingURL=MeritBadgeDisplayCard-cdb59ca4.js.map