@wizeworks/silicaui-mcp 0.37.0 → 0.39.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.
- package/README.md +4 -1
- package/dist/data/email.json +1131 -0
- package/dist/data/packages.json +1 -1
- package/dist/data/schema.json +1428 -0
- package/dist/server.js +132 -3
- package/dist/server.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,1428 @@
|
|
|
1
|
+
{
|
|
2
|
+
"entrypoint": "@wizeworks/silicaui-html",
|
|
3
|
+
"behaviorRuntime": "@wizeworks/silicaui-behaviors",
|
|
4
|
+
"sourceFile": "silicaui-html/src/schema.ts",
|
|
5
|
+
"note": "A silica document is a TREE of nodes projected to HTML by `toHtml`. A node is an element (a raw tag), a component (a @wizeworks/silicaui macro that EXPANDS to an element subtree), an outlet (the reserved marker for where a routed page renders inside a frame — valid only in a frame), or a host node (an opaque mount point for a host's own live widget). A plain STRING child is a text node, so mixed inline content composes naturally. `class` is the ONLY styling surface — there is no inline style, ever.",
|
|
6
|
+
"child": "A child is another node, or a plain string (a text node).",
|
|
7
|
+
"nodeBase": [
|
|
8
|
+
{
|
|
9
|
+
"name": "id",
|
|
10
|
+
"optional": true,
|
|
11
|
+
"type": "string",
|
|
12
|
+
"doc": "GLOBALLY-UNIQUE instance id. Present on DOCUMENT nodes (selection, keys, dnd); ABSENT on template/block nodes. Minted at stamp/duplicate/paste."
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"name": "label",
|
|
16
|
+
"optional": true,
|
|
17
|
+
"type": "string",
|
|
18
|
+
"doc": "Builder-only layer name shown in the Navigator (user-renamable). Authoring metadata — ignored by every projection."
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"name": "ord",
|
|
22
|
+
"optional": true,
|
|
23
|
+
"type": "string",
|
|
24
|
+
"doc": "Fractional ORDERING KEY among siblings — a string chosen to sort strictly between its neighbors (see `generateKeyBetween`). Authoring metadata in the same band as `label`/`locked`: no projection reads it, and `exportSite` strips it, so it never reaches published markup. `children` order still drives local rendering; `ord` is the key that makes a position transportable. An array index is not a stable address — \"insert at 2\" resolves differently depending on what else landed first, so two authors inserting into one parent produce a result neither saw. A key between two neighbors is stable: an insert touches only the inserted node, the parent is never rewritten, and concurrent inserts can't collide. Absent on template/block nodes (like `id`) and on any tree authored before ordering keys existed; `assignOrds` backfills it at load in array order."
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "class",
|
|
28
|
+
"optional": true,
|
|
29
|
+
"type": "string",
|
|
30
|
+
"doc": "The ONLY styling surface: @wizeworks/silicaui component classes + the allowed utility subset. A host gates these. No inline style, ever."
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"name": "children",
|
|
34
|
+
"optional": true,
|
|
35
|
+
"type": "Child[]",
|
|
36
|
+
"doc": ""
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"name": "rawHtml",
|
|
40
|
+
"optional": true,
|
|
41
|
+
"type": "string",
|
|
42
|
+
"doc": "RENDER-TIME-ONLY trusted inner HTML, emitted UNESCAPED by `toHtml` in place of `children`. It is NOT part of the authored/persisted schema and must never be hand-authored: `resolveTree` sets it from an `html` data binding, whose value the HOST is responsible for sanitizing at its data boundary (same trust model as React's `dangerouslySetInnerHTML` / Vue's `v-html`). This is the one sanctioned bypass of the raw-element floor, gated behind an explicit binding a host opts into per-field — the CMS long-form / rich-text content path."
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"name": "data",
|
|
46
|
+
"optional": true,
|
|
47
|
+
"type": "DataBinding",
|
|
48
|
+
"doc": "// ── system metadata — typed, and NEVER mixed into attrs/props ────────────── Dynamic content. At most one binding; the union makes \"at most one\" structural. The `ref` is opaque — @wizeworks/silicaui never parses it."
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"name": "slot",
|
|
52
|
+
"optional": true,
|
|
53
|
+
"type": "SlotDef",
|
|
54
|
+
"doc": "Marks this node as an editable region for a builder/host."
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"name": "behavior",
|
|
58
|
+
"optional": true,
|
|
59
|
+
"type": "BehaviorMarker",
|
|
60
|
+
"doc": "Marks this node as a behavior ROOT."
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"name": "part",
|
|
64
|
+
"optional": true,
|
|
65
|
+
"type": "BehaviorRole",
|
|
66
|
+
"doc": "Marks this node as a structural PART of an ancestor behavior."
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"name": "instanceOf",
|
|
70
|
+
"optional": true,
|
|
71
|
+
"type": "string",
|
|
72
|
+
"doc": "This node is an INSTANCE of a reusable symbol (a user-saved component). It holds no meaningful children of its own — at render it EXPANDS to a fresh clone of `symbols[instanceOf].root`, so editing that one master propagates to every instance. `flattenSymbols` inlines it for output; the projection itself stays symbol-agnostic."
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"name": "overrides",
|
|
76
|
+
"optional": true,
|
|
77
|
+
"type": "Record<string, NodeOverride>",
|
|
78
|
+
"doc": "Per-INSTANCE overrides, keyed by the MASTER node's (stable) id. Applied over the expanded master clone, so this instance can differ from its siblings without detaching; an overridden field is NOT overwritten by a later master edit. Only meaningful on an instance node (`instanceOf` set)."
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"name": "locked",
|
|
82
|
+
"optional": true,
|
|
83
|
+
"type": "\"host\" | \"author\"",
|
|
84
|
+
"doc": "Structural immutability + its OWNER. A locked node cannot be removed, moved, or reparented by the editing spine; its class/props stay editable. Presence encodes locked; the value encodes WHO owns the lock: - \"author\" — the author locked it (Navigator/Inspector \"lock layer\"); the author can unlock it the same way. - \"host\" — the host locked it (a pinned host region, or the host's own runtime call); the author UI shows it locked but offers NO unlock — only the host clears it. A single field (not a boolean + owner) so there is no invalid state: presence IS locked, absence IS unlocked, and `if (node.locked)` reads truthy/falsy like a boolean. Authoring metadata only — no projection reads it (like `label`/`slot`)."
|
|
85
|
+
}
|
|
86
|
+
],
|
|
87
|
+
"kinds": [
|
|
88
|
+
{
|
|
89
|
+
"kind": "element",
|
|
90
|
+
"typeName": "ElementNode",
|
|
91
|
+
"doc": "",
|
|
92
|
+
"sharedFields": true,
|
|
93
|
+
"fields": [
|
|
94
|
+
{
|
|
95
|
+
"name": "tag",
|
|
96
|
+
"optional": false,
|
|
97
|
+
"type": "string",
|
|
98
|
+
"doc": "'div' | 'section' | 'nav' | 'h1' | 'a' | 'img' | …"
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"name": "attrs",
|
|
102
|
+
"optional": true,
|
|
103
|
+
"type": "Record<string, string | number | boolean>",
|
|
104
|
+
"doc": "Whitelisted HTML attributes only."
|
|
105
|
+
}
|
|
106
|
+
]
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"kind": "component",
|
|
110
|
+
"typeName": "ComponentNode",
|
|
111
|
+
"doc": "",
|
|
112
|
+
"sharedFields": true,
|
|
113
|
+
"fields": [
|
|
114
|
+
{
|
|
115
|
+
"name": "component",
|
|
116
|
+
"optional": false,
|
|
117
|
+
"type": "string",
|
|
118
|
+
"doc": "A @wizeworks/silicaui atom by name: 'Button' | 'Card' | 'Image' | 'Icon' | …"
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"name": "props",
|
|
122
|
+
"optional": true,
|
|
123
|
+
"type": "Record<string, unknown>",
|
|
124
|
+
"doc": "The component's OWN typed API."
|
|
125
|
+
}
|
|
126
|
+
]
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"kind": "outlet",
|
|
130
|
+
"typeName": "OutletNode",
|
|
131
|
+
"doc": "Reserved structural node — valid ONLY inside a `Frame` (§9.7).",
|
|
132
|
+
"sharedFields": false,
|
|
133
|
+
"fields": []
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"kind": "host",
|
|
137
|
+
"typeName": "HostNode",
|
|
138
|
+
"doc": "A live, HOST-OWNED functional region embedded in an authored tree — the code-component primitive (host-nodes-and-node-locking spec §A). Opaque to the projection: `toHtml` emits an EMPTY mount point (`<div data-sui-host=\"…\">`), never live framework code, so the framework-neutral projection promise holds. A host mounts its real component into that point at render time (client or SSR), the same trust model as behavior-marker hydration and `rawHtml`. A LEAF — it never carries `children` (the `NodeBase.children` slot goes unused). Pair with `NodeBase.locked: \"host\"` to pin it non-deletable.",
|
|
139
|
+
"sharedFields": true,
|
|
140
|
+
"fields": [
|
|
141
|
+
{
|
|
142
|
+
"name": "component",
|
|
143
|
+
"optional": false,
|
|
144
|
+
"type": "string",
|
|
145
|
+
"doc": "The host component key — an ALLOWLIST key the host resolves, NEVER eval'd (e.g. \"CheckoutWidget\" | \"ProductGrid\" | \"AccountPanel\"). Opaque to @wizeworks/silicaui."
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"name": "props",
|
|
149
|
+
"optional": true,
|
|
150
|
+
"type": "Record<string, unknown>",
|
|
151
|
+
"doc": "Author-set configuration, validated by the HOST against the component's declared prop schema. JSON-serializable; static literals in v1 (data-bound props are a later revision)."
|
|
152
|
+
}
|
|
153
|
+
]
|
|
154
|
+
}
|
|
155
|
+
],
|
|
156
|
+
"bindingNote": "A node carries AT MOST ONE `data` marker — the union makes that structural. The `ref` is OPAQUE: silica never parses it, it hands it to the host and renders what comes back, which is what keeps the engine domain-blind. Two values on one card is COMPOSITION, not two markers: the card's own <a> binds `href` via `attr`, and each child binds its own field.",
|
|
157
|
+
"dataBindings": [
|
|
158
|
+
{
|
|
159
|
+
"kind": "value",
|
|
160
|
+
"doc": "fill this node from a resolved value; `attr` targets a specific attribute/prop (e.g. \"href\") instead of the auto-detected primary slot",
|
|
161
|
+
"fields": [
|
|
162
|
+
{
|
|
163
|
+
"name": "ref",
|
|
164
|
+
"optional": false,
|
|
165
|
+
"type": "string"
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"name": "attr",
|
|
169
|
+
"optional": true,
|
|
170
|
+
"type": "string"
|
|
171
|
+
}
|
|
172
|
+
]
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"kind": "html",
|
|
176
|
+
"doc": "fill this node's inner content from a resolved TRUSTED HTML string (rich text / CMS long-form) — the host sanitizes the value; emitted unescaped via `rawHtml`. The one raw-HTML content path.",
|
|
177
|
+
"fields": [
|
|
178
|
+
{
|
|
179
|
+
"name": "ref",
|
|
180
|
+
"optional": false,
|
|
181
|
+
"type": "string"
|
|
182
|
+
}
|
|
183
|
+
]
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
"kind": "collection",
|
|
187
|
+
"doc": "Render `children` once per resolved item. `omitWhenEmpty` drops the node entirely (like `visible: false`) instead of the default one-placeholder-item convention when the collection resolves to zero items. `limit` is a PER-INSTANCE cap: at most this many items render. It exists because the ref and the count are different questions and the ref cannot answer both — a catalog `key` says what a source IS, and `scopeAt` matches an ancestor's `data.ref` against that key to narrow what a descendant can bind, so a ref carrying an options suffix (`products|limit=4`) silently empties the inner field list. One tenant wanting a strip of 4 above the fold, a full grid at /shop and a rail of 12 on the product page is one source and three counts; without this the count is whatever the host chose when it fetched, uniform per source across the whole site. How many items LOAD, not how many are visible at a time: a carousel showing 4 of 12 is layout (`basis-1/4` on a snap rail), which the class model already does. Must be a positive integer — anything else is ignored, so a malformed value renders the whole collection rather than nothing.",
|
|
188
|
+
"fields": [
|
|
189
|
+
{
|
|
190
|
+
"name": "ref",
|
|
191
|
+
"optional": false,
|
|
192
|
+
"type": "string"
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"name": "omitWhenEmpty",
|
|
196
|
+
"optional": true,
|
|
197
|
+
"type": "boolean"
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"name": "limit",
|
|
201
|
+
"optional": true,
|
|
202
|
+
"type": "number"
|
|
203
|
+
}
|
|
204
|
+
]
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"kind": "action",
|
|
208
|
+
"doc": "triggers a host action",
|
|
209
|
+
"fields": [
|
|
210
|
+
{
|
|
211
|
+
"name": "ref",
|
|
212
|
+
"optional": false,
|
|
213
|
+
"type": "string"
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
"name": "href",
|
|
217
|
+
"optional": true,
|
|
218
|
+
"type": "string"
|
|
219
|
+
}
|
|
220
|
+
]
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
"kind": "visible",
|
|
224
|
+
"doc": "CONDITIONAL VISIBILITY. Keep this node (and its subtree) only when `ref` resolves to something present; `negate` flips that to \"only when absent\". The node's own content is untouched — that is the whole point of a separate kind rather than a flag on `value`. Every other binding consumes the node's primary content slot to do its job, so \"show the Sale badge only when there is a sale price\" had no expression: binding the badge to `item.compareAtPrice` would overwrite the word \"Sale\" with a number. A host could already drop a node by returning `Resolved.visible: false`, but only by encoding the condition in the ref's own semantics — invisible to the author, and undiscoverable in the editor. Deliberately NOT an expression language. `present`/`absent` against a resolved ref covers the cases that actually appear (an empty collection, a missing previous page, an unset logo, a policy flag), and an author who can write a contradiction mostly produces an invisible section they cannot debug. A host that needs a richer predicate expresses it as its own ref and answers it — the same seam it already had.",
|
|
225
|
+
"fields": [
|
|
226
|
+
{
|
|
227
|
+
"name": "ref",
|
|
228
|
+
"optional": false,
|
|
229
|
+
"type": "string"
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
"name": "negate",
|
|
233
|
+
"optional": true,
|
|
234
|
+
"type": "boolean"
|
|
235
|
+
}
|
|
236
|
+
]
|
|
237
|
+
}
|
|
238
|
+
],
|
|
239
|
+
"resolution": {
|
|
240
|
+
"note": "A host implements `resolveBinding` / `resolveCollection` and `resolveTree` walks the document with them. Pure and SYNCHRONOUS by design — a host with an async source fetches ONCE, up front, into whatever the synchronous hooks then read from, which is what stops an async-per-node API creating waterfalls. The SAME primitive feeds a live render and a builder canvas (`{ editing: true }`), so preview == production is structural.",
|
|
241
|
+
"honesty": "The hooks distinguish `undefined` (I have never heard of this ref) from `{ value: undefined }` (I know it and it is empty). They are treated differently and the difference is the whole contract: an UNKNOWN ref keeps the node's AUTHORED content and fires a diagnostic; a KNOWN-but-empty ref renders empty, which is a legitimate result. Without that split the walk blanks the node either way, and an author cannot tell a typo from real absence.",
|
|
242
|
+
"host": [
|
|
243
|
+
{
|
|
244
|
+
"name": "resolveBinding",
|
|
245
|
+
"optional": true,
|
|
246
|
+
"type": "(ref: string, scope: DataScope) => Resolved | undefined",
|
|
247
|
+
"doc": "Resolve `ref` to a value. Return `undefined` — NOT `{ value: undefined }` — when the ref is UNKNOWN to this host. The two are different states and the walk treats them differently: an unknown ref keeps the node's AUTHORED content and reports a diagnostic; a KNOWN ref whose value is empty renders empty, which is a legitimate result. Without that distinction the walk cannot be honest — it blanks the node either way."
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
"name": "resolveCollection",
|
|
251
|
+
"optional": true,
|
|
252
|
+
"type": "(ref: string, scope: DataScope) => readonly unknown[] | undefined",
|
|
253
|
+
"doc": "`undefined` = unknown ref (authored children stay, diagnostic fires). An empty array = a KNOWN, legitimately-empty collection (the placeholder convention / `omitWhenEmpty` apply)."
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
"name": "onDiagnostic",
|
|
257
|
+
"optional": true,
|
|
258
|
+
"type": "(d: ResolveDiagnostic) => void",
|
|
259
|
+
"doc": "Absent → the walk is silent (pure; a static publish path pays nothing)."
|
|
260
|
+
}
|
|
261
|
+
],
|
|
262
|
+
"resolved": [
|
|
263
|
+
{
|
|
264
|
+
"name": "value",
|
|
265
|
+
"optional": false,
|
|
266
|
+
"type": "unknown",
|
|
267
|
+
"doc": ""
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
"name": "label",
|
|
271
|
+
"optional": true,
|
|
272
|
+
"type": "string",
|
|
273
|
+
"doc": "Shown as a \"bound\" chip by an editor UI — never used by `resolveTree` itself."
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
"name": "visible",
|
|
277
|
+
"optional": true,
|
|
278
|
+
"type": "boolean",
|
|
279
|
+
"doc": "`false` drops this node (and its subtree) from the resolved output — the one conditional-visibility primitive the engine supports, with no expression language attached. Defaults to `true`."
|
|
280
|
+
}
|
|
281
|
+
],
|
|
282
|
+
"scope": [
|
|
283
|
+
{
|
|
284
|
+
"name": "item",
|
|
285
|
+
"optional": true,
|
|
286
|
+
"type": "unknown",
|
|
287
|
+
"doc": ""
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
"name": "index",
|
|
291
|
+
"optional": true,
|
|
292
|
+
"type": "number",
|
|
293
|
+
"doc": ""
|
|
294
|
+
}
|
|
295
|
+
],
|
|
296
|
+
"options": [
|
|
297
|
+
{
|
|
298
|
+
"name": "editing",
|
|
299
|
+
"optional": true,
|
|
300
|
+
"type": "boolean",
|
|
301
|
+
"doc": "EDIT-MODE policy. The canvas resolves the same refs through the same host, but never destroys authorability: a `visible: false` node is ANNOTATED via `onDiagnostic` rather than dropped, because a dropped node cannot be selected, inspected, or un-bound — it just vanishes on the author. This is a DESTRUCTION policy, not a second resolver: same walker, same hooks, same refs. It diverges only where production's answer is \"show nothing\", which is not an answer an editor can render. Absent/false → production policy, byte-identical to a pre-`editing` walk."
|
|
302
|
+
}
|
|
303
|
+
],
|
|
304
|
+
"diagnostic": [
|
|
305
|
+
{
|
|
306
|
+
"name": "code",
|
|
307
|
+
"optional": false,
|
|
308
|
+
"type": "\"unknown-ref\" | \"hidden\"",
|
|
309
|
+
"doc": "`unknown-ref` — the host returned `undefined` for a ref it was asked about (a typo, a stale document, a catalog entry its resolver doesn't implement). `hidden` — an `editing` walk kept a `visible: false` node that production would have dropped, so an editor can render it ghosted. Additive union; new codes are non-breaking."
|
|
310
|
+
},
|
|
311
|
+
{
|
|
312
|
+
"name": "ref",
|
|
313
|
+
"optional": false,
|
|
314
|
+
"type": "string",
|
|
315
|
+
"doc": ""
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
"name": "nodeId",
|
|
319
|
+
"optional": true,
|
|
320
|
+
"type": "string",
|
|
321
|
+
"doc": "The bound node's id, so an editor can badge / jump to the exact node."
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
"name": "kind",
|
|
325
|
+
"optional": false,
|
|
326
|
+
"type": "DataBinding[\"kind\"]",
|
|
327
|
+
"doc": ""
|
|
328
|
+
}
|
|
329
|
+
]
|
|
330
|
+
},
|
|
331
|
+
"elementFloor": {
|
|
332
|
+
"note": "`toHtml` enforces an unconditional allowlist (builder-contract.md §9): a tag that is not listed here is DOWNGRADED to <div> and an attribute that is not listed for its tag is DROPPED — silently, with the content lost. This is a security floor, not a style guide, and no host option relaxes it. Author with these tags and attrs; for a third-party player or map use the Embed component rather than a raw <iframe>, which floors to <div>.",
|
|
333
|
+
"globalAttrs": [
|
|
334
|
+
"id",
|
|
335
|
+
"title",
|
|
336
|
+
"role",
|
|
337
|
+
"tabindex",
|
|
338
|
+
"hidden"
|
|
339
|
+
],
|
|
340
|
+
"tags": [
|
|
341
|
+
{
|
|
342
|
+
"tag": "div",
|
|
343
|
+
"group": "structure",
|
|
344
|
+
"void": false,
|
|
345
|
+
"attrs": []
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
"tag": "section",
|
|
349
|
+
"group": "structure",
|
|
350
|
+
"void": false,
|
|
351
|
+
"attrs": []
|
|
352
|
+
},
|
|
353
|
+
{
|
|
354
|
+
"tag": "article",
|
|
355
|
+
"group": "structure",
|
|
356
|
+
"void": false,
|
|
357
|
+
"attrs": []
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
"tag": "nav",
|
|
361
|
+
"group": "structure",
|
|
362
|
+
"void": false,
|
|
363
|
+
"attrs": []
|
|
364
|
+
},
|
|
365
|
+
{
|
|
366
|
+
"tag": "header",
|
|
367
|
+
"group": "structure",
|
|
368
|
+
"void": false,
|
|
369
|
+
"attrs": []
|
|
370
|
+
},
|
|
371
|
+
{
|
|
372
|
+
"tag": "footer",
|
|
373
|
+
"group": "structure",
|
|
374
|
+
"void": false,
|
|
375
|
+
"attrs": []
|
|
376
|
+
},
|
|
377
|
+
{
|
|
378
|
+
"tag": "aside",
|
|
379
|
+
"group": "structure",
|
|
380
|
+
"void": false,
|
|
381
|
+
"attrs": []
|
|
382
|
+
},
|
|
383
|
+
{
|
|
384
|
+
"tag": "main",
|
|
385
|
+
"group": "structure",
|
|
386
|
+
"void": false,
|
|
387
|
+
"attrs": []
|
|
388
|
+
},
|
|
389
|
+
{
|
|
390
|
+
"tag": "span",
|
|
391
|
+
"group": "structure",
|
|
392
|
+
"void": false,
|
|
393
|
+
"attrs": []
|
|
394
|
+
},
|
|
395
|
+
{
|
|
396
|
+
"tag": "template",
|
|
397
|
+
"group": "structure",
|
|
398
|
+
"void": false,
|
|
399
|
+
"attrs": []
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
"tag": "h1",
|
|
403
|
+
"group": "text",
|
|
404
|
+
"void": false,
|
|
405
|
+
"attrs": []
|
|
406
|
+
},
|
|
407
|
+
{
|
|
408
|
+
"tag": "h2",
|
|
409
|
+
"group": "text",
|
|
410
|
+
"void": false,
|
|
411
|
+
"attrs": []
|
|
412
|
+
},
|
|
413
|
+
{
|
|
414
|
+
"tag": "h3",
|
|
415
|
+
"group": "text",
|
|
416
|
+
"void": false,
|
|
417
|
+
"attrs": []
|
|
418
|
+
},
|
|
419
|
+
{
|
|
420
|
+
"tag": "h4",
|
|
421
|
+
"group": "text",
|
|
422
|
+
"void": false,
|
|
423
|
+
"attrs": []
|
|
424
|
+
},
|
|
425
|
+
{
|
|
426
|
+
"tag": "h5",
|
|
427
|
+
"group": "text",
|
|
428
|
+
"void": false,
|
|
429
|
+
"attrs": []
|
|
430
|
+
},
|
|
431
|
+
{
|
|
432
|
+
"tag": "h6",
|
|
433
|
+
"group": "text",
|
|
434
|
+
"void": false,
|
|
435
|
+
"attrs": []
|
|
436
|
+
},
|
|
437
|
+
{
|
|
438
|
+
"tag": "p",
|
|
439
|
+
"group": "text",
|
|
440
|
+
"void": false,
|
|
441
|
+
"attrs": []
|
|
442
|
+
},
|
|
443
|
+
{
|
|
444
|
+
"tag": "strong",
|
|
445
|
+
"group": "text",
|
|
446
|
+
"void": false,
|
|
447
|
+
"attrs": []
|
|
448
|
+
},
|
|
449
|
+
{
|
|
450
|
+
"tag": "em",
|
|
451
|
+
"group": "text",
|
|
452
|
+
"void": false,
|
|
453
|
+
"attrs": []
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
"tag": "b",
|
|
457
|
+
"group": "text",
|
|
458
|
+
"void": false,
|
|
459
|
+
"attrs": []
|
|
460
|
+
},
|
|
461
|
+
{
|
|
462
|
+
"tag": "i",
|
|
463
|
+
"group": "text",
|
|
464
|
+
"void": false,
|
|
465
|
+
"attrs": []
|
|
466
|
+
},
|
|
467
|
+
{
|
|
468
|
+
"tag": "small",
|
|
469
|
+
"group": "text",
|
|
470
|
+
"void": false,
|
|
471
|
+
"attrs": []
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
"tag": "mark",
|
|
475
|
+
"group": "text",
|
|
476
|
+
"void": false,
|
|
477
|
+
"attrs": []
|
|
478
|
+
},
|
|
479
|
+
{
|
|
480
|
+
"tag": "blockquote",
|
|
481
|
+
"group": "text",
|
|
482
|
+
"void": false,
|
|
483
|
+
"attrs": [
|
|
484
|
+
"cite"
|
|
485
|
+
]
|
|
486
|
+
},
|
|
487
|
+
{
|
|
488
|
+
"tag": "pre",
|
|
489
|
+
"group": "text",
|
|
490
|
+
"void": false,
|
|
491
|
+
"attrs": []
|
|
492
|
+
},
|
|
493
|
+
{
|
|
494
|
+
"tag": "code",
|
|
495
|
+
"group": "text",
|
|
496
|
+
"void": false,
|
|
497
|
+
"attrs": []
|
|
498
|
+
},
|
|
499
|
+
{
|
|
500
|
+
"tag": "kbd",
|
|
501
|
+
"group": "text",
|
|
502
|
+
"void": false,
|
|
503
|
+
"attrs": []
|
|
504
|
+
},
|
|
505
|
+
{
|
|
506
|
+
"tag": "var",
|
|
507
|
+
"group": "text",
|
|
508
|
+
"void": false,
|
|
509
|
+
"attrs": []
|
|
510
|
+
},
|
|
511
|
+
{
|
|
512
|
+
"tag": "samp",
|
|
513
|
+
"group": "text",
|
|
514
|
+
"void": false,
|
|
515
|
+
"attrs": []
|
|
516
|
+
},
|
|
517
|
+
{
|
|
518
|
+
"tag": "sub",
|
|
519
|
+
"group": "text",
|
|
520
|
+
"void": false,
|
|
521
|
+
"attrs": []
|
|
522
|
+
},
|
|
523
|
+
{
|
|
524
|
+
"tag": "sup",
|
|
525
|
+
"group": "text",
|
|
526
|
+
"void": false,
|
|
527
|
+
"attrs": []
|
|
528
|
+
},
|
|
529
|
+
{
|
|
530
|
+
"tag": "abbr",
|
|
531
|
+
"group": "text",
|
|
532
|
+
"void": false,
|
|
533
|
+
"attrs": [
|
|
534
|
+
"title"
|
|
535
|
+
]
|
|
536
|
+
},
|
|
537
|
+
{
|
|
538
|
+
"tag": "dfn",
|
|
539
|
+
"group": "text",
|
|
540
|
+
"void": false,
|
|
541
|
+
"attrs": []
|
|
542
|
+
},
|
|
543
|
+
{
|
|
544
|
+
"tag": "q",
|
|
545
|
+
"group": "text",
|
|
546
|
+
"void": false,
|
|
547
|
+
"attrs": [
|
|
548
|
+
"cite"
|
|
549
|
+
]
|
|
550
|
+
},
|
|
551
|
+
{
|
|
552
|
+
"tag": "s",
|
|
553
|
+
"group": "text",
|
|
554
|
+
"void": false,
|
|
555
|
+
"attrs": []
|
|
556
|
+
},
|
|
557
|
+
{
|
|
558
|
+
"tag": "u",
|
|
559
|
+
"group": "text",
|
|
560
|
+
"void": false,
|
|
561
|
+
"attrs": []
|
|
562
|
+
},
|
|
563
|
+
{
|
|
564
|
+
"tag": "del",
|
|
565
|
+
"group": "text",
|
|
566
|
+
"void": false,
|
|
567
|
+
"attrs": []
|
|
568
|
+
},
|
|
569
|
+
{
|
|
570
|
+
"tag": "ins",
|
|
571
|
+
"group": "text",
|
|
572
|
+
"void": false,
|
|
573
|
+
"attrs": []
|
|
574
|
+
},
|
|
575
|
+
{
|
|
576
|
+
"tag": "address",
|
|
577
|
+
"group": "text",
|
|
578
|
+
"void": false,
|
|
579
|
+
"attrs": []
|
|
580
|
+
},
|
|
581
|
+
{
|
|
582
|
+
"tag": "time",
|
|
583
|
+
"group": "text",
|
|
584
|
+
"void": false,
|
|
585
|
+
"attrs": [
|
|
586
|
+
"datetime"
|
|
587
|
+
]
|
|
588
|
+
},
|
|
589
|
+
{
|
|
590
|
+
"tag": "br",
|
|
591
|
+
"group": "text",
|
|
592
|
+
"void": false,
|
|
593
|
+
"attrs": []
|
|
594
|
+
},
|
|
595
|
+
{
|
|
596
|
+
"tag": "hr",
|
|
597
|
+
"group": "text",
|
|
598
|
+
"void": false,
|
|
599
|
+
"attrs": []
|
|
600
|
+
},
|
|
601
|
+
{
|
|
602
|
+
"tag": "wbr",
|
|
603
|
+
"group": "text",
|
|
604
|
+
"void": false,
|
|
605
|
+
"attrs": []
|
|
606
|
+
},
|
|
607
|
+
{
|
|
608
|
+
"tag": "ul",
|
|
609
|
+
"group": "list",
|
|
610
|
+
"void": false,
|
|
611
|
+
"attrs": []
|
|
612
|
+
},
|
|
613
|
+
{
|
|
614
|
+
"tag": "ol",
|
|
615
|
+
"group": "list",
|
|
616
|
+
"void": false,
|
|
617
|
+
"attrs": [
|
|
618
|
+
"start",
|
|
619
|
+
"reversed",
|
|
620
|
+
"type"
|
|
621
|
+
]
|
|
622
|
+
},
|
|
623
|
+
{
|
|
624
|
+
"tag": "li",
|
|
625
|
+
"group": "list",
|
|
626
|
+
"void": false,
|
|
627
|
+
"attrs": []
|
|
628
|
+
},
|
|
629
|
+
{
|
|
630
|
+
"tag": "dl",
|
|
631
|
+
"group": "list",
|
|
632
|
+
"void": false,
|
|
633
|
+
"attrs": []
|
|
634
|
+
},
|
|
635
|
+
{
|
|
636
|
+
"tag": "dt",
|
|
637
|
+
"group": "list",
|
|
638
|
+
"void": false,
|
|
639
|
+
"attrs": []
|
|
640
|
+
},
|
|
641
|
+
{
|
|
642
|
+
"tag": "dd",
|
|
643
|
+
"group": "list",
|
|
644
|
+
"void": false,
|
|
645
|
+
"attrs": []
|
|
646
|
+
},
|
|
647
|
+
{
|
|
648
|
+
"tag": "img",
|
|
649
|
+
"group": "media",
|
|
650
|
+
"void": false,
|
|
651
|
+
"attrs": [
|
|
652
|
+
"src",
|
|
653
|
+
"alt",
|
|
654
|
+
"width",
|
|
655
|
+
"height",
|
|
656
|
+
"loading",
|
|
657
|
+
"decoding",
|
|
658
|
+
"srcset",
|
|
659
|
+
"sizes"
|
|
660
|
+
]
|
|
661
|
+
},
|
|
662
|
+
{
|
|
663
|
+
"tag": "picture",
|
|
664
|
+
"group": "media",
|
|
665
|
+
"void": false,
|
|
666
|
+
"attrs": []
|
|
667
|
+
},
|
|
668
|
+
{
|
|
669
|
+
"tag": "source",
|
|
670
|
+
"group": "media",
|
|
671
|
+
"void": false,
|
|
672
|
+
"attrs": [
|
|
673
|
+
"src",
|
|
674
|
+
"srcset",
|
|
675
|
+
"media",
|
|
676
|
+
"type",
|
|
677
|
+
"sizes"
|
|
678
|
+
]
|
|
679
|
+
},
|
|
680
|
+
{
|
|
681
|
+
"tag": "video",
|
|
682
|
+
"group": "media",
|
|
683
|
+
"void": false,
|
|
684
|
+
"attrs": [
|
|
685
|
+
"src",
|
|
686
|
+
"poster",
|
|
687
|
+
"controls",
|
|
688
|
+
"autoplay",
|
|
689
|
+
"loop",
|
|
690
|
+
"muted",
|
|
691
|
+
"playsinline",
|
|
692
|
+
"preload",
|
|
693
|
+
"width",
|
|
694
|
+
"height",
|
|
695
|
+
"crossorigin"
|
|
696
|
+
]
|
|
697
|
+
},
|
|
698
|
+
{
|
|
699
|
+
"tag": "audio",
|
|
700
|
+
"group": "media",
|
|
701
|
+
"void": false,
|
|
702
|
+
"attrs": [
|
|
703
|
+
"src",
|
|
704
|
+
"controls",
|
|
705
|
+
"autoplay",
|
|
706
|
+
"loop",
|
|
707
|
+
"muted",
|
|
708
|
+
"preload",
|
|
709
|
+
"crossorigin"
|
|
710
|
+
]
|
|
711
|
+
},
|
|
712
|
+
{
|
|
713
|
+
"tag": "figure",
|
|
714
|
+
"group": "media",
|
|
715
|
+
"void": false,
|
|
716
|
+
"attrs": []
|
|
717
|
+
},
|
|
718
|
+
{
|
|
719
|
+
"tag": "figcaption",
|
|
720
|
+
"group": "media",
|
|
721
|
+
"void": false,
|
|
722
|
+
"attrs": []
|
|
723
|
+
},
|
|
724
|
+
{
|
|
725
|
+
"tag": "svg",
|
|
726
|
+
"group": "media",
|
|
727
|
+
"void": false,
|
|
728
|
+
"attrs": [
|
|
729
|
+
"fill",
|
|
730
|
+
"stroke",
|
|
731
|
+
"stroke-width",
|
|
732
|
+
"opacity",
|
|
733
|
+
"fill-opacity",
|
|
734
|
+
"stroke-opacity",
|
|
735
|
+
"fill-rule",
|
|
736
|
+
"clip-rule",
|
|
737
|
+
"stroke-linecap",
|
|
738
|
+
"stroke-linejoin",
|
|
739
|
+
"stroke-dasharray",
|
|
740
|
+
"stroke-dashoffset",
|
|
741
|
+
"stroke-miterlimit",
|
|
742
|
+
"transform",
|
|
743
|
+
"clip-path",
|
|
744
|
+
"mask",
|
|
745
|
+
"color",
|
|
746
|
+
"viewBox",
|
|
747
|
+
"width",
|
|
748
|
+
"height",
|
|
749
|
+
"xmlns",
|
|
750
|
+
"preserveAspectRatio"
|
|
751
|
+
]
|
|
752
|
+
},
|
|
753
|
+
{
|
|
754
|
+
"tag": "g",
|
|
755
|
+
"group": "media",
|
|
756
|
+
"void": false,
|
|
757
|
+
"attrs": [
|
|
758
|
+
"fill",
|
|
759
|
+
"stroke",
|
|
760
|
+
"stroke-width",
|
|
761
|
+
"opacity",
|
|
762
|
+
"fill-opacity",
|
|
763
|
+
"stroke-opacity",
|
|
764
|
+
"fill-rule",
|
|
765
|
+
"clip-rule",
|
|
766
|
+
"stroke-linecap",
|
|
767
|
+
"stroke-linejoin",
|
|
768
|
+
"stroke-dasharray",
|
|
769
|
+
"stroke-dashoffset",
|
|
770
|
+
"stroke-miterlimit",
|
|
771
|
+
"transform",
|
|
772
|
+
"clip-path",
|
|
773
|
+
"mask",
|
|
774
|
+
"color"
|
|
775
|
+
]
|
|
776
|
+
},
|
|
777
|
+
{
|
|
778
|
+
"tag": "defs",
|
|
779
|
+
"group": "media",
|
|
780
|
+
"void": false,
|
|
781
|
+
"attrs": [
|
|
782
|
+
"fill",
|
|
783
|
+
"stroke",
|
|
784
|
+
"stroke-width",
|
|
785
|
+
"opacity",
|
|
786
|
+
"fill-opacity",
|
|
787
|
+
"stroke-opacity",
|
|
788
|
+
"fill-rule",
|
|
789
|
+
"clip-rule",
|
|
790
|
+
"stroke-linecap",
|
|
791
|
+
"stroke-linejoin",
|
|
792
|
+
"stroke-dasharray",
|
|
793
|
+
"stroke-dashoffset",
|
|
794
|
+
"stroke-miterlimit",
|
|
795
|
+
"transform",
|
|
796
|
+
"clip-path",
|
|
797
|
+
"mask",
|
|
798
|
+
"color"
|
|
799
|
+
]
|
|
800
|
+
},
|
|
801
|
+
{
|
|
802
|
+
"tag": "symbol",
|
|
803
|
+
"group": "media",
|
|
804
|
+
"void": false,
|
|
805
|
+
"attrs": [
|
|
806
|
+
"viewBox",
|
|
807
|
+
"preserveAspectRatio"
|
|
808
|
+
]
|
|
809
|
+
},
|
|
810
|
+
{
|
|
811
|
+
"tag": "use",
|
|
812
|
+
"group": "media",
|
|
813
|
+
"void": false,
|
|
814
|
+
"attrs": [
|
|
815
|
+
"fill",
|
|
816
|
+
"stroke",
|
|
817
|
+
"stroke-width",
|
|
818
|
+
"opacity",
|
|
819
|
+
"fill-opacity",
|
|
820
|
+
"stroke-opacity",
|
|
821
|
+
"fill-rule",
|
|
822
|
+
"clip-rule",
|
|
823
|
+
"stroke-linecap",
|
|
824
|
+
"stroke-linejoin",
|
|
825
|
+
"stroke-dasharray",
|
|
826
|
+
"stroke-dashoffset",
|
|
827
|
+
"stroke-miterlimit",
|
|
828
|
+
"transform",
|
|
829
|
+
"clip-path",
|
|
830
|
+
"mask",
|
|
831
|
+
"color",
|
|
832
|
+
"href",
|
|
833
|
+
"x",
|
|
834
|
+
"y",
|
|
835
|
+
"width",
|
|
836
|
+
"height"
|
|
837
|
+
]
|
|
838
|
+
},
|
|
839
|
+
{
|
|
840
|
+
"tag": "title",
|
|
841
|
+
"group": "media",
|
|
842
|
+
"void": false,
|
|
843
|
+
"attrs": []
|
|
844
|
+
},
|
|
845
|
+
{
|
|
846
|
+
"tag": "desc",
|
|
847
|
+
"group": "media",
|
|
848
|
+
"void": false,
|
|
849
|
+
"attrs": []
|
|
850
|
+
},
|
|
851
|
+
{
|
|
852
|
+
"tag": "path",
|
|
853
|
+
"group": "media",
|
|
854
|
+
"void": false,
|
|
855
|
+
"attrs": [
|
|
856
|
+
"fill",
|
|
857
|
+
"stroke",
|
|
858
|
+
"stroke-width",
|
|
859
|
+
"opacity",
|
|
860
|
+
"fill-opacity",
|
|
861
|
+
"stroke-opacity",
|
|
862
|
+
"fill-rule",
|
|
863
|
+
"clip-rule",
|
|
864
|
+
"stroke-linecap",
|
|
865
|
+
"stroke-linejoin",
|
|
866
|
+
"stroke-dasharray",
|
|
867
|
+
"stroke-dashoffset",
|
|
868
|
+
"stroke-miterlimit",
|
|
869
|
+
"transform",
|
|
870
|
+
"clip-path",
|
|
871
|
+
"mask",
|
|
872
|
+
"color",
|
|
873
|
+
"d",
|
|
874
|
+
"pathLength"
|
|
875
|
+
]
|
|
876
|
+
},
|
|
877
|
+
{
|
|
878
|
+
"tag": "circle",
|
|
879
|
+
"group": "media",
|
|
880
|
+
"void": false,
|
|
881
|
+
"attrs": [
|
|
882
|
+
"fill",
|
|
883
|
+
"stroke",
|
|
884
|
+
"stroke-width",
|
|
885
|
+
"opacity",
|
|
886
|
+
"fill-opacity",
|
|
887
|
+
"stroke-opacity",
|
|
888
|
+
"fill-rule",
|
|
889
|
+
"clip-rule",
|
|
890
|
+
"stroke-linecap",
|
|
891
|
+
"stroke-linejoin",
|
|
892
|
+
"stroke-dasharray",
|
|
893
|
+
"stroke-dashoffset",
|
|
894
|
+
"stroke-miterlimit",
|
|
895
|
+
"transform",
|
|
896
|
+
"clip-path",
|
|
897
|
+
"mask",
|
|
898
|
+
"color",
|
|
899
|
+
"cx",
|
|
900
|
+
"cy",
|
|
901
|
+
"r"
|
|
902
|
+
]
|
|
903
|
+
},
|
|
904
|
+
{
|
|
905
|
+
"tag": "ellipse",
|
|
906
|
+
"group": "media",
|
|
907
|
+
"void": false,
|
|
908
|
+
"attrs": [
|
|
909
|
+
"fill",
|
|
910
|
+
"stroke",
|
|
911
|
+
"stroke-width",
|
|
912
|
+
"opacity",
|
|
913
|
+
"fill-opacity",
|
|
914
|
+
"stroke-opacity",
|
|
915
|
+
"fill-rule",
|
|
916
|
+
"clip-rule",
|
|
917
|
+
"stroke-linecap",
|
|
918
|
+
"stroke-linejoin",
|
|
919
|
+
"stroke-dasharray",
|
|
920
|
+
"stroke-dashoffset",
|
|
921
|
+
"stroke-miterlimit",
|
|
922
|
+
"transform",
|
|
923
|
+
"clip-path",
|
|
924
|
+
"mask",
|
|
925
|
+
"color",
|
|
926
|
+
"cx",
|
|
927
|
+
"cy",
|
|
928
|
+
"rx",
|
|
929
|
+
"ry"
|
|
930
|
+
]
|
|
931
|
+
},
|
|
932
|
+
{
|
|
933
|
+
"tag": "rect",
|
|
934
|
+
"group": "media",
|
|
935
|
+
"void": false,
|
|
936
|
+
"attrs": [
|
|
937
|
+
"fill",
|
|
938
|
+
"stroke",
|
|
939
|
+
"stroke-width",
|
|
940
|
+
"opacity",
|
|
941
|
+
"fill-opacity",
|
|
942
|
+
"stroke-opacity",
|
|
943
|
+
"fill-rule",
|
|
944
|
+
"clip-rule",
|
|
945
|
+
"stroke-linecap",
|
|
946
|
+
"stroke-linejoin",
|
|
947
|
+
"stroke-dasharray",
|
|
948
|
+
"stroke-dashoffset",
|
|
949
|
+
"stroke-miterlimit",
|
|
950
|
+
"transform",
|
|
951
|
+
"clip-path",
|
|
952
|
+
"mask",
|
|
953
|
+
"color",
|
|
954
|
+
"x",
|
|
955
|
+
"y",
|
|
956
|
+
"width",
|
|
957
|
+
"height",
|
|
958
|
+
"rx",
|
|
959
|
+
"ry"
|
|
960
|
+
]
|
|
961
|
+
},
|
|
962
|
+
{
|
|
963
|
+
"tag": "line",
|
|
964
|
+
"group": "media",
|
|
965
|
+
"void": false,
|
|
966
|
+
"attrs": [
|
|
967
|
+
"fill",
|
|
968
|
+
"stroke",
|
|
969
|
+
"stroke-width",
|
|
970
|
+
"opacity",
|
|
971
|
+
"fill-opacity",
|
|
972
|
+
"stroke-opacity",
|
|
973
|
+
"fill-rule",
|
|
974
|
+
"clip-rule",
|
|
975
|
+
"stroke-linecap",
|
|
976
|
+
"stroke-linejoin",
|
|
977
|
+
"stroke-dasharray",
|
|
978
|
+
"stroke-dashoffset",
|
|
979
|
+
"stroke-miterlimit",
|
|
980
|
+
"transform",
|
|
981
|
+
"clip-path",
|
|
982
|
+
"mask",
|
|
983
|
+
"color",
|
|
984
|
+
"x1",
|
|
985
|
+
"y1",
|
|
986
|
+
"x2",
|
|
987
|
+
"y2"
|
|
988
|
+
]
|
|
989
|
+
},
|
|
990
|
+
{
|
|
991
|
+
"tag": "polygon",
|
|
992
|
+
"group": "media",
|
|
993
|
+
"void": false,
|
|
994
|
+
"attrs": [
|
|
995
|
+
"fill",
|
|
996
|
+
"stroke",
|
|
997
|
+
"stroke-width",
|
|
998
|
+
"opacity",
|
|
999
|
+
"fill-opacity",
|
|
1000
|
+
"stroke-opacity",
|
|
1001
|
+
"fill-rule",
|
|
1002
|
+
"clip-rule",
|
|
1003
|
+
"stroke-linecap",
|
|
1004
|
+
"stroke-linejoin",
|
|
1005
|
+
"stroke-dasharray",
|
|
1006
|
+
"stroke-dashoffset",
|
|
1007
|
+
"stroke-miterlimit",
|
|
1008
|
+
"transform",
|
|
1009
|
+
"clip-path",
|
|
1010
|
+
"mask",
|
|
1011
|
+
"color",
|
|
1012
|
+
"points"
|
|
1013
|
+
]
|
|
1014
|
+
},
|
|
1015
|
+
{
|
|
1016
|
+
"tag": "polyline",
|
|
1017
|
+
"group": "media",
|
|
1018
|
+
"void": false,
|
|
1019
|
+
"attrs": [
|
|
1020
|
+
"fill",
|
|
1021
|
+
"stroke",
|
|
1022
|
+
"stroke-width",
|
|
1023
|
+
"opacity",
|
|
1024
|
+
"fill-opacity",
|
|
1025
|
+
"stroke-opacity",
|
|
1026
|
+
"fill-rule",
|
|
1027
|
+
"clip-rule",
|
|
1028
|
+
"stroke-linecap",
|
|
1029
|
+
"stroke-linejoin",
|
|
1030
|
+
"stroke-dasharray",
|
|
1031
|
+
"stroke-dashoffset",
|
|
1032
|
+
"stroke-miterlimit",
|
|
1033
|
+
"transform",
|
|
1034
|
+
"clip-path",
|
|
1035
|
+
"mask",
|
|
1036
|
+
"color",
|
|
1037
|
+
"points"
|
|
1038
|
+
]
|
|
1039
|
+
},
|
|
1040
|
+
{
|
|
1041
|
+
"tag": "text",
|
|
1042
|
+
"group": "media",
|
|
1043
|
+
"void": false,
|
|
1044
|
+
"attrs": [
|
|
1045
|
+
"fill",
|
|
1046
|
+
"stroke",
|
|
1047
|
+
"stroke-width",
|
|
1048
|
+
"opacity",
|
|
1049
|
+
"fill-opacity",
|
|
1050
|
+
"stroke-opacity",
|
|
1051
|
+
"fill-rule",
|
|
1052
|
+
"clip-rule",
|
|
1053
|
+
"stroke-linecap",
|
|
1054
|
+
"stroke-linejoin",
|
|
1055
|
+
"stroke-dasharray",
|
|
1056
|
+
"stroke-dashoffset",
|
|
1057
|
+
"stroke-miterlimit",
|
|
1058
|
+
"transform",
|
|
1059
|
+
"clip-path",
|
|
1060
|
+
"mask",
|
|
1061
|
+
"color",
|
|
1062
|
+
"x",
|
|
1063
|
+
"y",
|
|
1064
|
+
"dx",
|
|
1065
|
+
"dy",
|
|
1066
|
+
"text-anchor",
|
|
1067
|
+
"dominant-baseline",
|
|
1068
|
+
"font-size",
|
|
1069
|
+
"font-family",
|
|
1070
|
+
"font-weight",
|
|
1071
|
+
"letter-spacing"
|
|
1072
|
+
]
|
|
1073
|
+
},
|
|
1074
|
+
{
|
|
1075
|
+
"tag": "tspan",
|
|
1076
|
+
"group": "media",
|
|
1077
|
+
"void": false,
|
|
1078
|
+
"attrs": [
|
|
1079
|
+
"fill",
|
|
1080
|
+
"stroke",
|
|
1081
|
+
"stroke-width",
|
|
1082
|
+
"opacity",
|
|
1083
|
+
"fill-opacity",
|
|
1084
|
+
"stroke-opacity",
|
|
1085
|
+
"fill-rule",
|
|
1086
|
+
"clip-rule",
|
|
1087
|
+
"stroke-linecap",
|
|
1088
|
+
"stroke-linejoin",
|
|
1089
|
+
"stroke-dasharray",
|
|
1090
|
+
"stroke-dashoffset",
|
|
1091
|
+
"stroke-miterlimit",
|
|
1092
|
+
"transform",
|
|
1093
|
+
"clip-path",
|
|
1094
|
+
"mask",
|
|
1095
|
+
"color",
|
|
1096
|
+
"x",
|
|
1097
|
+
"y",
|
|
1098
|
+
"dx",
|
|
1099
|
+
"dy",
|
|
1100
|
+
"text-anchor"
|
|
1101
|
+
]
|
|
1102
|
+
},
|
|
1103
|
+
{
|
|
1104
|
+
"tag": "clipPath",
|
|
1105
|
+
"group": "media",
|
|
1106
|
+
"void": false,
|
|
1107
|
+
"attrs": [
|
|
1108
|
+
"clipPathUnits"
|
|
1109
|
+
]
|
|
1110
|
+
},
|
|
1111
|
+
{
|
|
1112
|
+
"tag": "mask",
|
|
1113
|
+
"group": "media",
|
|
1114
|
+
"void": false,
|
|
1115
|
+
"attrs": [
|
|
1116
|
+
"maskUnits",
|
|
1117
|
+
"maskContentUnits",
|
|
1118
|
+
"x",
|
|
1119
|
+
"y",
|
|
1120
|
+
"width",
|
|
1121
|
+
"height"
|
|
1122
|
+
]
|
|
1123
|
+
},
|
|
1124
|
+
{
|
|
1125
|
+
"tag": "pattern",
|
|
1126
|
+
"group": "media",
|
|
1127
|
+
"void": false,
|
|
1128
|
+
"attrs": [
|
|
1129
|
+
"x",
|
|
1130
|
+
"y",
|
|
1131
|
+
"width",
|
|
1132
|
+
"height",
|
|
1133
|
+
"patternUnits",
|
|
1134
|
+
"patternContentUnits",
|
|
1135
|
+
"patternTransform",
|
|
1136
|
+
"viewBox",
|
|
1137
|
+
"preserveAspectRatio",
|
|
1138
|
+
"href"
|
|
1139
|
+
]
|
|
1140
|
+
},
|
|
1141
|
+
{
|
|
1142
|
+
"tag": "linearGradient",
|
|
1143
|
+
"group": "media",
|
|
1144
|
+
"void": false,
|
|
1145
|
+
"attrs": [
|
|
1146
|
+
"x1",
|
|
1147
|
+
"y1",
|
|
1148
|
+
"x2",
|
|
1149
|
+
"y2",
|
|
1150
|
+
"gradientUnits",
|
|
1151
|
+
"gradientTransform",
|
|
1152
|
+
"spreadMethod",
|
|
1153
|
+
"href"
|
|
1154
|
+
]
|
|
1155
|
+
},
|
|
1156
|
+
{
|
|
1157
|
+
"tag": "radialGradient",
|
|
1158
|
+
"group": "media",
|
|
1159
|
+
"void": false,
|
|
1160
|
+
"attrs": [
|
|
1161
|
+
"cx",
|
|
1162
|
+
"cy",
|
|
1163
|
+
"r",
|
|
1164
|
+
"fx",
|
|
1165
|
+
"fy",
|
|
1166
|
+
"fr",
|
|
1167
|
+
"gradientUnits",
|
|
1168
|
+
"gradientTransform",
|
|
1169
|
+
"spreadMethod",
|
|
1170
|
+
"href"
|
|
1171
|
+
]
|
|
1172
|
+
},
|
|
1173
|
+
{
|
|
1174
|
+
"tag": "stop",
|
|
1175
|
+
"group": "media",
|
|
1176
|
+
"void": false,
|
|
1177
|
+
"attrs": [
|
|
1178
|
+
"offset",
|
|
1179
|
+
"stop-color",
|
|
1180
|
+
"stop-opacity"
|
|
1181
|
+
]
|
|
1182
|
+
},
|
|
1183
|
+
{
|
|
1184
|
+
"tag": "image",
|
|
1185
|
+
"group": "media",
|
|
1186
|
+
"void": false,
|
|
1187
|
+
"attrs": [
|
|
1188
|
+
"href",
|
|
1189
|
+
"x",
|
|
1190
|
+
"y",
|
|
1191
|
+
"width",
|
|
1192
|
+
"height",
|
|
1193
|
+
"preserveAspectRatio"
|
|
1194
|
+
]
|
|
1195
|
+
},
|
|
1196
|
+
{
|
|
1197
|
+
"tag": "table",
|
|
1198
|
+
"group": "table",
|
|
1199
|
+
"void": false,
|
|
1200
|
+
"attrs": []
|
|
1201
|
+
},
|
|
1202
|
+
{
|
|
1203
|
+
"tag": "thead",
|
|
1204
|
+
"group": "table",
|
|
1205
|
+
"void": false,
|
|
1206
|
+
"attrs": []
|
|
1207
|
+
},
|
|
1208
|
+
{
|
|
1209
|
+
"tag": "tbody",
|
|
1210
|
+
"group": "table",
|
|
1211
|
+
"void": false,
|
|
1212
|
+
"attrs": []
|
|
1213
|
+
},
|
|
1214
|
+
{
|
|
1215
|
+
"tag": "tfoot",
|
|
1216
|
+
"group": "table",
|
|
1217
|
+
"void": false,
|
|
1218
|
+
"attrs": []
|
|
1219
|
+
},
|
|
1220
|
+
{
|
|
1221
|
+
"tag": "tr",
|
|
1222
|
+
"group": "table",
|
|
1223
|
+
"void": false,
|
|
1224
|
+
"attrs": []
|
|
1225
|
+
},
|
|
1226
|
+
{
|
|
1227
|
+
"tag": "th",
|
|
1228
|
+
"group": "table",
|
|
1229
|
+
"void": false,
|
|
1230
|
+
"attrs": [
|
|
1231
|
+
"colspan",
|
|
1232
|
+
"rowspan",
|
|
1233
|
+
"scope"
|
|
1234
|
+
]
|
|
1235
|
+
},
|
|
1236
|
+
{
|
|
1237
|
+
"tag": "td",
|
|
1238
|
+
"group": "table",
|
|
1239
|
+
"void": false,
|
|
1240
|
+
"attrs": [
|
|
1241
|
+
"colspan",
|
|
1242
|
+
"rowspan"
|
|
1243
|
+
]
|
|
1244
|
+
},
|
|
1245
|
+
{
|
|
1246
|
+
"tag": "caption",
|
|
1247
|
+
"group": "table",
|
|
1248
|
+
"void": false,
|
|
1249
|
+
"attrs": []
|
|
1250
|
+
},
|
|
1251
|
+
{
|
|
1252
|
+
"tag": "colgroup",
|
|
1253
|
+
"group": "table",
|
|
1254
|
+
"void": false,
|
|
1255
|
+
"attrs": []
|
|
1256
|
+
},
|
|
1257
|
+
{
|
|
1258
|
+
"tag": "col",
|
|
1259
|
+
"group": "table",
|
|
1260
|
+
"void": false,
|
|
1261
|
+
"attrs": [
|
|
1262
|
+
"span"
|
|
1263
|
+
]
|
|
1264
|
+
},
|
|
1265
|
+
{
|
|
1266
|
+
"tag": "form",
|
|
1267
|
+
"group": "form",
|
|
1268
|
+
"void": false,
|
|
1269
|
+
"attrs": [
|
|
1270
|
+
"novalidate"
|
|
1271
|
+
]
|
|
1272
|
+
},
|
|
1273
|
+
{
|
|
1274
|
+
"tag": "input",
|
|
1275
|
+
"group": "form",
|
|
1276
|
+
"void": false,
|
|
1277
|
+
"attrs": [
|
|
1278
|
+
"type",
|
|
1279
|
+
"name",
|
|
1280
|
+
"value",
|
|
1281
|
+
"placeholder",
|
|
1282
|
+
"checked",
|
|
1283
|
+
"disabled",
|
|
1284
|
+
"required",
|
|
1285
|
+
"readonly",
|
|
1286
|
+
"min",
|
|
1287
|
+
"max",
|
|
1288
|
+
"step",
|
|
1289
|
+
"pattern",
|
|
1290
|
+
"autocomplete",
|
|
1291
|
+
"multiple",
|
|
1292
|
+
"accept"
|
|
1293
|
+
]
|
|
1294
|
+
},
|
|
1295
|
+
{
|
|
1296
|
+
"tag": "textarea",
|
|
1297
|
+
"group": "form",
|
|
1298
|
+
"void": false,
|
|
1299
|
+
"attrs": [
|
|
1300
|
+
"name",
|
|
1301
|
+
"placeholder",
|
|
1302
|
+
"rows",
|
|
1303
|
+
"cols",
|
|
1304
|
+
"disabled",
|
|
1305
|
+
"required",
|
|
1306
|
+
"readonly"
|
|
1307
|
+
]
|
|
1308
|
+
},
|
|
1309
|
+
{
|
|
1310
|
+
"tag": "select",
|
|
1311
|
+
"group": "form",
|
|
1312
|
+
"void": false,
|
|
1313
|
+
"attrs": [
|
|
1314
|
+
"name",
|
|
1315
|
+
"disabled",
|
|
1316
|
+
"required",
|
|
1317
|
+
"multiple"
|
|
1318
|
+
]
|
|
1319
|
+
},
|
|
1320
|
+
{
|
|
1321
|
+
"tag": "option",
|
|
1322
|
+
"group": "form",
|
|
1323
|
+
"void": false,
|
|
1324
|
+
"attrs": [
|
|
1325
|
+
"value",
|
|
1326
|
+
"disabled",
|
|
1327
|
+
"selected"
|
|
1328
|
+
]
|
|
1329
|
+
},
|
|
1330
|
+
{
|
|
1331
|
+
"tag": "optgroup",
|
|
1332
|
+
"group": "form",
|
|
1333
|
+
"void": false,
|
|
1334
|
+
"attrs": [
|
|
1335
|
+
"label",
|
|
1336
|
+
"disabled"
|
|
1337
|
+
]
|
|
1338
|
+
},
|
|
1339
|
+
{
|
|
1340
|
+
"tag": "label",
|
|
1341
|
+
"group": "form",
|
|
1342
|
+
"void": false,
|
|
1343
|
+
"attrs": [
|
|
1344
|
+
"for"
|
|
1345
|
+
]
|
|
1346
|
+
},
|
|
1347
|
+
{
|
|
1348
|
+
"tag": "button",
|
|
1349
|
+
"group": "form",
|
|
1350
|
+
"void": false,
|
|
1351
|
+
"attrs": [
|
|
1352
|
+
"type",
|
|
1353
|
+
"disabled"
|
|
1354
|
+
]
|
|
1355
|
+
},
|
|
1356
|
+
{
|
|
1357
|
+
"tag": "fieldset",
|
|
1358
|
+
"group": "form",
|
|
1359
|
+
"void": false,
|
|
1360
|
+
"attrs": [
|
|
1361
|
+
"disabled"
|
|
1362
|
+
]
|
|
1363
|
+
},
|
|
1364
|
+
{
|
|
1365
|
+
"tag": "legend",
|
|
1366
|
+
"group": "form",
|
|
1367
|
+
"void": false,
|
|
1368
|
+
"attrs": []
|
|
1369
|
+
},
|
|
1370
|
+
{
|
|
1371
|
+
"tag": "output",
|
|
1372
|
+
"group": "form",
|
|
1373
|
+
"void": false,
|
|
1374
|
+
"attrs": [
|
|
1375
|
+
"for",
|
|
1376
|
+
"name"
|
|
1377
|
+
]
|
|
1378
|
+
},
|
|
1379
|
+
{
|
|
1380
|
+
"tag": "progress",
|
|
1381
|
+
"group": "form",
|
|
1382
|
+
"void": false,
|
|
1383
|
+
"attrs": [
|
|
1384
|
+
"value",
|
|
1385
|
+
"max"
|
|
1386
|
+
]
|
|
1387
|
+
},
|
|
1388
|
+
{
|
|
1389
|
+
"tag": "meter",
|
|
1390
|
+
"group": "form",
|
|
1391
|
+
"void": false,
|
|
1392
|
+
"attrs": [
|
|
1393
|
+
"value",
|
|
1394
|
+
"min",
|
|
1395
|
+
"max",
|
|
1396
|
+
"low",
|
|
1397
|
+
"high",
|
|
1398
|
+
"optimum"
|
|
1399
|
+
]
|
|
1400
|
+
},
|
|
1401
|
+
{
|
|
1402
|
+
"tag": "a",
|
|
1403
|
+
"group": "interactive",
|
|
1404
|
+
"void": false,
|
|
1405
|
+
"attrs": [
|
|
1406
|
+
"href",
|
|
1407
|
+
"target",
|
|
1408
|
+
"rel",
|
|
1409
|
+
"download"
|
|
1410
|
+
]
|
|
1411
|
+
},
|
|
1412
|
+
{
|
|
1413
|
+
"tag": "details",
|
|
1414
|
+
"group": "interactive",
|
|
1415
|
+
"void": false,
|
|
1416
|
+
"attrs": [
|
|
1417
|
+
"open"
|
|
1418
|
+
]
|
|
1419
|
+
},
|
|
1420
|
+
{
|
|
1421
|
+
"tag": "summary",
|
|
1422
|
+
"group": "interactive",
|
|
1423
|
+
"void": false,
|
|
1424
|
+
"attrs": []
|
|
1425
|
+
}
|
|
1426
|
+
]
|
|
1427
|
+
}
|
|
1428
|
+
}
|