@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.
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Registers Shift+ArrowRight / Shift+ArrowLeft keyboard shortcuts
3
+ * to skip all steps within a slide and jump directly to the next/previous slide.
4
+ */
5
+ export declare function SkipStepsShortcut(): any;
package/index.cjs CHANGED
@@ -61,9 +61,9 @@ __export(src_exports, {
61
61
  noneTransition: () => noneTransition,
62
62
  resolveTransition: () => resolveTransition
63
63
  });
64
- var import_react16 = require("@mdx-js/react");
65
- var import_react17 = __toESM(require("react"));
66
- var import_spectacle11 = require("spectacle");
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.4,
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)(Overlay, { style: { justifyContent: justifyMap[position] }, children: firstImage ? rest : children })
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 import_spectacle6 = require("spectacle");
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)(import_spectacle6.Box, { padding: "0 0 0.5em 0.7em", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_spectacle6.FullScreen, {}) }),
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 import_spectacle7 = require("spectacle");
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: import_spectacle7.fadeTransition,
1638
- slide: import_spectacle7.slideTransition,
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 import_react9 = __toESM(require("react"));
1692
+ var import_react10 = __toESM(require("react"));
1655
1693
  function useInView() {
1656
- const ref = import_react9.default.useRef(null);
1657
- const [isInView, setIsInView] = import_react9.default.useState(false);
1658
- import_react9.default.useEffect(() => {
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 import_react10 = __toESM(require("react"));
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 = import_react10.default.Children.toArray(children);
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 import_react11 = __toESM(require("react"));
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 (import_react11.default.isValidElement(node)) {
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] = import_react11.default.useState("");
1910
- const [done, setDone] = import_react11.default.useState(false);
1911
- import_react11.default.useEffect(() => {
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 import_react12 = __toESM(require("react"));
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 = import_react12.default.isValidElement(children) ? import_react12.default.cloneElement(children, {
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 import_react13 = __toESM(require("react"));
2034
- var import_spectacle8 = require("spectacle");
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 = import_react13.default.Children.toArray(children);
2046
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_spectacle8.Stepper, { values: items, children: (_, step) => /* @__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 (!import_react13.default.isValidElement(item)) {
2091
+ if (!import_react14.default.isValidElement(item)) {
2054
2092
  return item;
2055
2093
  }
2056
- return import_react13.default.cloneElement(item, {
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 import_react14 = __toESM(require("react"));
2195
- var import_spectacle9 = require("spectacle");
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 = import_react14.default.Children.toArray(children);
2201
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_spectacle9.Stepper, { values: childrenArray, children: (_value, step) => /* @__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 (!import_react14.default.isValidElement(child)) {
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 import_react15 = __toESM(require("react"));
2243
- var import_spectacle10 = require("spectacle");
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 = import_react15.default.Children.toArray(rest.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 (!import_react15.default.isValidElement(child)) {
2358
+ if (!import_react16.default.isValidElement(child)) {
2321
2359
  return child;
2322
2360
  }
2323
- return import_react15.default.cloneElement(child, {
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
- import_spectacle10.Stepper,
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 (!import_react15.default.isValidElement(child)) {
2377
+ if (!import_react16.default.isValidElement(child)) {
2340
2378
  return child;
2341
2379
  }
2342
- return import_react15.default.cloneElement(child, {
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
- import_react17.default.useEffect(() => {
2476
+ import_react18.default.useEffect(() => {
2439
2477
  document.title = deck.metadata.title || "Untitled";
2440
2478
  }, [deck.metadata.title]);
2441
- const mergedTheme = import_react17.default.useMemo(() => {
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 = import_react17.default.useMemo(() => {
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)(import_react17.default.StrictMode, { children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(PestacleProvider, { layouts: layouts2, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_react16.MDXProvider, { components: componentsMap2, children: [
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.jsx)(
2464
- import_spectacle11.Deck,
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: deck.slides.map((slide, i) => {
2470
- var _a;
2471
- const Component = slide.slideComponent;
2472
- const slideTransitionName = (_a = slide.metadata) == null ? void 0 : _a.transition;
2473
- const slideTransition2 = resolveTransition(slideTransitionName);
2474
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_spectacle11.Slide, { transition: slideTransition2, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Component, {}) }, i);
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.4,
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(Overlay, { style: { justifyContent: justifyMap[position] }, children: firstImage ? rest : children })
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__ */ jsx33(
2446
+ /* @__PURE__ */ jsxs22(
2409
2447
  SpectacleDeck,
2410
2448
  {
2411
2449
  theme: mergedTheme,
2412
2450
  template,
2413
2451
  transition: resolveTransition(transition),
2414
- children: deck.slides.map((slide, i) => {
2415
- var _a;
2416
- const Component = slide.slideComponent;
2417
- const slideTransitionName = (_a = slide.metadata) == null ? void 0 : _a.transition;
2418
- const slideTransition2 = resolveTransition(slideTransitionName);
2419
- return /* @__PURE__ */ jsx33(Slide, { transition: slideTransition2, children: /* @__PURE__ */ jsx33(Component, {}) }, i);
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.8.0",
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",