postext-epub 0.49.5 → 0.49.7

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 (33) hide show
  1. package/dist/reflowable/css/apparatus.d.ts +17 -0
  2. package/dist/reflowable/css/apparatus.d.ts.map +1 -0
  3. package/dist/reflowable/css/apparatus.js +127 -0
  4. package/dist/reflowable/css/apparatus.js.map +1 -0
  5. package/dist/reflowable/css/boxes.d.ts +20 -0
  6. package/dist/reflowable/css/boxes.d.ts.map +1 -0
  7. package/dist/reflowable/css/boxes.js +134 -0
  8. package/dist/reflowable/css/boxes.js.map +1 -0
  9. package/dist/reflowable/css/figures.d.ts +16 -0
  10. package/dist/reflowable/css/figures.d.ts.map +1 -0
  11. package/dist/reflowable/css/figures.js +174 -0
  12. package/dist/reflowable/css/figures.js.map +1 -0
  13. package/dist/reflowable/css/helpers.d.ts +32 -0
  14. package/dist/reflowable/css/helpers.d.ts.map +1 -0
  15. package/dist/reflowable/css/helpers.js +77 -0
  16. package/dist/reflowable/css/helpers.js.map +1 -0
  17. package/dist/reflowable/css/text.d.ts +19 -0
  18. package/dist/reflowable/css/text.d.ts.map +1 -0
  19. package/dist/reflowable/css/text.js +151 -0
  20. package/dist/reflowable/css/text.js.map +1 -0
  21. package/dist/reflowable/css/types.d.ts +46 -0
  22. package/dist/reflowable/css/types.d.ts.map +1 -0
  23. package/dist/reflowable/css/types.js +4 -0
  24. package/dist/reflowable/css/types.js.map +1 -0
  25. package/dist/reflowable/css/verse.d.ts +18 -0
  26. package/dist/reflowable/css/verse.d.ts.map +1 -0
  27. package/dist/reflowable/css/verse.js +126 -0
  28. package/dist/reflowable/css/verse.js.map +1 -0
  29. package/dist/reflowable/css.d.ts +4 -52
  30. package/dist/reflowable/css.d.ts.map +1 -1
  31. package/dist/reflowable/css.js +24 -736
  32. package/dist/reflowable/css.js.map +1 -1
  33. package/package.json +3 -3
@@ -0,0 +1,17 @@
1
+ import type { ResolvedConfig, Dimension, ColorValue, ResolvedBodyTextConfig } from 'postext';
2
+ import type { StylesheetOptions, CssRule } from './types.js';
3
+ /** What createApparatusRules takes from bookStylesheet. */
4
+ export interface ApparatusRulesDeps {
5
+ config: ResolvedConfig;
6
+ options: StylesheetOptions;
7
+ dpi: number;
8
+ body: ResolvedBodyTextConfig;
9
+ bodyPx: number;
10
+ fam: (f: string) => string;
11
+ lh: (d: Dimension, fontPx: number) => string;
12
+ color: (c: ColorValue | undefined, prop?: string) => string | undefined;
13
+ px: (d: Dimension, basePx?: number) => number;
14
+ out: (string | CssRule)[];
15
+ }
16
+ export declare function createApparatusRules(deps: ApparatusRulesDeps): {};
17
+ //# sourceMappingURL=apparatus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apparatus.d.ts","sourceRoot":"","sources":["../../../src/reflowable/css/apparatus.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAC7F,OAAO,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE7D,2DAA2D;AAC3D,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,sBAAsB,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3B,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7C,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACxE,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C,GAAG,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;CAC3B;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,MAyH5D"}
@@ -0,0 +1,127 @@
1
+ // The book stylesheet's rules for notes, contents, bibliography and index,
2
+ // maths, chips, swatches, scores, exercises and the Chinese and Japanese marks
3
+ // (#1276: split out of css.ts).
4
+ import { rule, ALIGN, dotsRule } from './helpers.js';
5
+ import { round, idOf } from '../inline.js';
6
+ export function createApparatusRules(deps) {
7
+ const { config, options, dpi, body, bodyPx, fam, lh, color, px, out } = deps;
8
+ // --- notes, contents, bibliography, index -------------------------------
9
+ const fn = config.footnotes;
10
+ const fnPx = px(fn.fontSize);
11
+ out.push(rule('.pt-footnotes', ['margin-block-start: 2em', 'border-block-start: 1px solid currentColor', 'padding-block-start: 0.5em']));
12
+ out.push(rule('aside.pt-footnote', [
13
+ `font-size: ${round(fnPx / bodyPx)}em`,
14
+ lh(fn.lineHeight, fnPx),
15
+ color(fn.color),
16
+ fn.textAlign && `text-align: ${ALIGN[fn.textAlign] ?? 'start'}`,
17
+ `margin-block-end: ${round(px(fn.spaceBetween, fnPx) / fnPx)}em`,
18
+ ]));
19
+ out.push(rule('aside.pt-footnote p', ['text-indent: 0']));
20
+ out.push(rule('a.pt-noteref', ['text-decoration: none', color(body.referenceColor)]));
21
+ out.push(rule('a[role="doc-backlink"]', ['text-decoration: none']));
22
+ out.push(rule('nav.pt-toc ol', ['list-style: none', 'padding-inline-start: 0']));
23
+ out.push(rule('nav.pt-toc li', ['margin-block-start: 0.3em']));
24
+ out.push(rule('nav.pt-toc a', ['text-decoration: none', 'color: inherit']));
25
+ out.push(rule('nav.pt-toc li > .pt-lbl:first-child', ['margin-inline-start: 0', 'min-width: 2em']));
26
+ out.push(rule('.pt-toc-part', ['font-weight: bold', 'margin-block-start: 0.8em']));
27
+ out.push(rule('.pt-toc-subtitle', ['font-style: italic', 'font-size: 0.9em']));
28
+ out.push(rule('p.pt-bib', ['padding-inline-start: 2em', 'text-indent: -2em', 'margin-block-end: 0.3em']));
29
+ out.push(rule('p.pt-index-group', ['font-weight: bold', 'text-indent: 0', 'margin-block-start: 1em', 'page-break-after: avoid', 'break-after: avoid']));
30
+ // Index entries hang their turnover lines, and a sub-entry sits one
31
+ // indent in per level, both in the index's own em.
32
+ const ix = config.index;
33
+ const ixPx = px(ix.fontSize);
34
+ const turnover = round(px(ix.turnoverIndent, ixPx) / ixPx);
35
+ const step = round(px(ix.indent, ixPx) / ixPx);
36
+ out.push(rule('p.pt-index-entry', [
37
+ ixPx !== bodyPx && `font-size: ${round(ixPx / bodyPx)}em`,
38
+ `padding-inline-start: ${turnover}em`,
39
+ `text-indent: -${turnover}em`,
40
+ 'text-align: start',
41
+ 'hyphens: manual',
42
+ ]));
43
+ for (const level of [1, 2, 3]) {
44
+ out.push(rule(`p.pt-index-l${level}`, [`margin-inline-start: ${round(step * level)}em`]));
45
+ }
46
+ // --- maths, chips, swatches, Chinese marks ------------------------------
47
+ out.push(rule('.pt-math-display', ['text-align: center', 'margin: 0.5em 0', 'text-indent: 0', 'overflow-x: auto']));
48
+ // Music scores (#1172): systems as wide as the column, a little air
49
+ // between two.
50
+ out.push(rule('.pt-score', ['margin: 0.75em 0', 'text-indent: 0']));
51
+ out.push(rule('.pt-score-system', ['display: block', 'width: 100%', 'height: auto', 'margin: 0 0 0.4em']));
52
+ out.push(rule('.pt-math svg', ['display: inline']));
53
+ out.push(rule('.pt-swatch', ['display: inline-block', 'width: 0.8em', 'height: 0.8em', 'border: 1px solid currentColor', 'vertical-align: baseline']));
54
+ out.push(rule('.pt-chip', ['display: inline-block', 'padding: 0 0.3em', 'border-radius: 0.2em', 'text-indent: 0', 'line-height: 1.2']));
55
+ for (const c of config.chipStyles) {
56
+ const cPx = c.fontSize ? px(c.fontSize) : bodyPx;
57
+ out.push(rule(`.${idOf('pt-chip-', c.id)}`, [
58
+ c.backgroundEnabled && color(c.background, 'background-color'),
59
+ // A blank to write on (#1227) is underlined, not boxed.
60
+ px(c.borderWidth) > 0 && `${c.underline ? 'border-bottom' : 'border'}: ${round(px(c.borderWidth) * (96 / dpi))}px ${c.underline ?? 'solid'} ${c.borderColor.hex}`,
61
+ px(c.borderRadius) > 0 && `border-radius: ${round(px(c.borderRadius, cPx) / cPx)}em`,
62
+ `padding: ${round(px(c.paddingY, cPx) / cPx)}em ${round(px(c.paddingX, cPx) / cPx)}em`,
63
+ c.fontFamily && fam(c.fontFamily),
64
+ c.fontSize && `font-size: ${round(cPx / bodyPx)}em`,
65
+ c.color && color(c.color),
66
+ c.bold && 'font-weight: bold',
67
+ c.italic && 'font-style: italic',
68
+ ]));
69
+ }
70
+ // Exercises (#1231): a blank holds its input, a drawn box its picture
71
+ // (and, the script running, the controls laid over it); the answer key
72
+ // for a reader with no script follows the exercise.
73
+ out.push(rule('.pt-ex-slot', ['position: relative']));
74
+ out.push(rule('.pt-ex-blank', ['height: 1.2em', 'vertical-align: -0.25em']));
75
+ out.push(rule('.pt-ex-blank > input', ['box-sizing: border-box', 'width: 100%', 'height: 100%', 'margin: 0', 'padding: 0', 'border: 0', 'background: transparent', 'color: inherit', 'font: inherit', 'text-align: center']));
76
+ out.push(rule('.pt-ex-drawn', ['position: relative', 'margin: 0.4em 0', 'text-indent: 0', 'max-width: 100%']));
77
+ out.push(rule('.pt-ex-drawn > svg', ['display: block', 'overflow: visible', 'width: 100%', 'height: auto']));
78
+ out.push(rule('.pt-ex-static', ['margin: 0.6em 0 0', 'font-size: 0.9em', 'text-indent: 0']));
79
+ out.push(rule('.pt-ex-static > summary', ['cursor: pointer']));
80
+ out.push(rule('.pt-sc', ['font-variant: small-caps']));
81
+ out.push(rule('.pt-dots', ['font-style: normal', 'text-emphasis: filled dot', '-epub-text-emphasis-style: filled dot', '-webkit-text-emphasis-style: filled dot', 'text-emphasis-position: under right', '-webkit-text-emphasis-position: under right']));
82
+ // Other shapes and sides (the Japanese sesame over the text, #428),
83
+ // sorted so the stylesheet is the same whatever order they were read in.
84
+ for (const cls of [...(options.dots ?? [])].sort())
85
+ out.push(dotsRule(cls));
86
+ out.push(rule('.pt-proper', ['text-decoration: underline']));
87
+ out.push(rule('.pt-book', ['text-decoration: underline wavy']));
88
+ // Side lines (傍線): under horizontal text and left of vertical text, or
89
+ // over and right of it; one unbroken line, descenders and all.
90
+ const underSide = ['text-underline-position: under left', '-epub-text-underline-position: under left', '-webkit-text-underline-position: under left'];
91
+ out.push(rule('.pt-side', ['text-decoration-line: underline', 'text-decoration-skip-ink: none', ...underSide]));
92
+ out.push(rule('.pt-side.pt-side-over', ['text-decoration-line: overline']));
93
+ for (const style of ['double', 'wavy', 'dotted'])
94
+ out.push(rule(`.pt-side.pt-side-${style}`, [`text-decoration-style: ${style}`]));
95
+ out.push(rule('.pt-tcy', ['text-combine-upright: all', '-epub-text-combine: horizontal', '-webkit-text-combine: horizontal']));
96
+ out.push(rule('.pt-upright', ['text-orientation: upright', '-epub-text-orientation: upright', '-webkit-text-orientation: upright']));
97
+ out.push(rule('.pt-sideways', ['text-orientation: sideways', '-epub-text-orientation: sideways', '-webkit-text-orientation: sideways']));
98
+ out.push(rule('.pt-warichu', ['font-size: 0.6em']));
99
+ out.push(rule('ruby.pt-ruby-under', ['ruby-position: under', '-epub-ruby-position: under', '-webkit-ruby-position: after']));
100
+ out.push(rule('ruby.pt-ruby-right', ['ruby-position: inter-character']));
101
+ // Kanbun marks (訓点): half size, the 送り仮名 raised (right of vertical
102
+ // text) and the 返り点 lowered (left of it), after their character.
103
+ out.push(rule('.pt-okuri, .pt-kaeri', ['font-size: 0.5em', 'line-height: 0']));
104
+ out.push(rule('.pt-okuri', ['vertical-align: super']));
105
+ out.push(rule('.pt-kaeri', ['vertical-align: sub']));
106
+ out.push(rule('.pt-marker', ['height: 0']));
107
+ // Japanese note markers (JLReq §4.2.3), only in a book that sets them.
108
+ // In the line gap: a box of no advance, its text running back from it
109
+ // (right to left, inline-start being the end), its baseline raised past
110
+ // the text's em box (0.88 em over its baseline) without growing the
111
+ // line. Right of a vertical line: reduced, its box against
112
+ // the line's right side.
113
+ const marker = config.footnotes.markerPosition;
114
+ if (marker === 'side' || marker === 'right') {
115
+ const size = config.footnotes.markerSize;
116
+ const em = size.unit === 'em' || size.unit === 'rem' ? size.value : px(size) / bodyPx;
117
+ if (marker === 'side') {
118
+ out.push(rule('.pt-note-side', ['display: inline-block', 'inline-size: 0', 'direction: rtl', 'white-space: nowrap', 'line-height: 0', `font-size: ${round(em)}em`, `vertical-align: ${round(0.88 / em + 0.12)}em`]));
119
+ out.push(rule('.pt-note-side > span', ['direction: ltr', 'unicode-bidi: isolate']));
120
+ }
121
+ else {
122
+ out.push(rule('.pt-note-right', [`font-size: ${round(em)}em`, 'vertical-align: text-top', 'line-height: 0']));
123
+ }
124
+ }
125
+ return {};
126
+ }
127
+ //# sourceMappingURL=apparatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apparatus.js","sourceRoot":"","sources":["../../../src/reflowable/css/apparatus.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { type Dimension, type ResolvedConfig, type ColorValue, type ResolvedBodyTextConfig } from 'postext';
2
+ import type { StylesheetOptions, CssRule } from './types.js';
3
+ /** What createBoxRules takes from bookStylesheet. */
4
+ export interface BoxRulesDeps {
5
+ config: ResolvedConfig;
6
+ options: StylesheetOptions;
7
+ dpi: number;
8
+ body: ResolvedBodyTextConfig;
9
+ bodyPx: number;
10
+ fam: (f: string) => string;
11
+ em: (d: Dimension, basePx?: number) => string;
12
+ lh: (d: Dimension, fontPx: number) => string;
13
+ color: (c: ColorValue | undefined, prop?: string) => string | undefined;
14
+ px: (d: Dimension, basePx?: number) => number;
15
+ spacingEm: (spacing: boolean | Dimension | undefined, lineHeight: Dimension, basePx?: number) => number;
16
+ rtl: boolean;
17
+ out: (string | CssRule)[];
18
+ }
19
+ export declare function createBoxRules(deps: BoxRulesDeps): {};
20
+ //# sourceMappingURL=boxes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boxes.d.ts","sourceRoot":"","sources":["../../../src/reflowable/css/boxes.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoC,KAAK,SAAS,EAAiB,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,KAAK,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAC7J,OAAO,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE7D,qDAAqD;AACrD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,sBAAsB,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3B,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7C,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACxE,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACxG,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;CAC3B;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,MAkIhD"}
@@ -0,0 +1,134 @@
1
+ // The book stylesheet's rules for callouts, composed pages' frames, exercise
2
+ // boxes and paragraph styles (#1276: split out of css.ts).
3
+ import { rule, ALIGN, TRACKED_LIGATURES } from './helpers.js';
4
+ import { idOf, round } from '../inline.js';
5
+ import { isCornerRadii, uniformRadius } from 'postext';
6
+ export function createBoxRules(deps) {
7
+ const { config, options, dpi, body, bodyPx, fam, em, lh, color, px, spacingEm, rtl, out } = deps;
8
+ // --- callouts ------------------------------------------------------------
9
+ out.push(rule('aside.pt-callout', ['margin: 1em 0', 'padding: 0.75em 1em', 'page-break-inside: avoid']));
10
+ out.push(rule('.pt-callout-title', ['font-weight: bold', 'text-indent: 0', 'margin-block-end: 0.4em']));
11
+ // A composed page's frames (#862): blocks of its section, in Markdown
12
+ // order; a frame set in a callout style is drawn as its box.
13
+ if (options.composed) {
14
+ out.push(rule('section.pt-composed', ['margin-block: 1em']));
15
+ out.push(rule('div.pt-frame', ['margin: 0 0 1em']));
16
+ // A frame set in a writing mode of its own (#960): its lines run along
17
+ // the length written on the box (`height` for a vertical frame).
18
+ out.push(rule('div.pt-frame-vertical', ['writing-mode: vertical-rl', '-epub-writing-mode: vertical-rl', '-webkit-writing-mode: vertical-rl']));
19
+ out.push(rule('div.pt-frame-horizontal', ['writing-mode: horizontal-tb', '-epub-writing-mode: horizontal-tb', '-webkit-writing-mode: horizontal-tb']));
20
+ out.push(rule('div.pt-frame.pt-callout', ['padding: 0.75em 1em', 'page-break-inside: avoid']));
21
+ }
22
+ const frameStyles = new Set(options.composed?.frameStyles ?? []);
23
+ // The boxes an exercise is set in (#1244): its own frameless one, or the
24
+ // box style its exercise style names. An exercise is a `div` group.
25
+ const exerciseFrames = new Set((config.exerciseSettings?.styles ?? []).flatMap((st) => (st.box ? [st.box] : [])));
26
+ for (const s of config.calloutStyles) {
27
+ const cls = idOf('pt-callout-', s.id);
28
+ // The box's selector, and the frames' set in its style (#862).
29
+ const sels = frameStyles.has(s.id) ? [`aside.${cls}`, `div.pt-frame.${cls}`] : [`aside.${cls}`];
30
+ if (exerciseFrames.has(s.id) || s.id.startsWith('__postext-ex'))
31
+ sels.push(`div.pt-exercise.${cls}`);
32
+ const sel = sels.join(', ');
33
+ const under = (rest) => sels.map((x) => `${x} ${rest}`).join(', ');
34
+ const bPx = px(s.body.fontSize);
35
+ const pad = s.padding;
36
+ const stripe = s.stripe.enabled && px(s.stripe.width) > 0 ? `${round(px(s.stripe.width) * (96 / dpi))}px solid ${s.stripe.color.hex}` : undefined;
37
+ const side = s.stripe.side === 'top' ? 'border-block-start' : s.stripe.side === 'right' ? 'border-inline-end' : 'border-inline-start';
38
+ // A box's sides are the body flow's (#371): in a right-to-left book,
39
+ // whose flow is mirrored, its left padding is on the page's right.
40
+ const [padRight, padLeft] = rtl ? [pad.left, pad.right] : [pad.right, pad.left];
41
+ // Corners of their own and a border per side (#1059); a joined tab
42
+ // reflows as a plain tab.
43
+ const radius = isCornerRadii(s.borderRadius)
44
+ ? (() => {
45
+ const r = s.borderRadius;
46
+ const one = (d) => (d ? em(d) : '0');
47
+ // The corners of the body flow's sides, as the padding's.
48
+ const [tl, tr, br, bl] = rtl ? [r.topRight, r.topLeft, r.bottomLeft, r.bottomRight] : [r.topLeft, r.topRight, r.bottomRight, r.bottomLeft];
49
+ return [tl, tr, br, bl].some((d) => d && px(d) > 0)
50
+ ? `border-radius: ${one(tl)} ${one(tr)} ${one(br)} ${one(bl)}`
51
+ : undefined;
52
+ })()
53
+ : px(uniformRadius(s.borderRadius)) > 0 && `border-radius: ${em(uniformRadius(s.borderRadius))}`;
54
+ const sideBorders = s.border.sides
55
+ ? ['top', 'right', 'bottom', 'left'].map((k) => {
56
+ const b = s.border.sides[rtl && k === 'left' ? 'right' : rtl && k === 'right' ? 'left' : k];
57
+ return b.enabled && px(b.width) > 0 ? `border-${k}: ${round(px(b.width) * (96 / dpi))}px solid ${b.color.hex}` : `border-${k}: none`;
58
+ })
59
+ : [];
60
+ out.push(rule(sel, [
61
+ s.backgroundEnabled && color(s.background, 'background-color'),
62
+ !s.border.sides && s.border.enabled && px(s.border.width) > 0 && `border: ${round(px(s.border.width) * (96 / dpi))}px solid ${s.border.color.hex}`,
63
+ ...sideBorders,
64
+ stripe && `${side}: ${stripe}`,
65
+ radius,
66
+ `padding: ${em(pad.top)} ${em(padRight)} ${em(pad.bottom)} ${em(padLeft)}`,
67
+ `margin: ${em(s.marginTop)} 0 ${em(s.marginBottom)}`,
68
+ fam(s.body.fontFamily),
69
+ `font-size: ${round(bPx / bodyPx)}em`,
70
+ color(s.body.color),
71
+ s.body.italic && 'font-style: italic',
72
+ s.body.smallCaps && 'font-variant: small-caps',
73
+ `text-align: ${ALIGN[s.body.textAlign] ?? 'start'}`,
74
+ ]));
75
+ out.push(rule(under('p'), [
76
+ `text-indent: ${round(px(s.body.firstLineIndent, bPx) / bPx)}em`,
77
+ spacingEm(s.body.paragraphSpacing, s.body.lineHeight, bPx) > 0 && `margin-block-end: ${spacingEm(s.body.paragraphSpacing, s.body.lineHeight, bPx)}em`,
78
+ lh(s.body.lineHeight, bPx),
79
+ ]));
80
+ const t = s.titleStyle;
81
+ const tPx = px(t.fontSize);
82
+ out.push(rule(under('> .pt-callout-title'), [
83
+ fam(t.fontFamily),
84
+ `font-size: ${round(tPx / bPx)}em`,
85
+ `font-weight: ${t.fontWeight}`,
86
+ `font-style: ${t.italic ? 'italic' : 'normal'}`,
87
+ color(t.color),
88
+ t.textTransform === 'uppercase' && 'text-transform: uppercase',
89
+ t.letterSpacing.value !== 0 && `letter-spacing: ${round(px(t.letterSpacing, tPx) / tPx)}em`,
90
+ t.letterSpacing.value !== 0 && TRACKED_LIGATURES,
91
+ `margin-block-end: ${round(px(t.gap, tPx) / tPx)}em`,
92
+ 'text-indent: 0',
93
+ ]));
94
+ out.push(rule(under('li > .pt-lbl:first-child'), [color(s.lists.color)]));
95
+ }
96
+ // --- paragraph styles ----------------------------------------------------
97
+ for (const s of config.paragraphStyles) {
98
+ const sPx = px(s.fontSize);
99
+ const cls = idOf('ps-', s.id);
100
+ out.push(rule(`p.${cls}, div.pt-verse.${cls}, div.pt-stanza.${cls}`, [
101
+ fam(s.fontFamily),
102
+ `font-size: ${round(sPx / bodyPx)}em`,
103
+ lh(s.lineHeight, sPx),
104
+ color(s.color),
105
+ `text-align: ${ALIGN[s.textAlign] ?? 'start'}`,
106
+ s.fontWeight !== body.fontWeight && `font-weight: ${s.fontWeight}`,
107
+ s.italic && 'font-style: italic',
108
+ s.smallCaps && 'font-variant: small-caps',
109
+ !s.hyphenation && 'hyphens: manual',
110
+ s.textTransform === 'uppercase' && 'text-transform: uppercase',
111
+ // The style's own tracking (#907), in its own ems.
112
+ s.letterSpacing && s.letterSpacing.value !== 0 && `letter-spacing: ${round(px(s.letterSpacing, sPx) / sPx)}em`,
113
+ s.letterSpacing && s.letterSpacing.value !== 0 && TRACKED_LIGATURES,
114
+ // The style's own line breaking between CJK characters (#463).
115
+ s.wordBreak && `word-break: ${s.wordBreak}`,
116
+ px(s.indent, sPx) > 0 && `margin-inline-start: ${round(px(s.indent, sPx) / sPx)}em`,
117
+ // 地からN字上げ (#424).
118
+ s.endIndent && px(s.endIndent, sPx) > 0 && `margin-inline-end: ${round(px(s.endIndent, sPx) / sPx)}em`,
119
+ `text-indent: ${round(px(s.firstLineIndent, sPx) / sPx)}em`,
120
+ px(s.marginTop, sPx) > 0 && `margin-block-start: ${round(px(s.marginTop, sPx) / sPx)}em`,
121
+ px(s.marginBottom, sPx) > 0 && `margin-block-end: ${round(px(s.marginBottom, sPx) / sPx)}em`,
122
+ ]));
123
+ // A hanging indent: the paragraph's turnovers padded in, its first line
124
+ // taken back to its own indent (the style's, when it sets one, #620).
125
+ // A poem's lines hang on their own (`.pt-verse-line`).
126
+ const hang = px(s.hangingIndent, sPx);
127
+ if (hang > 0) {
128
+ const first = s.ownFirstLineIndent ? px(s.firstLineIndent, sPx) : 0;
129
+ out.push(rule(`p.${cls}`, [`padding-inline-start: ${round(hang / sPx)}em`, `text-indent: ${round((first - hang) / sPx)}em`]));
130
+ }
131
+ }
132
+ return {};
133
+ }
134
+ //# sourceMappingURL=boxes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boxes.js","sourceRoot":"","sources":["../../../src/reflowable/css/boxes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { ColorValue, Dimension, ResolvedConfig } from 'postext';
2
+ import type { StylesheetOptions, CssRule } from './types.js';
3
+ /** What createFigureRules takes from bookStylesheet. */
4
+ export interface FigureRulesDeps {
5
+ config: ResolvedConfig;
6
+ options: StylesheetOptions;
7
+ dpi: number;
8
+ bodyPx: number;
9
+ fam: (f: string) => string;
10
+ em: (d: Dimension, basePx?: number) => string;
11
+ color: (c: ColorValue | undefined, prop?: string) => string | undefined;
12
+ px: (d: Dimension, basePx?: number) => number;
13
+ out: (string | CssRule)[];
14
+ }
15
+ export declare function createFigureRules(deps: FigureRulesDeps): {};
16
+ //# sourceMappingURL=figures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"figures.d.ts","sourceRoot":"","sources":["../../../src/reflowable/css/figures.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAA4B,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC/F,OAAO,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE7D,wDAAwD;AACxD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3B,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACxE,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C,GAAG,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;CAC3B;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,MAmKtD"}
@@ -0,0 +1,174 @@
1
+ // The book stylesheet's rules for figures, picture labels, comic pages,
2
+ // tables and captions (#1276: split out of css.ts).
3
+ import { rule, ALIGN, TRACKED_LIGATURES } from './helpers.js';
4
+ import { round, idOf } from '../inline.js';
5
+ export function createFigureRules(deps) {
6
+ const { config, options, dpi, bodyPx, fam, em, color, px, out } = deps;
7
+ // --- figures, tables, captions ------------------------------------------
8
+ const cap = config.captionStyle;
9
+ const capPx = px(cap.fontSize);
10
+ out.push(rule('figure', ['margin: 1em 0', 'text-align: center', 'page-break-inside: avoid', 'break-inside: avoid']));
11
+ out.push(rule('figure img', ['max-width: 100%', 'height: auto']));
12
+ // The labels drawn over a picture (#955): a box as wide as the image,
13
+ // the SVG laid over all of it.
14
+ if (options.labelLayers) {
15
+ out.push(rule('.pt-labelled', ['display: inline-block', 'position: relative', 'max-width: 100%', 'line-height: 0']));
16
+ out.push(rule('.pt-label-layer', ['position: absolute', 'left: 0', 'top: 0', 'width: 100%', 'height: 100%', 'pointer-events: none']));
17
+ }
18
+ out.push(rule('figure video', ['width: 100%', 'height: auto', 'background-color: #000']));
19
+ // Comic pages (#565): each panel's picture as wide as the text at most,
20
+ // its lettering under it as plain lines.
21
+ out.push(rule('.pt-comic', ['margin: 1em 0']));
22
+ out.push(rule('.pt-comic-panel', ['margin: 1em 0 0.5em']));
23
+ out.push(rule('.pt-comic-panel svg', ['display: block', 'max-width: 100%', 'height: auto', 'margin: 0 auto']));
24
+ out.push(rule('.pt-comic p', ['text-indent: 0', 'margin: 0.25em 0']));
25
+ out.push(rule('a.pt-video-link', ['display: block']));
26
+ out.push(rule('figcaption, caption', [
27
+ fam(cap.fontFamily),
28
+ `font-size: ${round(capPx / bodyPx)}em`,
29
+ color(cap.color),
30
+ `text-align: ${ALIGN[cap.align] ?? 'start'}`,
31
+ cap.descriptionItalic && 'font-style: italic',
32
+ cap.backgroundEnabled && color(cap.background, 'background-color'),
33
+ cap.backgroundEnabled && `padding: ${round(px(cap.padding, capPx) / capPx)}em`,
34
+ `margin: ${round(px(cap.gap, capPx) / capPx)}em 0`,
35
+ 'hyphens: manual',
36
+ ]));
37
+ out.push(rule('caption.pt-caption-below', ['caption-side: bottom']));
38
+ out.push(rule('.pt-label', [
39
+ color(cap.labelColor),
40
+ cap.labelBold ? 'font-weight: bold' : undefined,
41
+ `font-style: ${cap.labelItalic ? 'italic' : 'normal'}`,
42
+ ]));
43
+ const note = cap.note;
44
+ out.push(rule('.pt-note', [
45
+ `font-size: ${em(note.fontSize)}`,
46
+ color(note.color),
47
+ `font-style: ${note.italic ? 'italic' : 'normal'}`,
48
+ `text-align: ${ALIGN[note.align] ?? 'start'}`,
49
+ 'text-indent: 0',
50
+ ]));
51
+ out.push(rule('figcaption .pt-note', ['display: block', `margin-block-start: ${em(note.gap, px(cap.fontSize))}`]));
52
+ out.push(rule('.pt-missing', ['border: 1px dashed currentColor', 'padding: 1em', 'font-style: italic']));
53
+ const ts = config.tableStyle;
54
+ /** A rule `widthPx` (at the page dpi) wide, in CSS px. */
55
+ const line = (widthPx, c) => `${round(Math.max(0.5, widthPx * (96 / dpi)))}px solid ${c.hex}`;
56
+ /** What a table style decides, by element: on `table` for the document's
57
+ * style; on `table.pt-table-<id>` for a named one (#625), which then
58
+ * also undoes what the document's style (`reset`) sets and it does not. */
59
+ const tableStyleDecls = (st, reset) => {
60
+ const cellPx = px(st.bodyFontSize);
61
+ const booktabs = st.borders && st.rules === 'booktabs';
62
+ const border = st.borders && st.rules !== 'none' && !booktabs && px(st.borderWidth) > 0
63
+ ? line(px(st.borderWidth), st.borderColor)
64
+ : undefined;
65
+ const tableBorder = border !== undefined && (st.rules === 'outer' || st.rules === 'grid');
66
+ // Booktabs: a heavy rule above and under the table, a light one under
67
+ // the header and, under a head spanning columns above the last header
68
+ // row, a span rule, trimmed at both ends by a background line (a CSS
69
+ // border cannot be).
70
+ const width = (d) => {
71
+ const v = px(d, cellPx);
72
+ return booktabs && v > 0 ? Math.max(0.25, v) : 0;
73
+ };
74
+ const heavy = width(st.heavyRuleWidth);
75
+ const light = width(st.lightRuleWidth);
76
+ const span = st.spanRules !== 'none' ? width(st.spanRuleWidth) : 0;
77
+ const wasBooktabs = reset?.borders === true && reset.rules === 'booktabs';
78
+ const extra = [];
79
+ if (light > 0)
80
+ extra.push(['thead', [`border-bottom: ${line(light, st.borderColor)}`]]);
81
+ else if (wasBooktabs)
82
+ extra.push(['thead', ['border-bottom: none']]);
83
+ const spanSel = 'thead > tr:not(:last-child) > th[colspan]';
84
+ if (span > 0 && st.spanRules === 'trimmed') {
85
+ extra.push([spanSel, [
86
+ `background-image: linear-gradient(${st.borderColor.hex}, ${st.borderColor.hex})`,
87
+ 'background-repeat: no-repeat',
88
+ 'background-position: center bottom',
89
+ `background-size: calc(100% - ${round(2 * (px(st.spanRuleTrim, cellPx) / cellPx))}em) ${round(Math.max(0.5, span * (96 / dpi)))}px`,
90
+ ]]);
91
+ }
92
+ else {
93
+ if (span > 0)
94
+ extra.push([spanSel, [`border-bottom: ${line(span, st.borderColor)}`]]);
95
+ if (wasBooktabs && reset.spanRules === 'trimmed')
96
+ extra.push([spanSel, ['background-image: none']]);
97
+ }
98
+ if (st.groupRules && light > 0) {
99
+ extra.push(['tbody > tr.pt-group:not(:first-child) > *', [`border-top: ${line(light, st.borderColor)}`]]);
100
+ }
101
+ return {
102
+ table: [
103
+ reset && fam(st.bodyFontFamily),
104
+ reset && `font-size: ${round(cellPx / bodyPx)}em`,
105
+ reset && color(st.bodyColor),
106
+ tableBorder ? `border: ${border}` : reset && 'border: none',
107
+ heavy > 0 && `border-top: ${line(heavy, st.borderColor)}`,
108
+ heavy > 0 && `border-bottom: ${line(heavy, st.borderColor)}`,
109
+ ],
110
+ cells: [
111
+ reset && `padding: ${round(px(st.cellPadding, cellPx) / cellPx)}em`,
112
+ border && st.rules === 'grid' ? `border: ${border}` : undefined,
113
+ border && st.rules === 'horizontal' ? `border-block: ${border}` : undefined,
114
+ reset && !(border && (st.rules === 'grid' || st.rules === 'horizontal')) && 'border: none',
115
+ ],
116
+ td: [st.bodyBackgroundEnabled ? color(st.bodyBackground, 'background-color') : reset && 'background-color: transparent'],
117
+ alt: st.bodyAlternateBackgroundEnabled ? [color(st.bodyAlternateBackground, 'background-color')] : undefined,
118
+ th: [
119
+ fam(st.headerFontFamily),
120
+ `font-size: ${round(px(st.headerFontSize) / cellPx)}em`,
121
+ color(st.headerColor),
122
+ `font-weight: ${st.headerBold ? 'bold' : 'normal'}`,
123
+ st.headerItalic ? 'font-style: italic' : reset && 'font-style: normal',
124
+ st.headerTextTransform === 'uppercase' ? 'text-transform: uppercase' : reset && 'text-transform: none',
125
+ st.headerLetterSpacing.value !== 0 ? `letter-spacing: ${round(px(st.headerLetterSpacing, cellPx) / cellPx)}em` : reset && 'letter-spacing: normal',
126
+ st.headerLetterSpacing.value !== 0 && TRACKED_LIGATURES,
127
+ st.headerBackgroundEnabled ? color(st.headerBackground, 'background-color') : reset && 'background-color: transparent',
128
+ ],
129
+ extra,
130
+ };
131
+ };
132
+ const bodyCellPx = px(ts.bodyFontSize);
133
+ const base = tableStyleDecls(ts, undefined);
134
+ out.push(rule('.pt-table', ['margin: 1em 0', 'overflow-x: auto']));
135
+ out.push(rule('table', [
136
+ 'border-collapse: collapse',
137
+ 'margin: 0 auto',
138
+ 'max-width: 100%',
139
+ fam(ts.bodyFontFamily),
140
+ `font-size: ${round(bodyCellPx / bodyPx)}em`,
141
+ color(ts.bodyColor),
142
+ 'text-indent: 0',
143
+ 'hyphens: manual',
144
+ ...base.table,
145
+ ]));
146
+ out.push(rule('th, td', [
147
+ `padding: ${round(px(ts.cellPadding, bodyCellPx) / bodyCellPx)}em`,
148
+ 'vertical-align: top',
149
+ 'text-align: start',
150
+ ...base.cells,
151
+ ]));
152
+ out.push(rule('td', base.td));
153
+ if (base.alt)
154
+ out.push(rule('td.pt-alt', base.alt));
155
+ out.push(rule('th', base.th));
156
+ for (const [sel, decls] of base.extra)
157
+ out.push(rule(sel, decls));
158
+ for (const st of config.tableStyles ?? []) {
159
+ const table = `table.${idOf('pt-table-', st.id)}`;
160
+ const sub = (sel) => sel.split(', ').map((x) => `${table} ${x}`).join(', ');
161
+ const d = tableStyleDecls(st, ts);
162
+ out.push(rule(table, d.table));
163
+ out.push(rule(sub('th, td'), d.cells));
164
+ out.push(rule(sub('td'), d.td));
165
+ if (d.alt)
166
+ out.push(rule(sub('td.pt-alt'), d.alt));
167
+ out.push(rule(sub('th'), d.th));
168
+ for (const [sel, decls] of d.extra)
169
+ out.push(rule(sub(sel), decls));
170
+ }
171
+ out.push(rule('td img, th img', ['max-width: 100%', 'height: auto', 'display: block', 'margin: 0 auto']));
172
+ return {};
173
+ }
174
+ //# sourceMappingURL=figures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"figures.js","sourceRoot":"","sources":["../../../src/reflowable/css/figures.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { type ResolvedConfig } from 'postext';
2
+ import type { CssRule } from './types.js';
3
+ /** The declarations of the Japanese text of a book (#428): kinsoku and,
4
+ * with burasagari (`cjk.hangingPunctuation`, on by default in Japan),
5
+ * 、。,. hanging past the line end; and, in any book that asks for it,
6
+ * lines broken only between phrases (`cjk.wordBreak: 'keep-all'`, #463).
7
+ * None for other books. */
8
+ export declare function japaneseDecls(cjk: ResolvedConfig['cjk']): string[];
9
+ /** The emphasis-mark rule of a class `dotsClasses` gives: a shape and fill
10
+ * (`pt-dots-filled-sesame`), or a side (`pt-dots-over`: over horizontal
11
+ * text and right of vertical text; `pt-dots-under`: under and left). */
12
+ export declare function dotsRule(cls: string): CssRule | '';
13
+ /** A family as a CSS value: the family quoted, then a generic fallback. A
14
+ * feature family (#1237, `Lora@onum`) is its base family's. */
15
+ export declare function familyStack(family: string): string;
16
+ /** The family names the stylesheet asks for (to warn about missing
17
+ * faces). */
18
+ export declare function familyName(family: string): string;
19
+ /** Whether a configuration sets any style's figures (#1237): a family of
20
+ * it is a feature family. */
21
+ export declare function setsFigures(config: ResolvedConfig): boolean;
22
+ export declare const ALIGN: Record<string, string>;
23
+ /** Beside every `letter-spacing` (#703): letter-spacing never changes the
24
+ * glyphs. A reading system turns the common ligatures off where the
25
+ * letter-spacing is not zero; asked for as features they stay, as in the
26
+ * print layout, the fixed-layout pages and the PDF. */
27
+ export declare const TRACKED_LIGATURES = "font-feature-settings: 'liga' 1, 'clig' 1";
28
+ /** A rule from its declarations (the falsy ones left out); none when it
29
+ * declares nothing. */
30
+ export declare function rule(selector: string, decls: (string | false | undefined | null)[]): CssRule | '';
31
+ export declare function ruleText(r: CssRule): string;
32
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/reflowable/css/helpers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,cAAc,EAAyC,MAAM,SAAS,CAAC;AAErF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAQ1C;;;;4BAI4B;AAC5B,wBAAgB,aAAa,CAAC,GAAG,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG,MAAM,EAAE,CASlE;AAED;;yEAEyE;AACzE,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,EAAE,CAUlD;AAKD;gEACgE;AAChE,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAIlD;AAED;cACc;AACd,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;8BAC8B;AAC9B,wBAAgB,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAE3D;AAED,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAyE,CAAC;AAEnH;;;wDAGwD;AACxD,eAAO,MAAM,iBAAiB,8CAA8C,CAAC;AAE7E;wBACwB;AACxB,wBAAgB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,GAAG,OAAO,GAAG,EAAE,CAGjG;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAE3C"}