@gpichot/spectacle-deck 1.8.0 → 1.10.1
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/SkipStepsShortcut.d.ts +5 -0
- package/index.cjs +99 -58
- package/index.mjs +54 -13
- package/layouts/FullImageLayout.d.ts +2 -1
- package/package.json +9 -1
package/index.cjs
CHANGED
|
@@ -61,9 +61,9 @@ __export(src_exports, {
|
|
|
61
61
|
noneTransition: () => noneTransition,
|
|
62
62
|
resolveTransition: () => resolveTransition
|
|
63
63
|
});
|
|
64
|
-
var
|
|
65
|
-
var
|
|
66
|
-
var
|
|
64
|
+
var import_react17 = require("@mdx-js/react");
|
|
65
|
+
var import_react18 = __toESM(require("react"));
|
|
66
|
+
var import_spectacle12 = require("spectacle");
|
|
67
67
|
var import_styled_components20 = require("styled-components");
|
|
68
68
|
|
|
69
69
|
// src/colors.ts
|
|
@@ -1080,7 +1080,7 @@ var Overlay = import_styled_components6.default.div`
|
|
|
1080
1080
|
display: flex;
|
|
1081
1081
|
flex-flow: column nowrap;
|
|
1082
1082
|
justify-content: flex-end;
|
|
1083
|
-
padding: 4rem 6rem;
|
|
1083
|
+
padding: ${(props) => props.$padding || "4rem 6rem"};
|
|
1084
1084
|
z-index: 1;
|
|
1085
1085
|
|
|
1086
1086
|
h1,
|
|
@@ -1096,10 +1096,11 @@ function FullImageLayout({
|
|
|
1096
1096
|
children,
|
|
1097
1097
|
image,
|
|
1098
1098
|
position = "bottom",
|
|
1099
|
-
dim = 0
|
|
1099
|
+
dim = 0,
|
|
1100
1100
|
fit = "cover",
|
|
1101
1101
|
backgroundColor,
|
|
1102
|
-
margin
|
|
1102
|
+
margin,
|
|
1103
|
+
padding
|
|
1103
1104
|
}) {
|
|
1104
1105
|
const [images, rest] = getMatchingMdxType(children, "Image");
|
|
1105
1106
|
const firstImage = images[0];
|
|
@@ -1132,7 +1133,7 @@ function FullImageLayout({
|
|
|
1132
1133
|
}
|
|
1133
1134
|
}
|
|
1134
1135
|
),
|
|
1135
|
-
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
1136
|
+
dim > 0 && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
1136
1137
|
"div",
|
|
1137
1138
|
{
|
|
1138
1139
|
style: {
|
|
@@ -1142,7 +1143,14 @@ function FullImageLayout({
|
|
|
1142
1143
|
}
|
|
1143
1144
|
}
|
|
1144
1145
|
),
|
|
1145
|
-
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
1146
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
1147
|
+
Overlay,
|
|
1148
|
+
{
|
|
1149
|
+
$padding: padding,
|
|
1150
|
+
style: { justifyContent: justifyMap[position] },
|
|
1151
|
+
children: firstImage ? rest : children
|
|
1152
|
+
}
|
|
1153
|
+
)
|
|
1146
1154
|
]
|
|
1147
1155
|
}
|
|
1148
1156
|
);
|
|
@@ -1549,6 +1557,36 @@ var layouts_default = {
|
|
|
1549
1557
|
bigNumber: BigNumberLayout
|
|
1550
1558
|
};
|
|
1551
1559
|
|
|
1560
|
+
// src/SkipStepsShortcut.tsx
|
|
1561
|
+
var import_react9 = require("react");
|
|
1562
|
+
var import_spectacle6 = require("spectacle");
|
|
1563
|
+
function SkipStepsShortcut() {
|
|
1564
|
+
const {
|
|
1565
|
+
skipTo,
|
|
1566
|
+
activeView: { slideIndex },
|
|
1567
|
+
slideCount
|
|
1568
|
+
} = (0, import_react9.useContext)(import_spectacle6.DeckContext);
|
|
1569
|
+
(0, import_spectacle6.useMousetrap)(
|
|
1570
|
+
{
|
|
1571
|
+
"shift+right": () => {
|
|
1572
|
+
if (slideIndex < slideCount - 1) {
|
|
1573
|
+
skipTo({ slideIndex: slideIndex + 1, stepIndex: 0 });
|
|
1574
|
+
}
|
|
1575
|
+
},
|
|
1576
|
+
"shift+left": () => {
|
|
1577
|
+
if (slideIndex > 0) {
|
|
1578
|
+
skipTo({
|
|
1579
|
+
slideIndex: slideIndex - 1,
|
|
1580
|
+
stepIndex: null
|
|
1581
|
+
});
|
|
1582
|
+
}
|
|
1583
|
+
}
|
|
1584
|
+
},
|
|
1585
|
+
[slideIndex, slideCount, skipTo]
|
|
1586
|
+
);
|
|
1587
|
+
return null;
|
|
1588
|
+
}
|
|
1589
|
+
|
|
1552
1590
|
// src/SlideWrapper.tsx
|
|
1553
1591
|
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
1554
1592
|
function SlideWrapper({
|
|
@@ -1570,7 +1608,7 @@ function SlideWrapper({
|
|
|
1570
1608
|
}
|
|
1571
1609
|
|
|
1572
1610
|
// src/template.tsx
|
|
1573
|
-
var
|
|
1611
|
+
var import_spectacle7 = require("spectacle");
|
|
1574
1612
|
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
1575
1613
|
var template = ({
|
|
1576
1614
|
slideNumber,
|
|
@@ -1578,7 +1616,7 @@ var template = ({
|
|
|
1578
1616
|
}) => {
|
|
1579
1617
|
const percentage = slideNumber / numberOfSlides * 100;
|
|
1580
1618
|
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { style: { position: "absolute", bottom: 0, left: 0, right: 0 }, children: [
|
|
1581
|
-
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1619
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_spectacle7.Box, { padding: "0 0 0.5em 0.7em", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_spectacle7.FullScreen, {}) }),
|
|
1582
1620
|
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { style: { width: "100%", height: "4px", background: "#ffffff11" }, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1583
1621
|
"div",
|
|
1584
1622
|
{
|
|
@@ -1622,7 +1660,7 @@ var theme_default = {
|
|
|
1622
1660
|
};
|
|
1623
1661
|
|
|
1624
1662
|
// src/transitions.ts
|
|
1625
|
-
var
|
|
1663
|
+
var import_spectacle8 = require("spectacle");
|
|
1626
1664
|
var dropTransition = {
|
|
1627
1665
|
from: { transform: "translateY(-100%)", opacity: 0 },
|
|
1628
1666
|
enter: { transform: "translateY(0%)", opacity: 1 },
|
|
@@ -1634,8 +1672,8 @@ var noneTransition = {
|
|
|
1634
1672
|
leave: { opacity: 0 }
|
|
1635
1673
|
};
|
|
1636
1674
|
var transitionMap = {
|
|
1637
|
-
fade:
|
|
1638
|
-
slide:
|
|
1675
|
+
fade: import_spectacle8.fadeTransition,
|
|
1676
|
+
slide: import_spectacle8.slideTransition,
|
|
1639
1677
|
drop: dropTransition,
|
|
1640
1678
|
none: noneTransition
|
|
1641
1679
|
};
|
|
@@ -1651,11 +1689,11 @@ __reExport(src_exports, require("spectacle"));
|
|
|
1651
1689
|
var import_web = require("@react-spring/web");
|
|
1652
1690
|
|
|
1653
1691
|
// src/components/animations/useInView.ts
|
|
1654
|
-
var
|
|
1692
|
+
var import_react10 = __toESM(require("react"));
|
|
1655
1693
|
function useInView() {
|
|
1656
|
-
const ref =
|
|
1657
|
-
const [isInView, setIsInView] =
|
|
1658
|
-
|
|
1694
|
+
const ref = import_react10.default.useRef(null);
|
|
1695
|
+
const [isInView, setIsInView] = import_react10.default.useState(false);
|
|
1696
|
+
import_react10.default.useEffect(() => {
|
|
1659
1697
|
const el = ref.current;
|
|
1660
1698
|
if (!el) return;
|
|
1661
1699
|
const observer = new IntersectionObserver(
|
|
@@ -1853,7 +1891,7 @@ function Spotlight({
|
|
|
1853
1891
|
|
|
1854
1892
|
// src/components/animations/StaggerChildren.tsx
|
|
1855
1893
|
var import_web5 = require("@react-spring/web");
|
|
1856
|
-
var
|
|
1894
|
+
var import_react11 = __toESM(require("react"));
|
|
1857
1895
|
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
1858
1896
|
function StaggerChildren({
|
|
1859
1897
|
children,
|
|
@@ -1864,7 +1902,7 @@ function StaggerChildren({
|
|
|
1864
1902
|
distance = 20
|
|
1865
1903
|
}) {
|
|
1866
1904
|
const [ref, isInView] = useInView();
|
|
1867
|
-
const items =
|
|
1905
|
+
const items = import_react11.default.Children.toArray(children);
|
|
1868
1906
|
const translateMap = {
|
|
1869
1907
|
up: `translateY(${distance}px)`,
|
|
1870
1908
|
down: `translateY(-${distance}px)`,
|
|
@@ -1885,14 +1923,14 @@ function StaggerChildren({
|
|
|
1885
1923
|
}
|
|
1886
1924
|
|
|
1887
1925
|
// src/components/animations/TypeWriter.tsx
|
|
1888
|
-
var
|
|
1926
|
+
var import_react12 = __toESM(require("react"));
|
|
1889
1927
|
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
1890
1928
|
function extractText(node) {
|
|
1891
1929
|
if (typeof node === "string") return node;
|
|
1892
1930
|
if (typeof node === "number") return String(node);
|
|
1893
1931
|
if (!node) return "";
|
|
1894
1932
|
if (Array.isArray(node)) return node.map(extractText).join("");
|
|
1895
|
-
if (
|
|
1933
|
+
if (import_react12.default.isValidElement(node)) {
|
|
1896
1934
|
const props = node.props;
|
|
1897
1935
|
return extractText(props.children);
|
|
1898
1936
|
}
|
|
@@ -1906,9 +1944,9 @@ function TypeWriter({
|
|
|
1906
1944
|
}) {
|
|
1907
1945
|
const text = extractText(children);
|
|
1908
1946
|
const [ref, isInView] = useInView();
|
|
1909
|
-
const [displayed, setDisplayed] =
|
|
1910
|
-
const [done, setDone] =
|
|
1911
|
-
|
|
1947
|
+
const [displayed, setDisplayed] = import_react12.default.useState("");
|
|
1948
|
+
const [done, setDone] = import_react12.default.useState(false);
|
|
1949
|
+
import_react12.default.useEffect(() => {
|
|
1912
1950
|
if (!isInView) return;
|
|
1913
1951
|
let index = 0;
|
|
1914
1952
|
setDisplayed("");
|
|
@@ -2007,7 +2045,7 @@ function DocItem({ label, link }) {
|
|
|
2007
2045
|
}
|
|
2008
2046
|
|
|
2009
2047
|
// src/components/FilePane.tsx
|
|
2010
|
-
var
|
|
2048
|
+
var import_react13 = __toESM(require("react"));
|
|
2011
2049
|
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
2012
2050
|
function FilePane({
|
|
2013
2051
|
name,
|
|
@@ -2016,7 +2054,7 @@ function FilePane({
|
|
|
2016
2054
|
minWidth,
|
|
2017
2055
|
...divProps
|
|
2018
2056
|
}) {
|
|
2019
|
-
const content =
|
|
2057
|
+
const content = import_react13.default.isValidElement(children) ? import_react13.default.cloneElement(children, {
|
|
2020
2058
|
// @ts-expect-error cloning
|
|
2021
2059
|
priority,
|
|
2022
2060
|
name
|
|
@@ -2030,8 +2068,8 @@ FilePane.mdxType = "FilePane";
|
|
|
2030
2068
|
|
|
2031
2069
|
// src/components/HorizontalList.tsx
|
|
2032
2070
|
var import_web6 = require("@react-spring/web");
|
|
2033
|
-
var
|
|
2034
|
-
var
|
|
2071
|
+
var import_react14 = __toESM(require("react"));
|
|
2072
|
+
var import_spectacle9 = require("spectacle");
|
|
2035
2073
|
var import_styled_components15 = __toESM(require("styled-components"));
|
|
2036
2074
|
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
2037
2075
|
var Container = import_styled_components15.default.div`
|
|
@@ -2042,18 +2080,18 @@ function HorizontalList({
|
|
|
2042
2080
|
children,
|
|
2043
2081
|
columns = 3
|
|
2044
2082
|
}) {
|
|
2045
|
-
const items =
|
|
2046
|
-
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
2083
|
+
const items = import_react14.default.Children.toArray(children);
|
|
2084
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_spectacle9.Stepper, { values: items, children: (_, step) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
2047
2085
|
Container,
|
|
2048
2086
|
{
|
|
2049
2087
|
style: {
|
|
2050
2088
|
gridTemplateColumns: `repeat(${columns}, 1fr)`
|
|
2051
2089
|
},
|
|
2052
2090
|
children: items.map((item, k) => {
|
|
2053
|
-
if (!
|
|
2091
|
+
if (!import_react14.default.isValidElement(item)) {
|
|
2054
2092
|
return item;
|
|
2055
2093
|
}
|
|
2056
|
-
return
|
|
2094
|
+
return import_react14.default.cloneElement(item, {
|
|
2057
2095
|
// @ts-expect-error cloning
|
|
2058
2096
|
position: k + 1,
|
|
2059
2097
|
isVisible: k <= step,
|
|
@@ -2191,14 +2229,14 @@ function IconBox({
|
|
|
2191
2229
|
|
|
2192
2230
|
// src/components/ItemsColumn.tsx
|
|
2193
2231
|
var import_web7 = require("@react-spring/web");
|
|
2194
|
-
var
|
|
2195
|
-
var
|
|
2232
|
+
var import_react15 = __toESM(require("react"));
|
|
2233
|
+
var import_spectacle10 = require("spectacle");
|
|
2196
2234
|
var import_styled_components17 = __toESM(require("styled-components"));
|
|
2197
2235
|
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
2198
2236
|
function ItemsColumn(divProps) {
|
|
2199
2237
|
const { style: style2, children, ...props } = divProps;
|
|
2200
|
-
const childrenArray =
|
|
2201
|
-
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
2238
|
+
const childrenArray = import_react15.default.Children.toArray(children);
|
|
2239
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_spectacle10.Stepper, { values: childrenArray, children: (_value, step) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
2202
2240
|
"div",
|
|
2203
2241
|
{
|
|
2204
2242
|
style: {
|
|
@@ -2213,7 +2251,7 @@ function ItemsColumn(divProps) {
|
|
|
2213
2251
|
...props,
|
|
2214
2252
|
children: childrenArray.map((child, index) => {
|
|
2215
2253
|
const isVisible = index <= step;
|
|
2216
|
-
if (!
|
|
2254
|
+
if (!import_react15.default.isValidElement(child)) {
|
|
2217
2255
|
return child;
|
|
2218
2256
|
}
|
|
2219
2257
|
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(ItemColumnWrapper, { isVisible, children: child }, index);
|
|
@@ -2239,8 +2277,8 @@ function ItemColumnWrapper({
|
|
|
2239
2277
|
|
|
2240
2278
|
// src/components/Timeline.tsx
|
|
2241
2279
|
var import_web8 = require("@react-spring/web");
|
|
2242
|
-
var
|
|
2243
|
-
var
|
|
2280
|
+
var import_react16 = __toESM(require("react"));
|
|
2281
|
+
var import_spectacle11 = require("spectacle");
|
|
2244
2282
|
var import_styled_components19 = __toESM(require("styled-components"));
|
|
2245
2283
|
|
|
2246
2284
|
// src/components/Timeline.styled.tsx
|
|
@@ -2314,13 +2352,13 @@ var style = {
|
|
|
2314
2352
|
};
|
|
2315
2353
|
function Timeline(props) {
|
|
2316
2354
|
const { activeIndex, ...rest } = props;
|
|
2317
|
-
const children =
|
|
2355
|
+
const children = import_react16.default.Children.toArray(rest.children);
|
|
2318
2356
|
if (activeIndex != null) {
|
|
2319
2357
|
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { ...rest, style: { ...style, ...rest.style }, children: children.map((child, index) => {
|
|
2320
|
-
if (!
|
|
2358
|
+
if (!import_react16.default.isValidElement(child)) {
|
|
2321
2359
|
return child;
|
|
2322
2360
|
}
|
|
2323
|
-
return
|
|
2361
|
+
return import_react16.default.cloneElement(child, {
|
|
2324
2362
|
// @ts-expect-error cloning
|
|
2325
2363
|
isPhantom: activeIndex < index,
|
|
2326
2364
|
isLast: activeIndex === index
|
|
@@ -2328,7 +2366,7 @@ function Timeline(props) {
|
|
|
2328
2366
|
}) });
|
|
2329
2367
|
}
|
|
2330
2368
|
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
2331
|
-
|
|
2369
|
+
import_spectacle11.Stepper,
|
|
2332
2370
|
{
|
|
2333
2371
|
...rest,
|
|
2334
2372
|
values: children,
|
|
@@ -2336,10 +2374,10 @@ function Timeline(props) {
|
|
|
2336
2374
|
inactiveStyle: style,
|
|
2337
2375
|
children: (_value, step) => {
|
|
2338
2376
|
return children.map((child, index) => {
|
|
2339
|
-
if (!
|
|
2377
|
+
if (!import_react16.default.isValidElement(child)) {
|
|
2340
2378
|
return child;
|
|
2341
2379
|
}
|
|
2342
|
-
return
|
|
2380
|
+
return import_react16.default.cloneElement(child, {
|
|
2343
2381
|
// @ts-expect-error cloning
|
|
2344
2382
|
isPhantom: step < index,
|
|
2345
2383
|
isLast: step === index
|
|
@@ -2435,10 +2473,10 @@ function Deck({
|
|
|
2435
2473
|
layouts: layouts2 = layouts_default,
|
|
2436
2474
|
transition
|
|
2437
2475
|
}) {
|
|
2438
|
-
|
|
2476
|
+
import_react18.default.useEffect(() => {
|
|
2439
2477
|
document.title = deck.metadata.title || "Untitled";
|
|
2440
2478
|
}, [deck.metadata.title]);
|
|
2441
|
-
const mergedTheme =
|
|
2479
|
+
const mergedTheme = import_react18.default.useMemo(() => {
|
|
2442
2480
|
const fonts = {
|
|
2443
2481
|
...theme_default.fonts,
|
|
2444
2482
|
...theme.themeTokens.fonts ?? {}
|
|
@@ -2449,7 +2487,7 @@ function Deck({
|
|
|
2449
2487
|
fonts
|
|
2450
2488
|
};
|
|
2451
2489
|
}, [theme]);
|
|
2452
|
-
const GlobalStyle =
|
|
2490
|
+
const GlobalStyle = import_react18.default.useMemo(() => {
|
|
2453
2491
|
const cssVariables = createCssVariables(theme.themeTokens.colors);
|
|
2454
2492
|
return import_styled_components20.createGlobalStyle`
|
|
2455
2493
|
:root {
|
|
@@ -2458,21 +2496,24 @@ function Deck({
|
|
|
2458
2496
|
}
|
|
2459
2497
|
`;
|
|
2460
2498
|
}, [theme, mergedTheme]);
|
|
2461
|
-
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
2499
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react18.default.StrictMode, { children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(PestacleProvider, { layouts: layouts2, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_react17.MDXProvider, { components: componentsMap2, children: [
|
|
2462
2500
|
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(GlobalStyle, {}),
|
|
2463
|
-
/* @__PURE__ */ (0, import_jsx_runtime33.
|
|
2464
|
-
|
|
2501
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
|
|
2502
|
+
import_spectacle12.Deck,
|
|
2465
2503
|
{
|
|
2466
2504
|
theme: mergedTheme,
|
|
2467
2505
|
template,
|
|
2468
2506
|
transition: resolveTransition(transition),
|
|
2469
|
-
children:
|
|
2470
|
-
|
|
2471
|
-
|
|
2472
|
-
|
|
2473
|
-
|
|
2474
|
-
|
|
2475
|
-
|
|
2507
|
+
children: [
|
|
2508
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(SkipStepsShortcut, {}),
|
|
2509
|
+
deck.slides.map((slide, i) => {
|
|
2510
|
+
var _a;
|
|
2511
|
+
const Component = slide.slideComponent;
|
|
2512
|
+
const slideTransitionName = (_a = slide.metadata) == null ? void 0 : _a.transition;
|
|
2513
|
+
const slideTransition2 = resolveTransition(slideTransitionName);
|
|
2514
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_spectacle12.Slide, { transition: slideTransition2, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Component, {}) }, i);
|
|
2515
|
+
})
|
|
2516
|
+
]
|
|
2476
2517
|
}
|
|
2477
2518
|
)
|
|
2478
2519
|
] }) }) });
|
package/index.mjs
CHANGED
|
@@ -1022,7 +1022,7 @@ var Overlay = styled6.div`
|
|
|
1022
1022
|
display: flex;
|
|
1023
1023
|
flex-flow: column nowrap;
|
|
1024
1024
|
justify-content: flex-end;
|
|
1025
|
-
padding: 4rem 6rem;
|
|
1025
|
+
padding: ${(props) => props.$padding || "4rem 6rem"};
|
|
1026
1026
|
z-index: 1;
|
|
1027
1027
|
|
|
1028
1028
|
h1,
|
|
@@ -1038,10 +1038,11 @@ function FullImageLayout({
|
|
|
1038
1038
|
children,
|
|
1039
1039
|
image,
|
|
1040
1040
|
position = "bottom",
|
|
1041
|
-
dim = 0
|
|
1041
|
+
dim = 0,
|
|
1042
1042
|
fit = "cover",
|
|
1043
1043
|
backgroundColor,
|
|
1044
|
-
margin
|
|
1044
|
+
margin,
|
|
1045
|
+
padding
|
|
1045
1046
|
}) {
|
|
1046
1047
|
const [images, rest] = getMatchingMdxType(children, "Image");
|
|
1047
1048
|
const firstImage = images[0];
|
|
@@ -1074,7 +1075,7 @@ function FullImageLayout({
|
|
|
1074
1075
|
}
|
|
1075
1076
|
}
|
|
1076
1077
|
),
|
|
1077
|
-
/* @__PURE__ */ jsx10(
|
|
1078
|
+
dim > 0 && /* @__PURE__ */ jsx10(
|
|
1078
1079
|
"div",
|
|
1079
1080
|
{
|
|
1080
1081
|
style: {
|
|
@@ -1084,7 +1085,14 @@ function FullImageLayout({
|
|
|
1084
1085
|
}
|
|
1085
1086
|
}
|
|
1086
1087
|
),
|
|
1087
|
-
/* @__PURE__ */ jsx10(
|
|
1088
|
+
/* @__PURE__ */ jsx10(
|
|
1089
|
+
Overlay,
|
|
1090
|
+
{
|
|
1091
|
+
$padding: padding,
|
|
1092
|
+
style: { justifyContent: justifyMap[position] },
|
|
1093
|
+
children: firstImage ? rest : children
|
|
1094
|
+
}
|
|
1095
|
+
)
|
|
1088
1096
|
]
|
|
1089
1097
|
}
|
|
1090
1098
|
);
|
|
@@ -1491,6 +1499,36 @@ var layouts_default = {
|
|
|
1491
1499
|
bigNumber: BigNumberLayout
|
|
1492
1500
|
};
|
|
1493
1501
|
|
|
1502
|
+
// src/SkipStepsShortcut.tsx
|
|
1503
|
+
import { useContext as useContext2 } from "react";
|
|
1504
|
+
import { DeckContext as DeckContext2, useMousetrap } from "spectacle";
|
|
1505
|
+
function SkipStepsShortcut() {
|
|
1506
|
+
const {
|
|
1507
|
+
skipTo,
|
|
1508
|
+
activeView: { slideIndex },
|
|
1509
|
+
slideCount
|
|
1510
|
+
} = useContext2(DeckContext2);
|
|
1511
|
+
useMousetrap(
|
|
1512
|
+
{
|
|
1513
|
+
"shift+right": () => {
|
|
1514
|
+
if (slideIndex < slideCount - 1) {
|
|
1515
|
+
skipTo({ slideIndex: slideIndex + 1, stepIndex: 0 });
|
|
1516
|
+
}
|
|
1517
|
+
},
|
|
1518
|
+
"shift+left": () => {
|
|
1519
|
+
if (slideIndex > 0) {
|
|
1520
|
+
skipTo({
|
|
1521
|
+
slideIndex: slideIndex - 1,
|
|
1522
|
+
stepIndex: null
|
|
1523
|
+
});
|
|
1524
|
+
}
|
|
1525
|
+
}
|
|
1526
|
+
},
|
|
1527
|
+
[slideIndex, slideCount, skipTo]
|
|
1528
|
+
);
|
|
1529
|
+
return null;
|
|
1530
|
+
}
|
|
1531
|
+
|
|
1494
1532
|
// src/SlideWrapper.tsx
|
|
1495
1533
|
import { Fragment, jsx as jsx18 } from "react/jsx-runtime";
|
|
1496
1534
|
function SlideWrapper({
|
|
@@ -2405,19 +2443,22 @@ function Deck({
|
|
|
2405
2443
|
}, [theme, mergedTheme]);
|
|
2406
2444
|
return /* @__PURE__ */ jsx33(React16.StrictMode, { children: /* @__PURE__ */ jsx33(PestacleProvider, { layouts: layouts2, children: /* @__PURE__ */ jsxs22(MDXProvider, { components: componentsMap2, children: [
|
|
2407
2445
|
/* @__PURE__ */ jsx33(GlobalStyle, {}),
|
|
2408
|
-
/* @__PURE__ */
|
|
2446
|
+
/* @__PURE__ */ jsxs22(
|
|
2409
2447
|
SpectacleDeck,
|
|
2410
2448
|
{
|
|
2411
2449
|
theme: mergedTheme,
|
|
2412
2450
|
template,
|
|
2413
2451
|
transition: resolveTransition(transition),
|
|
2414
|
-
children:
|
|
2415
|
-
|
|
2416
|
-
|
|
2417
|
-
|
|
2418
|
-
|
|
2419
|
-
|
|
2420
|
-
|
|
2452
|
+
children: [
|
|
2453
|
+
/* @__PURE__ */ jsx33(SkipStepsShortcut, {}),
|
|
2454
|
+
deck.slides.map((slide, i) => {
|
|
2455
|
+
var _a;
|
|
2456
|
+
const Component = slide.slideComponent;
|
|
2457
|
+
const slideTransitionName = (_a = slide.metadata) == null ? void 0 : _a.transition;
|
|
2458
|
+
const slideTransition2 = resolveTransition(slideTransitionName);
|
|
2459
|
+
return /* @__PURE__ */ jsx33(Slide, { transition: slideTransition2, children: /* @__PURE__ */ jsx33(Component, {}) }, i);
|
|
2460
|
+
})
|
|
2461
|
+
]
|
|
2421
2462
|
}
|
|
2422
2463
|
)
|
|
2423
2464
|
] }) }) });
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
export declare function FullImageLayout({ children, image, position, dim, fit, backgroundColor, margin, }: {
|
|
2
|
+
export declare function FullImageLayout({ children, image, position, dim, fit, backgroundColor, margin, padding, }: {
|
|
3
3
|
children: React.ReactNode;
|
|
4
4
|
image?: string;
|
|
5
5
|
position?: "center" | "bottom" | "top";
|
|
@@ -7,4 +7,5 @@ export declare function FullImageLayout({ children, image, position, dim, fit, b
|
|
|
7
7
|
fit?: "cover" | "contain";
|
|
8
8
|
backgroundColor?: string;
|
|
9
9
|
margin?: string;
|
|
10
|
+
padding?: string;
|
|
10
11
|
}): import("react/jsx-runtime").JSX.Element;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gpichot/spectacle-deck",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.10.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.cjs",
|
|
@@ -16,6 +16,14 @@
|
|
|
16
16
|
"keywords": [
|
|
17
17
|
"spectacle"
|
|
18
18
|
],
|
|
19
|
+
"repository": {
|
|
20
|
+
"type": "git",
|
|
21
|
+
"url": "git+https://github.com/gpichot/pestacle.git",
|
|
22
|
+
"directory": "packages/spectacle-deck"
|
|
23
|
+
},
|
|
24
|
+
"publishConfig": {
|
|
25
|
+
"access": "public"
|
|
26
|
+
},
|
|
19
27
|
"dependencies": {
|
|
20
28
|
"@fontsource/bitter": "^5.2.10",
|
|
21
29
|
"@mdx-js/react": "^3.1.1",
|