Skip to content

Commit fa5802d

Browse files
committed
Add the ability to overwrite the slide container, 0.11.0.
1 parent d7fd757 commit fa5802d

File tree

10 files changed

+36
-37
lines changed

10 files changed

+36
-37
lines changed

examples/tokyo/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@nkzw/remdx-tokyo-example",
33
"description": "Beautiful Minimalist React & MDX Presentations",
4-
"version": "0.10.0",
4+
"version": "0.11.0",
55
"author": "Christoph Nakazawa <[email protected]>",
66
"private": true,
77
"repository": {

examples/tokyo/slides.re.mdx.d.ts

Lines changed: 0 additions & 11 deletions
This file was deleted.

packages/create-remdx/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "create-remdx",
33
"description": "Beautiful Minimalist React & MDX Presentations",
4-
"version": "0.10.0",
4+
"version": "0.11.0",
55
"author": "Christoph Nakazawa <[email protected]>",
66
"repository": {
77
"type": "git",

packages/create-remdx/template/slides.re.mdx.d.ts

Lines changed: 0 additions & 11 deletions
This file was deleted.

packages/remdx/client.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ declare module '*.re.mdx' {
22
let slides: ReadonlyArray<import('./types.jsx').ReMDXSlide>;
33

44
export let Components: import('./types.jsx').MDXComponents | undefined;
5+
export let Container: import('./types.jsx').SlideContainer | undefined;
56
export let Themes: import('./types.jsx').Themes | undefined;
67
export let Transitions:
78
| Record<string, import('./types.jsx').SlideTransition>

packages/remdx/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@nkzw/remdx",
33
"description": "Beautiful Minimalist React & MDX Presentations",
4-
"version": "0.10.0",
4+
"version": "0.11.0",
55
"author": "Christoph Nakazawa <[email protected]>",
66
"repository": {
77
"type": "git",

packages/remdx/src/slide.tsx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,17 @@ import {
99
} from 'react';
1010
import { animated, useSpring } from 'react-spring';
1111
import { useSwipeable } from 'react-swipeable';
12-
import { SlideTransition } from '../types.tsx';
12+
import { SlideContainer, SlideTransition } from '../types.tsx';
1313
import { DeckContext } from './deck.tsx';
1414
import { GOTO_FINAL_STEP } from './hooks/use-deck-state.tsx';
1515
import { Transitions } from './transitions.tsx';
1616

1717
export default function Slide({
1818
children,
1919
className,
20+
container: Container = ({ children, style }) => (
21+
<div style={style}>{children}</div>
22+
),
2023
id,
2124
image,
2225
padding = 48,
@@ -25,6 +28,7 @@ export default function Slide({
2528
}: {
2629
children: ReactNode;
2730
className?: string;
31+
container?: SlideContainer;
2832
id: number;
2933
image?: string;
3034
padding?: string | number;
@@ -226,7 +230,7 @@ export default function Slide({
226230
}}
227231
{...swipeHandler}
228232
>
229-
<div
233+
<Container
230234
style={{
231235
display: 'flex',
232236
flex: 1,
@@ -236,7 +240,7 @@ export default function Slide({
236240
}}
237241
>
238242
<Suspense>{children}</Suspense>
239-
</div>
243+
</Container>
240244
</div>
241245
</animated.div>
242246
);

packages/remdx/src/slidesToComponent.tsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,19 @@ import Slide from './slide.tsx';
66
import { Transitions as DefaultTransitions } from './transitions.tsx';
77

88
export default async function slidesToComponent(module: Promise<ReMDXModule>) {
9-
const { Components, Themes, Transitions, default: slides } = await module;
9+
const {
10+
Components,
11+
Container,
12+
Themes,
13+
Transitions,
14+
default: slides,
15+
} = await module;
1016
return (
1117
<MDXProvider components={{ ...DefaultComponents, ...Components }}>
1218
<Deck
1319
slides={slides.map(({ Component, data }, index) => (
1420
<Slide
21+
container={Container}
1522
id={index}
1623
image={data?.image}
1724
key={index}

packages/remdx/types.tsx

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,33 @@
11
import type { MDXComponents as _MDXComponents } from 'mdx/types.js';
2-
import { CSSProperties } from 'react';
2+
import { CSSProperties, ReactNode } from 'react';
33

44
export type MDXComponents = _MDXComponents;
55

66
export type Themes = Record<string, CSSProperties>;
77

8-
export type SlideTransition = {
8+
export type SlideTransition = Readonly<{
99
enter?: CSSProperties;
1010
from?: CSSProperties;
1111
leave?: CSSProperties;
12-
};
12+
}>;
1313

14-
export type ReMDXSlide = {
14+
export type SlideContainer = ({
15+
children,
16+
style,
17+
}: {
18+
children: JSX.Element;
19+
style: CSSProperties;
20+
}) => ReactNode;
21+
22+
export type ReMDXSlide = Readonly<{
1523
Component: () => JSX.Element;
1624
data: Record<string, string>;
17-
};
25+
}>;
1826

19-
export type ReMDXModule = {
27+
export type ReMDXModule = Readonly<{
2028
Components?: _MDXComponents;
29+
Container?: SlideContainer;
2130
Themes?: Themes;
2231
Transitions?: Record<string, SlideTransition>;
2332
default: ReadonlyArray<ReMDXSlide>;
24-
};
33+
}>;

packages/vite-plugin-remdx/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@nkzw/vite-plugin-remdx",
33
"description": "Beautiful Minimalist React & MDX Presentations",
4-
"version": "0.10.0",
4+
"version": "0.11.0",
55
"author": "Christoph Nakazawa <[email protected]>",
66
"repository": {
77
"type": "git",

0 commit comments

Comments
 (0)