-
Notifications
You must be signed in to change notification settings - Fork 3
/
data.js
62 lines (58 loc) · 2.87 KB
/
data.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import HtmlEntities from 'html-entities';
import data from '../data/data.json';
const {decode} = new HtmlEntities.AllHtmlEntities();
const overrides = {
// properties
'-webkit-tap-highlight-color': '<color>#',
'-webkit-mask-attachment': '<attachment>#',
'-webkit-mask-composite': '<composite-style>#',
'-webkit-mask-repeat': '<repeat-style>#',
'-webkit-mask-position': '<position>#',
'animation-timing-function': '<single-transition-timing-function>#',
bottom: '<length-percentage> | auto',
cursor: '[ [<url> [<x> <y>]?,]* [ auto | default | none | context-menu | help | pointer | progress | wait | cell | crosshair | text | vertical-text | alias | copy | move | no-drop | not-allowed | grab | grabbing | e-resize | n-resize | ne-resize | nw-resize | s-resize | se-resize | sw-resize | w-resize | ew-resize | ns-resize | nesw-resize | nwse-resize | col-resize | row-resize | all-scroll | zoom-in | zoom-out ] ]',
left: '<length-percentage> | auto',
'line-height': 'normal | <number> | <length-percentage>',
'margin-bottom': '<length-percentage> | auto',
'margin-left': '<length-percentage> | auto',
'margin-right': '<length-percentage> | auto',
'margin-top': '<length-percentage> | auto',
'max-height': '<length-percentage> | none | max-content | min-content | fit-content | fill-available',
'max-width': '<length-percentage> | none | max-content | min-content | fit-content | fill-available',
'min-height': '<length-percentage> | none | max-content | min-content | fit-content | fill-available',
'min-width': '<length-percentage> | none | max-content | min-content | fit-content | fill-available',
'padding-bottom': '<length-percentage>',
'padding-left': '<length-percentage>',
'padding-right': '<length-percentage>',
'padding-top': '<length-percentage>',
right: '<length-percentage> | auto',
'text-emphasis-style': 'none | [ [ filled | open ] || [ dot | circle | double-circle | triangle | sesame ] ] | <string>',
'text-indent': '[ <length> | <percentage> ] && hanging? && each-line?',
top: '<length-percentage> | auto',
'vertical-align': 'baseline | sub | super | text-top | text-bottom | middle | top | bottom | <length-percentage>',
'clip-path': '<clip-path-property> | none ',
// syntaxes
'feature-value-name': '<IDENT>',
'single-transition-property': 'all | <IDENT>',
};
export const properties = Object.keys(data.properties).map(name => {
let syntax = decode(data.properties[name].syntax);
if (overrides[name]) {
syntax = overrides[name];
}
return {
...data.properties[name],
name,
syntax: syntax.trim(),
};
});
export const syntaxes = Object.keys(data.syntaxes).map(name => {
let syntax = decode(data.syntaxes[name]);
if (overrides[name]) {
syntax = overrides[name];
}
return {
name,
syntax,
};
});