@webstudio-is/react-sdk 0.59.0 → 0.61.0

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.
Files changed (163) hide show
  1. package/lib/app/custom-components/shared/remix-link.js +2 -2
  2. package/lib/app/index.js +0 -1
  3. package/lib/cjs/app/custom-components/shared/remix-link.js +2 -2
  4. package/lib/cjs/app/index.js +0 -1
  5. package/lib/cjs/components/__generated__/blockquote.props.js +5 -0
  6. package/lib/cjs/components/__generated__/body.props.js +5 -0
  7. package/lib/cjs/components/__generated__/bold.props.js +5 -0
  8. package/lib/cjs/components/__generated__/box.props.js +5 -0
  9. package/lib/cjs/components/__generated__/button.props.js +5 -1
  10. package/lib/cjs/components/__generated__/code.props.js +5 -0
  11. package/lib/cjs/components/__generated__/form.props.js +5 -0
  12. package/lib/cjs/components/__generated__/heading.props.js +5 -0
  13. package/lib/cjs/components/__generated__/image.props.js +5 -0
  14. package/lib/cjs/components/__generated__/input.props.js +11 -2
  15. package/lib/cjs/components/__generated__/italic.props.js +5 -0
  16. package/lib/cjs/components/__generated__/link-block.props.js +5 -1
  17. package/lib/cjs/components/__generated__/link.props.js +5 -1
  18. package/lib/cjs/components/__generated__/list-item.props.js +5 -0
  19. package/lib/cjs/components/__generated__/list.props.js +5 -0
  20. package/lib/cjs/components/__generated__/paragraph.props.js +5 -0
  21. package/lib/cjs/components/__generated__/rich-text-link.props.js +5 -1
  22. package/lib/cjs/components/__generated__/separator.props.js +5 -0
  23. package/lib/cjs/components/__generated__/span.props.js +5 -0
  24. package/lib/cjs/components/__generated__/subscript.props.js +5 -0
  25. package/lib/cjs/components/__generated__/superscript.props.js +5 -0
  26. package/lib/cjs/components/__generated__/text-block.props.js +5 -0
  27. package/lib/cjs/components/blockquote.ws.js +36 -48
  28. package/lib/cjs/components/body.ws.js +19 -24
  29. package/lib/cjs/components/button.ws.js +1 -1
  30. package/lib/cjs/components/code.ws.js +20 -28
  31. package/lib/cjs/components/component-meta.js +2 -1
  32. package/lib/cjs/components/form.ws.js +14 -7
  33. package/lib/cjs/components/heading.ws.js +1 -1
  34. package/lib/cjs/components/image.ws.js +8 -9
  35. package/lib/cjs/components/italic.ws.js +5 -5
  36. package/lib/cjs/components/link-block.ws.js +5 -5
  37. package/lib/cjs/components/link.js +1 -1
  38. package/lib/cjs/components/link.ws.js +9 -10
  39. package/lib/cjs/components/list-item.ws.js +1 -1
  40. package/lib/cjs/components/list.ws.js +22 -22
  41. package/lib/cjs/components/paragraph.ws.js +1 -1
  42. package/lib/cjs/components/separator.ws.js +20 -20
  43. package/lib/cjs/components/text-block.ws.js +6 -7
  44. package/lib/cjs/css/css.js +6 -9
  45. package/lib/cjs/css/normalize.js +166 -185
  46. package/lib/cjs/css/presets.js +14 -34
  47. package/lib/cjs/css/style-rules.js +17 -0
  48. package/lib/cjs/embed-template.js +160 -0
  49. package/lib/cjs/index.js +1 -0
  50. package/lib/components/__generated__/blockquote.props.js +5 -0
  51. package/lib/components/__generated__/body.props.js +5 -0
  52. package/lib/components/__generated__/bold.props.js +5 -0
  53. package/lib/components/__generated__/box.props.js +5 -0
  54. package/lib/components/__generated__/button.props.js +5 -1
  55. package/lib/components/__generated__/code.props.js +5 -0
  56. package/lib/components/__generated__/form.props.js +5 -0
  57. package/lib/components/__generated__/heading.props.js +5 -0
  58. package/lib/components/__generated__/image.props.js +5 -0
  59. package/lib/components/__generated__/input.props.js +11 -2
  60. package/lib/components/__generated__/italic.props.js +5 -0
  61. package/lib/components/__generated__/link-block.props.js +5 -1
  62. package/lib/components/__generated__/link.props.js +5 -1
  63. package/lib/components/__generated__/list-item.props.js +5 -0
  64. package/lib/components/__generated__/list.props.js +5 -0
  65. package/lib/components/__generated__/paragraph.props.js +5 -0
  66. package/lib/components/__generated__/rich-text-link.props.js +5 -1
  67. package/lib/components/__generated__/separator.props.js +5 -0
  68. package/lib/components/__generated__/span.props.js +5 -0
  69. package/lib/components/__generated__/subscript.props.js +5 -0
  70. package/lib/components/__generated__/superscript.props.js +5 -0
  71. package/lib/components/__generated__/text-block.props.js +5 -0
  72. package/lib/components/blockquote.ws.js +36 -48
  73. package/lib/components/body.ws.js +19 -24
  74. package/lib/components/button.ws.js +1 -1
  75. package/lib/components/code.ws.js +20 -28
  76. package/lib/components/component-meta.js +2 -1
  77. package/lib/components/form.ws.js +14 -7
  78. package/lib/components/heading.ws.js +1 -1
  79. package/lib/components/image.ws.js +8 -9
  80. package/lib/components/italic.ws.js +5 -5
  81. package/lib/components/link-block.ws.js +5 -5
  82. package/lib/components/link.js +1 -1
  83. package/lib/components/link.ws.js +9 -10
  84. package/lib/components/list-item.ws.js +1 -1
  85. package/lib/components/list.ws.js +22 -22
  86. package/lib/components/paragraph.ws.js +1 -1
  87. package/lib/components/separator.ws.js +20 -20
  88. package/lib/components/text-block.ws.js +6 -7
  89. package/lib/css/css.js +8 -11
  90. package/lib/css/normalize.js +166 -185
  91. package/lib/css/presets.js +14 -34
  92. package/lib/css/style-rules.js +17 -0
  93. package/lib/embed-template.js +140 -0
  94. package/lib/index.js +1 -0
  95. package/lib/types/app/index.d.ts +0 -1
  96. package/lib/types/components/box.stories.d.ts +2 -2
  97. package/lib/types/components/component-meta.d.ts +20 -5
  98. package/lib/types/components/components-utils.d.ts +1 -1
  99. package/lib/types/css/normalize.d.ts +8786 -2286
  100. package/lib/types/css/presets.d.ts +2 -38
  101. package/lib/types/css/style-rules.d.ts +11 -9
  102. package/lib/types/embed-template.d.ts +1725 -0
  103. package/lib/types/embed-template.test.d.ts +1 -0
  104. package/lib/types/index.d.ts +1 -0
  105. package/package.json +16 -19
  106. package/src/app/custom-components/shared/remix-link.tsx +2 -2
  107. package/src/app/index.ts +0 -1
  108. package/src/components/__generated__/blockquote.props.ts +5 -0
  109. package/src/components/__generated__/body.props.ts +5 -0
  110. package/src/components/__generated__/bold.props.ts +5 -0
  111. package/src/components/__generated__/box.props.ts +5 -0
  112. package/src/components/__generated__/button.props.ts +5 -1
  113. package/src/components/__generated__/code.props.ts +5 -0
  114. package/src/components/__generated__/form.props.ts +5 -0
  115. package/src/components/__generated__/heading.props.ts +5 -0
  116. package/src/components/__generated__/image.props.ts +5 -0
  117. package/src/components/__generated__/input.props.ts +11 -2
  118. package/src/components/__generated__/italic.props.ts +5 -0
  119. package/src/components/__generated__/link-block.props.ts +5 -1
  120. package/src/components/__generated__/link.props.ts +5 -1
  121. package/src/components/__generated__/list-item.props.ts +5 -0
  122. package/src/components/__generated__/list.props.ts +5 -0
  123. package/src/components/__generated__/paragraph.props.ts +5 -0
  124. package/src/components/__generated__/rich-text-link.props.ts +5 -1
  125. package/src/components/__generated__/separator.props.ts +5 -0
  126. package/src/components/__generated__/span.props.ts +5 -0
  127. package/src/components/__generated__/subscript.props.ts +5 -0
  128. package/src/components/__generated__/superscript.props.ts +5 -0
  129. package/src/components/__generated__/text-block.props.ts +5 -0
  130. package/src/components/blockquote.ws.tsx +42 -52
  131. package/src/components/body.ws.tsx +25 -32
  132. package/src/components/bold.ws.tsx +6 -3
  133. package/src/components/box.ws.ts +6 -3
  134. package/src/components/button.ws.tsx +7 -4
  135. package/src/components/code.ws.tsx +26 -32
  136. package/src/components/component-meta.ts +5 -3
  137. package/src/components/form.ws.tsx +19 -9
  138. package/src/components/heading.ws.tsx +7 -4
  139. package/src/components/image.ws.tsx +14 -12
  140. package/src/components/input.ws.tsx +6 -3
  141. package/src/components/italic.ws.tsx +11 -8
  142. package/src/components/link-block.ws.tsx +11 -8
  143. package/src/components/link.tsx +1 -1
  144. package/src/components/link.ws.tsx +15 -13
  145. package/src/components/list-item.ws.tsx +7 -4
  146. package/src/components/list.ws.tsx +28 -25
  147. package/src/components/paragraph.ws.tsx +7 -4
  148. package/src/components/separator.ws.tsx +26 -25
  149. package/src/components/span.ws.tsx +6 -3
  150. package/src/components/subscript.ws.tsx +6 -3
  151. package/src/components/superscript.ws.tsx +6 -3
  152. package/src/components/text-block.ws.tsx +12 -11
  153. package/src/css/css.ts +8 -11
  154. package/src/css/normalize.ts +165 -188
  155. package/src/css/presets.ts +15 -37
  156. package/src/css/style-rules.ts +24 -0
  157. package/src/embed-template.test.ts +210 -0
  158. package/src/embed-template.ts +187 -0
  159. package/src/index.ts +1 -0
  160. package/lib/app/handle-request.server.js +0 -16
  161. package/lib/cjs/app/handle-request.server.js +0 -36
  162. package/lib/types/app/handle-request.server.d.ts +0 -2
  163. package/src/app/handle-request.server.tsx +0 -21
@@ -2,18 +2,17 @@ import { LinkIcon } from "@webstudio-is/icons";
2
2
  import { a } from "../css/normalize";
3
3
  import { props } from "./__generated__/link.props";
4
4
  const presetStyle = {
5
- a: {
5
+ a: [
6
6
  ...a,
7
- minHeight: {
8
- type: "unit",
9
- unit: "em",
10
- value: 1
7
+ {
8
+ property: "minHeight",
9
+ value: { type: "unit", unit: "em", value: 1 }
11
10
  },
12
- display: {
13
- type: "keyword",
14
- value: "inline-block"
11
+ {
12
+ property: "display",
13
+ value: { type: "keyword", value: "inline-block" }
15
14
  }
16
- }
15
+ ]
17
16
  };
18
17
  const meta = {
19
18
  category: "general",
@@ -22,7 +21,7 @@ const meta = {
22
21
  Icon: LinkIcon,
23
22
  presetStyle,
24
23
  states: [{ selector: "[aria-current=page]", label: "Current page" }],
25
- children: ["Link text you can edit"]
24
+ children: [{ type: "text", value: "Link text you can edit" }]
26
25
  };
27
26
  const propsMeta = {
28
27
  props: {
@@ -9,7 +9,7 @@ const meta = {
9
9
  type: "rich-text",
10
10
  label: "List Item",
11
11
  Icon: ListItemIcon,
12
- children: ["List Item you can edit"],
12
+ children: [{ type: "text", value: "List Item you can edit" }],
13
13
  presetStyle
14
14
  };
15
15
  const propsMeta = {
@@ -2,36 +2,36 @@ import { ListIcon } from "@webstudio-is/icons";
2
2
  import { props } from "./__generated__/list.props";
3
3
  import { ol, ul } from "../css/normalize";
4
4
  const presetStyle = {
5
- ol: {
5
+ ol: [
6
6
  ...ol,
7
- marginTop: {
8
- type: "keyword",
9
- value: "0"
7
+ {
8
+ property: "marginTop",
9
+ value: { type: "keyword", value: "0" }
10
10
  },
11
- marginBottom: {
12
- type: "keyword",
13
- value: "10px"
11
+ {
12
+ property: "marginBottom",
13
+ value: { type: "keyword", value: "10px" }
14
14
  },
15
- paddingLeft: {
16
- type: "keyword",
17
- value: "40px"
15
+ {
16
+ property: "paddingLeft",
17
+ value: { type: "keyword", value: "40px" }
18
18
  }
19
- },
20
- ul: {
19
+ ],
20
+ ul: [
21
21
  ...ul,
22
- marginTop: {
23
- type: "keyword",
24
- value: "0"
22
+ {
23
+ property: "marginTop",
24
+ value: { type: "keyword", value: "0" }
25
25
  },
26
- marginBottom: {
27
- type: "keyword",
28
- value: "10px"
26
+ {
27
+ property: "marginBottom",
28
+ value: { type: "keyword", value: "10px" }
29
29
  },
30
- paddingLeft: {
31
- type: "keyword",
32
- value: "40px"
30
+ {
31
+ property: "paddingLeft",
32
+ value: { type: "keyword", value: "40px" }
33
33
  }
34
- }
34
+ ]
35
35
  };
36
36
  const meta = {
37
37
  category: "typography",
@@ -9,7 +9,7 @@ const meta = {
9
9
  type: "rich-text",
10
10
  label: "Paragraph",
11
11
  Icon: TextAlignLeftIcon,
12
- children: ["Pragraph you can edit"],
12
+ children: [{ type: "text", value: "Pragraph you can edit" }],
13
13
  presetStyle
14
14
  };
15
15
  const propsMeta = {
@@ -2,33 +2,33 @@ import { DashIcon } from "@webstudio-is/icons";
2
2
  import { props } from "./__generated__/separator.props";
3
3
  import { hr } from "../css/normalize";
4
4
  const presetStyle = {
5
- hr: {
5
+ hr: [
6
6
  ...hr,
7
- height: {
8
- type: "keyword",
9
- value: "1px"
7
+ {
8
+ property: "height",
9
+ value: { type: "keyword", value: "1px" }
10
10
  },
11
- backgroundColor: {
12
- type: "keyword",
13
- value: "gray"
11
+ {
12
+ property: "backgroundColor",
13
+ value: { type: "keyword", value: "gray" }
14
14
  },
15
- borderTopStyle: {
16
- type: "keyword",
17
- value: "none"
15
+ {
16
+ property: "borderTopStyle",
17
+ value: { type: "keyword", value: "none" }
18
18
  },
19
- borderRightStyle: {
20
- type: "keyword",
21
- value: "none"
19
+ {
20
+ property: "borderRightStyle",
21
+ value: { type: "keyword", value: "none" }
22
22
  },
23
- borderLeftStyle: {
24
- type: "keyword",
25
- value: "none"
23
+ {
24
+ property: "borderLeftStyle",
25
+ value: { type: "keyword", value: "none" }
26
26
  },
27
- borderBottomStyle: {
28
- type: "keyword",
29
- value: "none"
27
+ {
28
+ property: "borderBottomStyle",
29
+ value: { type: "keyword", value: "none" }
30
30
  }
31
- }
31
+ ]
32
32
  };
33
33
  const meta = {
34
34
  category: "general",
@@ -2,14 +2,13 @@ import { TextBlockIcon } from "@webstudio-is/icons";
2
2
  import { props } from "./__generated__/text-block.props";
3
3
  import { div } from "../css/normalize";
4
4
  const presetStyle = {
5
- div: {
5
+ div: [
6
6
  ...div,
7
- minHeight: {
8
- type: "unit",
9
- unit: "em",
10
- value: 1
7
+ {
8
+ property: "minHeight",
9
+ value: { type: "unit", unit: "em", value: 1 }
11
10
  }
12
- }
11
+ ]
13
12
  };
14
13
  const meta = {
15
14
  category: "typography",
@@ -17,7 +16,7 @@ const meta = {
17
16
  label: "Text Block",
18
17
  Icon: TextBlockIcon,
19
18
  presetStyle,
20
- children: ["Block of text you can edit"]
19
+ children: [{ type: "text", value: "Block of text you can edit" }]
21
20
  };
22
21
  const propsMeta = {
23
22
  props
package/lib/css/css.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import { createCssEngine } from "@webstudio-is/css-engine";
2
2
  import { getComponentNames } from "../components/components-utils";
3
3
  import { getComponentMeta } from "../components";
4
- import { componentAttribute, idAttribute } from "../tree";
4
+ import { idAttribute } from "../tree";
5
5
  import { addGlobalRules } from "./global-rules";
6
- import { getStyleRules } from "./style-rules";
6
+ import { getPresetStyleRules, getStyleRules } from "./style-rules";
7
7
  const createImageValueTransformer = (assets, options) => (styleValue) => {
8
8
  if (styleValue.type === "image" && styleValue.value.type === "asset") {
9
9
  const asset = assets.get(styleValue.value.value);
@@ -40,15 +40,12 @@ const generateCssText = (data, options) => {
40
40
  for (const component of getComponentNames()) {
41
41
  const meta = getComponentMeta(component);
42
42
  const presetStyle = meta?.presetStyle;
43
- if (presetStyle !== void 0) {
44
- for (const [tag, style] of Object.entries(presetStyle)) {
45
- engine.addStyleRule(
46
- `${tag}:where([${componentAttribute}=${component}])`,
47
- {
48
- style
49
- }
50
- );
51
- }
43
+ if (presetStyle === void 0) {
44
+ continue;
45
+ }
46
+ const rules = getPresetStyleRules(component, presetStyle);
47
+ for (const [selector, style] of rules) {
48
+ engine.addStyleRule(selector, { style });
52
49
  }
53
50
  }
54
51
  const styleRules = getStyleRules(styles, styleSourceSelections);
@@ -1,12 +1,9 @@
1
1
  import { borders } from "./presets";
2
2
  const boxSizing = {
3
- type: "keyword",
4
- value: "border-box"
5
- };
6
- const baseStyle = {
7
- boxSizing,
8
- ...borders
3
+ property: "boxSizing",
4
+ value: { type: "keyword", value: "border-box" }
9
5
  };
6
+ const baseStyle = [boxSizing, ...borders];
10
7
  const div = baseStyle;
11
8
  const address = baseStyle;
12
9
  const article = baseStyle;
@@ -32,262 +29,246 @@ const ul = baseStyle;
32
29
  const ol = baseStyle;
33
30
  const p = baseStyle;
34
31
  const span = baseStyle;
35
- const html = {
32
+ const html = [
36
33
  /* 1 */
37
- lineHeight: {
38
- type: "unit",
39
- value: 1.15,
40
- unit: "number"
34
+ {
35
+ property: "lineHeight",
36
+ value: { type: "unit", value: 1.15, unit: "number" }
41
37
  },
42
38
  /* 2 */
43
- textSizeAdjust: {
44
- type: "unit",
45
- value: 100,
46
- unit: "%"
39
+ {
40
+ property: "textSizeAdjust",
41
+ value: { type: "unit", value: 100, unit: "%" }
47
42
  },
48
43
  /* 3 */
49
- tabSize: {
50
- type: "unit",
51
- value: 4,
52
- unit: "number"
44
+ {
45
+ property: "tabSize",
46
+ value: { type: "unit", value: 4, unit: "number" }
53
47
  },
54
48
  boxSizing,
55
49
  ...borders
56
- };
57
- const body = {
50
+ ];
51
+ const body = [
58
52
  /* 1 */
59
- marginTop: {
60
- type: "unit",
61
- value: 0,
62
- unit: "number"
63
- },
64
- marginRight: {
65
- type: "unit",
66
- value: 0,
67
- unit: "number"
68
- },
69
- marginBottom: {
70
- type: "unit",
71
- value: 0,
72
- unit: "number"
73
- },
74
- marginLeft: {
75
- type: "unit",
76
- value: 0,
77
- unit: "number"
53
+ {
54
+ property: "marginTop",
55
+ value: { type: "unit", value: 0, unit: "number" }
56
+ },
57
+ {
58
+ property: "marginRight",
59
+ value: { type: "unit", value: 0, unit: "number" }
60
+ },
61
+ {
62
+ property: "marginBottom",
63
+ value: { type: "unit", value: 0, unit: "number" }
64
+ },
65
+ {
66
+ property: "marginLeft",
67
+ value: { type: "unit", value: 0, unit: "number" }
78
68
  },
79
69
  /* 2 */
80
- fontFamily: {
81
- type: "keyword",
82
- value: `system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji'`
70
+ {
71
+ property: "fontFamily",
72
+ value: {
73
+ type: "keyword",
74
+ value: `system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji'`
75
+ }
83
76
  },
84
77
  boxSizing,
85
78
  ...borders
86
- };
87
- const hr = {
79
+ ];
80
+ const hr = [
88
81
  /* 1 */
89
- height: {
90
- type: "unit",
91
- value: 0,
92
- unit: "number"
82
+ {
83
+ property: "height",
84
+ value: { type: "unit", value: 0, unit: "number" }
93
85
  },
94
86
  /* 2 */
95
- color: { type: "keyword", value: "inherit" },
87
+ {
88
+ property: "color",
89
+ value: { type: "keyword", value: "inherit" }
90
+ },
96
91
  boxSizing,
97
92
  ...borders
98
- };
99
- const b = {
100
- fontWeight: {
101
- type: "keyword",
102
- value: "bolder"
93
+ ];
94
+ const b = [
95
+ {
96
+ property: "fontWeight",
97
+ value: { type: "keyword", value: "700" }
103
98
  },
104
99
  boxSizing,
105
100
  ...borders
106
- };
101
+ ];
107
102
  const strong = b;
108
- const code = {
103
+ const code = [
109
104
  /* 1 */
110
- fontFamily: {
111
- type: "keyword",
112
- value: `ui-monospace, SFMono-Regular, Consolas, 'Liberation Mono', Menlo, monospace`
105
+ {
106
+ property: "fontFamily",
107
+ value: {
108
+ type: "keyword",
109
+ value: `ui-monospace, SFMono-Regular, Consolas, 'Liberation Mono', Menlo, monospace`
110
+ }
113
111
  },
114
112
  /* 2 */
115
- fontSize: {
116
- type: "unit",
117
- value: 1,
118
- unit: "em"
113
+ {
114
+ property: "fontSize",
115
+ value: { type: "unit", value: 1, unit: "em" }
119
116
  },
120
117
  boxSizing,
121
118
  ...borders
122
- };
119
+ ];
123
120
  const kbd = code;
124
121
  const samp = code;
125
122
  const pre = code;
126
- const small = {
127
- fontSize: {
128
- type: "unit",
129
- value: 80,
130
- unit: "%"
123
+ const small = [
124
+ {
125
+ property: "fontSize",
126
+ value: { type: "unit", value: 80, unit: "%" }
131
127
  },
132
128
  boxSizing,
133
129
  ...borders
134
- };
135
- const subSupBase = {
136
- fontSize: {
137
- type: "unit",
138
- value: 75,
139
- unit: "%"
130
+ ];
131
+ const subSupBase = [
132
+ {
133
+ property: "fontSize",
134
+ value: { type: "unit", value: 75, unit: "%" }
140
135
  },
141
- lineHeight: {
142
- type: "unit",
143
- value: 0,
144
- unit: "number"
136
+ {
137
+ property: "lineHeight",
138
+ value: { type: "unit", value: 0, unit: "number" }
145
139
  },
146
- position: {
147
- type: "keyword",
148
- value: "relative"
140
+ {
141
+ property: "position",
142
+ value: { type: "keyword", value: "relative" }
149
143
  },
150
- verticalAlign: {
151
- type: "keyword",
152
- value: "baseline"
144
+ {
145
+ property: "verticalAlign",
146
+ value: { type: "keyword", value: "baseline" }
153
147
  },
154
148
  boxSizing,
155
149
  ...borders
156
- };
157
- const sub = {
150
+ ];
151
+ const sub = [
158
152
  ...subSupBase,
159
- bottom: {
160
- type: "unit",
161
- value: -0.25,
162
- unit: "em"
153
+ {
154
+ property: "bottom",
155
+ value: { type: "unit", value: -0.25, unit: "em" }
163
156
  }
164
- };
165
- const sup = {
157
+ ];
158
+ const sup = [
166
159
  ...subSupBase,
167
- top: {
168
- type: "unit",
169
- value: -0.5,
170
- unit: "em"
160
+ {
161
+ property: "top",
162
+ value: { type: "unit", value: -0.5, unit: "em" }
171
163
  }
172
- };
173
- const table = {
164
+ ];
165
+ const table = [
174
166
  /* 1 */
175
- textIndent: {
176
- type: "unit",
177
- value: 0,
178
- unit: "number"
167
+ {
168
+ property: "textIndent",
169
+ value: { type: "unit", value: 0, unit: "number" }
179
170
  },
180
171
  ...borders,
181
172
  /* 2 */
182
- borderTopColor: {
183
- type: "keyword",
184
- value: "inherit"
173
+ {
174
+ property: "borderTopColor",
175
+ value: { type: "keyword", value: "inherit" }
185
176
  },
186
- borderRightColor: {
187
- type: "keyword",
188
- value: "inherit"
177
+ {
178
+ property: "borderRightColor",
179
+ value: { type: "keyword", value: "inherit" }
189
180
  },
190
- borderBottomColor: {
191
- type: "keyword",
192
- value: "inherit"
181
+ {
182
+ property: "borderBottomColor",
183
+ value: { type: "keyword", value: "inherit" }
193
184
  },
194
- borderLeftColor: {
195
- type: "keyword",
196
- value: "inherit"
185
+ {
186
+ property: "borderLeftColor",
187
+ value: { type: "keyword", value: "inherit" }
197
188
  },
198
189
  boxSizing
199
- };
200
- const buttonBase = {
190
+ ];
191
+ const buttonBase = [
201
192
  /* 1 */
202
- fontFamily: {
203
- type: "keyword",
204
- value: "inherit"
193
+ {
194
+ property: "fontFamily",
195
+ value: { type: "keyword", value: "inherit" }
205
196
  },
206
- fontSize: {
207
- type: "unit",
208
- value: 100,
209
- unit: "%"
197
+ {
198
+ property: "fontSize",
199
+ value: { type: "unit", value: 100, unit: "%" }
210
200
  },
211
- lineHeight: {
212
- type: "unit",
213
- value: 1.15,
214
- unit: "number"
201
+ {
202
+ property: "lineHeight",
203
+ value: { type: "unit", value: 1.15, unit: "number" }
215
204
  },
216
205
  /* 2 */
217
- marginTop: {
218
- type: "unit",
219
- value: 0,
220
- unit: "number"
221
- },
222
- marginRight: {
223
- type: "unit",
224
- value: 0,
225
- unit: "number"
226
- },
227
- marginBottom: {
228
- type: "unit",
229
- value: 0,
230
- unit: "number"
231
- },
232
- marginLeft: {
233
- type: "unit",
234
- value: 0,
235
- unit: "number"
206
+ {
207
+ property: "marginTop",
208
+ value: { type: "unit", value: 0, unit: "number" }
209
+ },
210
+ {
211
+ property: "marginRight",
212
+ value: { type: "unit", value: 0, unit: "number" }
213
+ },
214
+ {
215
+ property: "marginBottom",
216
+ value: { type: "unit", value: 0, unit: "number" }
217
+ },
218
+ {
219
+ property: "marginLeft",
220
+ value: { type: "unit", value: 0, unit: "number" }
236
221
  },
237
222
  boxSizing,
238
223
  ...borders
239
- };
224
+ ];
240
225
  const input = buttonBase;
241
226
  const optgroup = buttonBase;
242
227
  const textarea = buttonBase;
243
- const button = {
228
+ const button = [
244
229
  ...buttonBase,
245
- textTransform: {
246
- type: "keyword",
247
- value: "none"
230
+ {
231
+ property: "textTransform",
232
+ value: { type: "keyword", value: "none" }
248
233
  }
249
- };
234
+ ];
250
235
  const select = button;
251
- const legend = {
252
- paddingTop: {
253
- type: "unit",
254
- value: 0,
255
- unit: "number"
256
- },
257
- paddingRight: {
258
- type: "unit",
259
- value: 0,
260
- unit: "number"
261
- },
262
- paddingBottom: {
263
- type: "unit",
264
- value: 0,
265
- unit: "number"
266
- },
267
- paddingLeft: {
268
- type: "unit",
269
- value: 0,
270
- unit: "number"
236
+ const legend = [
237
+ {
238
+ property: "paddingTop",
239
+ value: { type: "unit", value: 0, unit: "number" }
240
+ },
241
+ {
242
+ property: "paddingRight",
243
+ value: { type: "unit", value: 0, unit: "number" }
244
+ },
245
+ {
246
+ property: "paddingBottom",
247
+ value: { type: "unit", value: 0, unit: "number" }
248
+ },
249
+ {
250
+ property: "paddingLeft",
251
+ value: { type: "unit", value: 0, unit: "number" }
271
252
  },
272
253
  boxSizing,
273
254
  ...borders
274
- };
275
- const progress = {
276
- verticalAlign: {
277
- type: "keyword",
278
- value: "baseline"
255
+ ];
256
+ const progress = [
257
+ {
258
+ property: "verticalAlign",
259
+ value: { type: "keyword", value: "baseline" }
279
260
  },
280
261
  boxSizing,
281
262
  ...borders
282
- };
283
- const summary = {
284
- display: {
285
- type: "keyword",
286
- value: "list-item"
263
+ ];
264
+ const summary = [
265
+ {
266
+ property: "display",
267
+ value: { type: "keyword", value: "list-item" }
287
268
  },
288
269
  boxSizing,
289
270
  ...borders
290
- };
271
+ ];
291
272
  export {
292
273
  a,
293
274
  address,