foldkit 0.11.0-canary.0 → 0.13.0-canary.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/dist/html.js CHANGED
@@ -1,118 +1,7 @@
1
1
  import { Array, Data, Effect, Match, Predicate, Ref, String, flow, pipe } from 'effect';
2
2
  import { h } from 'snabbdom';
3
3
  import { Dispatch } from './runtime';
4
- export const { Key: Key_, Class: Class_, Id: Id_, Title: Title_, Lang: Lang_, Dir: Dir_, Tabindex: Tabindex_, Hidden: Hidden_, OnClick: OnClick_, OnDblClick: OnDblClick_, OnMouseDown: OnMouseDown_, OnMouseUp: OnMouseUp_, OnMouseEnter: OnMouseEnter_, OnMouseLeave: OnMouseLeave_, OnMouseOver: OnMouseOver_, OnMouseOut: OnMouseOut_, OnMouseMove: OnMouseMove_, OnKeyDown: OnKeyDown_, OnKeyUp: OnKeyUp_, OnKeyPress: OnKeyPress_, OnFocus: OnFocus_, OnBlur: OnBlur_, OnInput: OnInput_, OnChange: OnChange_, OnSubmit: OnSubmit_, OnReset: OnReset_, OnScroll: OnScroll_, OnWheel: OnWheel_, OnCopy: OnCopy_, OnCut: OnCut_, OnPaste: OnPaste_, Value: Value_, Checked: Checked_, Selected: Selected_, Placeholder: Placeholder_, Name: Name_, Disabled: Disabled_, Readonly: Readonly_, Required: Required_, Autofocus: Autofocus_, Spellcheck: Spellcheck_, Autocorrect: Autocorrect_, Autocapitalize: Autocapitalize_, InputMode: InputMode_, EnterKeyHint: EnterKeyHint_, Multiple: Multiple_, Type: Type_, Accept: Accept_, Autocomplete: Autocomplete_, Pattern: Pattern_, Maxlength: Maxlength_, Minlength: Minlength_, Size: Size_, Cols: Cols_, Rows: Rows_, Max: Max_, Min: Min_, Step: Step_, For: For_, Href: Href_, Src: Src_, Alt: Alt_, Target: Target_, Rel: Rel_, Download: Download_, Action: Action_, Method: Method_, Enctype: Enctype_, Novalidate: Novalidate_, Role: Role_, AriaLabel: AriaLabel_, AriaLabelledBy: AriaLabelledBy_, AriaDescribedBy: AriaDescribedBy_, AriaHidden: AriaHidden_, AriaExpanded: AriaExpanded_, AriaSelected: AriaSelected_, AriaChecked: AriaChecked_, AriaDisabled: AriaDisabled_, AriaRequired: AriaRequired_, AriaInvalid: AriaInvalid_, AriaLive: AriaLive_, Attribute: Attribute_, DataAttribute: DataAttribute_, Style: Style_, InnerHTML: InnerHTML_, ViewBox: ViewBox_, Xmlns: Xmlns_, Fill: Fill_, FillRule: FillRule_, ClipRule: ClipRule_, Stroke: Stroke_, StrokeWidth: StrokeWidth_, StrokeLinecap: StrokeLinecap_, StrokeLinejoin: StrokeLinejoin_, D: D_, Cx: Cx_, Cy: Cy_, R: R_, X: X_, Y: Y_, Width: Width_, Height: Height_, X1: X1_, Y1: Y1_, X2: X2_, Y2: Y2_, Points: Points_, Transform: Transform_, Opacity: Opacity_, StrokeDasharray: StrokeDasharray_, StrokeDashoffset: StrokeDashoffset_, } = Data.taggedEnum();
5
- export const Key = (value) => Key_({ value });
6
- export const Class = (value) => Class_({ value });
7
- export const Id = (value) => Id_({ value });
8
- export const Title = (value) => Title_({ value });
9
- export const Lang = (value) => Lang_({ value });
10
- export const Dir = (value) => Dir_({ value });
11
- export const Tabindex = (value) => Tabindex_({ value });
12
- export const Hidden = (value) => Hidden_({ value });
13
- export const OnClick = (message) => OnClick_({ message });
14
- export const OnDblClick = (message) => OnDblClick_({ message });
15
- export const OnMouseDown = (message) => OnMouseDown_({ message });
16
- export const OnMouseUp = (message) => OnMouseUp_({ message });
17
- export const OnMouseEnter = (message) => OnMouseEnter_({ message });
18
- export const OnMouseLeave = (message) => OnMouseLeave_({ message });
19
- export const OnMouseOver = (message) => OnMouseOver_({ message });
20
- export const OnMouseOut = (message) => OnMouseOut_({ message });
21
- export const OnMouseMove = (message) => OnMouseMove_({ message });
22
- export const OnKeyDown = (f) => OnKeyDown_({ f });
23
- export const OnKeyUp = (f) => OnKeyUp_({ f });
24
- export const OnKeyPress = (f) => OnKeyPress_({ f });
25
- export const OnFocus = (message) => OnFocus_({ message });
26
- export const OnBlur = (message) => OnBlur_({ message });
27
- export const OnInput = (f) => OnInput_({ f });
28
- export const OnChange = (f) => OnChange_({ f });
29
- export const OnSubmit = (message) => OnSubmit_({ message });
30
- export const OnReset = (message) => OnReset_({ message });
31
- export const OnScroll = (message) => OnScroll_({ message });
32
- export const OnWheel = (message) => OnWheel_({ message });
33
- export const OnCopy = (message) => OnCopy_({ message });
34
- export const OnCut = (message) => OnCut_({ message });
35
- export const OnPaste = (message) => OnPaste_({ message });
36
- export const Value = (value) => Value_({ value });
37
- export const Checked = (value) => Checked_({ value });
38
- export const Selected = (value) => Selected_({ value });
39
- export const Placeholder = (value) => Placeholder_({ value });
40
- export const Name = (value) => Name_({ value });
41
- export const Disabled = (value) => Disabled_({ value });
42
- export const Readonly = (value) => Readonly_({ value });
43
- export const Required = (value) => Required_({ value });
44
- export const Autofocus = (value) => Autofocus_({ value });
45
- export const Spellcheck = (value) => Spellcheck_({ value });
46
- export const Autocorrect = (value) => Autocorrect_({ value });
47
- export const Autocapitalize = (value) => Autocapitalize_({ value });
48
- export const InputMode = (value) => InputMode_({ value });
49
- export const EnterKeyHint = (value) => EnterKeyHint_({ value });
50
- export const Multiple = (value) => Multiple_({ value });
51
- export const Type = (value) => Type_({ value });
52
- export const Accept = (value) => Accept_({ value });
53
- export const Autocomplete = (value) => Autocomplete_({ value });
54
- export const Pattern = (value) => Pattern_({ value });
55
- export const Maxlength = (value) => Maxlength_({ value });
56
- export const Minlength = (value) => Minlength_({ value });
57
- export const Size = (value) => Size_({ value });
58
- export const Cols = (value) => Cols_({ value });
59
- export const Rows = (value) => Rows_({ value });
60
- export const Max = (value) => Max_({ value });
61
- export const Min = (value) => Min_({ value });
62
- export const Step = (value) => Step_({ value });
63
- export const For = (value) => For_({ value });
64
- export const Href = (value) => Href_({ value });
65
- export const Src = (value) => Src_({ value });
66
- export const Alt = (value) => Alt_({ value });
67
- export const Target = (value) => Target_({ value });
68
- export const Rel = (value) => Rel_({ value });
69
- export const Download = (value) => Download_({ value });
70
- export const Action = (value) => Action_({ value });
71
- export const Method = (value) => Method_({ value });
72
- export const Enctype = (value) => Enctype_({ value });
73
- export const Novalidate = (value) => Novalidate_({ value });
74
- export const Role = (value) => Role_({ value });
75
- export const AriaLabel = (value) => AriaLabel_({ value });
76
- export const AriaLabelledBy = (value) => AriaLabelledBy_({ value });
77
- export const AriaDescribedBy = (value) => AriaDescribedBy_({ value });
78
- export const AriaHidden = (value) => AriaHidden_({ value });
79
- export const AriaExpanded = (value) => AriaExpanded_({ value });
80
- export const AriaSelected = (value) => AriaSelected_({ value });
81
- export const AriaChecked = (value) => AriaChecked_({ value });
82
- export const AriaDisabled = (value) => AriaDisabled_({ value });
83
- export const AriaRequired = (value) => AriaRequired_({ value });
84
- export const AriaInvalid = (value) => AriaInvalid_({ value });
85
- export const AriaLive = (value) => AriaLive_({ value });
86
- export const Attribute = (key, value) => Attribute_({ key, value });
87
- export const DataAttr = (key, value) => DataAttribute_({ key, value });
88
- export const StyleAttr = (value) => Style_({ value });
89
- export const InnerHTML = (value) => InnerHTML_({ value });
90
- export const ViewBox = (value) => ViewBox_({ value });
91
- export const Xmlns = (value) => Xmlns_({ value });
92
- export const Fill = (value) => Fill_({ value });
93
- export const FillRule = (value) => FillRule_({ value });
94
- export const ClipRule = (value) => ClipRule_({ value });
95
- export const Stroke = (value) => Stroke_({ value });
96
- export const StrokeWidth = (value) => StrokeWidth_({ value });
97
- export const StrokeLinecap = (value) => StrokeLinecap_({ value });
98
- export const StrokeLinejoin = (value) => StrokeLinejoin_({ value });
99
- export const D = (value) => D_({ value });
100
- export const Cx = (value) => Cx_({ value });
101
- export const Cy = (value) => Cy_({ value });
102
- export const R = (value) => R_({ value });
103
- export const X = (value) => X_({ value });
104
- export const Y = (value) => Y_({ value });
105
- export const Width = (value) => Width_({ value });
106
- export const Height = (value) => Height_({ value });
107
- export const X1 = (value) => X1_({ value });
108
- export const Y1 = (value) => Y1_({ value });
109
- export const X2 = (value) => X2_({ value });
110
- export const Y2 = (value) => Y2_({ value });
111
- export const Points = (value) => Points_({ value });
112
- export const Transform = (value) => Transform_({ value });
113
- export const Opacity = (value) => Opacity_({ value });
114
- export const StrokeDasharray = (value) => StrokeDasharray_({ value });
115
- export const StrokeDashoffset = (value) => StrokeDashoffset_({ value });
4
+ export const { Key, Class, Id, Title, Lang, Dir, Tabindex, Hidden, OnClick, OnDblClick, OnMouseDown, OnMouseUp, OnMouseEnter, OnMouseLeave, OnMouseOver, OnMouseOut, OnMouseMove, OnKeyDown, OnKeyUp, OnKeyPress, OnFocus, OnBlur, OnInput, OnChange, OnSubmit, OnReset, OnScroll, OnWheel, OnCopy, OnCut, OnPaste, Value, Checked, Selected, Placeholder, Name, Disabled, Readonly, Required, Autofocus, Spellcheck, Autocorrect, Autocapitalize, InputMode, EnterKeyHint, Multiple, Type, Accept, Autocomplete, Pattern, Maxlength, Minlength, Size, Cols, Rows, Max, Min, Step, For, Href, Src, Alt, Target, Rel, Download, Action, Method, Enctype, Novalidate, Role, AriaLabel, AriaLabelledBy, AriaDescribedBy, AriaHidden, AriaExpanded, AriaSelected, AriaChecked, AriaDisabled, AriaRequired, AriaInvalid, AriaLive, Attribute, DataAttribute, Style, InnerHTML, ViewBox, Xmlns, Fill, FillRule, ClipRule, Stroke, StrokeWidth, StrokeLinecap, StrokeLinejoin, D, Cx, Cy, R, X, Y, Width, Height, X1, Y1, X2, Y2, Points, Transform, Opacity, StrokeDasharray, StrokeDashoffset, } = Data.taggedEnum();
116
5
  const buildVNodeData = (attributes) => Effect.gen(function* () {
117
6
  const { dispatchSync } = yield* Dispatch;
118
7
  const dataRef = yield* Ref.make({});
@@ -313,227 +202,354 @@ const buildVNodeData = (attributes) => Effect.gen(function* () {
313
202
  return yield* Ref.get(dataRef);
314
203
  });
315
204
  const processVNodeChildren = (children) => Effect.forEach(children, (child) => Predicate.isString(child) ? Effect.succeed(child) : child).pipe(Effect.map(Array.filter(Predicate.isNotNull)));
316
- export const createElement = (tagName, attributes = [], children = []) => Effect.gen(function* () {
205
+ const createElement = (tagName, attributes = [], children = []) => Effect.gen(function* () {
317
206
  const vnodeData = yield* buildVNodeData(attributes);
318
207
  const vnodeChildren = yield* processVNodeChildren(children);
319
208
  return h(tagName, vnodeData, Array.fromIterable(vnodeChildren));
320
209
  });
321
- const element = (tagName) => (attributes = [], children = []) => createElement(tagName, attributes, children);
322
- const voidElement = (tagName) => (attributes = []) => createElement(tagName, attributes, []);
323
- export const keyed = (tagName) => (key, attributes = [], children = []) => element(tagName)([...attributes, Key(key)], children);
324
- // HTML
325
- export const a = element('a');
326
- export const abbr = element('abbr');
327
- export const address = element('address');
328
- export const area = voidElement('area');
329
- export const article = element('article');
330
- export const aside = element('aside');
331
- export const audio = element('audio');
332
- export const b = element('b');
333
- export const base = voidElement('base');
334
- export const bdi = element('bdi');
335
- export const bdo = element('bdo');
336
- export const blockquote = element('blockquote');
337
- export const body = element('body');
338
- export const br = voidElement('br');
339
- export const button = element('button');
340
- export const canvas = element('canvas');
341
- export const caption = element('caption');
342
- export const cite = element('cite');
343
- export const code = element('code');
344
- export const col = voidElement('col');
345
- export const colgroup = element('colgroup');
346
- export const data = element('data');
347
- export const datalist = element('datalist');
348
- export const dd = element('dd');
349
- export const del = element('del');
350
- export const details = element('details');
351
- export const dfn = element('dfn');
352
- export const dialog = element('dialog');
353
- export const div = element('div');
354
- export const dl = element('dl');
355
- export const dt = element('dt');
356
- export const em = element('em');
357
- export const embed = voidElement('embed');
358
- export const fieldset = element('fieldset');
359
- export const figcaption = element('figcaption');
360
- export const figure = element('figure');
361
- export const footer = element('footer');
362
- export const form = element('form');
363
- export const h1 = element('h1');
364
- export const h2 = element('h2');
365
- export const h3 = element('h3');
366
- export const h4 = element('h4');
367
- export const h5 = element('h5');
368
- export const h6 = element('h6');
369
- export const head = element('head');
370
- export const header = element('header');
371
- export const hgroup = element('hgroup');
372
- export const hr = voidElement('hr');
373
- export const html = element('html');
374
- export const i = element('i');
375
- export const iframe = element('iframe');
376
- export const img = voidElement('img');
377
- export const input = voidElement('input');
378
- export const ins = element('ins');
379
- export const kbd = element('kbd');
380
- export const label = element('label');
381
- export const legend = element('legend');
382
- export const li = element('li');
383
- export const link = voidElement('link');
384
- export const main = element('main');
385
- export const map = element('map');
386
- export const mark = element('mark');
387
- export const menu = element('menu');
388
- export const meta = voidElement('meta');
389
- export const meter = element('meter');
390
- export const nav = element('nav');
391
- export const noscript = element('noscript');
392
- export const object = element('object');
393
- export const ol = element('ol');
394
- export const optgroup = element('optgroup');
395
- export const option = element('option');
396
- export const output = element('output');
397
- export const p = element('p');
398
- export const picture = element('picture');
399
- export const portal = element('portal');
400
- export const pre = element('pre');
401
- export const progress = element('progress');
402
- export const q = element('q');
403
- export const rp = element('rp');
404
- export const rt = element('rt');
405
- export const ruby = element('ruby');
406
- export const s = element('s');
407
- export const samp = element('samp');
408
- export const script = element('script');
409
- export const search = element('search');
410
- export const section = element('section');
411
- export const select = element('select');
412
- export const slot = element('slot');
413
- export const small = element('small');
414
- export const source = voidElement('source');
415
- export const span = element('span');
416
- export const strong = element('strong');
417
- export const style = element('style');
418
- export const sub = element('sub');
419
- export const summary = element('summary');
420
- export const sup = element('sup');
421
- export const table = element('table');
422
- export const tbody = element('tbody');
423
- export const td = element('td');
424
- export const template = element('template');
425
- export const textarea = element('textarea');
426
- export const tfoot = element('tfoot');
427
- export const th = element('th');
428
- export const thead = element('thead');
429
- export const time = element('time');
430
- export const title = element('title');
431
- export const tr = element('tr');
432
- export const track = voidElement('track');
433
- export const u = element('u');
434
- export const ul = element('ul');
435
- export const var_ = element('var');
436
- export const video = element('video');
437
- export const wbr = voidElement('wbr');
438
- // SVG
439
- export const animate = element('animate');
440
- export const animateMotion = element('animateMotion');
441
- export const animateTransform = element('animateTransform');
442
- export const circle = element('circle');
443
- export const clipPath = element('clipPath');
444
- export const defs = element('defs');
445
- export const desc = element('desc');
446
- export const ellipse = element('ellipse');
447
- export const feBlend = element('feBlend');
448
- export const feColorMatrix = element('feColorMatrix');
449
- export const feComponentTransfer = element('feComponentTransfer');
450
- export const feComposite = element('feComposite');
451
- export const feConvolveMatrix = element('feConvolveMatrix');
452
- export const feDiffuseLighting = element('feDiffuseLighting');
453
- export const feDisplacementMap = element('feDisplacementMap');
454
- export const feDistantLight = element('feDistantLight');
455
- export const feDropShadow = element('feDropShadow');
456
- export const feFlood = element('feFlood');
457
- export const feFuncA = element('feFuncA');
458
- export const feFuncB = element('feFuncB');
459
- export const feFuncG = element('feFuncG');
460
- export const feFuncR = element('feFuncR');
461
- export const feGaussianBlur = element('feGaussianBlur');
462
- export const feImage = element('feImage');
463
- export const feMerge = element('feMerge');
464
- export const feMergeNode = element('feMergeNode');
465
- export const feMorphology = element('feMorphology');
466
- export const feOffset = element('feOffset');
467
- export const fePointLight = element('fePointLight');
468
- export const feSpecularLighting = element('feSpecularLighting');
469
- export const feSpotLight = element('feSpotLight');
470
- export const feTile = element('feTile');
471
- export const feTurbulence = element('feTurbulence');
472
- export const filter = element('filter');
473
- export const foreignObject = element('foreignObject');
474
- export const g = element('g');
475
- export const image = element('image');
476
- export const line = element('line');
477
- export const linearGradient = element('linearGradient');
478
- export const marker = element('marker');
479
- export const mask = element('mask');
480
- export const metadata = element('metadata');
481
- export const mpath = element('mpath');
482
- export const path = element('path');
483
- export const pattern = element('pattern');
484
- export const polygon = element('polygon');
485
- export const polyline = element('polyline');
486
- export const radialGradient = element('radialGradient');
487
- export const rect = element('rect');
488
- export const stop = element('stop');
489
- export const svg = element('svg');
490
- export const switch_ = element('switch');
491
- export const symbol = element('symbol');
492
- export const text = element('text');
493
- export const textPath = element('textPath');
494
- export const tspan = element('tspan');
495
- export const use = element('use');
496
- export const view = element('view');
497
- // MATH ML
498
- export const annotation = element('annotation');
499
- export const annotationXml = element('annotation-xml');
500
- export const math = element('math');
501
- export const maction = element('maction');
502
- export const menclose = element('menclose');
503
- export const merror = element('merror');
504
- export const mfenced = element('mfenced');
505
- export const mfrac = element('mfrac');
506
- export const mglyph = element('mglyph');
507
- export const mi = element('mi');
508
- export const mlabeledtr = element('mlabeledtr');
509
- export const mlongdiv = element('mlongdiv');
510
- export const mmultiscripts = element('mmultiscripts');
511
- export const mn = element('mn');
512
- export const mo = element('mo');
513
- export const mover = element('mover');
514
- export const mpadded = element('mpadded');
515
- export const mphantom = element('mphantom');
516
- export const mroot = element('mroot');
517
- export const mrow = element('mrow');
518
- export const ms = element('ms');
519
- export const mscarries = element('mscarries');
520
- export const mscarry = element('mscarry');
521
- export const msgroup = element('msgroup');
522
- export const msline = element('msline');
523
- export const mspace = element('mspace');
524
- export const msqrt = element('msqrt');
525
- export const msrow = element('msrow');
526
- export const mstack = element('mstack');
527
- export const mstyle = element('mstyle');
528
- export const msub = element('msub');
529
- export const msubsup = element('msubsup');
530
- export const msup = element('msup');
531
- export const mtable = element('mtable');
532
- export const mtd = element('mtd');
533
- export const mtext = element('mtext');
534
- export const mtr = element('mtr');
535
- export const munder = element('munder');
536
- export const munderover = element('munderover');
537
- export const semantics = element('semantics');
538
- // EMPTY
539
- export const empty = Effect.succeed(null);
210
+ const element = () => (tagName) => (attributes = [], children = []) => createElement(tagName, attributes, children);
211
+ const voidElement = () => (tagName) => (attributes = []) => createElement(tagName, attributes, []);
212
+ const keyed = () => (tagName) => (key, attributes = [], children = []) => element()(tagName)([...attributes, Key({ value: key })], children);
213
+ export const htmlElements = () => {
214
+ const el = element();
215
+ const voidEl = voidElement();
216
+ return {
217
+ // HTML
218
+ a: el('a'),
219
+ abbr: el('abbr'),
220
+ address: el('address'),
221
+ area: voidEl('area'),
222
+ article: el('article'),
223
+ aside: el('aside'),
224
+ audio: el('audio'),
225
+ b: el('b'),
226
+ base: voidEl('base'),
227
+ bdi: el('bdi'),
228
+ bdo: el('bdo'),
229
+ blockquote: el('blockquote'),
230
+ body: el('body'),
231
+ br: voidEl('br'),
232
+ button: el('button'),
233
+ canvas: el('canvas'),
234
+ caption: el('caption'),
235
+ cite: el('cite'),
236
+ code: el('code'),
237
+ col: voidEl('col'),
238
+ colgroup: el('colgroup'),
239
+ data: el('data'),
240
+ datalist: el('datalist'),
241
+ dd: el('dd'),
242
+ del: el('del'),
243
+ details: el('details'),
244
+ dfn: el('dfn'),
245
+ dialog: el('dialog'),
246
+ div: el('div'),
247
+ dl: el('dl'),
248
+ dt: el('dt'),
249
+ em: el('em'),
250
+ embed: voidEl('embed'),
251
+ fieldset: el('fieldset'),
252
+ figcaption: el('figcaption'),
253
+ figure: el('figure'),
254
+ footer: el('footer'),
255
+ form: el('form'),
256
+ h1: el('h1'),
257
+ h2: el('h2'),
258
+ h3: el('h3'),
259
+ h4: el('h4'),
260
+ h5: el('h5'),
261
+ h6: el('h6'),
262
+ head: el('head'),
263
+ header: el('header'),
264
+ hgroup: el('hgroup'),
265
+ hr: voidEl('hr'),
266
+ html: el('html'),
267
+ i: el('i'),
268
+ iframe: el('iframe'),
269
+ img: voidEl('img'),
270
+ input: voidEl('input'),
271
+ ins: el('ins'),
272
+ kbd: el('kbd'),
273
+ label: el('label'),
274
+ legend: el('legend'),
275
+ li: el('li'),
276
+ link: voidEl('link'),
277
+ main: el('main'),
278
+ map: el('map'),
279
+ mark: el('mark'),
280
+ menu: el('menu'),
281
+ meta: voidEl('meta'),
282
+ meter: el('meter'),
283
+ nav: el('nav'),
284
+ noscript: el('noscript'),
285
+ object: el('object'),
286
+ ol: el('ol'),
287
+ optgroup: el('optgroup'),
288
+ option: el('option'),
289
+ output: el('output'),
290
+ p: el('p'),
291
+ picture: el('picture'),
292
+ portal: el('portal'),
293
+ pre: el('pre'),
294
+ progress: el('progress'),
295
+ q: el('q'),
296
+ rp: el('rp'),
297
+ rt: el('rt'),
298
+ ruby: el('ruby'),
299
+ s: el('s'),
300
+ samp: el('samp'),
301
+ script: el('script'),
302
+ search: el('search'),
303
+ section: el('section'),
304
+ select: el('select'),
305
+ slot: el('slot'),
306
+ small: el('small'),
307
+ source: voidEl('source'),
308
+ span: el('span'),
309
+ strong: el('strong'),
310
+ style: el('style'),
311
+ sub: el('sub'),
312
+ summary: el('summary'),
313
+ sup: el('sup'),
314
+ table: el('table'),
315
+ tbody: el('tbody'),
316
+ td: el('td'),
317
+ template: el('template'),
318
+ textarea: el('textarea'),
319
+ tfoot: el('tfoot'),
320
+ th: el('th'),
321
+ thead: el('thead'),
322
+ time: el('time'),
323
+ title: el('title'),
324
+ tr: el('tr'),
325
+ track: voidEl('track'),
326
+ u: el('u'),
327
+ ul: el('ul'),
328
+ var: el('var'),
329
+ video: el('video'),
330
+ wbr: voidEl('wbr'),
331
+ // SVG
332
+ svg: el('svg'),
333
+ animate: el('animate'),
334
+ animateMotion: el('animateMotion'),
335
+ animateTransform: el('animateTransform'),
336
+ circle: el('circle'),
337
+ clipPath: el('clipPath'),
338
+ defs: el('defs'),
339
+ desc: el('desc'),
340
+ ellipse: el('ellipse'),
341
+ feBlend: el('feBlend'),
342
+ feColorMatrix: el('feColorMatrix'),
343
+ feComponentTransfer: el('feComponentTransfer'),
344
+ feComposite: el('feComposite'),
345
+ feConvolveMatrix: el('feConvolveMatrix'),
346
+ feDiffuseLighting: el('feDiffuseLighting'),
347
+ feDisplacementMap: el('feDisplacementMap'),
348
+ feDistantLight: el('feDistantLight'),
349
+ feDropShadow: el('feDropShadow'),
350
+ feFlood: el('feFlood'),
351
+ feFuncA: el('feFuncA'),
352
+ feFuncB: el('feFuncB'),
353
+ feFuncG: el('feFuncG'),
354
+ feFuncR: el('feFuncR'),
355
+ feGaussianBlur: el('feGaussianBlur'),
356
+ feImage: el('feImage'),
357
+ feMerge: el('feMerge'),
358
+ feMergeNode: el('feMergeNode'),
359
+ feMorphology: el('feMorphology'),
360
+ feOffset: el('feOffset'),
361
+ fePointLight: el('fePointLight'),
362
+ feSpecularLighting: el('feSpecularLighting'),
363
+ feSpotLight: el('feSpotLight'),
364
+ feTile: el('feTile'),
365
+ feTurbulence: el('feTurbulence'),
366
+ filter: el('filter'),
367
+ foreignObject: el('foreignObject'),
368
+ g: el('g'),
369
+ image: el('image'),
370
+ line: el('line'),
371
+ linearGradient: el('linearGradient'),
372
+ marker: el('marker'),
373
+ mask: el('mask'),
374
+ metadata: el('metadata'),
375
+ mpath: el('mpath'),
376
+ path: el('path'),
377
+ pattern: el('pattern'),
378
+ polygon: el('polygon'),
379
+ polyline: el('polyline'),
380
+ radialGradient: el('radialGradient'),
381
+ rect: el('rect'),
382
+ set: el('set'),
383
+ stop: el('stop'),
384
+ switch: el('switch'),
385
+ symbol: el('symbol'),
386
+ text: el('text'),
387
+ textPath: el('textPath'),
388
+ tspan: el('tspan'),
389
+ use: el('use'),
390
+ view: el('view'),
391
+ // MATH ML
392
+ math: el('math'),
393
+ annotation: el('annotation'),
394
+ 'annotation-xml': el('annotation-xml'),
395
+ maction: el('maction'),
396
+ menclose: el('menclose'),
397
+ merror: el('merror'),
398
+ mfenced: el('mfenced'),
399
+ mfrac: el('mfrac'),
400
+ mglyph: el('mglyph'),
401
+ mi: el('mi'),
402
+ mlabeledtr: el('mlabeledtr'),
403
+ mlongdiv: el('mlongdiv'),
404
+ mmultiscripts: el('mmultiscripts'),
405
+ mn: el('mn'),
406
+ mo: el('mo'),
407
+ mover: el('mover'),
408
+ mpadded: el('mpadded'),
409
+ mphantom: el('mphantom'),
410
+ mprescripts: el('mprescripts'),
411
+ mroot: el('mroot'),
412
+ mrow: el('mrow'),
413
+ ms: el('ms'),
414
+ mscarries: el('mscarries'),
415
+ mscarry: el('mscarry'),
416
+ msgroup: el('msgroup'),
417
+ msline: el('msline'),
418
+ mspace: el('mspace'),
419
+ msqrt: el('msqrt'),
420
+ msrow: el('msrow'),
421
+ mstack: el('mstack'),
422
+ mstyle: el('mstyle'),
423
+ msub: el('msub'),
424
+ msubsup: el('msubsup'),
425
+ msup: el('msup'),
426
+ mtable: el('mtable'),
427
+ mtd: el('mtd'),
428
+ mtext: el('mtext'),
429
+ mtr: el('mtr'),
430
+ munder: el('munder'),
431
+ munderover: el('munderover'),
432
+ semantics: el('semantics'),
433
+ };
434
+ };
435
+ export const htmlAttributes = () => ({
436
+ Key: (value) => Key({ value }),
437
+ Class: (value) => Class({ value }),
438
+ Id: (value) => Id({ value }),
439
+ Title: (value) => Title({ value }),
440
+ Lang: (value) => Lang({ value }),
441
+ Dir: (value) => Dir({ value }),
442
+ Tabindex: (value) => Tabindex({ value }),
443
+ Hidden: (value) => Hidden({ value }),
444
+ OnClick: (message) => OnClick({ message }),
445
+ OnDblClick: (message) => OnDblClick({ message }),
446
+ OnMouseDown: (message) => OnMouseDown({ message }),
447
+ OnMouseUp: (message) => OnMouseUp({ message }),
448
+ OnMouseEnter: (message) => OnMouseEnter({ message }),
449
+ OnMouseLeave: (message) => OnMouseLeave({ message }),
450
+ OnMouseOver: (message) => OnMouseOver({ message }),
451
+ OnMouseOut: (message) => OnMouseOut({ message }),
452
+ OnMouseMove: (message) => OnMouseMove({ message }),
453
+ OnKeyDown: (f) => OnKeyDown({ f }),
454
+ OnKeyUp: (f) => OnKeyUp({ f }),
455
+ OnKeyPress: (f) => OnKeyPress({ f }),
456
+ OnFocus: (message) => OnFocus({ message }),
457
+ OnBlur: (message) => OnBlur({ message }),
458
+ OnInput: (f) => OnInput({ f }),
459
+ OnChange: (f) => OnChange({ f }),
460
+ OnSubmit: (message) => OnSubmit({ message }),
461
+ OnReset: (message) => OnReset({ message }),
462
+ OnScroll: (message) => OnScroll({ message }),
463
+ OnWheel: (message) => OnWheel({ message }),
464
+ OnCopy: (message) => OnCopy({ message }),
465
+ OnCut: (message) => OnCut({ message }),
466
+ OnPaste: (message) => OnPaste({ message }),
467
+ Value: (value) => Value({ value }),
468
+ Checked: (value) => Checked({ value }),
469
+ Selected: (value) => Selected({ value }),
470
+ Placeholder: (value) => Placeholder({ value }),
471
+ Name: (value) => Name({ value }),
472
+ Disabled: (value) => Disabled({ value }),
473
+ Readonly: (value) => Readonly({ value }),
474
+ Required: (value) => Required({ value }),
475
+ Autofocus: (value) => Autofocus({ value }),
476
+ Spellcheck: (value) => Spellcheck({ value }),
477
+ Autocorrect: (value) => Autocorrect({ value }),
478
+ Autocapitalize: (value) => Autocapitalize({ value }),
479
+ InputMode: (value) => InputMode({ value }),
480
+ EnterKeyHint: (value) => EnterKeyHint({ value }),
481
+ Multiple: (value) => Multiple({ value }),
482
+ Type: (value) => Type({ value }),
483
+ Accept: (value) => Accept({ value }),
484
+ Autocomplete: (value) => Autocomplete({ value }),
485
+ Pattern: (value) => Pattern({ value }),
486
+ Maxlength: (value) => Maxlength({ value }),
487
+ Minlength: (value) => Minlength({ value }),
488
+ Size: (value) => Size({ value }),
489
+ Cols: (value) => Cols({ value }),
490
+ Rows: (value) => Rows({ value }),
491
+ Max: (value) => Max({ value }),
492
+ Min: (value) => Min({ value }),
493
+ Step: (value) => Step({ value }),
494
+ For: (value) => For({ value }),
495
+ Href: (value) => Href({ value }),
496
+ Src: (value) => Src({ value }),
497
+ Alt: (value) => Alt({ value }),
498
+ Target: (value) => Target({ value }),
499
+ Rel: (value) => Rel({ value }),
500
+ Download: (value) => Download({ value }),
501
+ Action: (value) => Action({ value }),
502
+ Method: (value) => Method({ value }),
503
+ Enctype: (value) => Enctype({ value }),
504
+ Novalidate: (value) => Novalidate({ value }),
505
+ Role: (value) => Role({ value }),
506
+ AriaLabel: (value) => AriaLabel({ value }),
507
+ AriaLabelledBy: (value) => AriaLabelledBy({ value }),
508
+ AriaDescribedBy: (value) => AriaDescribedBy({ value }),
509
+ AriaHidden: (value) => AriaHidden({ value }),
510
+ AriaExpanded: (value) => AriaExpanded({ value }),
511
+ AriaSelected: (value) => AriaSelected({ value }),
512
+ AriaChecked: (value) => AriaChecked({ value }),
513
+ AriaDisabled: (value) => AriaDisabled({ value }),
514
+ AriaRequired: (value) => AriaRequired({ value }),
515
+ AriaInvalid: (value) => AriaInvalid({ value }),
516
+ AriaLive: (value) => AriaLive({ value }),
517
+ Attribute: (key, value) => Attribute({ key, value }),
518
+ DataAttribute: (key, value) => DataAttribute({ key, value }),
519
+ Style: (value) => Style({ value }),
520
+ InnerHTML: (value) => InnerHTML({ value }),
521
+ ViewBox: (value) => ViewBox({ value }),
522
+ Xmlns: (value) => Xmlns({ value }),
523
+ Fill: (value) => Fill({ value }),
524
+ FillRule: (value) => FillRule({ value }),
525
+ ClipRule: (value) => ClipRule({ value }),
526
+ Stroke: (value) => Stroke({ value }),
527
+ StrokeWidth: (value) => StrokeWidth({ value }),
528
+ StrokeLinecap: (value) => StrokeLinecap({ value }),
529
+ StrokeLinejoin: (value) => StrokeLinejoin({ value }),
530
+ D: (value) => D({ value }),
531
+ Cx: (value) => Cx({ value }),
532
+ Cy: (value) => Cy({ value }),
533
+ R: (value) => R({ value }),
534
+ X: (value) => X({ value }),
535
+ Y: (value) => Y({ value }),
536
+ Width: (value) => Width({ value }),
537
+ Height: (value) => Height({ value }),
538
+ X1: (value) => X1({ value }),
539
+ Y1: (value) => Y1({ value }),
540
+ X2: (value) => X2({ value }),
541
+ Y2: (value) => Y2({ value }),
542
+ Points: (value) => Points({ value }),
543
+ Transform: (value) => Transform({ value }),
544
+ Opacity: (value) => Opacity({ value }),
545
+ StrokeDasharray: (value) => StrokeDasharray({ value }),
546
+ StrokeDashoffset: (value) => StrokeDashoffset({ value }),
547
+ });
548
+ export const html = () => {
549
+ return {
550
+ ...htmlElements(),
551
+ ...htmlAttributes(),
552
+ empty: Effect.succeed(null),
553
+ keyed: keyed(),
554
+ };
555
+ };