Skip to content

Commit f4b496b

Browse files
committed
⬆️ Update docz to latest version
1 parent ce2d23c commit f4b496b

17 files changed

+2826
-2239
lines changed

.internal/index.js

-2
This file was deleted.

.internal/props-table.js

-24
This file was deleted.

.internal/props-table/humanize.js

+53
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
const RE_OBJECTOF = /(?:React\.)?(?:PropTypes\.)?objectOf\((?:React\.)?(?:PropTypes\.)?(\w+)\)/
2+
3+
function getTypeStr ({
4+
name = '',
5+
raw = '',
6+
value,
7+
computed
8+
}) {
9+
switch (name.toLowerCase()) {
10+
case 'instanceof':
11+
return `Class(${value})`
12+
case 'enum':
13+
if (computed) return value
14+
return value
15+
? value.map((v) => `${v.value}`).join(' │ ')
16+
: raw
17+
case 'union':
18+
return value
19+
? value.map((t) => `${getTypeStr(t)}`).join(' │ ')
20+
: raw
21+
case 'array':
22+
return raw
23+
case 'arrayof':
24+
return `Array<${getTypeStr(value)}>`
25+
case 'custom':
26+
if (raw.indexOf('function') !== -1 || raw.indexOf('=>') !== -1) {
27+
return 'Custom(Function)'
28+
} else {
29+
if (raw.toLowerCase().indexOf('objectof') !== -1) {
30+
const m = raw.match(RE_OBJECTOF)
31+
if (m && m[1]) return `ObjectOf(${m[1]})`
32+
return 'ObjectOf'
33+
}
34+
}
35+
return 'Custom'
36+
case 'bool':
37+
return 'Boolean'
38+
case 'func':
39+
return 'Function'
40+
case 'shape':
41+
const rst = {}
42+
43+
Object.keys(value).forEach(key => {
44+
rst[key] = getTypeStr(value[key])
45+
})
46+
47+
return JSON.stringify(rst, null, 2)
48+
default:
49+
return name
50+
}
51+
}
52+
53+
export const humanize = (type) => getTypeStr(type)

.internal/props-table/index.js

+63
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
import React from 'react'
2+
import { useComponents } from 'docz'
3+
import { humanize } from './humanize'
4+
import { parse } from './parse'
5+
6+
export const PropsTable = ({ of: Comp, ...rest }) => {
7+
const props = Comp != null ? parse(Comp) : null
8+
9+
const {
10+
table: Table = 'table',
11+
thead: Thead = 'thead',
12+
tr: Tr = 'tr',
13+
th: Th = 'th',
14+
tbody: Tbody = 'tbody',
15+
td: Td = 'td'
16+
} = useComponents()
17+
18+
return props === null ? null : (
19+
<Table {...rest}>
20+
<Thead style={{ textAlign: 'left' }}>
21+
<Tr>
22+
<Th>Property</Th>
23+
<Th>Type</Th>
24+
<Th>Required</Th>
25+
<Th>Default</Th>
26+
</Tr>
27+
</Thead>
28+
29+
<Tbody>
30+
{props &&
31+
Object.keys(props).map((name) => {
32+
const prop = props[name]
33+
34+
if (prop.type === undefined) return null
35+
36+
return (
37+
<Tr key={name}>
38+
<Td>{name}</Td>
39+
<Td>
40+
{humanize(prop.type)}
41+
</Td>
42+
<Td>{String(prop.required)}</Td>
43+
{prop.defaultValue === undefined ? (
44+
<Td>
45+
<em>-</em>
46+
</Td>
47+
) : (
48+
<Td>
49+
{prop.defaultValue.value === "''" ? (
50+
<em>[Empty String]</em>
51+
) : (
52+
prop.defaultValue &&
53+
JSON.stringify(prop.defaultValue.value.replace(/'/g, ''))
54+
)}
55+
</Td>
56+
)}
57+
</Tr>
58+
)
59+
})}
60+
</Tbody>
61+
</Table>
62+
)
63+
}

.internal/props-table/parse.js

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import parsePropTypes from 'parse-prop-types'
2+
import { mapObj } from '@exah/utils'
3+
4+
export const parse = (Comp) => Comp.propTypes == null ? null : (
5+
parsePropTypes({
6+
propTypes: Comp.propTypes,
7+
defaultProps: mapObj(
8+
(key, value) => ({ [key]: String(value) }),
9+
Object(Comp.defaultProps)
10+
)
11+
})
12+
)

.internal/wrapper.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import 'parse-prop-types'
2-
import { createElement } from 'react'
2+
import React from 'react'
33
import { ThemeProvider } from 'emotion-theming'
44
import { theme } from './theme'
55

6-
export default ({ children }) =>
7-
createElement(ThemeProvider, { theme }, children)
6+
export default (props) =>
7+
<ThemeProvider theme={theme} {...props} />

docs/01-box.mdx

+5-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ menu: Primitives
55
---
66

77
import { Playground } from 'docz'
8-
import { PropsTable } from '../.internal'
8+
import { PropsTable } from '../.internal/props-table'
99
import { Box } from '../src'
1010

1111
# Box
@@ -29,6 +29,10 @@ import { Box } from 'pss-components'
2929
```
3030

3131

32+
hello | world
33+
:-----|:------
34+
test | me
35+
3236
## Examples
3337

3438
<Playground>

docs/02-flex.mdx

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ menu: Primitives
55
---
66

77
import { Playground } from 'docz'
8-
import { PropsTable } from '../.internal'
8+
import { PropsTable } from '../.internal/props-table'
99
import { Box, Flex } from '../src'
1010

1111
# Flex

docs/03-grid.mdx

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ menu: Primitives
66

77
import { Playground } from 'docz'
88
import { ThemeProvider } from 'emotion-theming'
9-
import { PropsTable } from '../.internal'
9+
import { PropsTable } from '../.internal/props-table'
1010
import { Box, Grid } from '../src'
1111

1212

docs/04-text.mdx

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ menu: Primitives
66

77
import { Playground } from 'docz'
88
import { ThemeProvider } from 'emotion-theming'
9-
import { PropsTable, theme } from '../.internal'
9+
import { PropsTable } from '../.internal/props-table'
10+
import { theme } from '../.internal/theme'
1011
import { Text } from '../src'
1112

1213
# Text

docs/05-image.mdx

-6
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@ menu: Primitives
55
---
66

77
import { Playground } from 'docz'
8-
import { ThemeProvider } from 'emotion-theming'
9-
import { PropsTable } from '../.internal'
108
import { Image } from '../src'
119

1210
# Image
@@ -20,7 +18,3 @@ import { Image } from 'pss-components'
2018
<Playground>
2119
<Image src='http://placekitten.com/500' width={1 / 2} alt='' />
2220
</Playground>
23-
24-
## Props
25-
26-
<PropsTable of={Image} />

docs/06-layout.mdx

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ menu: Layout
55
---
66

77
import { Playground } from 'docz'
8-
import { PropsTable } from '../.internal'
8+
import { PropsTable } from '../.internal/props-table'
99
import { Box, Layout, Media } from '../src'
1010

1111
# Layout

docs/08-list.mdx

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ menu: Layout
55
---
66

77
import { Playground } from 'docz'
8-
import { PropsTable } from '../.internal'
8+
import { PropsTable } from '../.internal/props-table'
99
import { List } from '../src'
1010

1111
# List

docs/09-flex-grid.mdx

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ menu: Layout
55
---
66

77
import { Playground } from 'docz'
8-
import { PropsTable } from '../.internal'
8+
import { PropsTable } from '../.internal/props-table'
99
import { Box, FlexGrid } from '../src'
1010

1111

docs/10-feed.mdx

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ menu: Layout
66

77
import { Playground } from 'docz'
88
import { ThemeProvider } from 'emotion-theming'
9-
import { PropsTable } from '../.internal'
9+
import { PropsTable } from '../.internal/props-table'
1010
import { MatchMediaProvider, Box, Feed } from '../src'
1111

1212
# Feed

package.json

+26-26
Original file line numberDiff line numberDiff line change
@@ -79,52 +79,52 @@
7979
"react-dom": ">=16.8.0"
8080
},
8181
"devDependencies": {
82-
"@babel/cli": "^7.2.3",
83-
"@babel/core": "^7.3.4",
84-
"@babel/plugin-proposal-class-properties": "^7.3.4",
85-
"@babel/plugin-proposal-object-rest-spread": "^7.3.4",
86-
"@babel/plugin-transform-runtime": "^7.3.4",
87-
"@babel/preset-env": "^7.3.4",
82+
"@babel/cli": "^7.4.4",
83+
"@babel/core": "^7.4.4",
84+
"@babel/plugin-proposal-class-properties": "^7.4.4",
85+
"@babel/plugin-proposal-object-rest-spread": "^7.4.4",
86+
"@babel/plugin-transform-runtime": "^7.4.4",
87+
"@babel/preset-env": "^7.4.4",
8888
"@babel/preset-react": "^7.0.0",
89-
"@babel/register": "^7.0.0",
90-
"auto-changelog": "1.11.0",
89+
"@babel/register": "^7.4.4",
90+
"auto-changelog": "1.13.0",
9191
"babel-core": "7.0.0-bridge.0",
9292
"babel-eslint": "^10.0.1",
93-
"babel-jest": "^24.1.0",
94-
"babel-plugin-emotion": "^10.0.7",
93+
"babel-jest": "^24.7.1",
94+
"babel-plugin-emotion": "^10.0.9",
9595
"cross-env": "5.2.0",
96-
"docz": "^0.13.7",
97-
"docz-theme-default": "^0.13.7",
98-
"eslint": "^5.15.0",
96+
"docz": "1.0.4",
97+
"docz-theme-default": "^1.0.4",
98+
"eslint": "^5.16.0",
9999
"eslint-config-standard": "^12.0.0",
100100
"eslint-config-standard-react": "^7.0.2",
101-
"eslint-plugin-import": "^2.16.0",
101+
"eslint-plugin-import": "^2.17.2",
102102
"eslint-plugin-node": "^8.0.1",
103-
"eslint-plugin-promise": "^4.0.1",
103+
"eslint-plugin-promise": "^4.1.1",
104104
"eslint-plugin-react": "^7.12.4",
105105
"eslint-plugin-standard": "^4.0.0",
106106
"gh-pages": "^2.0.0",
107-
"husky": "^1.3.1",
108-
"jest": "^24.1.0",
109-
"jest-emotion": "^10.0.7",
107+
"husky": "^2.1.0",
108+
"jest": "^24.7.1",
109+
"jest-emotion": "^10.0.10",
110110
"lint-staged": "^8.1.5",
111-
"np": "4.0.2",
111+
"np": "5.0.1",
112112
"npm-run-all": "^4.1.5",
113113
"parse-prop-types": "^0.3.0",
114114
"prop-types": "^15.7.2",
115-
"react": "^16.8.3",
116-
"react-dom": "^16.8.3",
115+
"react": "^16.8.6",
116+
"react-dom": "^16.8.6",
117117
"react-feather": "^1.1.6",
118-
"react-test-renderer": "^16.8.3",
118+
"react-test-renderer": "^16.8.6",
119119
"rimraf": "^2.6.3"
120120
},
121121
"dependencies": {
122-
"@babel/runtime": "7.3.4",
123-
"@emotion/core": "^10.0.7",
122+
"@babel/runtime": "7.4.4",
123+
"@emotion/core": "^10.0.10",
124124
"@emotion/is-prop-valid": "^0.7.3",
125-
"@emotion/styled": "^10.0.7",
125+
"@emotion/styled": "^10.0.10",
126126
"@exah/utils": "^2.0.0",
127-
"emotion-theming": "^10.0.7",
127+
"emotion-theming": "^10.0.10",
128128
"pss": "^5.0.0-3",
129129
"react-styled-base": "^3.0.0"
130130
}

0 commit comments

Comments
 (0)