@bendyline/squisq 2.3.2 → 2.3.3

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.
@@ -5,6 +5,7 @@ import {
5
5
  coerceTemplateParams,
6
6
  deriveTemplateInputs,
7
7
  extractBodyPlainText,
8
+ extractRichListItems,
8
9
  flattenBlocks,
9
10
  flattenRenderableBlocks,
10
11
  getBlockBodyText,
@@ -24,7 +25,7 @@ import {
24
25
  templateRegistry,
25
26
  writeCustomTemplatesToFrontmatter,
26
27
  writeCustomThemesToFrontmatter
27
- } from "./chunk-CKZY6K5R.js";
28
+ } from "./chunk-GQNH7PLN.js";
28
29
  import {
29
30
  ASCII_TREE_VOCAB,
30
31
  ASCII_VOCAB,
@@ -59,12 +60,12 @@ import {
59
60
  } from "./chunk-BAOV476U.js";
60
61
  import {
61
62
  parseMarkdown
62
- } from "./chunk-ACZOVWX3.js";
63
+ } from "./chunk-G3JOS25T.js";
63
64
  import {
64
65
  KNOWN_BLOCK_META_KEYS,
65
66
  coerceAnnotationValues,
66
67
  serializeAnnotation
67
- } from "./chunk-ZQKZSJAX.js";
68
+ } from "./chunk-2VCNTDNZ.js";
68
69
  import {
69
70
  extractPlainText,
70
71
  getChildren,
@@ -763,11 +764,16 @@ var fullBleedQuote = (input) => {
763
764
  };
764
765
  var list = (input) => {
765
766
  const l = input;
767
+ const contents = input.contents;
768
+ const richItems = extractRichListItems(contents);
766
769
  return {
767
770
  kind: "item-list",
768
771
  slots: {
769
772
  title: l.title,
770
- items: (l.items ?? []).map((item) => ({ body: item })),
773
+ items: (l.items ?? []).map((item, index) => ({
774
+ body: item,
775
+ ...richItems[index]?.text === item ? { markdown: richItems[index].markdown } : {}
776
+ })),
771
777
  media: accentImageMedia(l.accentImage)
772
778
  },
773
779
  colorScheme: l.colorScheme
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  assertMarkdownDocumentWithinLimits,
3
3
  toMdast
4
- } from "./chunk-ACZOVWX3.js";
4
+ } from "./chunk-G3JOS25T.js";
5
5
  import {
6
6
  formatFrontmatterYaml
7
7
  } from "./chunk-BCCXTMN5.js";
@@ -200,249 +200,6 @@ ${cleaned}`;
200
200
  return cleaned;
201
201
  }
202
202
 
203
- // src/markdown/sanitize.ts
204
- var SAFE_LINK_SCHEMES = /* @__PURE__ */ new Set(["http", "https", "mailto", "tel"]);
205
- var SAFE_MEDIA_SCHEMES = /* @__PURE__ */ new Set(["http", "https", "blob"]);
206
- var NEVER_ALLOWED_SCHEMES = /* @__PURE__ */ new Set(["javascript", "vbscript", "data"]);
207
- var SAFE_DATA_MEDIA_RE = /^data:(?:image\/(?!svg\+xml)[a-z0-9.+-]+|audio\/[a-z0-9.+-]+|video\/[a-z0-9.+-]+);/i;
208
- var SAFE_TAGS = /* @__PURE__ */ new Set([
209
- "a",
210
- "abbr",
211
- "b",
212
- "blockquote",
213
- "br",
214
- "caption",
215
- "cite",
216
- "code",
217
- "col",
218
- "colgroup",
219
- "data",
220
- "dd",
221
- "del",
222
- "details",
223
- "dfn",
224
- "div",
225
- "dl",
226
- "dt",
227
- "em",
228
- "figcaption",
229
- "figure",
230
- "h1",
231
- "h2",
232
- "h3",
233
- "h4",
234
- "h5",
235
- "h6",
236
- "hr",
237
- "i",
238
- "img",
239
- "kbd",
240
- "li",
241
- "mark",
242
- "ol",
243
- "p",
244
- "pre",
245
- "q",
246
- "s",
247
- "samp",
248
- "small",
249
- "source",
250
- "span",
251
- "strong",
252
- "sub",
253
- "summary",
254
- "sup",
255
- "table",
256
- "tbody",
257
- "td",
258
- "tfoot",
259
- "th",
260
- "thead",
261
- "time",
262
- "tr",
263
- "track",
264
- "u",
265
- "ul",
266
- "var",
267
- "video",
268
- "audio"
269
- ]);
270
- var DROP_WITH_CONTENT_TAGS = /* @__PURE__ */ new Set([
271
- "base",
272
- "button",
273
- "embed",
274
- "form",
275
- "iframe",
276
- "input",
277
- "link",
278
- "meta",
279
- "object",
280
- "option",
281
- "script",
282
- "select",
283
- "style",
284
- "svg",
285
- "template",
286
- "textarea"
287
- ]);
288
- var GLOBAL_ATTRS = /* @__PURE__ */ new Set(["class", "id", "title", "role"]);
289
- var TAG_ATTRS = {
290
- a: /* @__PURE__ */ new Set(["href", "target", "rel"]),
291
- audio: /* @__PURE__ */ new Set(["src", "controls", "preload", "muted", "loop"]),
292
- col: /* @__PURE__ */ new Set(["span", "width"]),
293
- colgroup: /* @__PURE__ */ new Set(["span"]),
294
- data: /* @__PURE__ */ new Set(["value"]),
295
- img: /* @__PURE__ */ new Set(["src", "alt", "width", "height", "loading", "decoding"]),
296
- li: /* @__PURE__ */ new Set(["value"]),
297
- ol: /* @__PURE__ */ new Set(["start", "type"]),
298
- q: /* @__PURE__ */ new Set(["cite"]),
299
- source: /* @__PURE__ */ new Set(["src", "type", "media"]),
300
- td: /* @__PURE__ */ new Set(["colspan", "rowspan", "align"]),
301
- th: /* @__PURE__ */ new Set(["colspan", "rowspan", "align", "scope"]),
302
- time: /* @__PURE__ */ new Set(["datetime"]),
303
- track: /* @__PURE__ */ new Set(["src", "kind", "label", "srclang", "default"]),
304
- video: /* @__PURE__ */ new Set([
305
- "src",
306
- "poster",
307
- "width",
308
- "height",
309
- "controls",
310
- "preload",
311
- "muted",
312
- "loop",
313
- "playsinline"
314
- ])
315
- };
316
- var SAFE_ATTR_NAME_RE = /^[a-z][a-z0-9:_.-]*$/;
317
- var SAFE_OL_TYPES = /* @__PURE__ */ new Set(["1", "a", "A", "i", "I"]);
318
- var SAFE_PRELOAD_VALUES = /* @__PURE__ */ new Set(["none", "metadata", "auto"]);
319
- var SAFE_TRACK_KINDS = /* @__PURE__ */ new Set(["subtitles", "captions", "descriptions", "chapters", "metadata"]);
320
- function sanitizeUrl(url, kind = "link", options) {
321
- if (typeof url !== "string") return null;
322
- const trimmed = url.trim();
323
- if (!trimmed) return null;
324
- const compact = stripUrlSchemeNoise(trimmed);
325
- const colon = compact.indexOf(":");
326
- const firstPathChar = firstIndexOfAny(compact, ["/", "?", "#"]);
327
- const hasScheme = colon >= 0 && (firstPathChar < 0 || colon < firstPathChar);
328
- if (!hasScheme) return trimmed;
329
- const scheme = compact.slice(0, colon).toLowerCase();
330
- if (kind === "media") {
331
- if (scheme === "data") return SAFE_DATA_MEDIA_RE.test(compact) ? trimmed : null;
332
- return SAFE_MEDIA_SCHEMES.has(scheme) ? trimmed : null;
333
- }
334
- if (SAFE_LINK_SCHEMES.has(scheme)) return trimmed;
335
- if (options?.extraLinkSchemes?.includes(scheme) && !NEVER_ALLOWED_SCHEMES.has(scheme)) {
336
- return trimmed;
337
- }
338
- return null;
339
- }
340
- function sanitizeHtmlNodes(nodes) {
341
- const out = [];
342
- for (const node of nodes) {
343
- out.push(...sanitizeHtmlNode(node));
344
- }
345
- return out;
346
- }
347
- function sanitizeHtmlNode(node) {
348
- switch (node.type) {
349
- case "htmlText":
350
- return [node];
351
- case "htmlComment":
352
- return [];
353
- case "htmlElement":
354
- return sanitizeHtmlElement(node);
355
- }
356
- }
357
- function sanitizeHtmlElement(node) {
358
- const tag = node.tagName.toLowerCase();
359
- if (DROP_WITH_CONTENT_TAGS.has(tag)) return [];
360
- const children = sanitizeHtmlNodes(node.children);
361
- if (!SAFE_TAGS.has(tag)) return children;
362
- return [
363
- {
364
- type: "htmlElement",
365
- tagName: tag,
366
- attributes: sanitizeAttrs(tag, node.attributes),
367
- children,
368
- selfClosing: node.selfClosing
369
- }
370
- ];
371
- }
372
- function sanitizeAttrs(tag, attrs) {
373
- const out = {};
374
- for (const [rawName, rawValue] of Object.entries(attrs)) {
375
- const name = rawName.toLowerCase();
376
- if (!isAllowedAttr(tag, name)) continue;
377
- const value = String(rawValue);
378
- const safeValue = sanitizeAttrValue(tag, name, value);
379
- if (safeValue === null) continue;
380
- out[name] = safeValue;
381
- }
382
- if (tag === "a" && out.target === "_blank") {
383
- out.rel = ensureRelTokens(out.rel, ["noopener", "noreferrer"]);
384
- }
385
- return out;
386
- }
387
- function isAllowedAttr(tag, name) {
388
- if (!SAFE_ATTR_NAME_RE.test(name)) return false;
389
- if (name.startsWith("on")) return false;
390
- if (name.startsWith("aria-") || name.startsWith("data-")) return true;
391
- if (GLOBAL_ATTRS.has(name)) return true;
392
- return TAG_ATTRS[tag]?.has(name) ?? false;
393
- }
394
- function sanitizeAttrValue(tag, name, value) {
395
- if (name === "href") return sanitizeUrl(value, "link");
396
- if (name === "src" || name === "poster") return sanitizeUrl(value, "media");
397
- if ((name === "width" || name === "height" || name === "span" || name === "colspan" || name === "rowspan" || name === "value") && !isNonNegativeInteger(value)) {
398
- return null;
399
- }
400
- if (name === "start" && !isInteger(value)) return null;
401
- if (name === "type" && tag === "ol" && !SAFE_OL_TYPES.has(value)) return null;
402
- if (name === "preload" && !SAFE_PRELOAD_VALUES.has(value)) return null;
403
- if (name === "kind" && tag === "track" && !SAFE_TRACK_KINDS.has(value)) return null;
404
- if (name === "align" && value !== "left" && value !== "right" && value !== "center") return null;
405
- if (name === "target")
406
- return value === "_blank" || value === "_self" || value === "_parent" || value === "_top" ? value : null;
407
- if (name === "rel") return sanitizeRel(value);
408
- return value;
409
- }
410
- function sanitizeRel(value) {
411
- return relTokens(value).join(" ");
412
- }
413
- function ensureRelTokens(value, required) {
414
- const tokens = new Set(value ? relTokens(value) : []);
415
- for (const token of required) tokens.add(token);
416
- return Array.from(tokens).join(" ");
417
- }
418
- function relTokens(value) {
419
- const tokens = value.split(/\s+/).map((token) => token.trim().toLowerCase()).filter(Boolean).filter((token) => /^[a-z0-9_-]+$/.test(token));
420
- return Array.from(new Set(tokens));
421
- }
422
- function isInteger(value) {
423
- return /^-?\d+$/.test(value.trim());
424
- }
425
- function isNonNegativeInteger(value) {
426
- return /^\d+$/.test(value.trim());
427
- }
428
- function firstIndexOfAny(value, needles) {
429
- let result = -1;
430
- for (const needle of needles) {
431
- const index = value.indexOf(needle);
432
- if (index >= 0 && (result < 0 || index < result)) result = index;
433
- }
434
- return result;
435
- }
436
- function stripUrlSchemeNoise(value) {
437
- let out = "";
438
- for (const char of value) {
439
- const code = char.charCodeAt(0);
440
- if (code <= 32 || code === 127 || char.trim() === "") continue;
441
- out += char;
442
- }
443
- return out;
444
- }
445
-
446
203
  // src/markdown/resourcePolicy.ts
447
204
  var DEFAULT_RESOURCE_MAX_BYTES = 64 * 1024 * 1024;
448
205
  var DEFAULT_RESOURCE_TIMEOUT_MS = 15e3;
@@ -633,8 +390,6 @@ function tooLarge(maxBytes) {
633
390
 
634
391
  export {
635
392
  stringifyMarkdown,
636
- sanitizeUrl,
637
- sanitizeHtmlNodes,
638
393
  DEFAULT_RESOURCE_MAX_BYTES,
639
394
  DEFAULT_RESOURCE_TIMEOUT_MS,
640
395
  DEFAULT_INTERACTIVE_RESOURCE_POLICY,
@@ -2,8 +2,8 @@ import { aY as TemplateBlock, aZ as TemplateContext, W as Layer, q as CustomTemp
2
2
  export { K as FRONTMATTER_CUSTOM_TEMPLATES_KEY, L as FRONTMATTER_CUSTOM_THEMES_KEY, Y as LayoutHints, aK as RenderStyle, b3 as ThemeColorPalette, b9 as ThemeStyle, ba as ThemeTypography, bn as VIEWPORT_PRESETS, bt as ViewportPreset, by as createTemplateContext, bF as getLayoutHints, bI as getTwoColumnPositions, bJ as getViewport, bK as getViewportOrientation, bM as isTemplateBlock, bP as scaledFontSize } from '../Doc-BrgZC7SE.js';
3
3
  import { K as MarkdownNode, a2 as TransitionType, a1 as TransitionDirection, M as MarkdownBlockNode, r as MarkdownHeading, n as MarkdownDocument, S as MarkdownTable, i as MarkdownCodeBlock, F as MarkdownList } from '../types-CUNc9biN.js';
4
4
  import { C as CoercedBlockMeta } from '../annotationCoercion-PtRQhk5V.js';
5
- import { c as PageSection } from '../materializePageSection-DAbyLi-k.js';
6
- export { M as MaterializePageSectionOptions, a as MaterializePageSectionsOptions, P as PageMedia, b as PageRichText, d as PageSectionDiagnostic, e as PageSectionItem, f as PageSectionMaterialization, g as PageSectionSource, h as PageSpatialKind, i as PageTransformHints, m as materializePageSection, j as materializePageSections, r as resolvePageStyle } from '../materializePageSection-DAbyLi-k.js';
5
+ import { c as PageSection } from '../materializePageSection-CrZWYnXM.js';
6
+ export { M as MaterializePageSectionOptions, a as MaterializePageSectionsOptions, P as PageMedia, b as PageRichText, d as PageSectionDiagnostic, e as PageSectionItem, f as PageSectionMaterialization, g as PageSectionSource, h as PageSpatialKind, i as PageTransformHints, m as materializePageSection, j as materializePageSections, r as resolvePageStyle } from '../materializePageSection-CrZWYnXM.js';
7
7
  import { C as ContentContainer } from '../ContentContainer-B2w9sUoL.js';
8
8
  export { D as DEFAULT_THEME, g as getAvailableThemes, b as getThemeSummaries, r as resolveTheme } from '../themeLibrary-DJt89gyP.js';
9
9
 
@@ -1660,6 +1660,14 @@ interface EmbeddedVideo {
1660
1660
  declare function extractBodyPlainText(contents?: MarkdownBlockNode[]): string;
1661
1661
  /** Extract list items as plain text. */
1662
1662
  declare function extractListItems(contents?: MarkdownBlockNode[]): string[];
1663
+ /** One authored Markdown list item with both plain and rich projections. */
1664
+ interface RichListItem {
1665
+ text: string;
1666
+ markdown: MarkdownBlockNode[];
1667
+ html?: string;
1668
+ }
1669
+ /** Extract list items without discarding their inline Markdown formatting. */
1670
+ declare function extractRichListItems(contents?: MarkdownBlockNode[]): RichListItem[];
1663
1671
  /**
1664
1672
  * Find images referenced anywhere in block contents — both markdown
1665
1673
  * shorthand `![alt](url)` (type `image`) and raw HTML `<img>` tags
@@ -2962,4 +2970,4 @@ declare function treeFromMarkdownList(list: MarkdownList): Tree;
2962
2970
  /** Find the first top-level markdown list in a block's body, if any. */
2963
2971
  declare function findFirstList(contents: MarkdownBlockNode[] | undefined): MarkdownList | undefined;
2964
2972
 
2965
- 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 BuiltInTemplateName, CONTAINER_TEMPLATES, type ClipBox, type ConnectorAnchor, type ConnectorPort, type ConnectorRouting, type ConnectorSnapPoint, type CoverBlockInput, 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, 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 RuntimeTemplateRegistry, SHAPE_NAMES, type SectionExtractor, type SupplementalMediaLayoutVariant, type SupplementalMediaShape, type SupplementalMediaVariantMatrix, 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, buildPageCss, buildPageCssVars, buildRegistry, canvasToAsciiCell, clipEndpoints, clipPoint, coerceTemplateParams, comparisonBar, computeDiagramLayout, computeDrawingLayout, computeLayoutLayers, connectorPath, contentBlock, countBlocks, coverBlock, createAccentLayers, cssFilterForTreatment, dataTable, dateEvent, definitionCard, deriveTemplateInputs, detectAsciiDiagram, detectAsciiTimeline, detectTree, diagramBlock, docToMarkdown, drawingBlock, expandCoverBlock, expandDocBlocks, expandPersistentLayers, extractBlockquoteText, extractBodyPlainText, extractEmbeddedVideos, extractFirstEmbeddedVideo, extractFirstImage, extractImages, extractListItems, extractTableData, extractTableFromContents, factCard, fallbackBlockLayers, findFirstList, findFirstTable, 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, 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 };
2973
+ 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 BuiltInTemplateName, CONTAINER_TEMPLATES, type ClipBox, type ConnectorAnchor, type ConnectorPort, type ConnectorRouting, type ConnectorSnapPoint, type CoverBlockInput, 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, 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, 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, buildPageCss, buildPageCssVars, buildRegistry, canvasToAsciiCell, clipEndpoints, clipPoint, coerceTemplateParams, comparisonBar, computeDiagramLayout, computeDrawingLayout, computeLayoutLayers, connectorPath, contentBlock, countBlocks, coverBlock, createAccentLayers, cssFilterForTreatment, dataTable, dateEvent, definitionCard, deriveTemplateInputs, detectAsciiDiagram, detectAsciiTimeline, detectTree, diagramBlock, docToMarkdown, drawingBlock, expandCoverBlock, expandDocBlocks, expandPersistentLayers, extractBlockquoteText, extractBodyPlainText, extractEmbeddedVideos, extractFirstEmbeddedVideo, extractFirstImage, extractImages, extractListItems, extractRichListItems, extractTableData, extractTableFromContents, factCard, fallbackBlockLayers, findFirstList, findFirstTable, 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, 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 };
package/dist/doc/index.js CHANGED
@@ -26,7 +26,7 @@ import {
26
26
  sectionExtractors,
27
27
  validateMarkdownDoc,
28
28
  validateMarkdownSource
29
- } from "../chunk-ZAFLMJPD.js";
29
+ } from "../chunk-IZLKI3IL.js";
30
30
  import {
31
31
  ASCII_CHAR_H,
32
32
  ASCII_CHAR_W,
@@ -77,6 +77,7 @@ import {
77
77
  extractFirstImage,
78
78
  extractImages,
79
79
  extractListItems,
80
+ extractRichListItems,
80
81
  extractTableData,
81
82
  extractTableFromContents,
82
83
  factCard,
@@ -146,7 +147,7 @@ import {
146
147
  wrapWithPersistentLayers,
147
148
  writeCustomTemplatesToFrontmatter,
148
149
  writeCustomThemesToFrontmatter
149
- } from "../chunk-CKZY6K5R.js";
150
+ } from "../chunk-GQNH7PLN.js";
150
151
  import {
151
152
  PATH_SHAPE_KINDS,
152
153
  anchorPoint,
@@ -202,8 +203,8 @@ import {
202
203
  isTemplateBlock,
203
204
  scaledFontSize2 as scaledFontSize
204
205
  } from "../chunk-BAOV476U.js";
205
- import "../chunk-ACZOVWX3.js";
206
- import "../chunk-ZQKZSJAX.js";
206
+ import "../chunk-G3JOS25T.js";
207
+ import "../chunk-2VCNTDNZ.js";
207
208
  import "../chunk-7N4G32LG.js";
208
209
  import "../chunk-BCCXTMN5.js";
209
210
  import "../chunk-4VOD55SX.js";
@@ -282,6 +283,7 @@ export {
282
283
  extractFirstImage,
283
284
  extractImages,
284
285
  extractListItems,
286
+ extractRichListItems,
285
287
  extractTableData,
286
288
  extractTableFromContents,
287
289
  factCard,
package/dist/index.d.ts CHANGED
@@ -5,8 +5,8 @@ export { AVAILABLE_FONT_STACKS, CompileOptions, ContrastPreset, FONT_FALLBACKS,
5
5
  export { D as DEFAULT_THEME, a as DEFAULT_THEME_ID, T as THEMES, g as getAvailableThemes, b as getThemeSummaries, r as resolveTheme } from './themeLibrary-DJt89gyP.js';
6
6
  export { M as MediaEntry, a as MediaProvider } from './MediaProvider-wpSe21B3.js';
7
7
  export { E as EditorLayerMeta, I as ImageEditCanvas, a as ImageEditDoc, b as ImageEditLayer, c as ImageEditLayerKind, d as ImageEditMeta } from './ImageEditDoc-rum0Xb9P.js';
8
- export { ASCII_CHAR_H, ASCII_CHAR_W, ASCII_DIAGRAM_FENCE_LANGS, ASCII_TIMELINE_FENCE_LANGS, AccentLayout, AsciiDiagram, AsciiDiagramDetection, AsciiDiagramEdge, AsciiDiagramNode, AsciiTimeline, AsciiTimelineDetection, AsciiTimelineEvent, AsciiTimelineLink, AsciiTimelineMarker, AsciiTimelineSide, AsciiTimelineStats, AsciiTimelineStyle, AsciiTimelineTrack, AudioSegmentTiming, BASE_INPUT_DESCRIPTORS, BLOCK_MEDIA_LAYOUT_POLICIES, BlockLayerMaterialization, BlockMediaLayoutPolicy, BuiltInTemplateName, CONTAINER_TEMPLATES, ClipBox, ConnectorAnchor, ConnectorPort, ConnectorRouting, ConnectorSnapPoint, CoverBlockInput, DEFAULT_LAYOUT, DIAGRAM_LABEL_HORIZONTAL_PADDING, DIAGRAM_LABEL_LINE_HEIGHT, DIAGRAM_LABEL_MIN_FONT_SIZE, DIAGRAM_LABEL_VERTICAL_PADDING, DataFenceParseResult, DeriveTemplateInputsOptions, DetectAsciiTimelineOptions, DiagramEdge, DiagramLabelFit, DiagramLayout, DiagramLayoutOptions, DiagramNodePosition, DrawingConnector, DrawingLayout, DrawingLayoutOptions, DrawingShape, DrawingShapeKind, EmbeddedVideo, ExpandDocBlocksOptions, ExtractedTableData, FirstImage, InputCoercion, LayerMaterializationDiagnostic, LayerMaterializationFailureMode, LayerMaterializationSource, LayoutLayerDefaults, LayoutLayersResult, MarkdownToDocOptions, MarkdownValidationResult, MaterializeBlockLayersOptions, NarrationResolution, NativeMediaLayout, NoMediaLayout, PAGE_BASE_CSS, PATH_SHAPE_KINDS, PageSectionContext, PageSectionDraft, RenderAsciiDiagramOptions, RenderAsciiTimelineOptions, RenderTreeOptions, RepairResult, ResolvedPageBlock, RuntimeTemplateRegistry, SHAPE_NAMES, SectionExtractor, SupplementalMediaLayoutVariant, SupplementalMediaShape, SupplementalMediaVariantMatrix, TEMPLATE_AUTHORING_METADATA, TEMPLATE_INPUT_DESCRIPTORS, TEMPLATE_METADATA, TREE_FENCE_LANGS, TemplateAuthoringMetadata, TemplateAuthoringRole, TemplateBodyPolicy, TemplateInputDescriptor, TemplateMediaOwnership, TemplateMetadata, TemplateParamFinding, Tree, TreeDetection, TreeItem, TreeNode, UnconsumedMediaBehavior, ValidateOptions, adjustY, anchorPoint, applyNarrationTiming, applyRenderStyleToLayers, asciiCellToCanvas, asciiDiagramFromBlocks, asciiDiagramFromTemplateData, asciiDiagramToTemplateData, asciiTimelineToTemplateData, autoTemplatePreservesContent, buildPageCss, buildPageCssVars, buildRegistry, canvasToAsciiCell, clipEndpoints, clipPoint, coerceTemplateParams, comparisonBar, computeDiagramLayout, computeDrawingLayout, computeLayoutLayers, connectorPath, contentBlock, countBlocks, coverBlock, createAccentLayers, cssFilterForTreatment, dataTable, dateEvent, definitionCard, deriveTemplateInputs, detectAsciiDiagram, detectAsciiTimeline, detectTree, diagramBlock, docToMarkdown, drawingBlock, expandCoverBlock, expandDocBlocks, expandPersistentLayers, extractBlockquoteText, extractBodyPlainText, extractEmbeddedVideos, extractFirstEmbeddedVideo, extractFirstImage, extractImages, extractListItems, extractTableData, extractTableFromContents, factCard, fallbackBlockLayers, findFirstList, findFirstTable, 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, 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 } from './doc/index.js';
9
- export { M as MaterializePageSectionOptions, a as MaterializePageSectionsOptions, P as PageMedia, b as PageRichText, c as PageSection, d as PageSectionDiagnostic, e as PageSectionItem, f as PageSectionMaterialization, g as PageSectionSource, h as PageSpatialKind, i as PageTransformHints, m as materializePageSection, j as materializePageSections, r as resolvePageStyle } from './materializePageSection-DAbyLi-k.js';
8
+ export { ASCII_CHAR_H, ASCII_CHAR_W, ASCII_DIAGRAM_FENCE_LANGS, ASCII_TIMELINE_FENCE_LANGS, AccentLayout, AsciiDiagram, AsciiDiagramDetection, AsciiDiagramEdge, AsciiDiagramNode, AsciiTimeline, AsciiTimelineDetection, AsciiTimelineEvent, AsciiTimelineLink, AsciiTimelineMarker, AsciiTimelineSide, AsciiTimelineStats, AsciiTimelineStyle, AsciiTimelineTrack, AudioSegmentTiming, BASE_INPUT_DESCRIPTORS, BLOCK_MEDIA_LAYOUT_POLICIES, BlockLayerMaterialization, BlockMediaLayoutPolicy, BuiltInTemplateName, CONTAINER_TEMPLATES, ClipBox, ConnectorAnchor, ConnectorPort, ConnectorRouting, ConnectorSnapPoint, CoverBlockInput, DEFAULT_LAYOUT, DIAGRAM_LABEL_HORIZONTAL_PADDING, DIAGRAM_LABEL_LINE_HEIGHT, DIAGRAM_LABEL_MIN_FONT_SIZE, DIAGRAM_LABEL_VERTICAL_PADDING, DataFenceParseResult, DeriveTemplateInputsOptions, DetectAsciiTimelineOptions, DiagramEdge, DiagramLabelFit, DiagramLayout, DiagramLayoutOptions, DiagramNodePosition, DrawingConnector, DrawingLayout, DrawingLayoutOptions, DrawingShape, DrawingShapeKind, EmbeddedVideo, ExpandDocBlocksOptions, ExtractedTableData, FirstImage, InputCoercion, LayerMaterializationDiagnostic, LayerMaterializationFailureMode, LayerMaterializationSource, LayoutLayerDefaults, LayoutLayersResult, MarkdownToDocOptions, MarkdownValidationResult, MaterializeBlockLayersOptions, NarrationResolution, NativeMediaLayout, NoMediaLayout, PAGE_BASE_CSS, PATH_SHAPE_KINDS, PageSectionContext, PageSectionDraft, RenderAsciiDiagramOptions, RenderAsciiTimelineOptions, RenderTreeOptions, RepairResult, ResolvedPageBlock, RichListItem, RuntimeTemplateRegistry, SHAPE_NAMES, SectionExtractor, SupplementalMediaLayoutVariant, SupplementalMediaShape, SupplementalMediaVariantMatrix, TEMPLATE_AUTHORING_METADATA, TEMPLATE_INPUT_DESCRIPTORS, TEMPLATE_METADATA, TREE_FENCE_LANGS, TemplateAuthoringMetadata, TemplateAuthoringRole, TemplateBodyPolicy, TemplateInputDescriptor, TemplateMediaOwnership, TemplateMetadata, TemplateParamFinding, Tree, TreeDetection, TreeItem, TreeNode, UnconsumedMediaBehavior, ValidateOptions, adjustY, anchorPoint, applyNarrationTiming, applyRenderStyleToLayers, asciiCellToCanvas, asciiDiagramFromBlocks, asciiDiagramFromTemplateData, asciiDiagramToTemplateData, asciiTimelineToTemplateData, autoTemplatePreservesContent, buildPageCss, buildPageCssVars, buildRegistry, canvasToAsciiCell, clipEndpoints, clipPoint, coerceTemplateParams, comparisonBar, computeDiagramLayout, computeDrawingLayout, computeLayoutLayers, connectorPath, contentBlock, countBlocks, coverBlock, createAccentLayers, cssFilterForTreatment, dataTable, dateEvent, definitionCard, deriveTemplateInputs, detectAsciiDiagram, detectAsciiTimeline, detectTree, diagramBlock, docToMarkdown, drawingBlock, expandCoverBlock, expandDocBlocks, expandPersistentLayers, extractBlockquoteText, extractBodyPlainText, extractEmbeddedVideos, extractFirstEmbeddedVideo, extractFirstImage, extractImages, extractListItems, extractRichListItems, extractTableData, extractTableFromContents, factCard, fallbackBlockLayers, findFirstList, findFirstTable, 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, 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 } from './doc/index.js';
9
+ export { M as MaterializePageSectionOptions, a as MaterializePageSectionsOptions, P as PageMedia, b as PageRichText, c as PageSection, d as PageSectionDiagnostic, e as PageSectionItem, f as PageSectionMaterialization, g as PageSectionSource, h as PageSpatialKind, i as PageTransformHints, m as materializePageSection, j as materializePageSections, r as resolvePageStyle } from './materializePageSection-CrZWYnXM.js';
10
10
  export { calculateBearing, decodeGeohash, encodeGeohash, geohashOverlapsBounds, geohashToHierarchicalPath, getGeohash4Neighbors, getGeohashPath, getGeohashPrefix, getNeighbors, haversineDistance } from './spatial/index.js';
11
11
  export { LocalForageAdapter, LocalForageAdapterOptions, LocalStorageAdapter, MemoryStorageAdapter, ScopedContentContainer, StorageAdapter, createMediaProviderFromContainer, scopeContainer } from './storage/index.js';
12
12
  export { C as ContentContainer, a as ContentEntry, M as MemoryContentContainer, f as findDocumentPath } from './ContentContainer-B2w9sUoL.js';
package/dist/index.js CHANGED
@@ -23,7 +23,7 @@ import {
23
23
  reanchorSession,
24
24
  traceWordPosAt,
25
25
  vadStep
26
- } from "./chunk-BCHAXKKI.js";
26
+ } from "./chunk-ABP4LAJS.js";
27
27
  import {
28
28
  DEFAULT_TRANSFORM_STYLE_ID,
29
29
  analyzeBlocks,
@@ -162,7 +162,7 @@ import {
162
162
  sectionExtractors,
163
163
  validateMarkdownDoc,
164
164
  validateMarkdownSource
165
- } from "./chunk-ZAFLMJPD.js";
165
+ } from "./chunk-IZLKI3IL.js";
166
166
  import {
167
167
  ASCII_CHAR_H,
168
168
  ASCII_CHAR_W,
@@ -217,6 +217,7 @@ import {
217
217
  extractFirstImage,
218
218
  extractImages,
219
219
  extractListItems,
220
+ extractRichListItems,
220
221
  extractTableData,
221
222
  extractTableFromContents,
222
223
  factCard,
@@ -290,7 +291,7 @@ import {
290
291
  wrapWithPersistentLayers,
291
292
  writeCustomTemplatesToFrontmatter,
292
293
  writeCustomThemesToFrontmatter
293
- } from "./chunk-CKZY6K5R.js";
294
+ } from "./chunk-GQNH7PLN.js";
294
295
  import {
295
296
  PATH_SHAPE_KINDS,
296
297
  anchorPoint,
@@ -423,10 +424,8 @@ import {
423
424
  ResourcePolicyError,
424
425
  fetchResourceBytes,
425
426
  isResourceUrlAllowed,
426
- sanitizeHtmlNodes,
427
- sanitizeUrl,
428
427
  stringifyMarkdown
429
- } from "./chunk-3IGPAPQ7.js";
428
+ } from "./chunk-UA5DTYAY.js";
430
429
  import {
431
430
  DEFAULT_MARKDOWN_SAFETY_LIMITS,
432
431
  MarkdownLimitError,
@@ -438,7 +437,7 @@ import {
438
437
  resolveMarkdownSafetyLimits,
439
438
  serializePandocAttributes,
440
439
  toMdast
441
- } from "./chunk-ACZOVWX3.js";
440
+ } from "./chunk-G3JOS25T.js";
442
441
  import {
443
442
  BLOCK_META_KEY_DESCRIPTORS,
444
443
  KNOWN_BLOCK_META_KEYS,
@@ -447,10 +446,12 @@ import {
447
446
  needsQuoting,
448
447
  parseTimeSeconds,
449
448
  quoteAttrValue,
449
+ sanitizeHtmlNodes,
450
+ sanitizeUrl,
450
451
  splitKeyValueToken,
451
452
  tokenizeAttrTokens,
452
453
  unquoteAttrValue
453
- } from "./chunk-ZQKZSJAX.js";
454
+ } from "./chunk-2VCNTDNZ.js";
454
455
  import {
455
456
  ICONS,
456
457
  canonicalIconToken,
@@ -702,6 +703,7 @@ export {
702
703
  extractImages,
703
704
  extractListItems,
704
705
  extractPlainText,
706
+ extractRichListItems,
705
707
  extractTableData,
706
708
  extractTableFromContents,
707
709
  factCard,
@@ -6,10 +6,8 @@ import {
6
6
  ResourcePolicyError,
7
7
  fetchResourceBytes,
8
8
  isResourceUrlAllowed,
9
- sanitizeHtmlNodes,
10
- sanitizeUrl,
11
9
  stringifyMarkdown
12
- } from "../chunk-3IGPAPQ7.js";
10
+ } from "../chunk-UA5DTYAY.js";
13
11
  import {
14
12
  DEFAULT_MARKDOWN_SAFETY_LIMITS,
15
13
  MarkdownLimitError,
@@ -21,7 +19,7 @@ import {
21
19
  resolveMarkdownSafetyLimits,
22
20
  serializePandocAttributes,
23
21
  toMdast
24
- } from "../chunk-ACZOVWX3.js";
22
+ } from "../chunk-G3JOS25T.js";
25
23
  import {
26
24
  BLOCK_META_KEY_DESCRIPTORS,
27
25
  KNOWN_BLOCK_META_KEYS,
@@ -30,10 +28,12 @@ import {
30
28
  needsQuoting,
31
29
  parseTimeSeconds,
32
30
  quoteAttrValue,
31
+ sanitizeHtmlNodes,
32
+ sanitizeUrl,
33
33
  splitKeyValueToken,
34
34
  tokenizeAttrTokens,
35
35
  unquoteAttrValue
36
- } from "../chunk-ZQKZSJAX.js";
36
+ } from "../chunk-2VCNTDNZ.js";
37
37
  import "../chunk-7N4G32LG.js";
38
38
  import {
39
39
  countNodes,
@@ -64,6 +64,8 @@ type PageMedia = {
64
64
  interface PageSectionItem {
65
65
  title?: string;
66
66
  body?: string;
67
+ /** Original rich body nodes when this item came from authored Markdown. */
68
+ markdown?: MarkdownBlockNode[];
67
69
  /** Large numeral / value for stat and comparison items. */
68
70
  value?: string | number;
69
71
  media?: PageMedia;
@@ -23,7 +23,7 @@ import {
23
23
  reanchorSession,
24
24
  traceWordPosAt,
25
25
  vadStep
26
- } from "../chunk-BCHAXKKI.js";
26
+ } from "../chunk-ABP4LAJS.js";
27
27
  import {
28
28
  buildNarrationScript,
29
29
  buildNarrationTimingJson,
@@ -33,12 +33,12 @@ import {
33
33
  wordIndexAtChar,
34
34
  wordIndexAtTime,
35
35
  wordPosAtExpectedSyllables
36
- } from "../chunk-CKZY6K5R.js";
36
+ } from "../chunk-GQNH7PLN.js";
37
37
  import "../chunk-PUS54YU6.js";
38
38
  import "../chunk-QWCFK5FN.js";
39
39
  import "../chunk-C33GTPUZ.js";
40
40
  import "../chunk-BAOV476U.js";
41
- import "../chunk-ZQKZSJAX.js";
41
+ import "../chunk-2VCNTDNZ.js";
42
42
  import "../chunk-BCCXTMN5.js";
43
43
  import "../chunk-4VOD55SX.js";
44
44
  import "../chunk-XOFT65EX.js";
@@ -1,5 +1,5 @@
1
1
  import { m as ColorScheme, G as Doc, B as Block } from '../Doc-BrgZC7SE.js';
2
- import { i as PageTransformHints } from '../materializePageSection-DAbyLi-k.js';
2
+ import { i as PageTransformHints } from '../materializePageSection-CrZWYnXM.js';
3
3
  import { d as ExtractionType, E as ExtractedElement, b as ExtractionOptions } from '../contentExtractor-BNfVJV2U.js';
4
4
  import '../types-CUNc9biN.js';
5
5
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bendyline/squisq",
3
- "version": "2.3.2",
3
+ "version": "2.3.3",
4
4
  "description": "Headless utilities for doc/block rendering, spatial math, Markdown, and storage",
5
5
  "license": "MIT",
6
6
  "author": "Bendyline",