@symbo.ls/preview 0.0.47 → 0.0.49

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.
@@ -1,104 +1,15 @@
1
1
  'use strict'
2
2
 
3
- import { Grid, Hoverable, FontObject, FontFamilyObject } from '@symbo.ls/components'
4
- import { TypeSection } from '../Typography/shared'
3
+ import fontFaces from './fontFaces'
4
+ import fontFamilies from './fontFamilies'
5
5
 
6
6
  import { state } from './state'
7
7
 
8
- const mapFonts = (el, s) => {
9
- if (!el.context.SYSTEM) return
10
- const { FONT } = el.context.SYSTEM
11
- const fontKeys = Object.keys(FONT)
12
-
13
- return fontKeys.map(v => {
14
- const font = FONT[v]
15
- const weights = Object.keys(font)
16
- const weightsLength = weights.length
17
- const fontWeightCaption = weights[0] === 'variable' ? 'variable' : `${weightsLength} style${weightsLength > 1 ? 's' : ''}`
18
-
19
- return {
20
- title: v,
21
- href: `/typography/font-settings/${v}`,
22
- scrollToTop: false,
23
- labels: [
24
- { icon: 'fontVariable', text: fontWeightCaption }
25
- ]
26
- }
27
- })
28
- }
29
-
30
- const FontFaces = {
31
- extend: TypeSection,
32
- header: {
33
- state: {
34
- title: 'Document Fonts',
35
- p: 'Document @font-face, default and backup fonts',
36
- nav: [{
37
- icon: 'plus',
38
- href: '/typography/upload-font'
39
- }]
40
- }
41
- },
42
-
43
- content: {
44
- extend: Grid,
45
- props: {
46
- columns: 'repeat(2, 1fr)',
47
- gap: 'A',
48
- margin: '0 -Z'
49
- },
50
- childExtend: [FontObject, Hoverable],
51
- $setStateCollection: mapFonts
52
- }
53
- }
54
-
55
- const mapFontFamilies = (el, s) => {
56
- if (!el.context.SYSTEM) return
57
- const { FONT_FAMILY } = el.context.SYSTEM
58
- const fontFamilyKeys = Object.keys(FONT_FAMILY)
59
-
60
- return fontFamilyKeys.map(v => {
61
- const val = FONT_FAMILY[v]
62
- if (v === 'default') return
63
- return {
64
- title: v,
65
- href: `/typography/font-family/${v}`,
66
- val
67
- }
68
- }).filter(v => v)
69
- }
70
-
71
- const FontFamilies = {
72
- extend: TypeSection,
73
- props: { padding: '0 0 E 0' },
74
- header: {
75
- state: {
76
- title: 'Font Families',
77
- p: 'Setup a set and fallback fonts as font families',
78
- nav: [{
79
- icon: 'plus',
80
- href: '/typography/add-font-family',
81
- scrollToTop: false
82
- }]
83
- }
84
- },
85
- content: {
86
- extend: Grid,
87
- props: {
88
- columns: 'repeat(4, 1fr)',
89
- gap: 'A',
90
- margin: '0 -Z'
91
- },
92
-
93
- childExtend: [FontFamilyObject, Hoverable],
94
- $setStateCollection: mapFontFamilies
95
- }
96
- }
97
-
98
8
  export const Fonts = {
99
9
  state,
100
10
 
101
- FontFaces,
102
- Line: {},
103
- FontFamilies
11
+ fontFaces,
12
+ line3: { extend: 'Line' },
13
+
14
+ fontFamilies
104
15
  }
@@ -2,44 +2,45 @@
2
2
 
3
3
  import { Flex } from '@symbo.ls/components'
4
4
 
5
- import { mediaValuesList, screenSizingList } from './lists'
5
+ import { mediaQueryList, screenSizingList } from './lists'
6
6
 
7
7
  const content = {
8
8
  extend: Flex,
9
- childExtend: {
10
- props: {
9
+
10
+ props: {
11
+ justifyContent: 'space-between',
12
+ margin: '0 -Z',
13
+ gap: 'C1',
14
+
15
+ childProps: {
11
16
  heading: {
12
17
  color: 'white',
13
18
  padding: '0 0 A1 Z1',
14
19
  fontWeight: '700'
15
20
  }
21
+ },
22
+
23
+ mediaQueries: {
24
+ flex: 1
16
25
  }
17
26
  },
18
27
 
19
- ...[{
20
- heading: { props: { text: 'Media Value' } },
21
- mediaValuesList
22
- }, {
23
- heading: { props: { text: 'Screen Sizing Sheet' } },
28
+ mediaQueries: {
29
+ heading: { text: 'Media Queries' },
30
+ mediaQueryList
31
+ },
32
+
33
+ screensSheet: {
34
+ heading: { text: 'Screen Sizing Sheet' },
24
35
  screenSizingList
25
- }]
36
+ }
26
37
  }
27
38
 
28
- const props = {
39
+ export const MediaQuery = {
29
40
  SectionHeader: {
30
41
  title: 'Responsive',
31
42
  p: 'A Design System is the single source of truth that defines all design elements and allows the crews to assemble components and compose them into more complex apps.'
32
43
  },
33
44
 
34
- content: {
35
- justifyContent: 'space-between',
36
- gap: 'A2'
37
- }
38
- }
39
-
40
- export const MediaQuery = {
41
- props,
42
-
43
- SectionHeader: {},
44
45
  content
45
46
  }
@@ -1,8 +1,6 @@
1
1
  'use strict'
2
2
 
3
- import { IconText, Flex, SquareButton, Grid, Select, Input } from '@symbo.ls/components'
4
- import style from '@symbo.ls/components/src/UserAccount/style'
5
- import { state } from '@symbo.ls/icons'
3
+ import { IconText, Flex, SquareButton, Select, Input, ClickableItem } from '@symbo.ls/components'
6
4
  import { BREAKPOINTS_DATA, DEVICE_SIZE_DATA } from './state'
7
5
 
8
6
  const stateCom = {
@@ -14,8 +12,6 @@ const listProps = {
14
12
  round: 'A',
15
13
  fontSize: 'Z1',
16
14
  style: { overflow: 'hidden' }
17
- // padding: '- - - A'
18
- // border: '2px solid red'
19
15
  }
20
16
 
21
17
  const valueItemProps = {
@@ -56,50 +52,47 @@ const BreakpointItem = {
56
52
  props: valueItemProps
57
53
  },
58
54
 
59
- container: {
60
- props: {
61
- padding: '0 X2',
62
- background: 'gray1'
63
- },
64
- property: {
65
- extend: Select,
66
- props: ({ state }) => ({
67
- background: 'transparent',
68
- color: 'white'
69
- }),
55
+ select: {
56
+ extend: Select,
57
+ props: ({ state }) => ({
58
+ background: 'transparent',
59
+ color: 'white'
60
+ }),
70
61
 
71
- // on: {
72
- // click: (event, element, state) => {
73
- // state.offers
74
- // ? state.update({ offers: false })
75
- // : state.update({ offers: true })
76
- // }
77
- // }
62
+ on: {
63
+ change: (ev, el, s) => {
64
+ const { value } = el.node
65
+ const exact = value === 'exact'
66
+ s.update({ type: value }, { preventUpdate: true })
67
+ console.log(s.parent.parent)
68
+ s.parent.update({
69
+ exact,
70
+ breakpoints: {
71
+ [s.__element.key]: { type: value }
72
+ }
73
+ })
74
+ }
75
+ },
78
76
 
79
- on: {
80
- change: (ev, el, s) => {
81
- s.update({ value: el.node.value })
82
- }
83
- },
84
- $setCollection: () => MEDIA_TYPES.map(props => ({ props }))
85
- }
77
+ $setCollection: () => MEDIA_TYPES.map(props => ({ props }))
86
78
  },
87
79
 
88
80
  value: {
89
81
  extend: Input,
90
82
  props: ({ state }) => ({
91
83
  placeholder: state.placeholder,
84
+ value: state.value,
92
85
  round: 'Y',
93
86
  maxWidth: 'C2',
94
87
  padding: '0',
95
88
  style: { textAlign: 'center' }
96
89
  })
97
90
  },
91
+
98
92
  value2: {
99
93
  extend: Input,
100
94
  props: ({ state }) => ({
101
- hide: state.value !== 'exact',
102
- // value: state.value,
95
+ hide: state.type !== 'exact',
103
96
  placeholder: '728px',
104
97
  round: 'Y',
105
98
  maxWidth: 'C1',
@@ -123,21 +116,20 @@ const screenIconText = {
123
116
  })
124
117
  }
125
118
 
126
- const MediaValuesRow = {
119
+ const MediaQueryRow = {
127
120
  extend: Flex,
128
121
  props: {
129
122
  gap: 'D',
130
123
  align: 'center',
131
- minHeight: 'C2',
132
- padding: '- - - A',
124
+ minHeight: 'D',
125
+ padding: '- A - B',
133
126
  childProps: { minWidth: 'E' },
134
127
  ':not(:last-child)': {
135
128
  border: 'dashed, white 0.05',
136
- borderWidth: '0 0 1.5px'
129
+ borderWidth: '0 0 1px'
137
130
  },
138
131
  ':hover': {
139
- background: 'gray2',
140
- cursor: 'pointer'
132
+ background: 'gray2'
141
133
  },
142
134
  ':hover > div > button': { opacity: 1 }
143
135
  },
@@ -146,20 +138,18 @@ const MediaValuesRow = {
146
138
 
147
139
  columnBreakPoints: {
148
140
  extend: Flex,
149
- props: { gap: 'A2' },
141
+ props: { gap: 'D' },
142
+
150
143
  childExtend: BreakpointItem,
151
144
  $setStateCollection: ({ state }) => state.breakpoints
152
145
  },
153
146
 
154
- plusButtonContainer: {
155
- // props: { style: { border: '2px solid red' } },
147
+ plusButton: {
156
148
  button: {
157
149
  extend: SquareButton,
158
- props: {
159
- style: {
160
- border: '1px solid rgba(255, 255, 255, .1)'
161
- },
162
150
 
151
+ props: ({ state }) => ({
152
+ hide: Object.keys(state.breakpoints).length > 2,
163
153
  icon: { name: 'plus' },
164
154
  padding: 'X2',
165
155
  round: '100%',
@@ -167,7 +157,7 @@ const MediaValuesRow = {
167
157
  borderWidth: '1px',
168
158
  color: 'gray6',
169
159
  background: 'transparent'
170
- },
160
+ }),
171
161
 
172
162
  on: {
173
163
  click: (ev, el, s) => {
@@ -187,26 +177,20 @@ const MediaValuesRow = {
187
177
  margin: '- - - auto'
188
178
  },
189
179
  childExtend: {
190
- extend: SquareButton,
180
+ extend: [ClickableItem, SquareButton],
191
181
  props: {
192
- background: 'transparent',
193
- color: 'gray5',
194
182
  style: { opacity: '0' }
195
183
  }
196
184
  },
197
185
  ...[
198
186
  { props: { icon: 'eyeOpen' } },
199
187
  { props: { icon: 'arrowAngleMirroringHorizontal' } },
200
- {
201
- props: { icon: 'trashAlt' },
188
+ { props: { icon: 'trashAlt' },
202
189
  on: {
203
190
  click: (event, element, state) => {
204
191
  const { key } = element.parent.parent
205
- state.parent.update({
206
- data: {
207
- [key]: { name: 'asd' }
208
- }
209
- })
192
+ delete state.parent.data[key]
193
+ state.parent.update()
210
194
  }
211
195
  }
212
196
  }
@@ -214,14 +198,11 @@ const MediaValuesRow = {
214
198
  }
215
199
  }
216
200
 
217
- export const mediaValuesList = {
201
+ export const mediaQueryList = {
218
202
  state: BREAKPOINTS_DATA,
219
- props: {
220
- ...listProps,
221
- minWidth: 'I2'
222
- },
203
+ props: listProps,
223
204
 
224
- childExtend: MediaValuesRow,
205
+ childExtend: MediaQueryRow,
225
206
  $setStateCollection: ({ state }) => state.data
226
207
  }
227
208
 
@@ -275,11 +256,8 @@ const DefaultScreensRow = {
275
256
  values: {
276
257
  extend: Flex,
277
258
  props: {
278
- // minWidth: '100px',
279
259
  alignItems: 'center',
280
260
  gap: 'X1'
281
- // maxWidth: 'fit-content',
282
- // border: '2px solid green'
283
261
  },
284
262
 
285
263
  valueX: {
@@ -7,7 +7,10 @@ import {
7
7
  circle,
8
8
  toolTip,
9
9
  tagShape,
10
- bubble
10
+ bubble,
11
+ chevron,
12
+ tv,
13
+ hexagon
11
14
  } from './shapeSet'
12
15
 
13
16
  export const Shapes = {
@@ -16,43 +19,57 @@ export const Shapes = {
16
19
  flow: 'column'
17
20
  },
18
21
 
19
- childExtend: {
22
+ state: {
23
+ props: {}
24
+ },
25
+
26
+ content: {
20
27
  extend: Flex,
21
28
  props: {
22
- gap: 'A',
23
- flow: 'column',
24
- header: {
25
- margin: '- - A2'
26
- },
27
- section: {
28
- flow: 'row wrap',
29
- gap: 'A2'
30
- }
29
+ flow: 'column'
31
30
  },
32
- section: { extend: Flex }
33
- },
34
31
 
35
- htmlShapes: {
36
- SectionHeader: {
37
- title: 'HTML Shapes',
38
- p: 'All ungrouped document icons'
32
+ childExtend: {
33
+ extend: Flex,
34
+ props: {
35
+ gap: 'A2',
36
+ flow: 'column',
37
+ SectionHeader: {
38
+ margin: '- - A2'
39
+ },
40
+ section: {
41
+ flow: 'row wrap',
42
+ gap: 'A2'
43
+ }
44
+ },
45
+ section: { extend: Flex }
39
46
  },
40
47
 
41
- section: {
42
- rectangle,
43
- circle,
44
- toolTip,
45
- tagShape,
46
- bubble
47
- }
48
- },
48
+ htmlShapes: {
49
+ SectionHeader: {
50
+ title: 'HTML Shapes',
51
+ p: 'All ungrouped document icons'
52
+ },
49
53
 
50
- line: { extend: Line },
54
+ section: {
55
+ rectangle,
56
+ circle,
57
+ toolTip,
58
+ tagShape,
59
+ bubble,
60
+ tv,
61
+ chevron,
62
+ hexagon
63
+ }
64
+ },
65
+
66
+ line: { extend: Line },
51
67
 
52
- svgShapes: {
53
- SectionHeader: {
54
- title: 'SVG Shapes',
55
- p: 'TBA'
68
+ svgShapes: {
69
+ SectionHeader: {
70
+ title: 'SVG Shapes',
71
+ p: 'TBA'
72
+ }
56
73
  }
57
74
  }
58
75
  }
@@ -8,69 +8,126 @@ export const rectangle = {
8
8
  text: 'Rectangle ',
9
9
  span: 'with rounds'
10
10
  },
11
- nav: [
12
- { _shape: { round: '0' } },
13
- { _shape: { round: 'X' } },
14
- { _shape: { round: 'Y' } },
15
- { _shape: { round: 'Z' } },
16
- { _shape: { round: 'A' } },
17
- { _shape: { round: 'B' } },
18
- { _shape: { round: 'C' } }
19
- ].map(props => ({ props }))
11
+ list: {
12
+ $setStateCollection: () => [
13
+ { borderRadius: '0' },
14
+ { borderRadius: 'X' },
15
+ { borderRadius: 'Y' },
16
+ { borderRadius: 'Z' },
17
+ { borderRadius: 'A' },
18
+ { borderRadius: 'B' },
19
+ { borderRadius: 'C' }
20
+ ]
21
+ }
20
22
  }
21
23
 
22
24
  export const circle = {
23
25
  extend: ShapeSet,
24
26
  label: { text: 'Circle' },
25
- nav: [{
26
- _shape: { props: { shape: 'circle' } }
27
- }]
27
+ list: {
28
+ $setStateCollection: () => [
29
+ { shape: 'circle' }
30
+ ]
31
+ }
28
32
  }
29
33
 
30
34
  export const toolTip = {
31
35
  extend: ShapeSet,
32
36
  label: { text: 'Tooltip' },
33
- nav: {
37
+ list: {
34
38
  childExtend: {
35
- childExtend: { props: { round: 'Y1' } }
39
+ props: {
40
+ childProps: { borderRadius: 'Y1' }
41
+ }
36
42
  },
37
43
 
38
- ...[
39
- { _shape: { shape: 'tooltip', shapeDirection: 'top' } },
40
- { _shape: { shape: 'tooltip', shapeDirection: 'right' } },
41
- { _shape: { shape: 'tooltip', shapeDirection: 'bottom' } },
42
- { _shape: { shape: 'tooltip', shapeDirection: 'left' } }
43
- ].map(props => ({ props }))
44
+ $setStateCollection: () => [
45
+ { shape: 'tooltip', shapeDirection: 'top' },
46
+ { shape: 'tooltip', shapeDirection: 'right' },
47
+ { shape: 'tooltip', shapeDirection: 'bottom' },
48
+ { shape: 'tooltip', shapeDirection: 'left' }
49
+ ]
44
50
  }
45
51
  }
46
52
 
47
53
  export const tagShape = {
48
54
  extend: ShapeSet,
49
55
  label: { text: 'Tag' },
50
- nav: {
56
+ list: {
51
57
  childExtend: {
52
- childExtend: { props: { round: 6 } }
58
+ props: {
59
+ padding: 'B C2+W',
60
+ childProps: { borderRadius: 6 }
61
+ }
53
62
  },
54
- ...[
55
- { _shape: { shape: 'tag', shapeDirection: 'left' } },
56
- { _shape: { shape: 'tag', shapeDirection: 'top' } },
57
- { _shape: { shape: 'tag', shapeDirection: 'right' } },
58
- { _shape: { shape: 'tag', shapeDirection: 'bottom' } }
59
- ].map(props => ({ props }))
63
+ $setStateCollection: () => [
64
+ { shape: 'tag', shapeDirection: 'left' },
65
+ { shape: 'tag', shapeDirection: 'right' }
66
+ ]
60
67
  }
61
68
  }
62
69
 
63
70
  export const bubble = {
64
71
  extend: ShapeSet,
65
72
  label: { text: 'Bubble' },
66
- nav: [
67
- { _shape: { round: 'X B B X' } },
68
- { _shape: { round: 'B X X B' } },
69
- { _shape: { round: 'X X B B' } },
70
- { _shape: { round: 'B B X X' } },
71
- { _shape: { round: 'B X X X' } },
72
- { _shape: { round: 'X B X X' } },
73
- { _shape: { round: 'X X B X' } },
74
- { _shape: { round: 'X X X B' } }
75
- ].map(props => ({ props }))
73
+
74
+ list: {
75
+ $setStateCollection: () => [
76
+ { borderRadius: 'X B B X' },
77
+ { borderRadius: 'B X X B' },
78
+ { borderRadius: 'X X B B' },
79
+ { borderRadius: 'B B X X' },
80
+ { borderRadius: 'B X X X' },
81
+ { borderRadius: 'X B X X' },
82
+ { borderRadius: 'X X B X' },
83
+ { borderRadius: 'X X X B' }
84
+ ]
85
+ }
86
+ }
87
+
88
+ export const chevron = {
89
+ extend: ShapeSet,
90
+ label: { text: 'Chevron' },
91
+ list: {
92
+ childExtend: {
93
+ props: {
94
+ padding: 'B C2+W'
95
+ }
96
+ },
97
+ $setStateCollection: () => [
98
+ { shape: 'chevron', shapeDirection: 'left' },
99
+ { shape: 'chevron', shapeDirection: 'right' }
100
+ ]
101
+ }
102
+ }
103
+
104
+ export const tv = {
105
+ extend: ShapeSet,
106
+ label: { text: 'TV' },
107
+ list: {
108
+ childExtend: {
109
+ props: {
110
+ padding: 'B B2',
111
+ childProps: { minWidth: 'D' }
112
+ }
113
+ },
114
+ $setStateCollection: () => [
115
+ { shape: 'tv' }
116
+ ]
117
+ }
118
+ }
119
+
120
+ export const hexagon = {
121
+ extend: ShapeSet,
122
+ label: { text: 'Hexagon' },
123
+ list: {
124
+ childExtend: {
125
+ props: {
126
+ padding: 'B C2+W'
127
+ }
128
+ },
129
+ $setStateCollection: () => [
130
+ { shape: 'hexagon' }
131
+ ]
132
+ }
76
133
  }