@symbo.ls/preview 0.0.49 → 0.0.51

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.
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { CATEGORIES } from '../categories'
4
4
 
5
- import { Label, HoverEffect } from '@symbo.ls/components'
5
+ import { Label } from '@symbo.ls/components'
6
6
 
7
7
  const key = 'label'
8
8
  const title = 'Label'
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@symbo.ls/preview",
3
3
  "description": "",
4
4
  "author": "",
5
- "version": "0.0.49",
5
+ "version": "0.0.51",
6
6
  "repository": "https://github.com/rackai/editor",
7
7
  "main": "src/index.js",
8
8
  "scripts": {
Binary file
Binary file
Binary file
@@ -0,0 +1,62 @@
1
+ 'use strict'
2
+
3
+ import { Flex, Link, Hoverable, Pseudo, ArticleMedium } from '@symbo.ls/components'
4
+
5
+ export const TutorialBanner = {
6
+ extend: [Link, Flex, ArticleMedium, Pseudo, Hoverable],
7
+
8
+ props: ({ state }) => ({
9
+ flow: 'column',
10
+ round: 'A',
11
+ flex: '1',
12
+ height: 'F',
13
+ padding: 'A2 B',
14
+ background: 'gray2',
15
+ href: state.href,
16
+ gap: '0',
17
+ overflow: 'hidden',
18
+ position: 'relative',
19
+ color: 'white',
20
+
21
+ title: { margin: 'auto 0 0', text: state.title },
22
+ p: { text: state.p },
23
+
24
+ style: {
25
+ 'h2, p': {
26
+ zIndex: 2
27
+ }
28
+ },
29
+
30
+ ':after, &:before': {
31
+ content: '""',
32
+ position: 'absolute',
33
+ zIndex: 0,
34
+ inset: '-5px -5px -5px -5px'
35
+ },
36
+
37
+ ':before': {
38
+ transition: 'B default-bezier',
39
+ transitionProperty: 'opacity',
40
+ backgroundImage: `url(${state.background})`,
41
+ backgroundSize: 'cover',
42
+ opacity: '0.5'
43
+ },
44
+
45
+ ':after': {
46
+ transition: 'B default-bezier',
47
+ transitionProperty: 'opacity',
48
+ background: 'imageOverlay',
49
+ opacity: '0.9'
50
+ },
51
+
52
+ ':hover': {
53
+ padding: 'B B1',
54
+ ':before': {
55
+ opacity: '0.9'
56
+ },
57
+ ':after': {
58
+ opacity: '1'
59
+ }
60
+ }
61
+ })
62
+ }
@@ -101,7 +101,7 @@ const scene = {
101
101
  minWidth: state.props['gap']
102
102
  })
103
103
  },
104
- base: (el, s) => s.base
104
+ base: { text: (el, s) => s.base }
105
105
  }
106
106
  }
107
107
  }, {
@@ -144,7 +144,10 @@ export const SpacingPreview = {
144
144
  title: null,
145
145
  code: {
146
146
  props: {
147
- text: ({ state }) => 'const props = ' + JSON.stringify(state.props, null, 2)
147
+ text: ({ state }) => {
148
+ const code = 'const props = ' + JSON.stringify(state.props, null, 2)
149
+ return code
150
+ }
148
151
  }
149
152
  }
150
153
  }
@@ -1,6 +1,7 @@
1
1
  'use strict'
2
2
 
3
3
  export * from './Header'
4
+ export * from './Banner'
4
5
  export * from './ShapeSet'
5
6
  export * from './ShapePreview'
6
7
  export * from './SpacingPreview'
@@ -0,0 +1,82 @@
1
+ 'use strict'
2
+
3
+ import { Flex, ArticleMedium, QuickStart } from '@symbo.ls/components'
4
+ import { TutorialBanner } from '../../../components'
5
+
6
+ import DARK_PNG from '../../../assets/dark.png'
7
+ import TYPE_PNG from '../../../assets/type.png'
8
+ import SPACE_PNG from '../../../assets/space.png'
9
+
10
+ const banners = {
11
+ extend: Flex,
12
+ props: {
13
+ align: 'stretch space-between',
14
+ margin: 'C1 -Z1',
15
+ gap: 'B1'
16
+ },
17
+
18
+ childExtend: TutorialBanner,
19
+
20
+ $setStateCollection: ({ state }) => [{
21
+ title: 'Setting up a dark theme',
22
+ p: '1 min tutorial',
23
+ background: DARK_PNG,
24
+ href: ''
25
+ }, {
26
+ title: 'Learn typography scaling',
27
+ p: '2 mins tutorial',
28
+ background: TYPE_PNG,
29
+ href: ''
30
+ }, {
31
+ title: 'How scaling of space works',
32
+ p: '5 mins tutorial',
33
+ background: SPACE_PNG,
34
+ href: ''
35
+ }]
36
+ }
37
+
38
+ const header = {
39
+ extend: ArticleMedium,
40
+ props: {
41
+ '@mobileS': { padding: '- - - A' },
42
+ title: {
43
+ fontWeight: '600',
44
+ text: 'Design System takeaways'
45
+ },
46
+
47
+ p: { text: `Your tokens in the system`
48
+ },
49
+
50
+ p2: {
51
+ display: 'none',
52
+ color: 'gray6',
53
+ margin: '0'
54
+ }
55
+ },
56
+
57
+ title: {},
58
+ p: {},
59
+ p2: {
60
+ tag: 'p',
61
+ ...[
62
+ 'Welcome to the Symbols documentation page.',
63
+ { text: `Here you'll learn everything…` }
64
+ ]
65
+ }
66
+ }
67
+
68
+ const summary = {
69
+ header
70
+
71
+ }
72
+
73
+ export const DesignSystemDashboard = {
74
+ ArticleBig: {
75
+ title: { text: 'Design System' },
76
+ p: { text: 'Create your Design System guidelines' }
77
+ },
78
+
79
+ banners,
80
+ quickStart: { extend: QuickStart },
81
+ summary
82
+ }
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { router } from '@domql/router'
4
4
 
5
- import { Main } from './Main'
5
+ import { DesignSystemDashboard } from './Dashboard'
6
6
  import {
7
7
  ClickableItem,
8
8
  Flex,
@@ -125,7 +125,7 @@ export const DesignSystem = {
125
125
 
126
126
  define: { routes: param => param },
127
127
  routes: {
128
- '/design-system': Main,
128
+ '/design-system': DesignSystemDashboard,
129
129
  '/colors': Color,
130
130
  '/theme': Theme,
131
131
  '/typography': Typography,
@@ -24,16 +24,16 @@ const IconItem = {
24
24
  scrollToTop: false,
25
25
  aspectRatio: '1 / 1',
26
26
  flexAlign: 'center center',
27
- href: '/icons/edit-icon/' + state.name,
27
+ href: '/icons/edit-icon/' + state.value,
28
28
  theme: 'tertiary',
29
29
  icon: {
30
30
  fontSize: 'C2',
31
- name: state.name
31
+ name: state.value
32
32
  }
33
33
  }),
34
34
  on: {
35
35
  click: (event, element, state) => {
36
- copyStringToClipboard(state.name)
36
+ copyStringToClipboard(state.value)
37
37
  Link.on.click(event, element, state)
38
38
  }
39
39
  }
@@ -41,6 +41,7 @@ const IconItem = {
41
41
 
42
42
  const IconsGroup = {
43
43
  state: { toggleShow: true },
44
+ props: ({ state }) => ({ hide: !Object.keys(state.list).length }),
44
45
 
45
46
  header: { extend: SectionHeader },
46
47
 
@@ -50,11 +51,7 @@ const IconsGroup = {
50
51
  hide: !state.toggleShow,
51
52
  columns: 'repeat(12, 1fr)',
52
53
  gap: 'Z',
53
- margin: '- -Z2',
54
-
55
- $hide: {
56
- display: 'none'
57
- }
54
+ margin: '- -Z2'
58
55
  }),
59
56
 
60
57
  childExtend: IconItem,
@@ -62,7 +59,13 @@ const IconsGroup = {
62
59
  }
63
60
  }
64
61
 
65
- const ICON_GROUPS = [{
62
+ const ArraizeIconsCategory = (library, state) => {
63
+ const list = Object.keys(library)
64
+ if (state.searched) return list.filter(value => console.log(value, state.searched, value.includes(state.searched)) || value.includes(state.searched))
65
+ return list
66
+ }
67
+
68
+ const ICON_GROUPS = state => [{
66
69
  title: 'Document Icons',
67
70
  p: 'All ungrouped document icons',
68
71
 
@@ -71,49 +74,70 @@ const ICON_GROUPS = [{
71
74
  href: '/icons/add-icon'
72
75
  }],
73
76
 
74
- list: Object.keys(SVG).map(name => ({ name }))
77
+ list: ArraizeIconsCategory(SVG, state)
75
78
  }, {
76
79
  title: 'Accessibility',
77
- list: Object.keys(ACCESSIBILITY).map(name => ({ name })),
78
- p: ''
80
+ list: ArraizeIconsCategory(ACCESSIBILITY, state)
79
81
  }, {
80
82
  title: 'Box Model',
81
- list: Object.keys(BOXMODEL).map(name => ({ name }))
83
+ list: ArraizeIconsCategory(BOXMODEL, state)
82
84
  }, {
83
85
  title: 'Display',
84
- list: Object.keys(DISPLAY).map(name => ({ name }))
86
+ list: ArraizeIconsCategory(DISPLAY, state)
85
87
  }, {
86
88
  title: 'Interactive',
87
- list: Object.keys(INTERACTIVE).map(name => ({ name }))
89
+ list: ArraizeIconsCategory(INTERACTIVE, state)
88
90
  }, {
89
91
  title: 'Logos',
90
- list: Object.keys(LOGOS).map(name => ({ name }))
92
+ list: ArraizeIconsCategory(LOGOS, state)
91
93
  }, {
92
94
  title: 'Signs',
93
- list: Object.keys(SIGNS).map(name => ({ name }))
95
+ list: ArraizeIconsCategory(SIGNS, state)
94
96
  }, {
95
97
  title: 'Style',
96
- list: Object.keys(STYLE).map(name => ({ name }))
98
+ list: ArraizeIconsCategory(STYLE, state)
97
99
  }, {
98
100
  title: 'Keys',
99
- list: Object.keys(KEYBOARD).map(name => ({ name }))
101
+ list: ArraizeIconsCategory(KEYBOARD, state)
100
102
  }, {
101
103
  title: 'Tech',
102
- list: Object.keys(TECH).map(name => ({ name }))
104
+ list: ArraizeIconsCategory(TECH, state)
103
105
  }, {
104
106
  title: 'Text',
105
- list: Object.keys(TEXT).map(name => ({ name }))
107
+ list: ArraizeIconsCategory(TEXT, state)
106
108
  }]
107
109
 
108
110
  export const Icons = {
109
- tag: 'section',
110
- extend: Flex,
111
+ state: {},
112
+
113
+ header: {
114
+ extend: SectionHeader,
115
+ heading: {
116
+ title: 'Icons',
117
+ p: 'Unlike typography, component may has the properties of padding, gap, width and rest.'
118
+ },
119
+
120
+ Search: {
121
+ margin: '- -Z2 - -',
122
+ placeholder: 'Search Icons'
123
+ },
111
124
 
112
- props: {
113
- flow: 'column',
114
- gap: 'D1'
125
+ nav: null
115
126
  },
116
127
 
117
- childExtend: IconsGroup,
118
- $setStateCollection: () => ICON_GROUPS
128
+ Line: {},
129
+
130
+ cnt: {
131
+ extend: Flex,
132
+ props: {
133
+ flow: 'column',
134
+ gap: 'D1'
135
+ },
136
+
137
+ childExtend: IconsGroup,
138
+ $setStateCollection: (el, state) => {
139
+ el.removeContent()
140
+ return ICON_GROUPS(state)
141
+ }
142
+ }
119
143
  }
@@ -7,6 +7,7 @@ export const SpacingScale = {
7
7
  extend: [Flex],
8
8
 
9
9
  props: {
10
+ lazyLoad: true,
10
11
  flow: 'column',
11
12
  gap: 'C1'
12
13
  },
@@ -18,15 +19,15 @@ export const SpacingScale = {
18
19
  },
19
20
 
20
21
  SequenceSliders: {
21
- position: 'sticky',
22
- top: 'C2',
23
- background: 'black .5',
24
- zIndex: '9999',
25
- margin: '-B2 -B -B',
26
- padding: 'B2 B B',
27
- style: {
28
- backdropFilter: 'blur(15px)'
29
- }
22
+ // position: 'sticky',
23
+ // top: 'C2',
24
+ // background: 'black .5',
25
+ // zIndex: '9999',
26
+ // margin: '-B2 -B -B',
27
+ // padding: 'B2 B B',
28
+ // style: {
29
+ // backdropFilter: 'blur(15px)'
30
+ // }
30
31
  },
31
32
 
32
33
  scale: {
@@ -24,7 +24,8 @@ const ChoosableButton = {
24
24
  color: 'gray7'
25
25
  },
26
26
  ':hover': {
27
- theme: 'quaternary'
27
+ theme: 'quaternary',
28
+ '.active': { color: 'blue' }
28
29
  },
29
30
  '.active': {
30
31
  theme: null
@@ -97,10 +98,8 @@ const BUTTONS = {
97
98
  }
98
99
  }
99
100
 
100
- let keys
101
101
  const cachedKeys = state => {
102
- if (!keys) keys = Object.keys(BUTTONS[state.value]).filter(v => v !== 'maxValue')
103
- return keys
102
+ return Object.keys(BUTTONS[state.value]).filter(v => v !== 'maxValue')
104
103
  }
105
104
 
106
105
  export default {
@@ -114,9 +113,9 @@ export default {
114
113
  extend: [ChoosableButton, DropdownParent, WiderButton],
115
114
 
116
115
  props: ({ key, state, parent }) => ({
116
+ lazyLoad: true,
117
117
  active: state.parent.parent.props[state.value] === state.parent.key,
118
118
  icon: { name: state.value },
119
- lazyLoad: true,
120
119
 
121
120
  '.active': {
122
121
  color: 'blue',
@@ -169,18 +168,21 @@ export default {
169
168
  return {
170
169
  lazyLoad: true,
171
170
  active,
172
- icon: {
173
- name: iconKey
174
- },
171
+ icon: { name: iconKey },
175
172
  gridArea: keys.length > 3 && diffPropPosition(propState.value, state.value),
176
173
  theme: null,
177
- background: 'transparent 0',
178
- '.active': {
179
- theme: null,
180
- color: 'blue',
174
+ '@dark': {
175
+ background: 'transparent 0',
176
+ color: 'gray7',
181
177
  ':hover': {
182
- color: 'blue'
178
+ theme: 'quinary',
179
+ color: 'gray8'
183
180
  }
181
+ },
182
+ ':hover': null,
183
+ '.active': {
184
+ theme: null,
185
+ color: 'blue'
184
186
  }
185
187
  }
186
188
  },
@@ -244,6 +246,9 @@ export default {
244
246
  const tableState = rowState.parent
245
247
  const propKey = diffPropValue(propState.value, state.value)
246
248
  const active = tableState.props[propKey] === rowState.key
249
+
250
+ const isRadius = propState.value === 'borderRadius'
251
+
247
252
  return {
248
253
  position: 'absolute',
249
254
  round: '100%',
@@ -252,11 +257,21 @@ export default {
252
257
  lazyLoad: true,
253
258
 
254
259
  hide: !active,
260
+ isRadius,
261
+
262
+ '!isRadius': {
263
+ ':nth-child(1)': { left: '50%', top: 'W' },
264
+ ':nth-child(2)': { right: 'W', top: '50%' },
265
+ ':nth-child(3)': { left: '50%', bottom: 'W' },
266
+ ':nth-child(4)': { left: 'W', top: '50%' }
267
+ },
255
268
 
256
- ':nth-child(1)': { left: '50%', top: 'W' },
257
- ':nth-child(2)': { right: 'W', top: '50%' },
258
- ':nth-child(3)': { left: '50%', bottom: 'W' },
259
- ':nth-child(4)': { left: 'W', top: '50%' }
269
+ '.isRadius': {
270
+ ':nth-child(1)': { left: 'X2', top: 'X2' },
271
+ ':nth-child(2)': { right: 'X2', top: 'X2' },
272
+ ':nth-child(3)': { right: 'X2', bottom: 'X2' },
273
+ ':nth-child(4)': { left: 'X2', bottom: 'X2' }
274
+ }
260
275
  }
261
276
  }
262
277
  },
@@ -19,7 +19,3 @@ export const Spaces = {
19
19
 
20
20
  scale: SpacingScale
21
21
  }
22
-
23
- // preview,
24
- // sequence,
25
- // boxModel
Binary file
Binary file
@@ -1,110 +0,0 @@
1
- 'use strict'
2
-
3
- import { Flex, Link, ArticleMedium, QuickStart } from '@symbo.ls/components'
4
-
5
- const Banner = {
6
- extend: [Link, Flex, ArticleMedium],
7
- props: ({ state }) => ({
8
- flow: 'column',
9
- round: 'A',
10
- flex: '1',
11
- height: 'F',
12
- padding: 'A2 B',
13
- backgroundImage: `url(${state.background})`,
14
- backgroundSize: 'cover',
15
- href: state.href,
16
- gap: '0',
17
-
18
- title: { margin: 'auto 0 0', text: state.title },
19
- p: { text: state.p }
20
- })
21
- }
22
-
23
- const banners = {
24
- extend: Flex,
25
- props: {
26
- align: 'stretch space-between',
27
- margin: 'C1 -Z2',
28
- gap: 'B1'
29
- },
30
-
31
- childExtend: Banner,
32
-
33
- $setStateCollection: ({ state }) => [{
34
- title: 'Setting up a dark theme',
35
- p: '5 mins tutorial',
36
- background: 'https://p194.p3.n0.cdn.getcloudapp.com/items/eDu7le4P/ef9249a0-c522-49a7-8a0e-d7152b2e73a1.png?v=c4c8cd49408f26a6046b11f35d7b0656',
37
- href: ''
38
- }, {
39
- title: 'Learn typography scaling',
40
- p: '5 mins tutorial',
41
- background: '',
42
- href: ''
43
- }]
44
- }
45
-
46
- const header = {
47
- extend: ArticleMedium,
48
- props: {
49
- '@mobileS': { padding: '- - - A' },
50
- title: {
51
- fontWeight: '600',
52
- text: 'Design System takeaways'
53
- },
54
-
55
- p: { text: `Your tokens in the system`
56
- },
57
-
58
- p2: {
59
- display: 'none',
60
- color: 'gray6',
61
- margin: '0'
62
- }
63
- },
64
-
65
- title: {},
66
- p: {},
67
- p2: {
68
- tag: 'p',
69
- ...[
70
- 'Welcome to the Symbols documentation page.',
71
- { text: `Here you'll learn everything…` }
72
- ]
73
- }
74
- }
75
-
76
- const summary = {
77
- header,
78
-
79
- grid: {
80
- extend: Flex,
81
- props: {
82
- align: 'stretch space-between',
83
- margin: 'C1 -Z2',
84
- gap: 'B1'
85
- },
86
-
87
- $setStateCollection: ({ state }) => [{
88
- title: 'Setting up a dark theme',
89
- p: '5 mins tutorial',
90
- background: 'https://p194.p3.n0.cdn.getcloudapp.com/items/eDu7le4P/ef9249a0-c522-49a7-8a0e-d7152b2e73a1.png?v=c4c8cd49408f26a6046b11f35d7b0656',
91
- href: ''
92
- }, {
93
- title: 'Learn typography scaling',
94
- p: '5 mins tutorial',
95
- background: '',
96
- href: ''
97
- }]
98
- }
99
- }
100
-
101
- export const Main = {
102
- ArticleBig: {
103
- title: { text: 'Design System' },
104
- p: { text: 'Create your Design System guidelines' }
105
- },
106
-
107
- banners,
108
- quickStart: { extend: QuickStart },
109
- summary
110
- }
@@ -1 +0,0 @@
1
- 'use strict'
File without changes
File without changes
File without changes
File without changes
File without changes