* create mergable text element * @param {String} name * @param {Object} element * @return {Object}
(name, element = {})
| 12 | * @return {Object} |
| 13 | */ |
| 14 | function createTextElement (name, element = {}) { |
| 15 | let classToAdd = '' |
| 16 | const Tag = name |
| 17 | |
| 18 | if (/^h\d$/i.test(name)) { |
| 19 | classToAdd = 'header' |
| 20 | } else { |
| 21 | classToAdd = 'text' |
| 22 | } |
| 23 | |
| 24 | return createElement(name, merge({ |
| 25 | attrs: true, |
| 26 | rules: { |
| 27 | [`.${name}.${classToAdd}`]: [ { '@pseudo': 'root' }, '@default', { display: transforms.trueHide() }, margin, background, border, borderRadius, text, font ] |
| 28 | }, |
| 29 | render (attrs, contents) { |
| 30 | attrs.class += ` ${classToAdd} ${name}` |
| 31 | |
| 32 | return <Tag {...attrs}>{contents}</Tag> |
| 33 | } |
| 34 | }, element)) |
| 35 | } |
| 36 | |
| 37 | const H1 = createTextElement('h1') |
| 38 | const H2 = createTextElement('h2') |