pangu
Version:
Opinionated paranoid text spacing: automatically inserts whitespace between CJK (Chinese, Japanese, Korean) and ANS (alphabetical letters, numerical digits and symbols)
28 lines • 1.34 kB
TypeScript
export type BoundarySpacingDecision = 'none' | 'prepend-next' | 'append-current' | 'insert-element';
export type TextNodeSpacingDecision = 'trim-leading-space' | 'prepend-space' | 'apply-text-spacing';
export interface BoundarySpacingContext {
currentTail: string;
nextFirst: string;
currentEndsWithSpace: boolean;
nextStartsWithSpace: boolean;
whitespaceBetween: boolean;
contentBetween: boolean;
spaceLikeBetween: boolean;
blockEdgeBetween: boolean;
currentBoundaryIsSpaceSensitive: boolean;
nextBoundaryIsIgnored: boolean;
nextBoundaryIsSpaceSensitive: boolean;
precedingNodeHidden: () => boolean;
currentNodeHidden: () => boolean;
nextNodeHidden: () => boolean;
inGridOrFlexContainer: () => boolean;
}
export interface TextNodeSpacingContext {
text: string;
previousElementLastChar: string | null;
precedingNodeHidden: () => boolean;
}
export declare function decideBoundarySpacing(boundarySpacingContext: BoundarySpacingContext): "none" | "prepend-next" | "append-current" | "insert-element";
export declare function decideTextNodeSpacing(textNodeSpacingContext: TextNodeSpacingContext): TextNodeSpacingDecision[];
export declare function respaceCurrentTail(currentTail: string, nextFirst: string): string | null;
//# sourceMappingURL=boundary-spacing.d.ts.map