@thanh01.pmt/presentation-kit 0.2.14 → 0.2.16
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/ai/index.cjs +145 -16
- package/dist/ai/index.cjs.map +1 -1
- package/dist/ai/index.d.cts +15 -15
- package/dist/ai/index.d.ts +15 -15
- package/dist/ai/index.js +132 -3
- package/dist/ai/index.js.map +1 -1
- package/dist/{chunk-A7T5Y2G4.js → chunk-7QHDWDSB.js} +343 -187
- package/dist/chunk-7QHDWDSB.js.map +1 -0
- package/dist/{chunk-JIIUW2TN.cjs → chunk-JNTRKKJX.cjs} +343 -186
- package/dist/chunk-JNTRKKJX.cjs.map +1 -0
- package/dist/index.cjs +19 -15
- package/dist/index.d.cts +4 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.js +2 -2
- package/dist/react/index.cjs +23 -7
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.d.cts +2 -0
- package/dist/react/index.d.ts +2 -0
- package/dist/react/index.js +19 -3
- package/dist/react/index.js.map +1 -1
- package/package.json +11 -10
- package/LICENSE +0 -21
- package/dist/chunk-A7T5Y2G4.js.map +0 -1
- package/dist/chunk-JIIUW2TN.cjs.map +0 -1
package/dist/react/index.d.cts
CHANGED
|
@@ -186,6 +186,8 @@ interface HtmlSlideViewerProps {
|
|
|
186
186
|
className?: string;
|
|
187
187
|
/** Callback fired when active slide index changes */
|
|
188
188
|
onSlideChange?: (current: number, total: number) => void;
|
|
189
|
+
/** Callback fired when slide deck is exported or saved from inline editor */
|
|
190
|
+
onSaveHtml?: (savedHtml: string) => void;
|
|
189
191
|
/** Show top control bar */
|
|
190
192
|
showTopBar?: boolean;
|
|
191
193
|
}
|
package/dist/react/index.d.ts
CHANGED
|
@@ -186,6 +186,8 @@ interface HtmlSlideViewerProps {
|
|
|
186
186
|
className?: string;
|
|
187
187
|
/** Callback fired when active slide index changes */
|
|
188
188
|
onSlideChange?: (current: number, total: number) => void;
|
|
189
|
+
/** Callback fired when slide deck is exported or saved from inline editor */
|
|
190
|
+
onSaveHtml?: (savedHtml: string) => void;
|
|
189
191
|
/** Show top control bar */
|
|
190
192
|
showTopBar?: boolean;
|
|
191
193
|
}
|
package/dist/react/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { renderSlide, renderMermaidDiagrams } from '../chunk-NYLDRVHZ.js';
|
|
2
2
|
export { defineTheme, extractMaxClicks, generateClickCss, postprocessClicks, preprocessClicks, renderSlide, renderSlideAsync, resolveTheme } from '../chunk-NYLDRVHZ.js';
|
|
3
|
-
import { SLIDE_LAYOUT_PRESETS, updateSlideLayoutInMarkdown, compileHtmlDeck } from '../chunk-
|
|
3
|
+
import { SLIDE_LAYOUT_PRESETS, updateSlideLayoutInMarkdown, compileHtmlDeck } from '../chunk-7QHDWDSB.js';
|
|
4
4
|
import React2, { useState, useRef, useMemo, useEffect, useCallback } from 'react';
|
|
5
5
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
6
6
|
|
|
@@ -1605,6 +1605,7 @@ var HtmlSlideViewer = ({
|
|
|
1605
1605
|
title: propTitle,
|
|
1606
1606
|
className = "",
|
|
1607
1607
|
onSlideChange,
|
|
1608
|
+
onSaveHtml,
|
|
1608
1609
|
showTopBar = true
|
|
1609
1610
|
}) => {
|
|
1610
1611
|
const iframeRef = useRef(null);
|
|
@@ -1631,11 +1632,15 @@ var HtmlSlideViewer = ({
|
|
|
1631
1632
|
if (onSlideChange) {
|
|
1632
1633
|
onSlideChange(cur, tot);
|
|
1633
1634
|
}
|
|
1635
|
+
} else if (e.data.type === "SLIDE_HTML_SAVED") {
|
|
1636
|
+
if (onSaveHtml && typeof e.data.html === "string") {
|
|
1637
|
+
onSaveHtml(e.data.html);
|
|
1638
|
+
}
|
|
1634
1639
|
}
|
|
1635
1640
|
};
|
|
1636
1641
|
window.addEventListener("message", handleMessage);
|
|
1637
1642
|
return () => window.removeEventListener("message", handleMessage);
|
|
1638
|
-
}, [onSlideChange]);
|
|
1643
|
+
}, [onSlideChange, onSaveHtml]);
|
|
1639
1644
|
useEffect(() => {
|
|
1640
1645
|
const onFsChange = () => {
|
|
1641
1646
|
setIsFullscreen(Boolean(document.fullscreenElement));
|
|
@@ -1648,6 +1653,14 @@ var HtmlSlideViewer = ({
|
|
|
1648
1653
|
iframeRef.current.contentWindow.postMessage(msg, "*");
|
|
1649
1654
|
}
|
|
1650
1655
|
}, []);
|
|
1656
|
+
useEffect(() => {
|
|
1657
|
+
if (!containerRef.current || typeof ResizeObserver === "undefined") return;
|
|
1658
|
+
const ro = new ResizeObserver(() => {
|
|
1659
|
+
sendIframeMessage({ type: "RESIZE" });
|
|
1660
|
+
});
|
|
1661
|
+
ro.observe(containerRef.current);
|
|
1662
|
+
return () => ro.disconnect();
|
|
1663
|
+
}, [sendIframeMessage]);
|
|
1651
1664
|
const handleNext = () => sendIframeMessage({ type: "NEXT_SLIDE" });
|
|
1652
1665
|
const handlePrev = () => sendIframeMessage({ type: "PREV_SLIDE" });
|
|
1653
1666
|
const handleToggleFullscreen = () => {
|
|
@@ -1746,7 +1759,10 @@ var HtmlSlideViewer = ({
|
|
|
1746
1759
|
srcDoc: fullHtml,
|
|
1747
1760
|
title: deckTitle,
|
|
1748
1761
|
sandbox: "allow-scripts allow-same-origin allow-popups allow-forms",
|
|
1749
|
-
className: "w-full h-full border-0 block"
|
|
1762
|
+
className: "w-full h-full border-0 block",
|
|
1763
|
+
onLoad: () => {
|
|
1764
|
+
sendIframeMessage({ type: "RESIZE" });
|
|
1765
|
+
}
|
|
1750
1766
|
}
|
|
1751
1767
|
) : /* @__PURE__ */ jsx("div", { className: "w-full h-full flex items-center justify-center text-neutral-500 text-sm", children: "No slide deck content loaded." }) })
|
|
1752
1768
|
]
|