@gpichot/spectacle-deck 1.1.7 → 1.2.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.
Files changed (80) hide show
  1. package/.turbo/turbo-build.log +4 -0
  2. package/.turbo/turbo-dev.log +4 -0
  3. package/dist/SlideWrapper.d.ts +7 -0
  4. package/dist/colors.d.ts +14 -0
  5. package/dist/components/QRCode.d.ts +6 -0
  6. package/dist/components/Timeline.styled.d.ts +7 -0
  7. package/{components → dist/components}/map.d.ts +2 -0
  8. package/dist/components/styled.d.ts +12 -0
  9. package/dist/context.d.ts +11 -0
  10. package/{index.cjs → dist/index.cjs} +321 -200
  11. package/{index.d.ts → dist/index.d.ts} +30 -7
  12. package/{index.mjs → dist/index.mjs} +312 -191
  13. package/{layouts → dist/layouts}/BaseLayout.d.ts +1 -1
  14. package/dist/layouts/SectionLayout.d.ts +2 -0
  15. package/{layouts → dist/layouts}/index.d.ts +1 -1
  16. package/dist/layouts/styled.d.ts +2 -0
  17. package/package.json +29 -23
  18. package/publish.sh +7 -0
  19. package/scripts/bundle.ts +84 -0
  20. package/src/SlideWrapper.tsx +25 -0
  21. package/src/colors.ts +42 -0
  22. package/src/components/CodeStepper/CodeStepper.tsx +228 -0
  23. package/src/components/CodeStepper/code-directives.test.ts +58 -0
  24. package/src/components/CodeStepper/code-directives.ts +129 -0
  25. package/src/components/DocumentationItem.tsx +85 -0
  26. package/src/components/FilePane.tsx +18 -0
  27. package/src/components/HorizontalList.tsx +141 -0
  28. package/src/components/IconBox.tsx +31 -0
  29. package/src/components/Image.tsx +39 -0
  30. package/src/components/ItemsColumn.tsx +60 -0
  31. package/src/components/QRCode.tsx +55 -0
  32. package/src/components/Timeline.styled.tsx +24 -0
  33. package/src/components/Timeline.tsx +159 -0
  34. package/src/components/map.tsx +128 -0
  35. package/src/components/styled.tsx +73 -0
  36. package/src/context.tsx +33 -0
  37. package/src/front.png +0 -0
  38. package/src/index.tsx +127 -0
  39. package/src/layouts/BaseLayout.tsx +52 -0
  40. package/src/layouts/CenteredLayout.tsx +40 -0
  41. package/src/layouts/Default3Layout.tsx +159 -0
  42. package/src/layouts/MainSectionLayout.tsx +31 -0
  43. package/src/layouts/QuoteLayout.tsx +107 -0
  44. package/src/layouts/SectionLayout.tsx +14 -0
  45. package/src/layouts/SideCodeLayout.tsx +44 -0
  46. package/src/layouts/SideImageLayout.tsx +82 -0
  47. package/src/layouts/SideLayout.tsx +31 -0
  48. package/src/layouts/columns.tsx +56 -0
  49. package/src/layouts/index.tsx +19 -0
  50. package/src/layouts/styled.ts +7 -0
  51. package/src/layouts/utils.ts +66 -0
  52. package/src/node.d.ts +5 -0
  53. package/src/style.d.ts +10 -0
  54. package/src/template.tsx +25 -0
  55. package/src/theme.ts +28 -0
  56. package/tsconfig.json +29 -0
  57. package/components/Timeline.styled.d.ts +0 -7
  58. package/components/styled.d.ts +0 -12
  59. package/layouts/SectionLayout.d.ts +0 -2
  60. package/layouts/styled.d.ts +0 -2
  61. /package/{components → dist/components}/CodeStepper/CodeStepper.d.ts +0 -0
  62. /package/{components → dist/components}/CodeStepper/code-directives.d.ts +0 -0
  63. /package/{components → dist/components}/DocumentationItem.d.ts +0 -0
  64. /package/{components → dist/components}/FilePane.d.ts +0 -0
  65. /package/{components → dist/components}/HorizontalList.d.ts +0 -0
  66. /package/{components → dist/components}/IconBox.d.ts +0 -0
  67. /package/{components → dist/components}/Image.d.ts +0 -0
  68. /package/{components → dist/components}/ItemsColumn.d.ts +0 -0
  69. /package/{components → dist/components}/Timeline.d.ts +0 -0
  70. /package/{layouts → dist/layouts}/CenteredLayout.d.ts +0 -0
  71. /package/{layouts → dist/layouts}/Default3Layout.d.ts +0 -0
  72. /package/{layouts → dist/layouts}/MainSectionLayout.d.ts +0 -0
  73. /package/{layouts → dist/layouts}/QuoteLayout.d.ts +0 -0
  74. /package/{layouts → dist/layouts}/SideCodeLayout.d.ts +0 -0
  75. /package/{layouts → dist/layouts}/SideImageLayout.d.ts +0 -0
  76. /package/{layouts → dist/layouts}/SideLayout.d.ts +0 -0
  77. /package/{layouts → dist/layouts}/columns.d.ts +0 -0
  78. /package/{layouts → dist/layouts}/utils.d.ts +0 -0
  79. /package/{template.d.ts → dist/template.d.ts} +0 -0
  80. /package/{theme.d.ts → dist/theme.d.ts} +0 -0
@@ -42,17 +42,17 @@ __export(src_exports, {
42
42
  Image: () => Image,
43
43
  Information: () => Information,
44
44
  ItemsColumn: () => ItemsColumn,
45
- Layout: () => Layout,
46
45
  PassThrough: () => PassThrough,
47
46
  Side: () => Side,
48
47
  Success: () => Success,
49
48
  Timeline: () => Timeline,
50
49
  TimelineItem: () => TimelineItem,
51
- Warning: () => Warning
50
+ Warning: () => Warning,
51
+ layouts: () => layouts
52
52
  });
53
- var import_react21 = __toESM(require("react"));
54
- var import_react22 = require("@mdx-js/react");
55
- var import_spectacle9 = require("spectacle");
53
+ var import_react24 = __toESM(require("react"));
54
+ var import_react25 = require("@mdx-js/react");
55
+ var import_spectacle10 = require("spectacle");
56
56
 
57
57
  // src/layouts/CenteredLayout.tsx
58
58
  var import_react2 = __toESM(require("react"));
@@ -67,11 +67,9 @@ var Margins = {
67
67
  };
68
68
  function getHeading(children) {
69
69
  const allChild = import_react.default.Children.toArray(children);
70
- if (allChild.length === 0)
71
- return [null, allChild];
70
+ if (allChild.length === 0) return [null, allChild];
72
71
  const [candidate, ...rest] = allChild;
73
- if (!import_react.default.isValidElement(candidate))
74
- return [null, allChild];
72
+ if (!import_react.default.isValidElement(candidate)) return [null, allChild];
75
73
  if (["h2", "h3"].includes(candidate.props.originalType)) {
76
74
  return [candidate, rest];
77
75
  }
@@ -79,15 +77,12 @@ function getHeading(children) {
79
77
  }
80
78
  function getCode(children) {
81
79
  const allChild = import_react.default.Children.toArray(children);
82
- if (allChild.length === 0)
83
- return [null, allChild];
80
+ if (allChild.length === 0) return [null, allChild];
84
81
  const index = allChild.findIndex((child) => {
85
- if (!import_react.default.isValidElement(child))
86
- return false;
82
+ if (!import_react.default.isValidElement(child)) return false;
87
83
  return child.props.originalType === "pre";
88
84
  });
89
- if (index === -1)
90
- return [null, allChild];
85
+ if (index === -1) return [null, allChild];
91
86
  const candidate = allChild[index];
92
87
  const rest = allChild.filter((_, i) => i !== index);
93
88
  return [candidate, rest];
@@ -95,14 +90,10 @@ function getCode(children) {
95
90
  function getMatchingMdxType(children, mdxType) {
96
91
  const allChild = import_react.default.Children.toArray(children);
97
92
  const matchFn = (child) => {
98
- if (!import_react.default.isValidElement(child))
99
- return false;
100
- if (typeof child.type !== "function")
101
- return false;
102
- if (child.type.name === mdxType)
103
- return true;
104
- if ("mdxType" in child.type === false)
105
- return false;
93
+ if (!import_react.default.isValidElement(child)) return false;
94
+ if (typeof child.type !== "function") return false;
95
+ if (child.type.name === mdxType) return true;
96
+ if ("mdxType" in child.type === false) return false;
106
97
  return child.type.mdxType === mdxType;
107
98
  };
108
99
  const matches = allChild.filter(matchFn);
@@ -111,11 +102,9 @@ function getMatchingMdxType(children, mdxType) {
111
102
  }
112
103
  function getCodeChildren(children) {
113
104
  const [code, rest] = getCode(children);
114
- if (code)
115
- return [code, rest];
105
+ if (code) return [code, rest];
116
106
  const [codeStepper, rest2] = getMatchingMdxType(children, "CodeStepper");
117
- if (codeStepper.length > 0)
118
- return [codeStepper, rest2];
107
+ if (codeStepper.length > 0) return [codeStepper, rest2];
119
108
  const [codes, rest3] = getMatchingMdxType(children, "FilePane");
120
109
  return [codes, rest3];
121
110
  }
@@ -526,7 +515,7 @@ var DivWithHeading = import_styled_components5.default.div`
526
515
  margin-top: 0;
527
516
  }
528
517
  h2 strong {
529
- color: #f49676;
518
+ color: var(--color-secondary);
530
519
  font-weight: 400;
531
520
  }
532
521
  `;
@@ -668,7 +657,7 @@ var DivWithHeading2 = import_styled_components8.default.div`
668
657
  margin-top: 0;
669
658
  }
670
659
  h2 strong {
671
- color: #f49676;
660
+ color: var(--color-secondary);
672
661
  font-weight: 400;
673
662
  }
674
663
  `;
@@ -775,9 +764,12 @@ var import__3 = require("@fontsource/bitter/500.css");
775
764
  var import__4 = require("@fontsource/bitter/700.css");
776
765
  var theme_default = {
777
766
  colors: {
778
- primary: "white",
779
- secondary: "#F49676",
780
- tertiary: "#042F3B"
767
+ //primary: "white",
768
+ primary: "rgb(43,19,90)",
769
+ secondary: "rgb(86,212,248)",
770
+ // secondary: "#F49676",
771
+ // tertiary: "#042F3B",
772
+ tertiary: "rgb(43,19,90)"
781
773
  },
782
774
  fonts: {
783
775
  header: 'Bitter, "Helvetica Neue", Helvetica, Arial, sans-serif',
@@ -812,8 +804,8 @@ var template = ({ slideNumber, numberOfSlides }) => {
812
804
  };
813
805
 
814
806
  // src/components/map.tsx
815
- var import_react14 = __toESM(require("react"));
816
- var import_spectacle5 = require("spectacle");
807
+ var import_react15 = __toESM(require("react"));
808
+ var import_spectacle6 = require("spectacle");
817
809
 
818
810
  // src/components/styled.tsx
819
811
  var import_react12 = __toESM(require("react"));
@@ -827,7 +819,7 @@ var StyledImage = (0, import_styled_components9.default)(import_spectacle3.Image
827
819
  var Image2 = (props) => /* @__PURE__ */ import_react12.default.createElement(import_spectacle3.FlexBox, { margin: "0 0", padding: "0 0" }, /* @__PURE__ */ import_react12.default.createElement(StyledImage, { ...props }));
828
820
  var CustomHeading = (0, import_styled_components9.default)(import_spectacle3.Heading)`
829
821
  strong {
830
- color: #f49676;
822
+ color: var(--color-secondary);
831
823
  font-weight: 500;
832
824
  }
833
825
  `;
@@ -863,7 +855,7 @@ var HeadingThree = import_styled_components9.default.h3`
863
855
  margin-top: 0;
864
856
 
865
857
  strong {
866
- color: #f49676;
858
+ color: var(--color-secondary);
867
859
  font-weight: 500;
868
860
  }
869
861
  `;
@@ -882,30 +874,26 @@ function range(start, end) {
882
874
  }
883
875
  function parseRangeList(str) {
884
876
  return str.split(",").reduce((acc, line) => {
885
- if (!line.includes("-"))
886
- return [...acc, parseInt(line, 10)];
877
+ if (!line.includes("-")) return [...acc, parseInt(line, 10)];
887
878
  const [start, end] = line.split("-").map(Number);
888
879
  return [...acc, ...range(start, end)];
889
880
  }, []);
890
881
  }
891
882
  function parseShowLines(directive) {
892
883
  const match = directive.match(/showLines\((.*)\)/);
893
- if (!match)
894
- return null;
884
+ if (!match) return null;
895
885
  const lines = parseRangeList(match[1]);
896
886
  return { showLines: lines };
897
887
  }
898
888
  function parseHighlight(directive) {
899
889
  const match = directive.match(/highlight\((.*)\)/);
900
- if (!match)
901
- return null;
890
+ if (!match) return null;
902
891
  const lines = parseRangeList(match[1]);
903
892
  return { highlight: lines };
904
893
  }
905
894
  function parseName(directive) {
906
895
  const match = directive.match(/name\("(.*)"\)/);
907
- if (!match)
908
- return null;
896
+ if (!match) return null;
909
897
  return { name: match[1] };
910
898
  }
911
899
  function parseStepDirective(directive) {
@@ -918,8 +906,7 @@ function parseStepDirective(directive) {
918
906
  }
919
907
  function combineStepDirectives(directives) {
920
908
  let hiddenLines = directives.reduce((acc, { showLines }) => {
921
- if (!showLines)
922
- return acc;
909
+ if (!showLines) return acc;
923
910
  return [...acc, ...showLines];
924
911
  }, []);
925
912
  return directives.map(({ highlight, showLines, name }) => {
@@ -951,11 +938,11 @@ var CodeContainer = import_styled_components10.default.div`
951
938
  &:before {
952
939
  content: " ";
953
940
  position: absolute;
954
- background-color: #f4967688;
941
+ background-color: rgba(var(--color-primary-rgb), 0.5);
955
942
  }
956
943
 
957
944
  &[data-step-active="true"]:before {
958
- background-color: #f49676;
945
+ background-color: var(--color-secondary);
959
946
  }
960
947
  }
961
948
  `;
@@ -1067,64 +1054,114 @@ function CodeStepper({
1067
1054
  alwaysVisible: !hasSteps,
1068
1055
  priority: priority ? priority + 1 : void 0
1069
1056
  },
1070
- (step, _, isActive) => /* @__PURE__ */ import_react13.default.createElement(
1071
- CodeWrapper,
1072
- {
1073
- name,
1074
- stepName: step == null ? void 0 : step.name,
1075
- hasName
1076
- },
1077
- /* @__PURE__ */ import_react13.default.createElement(
1078
- Highlighter,
1057
+ (step, _, isActive) => {
1058
+ console.log({ step, isActive });
1059
+ return /* @__PURE__ */ import_react13.default.createElement(
1060
+ CodeWrapper,
1079
1061
  {
1080
- language,
1081
- wrapLines: true,
1082
- showLineNumbers: true,
1083
- style: import_prism.gruvboxDark,
1084
- lineNumberStyle: (lineNumber) => {
1085
- const { highlight = [] } = step || {};
1086
- const isHighlighted = highlight.includes(lineNumber);
1087
- return {
1088
- fontWeight: isHighlighted ? "bold" : "normal"
1089
- };
1090
- },
1091
- lineProps: (lineNumber) => {
1092
- const { hiddenLines = [], highlight = [] } = step || {};
1093
- const isVisible = hasSteps && isActive ? !hiddenLines.includes(lineNumber) : isActive || !hasSteps;
1094
- const isHighlighted = highlight.includes(lineNumber);
1095
- const getOpacity = () => {
1096
- if (!isVisible)
1097
- return 0;
1098
- if (isHighlighted || !highlight.length)
1099
- return 1;
1100
- return 0.8;
1101
- };
1102
- return {
1103
- ...isHighlighted && {
1104
- "data-highlight-line": isHighlighted,
1105
- "data-step-active": isActive
1106
- },
1107
- style: {
1108
- opacity: getOpacity(),
1109
- transition: "all 0.3s ease",
1110
- display: "block",
1111
- width: "100%",
1112
- backgroundColor: isHighlighted ? "#f4967622" : ""
1113
- }
1114
- };
1115
- }
1062
+ name,
1063
+ stepName: step == null ? void 0 : step.name,
1064
+ hasName
1116
1065
  },
1117
- codeNormalized
1118
- )
1119
- )
1066
+ /* @__PURE__ */ import_react13.default.createElement(
1067
+ Highlighter,
1068
+ {
1069
+ language,
1070
+ wrapLines: true,
1071
+ showLineNumbers: true,
1072
+ style: import_prism.gruvboxDark,
1073
+ lineNumberStyle: (lineNumber) => {
1074
+ const { highlight = [] } = step || {};
1075
+ const isHighlighted = highlight.includes(lineNumber);
1076
+ return {
1077
+ fontWeight: isHighlighted ? "bold" : "normal"
1078
+ };
1079
+ },
1080
+ lineProps: (lineNumber) => {
1081
+ const { hiddenLines = [], highlight = [] } = step || {};
1082
+ const isVisible = hasSteps && isActive ? !hiddenLines.includes(lineNumber) : isActive || !hasSteps;
1083
+ const isHighlighted = highlight.includes(lineNumber);
1084
+ const getOpacity = () => {
1085
+ if (!isVisible) return 0;
1086
+ if (isHighlighted || !highlight.length) return 1;
1087
+ return 0.8;
1088
+ };
1089
+ return {
1090
+ ...isHighlighted && {
1091
+ "data-highlight-line": isHighlighted,
1092
+ "data-step-active": isActive
1093
+ },
1094
+ style: {
1095
+ opacity: getOpacity(),
1096
+ transition: "all 0.3s ease",
1097
+ display: "block",
1098
+ width: "100%",
1099
+ backgroundColor: isHighlighted ? "rgba(var(--color-secondary-rgb), 0.13)" : ""
1100
+ }
1101
+ };
1102
+ }
1103
+ },
1104
+ codeNormalized
1105
+ )
1106
+ );
1107
+ }
1120
1108
  ));
1121
1109
  }
1122
1110
  CodeStepper.mdxType = "CodeStepper";
1123
1111
 
1112
+ // src/components/QRCode.tsx
1113
+ var import_qr_creator = __toESM(require("qr-creator"));
1114
+ var import_react14 = __toESM(require("react"));
1115
+ var import_spectacle5 = require("spectacle");
1116
+ var MapSize = {
1117
+ xs: 64,
1118
+ sm: 128,
1119
+ md: 256,
1120
+ lg: 512
1121
+ };
1122
+ function QRCode({ url, size = "md" }) {
1123
+ var _a, _b;
1124
+ const id = import_react14.default.useId().replace(/:/g, "___");
1125
+ const deck = (0, import_react14.useContext)(import_spectacle5.DeckContext);
1126
+ const width = MapSize[size];
1127
+ const backgroundColor = ((_b = (_a = deck.theme) == null ? void 0 : _a.colors) == null ? void 0 : _b.primary) || "#ffffff";
1128
+ import_react14.default.useEffect(() => {
1129
+ var _a2, _b2;
1130
+ const element = document.querySelector(`#${id}`);
1131
+ if (!element) return console.error("QRCode element not mounted");
1132
+ import_qr_creator.default.render(
1133
+ {
1134
+ text: url,
1135
+ radius: 0.5,
1136
+ ecLevel: "H",
1137
+ // L, M, Q, H
1138
+ fill: ((_b2 = (_a2 = deck.theme) == null ? void 0 : _a2.colors) == null ? void 0 : _b2.secondary) || "#000000",
1139
+ background: backgroundColor,
1140
+ size: width
1141
+ },
1142
+ element
1143
+ );
1144
+ return () => {
1145
+ element.replaceChildren();
1146
+ };
1147
+ }, [url]);
1148
+ return /* @__PURE__ */ import_react14.default.createElement(
1149
+ "div",
1150
+ {
1151
+ id,
1152
+ style: {
1153
+ padding: "1rem 1rem 0.6rem 1rem",
1154
+ borderRadius: "1rem",
1155
+ backgroundColor
1156
+ }
1157
+ }
1158
+ );
1159
+ }
1160
+
1124
1161
  // src/components/map.tsx
1125
1162
  var componentsMap = {
1126
- ...import_spectacle5.mdxComponentMap,
1127
- inlineCode: (props) => /* @__PURE__ */ import_react14.default.createElement(
1163
+ ...import_spectacle6.mdxComponentMap,
1164
+ inlineCode: (props) => /* @__PURE__ */ import_react15.default.createElement(
1128
1165
  InlineCode,
1129
1166
  {
1130
1167
  ...props,
@@ -1134,7 +1171,7 @@ var componentsMap = {
1134
1171
  }
1135
1172
  }
1136
1173
  ),
1137
- table: (props) => /* @__PURE__ */ import_react14.default.createElement(
1174
+ table: (props) => /* @__PURE__ */ import_react15.default.createElement(
1138
1175
  "table",
1139
1176
  {
1140
1177
  ...props,
@@ -1145,7 +1182,7 @@ var componentsMap = {
1145
1182
  }
1146
1183
  }
1147
1184
  ),
1148
- tr: (props) => /* @__PURE__ */ import_react14.default.createElement(
1185
+ tr: (props) => /* @__PURE__ */ import_react15.default.createElement(
1149
1186
  "tr",
1150
1187
  {
1151
1188
  ...props,
@@ -1157,7 +1194,7 @@ var componentsMap = {
1157
1194
  }
1158
1195
  }
1159
1196
  ),
1160
- td: (props) => /* @__PURE__ */ import_react14.default.createElement(
1197
+ td: (props) => /* @__PURE__ */ import_react15.default.createElement(
1161
1198
  "td",
1162
1199
  {
1163
1200
  ...props,
@@ -1170,7 +1207,7 @@ var componentsMap = {
1170
1207
  }
1171
1208
  }
1172
1209
  ),
1173
- h1: (props) => /* @__PURE__ */ import_react14.default.createElement(
1210
+ h1: (props) => /* @__PURE__ */ import_react15.default.createElement(
1174
1211
  CustomHeading,
1175
1212
  {
1176
1213
  fontSize: "h1",
@@ -1186,15 +1223,15 @@ var componentsMap = {
1186
1223
  },
1187
1224
  props.children
1188
1225
  ),
1189
- h2: (props) => /* @__PURE__ */ import_react14.default.createElement(HeadingTwo, null, props.children),
1190
- h3: (props) => /* @__PURE__ */ import_react14.default.createElement(HeadingThree, { ...props }),
1191
- img: (props) => /* @__PURE__ */ import_react14.default.createElement(Image2, { ...props }),
1226
+ h2: (props) => /* @__PURE__ */ import_react15.default.createElement(HeadingTwo, null, props.children),
1227
+ h3: (props) => /* @__PURE__ */ import_react15.default.createElement(HeadingThree, { ...props }),
1228
+ img: (props) => /* @__PURE__ */ import_react15.default.createElement(Image2, { ...props }),
1192
1229
  pre: CodeStepper,
1193
- li: (props) => /* @__PURE__ */ import_react14.default.createElement("li", { ...props, style: { margin: "24px 0" } }),
1194
- Side: (props) => /* @__PURE__ */ import_react14.default.createElement("div", { ...props }),
1230
+ li: (props) => /* @__PURE__ */ import_react15.default.createElement("li", { ...props, style: { margin: "24px 0" } }),
1231
+ Side: (props) => /* @__PURE__ */ import_react15.default.createElement("div", { ...props }),
1195
1232
  p: (props) => {
1196
- const Text = import_spectacle5.mdxComponentMap.p;
1197
- return /* @__PURE__ */ import_react14.default.createElement(
1233
+ const Text = import_spectacle6.mdxComponentMap.p;
1234
+ return /* @__PURE__ */ import_react15.default.createElement(
1198
1235
  Text,
1199
1236
  {
1200
1237
  style: { margin: "8px 0", padding: "8px 0", lineHeight: "2rem" },
@@ -1202,36 +1239,117 @@ var componentsMap = {
1202
1239
  }
1203
1240
  );
1204
1241
  },
1205
- blockquote: (props) => /* @__PURE__ */ import_react14.default.createElement(CustomQuote, { ...props }),
1242
+ blockquote: (props) => /* @__PURE__ */ import_react15.default.createElement(CustomQuote, { ...props }),
1206
1243
  a: ({ children, ...props }) => {
1207
1244
  const domain = new URL(props.href || "").hostname;
1208
- return /* @__PURE__ */ import_react14.default.createElement("a", { ...props, style: { color: "#f49676", textDecoration: "none" } }, children, " ", /* @__PURE__ */ import_react14.default.createElement(
1209
- "small",
1245
+ return /* @__PURE__ */ import_react15.default.createElement(
1246
+ "a",
1210
1247
  {
1211
- style: {
1212
- color: "#ffffff44"
1213
- }
1248
+ ...props,
1249
+ style: { color: "var(--color-secondary)", textDecoration: "none" }
1214
1250
  },
1215
- "(",
1216
- domain,
1217
- ")"
1218
- ));
1251
+ children,
1252
+ " ",
1253
+ /* @__PURE__ */ import_react15.default.createElement(
1254
+ "small",
1255
+ {
1256
+ style: {
1257
+ color: "#ffffff44"
1258
+ }
1259
+ },
1260
+ "(",
1261
+ domain,
1262
+ ")"
1263
+ )
1264
+ );
1265
+ },
1266
+ directive: (props) => {
1267
+ if (props._name === "qrcode") {
1268
+ const url = import_react15.default.Children.toArray(props.children)[0].props.href;
1269
+ return /* @__PURE__ */ import_react15.default.createElement(QRCode, { url });
1270
+ }
1271
+ return /* @__PURE__ */ import_react15.default.createElement("div", { ...props });
1219
1272
  }
1220
1273
  };
1221
1274
  var map_default = componentsMap;
1222
1275
 
1276
+ // src/index.tsx
1277
+ var import_styled_components17 = require("styled-components");
1278
+
1279
+ // src/SlideWrapper.tsx
1280
+ var import_react17 = __toESM(require("react"));
1281
+
1282
+ // src/context.tsx
1283
+ var import_react16 = __toESM(require("react"));
1284
+ var PestacleContext = import_react16.default.createContext(void 0);
1285
+ function usePestacle() {
1286
+ const context = import_react16.default.useContext(PestacleContext);
1287
+ if (!context) {
1288
+ throw new Error("usePestacle must be used within a PestacleProvider");
1289
+ }
1290
+ return context;
1291
+ }
1292
+ function PestacleProvider({
1293
+ children,
1294
+ layouts: layouts2
1295
+ }) {
1296
+ return /* @__PURE__ */ import_react16.default.createElement(PestacleContext.Provider, { value: { layouts: layouts2 } }, children);
1297
+ }
1298
+
1299
+ // src/SlideWrapper.tsx
1300
+ function SlideWrapper({
1301
+ children,
1302
+ frontmatter
1303
+ }) {
1304
+ const { layouts: layouts2 } = usePestacle();
1305
+ const layout = (frontmatter == null ? void 0 : frontmatter.layout) || "default";
1306
+ console.log(layouts2, layout);
1307
+ const Layout = layout in layouts2 ? layouts2[layout] : null;
1308
+ if (layout && !Layout) {
1309
+ console.warn(`Layout ${layout} not found`);
1310
+ }
1311
+ if (Layout) {
1312
+ return /* @__PURE__ */ import_react17.default.createElement(Layout, { ...frontmatter }, children);
1313
+ }
1314
+ return /* @__PURE__ */ import_react17.default.createElement(import_react17.default.Fragment, null, children);
1315
+ }
1316
+
1317
+ // src/colors.ts
1318
+ function extractColors(color) {
1319
+ if (color.startsWith("rgb")) {
1320
+ const [r, g, b] = color.replace("rgb(", "").replace("rgba(", "").replace(")", "").split(",").map((c) => parseInt(c.trim(), 10));
1321
+ return { r, g, b };
1322
+ } else if (color.startsWith("#")) {
1323
+ const hex = color.replace("#", "");
1324
+ const r = parseInt(hex.substring(0, 2), 16);
1325
+ const g = parseInt(hex.substring(2, 4), 16);
1326
+ const b = parseInt(hex.substring(4, 6), 16);
1327
+ return { r, g, b };
1328
+ }
1329
+ throw new Error(`Invalid color format: ${color}`);
1330
+ }
1331
+ function createCssVariables(colors) {
1332
+ const base = Object.entries(colors).map(([key, value]) => `--color-${key}: ${value};`).join("\n");
1333
+ const rgbs = Object.entries(colors).map(([key, value]) => {
1334
+ const { r, g, b } = extractColors(value);
1335
+ return `--color-${key}-rgb: ${r}, ${g}, ${b};`;
1336
+ }).join("\n");
1337
+ return `${base}
1338
+ ${rgbs}`;
1339
+ }
1340
+
1223
1341
  // src/index.tsx
1224
1342
  __reExport(src_exports, require("spectacle"));
1225
1343
 
1226
1344
  // src/components/FilePane.tsx
1227
- var import_react15 = __toESM(require("react"));
1345
+ var import_react18 = __toESM(require("react"));
1228
1346
  function FilePane({
1229
1347
  name,
1230
1348
  children,
1231
1349
  priority,
1232
1350
  ...divProps
1233
1351
  }) {
1234
- return import_react15.default.isValidElement(children) ? import_react15.default.cloneElement(children, {
1352
+ return import_react18.default.isValidElement(children) ? import_react18.default.cloneElement(children, {
1235
1353
  // @ts-expect-error cloning
1236
1354
  priority,
1237
1355
  name
@@ -1240,14 +1358,14 @@ function FilePane({
1240
1358
  FilePane.mdxType = "FilePane";
1241
1359
 
1242
1360
  // src/components/ItemsColumn.tsx
1243
- var import_react16 = __toESM(require("react"));
1244
- var import_spectacle6 = require("spectacle");
1361
+ var import_react19 = __toESM(require("react"));
1362
+ var import_spectacle7 = require("spectacle");
1245
1363
  var import_styled_components11 = __toESM(require("styled-components"));
1246
1364
  var import_react_spring = require("react-spring");
1247
1365
  function ItemsColumn(divProps) {
1248
1366
  const { style: style2, children, ...props } = divProps;
1249
- const childrenArray = import_react16.default.Children.toArray(children);
1250
- return /* @__PURE__ */ import_react16.default.createElement(import_spectacle6.Stepper, { values: childrenArray }, (value, step) => /* @__PURE__ */ import_react16.default.createElement(
1367
+ const childrenArray = import_react19.default.Children.toArray(children);
1368
+ return /* @__PURE__ */ import_react19.default.createElement(import_spectacle7.Stepper, { values: childrenArray }, (value, step) => /* @__PURE__ */ import_react19.default.createElement(
1251
1369
  "div",
1252
1370
  {
1253
1371
  style: {
@@ -1263,10 +1381,10 @@ function ItemsColumn(divProps) {
1263
1381
  },
1264
1382
  childrenArray.map((child, index) => {
1265
1383
  const isVisible = index <= step;
1266
- if (!import_react16.default.isValidElement(child)) {
1384
+ if (!import_react19.default.isValidElement(child)) {
1267
1385
  return child;
1268
1386
  }
1269
- return /* @__PURE__ */ import_react16.default.createElement(ItemColumnWrapper, { key: index, isVisible }, child);
1387
+ return /* @__PURE__ */ import_react19.default.createElement(ItemColumnWrapper, { key: index, isVisible }, child);
1270
1388
  })
1271
1389
  ));
1272
1390
  }
@@ -1283,11 +1401,11 @@ function ItemColumnWrapper({
1283
1401
  ...props
1284
1402
  }) {
1285
1403
  const styles = (0, import_react_spring.useSpring)({ opacity: isVisible ? 1 : 0 });
1286
- return /* @__PURE__ */ import_react16.default.createElement(ItemColumnWrapperStyled, { style: styles, ...props }, children);
1404
+ return /* @__PURE__ */ import_react19.default.createElement(ItemColumnWrapperStyled, { style: styles, ...props }, children);
1287
1405
  }
1288
1406
 
1289
1407
  // src/components/DocumentationItem.tsx
1290
- var import_react17 = __toESM(require("react"));
1408
+ var import_react20 = __toESM(require("react"));
1291
1409
  var import_styled_components12 = __toESM(require("styled-components"));
1292
1410
  var DocWrapper = import_styled_components12.default.div`
1293
1411
  position: absolute;
@@ -1313,8 +1431,8 @@ var DocContainer = import_styled_components12.default.div`
1313
1431
  var DocLink = import_styled_components12.default.a`
1314
1432
  text-decoration: none;
1315
1433
  font-weight: normal;
1316
- font-family: Bitter, "Helvetica Neue", Helvetica, Arial, sans-serif;
1317
- color: #f49676;
1434
+ font-family: var(--font-family);
1435
+ color: var(--color-secondary);
1318
1436
  `;
1319
1437
  var DocLinkItem = (0, import_styled_components12.default)(DocLink)`
1320
1438
  width: fit-content;
@@ -1340,16 +1458,16 @@ function Doc({
1340
1458
  link,
1341
1459
  children
1342
1460
  }) {
1343
- return /* @__PURE__ */ import_react17.default.createElement(DocWrapper, null, /* @__PURE__ */ import_react17.default.createElement(DocContainer, null, children && /* @__PURE__ */ import_react17.default.createElement(DocContent, null, children), /* @__PURE__ */ import_react17.default.createElement("div", null, /* @__PURE__ */ import_react17.default.createElement(DocLink, { target: "_blank", rel: "noopener noreferrer", href: link }, label))));
1461
+ return /* @__PURE__ */ import_react20.default.createElement(DocWrapper, null, /* @__PURE__ */ import_react20.default.createElement(DocContainer, null, children && /* @__PURE__ */ import_react20.default.createElement(DocContent, null, children), /* @__PURE__ */ import_react20.default.createElement("div", null, /* @__PURE__ */ import_react20.default.createElement(DocLink, { target: "_blank", rel: "noopener noreferrer", href: link }, label))));
1344
1462
  }
1345
1463
  function DocItem({ label, link }) {
1346
- return /* @__PURE__ */ import_react17.default.createElement(DocLinkItem, { target: "_blank", rel: "noopener noreferrer", href: link }, label);
1464
+ return /* @__PURE__ */ import_react20.default.createElement(DocLinkItem, { target: "_blank", rel: "noopener noreferrer", href: link }, label);
1347
1465
  }
1348
1466
 
1349
1467
  // src/components/HorizontalList.tsx
1350
- var import_react18 = __toESM(require("react"));
1468
+ var import_react21 = __toESM(require("react"));
1351
1469
  var import_react_spring2 = require("react-spring");
1352
- var import_spectacle7 = require("spectacle");
1470
+ var import_spectacle8 = require("spectacle");
1353
1471
  var import_styled_components13 = __toESM(require("styled-components"));
1354
1472
  var Container = import_styled_components13.default.div`
1355
1473
  display: grid;
@@ -1359,8 +1477,8 @@ function HorizontalList({
1359
1477
  children,
1360
1478
  columns = 3
1361
1479
  }) {
1362
- const items = import_react18.default.Children.toArray(children);
1363
- return /* @__PURE__ */ import_react18.default.createElement(import_spectacle7.Stepper, { values: items }, (_, step) => /* @__PURE__ */ import_react18.default.createElement(
1480
+ const items = import_react21.default.Children.toArray(children);
1481
+ return /* @__PURE__ */ import_react21.default.createElement(import_spectacle8.Stepper, { values: items }, (_, step) => /* @__PURE__ */ import_react21.default.createElement(
1364
1482
  Container,
1365
1483
  {
1366
1484
  style: {
@@ -1368,10 +1486,10 @@ function HorizontalList({
1368
1486
  }
1369
1487
  },
1370
1488
  items.map((item, k) => {
1371
- if (!import_react18.default.isValidElement(item)) {
1489
+ if (!import_react21.default.isValidElement(item)) {
1372
1490
  return item;
1373
1491
  }
1374
- return import_react18.default.cloneElement(item, {
1492
+ return import_react21.default.cloneElement(item, {
1375
1493
  // @ts-expect-error cloning
1376
1494
  position: k + 1,
1377
1495
  isVisible: k <= step,
@@ -1381,12 +1499,12 @@ function HorizontalList({
1381
1499
  ));
1382
1500
  }
1383
1501
  function Pill({ position }) {
1384
- return /* @__PURE__ */ import_react18.default.createElement(
1502
+ return /* @__PURE__ */ import_react21.default.createElement(
1385
1503
  "div",
1386
1504
  {
1387
1505
  style: { width: 48, transform: "translate(-25%, -25%)", opacity: 0.9 }
1388
1506
  },
1389
- /* @__PURE__ */ import_react18.default.createElement(
1507
+ /* @__PURE__ */ import_react21.default.createElement(
1390
1508
  "svg",
1391
1509
  {
1392
1510
  width: "48",
@@ -1395,14 +1513,14 @@ function Pill({ position }) {
1395
1513
  fill: "none",
1396
1514
  xmlns: "http://www.w3.org/2000/svg"
1397
1515
  },
1398
- /* @__PURE__ */ import_react18.default.createElement(
1516
+ /* @__PURE__ */ import_react21.default.createElement(
1399
1517
  "path",
1400
1518
  {
1401
1519
  d: "M8.64717 20L0 15.0094V5.00134L8.64717 0L17.289 5.00134V15.0094L8.64717 20ZM1.48222 14.141L8.64717 18.2846L15.8068 14.141V5.85902L8.64717 1.71536L1.48222 5.85902V14.141Z",
1402
1520
  fill: "#ffffff"
1403
1521
  }
1404
1522
  ),
1405
- /* @__PURE__ */ import_react18.default.createElement(
1523
+ /* @__PURE__ */ import_react21.default.createElement(
1406
1524
  "text",
1407
1525
  {
1408
1526
  x: "9",
@@ -1414,7 +1532,7 @@ function Pill({ position }) {
1414
1532
  },
1415
1533
  position
1416
1534
  ),
1417
- /* @__PURE__ */ import_react18.default.createElement(
1535
+ /* @__PURE__ */ import_react21.default.createElement(
1418
1536
  "path",
1419
1537
  {
1420
1538
  d: "M 8.758 16.01 L 3.549 13.004 L 3.549 6.975 L 8.758 3.963 L 13.964 6.975 L 13.964 13.004 L 8.758 16.01 Z",
@@ -1451,10 +1569,8 @@ function getItemOpacity({
1451
1569
  isLast,
1452
1570
  isVisible
1453
1571
  }) {
1454
- if (isLast)
1455
- return 1;
1456
- if (isVisible)
1457
- return 0.7;
1572
+ if (isLast) return 1;
1573
+ if (isVisible) return 0.7;
1458
1574
  return 0;
1459
1575
  }
1460
1576
  function HorizontalListItem({
@@ -1467,13 +1583,13 @@ function HorizontalListItem({
1467
1583
  const opacityStyles = (0, import_react_spring2.useSpring)({
1468
1584
  opacity: getItemOpacity({ isVisible, isLast })
1469
1585
  });
1470
- return /* @__PURE__ */ import_react18.default.createElement(Item, { style: opacityStyles }, /* @__PURE__ */ import_react18.default.createElement(ItemHead, null, /* @__PURE__ */ import_react18.default.createElement(Pill, { position }), /* @__PURE__ */ import_react18.default.createElement("p", null, title)), /* @__PURE__ */ import_react18.default.createElement(ItemContent, null, children));
1586
+ return /* @__PURE__ */ import_react21.default.createElement(Item, { style: opacityStyles }, /* @__PURE__ */ import_react21.default.createElement(ItemHead, null, /* @__PURE__ */ import_react21.default.createElement(Pill, { position }), /* @__PURE__ */ import_react21.default.createElement("p", null, title)), /* @__PURE__ */ import_react21.default.createElement(ItemContent, null, children));
1471
1587
  }
1472
1588
 
1473
1589
  // src/components/Timeline.tsx
1474
- var import_react19 = __toESM(require("react"));
1590
+ var import_react22 = __toESM(require("react"));
1475
1591
  var import_react_spring3 = require("react-spring");
1476
- var import_spectacle8 = require("spectacle");
1592
+ var import_spectacle9 = require("spectacle");
1477
1593
 
1478
1594
  // src/components/Timeline.styled.tsx
1479
1595
  var import_styled_components14 = __toESM(require("styled-components"));
@@ -1545,9 +1661,9 @@ var style = {
1545
1661
  alignItems: "center"
1546
1662
  };
1547
1663
  function Timeline(props) {
1548
- const children = import_react19.default.Children.toArray(props.children);
1549
- return /* @__PURE__ */ import_react19.default.createElement(
1550
- import_spectacle8.Stepper,
1664
+ const children = import_react22.default.Children.toArray(props.children);
1665
+ return /* @__PURE__ */ import_react22.default.createElement(
1666
+ import_spectacle9.Stepper,
1551
1667
  {
1552
1668
  ...props,
1553
1669
  values: children,
@@ -1556,10 +1672,10 @@ function Timeline(props) {
1556
1672
  },
1557
1673
  (value, step) => {
1558
1674
  return children.map((child, index) => {
1559
- if (!import_react19.default.isValidElement(child)) {
1675
+ if (!import_react22.default.isValidElement(child)) {
1560
1676
  return child;
1561
1677
  }
1562
- return import_react19.default.cloneElement(child, {
1678
+ return import_react22.default.cloneElement(child, {
1563
1679
  // @ts-expect-error cloning
1564
1680
  isPhantom: step < index,
1565
1681
  isLast: step === index
@@ -1572,10 +1688,8 @@ function getItemOpacity2({
1572
1688
  isLast,
1573
1689
  isPhantom
1574
1690
  }) {
1575
- if (isPhantom)
1576
- return 0;
1577
- if (isLast)
1578
- return 1;
1691
+ if (isPhantom) return 0;
1692
+ if (isLast) return 1;
1579
1693
  return 0.5;
1580
1694
  }
1581
1695
  function TimelineItem(props) {
@@ -1587,7 +1701,7 @@ function TimelineItem(props) {
1587
1701
  opacity: getItemOpacity2({ isPhantom, isLast })
1588
1702
  });
1589
1703
  const colorStyles = (0, import_react_spring3.useSpring)({ opacity: isPhantom || isLast ? 1 : 0.15 });
1590
- return /* @__PURE__ */ import_react19.default.createElement(
1704
+ return /* @__PURE__ */ import_react22.default.createElement(
1591
1705
  TimelineItemStyled,
1592
1706
  {
1593
1707
  ...rest,
@@ -1595,13 +1709,13 @@ function TimelineItem(props) {
1595
1709
  ...appearStyles
1596
1710
  }
1597
1711
  },
1598
- /* @__PURE__ */ import_react19.default.createElement(TimelineItemContentPhantom, null, /* @__PURE__ */ import_react19.default.createElement(TimelineItemTitle, null, title), /* @__PURE__ */ import_react19.default.createElement(TimelineItemBody, null, children)),
1599
- /* @__PURE__ */ import_react19.default.createElement(TimelineItemGuide, { style: colorStyles }, /* @__PURE__ */ import_react19.default.createElement(Hexagon, null), /* @__PURE__ */ import_react19.default.createElement(TimelineItemGuideLine, { style: guideLineProps })),
1600
- /* @__PURE__ */ import_react19.default.createElement(TimelineItemContent, null, /* @__PURE__ */ import_react19.default.createElement(TimelineItemTitle, null, title), /* @__PURE__ */ import_react19.default.createElement(TimelineItemBody, null, children))
1712
+ /* @__PURE__ */ import_react22.default.createElement(TimelineItemContentPhantom, null, /* @__PURE__ */ import_react22.default.createElement(TimelineItemTitle, null, title), /* @__PURE__ */ import_react22.default.createElement(TimelineItemBody, null, children)),
1713
+ /* @__PURE__ */ import_react22.default.createElement(TimelineItemGuide, { style: colorStyles }, /* @__PURE__ */ import_react22.default.createElement(Hexagon, null), /* @__PURE__ */ import_react22.default.createElement(TimelineItemGuideLine, { style: guideLineProps })),
1714
+ /* @__PURE__ */ import_react22.default.createElement(TimelineItemContent, null, /* @__PURE__ */ import_react22.default.createElement(TimelineItemTitle, null, title), /* @__PURE__ */ import_react22.default.createElement(TimelineItemBody, null, children))
1601
1715
  );
1602
1716
  }
1603
1717
  function Hexagon() {
1604
- return /* @__PURE__ */ import_react19.default.createElement(
1718
+ return /* @__PURE__ */ import_react22.default.createElement(
1605
1719
  "svg",
1606
1720
  {
1607
1721
  width: "18",
@@ -1610,14 +1724,14 @@ function Hexagon() {
1610
1724
  fill: "none",
1611
1725
  xmlns: "http://www.w3.org/2000/svg"
1612
1726
  },
1613
- /* @__PURE__ */ import_react19.default.createElement(
1727
+ /* @__PURE__ */ import_react22.default.createElement(
1614
1728
  "path",
1615
1729
  {
1616
1730
  d: "M8.64717 20L0 15.0094V5.00134L8.64717 0L17.289 5.00134V15.0094L8.64717 20ZM1.48222 14.141L8.64717 18.2846L15.8068 14.141V5.85902L8.64717 1.71536L1.48222 5.85902V14.141Z",
1617
1731
  fill: "#F49676"
1618
1732
  }
1619
1733
  ),
1620
- /* @__PURE__ */ import_react19.default.createElement(
1734
+ /* @__PURE__ */ import_react22.default.createElement(
1621
1735
  "path",
1622
1736
  {
1623
1737
  d: "M 8.758 16.01 L 3.549 13.004 L 3.549 6.975 L 8.758 3.963 L 13.964 6.975 L 13.964 13.004 L 8.758 16.01 Z",
@@ -1628,7 +1742,7 @@ function Hexagon() {
1628
1742
  }
1629
1743
 
1630
1744
  // src/components/IconBox.tsx
1631
- var import_react20 = __toESM(require("react"));
1745
+ var import_react23 = __toESM(require("react"));
1632
1746
  var import_styled_components16 = __toESM(require("styled-components"));
1633
1747
  var IconBoxContent = import_styled_components16.default.div`
1634
1748
  * {
@@ -1640,7 +1754,7 @@ function IconBox({
1640
1754
  children,
1641
1755
  icon
1642
1756
  }) {
1643
- return /* @__PURE__ */ import_react20.default.createElement(
1757
+ return /* @__PURE__ */ import_react23.default.createElement(
1644
1758
  "div",
1645
1759
  {
1646
1760
  style: {
@@ -1650,63 +1764,70 @@ function IconBox({
1650
1764
  padding: "1rem 0"
1651
1765
  }
1652
1766
  },
1653
- /* @__PURE__ */ import_react20.default.createElement("div", { style: { fontSize: 60 } }, icon),
1654
- /* @__PURE__ */ import_react20.default.createElement(IconBoxContent, null, children)
1767
+ /* @__PURE__ */ import_react23.default.createElement("div", { style: { fontSize: 60 } }, icon),
1768
+ /* @__PURE__ */ import_react23.default.createElement(IconBoxContent, null, children)
1655
1769
  );
1656
1770
  }
1657
1771
 
1658
1772
  // src/index.tsx
1659
1773
  function PassThrough({ children }) {
1660
- return /* @__PURE__ */ import_react21.default.createElement(import_react21.default.Fragment, null, children);
1661
- }
1662
- function Layout({
1663
- children,
1664
- frontmatter
1665
- }) {
1666
- const layout = (frontmatter == null ? void 0 : frontmatter.layout) || "default";
1667
- const Layout2 = layout in layouts_default ? layouts_default[layout] : null;
1668
- if (layout && !Layout2) {
1669
- console.warn(`Layout ${layout} not found`);
1670
- }
1671
- if (Layout2) {
1672
- return /* @__PURE__ */ import_react21.default.createElement(Layout2, { ...frontmatter }, children);
1673
- }
1674
- return /* @__PURE__ */ import_react21.default.createElement(import_react21.default.Fragment, null, children);
1774
+ return /* @__PURE__ */ import_react24.default.createElement(import_react24.default.Fragment, null, children);
1675
1775
  }
1776
+ var layouts = layouts_default;
1676
1777
  var componentsMap2 = {
1677
1778
  ...map_default,
1678
- wrapper: Layout
1779
+ wrapper: SlideWrapper
1679
1780
  };
1680
- function Deck({ deck }) {
1681
- import_react21.default.useEffect(() => {
1781
+ function Deck({
1782
+ deck,
1783
+ theme,
1784
+ layouts: layouts2 = layouts_default
1785
+ }) {
1786
+ import_react24.default.useEffect(() => {
1682
1787
  document.title = deck.metadata.title || "Untitled";
1683
1788
  }, [deck.metadata.title]);
1684
- return /* @__PURE__ */ import_react21.default.createElement(import_react21.default.StrictMode, null, /* @__PURE__ */ import_react21.default.createElement(import_react22.MDXProvider, { components: componentsMap2 }, /* @__PURE__ */ import_react21.default.createElement(import_spectacle9.Deck, { theme: theme_default, template }, deck.slides.map((slide, i) => {
1685
- const Component = slide.slideComponent;
1686
- return /* @__PURE__ */ import_react21.default.createElement(import_spectacle9.Slide, { key: i }, /* @__PURE__ */ import_react21.default.createElement(Component, null));
1687
- }))));
1789
+ const GlobalStyle = import_react24.default.useMemo(() => {
1790
+ const cssVariables = createCssVariables(theme.themeTokens.colors);
1791
+ return import_styled_components17.createGlobalStyle`
1792
+ :root {
1793
+ ${cssVariables}
1794
+ --font-family: ${theme_default.fonts.text}
1795
+ }
1796
+ `;
1797
+ }, [theme]);
1798
+ return /* @__PURE__ */ import_react24.default.createElement(import_react24.default.StrictMode, null, /* @__PURE__ */ import_react24.default.createElement(PestacleProvider, { layouts: layouts2 }, /* @__PURE__ */ import_react24.default.createElement(import_react25.MDXProvider, { components: componentsMap2 }, /* @__PURE__ */ import_react24.default.createElement(GlobalStyle, null), /* @__PURE__ */ import_react24.default.createElement(
1799
+ import_spectacle10.Deck,
1800
+ {
1801
+ theme: { ...theme_default, ...theme.themeTokens },
1802
+ template
1803
+ },
1804
+ deck.slides.map((slide, i) => {
1805
+ const Component = slide.slideComponent;
1806
+ return /* @__PURE__ */ import_react24.default.createElement(import_spectacle10.Slide, { key: i }, /* @__PURE__ */ import_react24.default.createElement(Component, null));
1807
+ })
1808
+ ))));
1688
1809
  }
1689
1810
  function Danger({ children }) {
1690
- return /* @__PURE__ */ import_react21.default.createElement("div", { style: { color: "red" } }, children);
1811
+ return /* @__PURE__ */ import_react24.default.createElement("div", { style: { color: "red" } }, children);
1691
1812
  }
1692
1813
  function Information({ children }) {
1693
- return /* @__PURE__ */ import_react21.default.createElement("div", { style: { color: "orange" } }, children);
1814
+ return /* @__PURE__ */ import_react24.default.createElement("div", { style: { color: "orange" } }, children);
1694
1815
  }
1695
1816
  function Success({ children }) {
1696
- return /* @__PURE__ */ import_react21.default.createElement("div", { style: { color: "green" } }, children);
1817
+ return /* @__PURE__ */ import_react24.default.createElement("div", { style: { color: "green" } }, children);
1697
1818
  }
1698
1819
  function Warning({ children }) {
1699
- return /* @__PURE__ */ import_react21.default.createElement("div", { style: { color: "yellow" } }, children);
1820
+ return /* @__PURE__ */ import_react24.default.createElement("div", { style: { color: "yellow" } }, children);
1700
1821
  }
1701
1822
  function Side({ children }) {
1702
- return /* @__PURE__ */ import_react21.default.createElement("div", null, children);
1823
+ return /* @__PURE__ */ import_react24.default.createElement("div", null, children);
1703
1824
  }
1704
1825
  Side.mdxType = "Side";
1705
1826
  function Documentation({ children }) {
1706
- return /* @__PURE__ */ import_react21.default.createElement("div", null, children);
1827
+ return /* @__PURE__ */ import_react24.default.createElement("div", null, children);
1707
1828
  }
1708
1829
  function Box2({ children }) {
1709
- return /* @__PURE__ */ import_react21.default.createElement("div", null, children);
1830
+ return /* @__PURE__ */ import_react24.default.createElement("div", null, children);
1710
1831
  }
1711
1832
 
1712
1833
  // <stdin>