elm-ssr 0.1.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 +67 -0
- package/bin/elm-ssr.mjs +102 -0
- package/elm-src/ElmSsr/Action.elm +210 -0
- package/elm-src/ElmSsr/Document/Encode.elm +83 -0
- package/elm-src/ElmSsr/Document/Events.elm +125 -0
- package/elm-src/ElmSsr/Document.elm +26 -0
- package/elm-src/ElmSsr/Html/Attributes.elm +344 -0
- package/elm-src/ElmSsr/Html/Events.elm +95 -0
- package/elm-src/ElmSsr/Html.elm +706 -0
- package/elm-src/ElmSsr/Island/Shared.elm +38 -0
- package/elm-src/ElmSsr/Island.elm +49 -0
- package/elm-src/ElmSsr/Loader.elm +297 -0
- package/elm-src/ElmSsr/Page.elm +102 -0
- package/elm-src/ElmSsr/Route.elm +136 -0
- package/elm-src/ElmSsr/Runtime.elm +170 -0
- package/elm-src/ElmSsr/Svg/Attributes.elm +1208 -0
- package/elm-src/ElmSsr/Svg.elm +309 -0
- package/lib/build.mjs +256 -0
- package/lib/migrate.mjs +146 -0
- package/lib/scaffold.mjs +472 -0
- package/lib/workspace.mjs +21 -0
- package/package.json +60 -0
- package/src/app.ts +74 -0
- package/src/backends.ts +116 -0
- package/src/client-runtime/islands.ts +247 -0
- package/src/effects.ts +267 -0
- package/src/http.ts +86 -0
- package/src/middleware.ts +104 -0
- package/src/migrations.ts +225 -0
- package/src/protocol.ts +119 -0
- package/src/render.ts +111 -0
- package/src/request-handler.ts +208 -0
- package/src/response-headers.ts +18 -0
- package/src/serialize.ts +47 -0
- package/src/tasks.ts +139 -0
|
@@ -0,0 +1,706 @@
|
|
|
1
|
+
module ElmSsr.Html exposing
|
|
2
|
+
( Node(..)
|
|
3
|
+
, Attribute(..)
|
|
4
|
+
, EventCapture(..)
|
|
5
|
+
, EventValue(..)
|
|
6
|
+
, text
|
|
7
|
+
, a, abbr, address, article, aside, audio, b, bdi, bdo, blockquote, br, button, canvas, caption, cite, code, col, colgroup, data, datalist, dd, del, details, dfn, dialog, div, dl, dt, em, embed, fieldset, figcaption, figure, footer, form, h1, h2, h3, h4, h5, h6, header, hr, i, iframe, img, input, ins, kbd, label, legend, li, link, main_, map, mark, math, menu, meta, meter, nav, noscript, object, ol, optgroup, option, output, p, param, picture, pre, progress, q, rb, rp, rt, rtc, ruby, s, samp, script, section, select, slot, small, source, span, strong, sub, summary, sup, svg, table, tbody, td, template, textarea, tfoot, th, thead, time, title, tr, track, u, ul, var, video, wbr
|
|
8
|
+
, element, voidElement
|
|
9
|
+
, mapNode, mapAttribute
|
|
10
|
+
, static, island, hasIsland, anyIsland
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
{-| The HTML AST and element vocabulary.
|
|
14
|
+
|
|
15
|
+
Attributes live in [`ElmSsr.Html.Attributes`](./Html/Attributes.elm) and event
|
|
16
|
+
handlers in [`ElmSsr.Html.Events`](./Html/Events.elm), mirroring `elm/html`.
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
# AST
|
|
20
|
+
|
|
21
|
+
@docs Node, Attribute, EventCapture, EventValue
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
# Text and elements
|
|
25
|
+
|
|
26
|
+
@docs text
|
|
27
|
+
@docs a, article, button, code, div, form, h1, h2, h3, header, input, label, li, link, main_, meta, nav, p, section, span, ul
|
|
28
|
+
@docs element, voidElement
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
# Mapping
|
|
32
|
+
|
|
33
|
+
@docs mapNode, mapAttribute
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
# Islands
|
|
37
|
+
|
|
38
|
+
@docs static, island, hasIsland, anyIsland
|
|
39
|
+
|
|
40
|
+
-}
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
type Node msg
|
|
44
|
+
= Element String (List (Attribute msg)) (List (Node msg))
|
|
45
|
+
| VoidElement String (List (Attribute msg))
|
|
46
|
+
| Text String
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
type Attribute msg
|
|
50
|
+
= Property String String
|
|
51
|
+
| EventHandler String EventCapture (EventValue -> msg)
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
type EventCapture
|
|
55
|
+
= NoEventData
|
|
56
|
+
| TargetValue
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
type EventValue
|
|
60
|
+
= NoValue
|
|
61
|
+
| StringValue String
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
text : String -> Node msg
|
|
65
|
+
text =
|
|
66
|
+
Text
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
mapNode : (a -> b) -> Node a -> Node b
|
|
70
|
+
mapNode fn node =
|
|
71
|
+
case node of
|
|
72
|
+
Element tag attributes children ->
|
|
73
|
+
Element tag (List.map (mapAttribute fn) attributes) (List.map (mapNode fn) children)
|
|
74
|
+
|
|
75
|
+
VoidElement tag attributes ->
|
|
76
|
+
VoidElement tag (List.map (mapAttribute fn) attributes)
|
|
77
|
+
|
|
78
|
+
Text content ->
|
|
79
|
+
Text content
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
mapAttribute : (a -> b) -> Attribute a -> Attribute b
|
|
83
|
+
mapAttribute fn attribute =
|
|
84
|
+
case attribute of
|
|
85
|
+
Property attributeName attributeValue ->
|
|
86
|
+
Property attributeName attributeValue
|
|
87
|
+
|
|
88
|
+
EventHandler eventName capture toMessage ->
|
|
89
|
+
EventHandler eventName capture (\eventValue -> fn (toMessage eventValue))
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
{-| Drop every event handler from a node tree, producing inert markup usable at
|
|
93
|
+
any message type. Used to render an island's initial view into an otherwise
|
|
94
|
+
static page; the island's own client runtime replaces that inert subtree when it
|
|
95
|
+
mounts.
|
|
96
|
+
-}
|
|
97
|
+
static : Node a -> Node b
|
|
98
|
+
static node =
|
|
99
|
+
case node of
|
|
100
|
+
Element tag attributes children ->
|
|
101
|
+
Element tag (List.filterMap staticAttribute attributes) (List.map static children)
|
|
102
|
+
|
|
103
|
+
VoidElement tag attributes ->
|
|
104
|
+
VoidElement tag (List.filterMap staticAttribute attributes)
|
|
105
|
+
|
|
106
|
+
Text content ->
|
|
107
|
+
Text content
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
staticAttribute : Attribute a -> Maybe (Attribute b)
|
|
111
|
+
staticAttribute attribute =
|
|
112
|
+
case attribute of
|
|
113
|
+
Property attributeName attributeValue ->
|
|
114
|
+
Just (Property attributeName attributeValue)
|
|
115
|
+
|
|
116
|
+
EventHandler _ _ _ ->
|
|
117
|
+
Nothing
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
{-| Check if a node is an island marker or contains any. -}
|
|
121
|
+
hasIsland : Node msg -> Bool
|
|
122
|
+
hasIsland node =
|
|
123
|
+
case node of
|
|
124
|
+
Element tag _ children ->
|
|
125
|
+
(tag == "elm-ssr-island") || List.any hasIsland children
|
|
126
|
+
|
|
127
|
+
VoidElement _ _ ->
|
|
128
|
+
False
|
|
129
|
+
|
|
130
|
+
Text _ ->
|
|
131
|
+
False
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
{-| Check if any node in a list contains an island marker. -}
|
|
135
|
+
anyIsland : List (Node msg) -> Bool
|
|
136
|
+
anyIsland =
|
|
137
|
+
List.any hasIsland
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
{-| Wrap a node as an interactive island: an `<elm-ssr-island>` marker carrying
|
|
141
|
+
the island name and its encoded props, with the node rendered inert inside it.
|
|
142
|
+
-}
|
|
143
|
+
island : String -> String -> Node a -> Node b
|
|
144
|
+
island name encodedProps node =
|
|
145
|
+
Element "elm-ssr-island"
|
|
146
|
+
[ Property "data-elmssr-island" name
|
|
147
|
+
, Property "data-elmssr-props" encodedProps
|
|
148
|
+
]
|
|
149
|
+
[ static node ]
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
{-| Build an element with children. -}
|
|
153
|
+
element : String -> List (Attribute msg) -> List (Node msg) -> Node msg
|
|
154
|
+
element tag attributes children =
|
|
155
|
+
Element tag attributes children
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
{-| Build a void (childless) element such as `input` or `meta`. -}
|
|
159
|
+
voidElement : String -> List (Attribute msg) -> Node msg
|
|
160
|
+
voidElement tag attributes =
|
|
161
|
+
VoidElement tag attributes
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
a : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
165
|
+
a =
|
|
166
|
+
element "a"
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
article : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
170
|
+
article =
|
|
171
|
+
element "article"
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
button : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
175
|
+
button =
|
|
176
|
+
element "button"
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
code : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
180
|
+
code =
|
|
181
|
+
element "code"
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
div : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
185
|
+
div =
|
|
186
|
+
element "div"
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
form : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
190
|
+
form =
|
|
191
|
+
element "form"
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
h1 : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
195
|
+
h1 =
|
|
196
|
+
element "h1"
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
h2 : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
200
|
+
h2 =
|
|
201
|
+
element "h2"
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
h3 : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
205
|
+
h3 =
|
|
206
|
+
element "h3"
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
header : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
210
|
+
header =
|
|
211
|
+
element "header"
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
input : List (Attribute msg) -> Node msg
|
|
215
|
+
input =
|
|
216
|
+
voidElement "input"
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
label : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
220
|
+
label =
|
|
221
|
+
element "label"
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
li : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
225
|
+
li =
|
|
226
|
+
element "li"
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
link : List (Attribute msg) -> Node msg
|
|
230
|
+
link =
|
|
231
|
+
voidElement "link"
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
main_ : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
235
|
+
main_ =
|
|
236
|
+
element "main"
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
meta : List (Attribute msg) -> Node msg
|
|
240
|
+
meta =
|
|
241
|
+
voidElement "meta"
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
nav : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
245
|
+
nav =
|
|
246
|
+
element "nav"
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
p : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
250
|
+
p =
|
|
251
|
+
element "p"
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
section : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
255
|
+
section =
|
|
256
|
+
element "section"
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
span : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
260
|
+
span =
|
|
261
|
+
element "span"
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
ul : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
265
|
+
ul =
|
|
266
|
+
element "ul"
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
abbr : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
270
|
+
abbr =
|
|
271
|
+
element "abbr"
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
address : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
275
|
+
address =
|
|
276
|
+
element "address"
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
aside : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
280
|
+
aside =
|
|
281
|
+
element "aside"
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
audio : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
285
|
+
audio =
|
|
286
|
+
element "audio"
|
|
287
|
+
|
|
288
|
+
|
|
289
|
+
b : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
290
|
+
b =
|
|
291
|
+
element "b"
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
bdi : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
295
|
+
bdi =
|
|
296
|
+
element "bdi"
|
|
297
|
+
|
|
298
|
+
|
|
299
|
+
bdo : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
300
|
+
bdo =
|
|
301
|
+
element "bdo"
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
blockquote : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
305
|
+
blockquote =
|
|
306
|
+
element "blockquote"
|
|
307
|
+
|
|
308
|
+
|
|
309
|
+
br : List (Attribute msg) -> Node msg
|
|
310
|
+
br =
|
|
311
|
+
voidElement "br"
|
|
312
|
+
|
|
313
|
+
|
|
314
|
+
canvas : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
315
|
+
canvas =
|
|
316
|
+
element "canvas"
|
|
317
|
+
|
|
318
|
+
|
|
319
|
+
caption : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
320
|
+
caption =
|
|
321
|
+
element "caption"
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
cite : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
325
|
+
cite =
|
|
326
|
+
element "cite"
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
col : List (Attribute msg) -> Node msg
|
|
330
|
+
col =
|
|
331
|
+
voidElement "col"
|
|
332
|
+
|
|
333
|
+
|
|
334
|
+
colgroup : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
335
|
+
colgroup =
|
|
336
|
+
element "colgroup"
|
|
337
|
+
|
|
338
|
+
|
|
339
|
+
data : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
340
|
+
data =
|
|
341
|
+
element "data"
|
|
342
|
+
|
|
343
|
+
|
|
344
|
+
datalist : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
345
|
+
datalist =
|
|
346
|
+
element "datalist"
|
|
347
|
+
|
|
348
|
+
|
|
349
|
+
dd : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
350
|
+
dd =
|
|
351
|
+
element "dd"
|
|
352
|
+
|
|
353
|
+
|
|
354
|
+
del : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
355
|
+
del =
|
|
356
|
+
element "del"
|
|
357
|
+
|
|
358
|
+
|
|
359
|
+
details : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
360
|
+
details =
|
|
361
|
+
element "details"
|
|
362
|
+
|
|
363
|
+
|
|
364
|
+
dfn : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
365
|
+
dfn =
|
|
366
|
+
element "dfn"
|
|
367
|
+
|
|
368
|
+
|
|
369
|
+
dialog : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
370
|
+
dialog =
|
|
371
|
+
element "dialog"
|
|
372
|
+
|
|
373
|
+
|
|
374
|
+
dl : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
375
|
+
dl =
|
|
376
|
+
element "dl"
|
|
377
|
+
|
|
378
|
+
|
|
379
|
+
dt : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
380
|
+
dt =
|
|
381
|
+
element "dt"
|
|
382
|
+
|
|
383
|
+
|
|
384
|
+
em : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
385
|
+
em =
|
|
386
|
+
element "em"
|
|
387
|
+
|
|
388
|
+
|
|
389
|
+
embed : List (Attribute msg) -> Node msg
|
|
390
|
+
embed =
|
|
391
|
+
voidElement "embed"
|
|
392
|
+
|
|
393
|
+
|
|
394
|
+
title : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
395
|
+
title =
|
|
396
|
+
element "title"
|
|
397
|
+
|
|
398
|
+
|
|
399
|
+
fieldset : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
400
|
+
fieldset =
|
|
401
|
+
element "fieldset"
|
|
402
|
+
|
|
403
|
+
|
|
404
|
+
figcaption : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
405
|
+
figcaption =
|
|
406
|
+
element "figcaption"
|
|
407
|
+
|
|
408
|
+
|
|
409
|
+
figure : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
410
|
+
figure =
|
|
411
|
+
element "figure"
|
|
412
|
+
|
|
413
|
+
|
|
414
|
+
footer : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
415
|
+
footer =
|
|
416
|
+
element "footer"
|
|
417
|
+
|
|
418
|
+
|
|
419
|
+
h4 : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
420
|
+
h4 =
|
|
421
|
+
element "h4"
|
|
422
|
+
|
|
423
|
+
|
|
424
|
+
h5 : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
425
|
+
h5 =
|
|
426
|
+
element "h5"
|
|
427
|
+
|
|
428
|
+
|
|
429
|
+
h6 : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
430
|
+
h6 =
|
|
431
|
+
element "h6"
|
|
432
|
+
|
|
433
|
+
|
|
434
|
+
hr : List (Attribute msg) -> Node msg
|
|
435
|
+
hr =
|
|
436
|
+
voidElement "hr"
|
|
437
|
+
|
|
438
|
+
|
|
439
|
+
i : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
440
|
+
i =
|
|
441
|
+
element "i"
|
|
442
|
+
|
|
443
|
+
|
|
444
|
+
iframe : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
445
|
+
iframe =
|
|
446
|
+
element "iframe"
|
|
447
|
+
|
|
448
|
+
|
|
449
|
+
img : List (Attribute msg) -> Node msg
|
|
450
|
+
img =
|
|
451
|
+
voidElement "img"
|
|
452
|
+
|
|
453
|
+
|
|
454
|
+
ins : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
455
|
+
ins =
|
|
456
|
+
element "ins"
|
|
457
|
+
|
|
458
|
+
|
|
459
|
+
kbd : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
460
|
+
kbd =
|
|
461
|
+
element "kbd"
|
|
462
|
+
|
|
463
|
+
|
|
464
|
+
legend : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
465
|
+
legend =
|
|
466
|
+
element "legend"
|
|
467
|
+
|
|
468
|
+
|
|
469
|
+
map : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
470
|
+
map =
|
|
471
|
+
element "map"
|
|
472
|
+
|
|
473
|
+
|
|
474
|
+
mark : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
475
|
+
mark =
|
|
476
|
+
element "mark"
|
|
477
|
+
|
|
478
|
+
|
|
479
|
+
math : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
480
|
+
math =
|
|
481
|
+
element "math"
|
|
482
|
+
|
|
483
|
+
|
|
484
|
+
menu : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
485
|
+
menu =
|
|
486
|
+
element "menu"
|
|
487
|
+
|
|
488
|
+
|
|
489
|
+
meter : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
490
|
+
meter =
|
|
491
|
+
element "meter"
|
|
492
|
+
|
|
493
|
+
|
|
494
|
+
noscript : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
495
|
+
noscript =
|
|
496
|
+
element "noscript"
|
|
497
|
+
|
|
498
|
+
|
|
499
|
+
object : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
500
|
+
object =
|
|
501
|
+
element "object"
|
|
502
|
+
|
|
503
|
+
|
|
504
|
+
ol : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
505
|
+
ol =
|
|
506
|
+
element "ol"
|
|
507
|
+
|
|
508
|
+
|
|
509
|
+
optgroup : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
510
|
+
optgroup =
|
|
511
|
+
element "optgroup"
|
|
512
|
+
|
|
513
|
+
|
|
514
|
+
option : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
515
|
+
option =
|
|
516
|
+
element "option"
|
|
517
|
+
|
|
518
|
+
|
|
519
|
+
output : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
520
|
+
output =
|
|
521
|
+
element "output"
|
|
522
|
+
|
|
523
|
+
|
|
524
|
+
param : List (Attribute msg) -> Node msg
|
|
525
|
+
param =
|
|
526
|
+
voidElement "param"
|
|
527
|
+
|
|
528
|
+
|
|
529
|
+
picture : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
530
|
+
picture =
|
|
531
|
+
element "picture"
|
|
532
|
+
|
|
533
|
+
|
|
534
|
+
pre : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
535
|
+
pre =
|
|
536
|
+
element "pre"
|
|
537
|
+
|
|
538
|
+
|
|
539
|
+
progress : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
540
|
+
progress =
|
|
541
|
+
element "progress"
|
|
542
|
+
|
|
543
|
+
|
|
544
|
+
q : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
545
|
+
q =
|
|
546
|
+
element "q"
|
|
547
|
+
|
|
548
|
+
|
|
549
|
+
rb : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
550
|
+
rb =
|
|
551
|
+
element "rb"
|
|
552
|
+
|
|
553
|
+
|
|
554
|
+
rp : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
555
|
+
rp =
|
|
556
|
+
element "rp"
|
|
557
|
+
|
|
558
|
+
|
|
559
|
+
rt : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
560
|
+
rt =
|
|
561
|
+
element "rt"
|
|
562
|
+
|
|
563
|
+
|
|
564
|
+
rtc : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
565
|
+
rtc =
|
|
566
|
+
element "rtc"
|
|
567
|
+
|
|
568
|
+
|
|
569
|
+
ruby : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
570
|
+
ruby =
|
|
571
|
+
element "ruby"
|
|
572
|
+
|
|
573
|
+
|
|
574
|
+
s : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
575
|
+
s =
|
|
576
|
+
element "s"
|
|
577
|
+
|
|
578
|
+
|
|
579
|
+
samp : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
580
|
+
samp =
|
|
581
|
+
element "samp"
|
|
582
|
+
|
|
583
|
+
|
|
584
|
+
script : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
585
|
+
script =
|
|
586
|
+
element "script"
|
|
587
|
+
|
|
588
|
+
|
|
589
|
+
select : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
590
|
+
select =
|
|
591
|
+
element "select"
|
|
592
|
+
|
|
593
|
+
|
|
594
|
+
slot : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
595
|
+
slot =
|
|
596
|
+
element "slot"
|
|
597
|
+
|
|
598
|
+
|
|
599
|
+
small : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
600
|
+
small =
|
|
601
|
+
element "small"
|
|
602
|
+
|
|
603
|
+
|
|
604
|
+
source : List (Attribute msg) -> Node msg
|
|
605
|
+
source =
|
|
606
|
+
voidElement "source"
|
|
607
|
+
|
|
608
|
+
|
|
609
|
+
strong : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
610
|
+
strong =
|
|
611
|
+
element "strong"
|
|
612
|
+
|
|
613
|
+
|
|
614
|
+
sub : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
615
|
+
sub =
|
|
616
|
+
element "sub"
|
|
617
|
+
|
|
618
|
+
|
|
619
|
+
summary : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
620
|
+
summary =
|
|
621
|
+
element "summary"
|
|
622
|
+
|
|
623
|
+
|
|
624
|
+
sup : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
625
|
+
sup =
|
|
626
|
+
element "sup"
|
|
627
|
+
|
|
628
|
+
|
|
629
|
+
svg : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
630
|
+
svg =
|
|
631
|
+
element "svg"
|
|
632
|
+
|
|
633
|
+
|
|
634
|
+
table : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
635
|
+
table =
|
|
636
|
+
element "table"
|
|
637
|
+
|
|
638
|
+
|
|
639
|
+
tbody : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
640
|
+
tbody =
|
|
641
|
+
element "tbody"
|
|
642
|
+
|
|
643
|
+
|
|
644
|
+
td : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
645
|
+
td =
|
|
646
|
+
element "td"
|
|
647
|
+
|
|
648
|
+
|
|
649
|
+
template : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
650
|
+
template =
|
|
651
|
+
element "template"
|
|
652
|
+
|
|
653
|
+
|
|
654
|
+
textarea : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
655
|
+
textarea =
|
|
656
|
+
element "textarea"
|
|
657
|
+
|
|
658
|
+
|
|
659
|
+
tfoot : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
660
|
+
tfoot =
|
|
661
|
+
element "tfoot"
|
|
662
|
+
|
|
663
|
+
|
|
664
|
+
th : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
665
|
+
th =
|
|
666
|
+
element "th"
|
|
667
|
+
|
|
668
|
+
|
|
669
|
+
thead : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
670
|
+
thead =
|
|
671
|
+
element "thead"
|
|
672
|
+
|
|
673
|
+
|
|
674
|
+
time : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
675
|
+
time =
|
|
676
|
+
element "time"
|
|
677
|
+
|
|
678
|
+
|
|
679
|
+
tr : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
680
|
+
tr =
|
|
681
|
+
element "tr"
|
|
682
|
+
|
|
683
|
+
|
|
684
|
+
track : List (Attribute msg) -> Node msg
|
|
685
|
+
track =
|
|
686
|
+
voidElement "track"
|
|
687
|
+
|
|
688
|
+
|
|
689
|
+
u : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
690
|
+
u =
|
|
691
|
+
element "u"
|
|
692
|
+
|
|
693
|
+
|
|
694
|
+
var : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
695
|
+
var =
|
|
696
|
+
element "var"
|
|
697
|
+
|
|
698
|
+
|
|
699
|
+
video : List (Attribute msg) -> List (Node msg) -> Node msg
|
|
700
|
+
video =
|
|
701
|
+
element "video"
|
|
702
|
+
|
|
703
|
+
|
|
704
|
+
wbr : List (Attribute msg) -> Node msg
|
|
705
|
+
wbr =
|
|
706
|
+
voidElement "wbr"
|