postext 1.49.0 → 1.50.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 (84) hide show
  1. package/dist/__tests__/composed/emptyTabFrame.test.d.ts +2 -0
  2. package/dist/__tests__/composed/emptyTabFrame.test.d.ts.map +1 -0
  3. package/dist/__tests__/composed/emptyTabFrame.test.js +122 -0
  4. package/dist/__tests__/composed/emptyTabFrame.test.js.map +1 -0
  5. package/dist/__tests__/composed/fenceCondition.test.d.ts +2 -0
  6. package/dist/__tests__/composed/fenceCondition.test.d.ts.map +1 -0
  7. package/dist/__tests__/composed/fenceCondition.test.js +171 -0
  8. package/dist/__tests__/composed/fenceCondition.test.js.map +1 -0
  9. package/dist/__tests__/composed/fixtures/moduleRows.d.ts +40 -0
  10. package/dist/__tests__/composed/fixtures/moduleRows.d.ts.map +1 -0
  11. package/dist/__tests__/composed/fixtures/moduleRows.js +65 -0
  12. package/dist/__tests__/composed/fixtures/moduleRows.js.map +1 -0
  13. package/dist/__tests__/composed/frameLooks.test.d.ts +2 -0
  14. package/dist/__tests__/composed/frameLooks.test.d.ts.map +1 -0
  15. package/dist/__tests__/composed/frameLooks.test.js +151 -0
  16. package/dist/__tests__/composed/frameLooks.test.js.map +1 -0
  17. package/dist/__tests__/composed/moduleRows.test.d.ts +2 -0
  18. package/dist/__tests__/composed/moduleRows.test.d.ts.map +1 -0
  19. package/dist/__tests__/composed/moduleRows.test.js +233 -0
  20. package/dist/__tests__/composed/moduleRows.test.js.map +1 -0
  21. package/dist/__tests__/composed/modules.test.js +3 -2
  22. package/dist/__tests__/composed/modules.test.js.map +1 -1
  23. package/dist/__tests__/composed/pillWord.test.d.ts +2 -0
  24. package/dist/__tests__/composed/pillWord.test.d.ts.map +1 -0
  25. package/dist/__tests__/composed/pillWord.test.js +128 -0
  26. package/dist/__tests__/composed/pillWord.test.js.map +1 -0
  27. package/dist/__tests__/exports.test.js +8 -0
  28. package/dist/__tests__/exports.test.js.map +1 -1
  29. package/dist/composed/modules.d.ts.map +1 -1
  30. package/dist/composed/modules.js +9 -2
  31. package/dist/composed/modules.js.map +1 -1
  32. package/dist/composed/reflowLog.js +1 -1
  33. package/dist/composed/reflowLog.js.map +1 -1
  34. package/dist/composed/slotChecks.d.ts +10 -0
  35. package/dist/composed/slotChecks.d.ts.map +1 -1
  36. package/dist/composed/slotChecks.js +39 -0
  37. package/dist/composed/slotChecks.js.map +1 -1
  38. package/dist/composed/templates.d.ts +14 -1
  39. package/dist/composed/templates.d.ts.map +1 -1
  40. package/dist/composed/templates.js +73 -5
  41. package/dist/composed/templates.js.map +1 -1
  42. package/dist/composed/types.d.ts +55 -4
  43. package/dist/composed/types.d.ts.map +1 -1
  44. package/dist/composed/validate.d.ts.map +1 -1
  45. package/dist/composed/validate.js +63 -6
  46. package/dist/composed/validate.js.map +1 -1
  47. package/dist/composed/wrap.d.ts.map +1 -1
  48. package/dist/composed/wrap.js +22 -5
  49. package/dist/composed/wrap.js.map +1 -1
  50. package/dist/configWarnings.d.ts +3 -1
  51. package/dist/configWarnings.d.ts.map +1 -1
  52. package/dist/configWarnings.js +32 -3
  53. package/dist/configWarnings.js.map +1 -1
  54. package/dist/defaults/headerFooter.d.ts +10 -0
  55. package/dist/defaults/headerFooter.d.ts.map +1 -1
  56. package/dist/defaults/headerFooter.js +21 -1
  57. package/dist/defaults/headerFooter.js.map +1 -1
  58. package/dist/design/fenceCondition.d.ts +45 -0
  59. package/dist/design/fenceCondition.d.ts.map +1 -0
  60. package/dist/design/fenceCondition.js +66 -0
  61. package/dist/design/fenceCondition.js.map +1 -0
  62. package/dist/design/layout.d.ts.map +1 -1
  63. package/dist/design/layout.js +33 -1
  64. package/dist/design/layout.js.map +1 -1
  65. package/dist/index.d.ts +5 -2
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +4 -1
  68. package/dist/index.js.map +1 -1
  69. package/dist/pipeline/composedLayout.d.ts +5 -1
  70. package/dist/pipeline/composedLayout.d.ts.map +1 -1
  71. package/dist/pipeline/composedLayout.js +309 -84
  72. package/dist/pipeline/composedLayout.js.map +1 -1
  73. package/dist/pipeline/config.d.ts.map +1 -1
  74. package/dist/pipeline/config.js +8 -1
  75. package/dist/pipeline/config.js.map +1 -1
  76. package/dist/pipeline/contentWarnings.d.ts.map +1 -1
  77. package/dist/pipeline/contentWarnings.js +8 -1
  78. package/dist/pipeline/contentWarnings.js.map +1 -1
  79. package/dist/types.d.ts +68 -2
  80. package/dist/types.d.ts.map +1 -1
  81. package/dist/vdt.d.ts +21 -2
  82. package/dist/vdt.d.ts.map +1 -1
  83. package/dist/vdt.js.map +1 -1
  84. package/package.json +1 -1
@@ -0,0 +1,45 @@
1
+ import type { PostextConfig } from '../types';
2
+ import type { DesignContextKind } from './placeholders';
3
+ import { type ConfigDesignSlotKind } from './slots';
4
+ /**
5
+ * Decoration drawn when the page fence says so (#1087). A design element of
6
+ * a running head or of a page template's decoration may carry `when: 'x'`
7
+ * (drawn only on a composed page whose `::::page{…}` fence sets `x`) or
8
+ * `unless: 'x'` (not drawn there). One shell then serves the front matter,
9
+ * which prints no folio, and the body, which does: the Markdown says what a
10
+ * page is, the config keeps the drawing.
11
+ */
12
+ /** Where a design slot reads the condition: running heads and a composed
13
+ * page's decoration. A heading's, a part's or a box's design ignores it. */
14
+ export declare const FENCE_CONDITION_CONTEXTS: ReadonlySet<DesignContextKind>;
15
+ /** The configuration slots whose elements read the condition (see
16
+ * {@link FENCE_CONDITION_CONTEXTS}). */
17
+ export declare const FENCE_CONDITION_SLOTS: ReadonlySet<ConfigDesignSlotKind>;
18
+ /** Whether a fence's attributes set `key`: written as a flag
19
+ * (`{frontmatter}`) or with any value but `false`. */
20
+ export declare function fenceSetsAttribute(attrs: Readonly<Record<string, string>> | undefined, key: string): boolean;
21
+ /** Whether an element with `when` / `unless` is drawn on a page whose fence
22
+ * has `attrs` (none: a page that is not composed). An element with
23
+ * neither is always drawn. */
24
+ export declare function fenceConditionMet(el: {
25
+ when?: string;
26
+ unless?: string;
27
+ }, attrs: Readonly<Record<string, string>> | undefined): boolean;
28
+ /** A condition written in the configuration. */
29
+ export interface FenceConditionUse {
30
+ /** The element's key: `pageTemplates[0].decoration.elements[2].when`. */
31
+ path: string;
32
+ condition: 'when' | 'unless';
33
+ attribute: string;
34
+ }
35
+ /** Every `when` / `unless` the configuration writes on an element of a slot
36
+ * that reads it, in `configDesignSlots` order. Pure. */
37
+ export declare function fenceConditionUses(config: PostextConfig | undefined): FenceConditionUse[];
38
+ /** The conditions on an attribute no page of the book sets
39
+ * (`conditionNeverMet`, an information note of `postext check`): a `when`
40
+ * element never drawn, an `unless` one always drawn. `attributes` are the
41
+ * attributes the book's page fences set (see {@link fenceSetsAttribute}). */
42
+ export declare function fenceConditionsNeverMet(config: PostextConfig | undefined, attributes: Iterable<string>): FenceConditionUse[];
43
+ /** The attributes a fence sets, for {@link fenceConditionsNeverMet}. */
44
+ export declare function fenceAttributesSet(attrs: Readonly<Record<string, string>> | undefined): string[];
45
+ //# sourceMappingURL=fenceCondition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fenceCondition.d.ts","sourceRoot":"","sources":["../../src/design/fenceCondition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAqB,KAAK,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEvE;;;;;;;GAOG;AAEH;6EAC6E;AAC7E,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,iBAAiB,CAA6C,CAAC;AAElH;yCACyC;AACzC,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,oBAAoB,CAA+C,CAAC;AAEpH;uDACuD;AACvD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAI5G;AAED;;+BAE+B;AAC/B,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EACtC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,GAClD,OAAO,CAIT;AAED,gDAAgD;AAChD,MAAM,WAAW,iBAAiB;IAChC,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;yDACyD;AACzD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,GAAG,iBAAiB,EAAE,CAczF;AAED;;;8EAG8E;AAC9E,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,iBAAiB,EAAE,CAG5H;AAED,wEAAwE;AACxE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,EAAE,CAEhG"}
@@ -0,0 +1,66 @@
1
+ import { configDesignSlots } from './slots';
2
+ /**
3
+ * Decoration drawn when the page fence says so (#1087). A design element of
4
+ * a running head or of a page template's decoration may carry `when: 'x'`
5
+ * (drawn only on a composed page whose `::::page{…}` fence sets `x`) or
6
+ * `unless: 'x'` (not drawn there). One shell then serves the front matter,
7
+ * which prints no folio, and the body, which does: the Markdown says what a
8
+ * page is, the config keeps the drawing.
9
+ */
10
+ /** Where a design slot reads the condition: running heads and a composed
11
+ * page's decoration. A heading's, a part's or a box's design ignores it. */
12
+ export const FENCE_CONDITION_CONTEXTS = new Set(['header', 'footer', 'composed']);
13
+ /** The configuration slots whose elements read the condition (see
14
+ * {@link FENCE_CONDITION_CONTEXTS}). */
15
+ export const FENCE_CONDITION_SLOTS = new Set(['header', 'footer', 'decoration']);
16
+ /** Whether a fence's attributes set `key`: written as a flag
17
+ * (`{frontmatter}`) or with any value but `false`. */
18
+ export function fenceSetsAttribute(attrs, key) {
19
+ if (!attrs || !Object.prototype.hasOwnProperty.call(attrs, key))
20
+ return false;
21
+ const value = attrs[key];
22
+ return typeof value === 'string' && value.trim().toLowerCase() !== 'false';
23
+ }
24
+ /** Whether an element with `when` / `unless` is drawn on a page whose fence
25
+ * has `attrs` (none: a page that is not composed). An element with
26
+ * neither is always drawn. */
27
+ export function fenceConditionMet(el, attrs) {
28
+ if (el.when !== undefined && !fenceSetsAttribute(attrs, el.when))
29
+ return false;
30
+ if (el.unless !== undefined && fenceSetsAttribute(attrs, el.unless))
31
+ return false;
32
+ return true;
33
+ }
34
+ /** Every `when` / `unless` the configuration writes on an element of a slot
35
+ * that reads it, in `configDesignSlots` order. Pure. */
36
+ export function fenceConditionUses(config) {
37
+ const out = [];
38
+ for (const slot of configDesignSlots(config)) {
39
+ if (!FENCE_CONDITION_SLOTS.has(slot.kind))
40
+ continue;
41
+ slot.slot.elements.forEach((el, i) => {
42
+ const e = el;
43
+ if (!e || typeof e !== 'object')
44
+ return;
45
+ for (const condition of ['when', 'unless']) {
46
+ const v = e[condition];
47
+ if (typeof v === 'string' && v.trim() !== '')
48
+ out.push({ path: `${slot.path}.elements[${i}].${condition}`, condition, attribute: v.trim() });
49
+ }
50
+ });
51
+ }
52
+ return out;
53
+ }
54
+ /** The conditions on an attribute no page of the book sets
55
+ * (`conditionNeverMet`, an information note of `postext check`): a `when`
56
+ * element never drawn, an `unless` one always drawn. `attributes` are the
57
+ * attributes the book's page fences set (see {@link fenceSetsAttribute}). */
58
+ export function fenceConditionsNeverMet(config, attributes) {
59
+ const set = new Set(attributes);
60
+ return fenceConditionUses(config).filter((u) => !set.has(u.attribute));
61
+ }
62
+ /** The attributes a fence sets, for {@link fenceConditionsNeverMet}. */
63
+ export function fenceAttributesSet(attrs) {
64
+ return Object.keys(attrs ?? {}).filter((k) => fenceSetsAttribute(attrs, k));
65
+ }
66
+ //# sourceMappingURL=fenceCondition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fenceCondition.js","sourceRoot":"","sources":["../../src/design/fenceCondition.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/design/layout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/design/layout.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@ import { BREAKING_SPACE_RUNS_SPLIT_RE, NO_BREAK_SPACES, isBreakingSpaceRun } fro
18
18
  import { LEADER_MARK, resolveDesignResourceId, resolveDesignText, } from './placeholders';
19
19
  import { fitLeader } from '../measure/leader';
20
20
  import { layoutConnector } from './connector';
21
+ import { FENCE_CONDITION_CONTEXTS, fenceConditionMet } from './fenceCondition';
21
22
  import { repeatInstance } from '../composed/templates';
22
23
  import { hasJoiningScript, joinsWithNext } from '../bidi';
23
24
  import { designBaseDirection, directRuns, directedTextWidth, measuresRunsAsPainted, paintedRunWidth } from './bidiText';
@@ -901,6 +902,37 @@ function layoutConnectorElement(el, resolvedGeo, frames, issues, dpi, startRight
901
902
  }
902
903
  return layoutConnector(el, from, ends, { dpi, startRight });
903
904
  }
905
+ /** The elements a page's fence lets draw (#1087): a running head's or a
906
+ * composed page's decoration leaves out an element whose `when` the fence
907
+ * does not set or whose `unless` it does, and with it every element placed
908
+ * on it or sized to it (as a frame that takes no room drops what hangs
909
+ * from it). Other slots (heading, part and box designs) ignore the
910
+ * condition. The same array when nothing is left out. */
911
+ function drawnOnFence(elements, placeholders) {
912
+ if (!FENCE_CONDITION_CONTEXTS.has(placeholders.kind))
913
+ return elements;
914
+ if (!elements.some((el) => el.when !== undefined || el.unless !== undefined))
915
+ return elements;
916
+ const dropped = new Set();
917
+ for (const el of elements)
918
+ if (!fenceConditionMet(el, placeholders.pageAttrs))
919
+ dropped.add(el.id);
920
+ if (dropped.size === 0)
921
+ return elements;
922
+ for (let changed = true; changed;) {
923
+ changed = false;
924
+ for (const el of elements) {
925
+ if (dropped.has(el.id) || el.kind === 'connector')
926
+ continue;
927
+ const target = anchorTargetId(el.placement);
928
+ if ((target !== undefined && dropped.has(target)) || sizeTargetIds(el.placement).some((id) => dropped.has(id))) {
929
+ dropped.add(el.id);
930
+ changed = true;
931
+ }
932
+ }
933
+ }
934
+ return elements.filter((el) => !dropped.has(el.id));
935
+ }
904
936
  /** Layout one design slot against its container. */
905
937
  export function layoutDesignSlot(slot, context, pageIndex) {
906
938
  const issues = [];
@@ -913,7 +945,7 @@ export function layoutDesignSlot(slot, context, pageIndex) {
913
945
  // Filter by parity and page role first; then let the current part's
914
946
  // palette overrides recolour the palette-linked colours.
915
947
  const overrides = context.placeholders.partPaletteByPageIndex?.[context.placeholders.page.index];
916
- const candidates = slot.elements
948
+ const candidates = drawnOnFence(slot.elements, context.placeholders)
917
949
  .filter((el) => pageMatchesParity(pageIndex, el.parity) && pageMatchesRole(el.pages, context.pageRole))
918
950
  .map((el) => (overrides && Object.keys(overrides).length > 0 ? applyPaletteOverrides(el, overrides) : el))
919
951
  // Start and end edges read as the physical ones of this page (#936).