1
1
mirror of https://github.com/jxnblk/mdx-deck.git synced 2024-11-26 00:35:02 +03:00

Basic monorepo setup

This commit is contained in:
Brent Jackson 2019-03-02 14:10:16 -05:00
parent 1df015397e
commit e97e7a1df7
65 changed files with 9271 additions and 11511 deletions

2
.gitignore vendored
View File

@ -2,4 +2,4 @@ dist
site
coverage
node_modules
yarn.lock
package-lock.json

View File

@ -1,11 +0,0 @@
src
site
docs
coverage
test
.babelrc
.travis.yml
CHANGELOG.md
CONTRIBUTING.md
templates
create-deck

1
.npmrc
View File

@ -1 +0,0 @@
package-lock=true

5
.prettierrc Normal file
View File

@ -0,0 +1,5 @@
{
"semi": false,
"singleQuote": true,
"trailingComma": "es5"
}

View File

@ -1,4 +1,3 @@
# Contributing
Thanks for contributing!
@ -27,7 +26,6 @@ Run `npm test`
- Watch Mode: `npm test -- --watch`
- Coverage: `npm test -- --coverage`
---
# Contributor Covenant Code of Conduct
@ -87,7 +85,7 @@ further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at [INSERT EMAIL ADDRESS]. All
reported by contacting the project team at jxnblk@gmail.com. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
@ -103,5 +101,3 @@ This Code of Conduct is adapted from the [Contributor Covenant][homepage], versi
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
[homepage]: https://www.contributor-covenant.org

View File

@ -1 +0,0 @@
module.exports = require('./dist/layouts')

View File

@ -1 +0,0 @@
module.exports = require('./lib/loader')

11166
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,91 +1,9 @@
{
"name": "mdx-deck",
"version": "1.10.0",
"description": "MDX-based presentation decks",
"main": "src/index.js",
"bin": {
"mdx-deck": "./cli.js"
},
"scripts": {
"start": "./cli.js docs/index.mdx -p 8080",
"build": "./cli.js build docs/index.mdx -d site",
"help": "./cli.js",
"test": "jest"
},
"keywords": [],
"author": "Brent Jackson",
"license": "MIT",
"repository": "github:jxnblk/mdx-deck",
"dependencies": {
"@babel/core": "^7.3.4",
"@babel/plugin-proposal-class-properties": "^7.3.4",
"@babel/plugin-proposal-export-default-from": "^7.0.0",
"@babel/plugin-proposal-export-namespace-from": "^7.2.0",
"@babel/plugin-syntax-dynamic-import": "^7.0.0",
"@babel/preset-env": "^7.3.4",
"@babel/preset-react": "^7.0.0",
"@mdx-js/mdx": "^0.20.0",
"@mdx-js/tag": "^0.18.0",
"@reach/router": "^1.2.1",
"babel-loader": "^8.0.5",
"babel-plugin-styled-components": "^1.10.0",
"chalk": "^2.4.2",
"connect": "^3.6.6",
"connect-history-api-fallback": "^1.6.0",
"find-up": "^3.0.0",
"friendly-errors-webpack-plugin": "^1.7.0",
"hhmmss": "^1.0.0",
"loader-utils": "^1.2.3",
"lodash.debounce": "^4.0.8",
"lodash.get": "^4.4.2",
"mdx-plugin-split": "0.0.2",
"meow": "^5.0.0",
"mkdirp": "^0.5.1",
"normalize-newline": "^3.0.0",
"pkg-conf": "^2.1.0",
"prop-types": "^15.7.2",
"querystring": "^0.2.0",
"react": "^16.8.3",
"react-dev-utils": "^7.0.3",
"react-dom": "^16.8.3",
"react-swipeable": "^5.0.1",
"remark-emoji": "^2.0.2",
"remark-unwrap-images": "^0.1.0",
"rimraf": "^2.6.3",
"serve-static": "^1.13.2",
"styled-components": "^4.1.3",
"webpack": "^4.29.6",
"webpack-dev-middleware": "^3.6.0",
"webpack-hot-client": "^4.1.1",
"webpack-hot-middleware": "^2.24.3",
"webpack-merge": "^4.2.1",
"webpack-node-externals": "^1.7.2",
"webpack-sources": "^1.3.0",
"webpackbar": "^3.1.5"
},
"devDependencies": {
"@rebass/grid": "^6.0.0-7",
"babel-jest": "^24.1.0",
"husky": "^1.3.1",
"jest": "^24.1.0",
"jest-styled-components": "^6.3.1",
"lint-staged": "^8.1.5",
"mdx-deck-code-surfer": "^0.5.5",
"prettier": "^1.16.4",
"react-test-renderer": "^16.8.3"
},
"jest": {
"roots": [
"<rootDir>/test/"
],
"testMatch": [
"**/test/**/*.js"
],
"testURL": "http://localhost/",
"coverageReporters": [
"html"
]
},
"private": true,
"version": "2.0.0-0",
"workspaces": [
"packages/*"
],
"husky": {
"hooks": {
"pre-commit": "lint-staged"
@ -97,10 +15,9 @@
"git add"
]
},
"prettier": {
"semi": false,
"singleQuote": true,
"trailingComma": "es5",
"jsxBracketSameLine": true
"devDependencies": {
"husky": "^1.3.1",
"lint-staged": "^8.1.5",
"prettier": "^1.16.4"
}
}

View File

@ -0,0 +1,7 @@
{
"name": "@mdx-deck/components",
"version": "2.0.0-0",
"main": "index.js",
"author": "Brent Jackson <jxnblk@gmail.com>",
"license": "MIT"
}

View File

@ -22,36 +22,39 @@ export const Overview = ({
return (
<Flex
color='white'
bg='black'
color="white"
bg="black"
css={{
alignItems: 'flex-start',
height: '100vh'
}}>
height: '100vh',
}}
>
<Box
mr='auto'
mr="auto"
px={2}
py={3}
css={{
flex: 'none',
height: '100vh',
overflowY: 'auto'
}}>
overflowY: 'auto',
}}
>
{slides.map((Component, i) => (
<Box
key={i}
role='link'
role="link"
p={1}
style={{
outline: i === index ? '1px solid #07c' : null
outline: i === index ? '1px solid #07c' : null,
}}
css={{
cursor: 'pointer'
cursor: 'pointer',
}}
onClick={e => {
update({ index: i })
}}>
<Zoom zoom={1/6}>
}}
>
<Zoom zoom={1 / 6}>
<Root {...props}>
<Slide>
<Component />
@ -61,20 +64,16 @@ export const Overview = ({
</Box>
))}
</Box>
<Box mx='auto' py={4} width={2/3}>
<Zoom zoom={2/3}>
<Root {...props}>
{props.children}
</Root>
<Box mx="auto" py={4} width={2 / 3}>
<Zoom zoom={2 / 3}>
<Root {...props}>{props.children}</Root>
</Zoom>
<Flex>
<Box ml='auto' py={2}>
<Box ml="auto" py={2}>
{index + 1}/{length}
</Box>
</Flex>
<Box mt={3}>
{notes}
</Box>
<Box mt={3}>{notes}</Box>
</Box>
</Flex>
)
@ -87,7 +86,7 @@ Overview.propTypes = {
step: PropTypes.number.isRequired,
slides: PropTypes.array,
mode: PropTypes.string,
notes: PropTypes.object
notes: PropTypes.object,
}
export default Overview

View File

@ -32,14 +32,16 @@ export const Presenter = ({
css={{
flexDirection: 'column',
height: '100vh',
}}>
}}
>
<Flex my="auto">
<Box
mx="auto"
width={5 / 8}
css={{
border: '1px solid rgba(128, 128, 128, 0.25)',
}}>
}}
>
<Zoom zoom={5 / 8}>
<Root {...props}>{props.children}</Root>
</Zoom>
@ -50,12 +52,14 @@ export const Presenter = ({
css={{
flex: 'none',
flexDirection: 'column',
}}>
}}
>
<Box
mx="auto"
css={{
border: '1px solid rgba(128, 128, 128, 0.25)',
}}>
}}
>
<Zoom zoom={1 / 4}>
<Root {...props}>
{Next && (
@ -70,7 +74,8 @@ export const Presenter = ({
py={3}
css={{
flex: 'auto',
}}>
}}
>
{notes}
</Box>
</Flex>
@ -83,7 +88,8 @@ export const Presenter = ({
<Anchor
target="_blank"
rel="noopener noreferrer"
href={`${window.location.origin}/${window.location.hash}`}>
href={`${window.location.origin}/${window.location.hash}`}
>
Open in Normal mode
</Anchor>
<Box mx="auto" />

View File

@ -233,20 +233,23 @@ export class SlideDeck extends React.Component {
components={{
...defaultComponents,
...components,
}}>
}}
>
<Provider {...this.state} update={this.update}>
{mode === modes.grid ? (
<Grid {...context} slides={slides} update={this.update} />
) : (
<Swipeable
onSwipedLeft={() => this.update(next)}
onSwipedRight={() => this.update(previous)}>
onSwipedRight={() => this.update(previous)}
>
<Wrapper
{...this.state}
slides={slides}
width={width}
height={height}
update={this.update}>
update={this.update}
>
<GoogleFonts />
<Carousel index={index}>
{slides.map((Component, i) => (
@ -257,7 +260,8 @@ export class SlideDeck extends React.Component {
index={i}
className="Slide"
active={i === index}
metadata={metadata[i]}>
metadata={metadata[i]}
>
<Component />
</Slide>
))}

View File

@ -0,0 +1,43 @@
import React from 'react'
import PropTypes from 'prop-types'
import styled from 'styled-components'
const ZoomRoot = styled.div(
[],
{
backgroundColor: 'white',
},
props => ({
width: 100 * props.zoom + 'vw',
height: 100 * props.zoom + 'vh',
})
)
ZoomRoot.propTypes = {
zoom: PropTypes.number.isRequired,
}
const ZoomInner = styled.div([], props => ({
transformOrigin: '0 0',
transform: `scale(${props.zoom})`,
}))
ZoomInner.propTypes = {
zoom: PropTypes.number.isRequired,
}
const Zoom = ({ zoom, ...props }) => (
<ZoomRoot zoom={zoom}>
<ZoomInner zoom={zoom} {...props} />
</ZoomRoot>
)
Zoom.propTypes = {
zoom: PropTypes.number,
}
Zoom.defaultProps = {
zoom: 1,
}
export default Zoom

View File

@ -8,14 +8,14 @@ export const MDX_SLIDE_INDEX = 'mdx-slide-index'
export const MDX_SLIDE_STEP = 'mdx-slide-step'
export const keys = {
'right': 39,
'pageDown': 34,
'left': 37,
'pageUp': 33,
'space': 32,
'p': 80,
'o': 79,
'g': 71,
'up': 38,
'down': 40,
right: 39,
pageDown: 34,
left: 37,
pageUp: 33,
space: 32,
p: 80,
o: 79,
g: 71,
up: 38,
down: 40,
}

View File

@ -172,19 +172,22 @@ const Presenter = props => {
display: 'flex',
flexDirection: 'column',
height: '100vh',
}}>
}}
>
<div
style={{
marginTop: 'auto',
marginBottom: 'auto',
display: 'flex',
}}>
}}
>
<div
style={{
width: 500 / 8 + '%',
marginLeft: 'auto',
marginRight: 'auto',
}}>
}}
>
<Zoom zoom={5 / 8}>{props.children}</Zoom>
</div>
<div
@ -192,7 +195,8 @@ const Presenter = props => {
width: 100 / 4 + '%',
marginLeft: 'auto',
marginRight: 'auto',
}}>
}}
>
<Zoom zoom={1 / 4}>
{Next && (
<Slide register={noop}>
@ -208,7 +212,8 @@ const Presenter = props => {
color: 'white',
padding: 16,
fontSize: 20,
}}>
}}
>
<pre style={{ fontFamily: 'Menlo, monospace' }}>
{index + 1} of {slides.length}
</pre>
@ -227,7 +232,8 @@ const Overview = props => {
alignItems: 'flex-start',
height: '100vh',
backgroundColor: 'black',
}}>
}}
>
<div
style={{
flex: 'none',
@ -236,7 +242,8 @@ const Overview = props => {
paddingRight: 4,
overflowY: 'auto',
marginRight: 'auto',
}}>
}}
>
{slides.map((Component, i) => (
<Link
key={i}
@ -250,7 +257,8 @@ const Overview = props => {
marginBottom: 4,
cursor: 'pointer',
outline: i === index ? '4px solid #0cf' : null,
}}>
}}
>
<Zoom zoom={1 / 6}>
<Slide register={noop}>
<Component />
@ -263,7 +271,8 @@ const Overview = props => {
style={{
width: 200 / 3 + '%',
margin: 'auto',
}}>
}}
>
<Zoom zoom={2 / 3}>{props.children}</Zoom>
</div>
</div>
@ -456,7 +465,8 @@ export class MDXDeck extends React.Component {
<Wrapper {...this.state} index={index}>
<Swipeable
onSwipedRight={this.previous}
onSwipedLeft={this.next}>
onSwipedLeft={this.next}
>
<RootStyles>
<GoogleFonts />
<Router>

View File

@ -1,4 +1,3 @@
# npm init deck
Create mdx-deck presentations

View File

@ -15,28 +15,31 @@ log.error = (...args) => {
const template = 'jxnblk/mdx-deck/templates/basic'
const cli = meow(`
const cli = meow(
`
Usage
$ npm init deck my-presentation
$ npx create-deck my-presentation
`, {
booleanDefault: undefined,
flags: {
help: {
type: 'boolean',
alias: 'h'
`,
{
booleanDefault: undefined,
flags: {
help: {
type: 'boolean',
alias: 'h',
},
version: {
type: 'boolean',
alias: 'v',
},
},
version: {
type: 'boolean',
alias: 'v'
}
}
})
)
const [ name ] = cli.input
const [name] = cli.input
if (!name) {
cli.showHelp(0)

View File

@ -0,0 +1,7 @@
{
"name": "@mdx-deck/webpack-html-plugin",
"version": "2.0.0-0",
"author": "Brent Jackson <jxnblk@gmail.com>",
"license": "MIT",
"repository": "github:jxnblk/mdx-deck"
}

View File

@ -5,7 +5,7 @@ import Box from '../Box'
const Root = styled.div([], {
width: '100vw',
height: '100vh'
height: '100vh',
})
const Horizontal = ({ children }) => {
@ -17,8 +17,9 @@ const Horizontal = ({ children }) => {
<Flex
css={{
alignItems: 'center',
height: '100%'
}}>
height: '100%',
}}
>
{kids.map(k => (
<Box key={k.key} width={1 / numberOfChildren}>
{k}

View File

@ -16,17 +16,14 @@ const Split = ({ children }) => {
<Flex
css={{
alignItems: 'center',
height: '100%'
}}>
<Box width={1 / 2}>
{a}
</Box>
<Box width={1 / 2}>
{rest}
</Box>
height: '100%',
}}
>
<Box width={1 / 2}>{a}</Box>
<Box width={1 / 2}>{rest}</Box>
</Flex>
</Root>
)
}
export default Split
export default Split

View File

@ -5,7 +5,7 @@ import Box from '../Box'
const Root = styled.div([], {
width: '100vw',
height: '100vh'
height: '100vh',
})
const SplitRight = ({ children }) => {
@ -16,8 +16,9 @@ const SplitRight = ({ children }) => {
<Flex
css={{
alignItems: 'center',
height: '100%'
}}>
height: '100%',
}}
>
<Box width={1 / 2}>{rest}</Box>
<Box width={1 / 2}>{a}</Box>
</Flex>

View File

@ -0,0 +1,106 @@
{
"name": "mdx-deck",
"version": "1.10.0",
"description": "MDX-based presentation decks",
"main": "src/index.js",
"bin": {
"mdx-deck": "./cli.js"
},
"scripts": {
"start": "./cli.js docs/index.mdx -p 8080",
"build": "./cli.js build docs/index.mdx -d site",
"help": "./cli.js",
"test": "jest"
},
"keywords": [],
"author": "Brent Jackson",
"license": "MIT",
"repository": "github:jxnblk/mdx-deck",
"dependencies": {
"@babel/core": "^7.3.4",
"@babel/plugin-proposal-class-properties": "^7.3.4",
"@babel/plugin-proposal-export-default-from": "^7.0.0",
"@babel/plugin-proposal-export-namespace-from": "^7.2.0",
"@babel/plugin-syntax-dynamic-import": "^7.0.0",
"@babel/preset-env": "^7.3.4",
"@babel/preset-react": "^7.0.0",
"@mdx-js/mdx": "^0.20.0",
"@mdx-js/tag": "^0.18.0",
"@reach/router": "^1.2.1",
"babel-loader": "^8.0.5",
"babel-plugin-styled-components": "^1.10.0",
"chalk": "^2.4.2",
"connect": "^3.6.6",
"connect-history-api-fallback": "^1.6.0",
"find-up": "^3.0.0",
"friendly-errors-webpack-plugin": "^1.7.0",
"hhmmss": "^1.0.0",
"loader-utils": "^1.2.3",
"lodash.debounce": "^4.0.8",
"lodash.get": "^4.4.2",
"mdx-plugin-split": "0.0.2",
"meow": "^5.0.0",
"mkdirp": "^0.5.1",
"normalize-newline": "^3.0.0",
"pkg-conf": "^2.1.0",
"prop-types": "^15.7.2",
"querystring": "^0.2.0",
"react": "^16.8.3",
"react-dev-utils": "^7.0.3",
"react-dom": "^16.8.3",
"react-swipeable": "^5.0.1",
"remark-emoji": "^2.0.2",
"remark-unwrap-images": "^0.1.0",
"rimraf": "^2.6.3",
"serve-static": "^1.13.2",
"styled-components": "^4.1.3",
"webpack": "^4.29.6",
"webpack-dev-middleware": "^3.6.0",
"webpack-hot-client": "^4.1.1",
"webpack-hot-middleware": "^2.24.3",
"webpack-merge": "^4.2.1",
"webpack-node-externals": "^1.7.2",
"webpack-sources": "^1.3.0",
"webpackbar": "^3.1.5"
},
"devDependencies": {
"@rebass/grid": "^6.0.0-7",
"babel-jest": "^24.1.0",
"husky": "^1.3.1",
"jest": "^24.1.0",
"jest-styled-components": "^6.3.1",
"lint-staged": "^8.1.5",
"mdx-deck-code-surfer": "^0.5.5",
"prettier": "^1.16.4",
"react-test-renderer": "^16.8.3"
},
"jest": {
"roots": [
"<rootDir>/test/"
],
"testMatch": [
"**/test/**/*.js"
],
"testURL": "http://localhost/",
"coverageReporters": [
"html"
]
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"*.{md,js,json}": [
"prettier --write",
"git add"
]
},
"prettier": {
"semi": false,
"singleQuote": true,
"trailingComma": "es5",
"jsxBracketSameLine": true
}
}

View File

@ -0,0 +1,3 @@
# mdx-plugin-split
Splits MDX files into an array of components for use in projects like MDX Deck.

View File

@ -0,0 +1,130 @@
const visit = require('unist-util-visit')
const is = require('unist-util-is')
// do i need this?
const mdxAstToMdxHast = require('@mdx-js/mdx/mdx-ast-to-mdx-hast')
// const mdx = require('@mdx-js/mdx')
// removes html comments
// const toMDXAST = require('@mdx-js/mdx/md-ast-to-mdx-ast')
// const mdxHastToJsx = require('@mdx-js/mdx/mdx-hast-to-jsx')
// const { toJSX } = require('@mdx-js/mdx/mdx-hast-to-jsx')
// custom implementation
const toJSX = (node, parent) => {
let children = ''
if (node.type === 'root') {
const jsxNodes = []
let layout = ''
for (const child of node.children) {
if (child.type === 'import') continue
if (child.type === 'export') {
if (!child.default) continue
layout = child.value
.replace(/^export\s+default\s+/, '')
.replace(/;\s*$/, '')
continue
}
jsxNodes.push(child)
}
return [
'(props => (',
' <MDXTag',
' name="wrapper"',
layout && ` Layout={${layout}}`,
' components={props.components}>',
' ' + jsxNodes.map(child => toJSX(child, node)).join('\n '),
' </MDXTag>',
'))',
]
.filter(Boolean)
.join('\n')
}
if (node.children) {
children = node.children
.map(child => {
return toJSX(child, node)
})
.join('')
}
if (node.type === 'element') {
let props = ''
if (Object.keys(node.properties).length > 0) {
props = JSON.stringify(node.properties)
}
return [
'<MDXTag',
` name="${node.tagName}"`,
' components={props.components}',
parent.tagName && ` parentName="${parent.tagName}"`,
props && ` props={${props}}`,
'>',
children,
'</MDXTag>',
]
.filter(Boolean)
.join('')
}
if (node.type === 'comment') {
return `{/*${node.value}*/}`
}
return node.value
}
const delimiter = 'thematicBreak'
module.exports = (opts = {}) => {
return (tree, file) => {
const { children } = tree
const splits = []
const slides = []
visit(tree, node => {
if (is(delimiter, node)) {
const i = children.indexOf(node)
splits.push(i)
}
})
let previousSplit = 0
for (let i = 0; i < splits.length; i++) {
const split = splits[i]
slides.push(children.slice(previousSplit, split))
previousSplit = split + 1
}
slides.push(children.slice(previousSplit))
const jsx = slides.map(slide => {
// no idea what I'm doing
// not sure how to convert ast to jsx here...
const hast = mdxAstToMdxHast()({
type: 'root',
children: slide,
})
const code = toJSX(
hast,
{},
{
skipExport: true,
}
)
return code
// const wrapped = `(() => ${code})()`
// return wrapped
})
tree.children.push({
type: 'export',
default: false,
value: `export const slides = [${jsx.join(',\n')}]`,
})
// console.log(tree)
}
}

View File

@ -0,0 +1,21 @@
{
"name": "mdx-plugin-split",
"version": "0.0.2",
"description": "",
"main": "index.js",
"scripts": {
"test": "nyc ava"
},
"keywords": [],
"author": "Brent Jackson <jxnblk@gmail.com>",
"license": "MIT",
"devDependencies": {
"@mdx-js/mdx": "^0.20.0",
"ava": "^1.2.1",
"nyc": "^13.3.0"
},
"dependencies": {
"unist-util-is": "^2.1.2",
"unist-util-visit": "^1.4.0"
}
}

View File

@ -0,0 +1,24 @@
import test from 'ava'
import mdx from '@mdx-js/mdx'
import plugin from '.'
const src = `
export default props =>
<section>
{props.children}
</section>
# Hello
---
## Two
---
## Three
`
test('adds an export', t => {
const code = mdx.sync(src, {
mdPlugins: [plugin],
})
t.is(typeof code, 'string')
t.snapshot(code)
})

View File

@ -0,0 +1,66 @@
# Snapshot report for `test.js`
The actual snapshot is saved in `test.js.snap`.
Generated by [AVA](https://ava.li).
## adds an export
> Snapshot 1
`␊
export const slides = [(props => (␊
<MDXTag
name="wrapper"␊
Layout={props =>␊
<section>
{props.children}␊
</section>}␊
components={props.components}>␊
<MDXTag name="h1" components={props.components}>Hello</MDXTag>
</MDXTag>
)),␊
(props => (␊
<MDXTag
name="wrapper"␊
components={props.components}>␊
<MDXTag name="h2" components={props.components}>Two</MDXTag>
</MDXTag>
)),␊
(props => (␊
<MDXTag
name="wrapper"␊
components={props.components}>␊
<MDXTag name="h2" components={props.components}>Three</MDXTag>
</MDXTag>
))]␊
const layoutProps = {␊
slides␊
};␊
export default class MDXContent extends React.Component {␊
constructor(props) {␊
super(props)␊
this.layout = props =>␊
<section>
{props.children}␊
</section>
}␊
render() {␊
const { components, ...props } = this.props␊
return <MDXTag
name="wrapper"␊
Layout={this.layout} layoutProps={Object.assign({}, layoutProps, props)}␊
components={components}>␊
<MDXTag name="h1" components={components}>{`Hello`}</MDXTag>
<MDXTag name="hr" components={components}></MDXTag>
<MDXTag name="h2" components={components}>{`Two`}</MDXTag>
<MDXTag name="hr" components={components}></MDXTag>
<MDXTag name="h2" components={components}>{`Three`}</MDXTag>
</MDXTag>
}␊
}␊
MDXContent.isMDXComponent = true`

Binary file not shown.

View File

@ -17,9 +17,9 @@ export default {
heading: {
textTransform: 'uppercase',
letterSpacing: '0.1em',
fontWeight: 600
fontWeight: 600,
},
quote: {
fontWeight: 600
}
fontWeight: 600,
},
}

View File

@ -1,42 +0,0 @@
import React from 'react'
import PropTypes from 'prop-types'
import styled from 'styled-components'
const ZoomRoot = styled.div([], {
backgroundColor: 'white',
},
props => ({
width: (100 * props.zoom) + 'vw',
height: (100 * props.zoom) + 'vh',
})
)
ZoomRoot.propTypes = {
zoom: PropTypes.number.isRequired
}
const ZoomInner = styled.div([],
props => ({
transformOrigin: '0 0',
transform: `scale(${props.zoom})`
})
)
ZoomInner.propTypes = {
zoom: PropTypes.number.isRequired
}
const Zoom = ({ zoom, ...props }) =>
<ZoomRoot zoom={zoom}>
<ZoomInner zoom={zoom} {...props} />
</ZoomRoot>
Zoom.propTypes = {
zoom: PropTypes.number
}
Zoom.defaultProps = {
zoom: 1
}
export default Zoom

View File

@ -1,91 +0,0 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`MDXDeck renders 1`] = `
.c1 {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
width: 100vw;
height: 100vh;
-webkit-align-items: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-webkit-justify-content: center;
-ms-flex-pack: center;
justify-content: center;
}
.c0 {
font-family: system-ui,sans-serif;
color: #000;
background-color: white;
font-size: 1.5em;
text-align: center;
}
.c0 li > ul,
.c0 li > ol {
font-size: inherit;
}
.c0 li > p {
font-size: inherit;
margin: 0;
}
.c0 ul {
text-align: left;
}
.c0 ol {
text-align: left;
}
@media screen and (min-width:64em) {
.c0 {
font-size: 3em;
}
}
<div
onTouchStart={[Function]}
>
<div
className="c0"
>
<div
role="group"
style={
Object {
"outline": "none",
}
}
tabIndex="-1"
>
<div
className="c1"
>
<div
role="group"
style={
Object {
"outline": "none",
}
}
tabIndex="-1"
>
<h1>
hi
</h1>
</div>
</div>
</div>
</div>
</div>
`;

View File

@ -1,15 +0,0 @@
import 'jest-styled-components'
import React from 'react'
import { create as render } from 'react-test-renderer'
import { MDXDeck } from '../src'
const renderJSON = el => render(el).toJSON()
describe('MDXDeck', () => {
test('renders', () => {
const json = renderJSON(<MDXDeck slides={[() => <h1>hi</h1>]} />)
expect(json).toMatchSnapshot(``)
})
test.todo('handles keydown events')
})

View File

@ -1 +0,0 @@
module.exports = require('./dist/themes')

8744
yarn.lock Normal file

File diff suppressed because it is too large Load Diff