@bendyline/squisq 2.7.1 → 2.9.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.
- package/dist/{chunk-WN27GHA3.js → chunk-HEYR3TPL.js} +1 -1
- package/dist/{chunk-FPAS63KT.js → chunk-KIAEJDZB.js} +1502 -10
- package/dist/{chunk-ENNNQIYV.js → chunk-W2GIFNLN.js} +1892 -1796
- package/dist/doc/index.d.ts +675 -3
- package/dist/doc/index.js +74 -4
- package/dist/index.d.ts +1 -1
- package/dist/index.js +74 -4
- package/dist/narration/index.js +2 -2
- package/package.json +1 -1
package/dist/doc/index.d.ts
CHANGED
|
@@ -1875,6 +1875,23 @@ interface RichListItem {
|
|
|
1875
1875
|
markdown: MarkdownBlockNode[];
|
|
1876
1876
|
html?: string;
|
|
1877
1877
|
}
|
|
1878
|
+
/**
|
|
1879
|
+
* Render Markdown block nodes as the small, sanitized HTML subset accepted by
|
|
1880
|
+
* `TextLayer.content.html`. This keeps structural content (especially lists
|
|
1881
|
+
* and paragraph boundaries) intact when a slide template uses one rich text
|
|
1882
|
+
* layer instead of the full React Markdown renderer.
|
|
1883
|
+
*
|
|
1884
|
+
* Raw HTML blocks deliberately fall through to escaped plain text. The text
|
|
1885
|
+
* layer renderer sanitizes this projection again, but generated HTML should
|
|
1886
|
+
* still be safe before it reaches that boundary.
|
|
1887
|
+
*/
|
|
1888
|
+
declare function renderMarkdownBlocksHtml(nodes: readonly MarkdownBlockNode[]): string;
|
|
1889
|
+
/**
|
|
1890
|
+
* Number of newline characters to retain in a plain-text projection between
|
|
1891
|
+
* two Markdown blocks. A normal block boundary gets the usual two newlines;
|
|
1892
|
+
* parsed source with additional blank lines keeps the larger authored gap.
|
|
1893
|
+
*/
|
|
1894
|
+
declare function markdownBlockSeparatorLines(previous: MarkdownBlockNode, next: MarkdownBlockNode): number;
|
|
1878
1895
|
/** Extract list items without discarding their inline Markdown formatting. */
|
|
1879
1896
|
declare function extractRichListItems(contents?: MarkdownBlockNode[]): RichListItem[];
|
|
1880
1897
|
/**
|
|
@@ -1976,8 +1993,9 @@ interface MarkdownToDocOptions {
|
|
|
1976
1993
|
* StartBlockConfig is created with a title resolved in priority order:
|
|
1977
1994
|
* frontmatter `title:`, the first occurrence of the shallowest heading
|
|
1978
1995
|
* (H1, else H2, else H3, …), then {@link fileName}. If the document
|
|
1979
|
-
* contains an image, the first image is used as the hero.
|
|
1980
|
-
*
|
|
1996
|
+
* contains an image, the first image is used as the hero. A frontmatter
|
|
1997
|
+
* `subtitle:` overrides the usual first-paragraph subtitle. Set to false
|
|
1998
|
+
* to suppress automatic cover generation.
|
|
1981
1999
|
*/
|
|
1982
2000
|
generateCoverBlock?: boolean;
|
|
1983
2001
|
/**
|
|
@@ -2137,6 +2155,13 @@ interface BuildPreviewDocOptions {
|
|
|
2137
2155
|
* the placeholder block id.
|
|
2138
2156
|
*/
|
|
2139
2157
|
documentTitle?: string;
|
|
2158
|
+
/**
|
|
2159
|
+
* Whether unused document images become standalone interleaved
|
|
2160
|
+
* `imageWithCaption` slides (default true — the slideshow behavior).
|
|
2161
|
+
* Consumers with a fixed cell budget (the dashboard projection) pass
|
|
2162
|
+
* false so synthetic filler slides never compete with real blocks.
|
|
2163
|
+
*/
|
|
2164
|
+
interleaveImages?: boolean;
|
|
2140
2165
|
}
|
|
2141
2166
|
/**
|
|
2142
2167
|
* Derive a display title from a file name: strip any directory prefix and the
|
|
@@ -2417,6 +2442,653 @@ declare const PAGE_BASE_CSS = "\n/* \u2500\u2500 Base \u2500\u2500\u2500\u2500\u
|
|
|
2417
2442
|
*/
|
|
2418
2443
|
declare function buildPageCss(theme?: Theme): string;
|
|
2419
2444
|
|
|
2445
|
+
/**
|
|
2446
|
+
* Supplemental rich-media layout for slideshow blocks.
|
|
2447
|
+
*
|
|
2448
|
+
* Templates still own their no-media composition. When an explicitly
|
|
2449
|
+
* selected text-first template also contains media that it did not consume,
|
|
2450
|
+
* this module selects a second composition with a reserved media rectangle
|
|
2451
|
+
* and maps the template's foreground into the companion content rectangle.
|
|
2452
|
+
* The exhaustive per-template policy selects by viewport orientation, media
|
|
2453
|
+
* aspect, and item count so placement does not depend on a template's name or
|
|
2454
|
+
* incidental overlap between its layers.
|
|
2455
|
+
*/
|
|
2456
|
+
|
|
2457
|
+
interface LayerRect {
|
|
2458
|
+
x: number;
|
|
2459
|
+
y: number;
|
|
2460
|
+
width: number;
|
|
2461
|
+
height: number;
|
|
2462
|
+
}
|
|
2463
|
+
|
|
2464
|
+
/**
|
|
2465
|
+
* Dashboard cell zoom policy.
|
|
2466
|
+
*
|
|
2467
|
+
* A cell's "zoom" multiplies the type scale (`TemplateContext.fontScale`)
|
|
2468
|
+
* its block renders with — the %-based composition still targets the cell,
|
|
2469
|
+
* but titles and body text render 1.5×/2× so a sparse block fills its slot
|
|
2470
|
+
* instead of floating in whitespace. Zoom is deliberately a CLOSED ladder
|
|
2471
|
+
* (100% / 150% / 200%), and a dashboard uses at most TWO unique levels —
|
|
2472
|
+
* base 1× plus one boost — so cells still read as consistently sized
|
|
2473
|
+
* rather than each block being fitted independently.
|
|
2474
|
+
*
|
|
2475
|
+
* Levels come from three places, strongest first: an explicit `zoom` on a
|
|
2476
|
+
* custom layout's cell definition (author intent — never changed), the
|
|
2477
|
+
* automatic density pick (short text-led blocks get boosted; spatial,
|
|
2478
|
+
* media, chart, and display-scaled templates always render 1×), and the
|
|
2479
|
+
* `squisq-dashboard-zoom: off` frontmatter kill-switch that pins every
|
|
2480
|
+
* non-explicit cell to 1×.
|
|
2481
|
+
*/
|
|
2482
|
+
/** The closed set of zoom multipliers a dashboard cell may render at. */
|
|
2483
|
+
declare const DASHBOARD_ZOOM_LEVELS: readonly [1, 1.5, 2];
|
|
2484
|
+
type DashboardZoomLevel = (typeof DASHBOARD_ZOOM_LEVELS)[number];
|
|
2485
|
+
/** Automatic zoom behavior: density-based boosts, or everything at 1×. */
|
|
2486
|
+
type DashboardZoomMode = 'auto' | 'off';
|
|
2487
|
+
/**
|
|
2488
|
+
* Normalize an authored zoom value to a ladder level. Accepts multipliers
|
|
2489
|
+
* (`1`, `1.5`, `2`) and percentages (`100`, `150`, `200`, `'200%'`).
|
|
2490
|
+
* Returns undefined for anything off the ladder.
|
|
2491
|
+
*/
|
|
2492
|
+
declare function normalizeDashboardZoom(value: unknown): DashboardZoomLevel | undefined;
|
|
2493
|
+
/** One cell's input to the zoom policy. */
|
|
2494
|
+
interface DashboardZoomCandidate {
|
|
2495
|
+
/** Resolved template name of the block in this cell. */
|
|
2496
|
+
template?: string;
|
|
2497
|
+
/** Plain-text length of the block's title + body. */
|
|
2498
|
+
textLength: number;
|
|
2499
|
+
/** Author-pinned level from the layout's cell definition. */
|
|
2500
|
+
explicit?: DashboardZoomLevel;
|
|
2501
|
+
}
|
|
2502
|
+
/** The density pick for one cell, before the two-level quantization. */
|
|
2503
|
+
declare function desiredCellZoom(candidate: DashboardZoomCandidate): DashboardZoomLevel;
|
|
2504
|
+
/**
|
|
2505
|
+
* Resolve every cell's final zoom level.
|
|
2506
|
+
*
|
|
2507
|
+
* Explicit levels are honored verbatim. Automatic picks are then
|
|
2508
|
+
* quantized so the dashboard as a whole uses at most base 1× plus ONE
|
|
2509
|
+
* boost level: when both 1.5× and 2× are wanted, the boost with the most
|
|
2510
|
+
* cells wins (explicit pins count double so autos rally to the author's
|
|
2511
|
+
* level; ties boost to 2×), and the other autos snap to it.
|
|
2512
|
+
*/
|
|
2513
|
+
declare function resolveDashboardZooms(candidates: readonly DashboardZoomCandidate[], mode: DashboardZoomMode): DashboardZoomLevel[];
|
|
2514
|
+
|
|
2515
|
+
/**
|
|
2516
|
+
* Dashboard layout model.
|
|
2517
|
+
*
|
|
2518
|
+
* A dashboard renders a document's blocks onto ONE canvas: a layout places
|
|
2519
|
+
* N cells (as %-rects) over the canvas's content area, and each cell hosts
|
|
2520
|
+
* one rendered block. Where `materializeBlockLayers` is the slide
|
|
2521
|
+
* projection and `materializePageSections` is the page projection,
|
|
2522
|
+
* `materializeDashboard` (in this directory) is the dashboard projection —
|
|
2523
|
+
* this module holds the layout *definition* shape shared by built-in and
|
|
2524
|
+
* user-authored layouts, plus the geometry helpers that resolve a
|
|
2525
|
+
* definition against a concrete viewport.
|
|
2526
|
+
*
|
|
2527
|
+
* Positions are `%`-strings relative to the layout's CONTENT rect (the
|
|
2528
|
+
* canvas minus the optional title band), mirroring the custom-template
|
|
2529
|
+
* convention: one definition renders at any aspect ratio unchanged.
|
|
2530
|
+
*/
|
|
2531
|
+
|
|
2532
|
+
/**
|
|
2533
|
+
* One cell of a dashboard layout. `x`/`y`/`width`/`height` are `%`-strings
|
|
2534
|
+
* relative to the content rect. `block` is an optional 1-based explicit
|
|
2535
|
+
* block assignment ("render block N here"); cells without one fill in
|
|
2536
|
+
* document order.
|
|
2537
|
+
*/
|
|
2538
|
+
interface DashboardCellDefinition {
|
|
2539
|
+
x: string;
|
|
2540
|
+
y: string;
|
|
2541
|
+
width: string;
|
|
2542
|
+
height: string;
|
|
2543
|
+
/** 1-based candidate-block index this cell explicitly renders. */
|
|
2544
|
+
block?: number;
|
|
2545
|
+
/**
|
|
2546
|
+
* Type-scale multiplier for the block rendered here: 1, 1.5, or 2
|
|
2547
|
+
* (percent spellings 100/150/200 are accepted and normalized). Pins the
|
|
2548
|
+
* cell's zoom and exempts it from the automatic density pick.
|
|
2549
|
+
*/
|
|
2550
|
+
zoom?: number;
|
|
2551
|
+
}
|
|
2552
|
+
/** Where and how tall the optional document-title band renders. */
|
|
2553
|
+
interface DashboardTitleSlotDefinition {
|
|
2554
|
+
/** Which canvas edge hosts the band. Default 'top'. */
|
|
2555
|
+
placement: 'top' | 'bottom';
|
|
2556
|
+
/** Band height as a `%`-string of the canvas height. Default '9%'. */
|
|
2557
|
+
height: string;
|
|
2558
|
+
}
|
|
2559
|
+
/**
|
|
2560
|
+
* A dashboard layout definition — JSON-serializable so built-ins and
|
|
2561
|
+
* frontmatter-authored custom layouts share one schema.
|
|
2562
|
+
*/
|
|
2563
|
+
interface DashboardLayoutDefinition {
|
|
2564
|
+
/** Slug id used by `squisq-dashboard-layout` (lowercase, hyphens). */
|
|
2565
|
+
name: string;
|
|
2566
|
+
/** Human-facing picker label. */
|
|
2567
|
+
label: string;
|
|
2568
|
+
description?: string;
|
|
2569
|
+
/**
|
|
2570
|
+
* Per-orientation cell arrays. `landscape` is required and defines the
|
|
2571
|
+
* layout's capacity. Fallbacks when a variant is absent:
|
|
2572
|
+
* square → landscape cells (%-stretch), portrait → transposed landscape.
|
|
2573
|
+
* Variants that are present must match landscape's cell count.
|
|
2574
|
+
*/
|
|
2575
|
+
cells: {
|
|
2576
|
+
landscape: DashboardCellDefinition[];
|
|
2577
|
+
portrait?: DashboardCellDefinition[];
|
|
2578
|
+
square?: DashboardCellDefinition[];
|
|
2579
|
+
};
|
|
2580
|
+
/** Overrides the default title band when the doc shows a title. */
|
|
2581
|
+
titleSlot?: DashboardTitleSlotDefinition;
|
|
2582
|
+
/** False excludes the layout from auto-pick (picker-only). Default true. */
|
|
2583
|
+
auto?: boolean;
|
|
2584
|
+
}
|
|
2585
|
+
interface DashboardLayoutValidationError {
|
|
2586
|
+
path: string;
|
|
2587
|
+
message: string;
|
|
2588
|
+
}
|
|
2589
|
+
interface DashboardLayoutValidationResult {
|
|
2590
|
+
valid: boolean;
|
|
2591
|
+
errors: DashboardLayoutValidationError[];
|
|
2592
|
+
/** The normalized definition when `valid` is true. */
|
|
2593
|
+
layout?: DashboardLayoutDefinition;
|
|
2594
|
+
}
|
|
2595
|
+
/** A resolved cell: canvas-unit rect plus the optional explicit pins. */
|
|
2596
|
+
interface ResolvedDashboardCell {
|
|
2597
|
+
rect: LayerRect;
|
|
2598
|
+
block?: number;
|
|
2599
|
+
/** Author-pinned zoom level from the cell definition. */
|
|
2600
|
+
zoom?: DashboardZoomLevel;
|
|
2601
|
+
}
|
|
2602
|
+
/**
|
|
2603
|
+
* Validate an untrusted layout definition (frontmatter, host input) into a
|
|
2604
|
+
* normalized {@link DashboardLayoutDefinition}. Never throws; malformed
|
|
2605
|
+
* definitions come back as `{ valid: false, errors }`.
|
|
2606
|
+
*/
|
|
2607
|
+
declare function validateDashboardLayoutDefinition(input: unknown): DashboardLayoutValidationResult;
|
|
2608
|
+
/** Number of blocks the layout can display. */
|
|
2609
|
+
declare function layoutCapacity(def: DashboardLayoutDefinition): number;
|
|
2610
|
+
/**
|
|
2611
|
+
* Swap each cell's axes (x↔y, width↔height) — the automatic portrait
|
|
2612
|
+
* rendition for layouts that only define landscape cells. A row of cells
|
|
2613
|
+
* becomes a column; grids become their transpose.
|
|
2614
|
+
*/
|
|
2615
|
+
declare function transposeCells(cells: readonly DashboardCellDefinition[]): DashboardCellDefinition[];
|
|
2616
|
+
/**
|
|
2617
|
+
* Pick the orientation variant (with fallbacks) and resolve its `%`-strings
|
|
2618
|
+
* against a concrete content rect, producing canvas-unit cell rects.
|
|
2619
|
+
*/
|
|
2620
|
+
declare function resolveLayoutCells(def: DashboardLayoutDefinition, orientation: ViewportOrientation, contentRect: LayerRect): ResolvedDashboardCell[];
|
|
2621
|
+
|
|
2622
|
+
/**
|
|
2623
|
+
* Built-in dashboard layouts.
|
|
2624
|
+
*
|
|
2625
|
+
* Built-ins use the exact same JSON-serializable schema as user-authored
|
|
2626
|
+
* custom layouts (`squisq-dashboard-layouts` frontmatter), so pickers,
|
|
2627
|
+
* validation, and the auto-pick ladder treat both uniformly. Gutters are
|
|
2628
|
+
* baked into the `%` rects (the photoGrid convention) rather than being a
|
|
2629
|
+
* separate spacing model.
|
|
2630
|
+
*/
|
|
2631
|
+
|
|
2632
|
+
/**
|
|
2633
|
+
* The built-in layout library, ordered by capacity — the auto-pick ladder
|
|
2634
|
+
* walks this order. `hero-top` opts out of auto-pick (`auto: false`) so
|
|
2635
|
+
* `grid-2x2` wins the 4-block case; it stays available in pickers.
|
|
2636
|
+
*/
|
|
2637
|
+
declare const BUILTIN_DASHBOARD_LAYOUTS: readonly DashboardLayoutDefinition[];
|
|
2638
|
+
/** Picker-facing summary of a layout. */
|
|
2639
|
+
interface DashboardLayoutSummary {
|
|
2640
|
+
id: string;
|
|
2641
|
+
label: string;
|
|
2642
|
+
description?: string;
|
|
2643
|
+
capacity: number;
|
|
2644
|
+
/** True for layouts defined by the document rather than built in. */
|
|
2645
|
+
custom: boolean;
|
|
2646
|
+
}
|
|
2647
|
+
/** Summaries of the built-in layouts, in ladder order. */
|
|
2648
|
+
declare function getDashboardLayoutSummaries(): DashboardLayoutSummary[];
|
|
2649
|
+
/**
|
|
2650
|
+
* Every layout available to a document: its frontmatter-defined custom
|
|
2651
|
+
* layouts first (they win name collisions), then the built-ins. This is
|
|
2652
|
+
* the list pickers and CLI `--layout` validation enumerate.
|
|
2653
|
+
*/
|
|
2654
|
+
declare function listDashboardLayouts(doc: Pick<Doc, 'frontmatter'> | undefined): DashboardLayoutSummary[];
|
|
2655
|
+
|
|
2656
|
+
/**
|
|
2657
|
+
* Dashboard layout selection: id lookup plus the auto-pick ladder that
|
|
2658
|
+
* chooses the smallest layout able to hold every block.
|
|
2659
|
+
*/
|
|
2660
|
+
|
|
2661
|
+
/** The sentinel layout id meaning "pick the best layout for the doc". */
|
|
2662
|
+
declare const DASHBOARD_AUTO_LAYOUT_ID = "auto";
|
|
2663
|
+
/**
|
|
2664
|
+
* Resolve a layout id against the document's custom layouts (which win
|
|
2665
|
+
* name collisions) and then the built-ins. Undefined when unknown.
|
|
2666
|
+
*/
|
|
2667
|
+
declare function resolveDashboardLayoutDefinition(id: string, customLayouts?: readonly DashboardLayoutDefinition[]): DashboardLayoutDefinition | undefined;
|
|
2668
|
+
/**
|
|
2669
|
+
* Auto-pick the best layout for a block count: the smallest-capacity
|
|
2670
|
+
* auto-eligible layout that fits every block, preferring a custom layout
|
|
2671
|
+
* over a built-in at equal capacity. When even the largest layout cannot
|
|
2672
|
+
* hold the count, the largest wins and the caller reports the overflow.
|
|
2673
|
+
*
|
|
2674
|
+
* Orientation deliberately does not change WHICH layout wins — it selects
|
|
2675
|
+
* the cell variant later (via `resolveLayoutCells`) so the same document
|
|
2676
|
+
* keeps the same layout identity across aspect ratios.
|
|
2677
|
+
*/
|
|
2678
|
+
declare function chooseDashboardLayout(blockCount: number, _orientation: ViewportOrientation, customLayouts?: readonly DashboardLayoutDefinition[]): DashboardLayoutDefinition;
|
|
2679
|
+
|
|
2680
|
+
/**
|
|
2681
|
+
* Dashboard cell style — the "how it's dressed" axis, orthogonal to the
|
|
2682
|
+
* layout's "where things go".
|
|
2683
|
+
*
|
|
2684
|
+
* A layout answers how many cells there are and what shape they take; a
|
|
2685
|
+
* style answers what a cell LOOKS like: whether the block simply fills its
|
|
2686
|
+
* rect (`basic`, the historical behavior), sits on a raised card, sits in a
|
|
2687
|
+
* flat outlined panel, or on an accent-tinted card. Every style derives its
|
|
2688
|
+
* colors, radius, and accents from the ACTIVE THEME (`colors`,
|
|
2689
|
+
* `style.borderRadius`, `colorSchemes`), so a gezellig dashboard reads as
|
|
2690
|
+
* gezellig and a tech-dark one reads as tech-dark — a style never carries
|
|
2691
|
+
* its own palette.
|
|
2692
|
+
*
|
|
2693
|
+
* Geometry is core-owned like everything else in the dashboard pipeline:
|
|
2694
|
+
* this module returns the card rect the block renders into plus the chrome
|
|
2695
|
+
* layers painted behind it (CELL-LOCAL coordinates — the same space
|
|
2696
|
+
* `materializeDashboard` hands renderers for the title band) and over it
|
|
2697
|
+
* (CARD-LOCAL, so a host clips them with the card's own corner radius).
|
|
2698
|
+
*/
|
|
2699
|
+
|
|
2700
|
+
/** The closed set of dashboard cell styles. */
|
|
2701
|
+
declare const DASHBOARD_STYLE_IDS: readonly ["basic", "card", "panel", "accent"];
|
|
2702
|
+
type DashboardStyleId = (typeof DASHBOARD_STYLE_IDS)[number];
|
|
2703
|
+
declare const DEFAULT_DASHBOARD_STYLE: DashboardStyleId;
|
|
2704
|
+
/** Picker-facing summary of a style (mirrors `DashboardLayoutSummary`). */
|
|
2705
|
+
interface DashboardStyleSummary {
|
|
2706
|
+
id: DashboardStyleId;
|
|
2707
|
+
label: string;
|
|
2708
|
+
description: string;
|
|
2709
|
+
}
|
|
2710
|
+
/** The style library, in picker order. */
|
|
2711
|
+
declare const DASHBOARD_STYLES: readonly DashboardStyleSummary[];
|
|
2712
|
+
/** Normalize an authored style value; undefined when unrecognized. */
|
|
2713
|
+
declare function resolveDashboardStyleId(value: unknown): DashboardStyleId | undefined;
|
|
2714
|
+
/**
|
|
2715
|
+
* The canvas fill behind the cells. Card-like styles tint it away from the
|
|
2716
|
+
* card surface (down on light themes, up on dark ones) so cards read as
|
|
2717
|
+
* raised rather than as invisible rectangles on matching paper; flat styles
|
|
2718
|
+
* keep the theme background exactly.
|
|
2719
|
+
*/
|
|
2720
|
+
declare function dashboardCanvasFill(style: DashboardStyleId, theme: Theme): string;
|
|
2721
|
+
/**
|
|
2722
|
+
* The accent color for cell `index`. Styles that show an accent rotate
|
|
2723
|
+
* through the theme's own `colorSchemes` (insertion order — the same
|
|
2724
|
+
* vocabulary page mode's `accentRotation` rotates), falling back to the
|
|
2725
|
+
* palette's primary when a theme declares no schemes.
|
|
2726
|
+
*/
|
|
2727
|
+
declare function dashboardCellAccent(theme: Theme, index: number): string;
|
|
2728
|
+
/** The chrome + geometry a style contributes to one cell. */
|
|
2729
|
+
interface DashboardCellChrome {
|
|
2730
|
+
/** Card rect in canvas units (the block fills exactly this box). */
|
|
2731
|
+
cardRect: LayerRect;
|
|
2732
|
+
/** Box the block renders into — identical to {@link cardRect}. */
|
|
2733
|
+
contentRect: LayerRect;
|
|
2734
|
+
/** Chrome layers painted BEHIND the block, in cell-local coordinates. */
|
|
2735
|
+
layers: Layer[];
|
|
2736
|
+
/**
|
|
2737
|
+
* Chrome layers painted ON TOP of the block, in card-local coordinates
|
|
2738
|
+
* (origin at the card rect, so a host can clip them with the card's own
|
|
2739
|
+
* radius). Borders and accents live here: a template that paints its own
|
|
2740
|
+
* opaque surface would otherwise bury them.
|
|
2741
|
+
*/
|
|
2742
|
+
overlayLayers: Layer[];
|
|
2743
|
+
/** Card corner radius in canvas units. */
|
|
2744
|
+
radius: number;
|
|
2745
|
+
/** CSS `border-radius` for the CONTENT box, percentage-based. */
|
|
2746
|
+
contentRadiusPct?: string;
|
|
2747
|
+
}
|
|
2748
|
+
/**
|
|
2749
|
+
* Build one cell's chrome. Returns null for `basic`, which paints nothing
|
|
2750
|
+
* and leaves the block filling the layout's rect exactly as before.
|
|
2751
|
+
*
|
|
2752
|
+
* The block fills the CARD, rather than sitting in a padded well inside it:
|
|
2753
|
+
* templates already carry their own internal padding, and many paint an
|
|
2754
|
+
* opaque surface or gradient of their own. Letting that surface BE the card
|
|
2755
|
+
* face is what keeps a card from reading as a box inside a box; the chrome
|
|
2756
|
+
* contributes the elevation behind it and the border/accent over it.
|
|
2757
|
+
*
|
|
2758
|
+
* Elevation is drawn as stacked translucent rects rather than an SVG blur
|
|
2759
|
+
* filter: it stays vector-pure, rasterizes identically in the player and in
|
|
2760
|
+
* headless capture, and costs three shapes.
|
|
2761
|
+
*/
|
|
2762
|
+
declare function buildDashboardCellChrome(style: DashboardStyleId, options: {
|
|
2763
|
+
theme: Theme;
|
|
2764
|
+
rect: LayerRect;
|
|
2765
|
+
index: number;
|
|
2766
|
+
}): DashboardCellChrome | null;
|
|
2767
|
+
/**
|
|
2768
|
+
* Whether a block's own full-bleed theme-background layer should be
|
|
2769
|
+
* dropped in this style. Card-like styles paint the surface themselves, so
|
|
2770
|
+
* an opaque backdrop from the template would hide the card's tint and
|
|
2771
|
+
* square off its corners. Only a fill that exactly matches the theme
|
|
2772
|
+
* background is ever dropped — a template's accent or gradient backdrop is
|
|
2773
|
+
* authored intent and stays.
|
|
2774
|
+
*/
|
|
2775
|
+
declare function stripsBlockBackdrop(style: DashboardStyleId): boolean;
|
|
2776
|
+
/**
|
|
2777
|
+
* Remove a leading full-bleed rect whose fill is exactly the theme
|
|
2778
|
+
* background. Matches `createBackgroundLayer`'s output shape.
|
|
2779
|
+
*/
|
|
2780
|
+
declare function stripBlockBackdropLayer(layers: readonly Layer[], theme: Theme): Layer[];
|
|
2781
|
+
|
|
2782
|
+
/**
|
|
2783
|
+
* Dashboard settings persisted in Markdown frontmatter.
|
|
2784
|
+
*
|
|
2785
|
+
* Framework-free (model: `coverSlideSettings.ts`) so the editor, player,
|
|
2786
|
+
* and export pipelines resolve one canonical document contract:
|
|
2787
|
+
*
|
|
2788
|
+
* - `squisq-dashboard-layout`: layout id or `auto` (default `auto`).
|
|
2789
|
+
* - `squisq-dashboard-title`: whether the document title band renders
|
|
2790
|
+
* (default true; the band only appears when a title actually resolves).
|
|
2791
|
+
* - `squisq-dashboard-style`: cell style variant (default `basic`) — the
|
|
2792
|
+
* dressing axis that is orthogonal to the layout's geometry.
|
|
2793
|
+
*/
|
|
2794
|
+
|
|
2795
|
+
interface DashboardSettings {
|
|
2796
|
+
/** Preferred layout id, or {@link DASHBOARD_AUTO_LAYOUT_ID}. */
|
|
2797
|
+
layout: string;
|
|
2798
|
+
/** Whether the document-title band renders when a title resolves. */
|
|
2799
|
+
showTitle: boolean;
|
|
2800
|
+
/** Cell zoom behavior: density-based `auto` boosts, or `off` (all 1×). */
|
|
2801
|
+
zoom: DashboardZoomMode;
|
|
2802
|
+
/** Cell style variant (chrome around each block). */
|
|
2803
|
+
style: DashboardStyleId;
|
|
2804
|
+
}
|
|
2805
|
+
declare const DASHBOARD_FRONTMATTER_KEYS: Readonly<{
|
|
2806
|
+
layout: {
|
|
2807
|
+
canonical: string;
|
|
2808
|
+
legacy: string;
|
|
2809
|
+
};
|
|
2810
|
+
showTitle: {
|
|
2811
|
+
canonical: string;
|
|
2812
|
+
legacy: string;
|
|
2813
|
+
};
|
|
2814
|
+
zoom: {
|
|
2815
|
+
canonical: string;
|
|
2816
|
+
legacy: string;
|
|
2817
|
+
};
|
|
2818
|
+
style: {
|
|
2819
|
+
canonical: string;
|
|
2820
|
+
legacy: string;
|
|
2821
|
+
};
|
|
2822
|
+
}>;
|
|
2823
|
+
declare const DEFAULT_DASHBOARD_SETTINGS: Readonly<DashboardSettings>;
|
|
2824
|
+
/**
|
|
2825
|
+
* Caller overrides. `style` is deliberately widened to `string`: hosts pass
|
|
2826
|
+
* raw CLI/UI values through, and an unrecognized one normalizes away rather
|
|
2827
|
+
* than needing a cast at every call site.
|
|
2828
|
+
*/
|
|
2829
|
+
type DashboardSettingsOverrides = Partial<Omit<DashboardSettings, 'style'>> & {
|
|
2830
|
+
style?: DashboardStyleId | string;
|
|
2831
|
+
};
|
|
2832
|
+
/** Resolve dashboard settings from frontmatter, then apply caller overrides. */
|
|
2833
|
+
declare function resolveDashboardSettings(frontmatter: Record<string, unknown> | undefined, overrides?: DashboardSettingsOverrides): DashboardSettings;
|
|
2834
|
+
|
|
2835
|
+
/**
|
|
2836
|
+
* Frontmatter serialization for user-defined dashboard layouts.
|
|
2837
|
+
*
|
|
2838
|
+
* Custom layout definitions live in the document's YAML frontmatter under
|
|
2839
|
+
* `squisq-dashboard-layouts` as a single **compact JSON** object keyed by
|
|
2840
|
+
* layout name (the exact convention `squisq-custom-templates` uses — see
|
|
2841
|
+
* `customTemplatesFrontmatter.ts` for the rationale):
|
|
2842
|
+
*
|
|
2843
|
+
* ```yaml
|
|
2844
|
+
* squisq-dashboard-layouts: {"kpi-wall":{"lb":"KPI Wall","ce":{"ls":[{"x":"0%","y":"0%","wd":"50%","hg":"100%","bk":1},…]}}}
|
|
2845
|
+
* ```
|
|
2846
|
+
*
|
|
2847
|
+
* The value is written unquoted on a single line so the line-based
|
|
2848
|
+
* frontmatter parser round-trips it verbatim. Well-known property names
|
|
2849
|
+
* shrink to two-letter codes via {@link LONG_TO_SHORT}; unmapped keys pass
|
|
2850
|
+
* through unchanged, so the format stays lossless as the schema grows.
|
|
2851
|
+
*/
|
|
2852
|
+
|
|
2853
|
+
/** Canonical frontmatter key for custom dashboard layouts. */
|
|
2854
|
+
declare const FRONTMATTER_DASHBOARD_LAYOUTS_KEY = "squisq-dashboard-layouts";
|
|
2855
|
+
/**
|
|
2856
|
+
* Read the `squisq-dashboard-layouts` key into validated layout
|
|
2857
|
+
* definitions. Returns undefined when the key is absent or unparseable;
|
|
2858
|
+
* individual malformed entries are dropped rather than failing the doc.
|
|
2859
|
+
*/
|
|
2860
|
+
declare function readDashboardLayoutsFromFrontmatter(frontmatter: Record<string, unknown> | undefined): DashboardLayoutDefinition[] | undefined;
|
|
2861
|
+
/**
|
|
2862
|
+
* Encode layout definitions into the compact JSON object described in the
|
|
2863
|
+
* module header. Returns undefined for an empty list so callers can omit
|
|
2864
|
+
* the key entirely.
|
|
2865
|
+
*/
|
|
2866
|
+
declare function writeDashboardLayoutsToFrontmatter(layouts: readonly DashboardLayoutDefinition[] | undefined, options?: {
|
|
2867
|
+
pretty?: boolean;
|
|
2868
|
+
}): string | undefined;
|
|
2869
|
+
|
|
2870
|
+
/**
|
|
2871
|
+
* Dashboard projection — the third sibling of the slide projection
|
|
2872
|
+
* (`buildPreviewDoc` + `materializeBlockLayers`) and the page projection
|
|
2873
|
+
* (`materializePageSections`).
|
|
2874
|
+
*
|
|
2875
|
+
* `materializeDashboard(doc, options)` turns a markdown-derived Doc into
|
|
2876
|
+
* ONE canvas: a layout's cells (canvas-unit rects) each holding one block
|
|
2877
|
+
* rendered AT the cell's size — a synthetic per-cell viewport, so
|
|
2878
|
+
* templates re-compose for the cell's orientation and typography scales
|
|
2879
|
+
* via `calculateFontScale` (the same strategy embedded spatial media uses
|
|
2880
|
+
* inside `materializeBlockLayers`). Core owns every geometry decision;
|
|
2881
|
+
* React consumers position cells with the CSS-ready `rectPct` values, and
|
|
2882
|
+
* non-React consumers flatten everything into a single canvas-level
|
|
2883
|
+
* `Layer[]` via {@link composeDashboardLayers}.
|
|
2884
|
+
*
|
|
2885
|
+
* Candidate blocks come from `buildPreviewDoc` (with image interleaving
|
|
2886
|
+
* off) so template resolution and derived inputs match the slideshow
|
|
2887
|
+
* exactly. Blocks beyond the layout's capacity are not rendered — that is
|
|
2888
|
+
* reported as an `overflow` diagnostic, never a console side effect.
|
|
2889
|
+
*/
|
|
2890
|
+
|
|
2891
|
+
interface MaterializeDashboardOptions {
|
|
2892
|
+
/** Theme used by cell templates and the canvas backdrop. */
|
|
2893
|
+
theme?: Theme;
|
|
2894
|
+
/** Canvas viewport. Defaults to the landscape preset. */
|
|
2895
|
+
viewport?: ViewportConfig;
|
|
2896
|
+
/**
|
|
2897
|
+
* Layout override: an id, {@link DASHBOARD_AUTO_LAYOUT_ID}, or an inline
|
|
2898
|
+
* definition. Overrides the doc's `squisq-dashboard-layout` frontmatter.
|
|
2899
|
+
*/
|
|
2900
|
+
layout?: string | DashboardLayoutDefinition;
|
|
2901
|
+
/** Custom layouts; defaults to the doc's `squisq-dashboard-layouts`. */
|
|
2902
|
+
customLayouts?: readonly DashboardLayoutDefinition[];
|
|
2903
|
+
/** Document-scoped custom templates; defaults to `doc.customTemplates`. */
|
|
2904
|
+
customTemplates?: readonly CustomTemplateDefinition[];
|
|
2905
|
+
/** Title-band override; overrides `squisq-dashboard-title` frontmatter. */
|
|
2906
|
+
showTitle?: boolean;
|
|
2907
|
+
/** Host-supplied title fallback (file name), as in `buildPreviewDoc`. */
|
|
2908
|
+
documentTitle?: string;
|
|
2909
|
+
/** Cell zoom override; overrides `squisq-dashboard-zoom` frontmatter. */
|
|
2910
|
+
zoom?: DashboardZoomMode;
|
|
2911
|
+
/** Cell style override; overrides `squisq-dashboard-style` frontmatter. */
|
|
2912
|
+
style?: DashboardStyleId | string;
|
|
2913
|
+
/** Per-cell failure policy, forwarded to `materializeBlockLayers`. */
|
|
2914
|
+
failureMode?: LayerMaterializationFailureMode;
|
|
2915
|
+
}
|
|
2916
|
+
/** CSS-ready percentages of the FULL canvas for absolute positioning. */
|
|
2917
|
+
interface DashboardRectPct {
|
|
2918
|
+
left: string;
|
|
2919
|
+
top: string;
|
|
2920
|
+
width: string;
|
|
2921
|
+
height: string;
|
|
2922
|
+
}
|
|
2923
|
+
/**
|
|
2924
|
+
* A cell's style chrome — the card/panel surface painted BEHIND the block.
|
|
2925
|
+
* Shaped like {@link DashboardTitle}: layers live in the frame's own
|
|
2926
|
+
* viewport space, so a renderer positions one box and draws into it.
|
|
2927
|
+
* Absent under the `basic` style, which paints no chrome at all.
|
|
2928
|
+
*/
|
|
2929
|
+
interface DashboardCellFrame {
|
|
2930
|
+
/** The layout's full cell rect in canvas units (chrome's own box). */
|
|
2931
|
+
rect: LayerRect;
|
|
2932
|
+
/** The frame rect as percentages of the full canvas. */
|
|
2933
|
+
rectPct: DashboardRectPct;
|
|
2934
|
+
/** Viewport the chrome layers were composed against. */
|
|
2935
|
+
viewport: ViewportConfig;
|
|
2936
|
+
/** Chrome layers painted BEHIND the block, in frame-local coordinates. */
|
|
2937
|
+
layers: Layer[];
|
|
2938
|
+
/**
|
|
2939
|
+
* Chrome layers painted ON TOP of the block — borders and accents, which
|
|
2940
|
+
* a template's own opaque surface would otherwise bury. Composed against
|
|
2941
|
+
* {@link DashboardCellFrame.overlayViewport} and positioned at the
|
|
2942
|
+
* block's own rect, so the same clip rounds them to the card's corners.
|
|
2943
|
+
*/
|
|
2944
|
+
overlayLayers: Layer[];
|
|
2945
|
+
/** Viewport the overlay layers were composed against (the card box). */
|
|
2946
|
+
overlayViewport: ViewportConfig;
|
|
2947
|
+
/**
|
|
2948
|
+
* CSS `border-radius` (percentage-based, so it scales with any rendered
|
|
2949
|
+
* size) for the block's content box, matching the card's corners. React
|
|
2950
|
+
* consumers apply it with `overflow: hidden` to clip full-bleed cell art.
|
|
2951
|
+
*/
|
|
2952
|
+
contentRadiusPct?: string;
|
|
2953
|
+
}
|
|
2954
|
+
/** One populated dashboard cell. */
|
|
2955
|
+
interface DashboardCell {
|
|
2956
|
+
/** Cell ordinal in the layout (0-based, layout order). */
|
|
2957
|
+
index: number;
|
|
2958
|
+
/** The projected slide block rendered in this cell. */
|
|
2959
|
+
block: Block;
|
|
2960
|
+
/** Index in the candidate block sequence (for keys/debugging). */
|
|
2961
|
+
blockIndex: number;
|
|
2962
|
+
/** Layers materialized against {@link DashboardCell.viewport} (un-prefixed). */
|
|
2963
|
+
layers: Layer[];
|
|
2964
|
+
/**
|
|
2965
|
+
* The block's rect in canvas units. Equals the layout cell under `basic`;
|
|
2966
|
+
* under a card style it is the cell inset by the card's padding ring.
|
|
2967
|
+
*/
|
|
2968
|
+
rect: LayerRect;
|
|
2969
|
+
/** Block rect as percentages of the full canvas. */
|
|
2970
|
+
rectPct: DashboardRectPct;
|
|
2971
|
+
/** Style chrome painted behind the block; absent under `basic`. */
|
|
2972
|
+
frame?: DashboardCellFrame;
|
|
2973
|
+
/** The synthetic per-cell viewport the layers were rendered against. */
|
|
2974
|
+
viewport: ViewportConfig;
|
|
2975
|
+
/**
|
|
2976
|
+
* Type-scale multiplier the block rendered with (1, 1.5, or 2) — the
|
|
2977
|
+
* layout stays cell-composed, but themed type renders this much larger
|
|
2978
|
+
* so sparse blocks fill their slot. Already baked into `layers`.
|
|
2979
|
+
*/
|
|
2980
|
+
zoom: DashboardZoomLevel;
|
|
2981
|
+
source: LayerMaterializationSource;
|
|
2982
|
+
diagnostic?: LayerMaterializationDiagnostic;
|
|
2983
|
+
}
|
|
2984
|
+
interface DashboardDiagnostic {
|
|
2985
|
+
type: 'overflow' | 'unknown-layout' | 'invalid-cell-assignment' | 'empty-doc';
|
|
2986
|
+
message: string;
|
|
2987
|
+
/** Ids of blocks hidden by an `overflow`. */
|
|
2988
|
+
hiddenBlockIds?: string[];
|
|
2989
|
+
/** The unresolvable id behind an `unknown-layout`. */
|
|
2990
|
+
requestedLayout?: string;
|
|
2991
|
+
}
|
|
2992
|
+
/** The rendered document-title band. */
|
|
2993
|
+
interface DashboardTitle {
|
|
2994
|
+
text: string;
|
|
2995
|
+
rect: LayerRect;
|
|
2996
|
+
rectPct: DashboardRectPct;
|
|
2997
|
+
viewport: ViewportConfig;
|
|
2998
|
+
layers: Layer[];
|
|
2999
|
+
}
|
|
3000
|
+
interface DashboardMaterialization {
|
|
3001
|
+
layout: DashboardLayoutDefinition;
|
|
3002
|
+
layoutSource: 'option' | 'frontmatter' | 'auto';
|
|
3003
|
+
/** The resolved cell style variant. */
|
|
3004
|
+
style: DashboardStyleId;
|
|
3005
|
+
viewport: ViewportConfig;
|
|
3006
|
+
cells: DashboardCell[];
|
|
3007
|
+
/** Null when the title band is disabled or no title resolves. */
|
|
3008
|
+
title: DashboardTitle | null;
|
|
3009
|
+
/** Canvas-level base fill + theme/doc persistent layers, applied once. */
|
|
3010
|
+
backdrop: {
|
|
3011
|
+
fill: string;
|
|
3012
|
+
bottomLayers: Layer[];
|
|
3013
|
+
topLayers: Layer[];
|
|
3014
|
+
};
|
|
3015
|
+
diagnostics: DashboardDiagnostic[];
|
|
3016
|
+
}
|
|
3017
|
+
declare function materializeDashboard(doc: Doc, options?: MaterializeDashboardOptions): DashboardMaterialization;
|
|
3018
|
+
/**
|
|
3019
|
+
* Flatten a materialization into one canvas-level `Layer[]` for non-React
|
|
3020
|
+
* consumers. Every cell/title layer is mapped into its canvas rect with a
|
|
3021
|
+
* unique id prefix (templates reuse ids like `title`, so the prefix is
|
|
3022
|
+
* what keeps the flat canvas collision-free). Paint order: backdrop
|
|
3023
|
+
* bottom, then per cell its style chrome followed by its block, then the
|
|
3024
|
+
* title band and the backdrop top.
|
|
3025
|
+
*
|
|
3026
|
+
* The flat canvas has no clipping concept, so a cell's full-bleed art is
|
|
3027
|
+
* not rounded to its card corners here the way a React host clips it with
|
|
3028
|
+
* `frame.contentRadiusPct`.
|
|
3029
|
+
*/
|
|
3030
|
+
declare function composeDashboardLayers(materialization: DashboardMaterialization): Layer[];
|
|
3031
|
+
|
|
3032
|
+
/**
|
|
3033
|
+
* Flashcard-mode projection.
|
|
3034
|
+
*
|
|
3035
|
+
* Flashcards are a study rendition of the existing heading-driven Block tree,
|
|
3036
|
+
* not a visual template. The projection keeps rich Markdown nodes and nested
|
|
3037
|
+
* blocks intact so React and future exporters can render the same authored
|
|
3038
|
+
* content without reducing cards to strings.
|
|
3039
|
+
*/
|
|
3040
|
+
|
|
3041
|
+
type FlashcardKind = 'basic' | 'multiple-choice';
|
|
3042
|
+
type FlashcardSourceMode = 'auto' | 'explicit';
|
|
3043
|
+
interface FlashcardFace {
|
|
3044
|
+
/** Blocks rendered on this face, in source order. */
|
|
3045
|
+
blocks: Block[];
|
|
3046
|
+
}
|
|
3047
|
+
interface FlashcardChoice {
|
|
3048
|
+
id: string;
|
|
3049
|
+
sourceBlockId: string;
|
|
3050
|
+
content: FlashcardFace;
|
|
3051
|
+
correct: boolean;
|
|
3052
|
+
}
|
|
3053
|
+
interface Flashcard {
|
|
3054
|
+
id: string;
|
|
3055
|
+
sourceBlockId: string;
|
|
3056
|
+
kind: FlashcardKind;
|
|
3057
|
+
/** Optional parent heading used as a compact deck/category label. */
|
|
3058
|
+
label?: string;
|
|
3059
|
+
front: FlashcardFace;
|
|
3060
|
+
/** Basic-card answer, or the correct answer for a multiple-choice card. */
|
|
3061
|
+
back: FlashcardFace;
|
|
3062
|
+
choices?: FlashcardChoice[];
|
|
3063
|
+
/** Parent-owned body shown after reveal/grading for multi-child cards. */
|
|
3064
|
+
explanation?: FlashcardFace;
|
|
3065
|
+
}
|
|
3066
|
+
type FlashcardDiagnosticCode = 'empty-front' | 'empty-back' | 'multiple-choice-needs-distractor' | 'multiple-correct-answers';
|
|
3067
|
+
interface FlashcardDiagnostic {
|
|
3068
|
+
severity: 'warning' | 'error';
|
|
3069
|
+
code: FlashcardDiagnosticCode;
|
|
3070
|
+
message: string;
|
|
3071
|
+
blockId: string;
|
|
3072
|
+
}
|
|
3073
|
+
interface FlashcardDeck {
|
|
3074
|
+
title?: string;
|
|
3075
|
+
cards: Flashcard[];
|
|
3076
|
+
diagnostics: FlashcardDiagnostic[];
|
|
3077
|
+
}
|
|
3078
|
+
interface MaterializeFlashcardsOptions {
|
|
3079
|
+
/**
|
|
3080
|
+
* `auto` (default) discovers card-shaped blocks and honors explicit study
|
|
3081
|
+
* metadata. `explicit` includes only blocks marked `study=flashcard` or
|
|
3082
|
+
* `study=multiple-choice-flashcard` (and their class/template aliases).
|
|
3083
|
+
*/
|
|
3084
|
+
source?: FlashcardSourceMode;
|
|
3085
|
+
}
|
|
3086
|
+
type FlashcardMarker = FlashcardKind | 'group';
|
|
3087
|
+
/** Resolve an authored study marker without changing the visual template model. */
|
|
3088
|
+
declare function resolveFlashcardMarker(block: Block): FlashcardMarker | undefined;
|
|
3089
|
+
/** Convert a nested Doc into a deterministic study deck. */
|
|
3090
|
+
declare function materializeFlashcards(doc: Doc, options?: MaterializeFlashcardsOptions): FlashcardDeck;
|
|
3091
|
+
|
|
2420
3092
|
/**
|
|
2421
3093
|
* Audio Mapping
|
|
2422
3094
|
*
|
|
@@ -3239,4 +3911,4 @@ declare function treeFromMarkdownList(list: MarkdownList): Tree;
|
|
|
3239
3911
|
/** Find the first top-level markdown list in a block's body, if any. */
|
|
3240
3912
|
declare function findFirstList(contents: MarkdownBlockNode[] | undefined): MarkdownList | undefined;
|
|
3241
3913
|
|
|
3242
|
-
export { ASCII_CHAR_H, ASCII_CHAR_W, ASCII_DIAGRAM_FENCE_LANGS, ASCII_TIMELINE_FENCE_LANGS, type AccentLayout, type AsciiDiagram, type AsciiDiagramDetection, type AsciiDiagramEdge, type AsciiDiagramNode, type AsciiTimeline, type AsciiTimelineDetection, type AsciiTimelineEvent, type AsciiTimelineLink, type AsciiTimelineMarker, type AsciiTimelineSide, type AsciiTimelineStats, type AsciiTimelineStyle, type AsciiTimelineTrack, type AudioSegmentTiming, BASE_INPUT_DESCRIPTORS, BLOCK_MEDIA_LAYOUT_POLICIES, type BlockLayerMaterialization, type BlockMediaLayoutPolicy, type BuildPreviewDocOptions, type BuiltInTemplateName, CONTAINER_TEMPLATES, COVER_SLIDE_FRONTMATTER_KEYS, COVER_SLIDE_TEMPLATE_OPTIONS, type ClipBox, type ConnectorAnchor, type ConnectorPort, type ConnectorRouting, type ConnectorSnapPoint, type CoverBlockInput, type CoverSlidePlayback, type CoverSlideSettings, type CoverSlideTemplate, type CoverSlideTemplateOption, DEFAULT_COVER_SLIDE_SETTINGS, DEFAULT_LAYOUT, DIAGRAM_LABEL_HORIZONTAL_PADDING, DIAGRAM_LABEL_LINE_HEIGHT, DIAGRAM_LABEL_MIN_FONT_SIZE, DIAGRAM_LABEL_VERTICAL_PADDING, type DataFenceParseResult, type DeriveTemplateInputsOptions, type DetectAsciiTimelineOptions, type DiagramEdge, type DiagramLabelFit, type DiagramLayout, type DiagramLayoutOptions, type DiagramNodePosition, DocBlock, type DrawingConnector, type DrawingLayout, type DrawingLayoutOptions, type DrawingShape, type DrawingShapeKind, type EmbeddedVideo, type ExpandDocBlocksOptions, type ExtractedTableData, type FirstImage, type InputCoercion, type LayerMaterializationDiagnostic, type LayerMaterializationFailureMode, type LayerMaterializationSource, type LayoutLayerDefaults, type LayoutLayersResult, MAX_COVER_SLIDE_DURATION_SECONDS, type MarkdownToDocOptions, type MarkdownValidationResult, type MaterializeBlockLayersOptions, type NarrationResolution, type NativeMediaLayout, type NoMediaLayout, PAGE_BASE_CSS, PATH_SHAPE_KINDS, PageSection, type PageSectionContext, type PageSectionDraft, PersistentLayerConfig, type RenderAsciiDiagramOptions, type RenderAsciiTimelineOptions, type RenderTreeOptions, type RepairResult, type ResolvedPageBlock, type RichListItem, type RuntimeTemplateRegistry, SHAPE_NAMES, type SectionExtractor, type SupplementalMediaLayoutVariant, type SupplementalMediaShape, type SupplementalMediaVariantMatrix, TABLE_FED_TEMPLATES, TEMPLATE_AUTHORING_METADATA, TEMPLATE_INPUT_DESCRIPTORS, TEMPLATE_METADATA, TREE_FENCE_LANGS, type TemplateAuthoringMetadata, type TemplateAuthoringRole, TemplateBlock, type TemplateBodyPolicy, TemplateContext, type TemplateInputDescriptor, type TemplateMediaOwnership, type TemplateMetadata, type TemplateParamFinding, Theme, ThemeColorScheme, type Tree, type TreeDetection, type TreeItem, type TreeNode, type UnconsumedMediaBehavior, type ValidateOptions, ViewportConfig, ViewportOrientation, adjustY, anchorPoint, applyNarrationTiming, applyRenderStyleToLayers, asciiCellToCanvas, asciiDiagramFromBlocks, asciiDiagramFromTemplateData, asciiDiagramToTemplateData, asciiTimelineToTemplateData, autoTemplatePreservesContent, bigText, buildPageCss, buildPageCssVars, buildPreviewDoc, buildRegistry, canvasToAsciiCell, clipEndpoints, clipPoint, coerceTemplateParams, comparisonBar, computeDiagramLayout, computeDrawingLayout, computeLayoutLayers, connectorPath, contentBlock, countBlocks, coverBlock, createAccentLayers, cssFilterForTreatment, dataTable, dateEvent, definitionCard, deriveTemplateInputs, detectAsciiDiagram, detectAsciiTimeline, detectTree, diagramBlock, docToMarkdown, documentTitleFromFileName, drawingBlock, expandCoverBlock, expandDocBlocks, expandPersistentLayers, extractBlockquoteText, extractBodyPlainText, extractEmbeddedVideos, extractFirstEmbeddedVideo, extractFirstImage, extractImages, extractListItems, extractRichListItems, extractTableData, extractTableFromContents, factCard, fallbackBlockLayers, findFirstList, findFirstTable, fitBigTextSize, fitDiagramLabel, flattenBlocks, flattenRenderableBlocks, fullBleedQuote, getAccentLayout, getAnimationProgress, getAnimationStyle, getAvailableTemplates, getBlockBodyText, getBlockDepth, getBlockMediaLayoutPolicy, getDefaultAnimation, getDefaultAnimationDuration, getOverlayOpacity, getPersistentLayersFromTheme, getPinnedBlockMeta, getTemplateHint, getThemeFont, getTransitionClass, hasTemplate, imageWithCaption, isAsciiDiagramFence, isAsciiTimelineFence, isContainerTemplate, isDataFence, isEligibleAsciiFenceLang, isEligibleAsciiTimelineFenceLang, isEligibleTreeFenceLang, isExplicitDiagramLang, isExplicitTimelineLang, isExplicitTreeLang, isRepairableDiagram, isShapeName, isTemplatedPageBlock, isTreeFence, isWrappedFlowTimelineSource, layoutBlock, leftFeature, lineStyleDasharray, lintTemplateParams, listBlock, mapBlock, markdownToDoc, markerPath, materializeBlockLayers, nearestSnapPoint, normalizeShapeKind, pageStyleDataAttributes, parseAsciiDiagram, parseAsciiTimeline, parseAsciiTimelineWithStats, parseDataFence, parseTree, parseWrappedFlowTimeline, parseYamlSubset, photoGrid, pullQuote, quoteBlock, readCustomTemplatesFromFrontmatter, readCustomThemesFromFrontmatter, renderAsciiDiagram, renderAsciiTimeline, renderTree, repairAsciiDiagram, replaceDataFence, resolveAudioMapping, resolveColorScheme, resolveCoverSlideSettings, resolvePageBlock, resolvePersistentLayers, resolveTemplateName, resolveThemeForDoc, rightFeature, scaleAnimationDuration, scoreTextSimilarity, sectionExtractors, sectionHeader, shapePath, shouldUseShadow, snapEndpoints, snapPoints, statHighlight, templateRegistry, themeWantsAmbientMotion, themedEntrance, themedFontSize, themedImageTreatment, themedScrim, themedSurfaceGradient, timelineBlock, titleBlock, treeBlock, treeFromMarkdownList, treeFromTemplateData, treeToTemplateData, twoColumn, validateMarkdownDoc, validateMarkdownSource, videoPullQuote, videoWithCaption, wrapWithPersistentLayers, writeCustomTemplatesToFrontmatter, writeCustomThemesToFrontmatter };
|
|
3914
|
+
export { ASCII_CHAR_H, ASCII_CHAR_W, ASCII_DIAGRAM_FENCE_LANGS, ASCII_TIMELINE_FENCE_LANGS, type AccentLayout, type AsciiDiagram, type AsciiDiagramDetection, type AsciiDiagramEdge, type AsciiDiagramNode, type AsciiTimeline, type AsciiTimelineDetection, type AsciiTimelineEvent, type AsciiTimelineLink, type AsciiTimelineMarker, type AsciiTimelineSide, type AsciiTimelineStats, type AsciiTimelineStyle, type AsciiTimelineTrack, type AudioSegmentTiming, BASE_INPUT_DESCRIPTORS, BLOCK_MEDIA_LAYOUT_POLICIES, BUILTIN_DASHBOARD_LAYOUTS, type BlockLayerMaterialization, type BlockMediaLayoutPolicy, type BuildPreviewDocOptions, type BuiltInTemplateName, CONTAINER_TEMPLATES, COVER_SLIDE_FRONTMATTER_KEYS, COVER_SLIDE_TEMPLATE_OPTIONS, type ClipBox, type ConnectorAnchor, type ConnectorPort, type ConnectorRouting, type ConnectorSnapPoint, type CoverBlockInput, type CoverSlidePlayback, type CoverSlideSettings, type CoverSlideTemplate, type CoverSlideTemplateOption, DASHBOARD_AUTO_LAYOUT_ID, DASHBOARD_FRONTMATTER_KEYS, DASHBOARD_STYLES, DASHBOARD_STYLE_IDS, DASHBOARD_ZOOM_LEVELS, DEFAULT_COVER_SLIDE_SETTINGS, DEFAULT_DASHBOARD_SETTINGS, DEFAULT_DASHBOARD_STYLE, DEFAULT_LAYOUT, DIAGRAM_LABEL_HORIZONTAL_PADDING, DIAGRAM_LABEL_LINE_HEIGHT, DIAGRAM_LABEL_MIN_FONT_SIZE, DIAGRAM_LABEL_VERTICAL_PADDING, type DashboardCell, type DashboardCellChrome, type DashboardCellDefinition, type DashboardCellFrame, type DashboardDiagnostic, type DashboardLayoutDefinition, type DashboardLayoutSummary, type DashboardLayoutValidationError, type DashboardLayoutValidationResult, type DashboardMaterialization, type DashboardRectPct, type DashboardSettings, type DashboardSettingsOverrides, type DashboardStyleId, type DashboardStyleSummary, type DashboardTitle, type DashboardTitleSlotDefinition, type DashboardZoomCandidate, type DashboardZoomLevel, type DashboardZoomMode, type DataFenceParseResult, type DeriveTemplateInputsOptions, type DetectAsciiTimelineOptions, type DiagramEdge, type DiagramLabelFit, type DiagramLayout, type DiagramLayoutOptions, type DiagramNodePosition, DocBlock, type DrawingConnector, type DrawingLayout, type DrawingLayoutOptions, type DrawingShape, type DrawingShapeKind, type EmbeddedVideo, type ExpandDocBlocksOptions, type ExtractedTableData, FRONTMATTER_DASHBOARD_LAYOUTS_KEY, type FirstImage, type Flashcard, type FlashcardChoice, type FlashcardDeck, type FlashcardDiagnostic, type FlashcardDiagnosticCode, type FlashcardFace, type FlashcardKind, type FlashcardSourceMode, type InputCoercion, type LayerMaterializationDiagnostic, type LayerMaterializationFailureMode, type LayerMaterializationSource, type LayoutLayerDefaults, type LayoutLayersResult, MAX_COVER_SLIDE_DURATION_SECONDS, type MarkdownToDocOptions, type MarkdownValidationResult, type MaterializeBlockLayersOptions, type MaterializeDashboardOptions, type MaterializeFlashcardsOptions, type NarrationResolution, type NativeMediaLayout, type NoMediaLayout, PAGE_BASE_CSS, PATH_SHAPE_KINDS, PageSection, type PageSectionContext, type PageSectionDraft, PersistentLayerConfig, type RenderAsciiDiagramOptions, type RenderAsciiTimelineOptions, type RenderTreeOptions, type RepairResult, type ResolvedDashboardCell, type ResolvedPageBlock, type RichListItem, type RuntimeTemplateRegistry, SHAPE_NAMES, type SectionExtractor, type SupplementalMediaLayoutVariant, type SupplementalMediaShape, type SupplementalMediaVariantMatrix, TABLE_FED_TEMPLATES, TEMPLATE_AUTHORING_METADATA, TEMPLATE_INPUT_DESCRIPTORS, TEMPLATE_METADATA, TREE_FENCE_LANGS, type TemplateAuthoringMetadata, type TemplateAuthoringRole, TemplateBlock, type TemplateBodyPolicy, TemplateContext, type TemplateInputDescriptor, type TemplateMediaOwnership, type TemplateMetadata, type TemplateParamFinding, Theme, ThemeColorScheme, type Tree, type TreeDetection, type TreeItem, type TreeNode, type UnconsumedMediaBehavior, type ValidateOptions, ViewportConfig, ViewportOrientation, adjustY, anchorPoint, applyNarrationTiming, applyRenderStyleToLayers, asciiCellToCanvas, asciiDiagramFromBlocks, asciiDiagramFromTemplateData, asciiDiagramToTemplateData, asciiTimelineToTemplateData, autoTemplatePreservesContent, bigText, buildDashboardCellChrome, buildPageCss, buildPageCssVars, buildPreviewDoc, buildRegistry, canvasToAsciiCell, chooseDashboardLayout, clipEndpoints, clipPoint, coerceTemplateParams, comparisonBar, composeDashboardLayers, computeDiagramLayout, computeDrawingLayout, computeLayoutLayers, connectorPath, contentBlock, countBlocks, coverBlock, createAccentLayers, cssFilterForTreatment, dashboardCanvasFill, dashboardCellAccent, dataTable, dateEvent, definitionCard, deriveTemplateInputs, desiredCellZoom, detectAsciiDiagram, detectAsciiTimeline, detectTree, diagramBlock, docToMarkdown, documentTitleFromFileName, drawingBlock, expandCoverBlock, expandDocBlocks, expandPersistentLayers, extractBlockquoteText, extractBodyPlainText, extractEmbeddedVideos, extractFirstEmbeddedVideo, extractFirstImage, extractImages, extractListItems, extractRichListItems, extractTableData, extractTableFromContents, factCard, fallbackBlockLayers, findFirstList, findFirstTable, fitBigTextSize, fitDiagramLabel, flattenBlocks, flattenRenderableBlocks, fullBleedQuote, getAccentLayout, getAnimationProgress, getAnimationStyle, getAvailableTemplates, getBlockBodyText, getBlockDepth, getBlockMediaLayoutPolicy, getDashboardLayoutSummaries, getDefaultAnimation, getDefaultAnimationDuration, getOverlayOpacity, getPersistentLayersFromTheme, getPinnedBlockMeta, getTemplateHint, getThemeFont, getTransitionClass, hasTemplate, imageWithCaption, isAsciiDiagramFence, isAsciiTimelineFence, isContainerTemplate, isDataFence, isEligibleAsciiFenceLang, isEligibleAsciiTimelineFenceLang, isEligibleTreeFenceLang, isExplicitDiagramLang, isExplicitTimelineLang, isExplicitTreeLang, isRepairableDiagram, isShapeName, isTemplatedPageBlock, isTreeFence, isWrappedFlowTimelineSource, layoutBlock, layoutCapacity, leftFeature, lineStyleDasharray, lintTemplateParams, listBlock, listDashboardLayouts, mapBlock, markdownBlockSeparatorLines, markdownToDoc, markerPath, materializeBlockLayers, materializeDashboard, materializeFlashcards, nearestSnapPoint, normalizeDashboardZoom, normalizeShapeKind, pageStyleDataAttributes, parseAsciiDiagram, parseAsciiTimeline, parseAsciiTimelineWithStats, parseDataFence, parseTree, parseWrappedFlowTimeline, parseYamlSubset, photoGrid, pullQuote, quoteBlock, readCustomTemplatesFromFrontmatter, readCustomThemesFromFrontmatter, readDashboardLayoutsFromFrontmatter, renderAsciiDiagram, renderAsciiTimeline, renderMarkdownBlocksHtml, renderTree, repairAsciiDiagram, replaceDataFence, resolveAudioMapping, resolveColorScheme, resolveCoverSlideSettings, resolveDashboardLayoutDefinition, resolveDashboardSettings, resolveDashboardStyleId, resolveDashboardZooms, resolveFlashcardMarker, resolveLayoutCells, resolvePageBlock, resolvePersistentLayers, resolveTemplateName, resolveThemeForDoc, rightFeature, scaleAnimationDuration, scoreTextSimilarity, sectionExtractors, sectionHeader, shapePath, shouldUseShadow, snapEndpoints, snapPoints, statHighlight, stripBlockBackdropLayer, stripsBlockBackdrop, templateRegistry, themeWantsAmbientMotion, themedEntrance, themedFontSize, themedImageTreatment, themedScrim, themedSurfaceGradient, timelineBlock, titleBlock, transposeCells, treeBlock, treeFromMarkdownList, treeFromTemplateData, treeToTemplateData, twoColumn, validateDashboardLayoutDefinition, validateMarkdownDoc, validateMarkdownSource, videoPullQuote, videoWithCaption, wrapWithPersistentLayers, writeCustomTemplatesToFrontmatter, writeCustomThemesToFrontmatter, writeDashboardLayoutsToFrontmatter };
|