@bendyline/squisq 2.11.8 → 2.11.10
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/{Doc-CynsGqL4.d.ts → Doc-BWtfp7dT.d.ts} +218 -3
- package/dist/{ImageEditDoc-BVZe_5y4.d.ts → ImageEditDoc-CYRQK8so.d.ts} +1 -1
- package/dist/{chunk-YNO6JV36.js → chunk-2SRF5III.js} +4 -4
- package/dist/{chunk-VU4T74LI.js → chunk-7WN7DDMI.js} +1 -1
- package/dist/{chunk-5FBI3ZW4.js → chunk-BVQZCKXN.js} +2 -2
- package/dist/{chunk-JM2QARY2.js → chunk-CPQCZUBW.js} +311 -19
- package/dist/{chunk-JJO6JFNZ.js → chunk-HVJ6VFDX.js} +2 -2
- package/dist/{chunk-Y4D6TDZT.js → chunk-PFH3WV6J.js} +145 -3
- package/dist/{chunk-ZEONJCP3.js → chunk-PWCIJHZH.js} +1 -1
- package/dist/{chunk-KFZOCWPK.js → chunk-RV5OOBSV.js} +2 -2
- package/dist/{chunk-RMCUZDW5.js → chunk-TYW5VMNP.js} +366 -111
- package/dist/doc/index.d.ts +108 -7
- package/dist/doc/index.js +31 -5
- package/dist/fence/index.d.ts +1 -1
- package/dist/generate/index.d.ts +1 -1
- package/dist/imageEdit/index.d.ts +3 -3
- package/dist/index.d.ts +5 -5
- package/dist/index.js +49 -9
- package/dist/jsonForm/index.d.ts +1 -1
- package/dist/jsonForm/index.js +4 -4
- package/dist/{materializePageSection-CAJoa8fh.d.ts → materializePageSection-Db7pABI0.d.ts} +6 -3
- package/dist/mediaEdit/index.d.ts +2 -2
- package/dist/narration/index.d.ts +1 -1
- package/dist/narration/index.js +4 -4
- package/dist/schemas/index.d.ts +4 -4
- package/dist/schemas/index.js +17 -3
- package/dist/{themeLibrary-z7t3x5CU.d.ts → themeLibrary-Bphz1CRp.d.ts} +1 -1
- package/dist/timing/index.d.ts +1 -1
- package/dist/transform/index.d.ts +2 -2
- package/dist/transform/index.js +3 -3
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
buildNarrationScript,
|
|
3
3
|
parseNarrationTimingJson
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-PWCIJHZH.js";
|
|
5
5
|
import {
|
|
6
6
|
SHAPE_NAMES,
|
|
7
7
|
buildChartData,
|
|
@@ -32,7 +32,7 @@ import {
|
|
|
32
32
|
templateRegistry,
|
|
33
33
|
writeCustomTemplatesToFrontmatter,
|
|
34
34
|
writeCustomThemesToFrontmatter
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-TYW5VMNP.js";
|
|
36
36
|
import {
|
|
37
37
|
ASCII_TREE_VOCAB,
|
|
38
38
|
ASCII_VOCAB,
|
|
@@ -56,7 +56,7 @@ import {
|
|
|
56
56
|
import {
|
|
57
57
|
defaultPageStyle,
|
|
58
58
|
resolveMediaSchedule
|
|
59
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-2SRF5III.js";
|
|
60
60
|
import {
|
|
61
61
|
DEFAULT_THEME,
|
|
62
62
|
FRONTMATTER_CUSTOM_TEMPLATES_KEY,
|
|
@@ -73,7 +73,7 @@ import {
|
|
|
73
73
|
resolveFontFamily,
|
|
74
74
|
resolveTheme,
|
|
75
75
|
withAlpha
|
|
76
|
-
} from "./chunk-
|
|
76
|
+
} from "./chunk-PFH3WV6J.js";
|
|
77
77
|
import {
|
|
78
78
|
createMediaTimeMap
|
|
79
79
|
} from "./chunk-JSGIWW35.js";
|
|
@@ -133,10 +133,63 @@ function getAnimationClassName(animation) {
|
|
|
133
133
|
return "anim-panRight";
|
|
134
134
|
case "typewriter":
|
|
135
135
|
return "anim-typewriter";
|
|
136
|
+
case "fadeInUp":
|
|
137
|
+
return "anim-fadeInUp";
|
|
138
|
+
case "slideIn":
|
|
139
|
+
return `anim-slideIn-${animation.origin && animation.origin !== "center" ? animation.origin : "left"}`;
|
|
140
|
+
case "wordReveal":
|
|
141
|
+
return "anim-wordReveal";
|
|
142
|
+
case "countUp":
|
|
143
|
+
return "anim-countUp";
|
|
144
|
+
case "drawOn":
|
|
145
|
+
return "anim-drawOn";
|
|
146
|
+
case "grow":
|
|
147
|
+
return growClassName(animation.origin);
|
|
148
|
+
case "reveal":
|
|
149
|
+
if (animation.shape === "iris") return "anim-reveal-iris";
|
|
150
|
+
return `anim-reveal-${animation.origin && animation.origin !== "center" ? animation.origin : "left"}`;
|
|
151
|
+
case "drift":
|
|
152
|
+
return "anim-drift";
|
|
153
|
+
case "tween":
|
|
154
|
+
return "anim-tween";
|
|
136
155
|
default:
|
|
137
156
|
return "";
|
|
138
157
|
}
|
|
139
158
|
}
|
|
159
|
+
function growClassName(origin) {
|
|
160
|
+
switch (origin) {
|
|
161
|
+
case "left":
|
|
162
|
+
case "right":
|
|
163
|
+
return "anim-grow-x";
|
|
164
|
+
case "top":
|
|
165
|
+
case "bottom":
|
|
166
|
+
return "anim-grow-y";
|
|
167
|
+
default:
|
|
168
|
+
return "anim-grow";
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
function transformOriginFor(origin) {
|
|
172
|
+
switch (origin) {
|
|
173
|
+
case "left":
|
|
174
|
+
return "left center";
|
|
175
|
+
case "right":
|
|
176
|
+
return "right center";
|
|
177
|
+
case "top":
|
|
178
|
+
return "center top";
|
|
179
|
+
case "bottom":
|
|
180
|
+
return "center bottom";
|
|
181
|
+
default:
|
|
182
|
+
return "center center";
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
function motionStateTransform(state) {
|
|
186
|
+
if (!state) return "none";
|
|
187
|
+
const parts = [];
|
|
188
|
+
if (state.x || state.y) parts.push(`translate(${state.x ?? 0}px, ${state.y ?? 0}px)`);
|
|
189
|
+
if (state.rotate) parts.push(`rotate(${state.rotate}deg)`);
|
|
190
|
+
if (state.scale != null && state.scale !== 1) parts.push(`scale(${state.scale})`);
|
|
191
|
+
return parts.length > 0 ? parts.join(" ") : "none";
|
|
192
|
+
}
|
|
140
193
|
function getAnimationCSSVars(animation) {
|
|
141
194
|
const vars = {};
|
|
142
195
|
if (animation.duration !== void 0) {
|
|
@@ -148,8 +201,32 @@ function getAnimationCSSVars(animation) {
|
|
|
148
201
|
if (animation.easing) {
|
|
149
202
|
vars["--anim-easing"] = animation.easing;
|
|
150
203
|
}
|
|
204
|
+
if (animation.type === "grow" || animation.type === "reveal") {
|
|
205
|
+
vars["--anim-origin"] = transformOriginFor(animation.origin);
|
|
206
|
+
}
|
|
207
|
+
if (animation.type === "wordReveal") {
|
|
208
|
+
vars["--anim-stagger"] = `${animation.stagger ?? DEFAULT_WORD_STAGGER}s`;
|
|
209
|
+
}
|
|
210
|
+
if (animation.type === "tween") {
|
|
211
|
+
vars["--tween-from-transform"] = motionStateTransform(animation.fromState);
|
|
212
|
+
vars["--tween-to-transform"] = motionStateTransform(animation.toState);
|
|
213
|
+
vars["--tween-from-opacity"] = `${animation.fromState?.opacity ?? 1}`;
|
|
214
|
+
vars["--tween-to-opacity"] = `${animation.toState?.opacity ?? 1}`;
|
|
215
|
+
}
|
|
151
216
|
return vars;
|
|
152
217
|
}
|
|
218
|
+
var DEFAULT_WORD_STAGGER = 0.08;
|
|
219
|
+
function wordRevealDelay(animation, index) {
|
|
220
|
+
const base = animation.delay ?? 0;
|
|
221
|
+
const times = animation.wordTimes;
|
|
222
|
+
if (times && times.length > 0) {
|
|
223
|
+
if (index < times.length) return times[index];
|
|
224
|
+
const last = times[times.length - 1];
|
|
225
|
+
const step = times.length > 1 ? Math.max(0.02, last - times[times.length - 2]) : animation.stagger ?? DEFAULT_WORD_STAGGER;
|
|
226
|
+
return last + step * (index - times.length + 1);
|
|
227
|
+
}
|
|
228
|
+
return base + (animation.stagger ?? DEFAULT_WORD_STAGGER) * index;
|
|
229
|
+
}
|
|
153
230
|
function getDefaultAnimationDuration(type) {
|
|
154
231
|
switch (type) {
|
|
155
232
|
case "slowZoom":
|
|
@@ -165,6 +242,19 @@ function getDefaultAnimationDuration(type) {
|
|
|
165
242
|
case "zoomIn":
|
|
166
243
|
case "zoomOut":
|
|
167
244
|
return 0.5;
|
|
245
|
+
case "fadeInUp":
|
|
246
|
+
case "slideIn":
|
|
247
|
+
case "reveal":
|
|
248
|
+
return 0.7;
|
|
249
|
+
case "grow":
|
|
250
|
+
case "drawOn":
|
|
251
|
+
return 1;
|
|
252
|
+
case "countUp":
|
|
253
|
+
return 1.5;
|
|
254
|
+
case "wordReveal":
|
|
255
|
+
return 0.4;
|
|
256
|
+
case "drift":
|
|
257
|
+
return 12;
|
|
168
258
|
default:
|
|
169
259
|
return 1;
|
|
170
260
|
}
|
|
@@ -1472,10 +1562,42 @@ var sectionExtractors = {
|
|
|
1472
1562
|
};
|
|
1473
1563
|
|
|
1474
1564
|
// src/doc/page/materializePageSection.ts
|
|
1475
|
-
function resolvePageStyle(theme, hints) {
|
|
1565
|
+
function resolvePageStyle(theme, hints, variant = "page") {
|
|
1476
1566
|
const base = theme?.pageStyle ?? defaultPageStyle(theme ?? DEFAULT_THEME);
|
|
1477
|
-
|
|
1478
|
-
return
|
|
1567
|
+
const spaced = !hints?.spacing || hints.spacing === base.tokens.sectionSpacing ? base : { ...base, tokens: { ...base.tokens, sectionSpacing: hints.spacing } };
|
|
1568
|
+
return variant === "document" ? documentPageStyle(spaced) : spaced;
|
|
1569
|
+
}
|
|
1570
|
+
function withoutBackgrounds(overrides) {
|
|
1571
|
+
const out = {};
|
|
1572
|
+
for (const [key, override] of Object.entries(overrides)) {
|
|
1573
|
+
if (!override) continue;
|
|
1574
|
+
const { background: _background, ...rest } = override;
|
|
1575
|
+
out[key] = rest;
|
|
1576
|
+
}
|
|
1577
|
+
return out;
|
|
1578
|
+
}
|
|
1579
|
+
function documentPageStyle(style) {
|
|
1580
|
+
return {
|
|
1581
|
+
family: style.family,
|
|
1582
|
+
tokens: {
|
|
1583
|
+
...style.tokens,
|
|
1584
|
+
cornerRadius: Math.min(style.tokens.cornerRadius, 6),
|
|
1585
|
+
sectionSpacing: "compact",
|
|
1586
|
+
divider: "none",
|
|
1587
|
+
backgroundRhythm: "flat",
|
|
1588
|
+
headingTreatment: { eyebrow: "kicker", scale: "regular", case: "none", underline: "none" },
|
|
1589
|
+
shadow: "none",
|
|
1590
|
+
quoteMark: "accent-bar",
|
|
1591
|
+
numeralStyle: "plain",
|
|
1592
|
+
pattern: "none"
|
|
1593
|
+
},
|
|
1594
|
+
...style.sections ? { sections: withoutBackgrounds(style.sections) } : {},
|
|
1595
|
+
...style.templates ? { templates: withoutBackgrounds(style.templates) } : {},
|
|
1596
|
+
accentRotation: { strategy: "primary-only" }
|
|
1597
|
+
};
|
|
1598
|
+
}
|
|
1599
|
+
function isAutoPickedOnly(block) {
|
|
1600
|
+
return block.autoTemplate === true && !block.sourceHeading?.templateAnnotation?.template && !block.promotedBodyAnnotation;
|
|
1479
1601
|
}
|
|
1480
1602
|
var ACCENT_KINDS = /* @__PURE__ */ new Set([
|
|
1481
1603
|
"banner",
|
|
@@ -1547,8 +1669,9 @@ function preserveRichContent(block, draft, widgetFenceLangs) {
|
|
|
1547
1669
|
const richContent = unconsumedRichContent(block, draft, widgetFenceLangs);
|
|
1548
1670
|
return richContent ? { ...draft, slots: { ...draft.slots, richContent } } : draft;
|
|
1549
1671
|
}
|
|
1550
|
-
function draftForBlock(block, viewport, customTemplates, widgetFenceLangs) {
|
|
1551
|
-
|
|
1672
|
+
function draftForBlock(block, viewport, customTemplates, widgetFenceLangs, variant = "page") {
|
|
1673
|
+
const autoPickedInDocument = variant === "document" && isAutoPickedOnly(block);
|
|
1674
|
+
if (isTemplatedPageBlock(block) && !autoPickedInDocument) {
|
|
1552
1675
|
const resolved = resolvePageBlock(block);
|
|
1553
1676
|
const templateName = resolved.templateName;
|
|
1554
1677
|
const extractor = sectionExtractors[templateName];
|
|
@@ -1684,8 +1807,14 @@ function rotationSchemeNames(pageStyle, theme) {
|
|
|
1684
1807
|
function materializePageSection(block, options = {}) {
|
|
1685
1808
|
const theme = options.theme ?? DEFAULT_THEME;
|
|
1686
1809
|
const viewport = options.viewport ?? VIEWPORT_PRESETS.landscape;
|
|
1687
|
-
const pageStyle = resolvePageStyle(theme);
|
|
1688
|
-
const result = draftForBlock(
|
|
1810
|
+
const pageStyle = resolvePageStyle(theme, void 0, options.variant);
|
|
1811
|
+
const result = draftForBlock(
|
|
1812
|
+
block,
|
|
1813
|
+
viewport,
|
|
1814
|
+
options.customTemplates,
|
|
1815
|
+
options.widgetFenceLangs,
|
|
1816
|
+
options.variant
|
|
1817
|
+
);
|
|
1689
1818
|
const override = overrideFor(pageStyle, result.draft.kind, result.templateName);
|
|
1690
1819
|
const background = override?.background ?? (result.draft.mediaBackground ? "media" : "base");
|
|
1691
1820
|
const emphasis = override?.emphasis ?? result.draft.emphasis ?? "standard";
|
|
@@ -1709,14 +1838,39 @@ function materializePageSection(block, options = {}) {
|
|
|
1709
1838
|
diagnostic: result.diagnostic
|
|
1710
1839
|
};
|
|
1711
1840
|
}
|
|
1841
|
+
function dedupeDocumentMasthead(seeds) {
|
|
1842
|
+
const cover = seeds[0];
|
|
1843
|
+
const first = seeds[1];
|
|
1844
|
+
const slots = { ...first.draft.slots };
|
|
1845
|
+
if ((slots.headingLevel ?? 1) > 1) {
|
|
1846
|
+
seeds.splice(0, 1);
|
|
1847
|
+
return;
|
|
1848
|
+
}
|
|
1849
|
+
const markdown = slots.body?.markdown;
|
|
1850
|
+
const lead = markdown?.[0];
|
|
1851
|
+
const subtitle = cover.draft.slots.subtitle;
|
|
1852
|
+
if (subtitle && lead?.type === "paragraph" && extractPlainText(lead) === subtitle) {
|
|
1853
|
+
const { subtitle: _mirrored, ...coverSlots } = cover.draft.slots;
|
|
1854
|
+
cover.draft = { ...cover.draft, slots: coverSlots };
|
|
1855
|
+
}
|
|
1856
|
+
delete slots.title;
|
|
1857
|
+
delete slots.headingLevel;
|
|
1858
|
+
if (markdown && markdown.length > 0) {
|
|
1859
|
+
first.draft = { ...first.draft, slots };
|
|
1860
|
+
} else {
|
|
1861
|
+
seeds.splice(1, 1);
|
|
1862
|
+
}
|
|
1863
|
+
}
|
|
1712
1864
|
function materializePageSections(doc, options = {}) {
|
|
1713
1865
|
const theme = options.theme ?? DEFAULT_THEME;
|
|
1714
1866
|
const viewport = options.viewport ?? VIEWPORT_PRESETS.landscape;
|
|
1715
|
-
const
|
|
1867
|
+
const variant = options.variant ?? "page";
|
|
1868
|
+
const pageStyle = resolvePageStyle(theme, options.transformPage, variant);
|
|
1716
1869
|
const customTemplates = options.customTemplates ?? doc.customTemplates;
|
|
1717
1870
|
const seeds = [];
|
|
1718
1871
|
if (options.cover) {
|
|
1719
1872
|
const cover = options.cover;
|
|
1873
|
+
const heroSrc = variant === "document" ? void 0 : cover.heroSrc;
|
|
1720
1874
|
seeds.push({
|
|
1721
1875
|
draft: {
|
|
1722
1876
|
kind: "hero",
|
|
@@ -1724,16 +1878,16 @@ function materializePageSections(doc, options = {}) {
|
|
|
1724
1878
|
slots: {
|
|
1725
1879
|
title: cover.title,
|
|
1726
1880
|
subtitle: cover.subtitle,
|
|
1727
|
-
media:
|
|
1881
|
+
media: heroSrc ? {
|
|
1728
1882
|
type: "image",
|
|
1729
|
-
src:
|
|
1883
|
+
src: heroSrc,
|
|
1730
1884
|
alt: cover.heroAlt ?? "",
|
|
1731
1885
|
credit: cover.heroCredit,
|
|
1732
1886
|
license: cover.heroLicense
|
|
1733
1887
|
} : void 0
|
|
1734
1888
|
},
|
|
1735
1889
|
emphasis: "lead",
|
|
1736
|
-
mediaBackground: !!
|
|
1890
|
+
mediaBackground: !!heroSrc
|
|
1737
1891
|
},
|
|
1738
1892
|
source: "cover",
|
|
1739
1893
|
depth: 0
|
|
@@ -1741,7 +1895,13 @@ function materializePageSections(doc, options = {}) {
|
|
|
1741
1895
|
}
|
|
1742
1896
|
const walk = (blocks, depth) => {
|
|
1743
1897
|
for (const block of blocks) {
|
|
1744
|
-
const result = draftForBlock(
|
|
1898
|
+
const result = draftForBlock(
|
|
1899
|
+
block,
|
|
1900
|
+
viewport,
|
|
1901
|
+
customTemplates,
|
|
1902
|
+
options.widgetFenceLangs,
|
|
1903
|
+
variant
|
|
1904
|
+
);
|
|
1745
1905
|
seeds.push({ ...result, block, depth });
|
|
1746
1906
|
const consumed = result.draft.kind === "canvas-embed" && isContainerTemplate(result.templateName);
|
|
1747
1907
|
if (!consumed && block.children && block.children.length > 0) {
|
|
@@ -1764,6 +1924,8 @@ function materializePageSections(doc, options = {}) {
|
|
|
1764
1924
|
};
|
|
1765
1925
|
}
|
|
1766
1926
|
seeds.splice(0, 1);
|
|
1927
|
+
} else if (variant === "document" && first.draft.kind === "prose" && first.draft.slots.title === cover.title) {
|
|
1928
|
+
dedupeDocumentMasthead(seeds);
|
|
1767
1929
|
} else if (first.draft.kind === "prose" && first.draft.slots.title === cover.title) {
|
|
1768
1930
|
const slots = { ...first.draft.slots };
|
|
1769
1931
|
delete slots.title;
|
|
@@ -1921,6 +2083,7 @@ var NARROW_RULES = `
|
|
|
1921
2083
|
.squisq-page-feature { grid-template-columns: 1fr; }
|
|
1922
2084
|
.squisq-page-feature--media-right .squisq-page-feature-media { order: 0; }
|
|
1923
2085
|
.squisq-page-stats { flex-direction: column; gap: 1.75rem; }
|
|
2086
|
+
.squisq-page-stats > .squisq-page-stat { flex: 0 0 auto; max-width: none; }
|
|
1924
2087
|
.squisq-page-cards { grid-template-columns: 1fr; }
|
|
1925
2088
|
.squisq-page-gallery { grid-template-columns: repeat(2, 1fr); }
|
|
1926
2089
|
.squisq-page-milestone { grid-template-columns: 1fr; gap: 0.5rem; }
|
|
@@ -2288,10 +2451,14 @@ var PAGE_BASE_CSS = `
|
|
|
2288
2451
|
font-size: 1.15em;
|
|
2289
2452
|
}
|
|
2290
2453
|
/* Item bodies are rendered markdown: neutralize UA paragraph margins (which
|
|
2291
|
-
would otherwise push the first line below the marker) and space blocks.
|
|
2454
|
+
would otherwise push the first line below the marker) and space blocks.
|
|
2455
|
+
MarkdownRenderer wraps its blocks in a .squisq-md div, so the paragraphs
|
|
2456
|
+
are grandchildren. */
|
|
2292
2457
|
.squisq-page-item-body { min-width: 0; }
|
|
2293
|
-
.squisq-page-item-body >
|
|
2294
|
-
.squisq-page-item-body >
|
|
2458
|
+
.squisq-page-item-body > *,
|
|
2459
|
+
.squisq-page-item-body > .squisq-md > * { margin: 0; }
|
|
2460
|
+
.squisq-page-item-body > * + *,
|
|
2461
|
+
.squisq-page-item-body > .squisq-md > * + * { margin-top: 0.6em; }
|
|
2295
2462
|
.squisq-page[data-numerals='mono'] .squisq-page-items li::before { font-family: var(--squisq-page-mono-font); }
|
|
2296
2463
|
.squisq-page-items-title { font-size: 1.9rem; }
|
|
2297
2464
|
|
|
@@ -2439,6 +2606,127 @@ var PAGE_BASE_CSS = `
|
|
|
2439
2606
|
.squisq-page--thumbnail-images .squisq-page-prose img,
|
|
2440
2607
|
.squisq-page--thumbnail-images .squisq-page-figure img { max-width: 100px; max-height: 100px; object-fit: cover; }
|
|
2441
2608
|
|
|
2609
|
+
/* \u2500\u2500 Document variant \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
2610
|
+
/* The working-document register (reports, notes, previews). Sizes are in em
|
|
2611
|
+
* so one host font-size scales the whole page, and a section's title is
|
|
2612
|
+
* sized by its markdown heading level (data-heading-level), never by which
|
|
2613
|
+
* section kind happens to carry it. Rules that must beat a page rule keyed
|
|
2614
|
+
* on a token attribute repeat .squisq-page for specificity. */
|
|
2615
|
+
.squisq-page--document { --squisq-page-divider-color: color-mix(in srgb, var(--squisq-page-text) 14%, transparent); }
|
|
2616
|
+
.squisq-page--document .squisq-page-section { padding-block: 0.4em; }
|
|
2617
|
+
.squisq-page--document .squisq-page-section .squisq-page-section-inner { max-width: var(--squisq-page-content-max); }
|
|
2618
|
+
.squisq-page--document > .squisq-page-section:is([data-heading-level='3'], [data-heading-level='4'], [data-heading-level='5'], [data-heading-level='6']) { padding-top: 1em; }
|
|
2619
|
+
/* A top-level heading opens with a hairline set in the text column, like the
|
|
2620
|
+
* masthead's, rather than a full-bleed section border. */
|
|
2621
|
+
.squisq-page.squisq-page--document > .squisq-page-section:is([data-heading-level='1'], [data-heading-level='2']) { margin-top: 0.8em; }
|
|
2622
|
+
.squisq-page.squisq-page--document > .squisq-page-section:is([data-heading-level='1'], [data-heading-level='2']) > .squisq-page-section-inner::before {
|
|
2623
|
+
content: '';
|
|
2624
|
+
display: block;
|
|
2625
|
+
margin-bottom: 1.1em;
|
|
2626
|
+
border-top: 1px solid var(--squisq-page-divider-color);
|
|
2627
|
+
}
|
|
2628
|
+
.squisq-page.squisq-page--document > .squisq-page-section:first-of-type,
|
|
2629
|
+
.squisq-page.squisq-page--document > .squisq-page-section--hero + .squisq-page-section { margin-top: 0; }
|
|
2630
|
+
.squisq-page.squisq-page--document > .squisq-page-section:first-of-type > .squisq-page-section-inner::before,
|
|
2631
|
+
.squisq-page.squisq-page--document > .squisq-page-section--hero + .squisq-page-section > .squisq-page-section-inner::before { display: none; }
|
|
2632
|
+
.squisq-page--document > .squisq-page-section:first-of-type { padding-top: 1em; }
|
|
2633
|
+
.squisq-page--document > .squisq-page-section:last-of-type { padding-bottom: 1.25em; }
|
|
2634
|
+
/* Thin margins hug the host's container, which supplies the outer inset. */
|
|
2635
|
+
.squisq-page--document.squisq-page--thin > .squisq-page-section:first-of-type { padding-top: 0; }
|
|
2636
|
+
.squisq-page--document.squisq-page--thin > .squisq-page-section:last-of-type { padding-bottom: 0; }
|
|
2637
|
+
|
|
2638
|
+
/* Masthead: the cover as a left-aligned document title over a hairline. */
|
|
2639
|
+
.squisq-page.squisq-page--document .squisq-page-section--hero { padding-block: 1em 0.6em; }
|
|
2640
|
+
.squisq-page.squisq-page--document .squisq-page-hero-body {
|
|
2641
|
+
text-align: left;
|
|
2642
|
+
padding-bottom: 0.55em;
|
|
2643
|
+
border-bottom: 1px solid var(--squisq-page-divider-color);
|
|
2644
|
+
}
|
|
2645
|
+
.squisq-page.squisq-page--document .squisq-page-hero-title { font-size: 1.6em; line-height: 1.2; letter-spacing: normal; text-transform: none; }
|
|
2646
|
+
.squisq-page.squisq-page--document .squisq-page-hero-subtitle { margin: 0.35em 0 0; font-size: 1em; max-width: none; }
|
|
2647
|
+
.squisq-page.squisq-page--document .squisq-page-section--hero-media { min-height: 12em; }
|
|
2648
|
+
.squisq-page.squisq-page--document .squisq-page-section--hero-media .squisq-page-section-inner { padding-block: 1.25em; }
|
|
2649
|
+
.squisq-page.squisq-page--document .squisq-page-section--hero-media .squisq-page-hero-body { border-bottom: none; }
|
|
2650
|
+
|
|
2651
|
+
/* One heading scale for prose headings and typed-section titles alike. */
|
|
2652
|
+
.squisq-page--document .squisq-page-section-title { font-size: 1.3em; line-height: 1.25; margin: 0 0 0.45em; text-align: left; }
|
|
2653
|
+
.squisq-page--document [data-heading-level='1'] .squisq-page-section-title { font-size: 1.6em; }
|
|
2654
|
+
.squisq-page--document [data-heading-level='3'] .squisq-page-section-title { font-size: 1.1em; }
|
|
2655
|
+
.squisq-page--document :is([data-heading-level='4'], [data-heading-level='5'], [data-heading-level='6']) .squisq-page-section-title { font-size: 1em; }
|
|
2656
|
+
.squisq-page--document .squisq-page-prose :is(h1, h2, h3, h4, h5, h6) { line-height: 1.25; margin: 0; }
|
|
2657
|
+
.squisq-page--document .squisq-page-prose h1 { font-size: 1.6em; }
|
|
2658
|
+
.squisq-page--document .squisq-page-prose h2 { font-size: 1.3em; }
|
|
2659
|
+
.squisq-page--document .squisq-page-prose h3 { font-size: 1.1em; }
|
|
2660
|
+
.squisq-page--document .squisq-page-prose :is(h4, h5, h6) { font-size: 1em; }
|
|
2661
|
+
.squisq-page--document .squisq-page-eyebrow { font-size: 0.72em; letter-spacing: 0.1em; margin-bottom: 0.5em; }
|
|
2662
|
+
|
|
2663
|
+
/* Prose */
|
|
2664
|
+
.squisq-page--document .squisq-page-prose { font-size: 1em; }
|
|
2665
|
+
/* A prose section is a heading wrapper then a body wrapper (.squisq-md each). */
|
|
2666
|
+
.squisq-page--document .squisq-page-prose > .squisq-md + .squisq-md { margin-top: 0.4em; }
|
|
2667
|
+
.squisq-page--document .squisq-page-prose > .squisq-md > * + * { margin-top: 0.75em; }
|
|
2668
|
+
.squisq-page--document .squisq-page-prose > .squisq-md > :last-child { margin-bottom: 0; }
|
|
2669
|
+
.squisq-page--document .squisq-page-prose p + p { margin-top: 0.75em; }
|
|
2670
|
+
.squisq-page--document .squisq-page-prose li + li { margin-top: 0.25em; }
|
|
2671
|
+
.squisq-page--document .squisq-page-prose :is(ul, ol) :is(ul, ol) { margin-top: 0.25em; }
|
|
2672
|
+
.squisq-page--document .squisq-page-prose code { font-size: 0.88em; }
|
|
2673
|
+
.squisq-page--document .squisq-page-prose pre { padding: 0.7em 0.9em; }
|
|
2674
|
+
.squisq-page--document .squisq-md-code-frame { margin: 0.75em 0; }
|
|
2675
|
+
.squisq-page--document .squisq-page-prose blockquote { border-left-width: 3px; padding-left: 1em; }
|
|
2676
|
+
.squisq-page--document .squisq-page-prose hr { margin-block: 1.25em; }
|
|
2677
|
+
.squisq-page--document :is(.squisq-page-prose, .squisq-page-table-section) table { font-size: 0.93em; }
|
|
2678
|
+
.squisq-page--document .squisq-page-prose th,
|
|
2679
|
+
.squisq-page--document .squisq-page-table th {
|
|
2680
|
+
font-family: var(--squisq-page-body-font);
|
|
2681
|
+
font-weight: 600;
|
|
2682
|
+
padding: 0.45em 0.7em;
|
|
2683
|
+
}
|
|
2684
|
+
.squisq-page--document .squisq-page-prose td,
|
|
2685
|
+
.squisq-page--document .squisq-page-table td { padding: 0.4em 0.7em; }
|
|
2686
|
+
.squisq-page--document .squisq-page-rich-content { margin-top: 1em; padding-top: 0.75em; }
|
|
2687
|
+
|
|
2688
|
+
/* Typed sections an author asked for, at document scale. */
|
|
2689
|
+
.squisq-page--document .squisq-page-section-inner > :first-child { margin-top: 0; }
|
|
2690
|
+
.squisq-page--document .squisq-page-stats { justify-content: flex-start; text-align: left; gap: 1.5em; }
|
|
2691
|
+
.squisq-page--document .squisq-page-stat { flex: 1 1 10em; }
|
|
2692
|
+
.squisq-page.squisq-page--document .squisq-page-stat-value { font-size: 1.9em; }
|
|
2693
|
+
.squisq-page--document .squisq-page-stat-title { margin-top: 0.35em; font-size: 1em; }
|
|
2694
|
+
.squisq-page--document .squisq-page-stat-body { margin-top: 0.2em; font-size: 0.9em; }
|
|
2695
|
+
.squisq-page--document .squisq-page-stat-meta { margin-top: 0.75em; text-align: left; font-size: 0.85em; }
|
|
2696
|
+
.squisq-page.squisq-page--document .squisq-page-quote { font-size: 1.15em; line-height: 1.45; }
|
|
2697
|
+
.squisq-page.squisq-page--document .squisq-page-quote-figure {
|
|
2698
|
+
border: none;
|
|
2699
|
+
border-left: 3px solid var(--squisq-page-accent);
|
|
2700
|
+
padding: 0 0 0 1em;
|
|
2701
|
+
text-align: left;
|
|
2702
|
+
}
|
|
2703
|
+
.squisq-page--document .squisq-page-quote-attribution { margin-top: 0.6em; font-size: 0.9em; }
|
|
2704
|
+
.squisq-page.squisq-page--document .squisq-page-section--quote-band.squisq-page-section--bg-media { min-height: 10em; }
|
|
2705
|
+
.squisq-page.squisq-page--document .squisq-page-section--banner.squisq-page-section--bg-media { min-height: 9em; }
|
|
2706
|
+
.squisq-page--document .squisq-page-feature { gap: 1.5em; }
|
|
2707
|
+
.squisq-page--document .squisq-page-feature-body { font-size: 1em; }
|
|
2708
|
+
.squisq-page--document .squisq-page-figure figcaption,
|
|
2709
|
+
.squisq-page--document .squisq-page-gallery-caption { margin-top: 0.6em; font-size: 0.85em; }
|
|
2710
|
+
.squisq-page--document .squisq-page-gallery { gap: 0.75em; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
|
|
2711
|
+
.squisq-page--document .squisq-page-callout { padding: 0.85em 1.1em; gap: 1em; border-left-width: 3px; }
|
|
2712
|
+
.squisq-page--document .squisq-page-callout-title { font-size: 1.05em; margin-bottom: 0.35em; }
|
|
2713
|
+
.squisq-page--document .squisq-page-callout-meta { margin-top: 0.6em; font-size: 0.82em; }
|
|
2714
|
+
.squisq-page--document .squisq-page-callout .squisq-page-media-frame { flex-basis: 5.5em; }
|
|
2715
|
+
.squisq-page--document .squisq-page-callout .squisq-page-media-frame img { width: 5.5em; height: 5.5em; }
|
|
2716
|
+
.squisq-page--document .squisq-page-cards { gap: 0.9em; grid-template-columns: repeat(auto-fit, minmax(12em, 1fr)); }
|
|
2717
|
+
.squisq-page--document .squisq-page-card { padding: 0.9em 1em 1em; border-top-width: 3px; }
|
|
2718
|
+
.squisq-page--document .squisq-page-card-title { font-size: 1.05em; }
|
|
2719
|
+
.squisq-page--document .squisq-page-cards-title { margin-bottom: 0.6em; }
|
|
2720
|
+
.squisq-page--document .squisq-page-items { max-width: none; }
|
|
2721
|
+
.squisq-page--document .squisq-page-items li { grid-template-columns: 2.2em 1fr; padding: 0.45em 0; font-size: 1em; }
|
|
2722
|
+
.squisq-page--document .squisq-page-items li::before { font-size: 1em; }
|
|
2723
|
+
.squisq-page--document .squisq-page-section--timeline-rail { padding-block: 0.5em; }
|
|
2724
|
+
.squisq-page--document .squisq-page-milestone { grid-template-columns: 7em 1fr; gap: 1.25em; }
|
|
2725
|
+
.squisq-page--document .squisq-page-milestone-date { font-size: 1em; }
|
|
2726
|
+
.squisq-page--document .squisq-page-milestone-rail { left: calc(7em + 0.62em); top: -0.5em; bottom: -0.5em; }
|
|
2727
|
+
.squisq-page--document .squisq-page-milestone-body { padding-left: 1.25em; }
|
|
2728
|
+
.squisq-page--document .squisq-page-milestone-footer { font-size: 0.85em; }
|
|
2729
|
+
|
|
2442
2730
|
/* \u2500\u2500 Reveal animation (progressive enhancement) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
2443
2731
|
@media (prefers-reduced-motion: no-preference) {
|
|
2444
2732
|
.squisq-page-reveal { opacity: 0; transform: translateY(14px); transition: opacity 0.55s ease, transform 0.55s ease; }
|
|
@@ -6053,6 +6341,10 @@ function renderTree(tree2, options = {}) {
|
|
|
6053
6341
|
|
|
6054
6342
|
export {
|
|
6055
6343
|
getAnimationStyle,
|
|
6344
|
+
transformOriginFor,
|
|
6345
|
+
motionStateTransform,
|
|
6346
|
+
DEFAULT_WORD_STAGGER,
|
|
6347
|
+
wordRevealDelay,
|
|
6056
6348
|
getDefaultAnimationDuration,
|
|
6057
6349
|
getTransitionClass,
|
|
6058
6350
|
getAnimationProgress,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
defaultPageStyle
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-2SRF5III.js";
|
|
4
4
|
import {
|
|
5
5
|
FONT_FALLBACKS,
|
|
6
6
|
THEME_SCHEMA_VERSION,
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
relativeLuminance,
|
|
16
16
|
resolveFontFamily,
|
|
17
17
|
withAlpha
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-PFH3WV6J.js";
|
|
19
19
|
|
|
20
20
|
// src/schemas/Doc.ts
|
|
21
21
|
function calculateDuration(audio) {
|