@react-x11/components 0.14.1 → 0.16.1
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/code-editor/node.d.ts +13 -0
- package/dist/code-editor/node.d.ts.map +1 -1
- package/dist/code-editor/node.js +23 -5
- package/dist/code-editor/node.js.map +1 -1
- package/dist/html/css/cascade.d.ts +171 -26
- package/dist/html/css/cascade.d.ts.map +1 -1
- package/dist/html/css/cascade.js +616 -216
- package/dist/html/css/cascade.js.map +1 -1
- package/dist/html/css/color.d.ts +25 -0
- package/dist/html/css/color.d.ts.map +1 -1
- package/dist/html/css/color.js +307 -19
- package/dist/html/css/color.js.map +1 -1
- package/dist/html/css/content.d.ts +11 -6
- package/dist/html/css/content.d.ts.map +1 -1
- package/dist/html/css/content.js +171 -12
- package/dist/html/css/content.js.map +1 -1
- package/dist/html/css/parse.d.ts.map +1 -1
- package/dist/html/css/parse.js +62 -9
- package/dist/html/css/parse.js.map +1 -1
- package/dist/html/css/shapes.d.ts +18 -0
- package/dist/html/css/shapes.d.ts.map +1 -1
- package/dist/html/css/shapes.js +21 -1
- package/dist/html/css/shapes.js.map +1 -1
- package/dist/html/css/style.d.ts +42 -5
- package/dist/html/css/style.d.ts.map +1 -1
- package/dist/html/css/style.js +74 -12
- package/dist/html/css/style.js.map +1 -1
- package/dist/html/css/ua.js +27 -8
- package/dist/html/css/ua.js.map +1 -1
- package/dist/html/css/values.d.ts +5 -0
- package/dist/html/css/values.d.ts.map +1 -1
- package/dist/html/css/values.js +18 -9
- package/dist/html/css/values.js.map +1 -1
- package/dist/html/index.d.ts.map +1 -1
- package/dist/html/index.js +7 -0
- package/dist/html/index.js.map +1 -1
- package/dist/html/layout/block.d.ts +29 -9
- package/dist/html/layout/block.d.ts.map +1 -1
- package/dist/html/layout/block.js +141 -52
- package/dist/html/layout/block.js.map +1 -1
- package/dist/html/layout/boxes.d.ts +29 -2
- package/dist/html/layout/boxes.d.ts.map +1 -1
- package/dist/html/layout/boxes.js +172 -23
- package/dist/html/layout/boxes.js.map +1 -1
- package/dist/html/layout/css-grid.d.ts.map +1 -1
- package/dist/html/layout/css-grid.js +11 -9
- package/dist/html/layout/css-grid.js.map +1 -1
- package/dist/html/layout/flex.d.ts.map +1 -1
- package/dist/html/layout/flex.js +1759 -238
- package/dist/html/layout/flex.js.map +1 -1
- package/dist/html/layout/inline.d.ts +15 -3
- package/dist/html/layout/inline.d.ts.map +1 -1
- package/dist/html/layout/inline.js +64 -19
- package/dist/html/layout/inline.js.map +1 -1
- package/dist/html/layout/table.d.ts +27 -1
- package/dist/html/layout/table.d.ts.map +1 -1
- package/dist/html/layout/table.js +886 -324
- package/dist/html/layout/table.js.map +1 -1
- package/dist/html/node.d.ts +35 -4
- package/dist/html/node.d.ts.map +1 -1
- package/dist/html/node.js +122 -26
- package/dist/html/node.js.map +1 -1
- package/dist/html/paint.d.ts.map +1 -1
- package/dist/html/paint.js +558 -178
- package/dist/html/paint.js.map +1 -1
- package/dist/html/resources.js +14 -1
- package/dist/html/resources.js.map +1 -1
- package/dist/html/svg.d.ts +23 -7
- package/dist/html/svg.d.ts.map +1 -1
- package/dist/html/svg.js +264 -59
- package/dist/html/svg.js.map +1 -1
- package/dist/html/widgets.d.ts.map +1 -1
- package/dist/html/widgets.js +57 -4
- package/dist/html/widgets.js.map +1 -1
- package/package.json +3 -3
- package/src/code-editor/node.ts +24 -5
- package/src/html/css/cascade.ts +697 -221
- package/src/html/css/color.ts +345 -18
- package/src/html/css/content.ts +173 -15
- package/src/html/css/parse.ts +60 -8
- package/src/html/css/shapes.ts +35 -1
- package/src/html/css/style.ts +122 -17
- package/src/html/css/ua.ts +27 -8
- package/src/html/css/values.ts +23 -9
- package/src/html/index.ts +7 -0
- package/src/html/layout/block.ts +149 -58
- package/src/html/layout/boxes.ts +211 -27
- package/src/html/layout/css-grid.ts +12 -9
- package/src/html/layout/flex.ts +1975 -231
- package/src/html/layout/inline.ts +70 -16
- package/src/html/layout/table.ts +961 -332
- package/src/html/node.ts +155 -27
- package/src/html/paint.ts +692 -234
- package/src/html/resources.ts +13 -1
- package/src/html/svg.ts +299 -56
- package/src/html/widgets.ts +61 -4
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Element } from 'domhandler';
|
|
2
2
|
import type { TextRun } from '../../richtext/index.js';
|
|
3
|
+
import { ShapeCopies } from '../css/cascade.js';
|
|
3
4
|
import type { Cascade, KeptStyles, SelectionStyle } from '../css/cascade.js';
|
|
4
5
|
import type { CollapsedTable } from './collapse.js';
|
|
5
6
|
import type { ShapeStyles } from '../css/shapes.js';
|
|
@@ -17,12 +18,16 @@ export interface Marker {
|
|
|
17
18
|
/** Its own style where a `::marker` rule gives it one; the item's where
|
|
18
19
|
* none does. */
|
|
19
20
|
style: ComputedStyle | null;
|
|
20
|
-
/** The image it is, `list-style-image`'s,
|
|
21
|
-
*
|
|
21
|
+
/** The image it is, `list-style-image`'s, where that has arrived, at its
|
|
22
|
+
* size in device pixels — its own, or the one a marker image with none
|
|
23
|
+
* is given (`Builder._markerImageSize`); its text is then not drawn.
|
|
24
|
+
* `gap` is the room between it and the content, in device pixels
|
|
25
|
+
* (`MARKER_IMAGE_GAP`). */
|
|
22
26
|
image?: {
|
|
23
27
|
url: string;
|
|
24
28
|
width: number;
|
|
25
29
|
height: number;
|
|
30
|
+
gap: number;
|
|
26
31
|
};
|
|
27
32
|
/** Its text is its own — a string `list-style-type`, a `::marker`'s
|
|
28
33
|
* `content` — and ends at the content's edge, with no gap a number
|
|
@@ -426,6 +431,15 @@ export type ReplacedKind = 'none' | 'image' | 'input' | 'textarea' | 'select' |
|
|
|
426
431
|
| 'frame'
|
|
427
432
|
/** An inline `<svg>`: a drawing, sized by what it says of its size. */
|
|
428
433
|
| 'svg';
|
|
434
|
+
/**
|
|
435
|
+
* Where a control sits on the line, as Chrome sets it: a field, a select
|
|
436
|
+
* or an input button on the baseline of the text it shows, its line in its
|
|
437
|
+
* face centred in its content box — that face's ascent and descent — and a
|
|
438
|
+
* checkbox, a radio button or a range on its border box's bottom, its
|
|
439
|
+
* bottom margin under the line. A `<textarea>` is none of these, and sits
|
|
440
|
+
* on its bottom margin edge as a box that scrolls does.
|
|
441
|
+
*/
|
|
442
|
+
export declare const CONTROL_BASELINES: WeakMap<Box, "border" | InlineDecoration>;
|
|
429
443
|
/** A replaced box's intrinsic dimensions, in device pixels. */
|
|
430
444
|
export interface Intrinsic {
|
|
431
445
|
/** Its size — or, on an axis `missing` names, the default object size of
|
|
@@ -657,6 +671,11 @@ export interface BoxTree {
|
|
|
657
671
|
* could reach one: worked out as a drawing is first painted, since a
|
|
658
672
|
* page of icons shows few of them at once. */
|
|
659
673
|
shapeStyler: ShapeStyler | null;
|
|
674
|
+
/** What the drawings of this build share in `Cascade.shapeStyles`: the
|
|
675
|
+
* document's elements by their ids, indexed when first asked, where a
|
|
676
|
+
* `<use>` finds the icon a sprite has for it; and what the rules matched
|
|
677
|
+
* in each copy a `<use>` makes. Null where `shapeStyler` is. */
|
|
678
|
+
shapeCopies: ShapeCopies | null;
|
|
660
679
|
/** Whether a float or an out-of-flow box sits in an inline box: where
|
|
661
680
|
* none does, layout looks for them among a block's own children and
|
|
662
681
|
* goes through no inline box to find them. */
|
|
@@ -693,6 +712,14 @@ export interface BuildOptions {
|
|
|
693
712
|
imageSize(el: Element): IntrinsicSize | null;
|
|
694
713
|
/** The same for an image named by url — generated content's. */
|
|
695
714
|
urlSize?(url: string): IntrinsicSize | null;
|
|
715
|
+
/** How far a style's first face reaches above its baseline, in device
|
|
716
|
+
* pixels: what a list marker's image with no size of its own is sized
|
|
717
|
+
* by (`_markerImageSize`). Where it is not known, 0.8em. */
|
|
718
|
+
faceAscent?(style: ComputedStyle): number | undefined;
|
|
719
|
+
/** How far a style's first face reaches above and below its baseline,
|
|
720
|
+
* in device pixels: where a control sets its text, which is where its
|
|
721
|
+
* baseline is (`CONTROL_BASELINES`). */
|
|
722
|
+
faceExtent?(style: ComputedStyle): InlineDecoration | undefined;
|
|
696
723
|
/** The size a real widget wants, so the box in the flow is the size the
|
|
697
724
|
* control will be drawn at. */
|
|
698
725
|
controlSize(el: Element, kind: ReplacedKind, style: ComputedStyle): {
|
|
@@ -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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"}
|
|
@@ -1,8 +1,22 @@
|
|
|
1
1
|
import { attr, childrenOf, isElement, isText, inImpliedHead, NON_RENDERED, tagOf, } from '../dom.js';
|
|
2
|
+
import { ShapeCopies, languageOf, metaColorScheme } from '../css/cascade.js';
|
|
2
3
|
import { quoteAt } from '../css/content.js';
|
|
3
4
|
import { CONTAIN_STYLE, FIRST_LINE_INHERITED, NO_MASK, copyStyle, firstLineParent, inherit, } from '../css/style.js';
|
|
4
5
|
import { AUTO } from '../css/values.js';
|
|
5
|
-
import { svgIntrinsics } from '../svg.js';
|
|
6
|
+
import { concreteSize, svgIntrinsics } from '../svg.js';
|
|
7
|
+
/**
|
|
8
|
+
* The room between a list marker's image and the item's content, in CSS
|
|
9
|
+
* pixels: between the image and the content's edge outside the item, and
|
|
10
|
+
* after the image inside it. CSS 2.1 (12.5.1) leaves where a marker goes
|
|
11
|
+
* to the user agent, and this is Blink's `kCMarkerPaddingPx`
|
|
12
|
+
* (`ListMarker::InlineMarginsForOutside` and `…ForInside`), which WebKit
|
|
13
|
+
* has too. Outside, ours was the gap a bullet has, 0.4em — 16 pixels at
|
|
14
|
+
* 40px text where Chrome has 7 — and inside the space a marker's text ends
|
|
15
|
+
* in, a space's width. Blink writes it into the marker's margins unzoomed,
|
|
16
|
+
* so at a device scale of 2 Chrome's is 7 device pixels; here it is 7 CSS
|
|
17
|
+
* pixels at any scale, so that a page at 2x is the page at 1x doubled.
|
|
18
|
+
*/
|
|
19
|
+
const MARKER_IMAGE_GAP = 7;
|
|
6
20
|
/**
|
|
7
21
|
* One box. Fields are assigned rather than passed so the shape stays
|
|
8
22
|
* monomorphic — every box has every field, which is what keeps the property
|
|
@@ -205,6 +219,31 @@ export class Box {
|
|
|
205
219
|
return this.borderTop + this.borderBottom + this.padTop + this.padBottom;
|
|
206
220
|
}
|
|
207
221
|
}
|
|
222
|
+
/**
|
|
223
|
+
* Where a control sits on the line, as Chrome sets it: a field, a select
|
|
224
|
+
* or an input button on the baseline of the text it shows, its line in its
|
|
225
|
+
* face centred in its content box — that face's ascent and descent — and a
|
|
226
|
+
* checkbox, a radio button or a range on its border box's bottom, its
|
|
227
|
+
* bottom margin under the line. A `<textarea>` is none of these, and sits
|
|
228
|
+
* on its bottom margin edge as a box that scrolls does.
|
|
229
|
+
*/
|
|
230
|
+
export const CONTROL_BASELINES = new WeakMap();
|
|
231
|
+
function controlBaseline(el, kind, style, options) {
|
|
232
|
+
if (kind === 'checkbox' || kind === 'radio')
|
|
233
|
+
return 'border';
|
|
234
|
+
if (kind === 'input' && (attr(el, 'type') ?? '').toLowerCase() === 'range') {
|
|
235
|
+
return 'border';
|
|
236
|
+
}
|
|
237
|
+
if (kind !== 'input' && kind !== 'select' && kind !== 'button')
|
|
238
|
+
return null;
|
|
239
|
+
// a list box shows rows, and sits on its bottom edge
|
|
240
|
+
if (kind === 'select' && Number(attr(el, 'size') ?? 1) > 1)
|
|
241
|
+
return null;
|
|
242
|
+
return (options.faceExtent?.(style) ?? {
|
|
243
|
+
ascent: style.fontSize * 0.8,
|
|
244
|
+
descent: style.fontSize * 0.2,
|
|
245
|
+
});
|
|
246
|
+
}
|
|
208
247
|
/** The `::first-line` style of each block container a rule gives one to,
|
|
209
248
|
* kept beside the boxes: few documents have any (`BoxTree.firstLine`). */
|
|
210
249
|
export const FIRST_LINE = new WeakMap();
|
|
@@ -314,6 +353,29 @@ export function buildBoxes(root, options) {
|
|
|
314
353
|
const builder = new Builder(options);
|
|
315
354
|
return builder.run(root);
|
|
316
355
|
}
|
|
356
|
+
/** A document's first element with an id: one walk of it, the first time
|
|
357
|
+
* an id is asked for (`ShapeCopies`). */
|
|
358
|
+
function idIndex(root) {
|
|
359
|
+
let index = null;
|
|
360
|
+
return (id) => {
|
|
361
|
+
if (!index) {
|
|
362
|
+
index = new Map();
|
|
363
|
+
const stack = [...root.children].reverse();
|
|
364
|
+
for (let node = stack.pop(); node; node = stack.pop()) {
|
|
365
|
+
if (!isElement(node))
|
|
366
|
+
continue;
|
|
367
|
+
const own = node.attribs.id;
|
|
368
|
+
if (own && !index.has(own))
|
|
369
|
+
index.set(own, node);
|
|
370
|
+
const children = node.children;
|
|
371
|
+
for (let i = children.length - 1; i >= 0; i -= 1) {
|
|
372
|
+
stack.push(children[i]);
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
return index.get(id) ?? null;
|
|
377
|
+
};
|
|
378
|
+
}
|
|
317
379
|
/**
|
|
318
380
|
* How deep the box tree may go. Everything downstream of the builder — the
|
|
319
381
|
* fix-up pass, layout, paint, the accessor walks — recurses on box depth, so
|
|
@@ -321,8 +383,17 @@ export function buildBoxes(root, options) {
|
|
|
321
383
|
* output, a runaway template) from a stack overflow five phases later.
|
|
322
384
|
* Blink's parser flattens at 512 for the same reason; content past the cap
|
|
323
385
|
* is dropped, which beats the alternative of crashing the application.
|
|
386
|
+
*
|
|
324
387
|
* The parser keeps a document to 256 elements (`dom.ts`), so what reaches
|
|
325
|
-
* this
|
|
388
|
+
* this is the anonymous boxes a table builds round them, which the builder
|
|
389
|
+
* counts as it goes (`wrappersAround`), since the fix-up makes them after
|
|
390
|
+
* it. Counted as elements, a `display: table-cell` box in another was one
|
|
391
|
+
* level where it is four boxes — a table, a row group, a row and the cell
|
|
392
|
+
* — and every pass pays for a box: painting one takes some 800 bytes of
|
|
393
|
+
* the stack. Two hundred and fifty cells deep, a thousand boxes, layout
|
|
394
|
+
* and paint each ran out of the 984 KB V8 gives the main thread, and the
|
|
395
|
+
* document came out blank. 512 boxes paint in under half of it, and are a
|
|
396
|
+
* cell in a cell 128 deep.
|
|
326
397
|
*/
|
|
327
398
|
const MAX_DEPTH = 512;
|
|
328
399
|
/** The sharing key the root box's children share under: one root style per
|
|
@@ -372,8 +443,13 @@ class Builder {
|
|
|
372
443
|
run(root) {
|
|
373
444
|
const cascade = this._options.cascade;
|
|
374
445
|
cascade.beginSharing(this._options.kept ?? null);
|
|
446
|
+
cascade.pageColorScheme = metaColorScheme(root);
|
|
375
447
|
const { style: rootStyle, html: impliedHtml } = cascade.rootStyle(hasBody(root), hasHtml(root));
|
|
376
448
|
const rootBox = new Box('block', null, rootStyle);
|
|
449
|
+
// the root standing in for a `<body>` has its background clipped to
|
|
450
|
+
// the document's text as the body's would be
|
|
451
|
+
if (rootStyle.backgroundClipText)
|
|
452
|
+
this._clipText = true;
|
|
377
453
|
// a fragment's root stands in for a `<body>`, counters and all
|
|
378
454
|
this._scopes.open();
|
|
379
455
|
this._counterChanges(rootStyle, {
|
|
@@ -391,6 +467,7 @@ class Builder {
|
|
|
391
467
|
const anonymous = anonymousStyles(cascade.initial);
|
|
392
468
|
fixUp(rootBox, anonymous);
|
|
393
469
|
assignSubtreeRanges(rootBox);
|
|
470
|
+
const copies = cascade.stylesShapes ? new ShapeCopies(idIndex(root)) : null;
|
|
394
471
|
return {
|
|
395
472
|
root: rootBox,
|
|
396
473
|
anonymous,
|
|
@@ -407,7 +484,8 @@ class Builder {
|
|
|
407
484
|
firstLine: this._firstLine,
|
|
408
485
|
firstLineStyler: this._firstLine ? this._firstLineStyler() : null,
|
|
409
486
|
selectionStyler: cascade.hasSelection ? this._selectionStyler() : null,
|
|
410
|
-
shapeStyler:
|
|
487
|
+
shapeStyler: copies ? this._shapeStyler(copies) : null,
|
|
488
|
+
shapeCopies: copies,
|
|
411
489
|
nestedOutOfLine: this._nestedOutOfLine,
|
|
412
490
|
movedInline: this._movedInline,
|
|
413
491
|
clipText: this._clipText,
|
|
@@ -442,12 +520,12 @@ class Builder {
|
|
|
442
520
|
}
|
|
443
521
|
/** `BoxTree.shapeStyler`, over this build's cascade: each drawing's
|
|
444
522
|
* once, from its box's style as it is when first asked. */
|
|
445
|
-
_shapeStyler() {
|
|
523
|
+
_shapeStyler(copies) {
|
|
446
524
|
const cascade = this._options.cascade;
|
|
447
525
|
return (box) => {
|
|
448
526
|
let shapes = SHAPE_STYLES.get(box);
|
|
449
527
|
if (shapes === undefined) {
|
|
450
|
-
shapes = box.el ? cascade.shapeStyles(box.el, box.style) : null;
|
|
528
|
+
shapes = box.el ? cascade.shapeStyles(box.el, box.style, copies) : null;
|
|
451
529
|
SHAPE_STYLES.set(box, shapes);
|
|
452
530
|
}
|
|
453
531
|
return shapes;
|
|
@@ -617,9 +695,11 @@ class Builder {
|
|
|
617
695
|
this._replaced(el, tag, replaced, style, into);
|
|
618
696
|
return;
|
|
619
697
|
}
|
|
620
|
-
if (this._depth >= MAX_DEPTH)
|
|
621
|
-
return;
|
|
622
698
|
const kind = boxKindFor(style.display);
|
|
699
|
+
// the box, and the anonymous boxes the fix-up will put round it
|
|
700
|
+
const depth = 1 + wrappersAround(into.kind, kind, style);
|
|
701
|
+
if (this._depth + depth > MAX_DEPTH)
|
|
702
|
+
return;
|
|
623
703
|
const box = new Box(kind, el, style);
|
|
624
704
|
into.append(box);
|
|
625
705
|
if ((kind === 'block' || kind === 'table-cell' || kind === 'table-caption') &&
|
|
@@ -681,21 +761,19 @@ class Builder {
|
|
|
681
761
|
flush = true;
|
|
682
762
|
}
|
|
683
763
|
if (markerImage && !ownMarker) {
|
|
764
|
+
const [width, height] = this._markerImageSize(markerImage.size, markerStyle ?? style);
|
|
765
|
+
const gap = MARKER_IMAGE_GAP * (this._options.scale ?? 1);
|
|
766
|
+
const image = { url: markerImage.url, width, height, gap };
|
|
684
767
|
if (style.listStylePosition === 'inside')
|
|
685
|
-
insideImage =
|
|
768
|
+
insideImage = image;
|
|
686
769
|
else {
|
|
687
|
-
const scale = this._options.scale ?? 1;
|
|
688
770
|
box.marker = {
|
|
689
771
|
text: '',
|
|
690
772
|
layout: null,
|
|
691
773
|
x: 0,
|
|
692
774
|
y: 0,
|
|
693
775
|
style: markerStyle,
|
|
694
|
-
image
|
|
695
|
-
url: markerImage.url,
|
|
696
|
-
width: (markerImage.size.width ?? 0) * scale,
|
|
697
|
-
height: (markerImage.size.height ?? 0) * scale,
|
|
698
|
-
},
|
|
776
|
+
image,
|
|
699
777
|
};
|
|
700
778
|
}
|
|
701
779
|
}
|
|
@@ -735,12 +813,18 @@ class Builder {
|
|
|
735
813
|
const ownLetter = ownRules ? { rules: ownRules, punctuation: [] } : null;
|
|
736
814
|
if (ownLetter)
|
|
737
815
|
this._firstLetter = ownLetter;
|
|
738
|
-
this._depth +=
|
|
816
|
+
this._depth += depth;
|
|
739
817
|
if (insideImage) {
|
|
740
818
|
// an inline image at the start of the first line, as a generated
|
|
741
|
-
// image is, and the
|
|
742
|
-
|
|
743
|
-
|
|
819
|
+
// image is, and the room after it Blink gives it rather than a
|
|
820
|
+
// space: the content's own white space after it is kept, as it is
|
|
821
|
+
// after an image (`MARKER_IMAGE_GAP`)
|
|
822
|
+
const { url, gap } = insideImage;
|
|
823
|
+
const image = this._contentImage(url, box, style, el, insideImage);
|
|
824
|
+
if (style.direction === 'rtl')
|
|
825
|
+
image.style.marginLeft = gap;
|
|
826
|
+
else
|
|
827
|
+
image.style.marginRight = gap;
|
|
744
828
|
}
|
|
745
829
|
else if (insideMarker) {
|
|
746
830
|
this._insideMarker(insideMarker, style, markerStyle, box, el);
|
|
@@ -748,7 +832,7 @@ class Builder {
|
|
|
748
832
|
this._pseudo(el, 'before', style, box);
|
|
749
833
|
this._children(el, box, style, childInFlex, el, key);
|
|
750
834
|
this._pseudo(el, 'after', style, box);
|
|
751
|
-
this._depth -=
|
|
835
|
+
this._depth -= depth;
|
|
752
836
|
this._letterAfter(flow, skipped, outerLetter, ownLetter);
|
|
753
837
|
if (flow !== 'inline')
|
|
754
838
|
this._endLine();
|
|
@@ -847,6 +931,9 @@ class Builder {
|
|
|
847
931
|
ratio: 0,
|
|
848
932
|
};
|
|
849
933
|
this._controls.push(box);
|
|
934
|
+
const baseline = controlBaseline(el, replaced, style, this._options);
|
|
935
|
+
if (baseline)
|
|
936
|
+
CONTROL_BASELINES.set(box, baseline);
|
|
850
937
|
// A control's value is the widget's, not the document's: putting it in
|
|
851
938
|
// the selection index would make Ctrl+A copy the contents of every text
|
|
852
939
|
// field, which no document viewer does.
|
|
@@ -1135,14 +1222,14 @@ class Builder {
|
|
|
1135
1222
|
.join(item.separator);
|
|
1136
1223
|
break;
|
|
1137
1224
|
case 'open-quote':
|
|
1138
|
-
text += quoteAt(style.quotes, this._quoteDepth, 0);
|
|
1225
|
+
text += quoteAt(style.quotes, this._quoteDepth, 0, languageOf(el));
|
|
1139
1226
|
this._quoteDepth += 1;
|
|
1140
1227
|
break;
|
|
1141
1228
|
case 'close-quote':
|
|
1142
1229
|
// a close with nothing open writes nothing and closes nothing
|
|
1143
1230
|
if (this._quoteDepth > 0) {
|
|
1144
1231
|
this._quoteDepth -= 1;
|
|
1145
|
-
text += quoteAt(style.quotes, this._quoteDepth, 1);
|
|
1232
|
+
text += quoteAt(style.quotes, this._quoteDepth, 1, languageOf(el));
|
|
1146
1233
|
}
|
|
1147
1234
|
break;
|
|
1148
1235
|
case 'no-open-quote':
|
|
@@ -1164,7 +1251,10 @@ class Builder {
|
|
|
1164
1251
|
* the image's size once the host has it and none before. An image that
|
|
1165
1252
|
* never arrives takes no room, as no image does.
|
|
1166
1253
|
*/
|
|
1167
|
-
_contentImage(url, into, style, owner
|
|
1254
|
+
_contentImage(url, into, style, owner,
|
|
1255
|
+
/** Its size where it is a list marker's, which has one whatever the
|
|
1256
|
+
* image says (`_markerImageSize`). */
|
|
1257
|
+
marker) {
|
|
1168
1258
|
const box = new Box('replaced', null, {
|
|
1169
1259
|
...inherit(style, this._options.cascade.initial),
|
|
1170
1260
|
display: 'inline',
|
|
@@ -1174,13 +1264,39 @@ class Builder {
|
|
|
1174
1264
|
CONTENT_IMAGES.set(box, url);
|
|
1175
1265
|
const size = this._options.urlSize?.(url) ?? null;
|
|
1176
1266
|
this._contentImages.push({ url, element: owner, sized: !!size });
|
|
1177
|
-
if (
|
|
1267
|
+
if (marker) {
|
|
1268
|
+
const { width, height } = marker;
|
|
1269
|
+
const ratio = width > 0 && height > 0 ? width / height : 0;
|
|
1270
|
+
box.intrinsic = { width, height, missing: 0, ratio };
|
|
1271
|
+
}
|
|
1272
|
+
else if (size)
|
|
1178
1273
|
setIntrinsics(box, size, this._options.scale ?? 1);
|
|
1179
1274
|
else
|
|
1180
1275
|
box.intrinsic = { width: 0, height: 0, missing: 0, ratio: 0 };
|
|
1181
1276
|
this._ws = after('atomic', this._ws, this._ws);
|
|
1182
1277
|
this._lettered = false;
|
|
1183
1278
|
this._abandonLetter();
|
|
1279
|
+
return box;
|
|
1280
|
+
}
|
|
1281
|
+
/**
|
|
1282
|
+
* A list marker image's size, in device pixels: its own where it has one,
|
|
1283
|
+
* and where it lacks some — an SVG with only a `viewBox`, or with no size
|
|
1284
|
+
* and no ratio — CSS Images' default sizing in a square half its face's
|
|
1285
|
+
* ascent across. CSS Lists 3 (3.3) makes the square 1em, which both
|
|
1286
|
+
* engines find too large (w3c/csswg-drafts#4207): Blink's is half the
|
|
1287
|
+
* ascent, rounded to a whole pixel first
|
|
1288
|
+
* (`LayoutListMarkerImage::DefaultSize`), Gecko's 0.4em, and this is
|
|
1289
|
+
* Blink's. A `viewBox` alone came to 0 by 0 and drew no marker at all,
|
|
1290
|
+
* and inside the item to the 300 by 150 a generated image defaults to.
|
|
1291
|
+
*/
|
|
1292
|
+
_markerImageSize(size, style) {
|
|
1293
|
+
let side = 0;
|
|
1294
|
+
// CoreText reads a size of 0 as its default twelve points
|
|
1295
|
+
if ((size.width === null || size.height === null) && style.fontSize > 0) {
|
|
1296
|
+
const ascent = this._options.faceAscent?.(style) ?? style.fontSize * 0.8;
|
|
1297
|
+
side = Math.round(ascent) / 2;
|
|
1298
|
+
}
|
|
1299
|
+
return concreteSize(size, side, side, this._options.scale ?? 1);
|
|
1184
1300
|
}
|
|
1185
1301
|
/** A text node, whitespace-processed per the inherited `white-space`. */
|
|
1186
1302
|
_textNode(data, into, style, owner) {
|
|
@@ -1765,6 +1881,39 @@ function after(flow, inside, before) {
|
|
|
1765
1881
|
return 'start';
|
|
1766
1882
|
}
|
|
1767
1883
|
}
|
|
1884
|
+
/**
|
|
1885
|
+
* How many anonymous boxes the fix-up will put between a box of `kind` and
|
|
1886
|
+
* the box it is appended to, `parent` (`fixUpTable`, `wrapOrphans`,
|
|
1887
|
+
* `wrapTableParts`): a table part outside a table is given what it is
|
|
1888
|
+
* missing of one, and what is in a table and no part of it is given a
|
|
1889
|
+
* cell, a row and a row group. A cell in a block is in a table, a row group
|
|
1890
|
+
* and a row of its own, and a block in a row is in a cell. Counted against
|
|
1891
|
+
* `MAX_DEPTH`, which bounds the boxes and not the elements.
|
|
1892
|
+
*/
|
|
1893
|
+
function wrappersAround(parent, kind, style) {
|
|
1894
|
+
const column = style.display === 'table-column' || style.display === 'table-column-group';
|
|
1895
|
+
switch (parent) {
|
|
1896
|
+
case 'table':
|
|
1897
|
+
if (kind === 'table-row-group' || kind === 'table-caption' || column) {
|
|
1898
|
+
return 0;
|
|
1899
|
+
}
|
|
1900
|
+
return kind === 'table-row' ? 1 : kind === 'table-cell' ? 2 : 3;
|
|
1901
|
+
case 'table-row-group':
|
|
1902
|
+
return kind === 'table-row' ? 0 : kind === 'table-cell' ? 1 : 2;
|
|
1903
|
+
case 'table-row':
|
|
1904
|
+
return kind === 'table-cell' ? 0 : 1;
|
|
1905
|
+
}
|
|
1906
|
+
// a part out of flow is no part (`isTablePart`)
|
|
1907
|
+
if (style.position === 'absolute' ||
|
|
1908
|
+
style.position === 'fixed' ||
|
|
1909
|
+
style.float !== 'none') {
|
|
1910
|
+
return 0;
|
|
1911
|
+
}
|
|
1912
|
+
if (kind === 'table-row-group' || kind === 'table-caption' || column) {
|
|
1913
|
+
return 1;
|
|
1914
|
+
}
|
|
1915
|
+
return kind === 'table-row' ? 2 : kind === 'table-cell' ? 3 : 0;
|
|
1916
|
+
}
|
|
1768
1917
|
function boxKindFor(display) {
|
|
1769
1918
|
switch (display) {
|
|
1770
1919
|
case 'inline':
|