monowind 0.2.3 → 0.2.5
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 +14 -2
- package/dist/cdn.js +1205 -29
- package/dist/cdn.js.map +1 -1
- package/dist/element.d.ts.map +1 -1
- package/dist/grid.d.ts.map +1 -1
- package/dist/index.js +1500 -1025
- package/dist/index.js.map +1 -1
- package/dist/layout.d.ts +5 -0
- package/dist/layout.d.ts.map +1 -1
- package/dist/leaf.d.ts +4 -0
- package/dist/leaf.d.ts.map +1 -1
- package/dist/paint.d.ts.map +1 -1
- package/dist/plain-text.d.ts +29 -0
- package/dist/plain-text.d.ts.map +1 -1
- package/dist/pointer.d.ts.map +1 -1
- package/dist/selection.d.ts +61 -0
- package/dist/selection.d.ts.map +1 -0
- package/dist/sort.js +233 -5
- package/dist/sort.js.map +1 -1
- package/dist/style.d.ts.map +1 -1
- package/dist/tree.d.ts.map +1 -1
- package/dist/types.d.ts +42 -6
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/utilities.css +30 -6
package/dist/layout.d.ts
CHANGED
|
@@ -116,6 +116,11 @@ export declare function collapseMargins(a: number, b: number): number;
|
|
|
116
116
|
export declare function resolveSizeAgainst(size: Size, available: number, node: LayoutNode, cache: IntrinsicCache): number;
|
|
117
117
|
/** Max-content intrinsic outer width (border + padding + unwrapped content). */
|
|
118
118
|
export declare function intrinsicOuterWidth(node: LayoutNode, cache: IntrinsicCache): number;
|
|
119
|
+
/** A child's outer width contribution to its parent's intrinsic size: its
|
|
120
|
+
* explicit width if fixed (percent behaves as auto, per intrinsic
|
|
121
|
+
* contribution rules), else its min-/max-content outer width; clamped by
|
|
122
|
+
* its own fixed min/max. */
|
|
123
|
+
export declare function widthContribution(child: LayoutNode, kind: "min" | "max", cache: IntrinsicCache): number;
|
|
119
124
|
/**
|
|
120
125
|
* Min-content intrinsic outer width: the narrowest the box can get without
|
|
121
126
|
* overflow. For a text leaf that's the longest unbreakable unit — a word
|
package/dist/layout.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../src/layout.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAkB1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAI5C,OAAO,KAAK,EACV,UAAU,EACV,SAAS,EAET,UAAU,EAEV,cAAc,EACd,OAAO,EACP,IAAI,EACJ,SAAS,EACV,MAAM,YAAY,CAAC;AAEpB;;;;;;;GAOG;AAEH;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAevF;AAED,qDAAqD;AACrD,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAErD;AAED,4DAA4D;AAC5D,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAEtD;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE3C,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACxC,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACxC;wEACoE;IACpE,aAAa,EAAE,OAAO,CAAC,UAAU,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjE;8CAC0C;IAC1C,SAAS,EAAE,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;CAC3C;AAED,wBAAgB,kBAAkB,IAAI,cAAc,CAOnD;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,UAAU,EAChB,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,GAAG,SAAS,EACnC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,UAAU,EACrB,KAAK,EAAE,cAAc,EACrB,MAAM,CAAC,EAAE;IACP,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B;;iEAE6D;IAC7D,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;CAC9C,GACA,IAAI,
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../src/layout.ts"],"names":[],"mappings":"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"}
|
package/dist/leaf.d.ts
CHANGED
|
@@ -50,6 +50,10 @@ export interface LeafRegistration {
|
|
|
50
50
|
* host's mutation-observer filter; `class`/`style` and character
|
|
51
51
|
* data are always observed). */
|
|
52
52
|
observedAttributes?: string[];
|
|
53
|
+
/** The node whose contents a semantic gesture ON the leaf selects
|
|
54
|
+
* (specs/semantic-selection.md) — a shadow transcript that sits
|
|
55
|
+
* under the art, say. Absent: the leaf's light contents. */
|
|
56
|
+
selectionTarget?: (el: Element) => Node | null;
|
|
53
57
|
}
|
|
54
58
|
/** Register (or last-wins replace, with a warning) a leaf renderer.
|
|
55
59
|
* Connected hosts relayout, so registration after first paint is
|
package/dist/leaf.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leaf.d.ts","sourceRoot":"","sources":["../src/leaf.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AAEH;;;wDAGwD;AACxD,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;oBACoB;AACpB,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,SAAS,CAAC;CAClB;AAED;;;0BAG0B;AAC1B,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B;8CAC0C;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ;;;;oBAIgB;IAChB,MAAM,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,WAAW,CAAC;IACrC;;oCAEgC;IAChC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"leaf.d.ts","sourceRoot":"","sources":["../src/leaf.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AAEH;;;wDAGwD;AACxD,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;oBACoB;AACpB,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,SAAS,CAAC;CAClB;AAED;;;0BAG0B;AAC1B,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B;8CAC0C;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ;;;;oBAIgB;IAChB,MAAM,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,WAAW,CAAC;IACrC;;oCAEgC;IAChC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B;;gEAE4D;IAC5D,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;CAChD;AAKD;;;aAGa;AACb,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAezE;AAED;;mEAEmE;AACnE,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAE7E;AAED;qDACqD;AACrD,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAMjD;AAED;sEACsE;AACtE,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAGrE;AAED;wEACwE;AACxE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAOzF"}
|
package/dist/paint.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paint.d.ts","sourceRoot":"","sources":["../src/paint.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"paint.d.ts","sourceRoot":"","sources":["../src/paint.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA+B7C;;0DAE0D;AAC1D,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,UAAQ,GAAG,OAAO,CAmDhG"}
|
package/dist/plain-text.d.ts
CHANGED
|
@@ -49,6 +49,35 @@ export declare function applyCellPaint(paint: CellPaint, style: CSSStyleDeclarat
|
|
|
49
49
|
/** True when a segment carries no paint — the DOM adapter emits a bare
|
|
50
50
|
* text node for these instead of an empty <span>. */
|
|
51
51
|
export declare function isBarePaint(paint: CellPaint): boolean;
|
|
52
|
+
/** Whether a cell lies on one of a fragmented leaf's line boxes — the
|
|
53
|
+
* hit test for paragraph-flow multicol children, whose `localRect` is
|
|
54
|
+
* the shared container box (specs/multicol.md): each line covers its
|
|
55
|
+
* column's width and the rows down to the next line in that column
|
|
56
|
+
* (its own line box when it is the column's last). */
|
|
57
|
+
export declare function leafLineCovers(node: LayoutNode, absX: number, absY: number, col: number, row: number): boolean;
|
|
58
|
+
/** The index into `node.text` of the character painted at a cell, or
|
|
59
|
+
* null for a blank cell (specs/semantic-selection.md). `absX/absY` is
|
|
60
|
+
* the leaf's painted border-box origin as hitStack reports it. */
|
|
61
|
+
export declare function charIndexAtCell(node: LayoutNode, absX: number, absY: number, col: number, row: number): number | null;
|
|
62
|
+
/** Where a container's bars paint, in absolute cells from its
|
|
63
|
+
* border-box origin (specs/scrolling.md): each bar sits at the inner
|
|
64
|
+
* edge of its reserved band (`scrollbar-inset` moves it inward, the
|
|
65
|
+
* freed cells stay blank), `thick` cells across; its track starts
|
|
66
|
+
* inset from its own edge and ends against the other axis's band, or
|
|
67
|
+
* inset from the far edge when there is none. Shared with thumb
|
|
68
|
+
* dragging (element.ts). */
|
|
69
|
+
export declare function scrollbarGeometry(node: LayoutNode, absX: number, absY: number): {
|
|
70
|
+
y?: Scrollbar;
|
|
71
|
+
x?: Scrollbar;
|
|
72
|
+
};
|
|
73
|
+
/** One bar: the cell its track starts at, its thickness across, and
|
|
74
|
+
* its length along its axis. */
|
|
75
|
+
export interface Scrollbar {
|
|
76
|
+
col: number;
|
|
77
|
+
row: number;
|
|
78
|
+
thick: number;
|
|
79
|
+
len: number;
|
|
80
|
+
}
|
|
52
81
|
/** Thumb geometry on a bar `trackLen` cells long: proportional to the
|
|
53
82
|
* visible fraction, but shrunk until every scroll offset gets its own
|
|
54
83
|
* thumb position (`trackLen − max` cells at most, one at least) — so a
|
package/dist/plain-text.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plain-text.d.ts","sourceRoot":"","sources":["../src/plain-text.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAIxD;AAED;;;uEAGuE;AACvE,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;sEACkE;IAClE,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;sEAGkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;iCAEiC;AACjC,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;qCAEqC;AACrC,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,EAAE,EAAE,CAGpE;AAoBD,wBAAgB,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CASzE;AAED;uEACuE;AACvE,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAOjF;AAED;qDACqD;AACrD,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CASrD;
|
|
1
|
+
{"version":3,"file":"plain-text.d.ts","sourceRoot":"","sources":["../src/plain-text.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAIxD;AAED;;;uEAGuE;AACvE,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;sEACkE;IAClE,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;sEAGkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;iCAEiC;AACjC,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;qCAEqC;AACrC,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,EAAE,EAAE,CAGpE;AAoBD,wBAAgB,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CASzE;AAED;uEACuE;AACvE,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAOjF;AAED;qDACqD;AACrD,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CASrD;AAuQD;;;;sDAIsD;AACtD,wBAAgB,cAAc,CAC5B,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,OAAO,CAeT;AAED;;kEAEkE;AAClE,wBAAgB,eAAe,CAC7B,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,MAAM,GAAG,IAAI,CAWf;AAED;;;;;;4BAM4B;AAC5B,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX;IAAE,CAAC,CAAC,EAAE,SAAS,CAAC;IAAC,CAAC,CAAC,EAAE,SAAS,CAAA;CAAE,CA8BlC;AAED;gCACgC;AAChC,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;wEAIwE;AACxE,wBAAgB,SAAS,CACvB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GACb;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAM7B"}
|
package/dist/pointer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pointer.d.ts","sourceRoot":"","sources":["../src/pointer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pointer.d.ts","sourceRoot":"","sources":["../src/pointer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;GAMG;AAEH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,UAAU,CAAC;IACjB;4CACwC;IACxC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;;;uCAKuC;AACvC,wBAAgB,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,CA6B/E;AAED,mEAAmE;AACnE,wBAAgB,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,EAAE,CAE9E"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { LayoutNode } from "./types.ts";
|
|
2
|
+
/**
|
|
3
|
+
* Character ↔ DOM position mapping over a leaf's `charSource` runs
|
|
4
|
+
* (specs/semantic-selection.md): word boundaries map forward to
|
|
5
|
+
* `setBaseAndExtent` points, and a Range's boundary points map
|
|
6
|
+
* backward to slices of the leaf's layout text.
|
|
7
|
+
*/
|
|
8
|
+
/** Negative when point `a` precedes point `b` in DOM order, 0 when equal. */
|
|
9
|
+
export declare function comparePoints(aNode: Node, aOffset: number, bNode: Node, bOffset: number): number;
|
|
10
|
+
/** The index into `leaf.text` of the character at or after a DOM
|
|
11
|
+
* boundary point: a point inside a collapsed whitespace run is that
|
|
12
|
+
* run's space, a point past a node's mapped characters is the next
|
|
13
|
+
* mapped index (or `text.length`), and a point inside an atomic inline
|
|
14
|
+
* box's subtree is the box's U+FFFC marker. */
|
|
15
|
+
export declare function charIndexAt(leaf: LayoutNode, container: Node, offset: number): number;
|
|
16
|
+
/** The DOM position of `leaf.text[index]` (or of the end of the run
|
|
17
|
+
* ending there); null for a character with no source position. */
|
|
18
|
+
export declare function positionOf(leaf: LayoutNode, index: number): {
|
|
19
|
+
node: Text;
|
|
20
|
+
offset: number;
|
|
21
|
+
} | null;
|
|
22
|
+
export interface BoundaryPoints {
|
|
23
|
+
startContainer: Node;
|
|
24
|
+
startOffset: number;
|
|
25
|
+
endContainer: Node;
|
|
26
|
+
endOffset: number;
|
|
27
|
+
}
|
|
28
|
+
/** The document Selection's first range as seen through `shadowRoot`
|
|
29
|
+
* (`getComposedRanges` on Firefox/WebKit and standards-path Chromium;
|
|
30
|
+
* `ShadowRoot.getSelection()` as the legacy Chromium fallback —
|
|
31
|
+
* verified 2026-09-01). A selection inside some OTHER shadow root (a
|
|
32
|
+
* custom leaf's transcript) comes back retargeted onto that root's
|
|
33
|
+
* host, which is exactly the light-tree range around the leaf. Any API
|
|
34
|
+
* surprise reads as no selection, never an error. */
|
|
35
|
+
export declare function selectionRangeThrough(shadowRoot: ShadowRoot): BoundaryPoints | null;
|
|
36
|
+
/** Where a selection lives relative to a host: in its shadow `grid`,
|
|
37
|
+
* in its light DOM (both points, the host's own child list included),
|
|
38
|
+
* or anywhere else — including straddling the two. */
|
|
39
|
+
export type SelectionKind = "grid" | "light" | "outside";
|
|
40
|
+
export declare function classifySelection(host: Element, grid: Element, range: BoundaryPoints): SelectionKind;
|
|
41
|
+
/** `text/plain` for a light-DOM selection (specs/semantic-selection.md
|
|
42
|
+
* "Copy serialization"): every node the range intersects, in tree
|
|
43
|
+
* order, laid out by the `innerText` rules — a `<p>` surrounded by a
|
|
44
|
+
* blank line, any other block-level box by one line break, table cells
|
|
45
|
+
* separated by tabs and rows by newlines — over each leaf's layout
|
|
46
|
+
* text. The browsers' own serializers lose block breaks for the
|
|
47
|
+
* engine's out-of-flow boxes; this restores what they would have
|
|
48
|
+
* produced in flow. */
|
|
49
|
+
export declare function serializeSelection(root: LayoutNode, points: BoundaryPoints): string;
|
|
50
|
+
/** A node whose text is painted: text and no in-flow children (the
|
|
51
|
+
* paint walk's own test); renderer leaves included. */
|
|
52
|
+
export declare function isTextLeaf(node: LayoutNode): boolean;
|
|
53
|
+
/** The word containing `leaf.text[index]` — the `Intl.Segmenter`
|
|
54
|
+
* segment (word-like or not) within the run of text between markers
|
|
55
|
+
* and newlines, in the element's language. null off a character, at a
|
|
56
|
+
* marker, or without a Segmenter. */
|
|
57
|
+
export declare function wordAt(leaf: LayoutNode, index: number): {
|
|
58
|
+
start: number;
|
|
59
|
+
end: number;
|
|
60
|
+
} | null;
|
|
61
|
+
//# sourceMappingURL=selection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection.d.ts","sourceRoot":"","sources":["../src/selection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C;;;;;GAKG;AAEH,6EAA6E;AAC7E,wBAAgB,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAShG;AAED;;;;+CAI+C;AAC/C,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAwBrF;AAED;kEACkE;AAClE,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAajG;AAID,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,IAAI,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;qDAMqD;AACrD,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,IAAI,CAgBnF;AAED;;sDAEsD;AACtD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAEzD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,cAAc,GACpB,aAAa,CAKf;AASD;;;;;;;uBAOuB;AACvB,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,GAAG,MAAM,CAOnF;AAqED;uDACuD;AACvD,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAMpD;AAuDD;;;qCAGqC;AACrC,wBAAgB,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAe7F"}
|