@symbo.ls/preview 2.7.17 → 2.7.19

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.
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@symbo.ls/preview",
3
3
  "description": "",
4
4
  "author": "symbo.ls",
5
- "version": "2.7.17",
5
+ "version": "2.7.19",
6
6
  "main": "src/app.js",
7
7
  "scripts": {
8
8
  "link:all": "yarn link smbls domql css-in-props @symbo.ls/icons @symbo.ls/config @symbo.ls/components @symbo.ls/scratch @symbo.ls/playground @symbo.ls/utils @symbo.ls/init @symbo.ls/config-default @domql/router @domql/utils @domql/router",
@@ -1,7 +1,7 @@
1
1
  'use strict'
2
2
 
3
3
  import { router } from '@domql/router'
4
- import { HeaderSignup, HeaderOfMember, HeaderInitial } from '@symbo.ls/components'
4
+ import { HeaderSignup, HeaderOfMember } from '@symbo.ls/components'
5
5
 
6
6
  export const Header = {
7
7
  props: {
@@ -17,6 +17,9 @@ export const Header = {
17
17
  }
18
18
  }
19
19
 
20
+ // '/': HeaderSignup, // HeaderInitial,
21
+ // '/init': HeaderInitial, // HeaderInitial,
22
+
20
23
  let cacheToken
21
24
  export const HeaderOnRouter = {
22
25
  extend: Header,
@@ -24,9 +27,8 @@ export const HeaderOnRouter = {
24
27
 
25
28
  define: { routes: param => param },
26
29
  routes: {
27
- '/': HeaderSignup, // HeaderInitial,
28
- '/init': HeaderInitial, // HeaderInitial,
29
- '/*': HeaderOfMember
30
+ '/*': HeaderOfMember,
31
+ '/': HeaderSignup
30
32
  },
31
33
 
32
34
  on: {
@@ -37,7 +39,7 @@ export const HeaderOnRouter = {
37
39
  router(element, '/', {}, { updateState: false, pushState: false })
38
40
  }
39
41
  },
40
- update: (element, s, changes) => {
42
+ initUpdate: (element, s, changes) => {
41
43
  if (cacheToken !== s.userToken) {
42
44
  cacheToken = s.userToken
43
45
  if (s.userToken) {
@@ -0,0 +1,59 @@
1
+ 'use strict'
2
+
3
+ import { Flex, Grid } from '@symbo.ls/components'
4
+
5
+ import { fieldsGridProps } from './fieldsGridProps'
6
+
7
+ const fields = {
8
+ extend: Grid,
9
+
10
+ InputField_email: {
11
+ gridColumn: 'span 2',
12
+ title: { text: 'Your Email' }
13
+ },
14
+
15
+ InputField_username: {
16
+ title: { text: 'Your Username' }
17
+ },
18
+
19
+ SelectField2_role: {
20
+ title: { text: 'Your role' }
21
+ },
22
+
23
+ PasswordField: {
24
+ title: { text: 'Change Password' }
25
+ },
26
+
27
+ PasswordField_repeat: {
28
+ title: { opacity: '0' }
29
+ }
30
+ }
31
+
32
+ const props = {
33
+ boxSize: '100% 100%',
34
+ flow: 'column',
35
+ title: {
36
+ text: 'Your personal account',
37
+ padding: '- - C2 -'
38
+ },
39
+ fields: {
40
+ ...fieldsGridProps
41
+ },
42
+ button: {
43
+ text: 'Update',
44
+ padding: 'Z1 C1',
45
+ fontSize: 'Z2',
46
+ margin: 'auto - - -',
47
+ width: 'fit-content'
48
+ }
49
+ }
50
+
51
+ export const PersonalAccount = {
52
+ extend: Flex,
53
+ props,
54
+
55
+ title: {},
56
+ fields,
57
+
58
+ ContinueButton: {}
59
+ }
@@ -4,17 +4,13 @@ import { Flex } from '@symbo.ls/components'
4
4
  import icon from '../Init/Personalize/icon'
5
5
  import fields from '../Init/Personalize/fields'
6
6
 
7
- export const projectAccount = {
7
+ export const ProjectAccount = {
8
8
  extend: Flex,
9
9
  props: {
10
10
  flow: 'column',
11
11
  height: '100%'
12
12
  },
13
13
 
14
- class: {
15
- show: (element, state) => state.activePersonalAccount
16
- },
17
-
18
14
  SectionHeader: {
19
15
  title: ({ state }) => 'Settings for ' + state.projectName,
20
16
  p: 'Some settings will be stored only in this device.'
@@ -29,7 +25,7 @@ export const projectAccount = {
29
25
  },
30
26
 
31
27
  Flex: {
32
- props: { gap: 'C1' },
28
+ props: { gap: 'C1', align: 'flex-start' },
33
29
 
34
30
  icon,
35
31
  fields
@@ -1,20 +1,23 @@
1
1
  'use strict'
2
2
 
3
+ import { router } from '@domql/router'
3
4
  import { Flex, IconButton, Link, SquareButton } from '@symbo.ls/components'
4
5
 
5
- import { personalAccount } from './personalAccount'
6
- import { projectAccount } from './projectAccount'
6
+ import { PersonalAccount } from './Personal'
7
+ import { ProjectAccount } from './Project'
7
8
 
8
9
  const ProjectButton = {
9
- extend: [SquareButton],
10
- props: { theme: 'transparent' },
11
- User: {
12
- props: ({ state }) => ({
10
+ extend: [Link, SquareButton],
11
+ props: ({ state }) => ({
12
+ theme: 'transparent',
13
+ href: '/account/' + state.key.split('.')[0],
14
+ User: {
13
15
  round: '100%',
14
16
  src: state.icon && state.icon.src,
15
17
  title: state.projectName
16
- })
17
- },
18
+ }
19
+ }),
20
+ User: {},
18
21
  on: {
19
22
  click: (event, el, s) => {
20
23
  const { id, name } = s.parse()
@@ -23,7 +26,7 @@ const ProjectButton = {
23
26
  projectId: id,
24
27
  activeProject: el.key
25
28
  })
26
- s.update({ activePersonalAccount: false })
29
+ Link.on.click(event, el, s)
27
30
  }
28
31
  }
29
32
  }
@@ -54,13 +57,8 @@ const sidebar = {
54
57
  Flex: {
55
58
  extend: Flex,
56
59
  profile: {
57
- extend: [IconButton],
58
- props: { icon: 'openSource' },
59
- on: {
60
- click: (event, element, state) => {
61
- state.update({ activePersonalAccount: true })
62
- }
63
- }
60
+ extend: [Link, IconButton],
61
+ props: { icon: 'human', href: '/account' }
64
62
  },
65
63
 
66
64
  projects: {
@@ -102,8 +100,18 @@ export const Account = {
102
100
  props,
103
101
 
104
102
  sidebar,
105
- content: {
106
- personalAccount,
107
- projectAccount
103
+
104
+ define: { routes: param => param },
105
+ routes: {
106
+ '/': PersonalAccount,
107
+ '/*': ProjectAccount
108
+ },
109
+
110
+ on: {
111
+ render: element => {
112
+ const { pathname, hash } = window.location
113
+ const url = pathname + hash
114
+ router(element, url, {})
115
+ }
108
116
  }
109
117
  }
@@ -6,6 +6,7 @@ import themes from './themes'
6
6
 
7
7
  export const Color = {
8
8
  key: 'colors',
9
+ state: 'PROJECT_SYSTEM',
9
10
 
10
11
  props: { gap: 'A' },
11
12
 
@@ -4,6 +4,7 @@ import { SectionHeader, ColorTemplate, Flex } from '@symbo.ls/components'
4
4
 
5
5
  const mapColors = (el, s) => {
6
6
  const COLOR = s.parse()
7
+ console.log(s)
7
8
  const colorKeys = Object.keys(COLOR)
8
9
  return colorKeys.map(v => ({ key: v, value: COLOR[v] }))
9
10
  }
@@ -4,11 +4,14 @@ import { ThemeTemplate, SectionHeader, Grid } from '@symbo.ls/components'
4
4
 
5
5
  const mapThemes = (el, s) => {
6
6
  const THEME = s.parse()
7
+ console.log(s)
7
8
  const themeKeys = Object.keys(THEME)
8
9
  return themeKeys.map(v => ({ ...THEME[v], key: v }))
9
10
  }
10
11
 
11
12
  export default {
13
+ state: 'THEME',
14
+
12
15
  header: {
13
16
  extend: SectionHeader,
14
17
  state: {
@@ -107,8 +107,6 @@ const NAV = [{
107
107
  export const DesignSystem = {
108
108
  extend: Flex,
109
109
 
110
- state: 'PROJECT_SYSTEM',
111
-
112
110
  props: {
113
111
  margin: '-C2+X2 - -',
114
112
  padding: 'C2+X2 - -',
@@ -36,7 +36,7 @@ const ButtonOptions = {
36
36
  childExtend: {
37
37
  extend: [ClickableItem, WiderButton, TooltipParent],
38
38
  props: ({ key, state, parent }) => ({
39
- active: state[parent.parent.key] === key,
39
+ active: state[parent.parent.key] === key.toLowerCase(),
40
40
 
41
41
  style: {
42
42
  '&:hover, &:focus-visible': {
@@ -78,7 +78,7 @@ const ButtonOptions = {
78
78
  click: (ev, el, s) => {
79
79
  const key = el.parent.parent.key
80
80
  const value = el.key.toLowerCase()
81
- setCookie(key, value, 3)
81
+ setCookie(key, value)
82
82
  s.update({ [key]: value })
83
83
  }
84
84
  }
@@ -6,14 +6,18 @@ import { UploadImage } from '../../../components'
6
6
 
7
7
  export default {
8
8
  extend: UploadImage,
9
- props: {
9
+ props: ({ state }) => ({
10
+ position: 'relative',
11
+
10
12
  title: { text: 'Project icon' },
13
+
11
14
  element: {
12
15
  flow: 'column',
13
16
  position: 'relative',
14
17
  width: 'fit-content',
15
18
  padding: 'A',
16
19
  gap: '0',
20
+ opacity: !!state.icon,
17
21
 
18
22
  p: {
19
23
  text: 'Drag and drop or click',
@@ -21,25 +25,10 @@ export default {
21
25
  textAlign: 'center'
22
26
  }
23
27
  }
24
- },
28
+ }),
29
+
25
30
  title: {},
26
31
  element: {
27
- User: {
28
- extend: User,
29
- props: ({ state }) => ({
30
- position: 'absolute',
31
- fontSize: 'H',
32
- top: '50%',
33
- left: '50%',
34
- transform: 'translate3d(-50%, -50%, 1px)',
35
- src: state.icon && state.icon.src,
36
- key: state.projectName,
37
- transition: 'C defaultBezier opacity',
38
- opacity: (state.icon && state.icon.src) ? '1' : '0',
39
- pointerEvents: 'none'
40
- })
41
- },
42
-
43
32
  input: {
44
33
  on: {
45
34
  change: (ev, el, s) => {
@@ -68,5 +57,20 @@ export default {
68
57
  }
69
58
  }
70
59
  }
60
+ },
61
+
62
+ User: {
63
+ extend: User,
64
+ props: ({ state }) => ({
65
+ position: 'absolute',
66
+ fontSize: 'H',
67
+ bottom: 'Y',
68
+ left: 'Y1',
69
+ src: state.icon && state.icon.src,
70
+ key: state.projectName,
71
+ transition: 'C defaultBezier opacity',
72
+ opacity: (state.icon && state.icon.src) ? '1' : '0',
73
+ pointerEvents: 'none'
74
+ })
71
75
  }
72
76
  }
@@ -1,6 +1,6 @@
1
1
  'use strict'
2
2
 
3
- import { ButtonTitle, Flex } from '@symbo.ls/components'
3
+ import { ButtonTitle, Grid } from '@symbo.ls/components'
4
4
 
5
5
  export const columnTitleButton = {
6
6
  extend: ButtonTitle,
@@ -20,10 +20,17 @@ export const columnTitleButton = {
20
20
  }
21
21
 
22
22
  export const buttonTitlesGrid = {
23
- extend: Flex,
23
+ extend: Grid,
24
24
  props: {
25
- justifyContent: 'space-between',
26
- padding: 'B2 E1 - -'
25
+ justiyItems: 'start',
26
+ padding: 'B2 - - -',
27
+ columns: 'repeat(4, auto)',
28
+ gap: 'B2+W1',
29
+ width: 'fit-content',
30
+ justifyItems: 'start',
31
+ '@tabletL': { columns: 'repeat(3, auto)' },
32
+ '@tabletM': { columns: 'repeat(2, auto)' },
33
+ childProps: { width: 'F+Z1' }
27
34
  },
28
35
 
29
36
  childExtend: {
@@ -25,7 +25,6 @@ const ThemeNameField = {
25
25
 
26
26
  props: ({ state }) => ({
27
27
  gap: '0',
28
-
29
28
  title: {
30
29
  text: 'Name the theme',
31
30
  fontSize: 'Z'
@@ -40,7 +39,7 @@ const ThemeNameField = {
40
39
  round: '0',
41
40
  textTransform: 'capitalize',
42
41
 
43
- border: 'dashed, gray5',
42
+ border: 'dashed, gray3',
44
43
  borderWidth: '0 0 1px',
45
44
 
46
45
  text: state.themeName,
@@ -139,6 +138,17 @@ export const Theme = {
139
138
  extend: PageTemplate,
140
139
 
141
140
  style,
141
+ props: {
142
+ padding: '- D2 - -',
143
+ boxSizing: 'border-box',
144
+ '@screenL': { fontSize: '20px' },
145
+ '@screenM': { fontSize: '17px' },
146
+ '@screenS': { fontSize: 'A' },
147
+ style: {
148
+ paddingLeft: '0',
149
+ '@media only screen and (min-width: 1920px)': { fontSize: '22px' }
150
+ }
151
+ },
142
152
 
143
153
  state: {
144
154
  sceneTheme: 'dark',
@@ -168,8 +178,9 @@ export const Theme = {
168
178
  header: {
169
179
  extend: SectionHeader,
170
180
  props: {
171
- margin: '0 0 B2',
181
+ margin: '0 - B2 0',
172
182
  justifyContent: 'space-between'
183
+ // border: '2px solid purple'
173
184
  },
174
185
  heading: null,
175
186
  ThemeNameField,
@@ -180,21 +191,24 @@ export const Theme = {
180
191
 
181
192
  cnt: {
182
193
  extend: Flex,
183
- props: { gap: 'D' },
194
+ props: { gap: 'C2', padding: '0' },
184
195
 
185
196
  preview,
186
197
 
187
198
  colorEdit: {
188
199
  props: {
200
+ flex: '1',
189
201
  gap: '',
190
202
  flexFlow: 'column'
203
+ // border: '5px solid red'
191
204
  },
192
205
 
193
206
  colors: {
194
207
  props: {
195
208
  padding: '- - C1 -',
196
- border: 'solid, gray3',
197
- borderWidth: '0 0 0 1px'
209
+ border: 'solid, gray2',
210
+ borderWidth: '0 0 1px 0'
211
+ // style: { borderBottom: '.5px solid rgba(255, 255, 255, .1)' }
198
212
  },
199
213
  selectsGrid,
200
214
  buttonTitlesGrid
@@ -203,8 +217,8 @@ export const Theme = {
203
217
  onHover: {
204
218
  extend: CommonField,
205
219
  props: {
206
- border: 'solid, gray3',
207
- borderWidth: '0 0 0 1px',
220
+ border: 'solid, gray2',
221
+ borderWidth: '0 0 1px 0',
208
222
  gap: 'B2',
209
223
  padding: 'B - C1 -',
210
224
  title: {
@@ -5,20 +5,27 @@ import { CommonField, ColorSelect, Grid } from '@symbo.ls/components'
5
5
  export const selectsGrid = {
6
6
  extend: Grid,
7
7
  props: {
8
- columns: 'repeat(4, 1fr)',
9
- gap: 'C'
8
+ columns: 'repeat(4, auto)',
9
+ style: { width: 'fit-content' },
10
+ gap: 'B2+W1',
11
+ justifyItems: 'start',
12
+ '@tabletL': { columns: 'repeat(3, auto)' },
13
+ '@tabletM': { columns: 'repeat(2, auto)' }
10
14
  },
11
15
 
12
16
  childExtend: {
13
17
  extend: CommonField,
18
+ tag: 'div',
14
19
  props: (el, s) => ({
15
- width: 'fit-content',
20
+ width: 'F+Z',
16
21
  title: {
17
22
  text: s.title,
18
23
  fontSize: 'Z'
19
24
  },
20
25
  element: {
21
- width: 'F+Z1',
26
+ width: '100%',
27
+ height: 'B2+W',
28
+ padding: '0 W1 0 Z1',
22
29
  title: {
23
30
  box: {
24
31
  background: s.color,
@@ -28,6 +35,13 @@ export const selectsGrid = {
28
35
  text: s.name,
29
36
  fontSize: 'Z1'
30
37
  }
38
+ },
39
+ buttons: {
40
+ gap: 'W',
41
+ childProps: {
42
+ boxSize: 'fit-content',
43
+ padding: 'W1+W1'
44
+ }
31
45
  }
32
46
  }
33
47
  }),
@@ -52,13 +52,13 @@ const isTag = v => HTML_TAGS.root.indexOf(v) > -1 || HTML_TAGS.body.indexOf(v) >
52
52
  const isHelper = v => v.slice(0, 1) === '.'
53
53
 
54
54
  const getCollectionFromArray = (arr, s) => {
55
- const { __projectSystem } = s
56
- const { TYPOGRAPHY } = __projectSystem
57
- if (!TYPOGRAPHY) return
55
+ const TYPOGRAPHY = s.parse()
58
56
  const styles = TYPOGRAPHY.styles || {}
59
57
 
58
+ if (!s.sequence) return {}
59
+
60
60
  return arr.map((v, k) => {
61
- const result = getTypeStyle(v, __projectSystem)
61
+ const result = getTypeStyle(v, s.parent.parse())
62
62
  return {
63
63
  key: v,
64
64
  value: {
@@ -103,10 +103,8 @@ export const tagsCollection = (el, s) => {
103
103
  }
104
104
 
105
105
  export const helpersCollection = (el, s) => {
106
- const { __projectSystem } = s
107
- const { TYPOGRAPHY } = __projectSystem
108
- if (!TYPOGRAPHY) return
109
- const { styles } = TYPOGRAPHY
106
+ const TYPOGRAPHY = s.parse()
107
+ const styles = TYPOGRAPHY.styles || {}
110
108
 
111
109
  const HELPERS = Object.keys(styles)
112
110
  .filter(v => v.slice(0, 1) === '.')
@@ -109,16 +109,5 @@ export default {
109
109
  props: { icon: 'arrowAngleMirroringVertical' }
110
110
  }]
111
111
  }
112
- },
113
-
114
- on: {
115
- init: (el, s) => {
116
- const { TYPOGRAPHY } = s.__projectSystem
117
- if (!TYPOGRAPHY) return
118
- const { styles } = TYPOGRAPHY
119
- if (styles) {
120
- s.update({ styles }, { preventUpdate: true })
121
- } else TYPOGRAPHY.styles = {}
122
- }
123
112
  }
124
113
  }
@@ -1,14 +1,12 @@
1
1
  'use strict'
2
2
 
3
- import state from './state'
4
-
5
3
  import typeScale from './typeScale'
6
4
  import documentStyles from './documentStyles'
7
5
  import stylesHelpers from './stylesHelpers'
8
6
  import { mapSequence, sortSequence } from '@symbo.ls/components'
9
7
 
10
8
  export const Typography = {
11
- state,
9
+ state: 'PROJECT_SYSTEM',
12
10
 
13
11
  SectionHeader: {
14
12
  margin: '0 0 C',
@@ -16,28 +14,56 @@ export const Typography = {
16
14
  p: 'A general configuration of type properties on the document.'
17
15
  },
18
16
 
19
- SlidersWithResponsive: {},
17
+ cnt: {
18
+ state: 'TYPOGRAPHY',
19
+
20
+ SlidersWithResponsive: {},
21
+
22
+ line: { extend: 'Line' },
23
+
24
+ documentStyles,
25
+ line1: { extend: 'Line' },
20
26
 
21
- line: { extend: 'Line' },
27
+ stylesHelpers,
28
+ line2: { extend: 'Line' },
22
29
 
23
- documentStyles,
24
- line1: { extend: 'Line' },
30
+ typeScale,
25
31
 
26
- stylesHelpers,
27
- line2: { extend: 'Line' },
32
+ on: {
33
+ stateCreated: (el, s) => {
34
+ s.update({
35
+ base: s.base || 16,
36
+ ratio: s.ratio || 1.125,
37
+ range: s.range || [-3, +8],
38
+ subsequence: s.subsequence || true,
39
+ styles: s.styles || {},
40
+ h1Matches: s.h1Matches || +6,
41
+ scales: {},
42
+ sequence: {},
43
+ vars: {},
44
+ type: 'demo-font-size',
45
+ sampleText: 'Today is a big day for our tribe. The year ends.'
46
+ }, {
47
+ preventUpdate: true,
48
+ preventUpdateListener: true
49
+ })
28
50
 
29
- typeScale,
51
+ if (s.base && s.range) mapSequence(s, sortSequence)
52
+ },
53
+ stateUpdated: (el, s, changes) => {
54
+ const { base, ratio, range, subsequence, h1Matches } = changes
30
55
 
31
- on: {
32
- init: (el, s) => {
33
- mapSequence(s, sortSequence)
34
- },
35
- stateUpdated: (el, s, changes) => {
36
- s.projectSystemUpdate({
37
- TYPOGRAPHY: changes
38
- }, {
39
- preventUpdate: true
40
- })
56
+ s.update({
57
+ base,
58
+ ratio,
59
+ range,
60
+ subsequence,
61
+ h1Matches
62
+ }, {
63
+ preventUpdate: true,
64
+ preventUpdateListener: true
65
+ })
66
+ }
41
67
  }
42
68
  }
43
69
  }
@@ -74,9 +74,10 @@ export default {
74
74
  extend: TypeScaleSequence,
75
75
  $setStateCollection: (el) => {
76
76
  const { state } = el
77
- state.sequence = {}
78
- el.removeContent()
79
- return mapSequence(state, sortSequence)
77
+ // return state.sequence
78
+ // state.sequence = {}
79
+ // el.removeContent()
80
+ if (state.base && state.range) { return mapSequence(state, sortSequence) }
80
81
  }
81
82
  },
82
83
 
@@ -1,73 +0,0 @@
1
- 'use strict'
2
-
3
- import { Flex, InputField, Grid, ContinueButton, PasswordField, SelectField2 } from '@symbo.ls/components'
4
-
5
- import { fieldsGridProps } from './fieldsGridProps'
6
-
7
- const fields = {
8
- extend: Grid,
9
- ...[
10
- {
11
- extend: InputField,
12
- props: {
13
- gridColumn: 'span 2',
14
- title: { text: 'Your Email' }
15
- }
16
- },
17
-
18
- {
19
- extend: InputField,
20
- props: { title: { text: 'Your Username' } }
21
- },
22
-
23
- {
24
- extend: SelectField2,
25
- props: { title: { text: 'Your role' } }
26
- },
27
-
28
- {
29
- extend: PasswordField,
30
- props: { title: { text: 'Change Password' } }
31
- },
32
-
33
- {
34
- extend: PasswordField,
35
- props: { title: { opacity: '0' } }
36
- }
37
- ]
38
-
39
- }
40
-
41
- const props = {
42
- boxSize: '100% 100%',
43
- flow: 'column',
44
- title: {
45
- text: 'Your personal account',
46
- padding: '- - C2 -'
47
- },
48
- fields: {
49
- ...fieldsGridProps
50
- },
51
- button: {
52
- text: 'Update',
53
- padding: 'Z1 C1',
54
- fontSize: 'Z2',
55
- margin: 'auto - - -',
56
- width: 'fit-content'
57
- }
58
- }
59
-
60
- export const personalAccount = {
61
- props,
62
- extend: Flex,
63
-
64
- class: {
65
- show: (element, state) => state.activePersonalAccount
66
- ? { display: 'flex' }
67
- : { display: 'none' }
68
- },
69
-
70
- title: {},
71
- fields,
72
- button: { extend: ContinueButton }
73
- }
@@ -1,18 +0,0 @@
1
- 'use strict'
2
-
3
- export default ({ parent }) => {
4
- const rootState = parent.state
5
- const typography = rootState.__projectSystem.TYPOGRAPHY || {}
6
- return {
7
- base: typography.base || 16,
8
- ratio: typography.ratio || 1.125,
9
- range: typography.range || [-3, +8],
10
- subsequence: typography.subsequence || true,
11
- h1Matches: +6,
12
- scales: {},
13
- sequence: {},
14
- vars: {},
15
- type: 'demo-font-size',
16
- sampleText: 'Today is a big day for our tribe. The year ends.'
17
- }
18
- }