@react-x11/components 0.12.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/dist/html/controls.d.ts +41 -5
  2. package/dist/html/controls.d.ts.map +1 -1
  3. package/dist/html/controls.js +85 -57
  4. package/dist/html/controls.js.map +1 -1
  5. package/dist/html/css/cascade.d.ts +134 -20
  6. package/dist/html/css/cascade.d.ts.map +1 -1
  7. package/dist/html/css/cascade.js +545 -126
  8. package/dist/html/css/cascade.js.map +1 -1
  9. package/dist/html/css/color.d.ts +18 -0
  10. package/dist/html/css/color.d.ts.map +1 -1
  11. package/dist/html/css/color.js +27 -0
  12. package/dist/html/css/color.js.map +1 -1
  13. package/dist/html/css/parse.d.ts +47 -6
  14. package/dist/html/css/parse.d.ts.map +1 -1
  15. package/dist/html/css/parse.js +336 -30
  16. package/dist/html/css/parse.js.map +1 -1
  17. package/dist/html/css/style.d.ts +142 -15
  18. package/dist/html/css/style.d.ts.map +1 -1
  19. package/dist/html/css/style.js +563 -147
  20. package/dist/html/css/style.js.map +1 -1
  21. package/dist/html/css/transform.d.ts +85 -0
  22. package/dist/html/css/transform.d.ts.map +1 -0
  23. package/dist/html/css/transform.js +425 -0
  24. package/dist/html/css/transform.js.map +1 -0
  25. package/dist/html/css/ua.d.ts +11 -1
  26. package/dist/html/css/ua.d.ts.map +1 -1
  27. package/dist/html/css/ua.js +73 -9
  28. package/dist/html/css/ua.js.map +1 -1
  29. package/dist/html/css/values.d.ts +4 -0
  30. package/dist/html/css/values.d.ts.map +1 -1
  31. package/dist/html/css/values.js.map +1 -1
  32. package/dist/html/dom.d.ts.map +1 -1
  33. package/dist/html/dom.js +3 -1
  34. package/dist/html/dom.js.map +1 -1
  35. package/dist/html/fonts.d.ts +78 -4
  36. package/dist/html/fonts.d.ts.map +1 -1
  37. package/dist/html/fonts.js +373 -19
  38. package/dist/html/fonts.js.map +1 -1
  39. package/dist/html/form.d.ts +200 -0
  40. package/dist/html/form.d.ts.map +1 -0
  41. package/dist/html/form.js +801 -0
  42. package/dist/html/form.js.map +1 -0
  43. package/dist/html/index.d.ts +12 -0
  44. package/dist/html/index.d.ts.map +1 -1
  45. package/dist/html/index.js +30 -301
  46. package/dist/html/index.js.map +1 -1
  47. package/dist/html/layout/axes.d.ts +14 -0
  48. package/dist/html/layout/axes.d.ts.map +1 -0
  49. package/dist/html/layout/axes.js +28 -0
  50. package/dist/html/layout/axes.js.map +1 -0
  51. package/dist/html/layout/block.d.ts +93 -12
  52. package/dist/html/layout/block.d.ts.map +1 -1
  53. package/dist/html/layout/block.js +393 -39
  54. package/dist/html/layout/block.js.map +1 -1
  55. package/dist/html/layout/boxes.d.ts +90 -2
  56. package/dist/html/layout/boxes.d.ts.map +1 -1
  57. package/dist/html/layout/boxes.js +74 -10
  58. package/dist/html/layout/boxes.js.map +1 -1
  59. package/dist/html/layout/cache.d.ts +1 -1
  60. package/dist/html/layout/cache.d.ts.map +1 -1
  61. package/dist/html/layout/cache.js +6 -0
  62. package/dist/html/layout/cache.js.map +1 -1
  63. package/dist/html/layout/css-grid.d.ts.map +1 -1
  64. package/dist/html/layout/css-grid.js +90 -18
  65. package/dist/html/layout/css-grid.js.map +1 -1
  66. package/dist/html/layout/flex.d.ts.map +1 -1
  67. package/dist/html/layout/flex.js +574 -84
  68. package/dist/html/layout/flex.js.map +1 -1
  69. package/dist/html/layout/inline.d.ts +3 -0
  70. package/dist/html/layout/inline.d.ts.map +1 -1
  71. package/dist/html/layout/inline.js +154 -54
  72. package/dist/html/layout/inline.js.map +1 -1
  73. package/dist/html/layout/multicol.d.ts +42 -0
  74. package/dist/html/layout/multicol.d.ts.map +1 -0
  75. package/dist/html/layout/multicol.js +897 -0
  76. package/dist/html/layout/multicol.js.map +1 -0
  77. package/dist/html/layout/shaping.d.ts +7 -0
  78. package/dist/html/layout/shaping.d.ts.map +1 -1
  79. package/dist/html/layout/shaping.js +25 -20
  80. package/dist/html/layout/shaping.js.map +1 -1
  81. package/dist/html/layout/table.d.ts.map +1 -1
  82. package/dist/html/layout/table.js +62 -18
  83. package/dist/html/layout/table.js.map +1 -1
  84. package/dist/html/node.d.ts +90 -15
  85. package/dist/html/node.d.ts.map +1 -1
  86. package/dist/html/node.js +771 -186
  87. package/dist/html/node.js.map +1 -1
  88. package/dist/html/paint.d.ts +101 -5
  89. package/dist/html/paint.d.ts.map +1 -1
  90. package/dist/html/paint.js +1502 -160
  91. package/dist/html/paint.js.map +1 -1
  92. package/dist/html/svg.d.ts +15 -2
  93. package/dist/html/svg.d.ts.map +1 -1
  94. package/dist/html/svg.js +249 -17
  95. package/dist/html/svg.js.map +1 -1
  96. package/dist/html/widgets.d.ts +29 -0
  97. package/dist/html/widgets.d.ts.map +1 -0
  98. package/dist/html/widgets.js +700 -0
  99. package/dist/html/widgets.js.map +1 -0
  100. package/dist/html/woff2.d.ts +14 -0
  101. package/dist/html/woff2.d.ts.map +1 -0
  102. package/dist/html/woff2.js +608 -0
  103. package/dist/html/woff2.js.map +1 -0
  104. package/dist/index.d.ts +1 -1
  105. package/dist/index.d.ts.map +1 -1
  106. package/dist/index.js.map +1 -1
  107. package/dist/maps/controller.d.ts +17 -1
  108. package/dist/maps/controller.d.ts.map +1 -1
  109. package/dist/maps/controller.js +27 -7
  110. package/dist/maps/controller.js.map +1 -1
  111. package/dist/richtext/node.d.ts +8 -1
  112. package/dist/richtext/node.d.ts.map +1 -1
  113. package/dist/richtext/node.js +5 -1
  114. package/dist/richtext/node.js.map +1 -1
  115. package/dist/richtext/runs.d.ts +25 -6
  116. package/dist/richtext/runs.d.ts.map +1 -1
  117. package/dist/richtext/runs.js +240 -24
  118. package/dist/richtext/runs.js.map +1 -1
  119. package/package.json +2 -2
  120. package/src/html/controls.ts +114 -51
  121. package/src/html/css/cascade.ts +614 -140
  122. package/src/html/css/color.ts +29 -0
  123. package/src/html/css/parse.ts +388 -33
  124. package/src/html/css/style.ts +688 -150
  125. package/src/html/css/transform.ts +459 -0
  126. package/src/html/css/ua.ts +77 -10
  127. package/src/html/css/values.ts +4 -0
  128. package/src/html/dom.ts +3 -1
  129. package/src/html/fonts.ts +417 -24
  130. package/src/html/form.ts +962 -0
  131. package/src/html/index.ts +49 -338
  132. package/src/html/layout/axes.ts +62 -0
  133. package/src/html/layout/block.ts +447 -37
  134. package/src/html/layout/boxes.ts +143 -14
  135. package/src/html/layout/cache.ts +6 -0
  136. package/src/html/layout/css-grid.ts +95 -22
  137. package/src/html/layout/flex.ts +675 -78
  138. package/src/html/layout/inline.ts +159 -55
  139. package/src/html/layout/multicol.ts +977 -0
  140. package/src/html/layout/shaping.ts +27 -18
  141. package/src/html/layout/table.ts +62 -19
  142. package/src/html/node.ts +798 -172
  143. package/src/html/paint.ts +1742 -241
  144. package/src/html/svg.ts +277 -19
  145. package/src/html/widgets.ts +821 -0
  146. package/src/html/woff2.ts +612 -0
  147. package/src/index.ts +1 -0
  148. package/src/maps/controller.ts +28 -7
  149. package/src/richtext/node.ts +13 -2
  150. package/src/richtext/runs.ts +313 -35
@@ -1,6 +1,6 @@
1
1
  import type { Element } from 'domhandler';
2
2
  import type { TextRun } from '../../richtext/index.js';
3
- import type { Cascade } from '../css/cascade.js';
3
+ import type { Cascade, KeptStyles, SelectionStyle } from '../css/cascade.js';
4
4
  import type { CollapsedTable } from './collapse.js';
5
5
  import type { IntrinsicSize } from '../svg.js';
6
6
  import type { ComputedStyle } from '../css/style.js';
@@ -142,6 +142,17 @@ export interface LineText {
142
142
  x: number;
143
143
  width: number;
144
144
  }[];
145
+ /**
146
+ * How far the line goes on past this text for the collapsible spaces it
147
+ * ends on, which its engine, laying out a piece of a line as a line,
148
+ * stripped: the room they take where more follows them on the line, and
149
+ * none where the line ends on them, since CSS removes them there (CSS
150
+ * Text 3, 4.1.2). They are the text's, in the elements they are in, and
151
+ * `trailRun` is the run they are the end of: whose underline, line
152
+ * through and highlight go on under them.
153
+ */
154
+ trail?: number;
155
+ trailRun?: TextRun;
145
156
  /** Any offset in the layout's own text as a document index — how a run
146
157
  * under the pointer finds the element whose text it is. Per pass: the
147
158
  * layout may be one an earlier pass made (`TextLayoutCache`), and the
@@ -437,6 +448,9 @@ export declare const FIRST_LINE: WeakMap<Box, ComputedStyle>;
437
448
  * applies to from `parent` and the rest from its parent's own style.
438
449
  */
439
450
  export type FirstLineStyler = (box: Box, parent: ComputedStyle) => ComputedStyle;
451
+ /** The `::selection` of the element a box's text is in, or null for the
452
+ * palette's highlight (`Cascade.selectionStyle`). */
453
+ export type SelectionStyler = (box: Box | null) => SelectionStyle | null;
440
454
  /** The url of an image generated content put in a pseudo-element: it has
441
455
  * no element of its own to name it (`imageUrlOf`). */
442
456
  export declare const CONTENT_IMAGES: WeakMap<Box, string>;
@@ -499,12 +513,16 @@ export declare const CLAMPED: WeakSet<Box>;
499
513
  /** A grid's tracks as its layout left them, each column's and each row's
500
514
  * start and end from the content box's corner, with the lines of each
501
515
  * axis by number and by name: what an absolutely positioned box's grid
502
- * area is found in (CSS Grid 1, 9.1). */
516
+ * area is found in (CSS Grid 1, 9.1). And the first of its items in
517
+ * row-major order, where they were placed and not where they were
518
+ * written, which the grid's own baseline is taken from (10.6): null for a
519
+ * grid with no item. */
503
520
  export interface GridTracks {
504
521
  cols: [number, number][];
505
522
  rows: [number, number][];
506
523
  colLines: GridLines;
507
524
  rowLines: GridLines;
525
+ first: Box | null;
508
526
  }
509
527
  export declare const GRID_TRACKS: WeakMap<Box, GridTracks>;
510
528
  /** A flex box's children in the order it lays them out and paints them,
@@ -516,6 +534,50 @@ export declare const PAINT_ORDER: WeakMap<Box, Box[]>;
516
534
  * 9.2.1.1), though they stand outside it, and its rect takes them in, as
517
535
  * a browser's does (`elementRect`). */
518
536
  export declare const CUT_BLOCKS: WeakMap<Box, Box[]>;
537
+ /** Where a block that clearance moved below the floats would have stood
538
+ * without it, its border edge's top (CSS 2.1 9.5.2): a browser's
539
+ * fragment of an inline box around such a block starts there, and takes
540
+ * the clearance in (`elementRect`). Only the blocks that had clearance. */
541
+ export declare const CLEARED_FROM: WeakMap<Box, number>;
542
+ /**
543
+ * One piece of a block that a column break falls inside (CSS Multi-column
544
+ * 1): its border box in one column, as far as the box goes in it, and where
545
+ * the whole box would stand there — the box its background and its borders
546
+ * are drawn as, cut to the piece (`box-decoration-break: slice`).
547
+ */
548
+ export interface ColumnPiece {
549
+ x: number;
550
+ y: number;
551
+ width: number;
552
+ height: number;
553
+ /** The top of the whole box, in this column, and its height. */
554
+ wholeY: number;
555
+ wholeHeight: number;
556
+ }
557
+ /** The pieces of each block a column break falls inside, in the order of
558
+ * the columns. The block's own rect is what takes them all in, as a
559
+ * browser's bounding rect of it is. */
560
+ export declare const COLUMN_PIECES: WeakMap<Box, ColumnPiece[]>;
561
+ /** The lines of a box that columns took apart: they are not one under
562
+ * another, and a search that counts on their tops rising reads them all
563
+ * instead. */
564
+ export declare const COLUMN_LINES: WeakSet<LineBox[]>;
565
+ /**
566
+ * The rows of a text's layout that are in the text's own column, from the
567
+ * layout's origin, where the layout's lines went to more than one: a layout
568
+ * is drawn whole, so it is drawn once for each column, there, and clipped
569
+ * to the rows that are that column's. One object for all the texts of a
570
+ * layout in a column, which is what tells a draw of it from another.
571
+ */
572
+ export declare const COLUMN_ROWS: WeakMap<LineText, {
573
+ top: number;
574
+ bottom: number;
575
+ }>;
576
+ /** Whether any layout has broken a box between columns: what the walks
577
+ * that would ask the three maps above of every box ask first. */
578
+ export declare const columned: {
579
+ any: boolean;
580
+ };
519
581
  /** The element a pseudo-element's box is generated from, which has no
520
582
  * element of its own (`Box.pseudo`): whose the images its styles name are,
521
583
  * when the host is asked for them. */
@@ -549,6 +611,10 @@ export interface BoxTree {
549
611
  controls: Box[];
550
612
  /** Every box carrying an `href`, for click and hover. */
551
613
  links: Box[];
614
+ /** The style of an anonymous box under a parent's (`anonymousStyles`):
615
+ * the one the fix-up gave each it made, and what such a box takes when
616
+ * its parent's style changes where it is (`HtmlViewNode._hoverInPlace`). */
617
+ anonymous: AnonymousStyle;
552
618
  /** Every box with a `background-image`, a border image or a mask image,
553
619
  * an element's or a pseudo-element's, for the host to be asked for: a
554
620
  * document has a handful, and finding them was a walk over every box
@@ -574,6 +640,10 @@ export interface BoxTree {
574
640
  /** Each box's style on a first line (`FirstLineStyler`), where any
575
641
  * block has a `::first-line`. */
576
642
  firstLineStyler: FirstLineStyler | null;
643
+ /** Each box's `::selection` (`SelectionStyler`), where any rule styles
644
+ * one: worked out as a selection is first painted over it, not as the
645
+ * tree is built, since most builds are never selected in. */
646
+ selectionStyler: SelectionStyler | null;
577
647
  /** Whether a float or an out-of-flow box sits in an inline box: where
578
648
  * none does, layout looks for them among a block's own children and
579
649
  * goes through no inline box to find them. */
@@ -590,9 +660,16 @@ export interface BoxTree {
590
660
  * (`Cascade.rootStyle`), whose background is the canvas's; null where
591
661
  * the document has either. */
592
662
  impliedHtml: ComputedStyle | null;
663
+ /** The scheme the palette is, which the element the document is drawn
664
+ * in is of: where the root element's is the other, the canvas is that
665
+ * scheme's and opaque (`paintDocument`). */
666
+ paletteScheme: 'light' | 'dark';
593
667
  }
594
668
  export interface BuildOptions {
595
669
  cascade: Cascade;
670
+ /** The styles of the tree this one replaces, where only some elements'
671
+ * can have changed since (`Cascade.beginSharing`). */
672
+ kept?: KeptStyles | null;
596
673
  /** Device pixels per CSS pixel. An image's pixels and a `width="600"`
597
674
  * attribute are CSS pixels; every box is device, so both are multiplied
598
675
  * on the way in. Default 1. */
@@ -629,6 +706,17 @@ export declare function transformInPlace(text: string, transform: ComputedStyle[
629
706
  * from the end, where it is almost always decided by the last character.
630
707
  */
631
708
  export declare function letteredAfter(text: string, lettered: boolean): boolean;
709
+ /**
710
+ * The style of an anonymous box inside a parent: what the parent passes on
711
+ * by inheritance, and every other property at its initial value, as CSS 2.1
712
+ * gives anonymous boxes theirs (9.2.1.1, 17.2.1). An anonymous box that took
713
+ * the parent's style itself took its height, its padding and borders, its
714
+ * background, its relative offset and its opacity a second time — the text
715
+ * in `<div style="padding: 20px">text<p>…</p></div>` sat 40px in, and the
716
+ * paragraph after it the height of the div further down. One per parent
717
+ * style, which the cascade already shares between elements.
718
+ */
719
+ export type AnonymousStyle = (parent: ComputedStyle, display: ComputedStyle['display']) => ComputedStyle;
632
720
  /**
633
721
  * Whether a text is white space alone: CSS's white space, which is the
634
722
  * space, the tab and the three line breaks and nothing else (CSS Text 3,
@@ -1 +1 @@
1
- {"version":3,"file":"boxes.d.ts","sourceRoot":"","sources":["../../../src/html/layout/boxes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"boxes.d.ts","sourceRoot":"","sources":["../../../src/html/layout/boxes.ts"],"names":[],"mappings":"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"}
@@ -271,6 +271,30 @@ export const PAINT_ORDER = new WeakMap();
271
271
  * 9.2.1.1), though they stand outside it, and its rect takes them in, as
272
272
  * a browser's does (`elementRect`). */
273
273
  export const CUT_BLOCKS = new WeakMap();
274
+ /** Where a block that clearance moved below the floats would have stood
275
+ * without it, its border edge's top (CSS 2.1 9.5.2): a browser's
276
+ * fragment of an inline box around such a block starts there, and takes
277
+ * the clearance in (`elementRect`). Only the blocks that had clearance. */
278
+ export const CLEARED_FROM = new WeakMap();
279
+ /** The pieces of each block a column break falls inside, in the order of
280
+ * the columns. The block's own rect is what takes them all in, as a
281
+ * browser's bounding rect of it is. */
282
+ export const COLUMN_PIECES = new WeakMap();
283
+ /** The lines of a box that columns took apart: they are not one under
284
+ * another, and a search that counts on their tops rising reads them all
285
+ * instead. */
286
+ export const COLUMN_LINES = new WeakSet();
287
+ /**
288
+ * The rows of a text's layout that are in the text's own column, from the
289
+ * layout's origin, where the layout's lines went to more than one: a layout
290
+ * is drawn whole, so it is drawn once for each column, there, and clipped
291
+ * to the rows that are that column's. One object for all the texts of a
292
+ * layout in a column, which is what tells a draw of it from another.
293
+ */
294
+ export const COLUMN_ROWS = new WeakMap();
295
+ /** Whether any layout has broken a box between columns: what the walks
296
+ * that would ask the three maps above of every box ask first. */
297
+ export const columned = { any: false };
274
298
  /** The element a pseudo-element's box is generated from, which has no
275
299
  * element of its own (`Box.pseudo`): whose the images its styles name are,
276
300
  * when the host is asked for them. */
@@ -343,7 +367,7 @@ class Builder {
343
367
  }
344
368
  run(root) {
345
369
  const cascade = this._options.cascade;
346
- cascade.beginSharing();
370
+ cascade.beginSharing(this._options.kept ?? null);
347
371
  const { style: rootStyle, html: impliedHtml } = cascade.rootStyle(hasBody(root), hasHtml(root));
348
372
  const rootBox = new Box('block', null, rootStyle);
349
373
  // a fragment's root stands in for a `<body>`, counters and all
@@ -359,10 +383,13 @@ class Builder {
359
383
  // it carries no margins of its own and cannot collapse with anything.
360
384
  this._children(root, rootBox, rootStyle, false, null, ROOT_SHARE_KEY);
361
385
  this._endLine();
362
- fixUp(rootBox, anonymousStyles(cascade.initial));
386
+ cascade.endSharing();
387
+ const anonymous = anonymousStyles(cascade.initial);
388
+ fixUp(rootBox, anonymous);
363
389
  assignSubtreeRanges(rootBox);
364
390
  return {
365
391
  root: rootBox,
392
+ anonymous,
366
393
  text: this._chunks.join(''),
367
394
  textBoxes: this._textBoxes,
368
395
  textStyles: this._textStyles,
@@ -375,10 +402,37 @@ class Builder {
375
402
  negative: this._negative,
376
403
  firstLine: this._firstLine,
377
404
  firstLineStyler: this._firstLine ? this._firstLineStyler() : null,
405
+ selectionStyler: cascade.hasSelection ? this._selectionStyler() : null,
378
406
  nestedOutOfLine: this._nestedOutOfLine,
379
407
  movedInline: this._movedInline,
380
408
  clipText: this._clipText,
381
409
  impliedHtml,
410
+ paletteScheme: cascade.initial.colorScheme,
411
+ };
412
+ }
413
+ /** `BoxTree.selectionStyler`, over this build's cascade: an element's
414
+ * over its parent's, each once. A box with no element of its own — text,
415
+ * an anonymous box — is its nearest element's. */
416
+ _selectionStyler() {
417
+ const cascade = this._options.cascade;
418
+ const styles = this._styles;
419
+ const known = new Map();
420
+ const of = (el) => {
421
+ let found = known.get(el);
422
+ if (found !== undefined)
423
+ return found;
424
+ // the parser keeps a document to 256 elements deep (`dom.ts`)
425
+ const parent = isElement(el.parent) ? of(el.parent) : null;
426
+ const own = styles.get(el)?.style;
427
+ found = own ? cascade.selectionStyle(el, own, parent) : parent;
428
+ known.set(el, found);
429
+ return found;
430
+ };
431
+ return (box) => {
432
+ let at = box;
433
+ while (at && !at.el)
434
+ at = at.parent;
435
+ return at?.el ? of(at.el) : null;
382
436
  };
383
437
  }
384
438
  /** `BoxTree.firstLineStyler`, over this build's cascade. */
@@ -491,7 +545,7 @@ class Builder {
491
545
  }
492
546
  }
493
547
  // a translation is moved by the same pass
494
- if (style.translate || style.transformTranslate)
548
+ if (style.translate || style.transform)
495
549
  this._relative = true;
496
550
  if (style.backgroundClipText)
497
551
  this._clipText = true;
@@ -527,14 +581,20 @@ class Builder {
527
581
  return;
528
582
  }
529
583
  // an `<object>` is its image once it has one, and its content until;
530
- // an `<embed>` its image, and a `<video>` its poster, or a frame
584
+ // an `<embed>` its image, and a `<video>` its poster, or a frame; an
585
+ // image button its image, and a button saying what it is for until it
586
+ // has one, so it can be pressed either way
531
587
  const replaced = tag === 'object'
532
588
  ? this._options.imageSize(el)
533
589
  ? 'image'
534
590
  : 'none'
535
591
  : (tag === 'embed' || tag === 'video') && this._options.imageSize(el)
536
592
  ? 'image'
537
- : replacedKind(el, tag);
593
+ : isImageButton(el, tag)
594
+ ? this._options.imageSize(el)
595
+ ? 'image'
596
+ : 'button'
597
+ : replacedKind(el, tag);
538
598
  if (replaced !== 'none') {
539
599
  this._replaced(el, tag, replaced, style, into);
540
600
  return;
@@ -789,7 +849,7 @@ class Builder {
789
849
  }
790
850
  }
791
851
  // a translation is moved by the same pass
792
- if (style.translate || style.transformTranslate)
852
+ if (style.translate || style.transform)
793
853
  this._relative = true;
794
854
  if (style.backgroundClipText)
795
855
  this._clipText = true;
@@ -1729,6 +1789,10 @@ function setIntrinsics(box, size, scale) {
1729
1789
  ratio: size.ratio,
1730
1790
  };
1731
1791
  }
1792
+ /** An `<input type=image>`: a picture that submits its form. */
1793
+ function isImageButton(el, tag) {
1794
+ return (tag === 'input' && (attr(el, 'type') ?? '').trim().toLowerCase() === 'image');
1795
+ }
1732
1796
  function replacedKind(el, tag) {
1733
1797
  switch (tag) {
1734
1798
  case 'img':
@@ -2024,16 +2088,16 @@ function namesImages(style) {
2024
2088
  function anonymousStyles(initial) {
2025
2089
  const made = new WeakMap();
2026
2090
  return (parent, display) => {
2027
- let byDisplay = made.get(parent.style);
2091
+ let byDisplay = made.get(parent);
2028
2092
  if (!byDisplay) {
2029
2093
  byDisplay = new Map();
2030
- made.set(parent.style, byDisplay);
2094
+ made.set(parent, byDisplay);
2031
2095
  }
2032
2096
  let style = byDisplay.get(display);
2033
2097
  if (!style) {
2034
2098
  // `display` is the one property it does not start from: it is the
2035
2099
  // box the fix-up made, and layout asks the style what a box is
2036
- style = inherit(parent.style, initial);
2100
+ style = inherit(parent, initial);
2037
2101
  style.display = display;
2038
2102
  byDisplay.set(display, style);
2039
2103
  }
@@ -2124,7 +2188,7 @@ function wrapOrphans(box, kind, accept, anonymous) {
2124
2188
  }
2125
2189
  }
2126
2190
  function anonymousOf(parent, kind, run, anonymous, display = kind) {
2127
- const box = new Box(kind, null, anonymous(parent, display));
2191
+ const box = new Box(kind, null, anonymous(parent.style, display));
2128
2192
  box.parent = parent;
2129
2193
  for (const child of run) {
2130
2194
  child.parent = box;