notion-to-jsx 1.2.5 → 1.2.7
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.
- package/dist/index.css +3 -4
- package/dist/index.css.map +1 -1
- package/dist/index.js +35 -84
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +32 -81
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// src/components/Renderer/index.tsx
|
|
2
|
-
import
|
|
2
|
+
import React6, { useState as useState4, useMemo as useMemo2, useCallback } from "react";
|
|
3
3
|
|
|
4
4
|
// src/components/Renderer/styles.css.ts
|
|
5
5
|
var container = "styles_container__epva5u0";
|
|
@@ -29,7 +29,7 @@ var ListItem = ({
|
|
|
29
29
|
};
|
|
30
30
|
|
|
31
31
|
// src/components/Renderer/components/MemoizedComponents.tsx
|
|
32
|
-
import
|
|
32
|
+
import React3 from "react";
|
|
33
33
|
|
|
34
34
|
// src/components/Renderer/components/RichText/styles.css.ts
|
|
35
35
|
import { createRuntimeFn as _7a4682 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
@@ -103,7 +103,7 @@ var RichTexts = ({ richTexts }) => {
|
|
|
103
103
|
var RichTexts_default = RichTexts;
|
|
104
104
|
|
|
105
105
|
// src/components/Renderer/components/Image/Image.tsx
|
|
106
|
-
import { useState
|
|
106
|
+
import { useState } from "react";
|
|
107
107
|
|
|
108
108
|
// src/components/Renderer/components/Image/styles.css.ts
|
|
109
109
|
import { createRuntimeFn as _7a4683 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
@@ -145,9 +145,6 @@ var Image = ({
|
|
|
145
145
|
isColumn = false
|
|
146
146
|
}) => {
|
|
147
147
|
const [isLoaded, setIsLoaded] = useState(false);
|
|
148
|
-
useEffect(() => {
|
|
149
|
-
setIsLoaded(false);
|
|
150
|
-
}, [src]);
|
|
151
148
|
return /* @__PURE__ */ jsxs("div", { className: imageContainer, children: [
|
|
152
149
|
/* @__PURE__ */ jsxs(
|
|
153
150
|
"div",
|
|
@@ -205,9 +202,6 @@ var Image = ({
|
|
|
205
202
|
};
|
|
206
203
|
var Image_default = Image;
|
|
207
204
|
|
|
208
|
-
// src/components/Renderer/components/Bookmark/Bookmark.tsx
|
|
209
|
-
import { useState as useState2, useEffect as useEffect2 } from "react";
|
|
210
|
-
|
|
211
205
|
// src/components/Renderer/components/Bookmark/styles.css.ts
|
|
212
206
|
var card = "styles_card__qrq8yf1";
|
|
213
207
|
var content = "styles_content__qrq8yf2";
|
|
@@ -222,73 +216,24 @@ var urlText = "styles_urlText__qrq8yf9";
|
|
|
222
216
|
|
|
223
217
|
// src/components/Renderer/components/Bookmark/Bookmark.tsx
|
|
224
218
|
import { jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
225
|
-
var
|
|
226
|
-
try {
|
|
227
|
-
const apiUrl = `https://api.microlink.io/?url=${encodeURIComponent(url)}`;
|
|
228
|
-
const response = await fetch(apiUrl);
|
|
229
|
-
const data = await response.json();
|
|
230
|
-
if (!response.ok) {
|
|
231
|
-
throw new Error("Failed to fetch metadata");
|
|
232
|
-
}
|
|
233
|
-
const { status, data: metaData, statusCode } = data;
|
|
234
|
-
if (status !== "success" || statusCode !== 200) {
|
|
235
|
-
throw new Error("API returned error status");
|
|
236
|
-
}
|
|
237
|
-
const parsedUrl = new URL(url);
|
|
238
|
-
const domain = parsedUrl.hostname;
|
|
239
|
-
return {
|
|
240
|
-
title: metaData.title || domain,
|
|
241
|
-
description: metaData.description || "No description available",
|
|
242
|
-
image: metaData.image?.url || "",
|
|
243
|
-
siteName: metaData.publisher || domain,
|
|
244
|
-
url: metaData.url || "",
|
|
245
|
-
favicon: metaData.logo?.url || `https://www.google.com/s2/favicons?domain=${domain}&sz=64`
|
|
246
|
-
};
|
|
247
|
-
} catch (error) {
|
|
248
|
-
console.error("Error fetching OpenGraph data:", error);
|
|
249
|
-
const parsedUrl = new URL(url);
|
|
250
|
-
const domain = parsedUrl.hostname;
|
|
251
|
-
return {
|
|
252
|
-
title: domain,
|
|
253
|
-
description: "No description available",
|
|
254
|
-
image: "",
|
|
255
|
-
url: "",
|
|
256
|
-
siteName: domain,
|
|
257
|
-
favicon: `https://www.google.com/s2/favicons?domain=${domain}&sz=64`
|
|
258
|
-
};
|
|
259
|
-
}
|
|
260
|
-
};
|
|
261
|
-
var Bookmark = ({ url }) => {
|
|
262
|
-
const [ogData, setOgData] = useState2(null);
|
|
263
|
-
const [error, setError] = useState2(false);
|
|
264
|
-
useEffect2(() => {
|
|
265
|
-
const loadOgData = async () => {
|
|
266
|
-
try {
|
|
267
|
-
const data = await fetchOpenGraphData(url);
|
|
268
|
-
setOgData(data);
|
|
269
|
-
} catch (err) {
|
|
270
|
-
setError(true);
|
|
271
|
-
}
|
|
272
|
-
};
|
|
273
|
-
loadOgData();
|
|
274
|
-
}, [url]);
|
|
219
|
+
var Bookmark = ({ url, metadata }) => {
|
|
275
220
|
return /* @__PURE__ */ jsx4("a", { href: url, target: "_blank", rel: "noopener noreferrer", className: link2, children: /* @__PURE__ */ jsxs2("div", { className: card, children: [
|
|
276
221
|
/* @__PURE__ */ jsxs2("div", { className: content, children: [
|
|
277
222
|
/* @__PURE__ */ jsxs2("div", { children: [
|
|
278
|
-
/* @__PURE__ */ jsx4("h4", { className: title, children:
|
|
279
|
-
/* @__PURE__ */ jsx4("p", { className: description, children:
|
|
223
|
+
/* @__PURE__ */ jsx4("h4", { className: title, children: metadata?.title || url }),
|
|
224
|
+
/* @__PURE__ */ jsx4("p", { className: description, children: metadata?.description || "" })
|
|
280
225
|
] }),
|
|
281
226
|
/* @__PURE__ */ jsxs2("div", { className: siteName, children: [
|
|
282
|
-
|
|
283
|
-
/* @__PURE__ */ jsx4("span", { className: urlText, children:
|
|
227
|
+
metadata?.favicon && /* @__PURE__ */ jsx4("img", { src: metadata.favicon, alt: "", className: favicon }),
|
|
228
|
+
/* @__PURE__ */ jsx4("span", { className: urlText, children: metadata?.url || "" })
|
|
284
229
|
] })
|
|
285
230
|
] }),
|
|
286
|
-
|
|
231
|
+
metadata?.image && /* @__PURE__ */ jsx4("div", { className: previewContainer, children: /* @__PURE__ */ jsx4(
|
|
287
232
|
"img",
|
|
288
233
|
{
|
|
289
234
|
className: previewImage,
|
|
290
|
-
src:
|
|
291
|
-
alt:
|
|
235
|
+
src: metadata.image,
|
|
236
|
+
alt: metadata.title,
|
|
292
237
|
loading: "lazy",
|
|
293
238
|
onError: (e) => {
|
|
294
239
|
const target = e.target;
|
|
@@ -301,7 +246,7 @@ var Bookmark = ({ url }) => {
|
|
|
301
246
|
var Bookmark_default = Bookmark;
|
|
302
247
|
|
|
303
248
|
// src/components/Renderer/components/LinkPreview/LinkPreview.tsx
|
|
304
|
-
import { useState as
|
|
249
|
+
import { useState as useState2, useEffect } from "react";
|
|
305
250
|
|
|
306
251
|
// src/components/Renderer/components/LinkPreview/styles.css.ts
|
|
307
252
|
var content2 = "styles_content__o1p3m12";
|
|
@@ -435,13 +380,13 @@ var formatUpdatedTime = (dateString) => {
|
|
|
435
380
|
}
|
|
436
381
|
};
|
|
437
382
|
var LinkPreview = ({ url }) => {
|
|
438
|
-
const [repoData, setRepoData] =
|
|
439
|
-
const [figmaData, setFigmaData] =
|
|
440
|
-
const [loading, setLoading] =
|
|
441
|
-
const [linkType, setLinkType] =
|
|
383
|
+
const [repoData, setRepoData] = useState2(null);
|
|
384
|
+
const [figmaData, setFigmaData] = useState2(null);
|
|
385
|
+
const [loading, setLoading] = useState2(true);
|
|
386
|
+
const [linkType, setLinkType] = useState2(
|
|
442
387
|
"unknown"
|
|
443
388
|
);
|
|
444
|
-
|
|
389
|
+
useEffect(() => {
|
|
445
390
|
const loadLinkData = async () => {
|
|
446
391
|
setLoading(true);
|
|
447
392
|
const type = getLinkType(url);
|
|
@@ -511,22 +456,22 @@ var LinkPreview = ({ url }) => {
|
|
|
511
456
|
var LinkPreview_default = LinkPreview;
|
|
512
457
|
|
|
513
458
|
// src/components/Renderer/components/MemoizedComponents.tsx
|
|
514
|
-
var MemoizedRichText =
|
|
459
|
+
var MemoizedRichText = React3.memo(
|
|
515
460
|
RichTexts_default,
|
|
516
461
|
(prev, next) => {
|
|
517
462
|
return JSON.stringify(prev.richTexts) === JSON.stringify(next.richTexts);
|
|
518
463
|
}
|
|
519
464
|
);
|
|
520
|
-
var MemoizedImage =
|
|
465
|
+
var MemoizedImage = React3.memo(Image_default, (prev, next) => {
|
|
521
466
|
return prev.src === next.src && prev.alt === next.alt && JSON.stringify(prev.caption) === JSON.stringify(next.caption);
|
|
522
467
|
});
|
|
523
|
-
var MemoizedBookmark =
|
|
468
|
+
var MemoizedBookmark = React3.memo(
|
|
524
469
|
Bookmark_default,
|
|
525
470
|
(prev, next) => {
|
|
526
471
|
return prev.url === next.url;
|
|
527
472
|
}
|
|
528
473
|
);
|
|
529
|
-
var MemoizedLinkPreview =
|
|
474
|
+
var MemoizedLinkPreview = React3.memo(
|
|
530
475
|
LinkPreview_default,
|
|
531
476
|
(prev, next) => {
|
|
532
477
|
return prev.url === next.url;
|
|
@@ -795,7 +740,7 @@ var Table_default = Table;
|
|
|
795
740
|
var Table_default2 = Table_default;
|
|
796
741
|
|
|
797
742
|
// src/components/Renderer/components/Toggle/Toggle.tsx
|
|
798
|
-
import { useState as
|
|
743
|
+
import { useState as useState3 } from "react";
|
|
799
744
|
|
|
800
745
|
// src/components/Renderer/components/Toggle/styles.css.ts
|
|
801
746
|
var toggleContainer = "styles_toggleContainer__p7ue1z0";
|
|
@@ -807,7 +752,7 @@ var toggleIconOpen = "styles_toggleIconOpen__p7ue1z3";
|
|
|
807
752
|
// src/components/Renderer/components/Toggle/Toggle.tsx
|
|
808
753
|
import { jsx as jsx14, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
809
754
|
var Toggle = ({ block, tabIndex = 0, onFocus }) => {
|
|
810
|
-
const [isOpen, setIsOpen] =
|
|
755
|
+
const [isOpen, setIsOpen] = useState3(false);
|
|
811
756
|
if (!block.toggle || !block.children) {
|
|
812
757
|
return null;
|
|
813
758
|
}
|
|
@@ -894,7 +839,13 @@ var BlockRenderer = ({
|
|
|
894
839
|
}
|
|
895
840
|
) });
|
|
896
841
|
case "bookmark":
|
|
897
|
-
return /* @__PURE__ */ jsx15(
|
|
842
|
+
return /* @__PURE__ */ jsx15(
|
|
843
|
+
MemoizedBookmark,
|
|
844
|
+
{
|
|
845
|
+
url: block.bookmark.url,
|
|
846
|
+
metadata: block.bookmark.metadata
|
|
847
|
+
}
|
|
848
|
+
);
|
|
898
849
|
case "column_list":
|
|
899
850
|
return /* @__PURE__ */ jsx15(ColumnList_default, { block, onFocus });
|
|
900
851
|
case "column":
|
|
@@ -941,10 +892,10 @@ var Cover_default = Cover;
|
|
|
941
892
|
|
|
942
893
|
// src/components/Renderer/index.tsx
|
|
943
894
|
import { Fragment as Fragment4, jsx as jsx18, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
944
|
-
var Renderer =
|
|
895
|
+
var Renderer = React6.memo(
|
|
945
896
|
({ blocks, isDarkMode = false, title: title3, cover: cover2, onBlockFocus }) => {
|
|
946
897
|
const theme = isDarkMode ? darkTheme : lightTheme;
|
|
947
|
-
const [focusedIndex, setFocusedIndex] =
|
|
898
|
+
const [focusedIndex, setFocusedIndex] = useState4(-1);
|
|
948
899
|
const handleBlockFocus = useCallback(
|
|
949
900
|
(index) => {
|
|
950
901
|
setFocusedIndex(index);
|