nimbus-docs 0.1.8 → 0.1.9
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/cli/index.js +34 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/client.d.ts +12 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +38 -6
- package/dist/client.js.map +1 -1
- package/dist/content.d.ts +4 -4
- package/dist/index.d.ts +86 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1370 -25
- package/dist/index.js.map +1 -1
- package/dist/{rules-B7o0k3TA.js → rules-DDDvKkyJ.js} +2 -1
- package/dist/{rules-B7o0k3TA.js.map → rules-DDDvKkyJ.js.map} +1 -1
- package/dist/schemas.d.ts +2 -2
- package/dist/schemas.d.ts.map +1 -1
- package/package.json +9 -8
package/dist/client.js
CHANGED
|
@@ -111,9 +111,10 @@ const FOCUSABLE = "a[href], button:not([disabled]), input:not([disabled]):not([t
|
|
|
111
111
|
* Used by: Tabs.astro, PackageManagers.astro
|
|
112
112
|
*/
|
|
113
113
|
function initTabs(config) {
|
|
114
|
-
const { container, tabSelector, panelSelector, indicator = null, rovingTabindex = true, sync, onActivate } = config;
|
|
115
|
-
const
|
|
116
|
-
const
|
|
114
|
+
const { container, tabSelector, panelSelector, boundarySelector, indicator = null, rovingTabindex = true, sync, onActivate } = config;
|
|
115
|
+
const owned = (el) => !boundarySelector || el.closest(boundarySelector) === container;
|
|
116
|
+
const tabs = Array.from(container.querySelectorAll(tabSelector)).filter(owned);
|
|
117
|
+
const panels = Array.from(container.querySelectorAll(panelSelector)).filter(owned);
|
|
117
118
|
const tablist = container.querySelector("[role=tablist]") ?? container;
|
|
118
119
|
let currentIndex = -1;
|
|
119
120
|
let isInitialActivation = true;
|
|
@@ -341,6 +342,32 @@ function codeCopy() {
|
|
|
341
342
|
//#endregion
|
|
342
343
|
//#region src/client/heading-anchors.ts
|
|
343
344
|
/** Add hoverable self-links to markdown headings with ids. */
|
|
345
|
+
let liveRegion = null;
|
|
346
|
+
/**
|
|
347
|
+
* Singleton polite live region for the "copied" announcement.
|
|
348
|
+
* Visually hidden via inline styles so the framework doesn't depend on
|
|
349
|
+
* a starter utility class.
|
|
350
|
+
*/
|
|
351
|
+
function announce(message) {
|
|
352
|
+
if (!liveRegion || !liveRegion.isConnected) {
|
|
353
|
+
liveRegion = document.createElement("div");
|
|
354
|
+
liveRegion.setAttribute("aria-live", "polite");
|
|
355
|
+
Object.assign(liveRegion.style, {
|
|
356
|
+
position: "absolute",
|
|
357
|
+
width: "1px",
|
|
358
|
+
height: "1px",
|
|
359
|
+
padding: "0",
|
|
360
|
+
margin: "-1px",
|
|
361
|
+
overflow: "hidden",
|
|
362
|
+
clipPath: "inset(50%)",
|
|
363
|
+
whiteSpace: "nowrap",
|
|
364
|
+
border: "0"
|
|
365
|
+
});
|
|
366
|
+
document.body.appendChild(liveRegion);
|
|
367
|
+
}
|
|
368
|
+
liveRegion.textContent = "";
|
|
369
|
+
liveRegion.textContent = message;
|
|
370
|
+
}
|
|
344
371
|
function applyHeadingAnchors() {
|
|
345
372
|
document.querySelectorAll(".docs-content :is(h2, h3, h4)[id]").forEach((heading) => {
|
|
346
373
|
if (heading.hasAttribute("data-heading-anchor-ready")) return;
|
|
@@ -348,15 +375,20 @@ function applyHeadingAnchors() {
|
|
|
348
375
|
const link = document.createElement("a");
|
|
349
376
|
link.href = `#${heading.id}`;
|
|
350
377
|
link.className = "heading-anchor";
|
|
351
|
-
link.setAttribute("aria-label", `
|
|
378
|
+
link.setAttribute("aria-label", `Copy link to ${heading.textContent?.trim() ?? "section"}`);
|
|
352
379
|
link.textContent = "#";
|
|
380
|
+
link.addEventListener("click", () => {
|
|
381
|
+
const url = new URL(link.getAttribute("href") ?? `#${heading.id}`, location.href).href;
|
|
382
|
+
navigator.clipboard?.writeText(url).then(() => announce("Link copied to clipboard"), () => {});
|
|
383
|
+
});
|
|
353
384
|
heading.appendChild(link);
|
|
354
385
|
});
|
|
355
386
|
}
|
|
356
387
|
/**
|
|
357
388
|
* Add hoverable `#` self-links to all `h2`–`h4` headings in `.docs-content`.
|
|
358
|
-
*
|
|
359
|
-
*
|
|
389
|
+
* Clicking one navigates (hash) *and* copies the absolute deep link, with an
|
|
390
|
+
* `aria-live` announcement for screen readers. Re-runs on `astro:page-load`
|
|
391
|
+
* for View Transitions. Call once (e.g. from BaseLayout).
|
|
360
392
|
*/
|
|
361
393
|
function headingAnchors() {
|
|
362
394
|
applyHeadingAnchors();
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","names":[],"sources":["../src/client/mount.ts","../src/client/ids.ts","../src/client/disclosure.ts","../src/client/dom.ts","../src/client/tabs-controller.ts","../src/client/scroll-lock.ts","../src/client/code-copy.ts","../src/client/heading-anchors.ts"],"sourcesContent":["/**\n * mount.ts — Discover, mount, and unmount component instances.\n *\n * The single entry point used by every `*.client.ts` to wire its component.\n * Handles three concerns:\n *\n * 1. Initial discovery — finds elements matching `selector` and calls `init`\n * on each, storing the returned teardown.\n * 2. View transitions — on `astro:before-swap`, runs every teardown so\n * document/window listeners come down before the DOM is replaced.\n * 3. Re-mount — on `astro:page-load`, re-runs discovery against the new DOM.\n *\n * The init function receives the root element and returns a `destroy()`\n * function. The root element is the keying mechanism — calling mount again\n * against an already-tracked element is a no-op.\n *\n * Usage:\n *\n * mount(\"[data-nb-collapsible]\", (root) => {\n * const disclosure = makeDisclosure({ ... });\n * return () => disclosure.destroy();\n * });\n */\n\ntype Init = (root: HTMLElement) => () => void;\n\nexport function mount(selector: string, init: Init): void {\n const instances = new Map<HTMLElement, () => void>();\n\n function setup() {\n document.querySelectorAll<HTMLElement>(selector).forEach((el) => {\n if (instances.has(el)) return;\n instances.set(el, init(el));\n });\n }\n\n function teardown() {\n instances.forEach((destroy) => destroy());\n instances.clear();\n }\n\n // Module scripts are deferred, so DOM is parsed by the time this runs.\n // Belt-and-braces check anyway.\n if (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", setup, { once: true });\n } else {\n setup();\n }\n\n document.addEventListener(\"astro:before-swap\", teardown);\n document.addEventListener(\"astro:page-load\", setup);\n}\n","/**\n * Generate a unique ID with a prefix, scoped to the page.\n *\n * Used to build ARIA relationships (`aria-controls` / `aria-labelledby`)\n * between elements that don't have a stable author-provided id.\n */\n\nlet counter = 0;\n\nexport function generateId(prefix: string): string {\n counter += 1;\n return `${prefix}-${counter}`;\n}\n","/**\n * disclosure.ts — Open/close state with ARIA wiring.\n *\n * The shared module for any \"click trigger, reveals content\" pattern.\n * Owns:\n * - open/closed state (in-memory + reflected as `data-nb-state` on both\n * trigger and content)\n * - ARIA: `aria-expanded` on trigger, `aria-controls` linking to content\n * - Click handler on the trigger\n *\n * Animation is intentionally out of scope — CSS targets the `data-nb-state`\n * attribute and runs whatever transition the component wants. Returning\n * a teardown means the caller can clean up on unmount.\n *\n * Used by: Collapsible, and any future Accordion / Sidebar group /\n * dismissable Banner that wants the standard disclosure semantics.\n */\n\nimport { generateId } from \"./ids\";\n\nexport interface DisclosureOptions {\n /** The element users click to toggle. Usually a `<button>`. */\n trigger: HTMLElement;\n /** The element that's shown/hidden. Gets `id` + `data-nb-state`. */\n content: HTMLElement;\n /** Initial open state. Default `false`. */\n defaultOpen?: boolean;\n /** Called whenever open changes. */\n onOpenChange?: (open: boolean) => void;\n}\n\nexport interface DisclosureInstance {\n open(): void;\n close(): void;\n toggle(): void;\n isOpen(): boolean;\n destroy(): void;\n}\n\nexport function makeDisclosure(opts: DisclosureOptions): DisclosureInstance {\n const { trigger, content, defaultOpen = false, onOpenChange } = opts;\n\n let open = defaultOpen;\n\n // Ensure ARIA relationship exists.\n if (!content.id) {\n content.id = generateId(\"nb-disclosure\");\n }\n trigger.setAttribute(\"aria-controls\", content.id);\n\n function syncState() {\n const state = open ? \"open\" : \"closed\";\n trigger.setAttribute(\"data-nb-state\", state);\n content.setAttribute(\"data-nb-state\", state);\n trigger.setAttribute(\"aria-expanded\", String(open));\n }\n\n function setOpen(value: boolean) {\n if (open === value) return;\n open = value;\n syncState();\n onOpenChange?.(value);\n }\n\n function handleClick(e: MouseEvent) {\n e.preventDefault();\n setOpen(!open);\n }\n\n syncState();\n trigger.addEventListener(\"click\", handleClick);\n\n return {\n open() {\n setOpen(true);\n },\n close() {\n setOpen(false);\n },\n toggle() {\n setOpen(!open);\n },\n isOpen() {\n return open;\n },\n destroy() {\n trigger.removeEventListener(\"click\", handleClick);\n },\n };\n}\n","/**\n * Shared DOM constants for client-side interaction primitives.\n */\n\n/** CSS selector for focusable elements within a container. */\nexport const FOCUSABLE =\n 'a[href], button:not([disabled]), input:not([disabled]):not([type=\"hidden\"]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([disabled]):not([tabindex=\"-1\"])';\n","/**\n * Shared tab activation primitive.\n *\n * Handles aria-selected, panel visibility, roving tabindex,\n * keyboard navigation, sliding indicator, and cross-instance sync.\n *\n * Used by: Tabs.astro, PackageManagers.astro\n */\n\nimport { FOCUSABLE } from \"./dom\";\n\nexport interface TabsConfig {\n /** Root container holding tabs + panels */\n container: Element;\n /** CSS selector for tab trigger buttons */\n tabSelector: string;\n /** CSS selector for tab panels */\n panelSelector: string;\n /** Optional sliding indicator element */\n indicator?: HTMLElement | null;\n /** Enable roving tabindex + arrow key navigation (default: true) */\n rovingTabindex?: boolean;\n /** Cross-instance persistence config */\n sync?: {\n key: string;\n storage?: \"local\" | \"session\";\n /** Extract sync label from a tab element. Default: textContent.trim() */\n getLabel?: (tab: HTMLElement) => string;\n };\n /** Called after a tab is activated */\n onActivate?: (index: number) => void;\n}\n\nexport interface TabsInstance {\n activate(index: number, options?: { emitSync?: boolean }): void;\n readonly currentIndex: number;\n destroy(): void;\n}\n\nexport function initTabs(config: TabsConfig): TabsInstance {\n const { container, tabSelector, panelSelector, indicator = null, rovingTabindex = true, sync, onActivate } = config;\n\n const tabs = Array.from(container.querySelectorAll<HTMLElement>(tabSelector));\n const panels = Array.from(container.querySelectorAll<HTMLElement>(panelSelector));\n const tablist = container.querySelector(\"[role=tablist]\") ?? container;\n\n let currentIndex = -1;\n let isInitialActivation = true;\n\n function getStorage(kind: \"local\" | \"session\"): Storage | null {\n try {\n return kind === \"session\" ? sessionStorage : localStorage;\n } catch {\n return null;\n }\n }\n\n function getLabel(tab: HTMLElement): string {\n return sync?.getLabel?.(tab) ?? tab.textContent?.trim() ?? \"\";\n }\n\n function updateIndicator(index: number) {\n if (!indicator || !tabs[index]) return;\n indicator.style.left = `${tabs[index].offsetLeft}px`;\n indicator.style.width = `${tabs[index].offsetWidth}px`;\n }\n\n function activate(index: number, options?: { emitSync?: boolean }) {\n const emitSync = options?.emitSync ?? true;\n if (index === currentIndex) return;\n\n // Capture scroll position before DOM changes to prevent layout jump\n const rect = container.getBoundingClientRect();\n const scrollBefore = rect.top;\n\n currentIndex = index;\n\n tabs.forEach((tab, i) => {\n const active = i === index;\n tab.setAttribute(\"aria-selected\", String(active));\n if (rovingTabindex) {\n tab.setAttribute(\"tabindex\", active ? \"0\" : \"-1\");\n }\n });\n\n panels.forEach((panel, i) => {\n const visible = i === index;\n panel.hidden = !visible;\n // Panels with no focusable children need tabindex=\"0\" so keyboard\n // users can Tab into the content (WAI-ARIA Tabs pattern).\n if (visible) {\n const hasFocusable = panel.querySelector(FOCUSABLE) !== null;\n if (!hasFocusable) {\n panel.setAttribute(\"tabindex\", \"0\");\n } else {\n panel.removeAttribute(\"tabindex\");\n }\n }\n });\n\n updateIndicator(index);\n onActivate?.(index);\n\n // Compensate scroll position after panel height change (skip on first paint)\n if (emitSync && !isInitialActivation) {\n const scrollAfter = container.getBoundingClientRect().top;\n const delta = scrollAfter - scrollBefore;\n if (Math.abs(delta) > 1) {\n window.scrollTo({\n top: window.scrollY + delta,\n behavior: \"instant\",\n });\n }\n }\n isInitialActivation = false;\n\n if (sync && emitSync) {\n // `tabs[index]!`: `activate(index)` is only called with validated indices.\n const label = getLabel(tabs[index]!);\n const store = getStorage(sync.storage === \"session\" ? \"session\" : \"local\");\n store?.setItem(sync.key, label);\n window.dispatchEvent(\n new CustomEvent(\"ui-tab-sync\", {\n detail: { key: sync.key, label, origin: container },\n }),\n );\n }\n }\n\n // Resolve initial index from sync storage\n let initialIndex = 0;\n if (sync) {\n const store = getStorage(sync.storage === \"session\" ? \"session\" : \"local\");\n const saved = store?.getItem(sync.key);\n if (saved) {\n const idx = tabs.findIndex((t) => getLabel(t) === saved);\n if (idx >= 0) initialIndex = idx;\n }\n }\n\n // Click delegation on tablist\n function handleClick(e: Event) {\n const target = (e.target as HTMLElement).closest(tabSelector);\n if (!target) return;\n const idx = tabs.indexOf(target as HTMLElement);\n if (idx >= 0) {\n activate(idx);\n if (rovingTabindex) (target as HTMLElement).focus();\n }\n }\n\n // Keyboard navigation (roving tabindex)\n function handleKeydown(e: KeyboardEvent) {\n if (!rovingTabindex) return;\n const ci = tabs.indexOf(e.target as HTMLElement);\n if (ci < 0) return;\n\n let next: number;\n switch (e.key) {\n case \"ArrowRight\":\n next = ci + 1;\n break;\n case \"ArrowLeft\":\n next = ci - 1;\n break;\n case \"Home\":\n next = 0;\n break;\n case \"End\":\n next = tabs.length - 1;\n break;\n default:\n return;\n }\n // No-wrap: ignore if out of bounds\n if (!tabs[next]) return;\n e.preventDefault();\n activate(next);\n // `tabs[next]!`: guard above proves the assertion.\n tabs[next]!.focus();\n }\n\n // Cross-instance sync via CustomEvent\n function handleSync(e: Event) {\n const detail = (e as CustomEvent).detail;\n if (detail.key === sync?.key && detail.origin !== container) {\n const idx = tabs.findIndex((t) => getLabel(t) === detail.label);\n if (idx >= 0) activate(idx, { emitSync: false });\n }\n }\n\n // Wire events\n tablist.addEventListener(\"click\", handleClick);\n tablist.addEventListener(\"keydown\", handleKeydown as EventListener);\n if (sync) window.addEventListener(\"ui-tab-sync\", handleSync);\n\n // Initial activation — skip indicator transition for first paint\n if (indicator) indicator.style.transition = \"none\";\n activate(initialIndex);\n if (indicator) {\n void indicator.offsetHeight; // force reflow\n indicator.style.transition = \"\";\n }\n\n return {\n activate,\n get currentIndex() {\n return currentIndex;\n },\n destroy() {\n tablist.removeEventListener(\"click\", handleClick);\n tablist.removeEventListener(\"keydown\", handleKeydown as EventListener);\n if (sync) window.removeEventListener(\"ui-tab-sync\", handleSync);\n },\n };\n}\n","/**\n * scroll-lock.ts — Body scroll lock with scrollbar-width compensation.\n *\n * Prevents background scrolling when a modal/overlay is open.\n * Compensates for the scrollbar disappearing to avoid layout shift\n * (visible on Windows/Linux where scrollbars have width).\n *\n * Uses a data attribute + CSS for the overflow lock, and inline\n * paddingRight for the scrollbar compensation.\n *\n * Used by: Dialog (and any future overlay primitive).\n */\n\nconst ATTR = \"data-scroll-locked\";\n\nlet lockCount = 0;\nlet savedPaddingRight = \"\";\n\nexport function lockScroll(): void {\n lockCount++;\n if (lockCount > 1) return;\n\n const scrollbarW = window.innerWidth - document.documentElement.clientWidth;\n savedPaddingRight = document.body.style.paddingRight;\n\n document.body.setAttribute(ATTR, \"\");\n if (scrollbarW > 0) {\n document.body.style.paddingRight = `${scrollbarW}px`;\n }\n}\n\nexport function unlockScroll(): void {\n if (lockCount === 0) return;\n lockCount--;\n if (lockCount > 0) return;\n\n document.body.removeAttribute(ATTR);\n document.body.style.paddingRight = savedPaddingRight;\n}\n","/**\n * code-copy.ts — Injects a Nimbus-styled copy button into every Shiki\n * code block rendered by Astro's built-in `<Code>` and fenced\n * code blocks in MDX.\n *\n * Astro emits `<pre class=\"astro-code shiki ...\">` for syntax-highlighted\n * blocks. We attach a copy button positioned in the top-right corner.\n *\n * Page-wide enhancement, not tied to a single component. Call `codeCopy()`\n * once (e.g. from BaseLayout). Uses `mount` for lifecycle so the buttons\n * are torn down on view transitions and re-added against the new DOM.\n *\n * The original code text comes from the `<code>` element's textContent —\n * Shiki's wrapper spans flatten down to the raw source.\n *\n * Code blocks rendered inside [data-cg-row] (CodeGroup) are skipped\n * because CodeGroup brings its own copy button per panel.\n */\n\nimport { mount } from \"./mount\";\n\nconst COPY_ICON = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M216,32H88a8,8,0,0,0-8,8V80H40a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8H168a8,8,0,0,0,8-8V176h40a8,8,0,0,0,8-8V40A8,8,0,0,0,216,32ZM160,208H48V96H160Zm48-48H176V88a8,8,0,0,0-8-8H96V48H208Z\"/></svg>`;\nconst CHECK_ICON = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M173.66,98.34a8,8,0,0,1,0,11.32l-56,56a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L112,148.69l50.34-50.35A8,8,0,0,1,173.66,98.34Z\"/></svg>`;\n\nfunction getCodeText(pre: HTMLElement): string {\n const codeEl = pre.querySelector<HTMLElement>(\"code\");\n return codeEl?.textContent ?? pre.textContent ?? \"\";\n}\n\nfunction initCodeCopy(pre: HTMLElement): () => void {\n // Skip code blocks owned by CodeGroup. `data-cg-panels-raw` is SSR'd\n // (catches pres before CodeGroup's client script reparents them);\n // `data-cg-row` catches them after reparenting.\n if (pre.closest(\"[data-cg-panels-raw], [data-cg-row]\")) return () => {};\n\n // Append the button to the figure wrapper, not the pre. The pre has\n // `overflow-x: auto`, and absolutely-positioned children of overflow:auto\n // containers slide along with horizontal scroll on iOS Safari. The figure\n // is the non-scrolling wrapper emitted by titleAndLangTransformer.\n const host = (pre.closest(\".nb-code-figure\") as HTMLElement | null) ?? pre;\n\n const btn = document.createElement(\"button\");\n btn.type = \"button\";\n btn.className = \"nb-code-copy\";\n btn.setAttribute(\"aria-label\", \"Copy code to clipboard\");\n btn.innerHTML = COPY_ICON;\n\n let resetTimer: number | undefined;\n\n async function handleClick() {\n const text = getCodeText(pre);\n if (!text) return;\n\n try {\n await navigator.clipboard.writeText(text);\n } catch {\n return;\n }\n\n btn.innerHTML = CHECK_ICON;\n btn.dataset.state = \"copied\";\n btn.setAttribute(\"aria-label\", \"Copied!\");\n\n if (resetTimer) window.clearTimeout(resetTimer);\n resetTimer = window.setTimeout(() => {\n btn.innerHTML = COPY_ICON;\n delete btn.dataset.state;\n btn.setAttribute(\"aria-label\", \"Copy code to clipboard\");\n }, 1500);\n }\n\n btn.addEventListener(\"click\", handleClick);\n\n if (getComputedStyle(host).position === \"static\") {\n host.style.position = \"relative\";\n }\n host.appendChild(btn);\n\n return () => {\n if (resetTimer) window.clearTimeout(resetTimer);\n btn.removeEventListener(\"click\", handleClick);\n btn.remove();\n };\n}\n\n/** Wire copy buttons onto all Shiki code blocks on the page. Call once. */\nexport function codeCopy(): void {\n mount(\"pre.astro-code\", initCodeCopy);\n}\n","/** Add hoverable self-links to markdown headings with ids. */\n\nfunction applyHeadingAnchors() {\n document.querySelectorAll<HTMLElement>(\".docs-content :is(h2, h3, h4)[id]\").forEach((heading) => {\n if (heading.hasAttribute(\"data-heading-anchor-ready\")) return;\n heading.setAttribute(\"data-heading-anchor-ready\", \"true\");\n\n const link = document.createElement(\"a\");\n link.href = `#${heading.id}`;\n link.className = \"heading-anchor\";\n link.setAttribute(\"aria-label\", `Link to ${heading.textContent?.trim() ?? \"section\"}`);\n link.textContent = \"#\";\n heading.appendChild(link);\n });\n}\n\n/**\n * Add hoverable `#` self-links to all `h2`–`h4` headings in `.docs-content`.\n * Re-runs on `astro:page-load` for View Transitions. Call once (e.g. from\n * BaseLayout).\n */\nexport function headingAnchors(): void {\n applyHeadingAnchors();\n document.addEventListener(\"astro:page-load\", applyHeadingAnchors);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","names":[],"sources":["../src/client/mount.ts","../src/client/ids.ts","../src/client/disclosure.ts","../src/client/dom.ts","../src/client/tabs-controller.ts","../src/client/scroll-lock.ts","../src/client/code-copy.ts","../src/client/heading-anchors.ts"],"sourcesContent":["/**\n * mount.ts — Discover, mount, and unmount component instances.\n *\n * The single entry point used by every `*.client.ts` to wire its component.\n * Handles three concerns:\n *\n * 1. Initial discovery — finds elements matching `selector` and calls `init`\n * on each, storing the returned teardown.\n * 2. View transitions — on `astro:before-swap`, runs every teardown so\n * document/window listeners come down before the DOM is replaced.\n * 3. Re-mount — on `astro:page-load`, re-runs discovery against the new DOM.\n *\n * The init function receives the root element and returns a `destroy()`\n * function. The root element is the keying mechanism — calling mount again\n * against an already-tracked element is a no-op.\n *\n * Usage:\n *\n * mount(\"[data-nb-collapsible]\", (root) => {\n * const disclosure = makeDisclosure({ ... });\n * return () => disclosure.destroy();\n * });\n */\n\ntype Init = (root: HTMLElement) => () => void;\n\nexport function mount(selector: string, init: Init): void {\n const instances = new Map<HTMLElement, () => void>();\n\n function setup() {\n document.querySelectorAll<HTMLElement>(selector).forEach((el) => {\n if (instances.has(el)) return;\n instances.set(el, init(el));\n });\n }\n\n function teardown() {\n instances.forEach((destroy) => destroy());\n instances.clear();\n }\n\n // Module scripts are deferred, so DOM is parsed by the time this runs.\n // Belt-and-braces check anyway.\n if (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", setup, { once: true });\n } else {\n setup();\n }\n\n document.addEventListener(\"astro:before-swap\", teardown);\n document.addEventListener(\"astro:page-load\", setup);\n}\n","/**\n * Generate a unique ID with a prefix, scoped to the page.\n *\n * Used to build ARIA relationships (`aria-controls` / `aria-labelledby`)\n * between elements that don't have a stable author-provided id.\n */\n\nlet counter = 0;\n\nexport function generateId(prefix: string): string {\n counter += 1;\n return `${prefix}-${counter}`;\n}\n","/**\n * disclosure.ts — Open/close state with ARIA wiring.\n *\n * The shared module for any \"click trigger, reveals content\" pattern.\n * Owns:\n * - open/closed state (in-memory + reflected as `data-nb-state` on both\n * trigger and content)\n * - ARIA: `aria-expanded` on trigger, `aria-controls` linking to content\n * - Click handler on the trigger\n *\n * Animation is intentionally out of scope — CSS targets the `data-nb-state`\n * attribute and runs whatever transition the component wants. Returning\n * a teardown means the caller can clean up on unmount.\n *\n * Used by: Collapsible, and any future Accordion / Sidebar group /\n * dismissable Banner that wants the standard disclosure semantics.\n */\n\nimport { generateId } from \"./ids\";\n\nexport interface DisclosureOptions {\n /** The element users click to toggle. Usually a `<button>`. */\n trigger: HTMLElement;\n /** The element that's shown/hidden. Gets `id` + `data-nb-state`. */\n content: HTMLElement;\n /** Initial open state. Default `false`. */\n defaultOpen?: boolean;\n /** Called whenever open changes. */\n onOpenChange?: (open: boolean) => void;\n}\n\nexport interface DisclosureInstance {\n open(): void;\n close(): void;\n toggle(): void;\n isOpen(): boolean;\n destroy(): void;\n}\n\nexport function makeDisclosure(opts: DisclosureOptions): DisclosureInstance {\n const { trigger, content, defaultOpen = false, onOpenChange } = opts;\n\n let open = defaultOpen;\n\n // Ensure ARIA relationship exists.\n if (!content.id) {\n content.id = generateId(\"nb-disclosure\");\n }\n trigger.setAttribute(\"aria-controls\", content.id);\n\n function syncState() {\n const state = open ? \"open\" : \"closed\";\n trigger.setAttribute(\"data-nb-state\", state);\n content.setAttribute(\"data-nb-state\", state);\n trigger.setAttribute(\"aria-expanded\", String(open));\n }\n\n function setOpen(value: boolean) {\n if (open === value) return;\n open = value;\n syncState();\n onOpenChange?.(value);\n }\n\n function handleClick(e: MouseEvent) {\n e.preventDefault();\n setOpen(!open);\n }\n\n syncState();\n trigger.addEventListener(\"click\", handleClick);\n\n return {\n open() {\n setOpen(true);\n },\n close() {\n setOpen(false);\n },\n toggle() {\n setOpen(!open);\n },\n isOpen() {\n return open;\n },\n destroy() {\n trigger.removeEventListener(\"click\", handleClick);\n },\n };\n}\n","/**\n * Shared DOM constants for client-side interaction primitives.\n */\n\n/** CSS selector for focusable elements within a container. */\nexport const FOCUSABLE =\n 'a[href], button:not([disabled]), input:not([disabled]):not([type=\"hidden\"]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([disabled]):not([tabindex=\"-1\"])';\n","/**\n * Shared tab activation primitive.\n *\n * Handles aria-selected, panel visibility, roving tabindex,\n * keyboard navigation, sliding indicator, and cross-instance sync.\n *\n * Used by: Tabs.astro, PackageManagers.astro\n */\n\nimport { FOCUSABLE } from \"./dom\";\n\nexport interface TabsConfig {\n /** Root container holding tabs + panels */\n container: Element;\n /** CSS selector for tab trigger buttons */\n tabSelector: string;\n /** CSS selector for tab panels */\n panelSelector: string;\n /**\n * Selector identifying a tab container. When set, tabs/panels are scoped\n * to this container only — a descendant belongs to it iff its nearest\n * ancestor matching `boundarySelector` is `container` itself. This keeps\n * a nested `<Tabs>`'s triggers/panels out of the parent instance. When\n * unset, all descendants match `tabSelector`/`panelSelector` are used\n * (no nesting support — the prior behaviour).\n */\n boundarySelector?: string;\n /** Optional sliding indicator element */\n indicator?: HTMLElement | null;\n /** Enable roving tabindex + arrow key navigation (default: true) */\n rovingTabindex?: boolean;\n /** Cross-instance persistence config */\n sync?: {\n key: string;\n storage?: \"local\" | \"session\";\n /** Extract sync label from a tab element. Default: textContent.trim() */\n getLabel?: (tab: HTMLElement) => string;\n };\n /** Called after a tab is activated */\n onActivate?: (index: number) => void;\n}\n\nexport interface TabsInstance {\n activate(index: number, options?: { emitSync?: boolean }): void;\n readonly currentIndex: number;\n destroy(): void;\n}\n\nexport function initTabs(config: TabsConfig): TabsInstance {\n const { container, tabSelector, panelSelector, boundarySelector, indicator = null, rovingTabindex = true, sync, onActivate } = config;\n\n // A descendant belongs to this container only if no nested tab container\n // sits between it and `container` — i.e. its nearest `boundarySelector`\n // ancestor is `container` itself. Without a boundary selector, every\n // match counts (nesting unsupported).\n const owned = (el: HTMLElement) => !boundarySelector || el.closest(boundarySelector) === container;\n const tabs = Array.from(container.querySelectorAll<HTMLElement>(tabSelector)).filter(owned);\n const panels = Array.from(container.querySelectorAll<HTMLElement>(panelSelector)).filter(owned);\n const tablist = container.querySelector(\"[role=tablist]\") ?? container;\n\n let currentIndex = -1;\n let isInitialActivation = true;\n\n function getStorage(kind: \"local\" | \"session\"): Storage | null {\n try {\n return kind === \"session\" ? sessionStorage : localStorage;\n } catch {\n return null;\n }\n }\n\n function getLabel(tab: HTMLElement): string {\n return sync?.getLabel?.(tab) ?? tab.textContent?.trim() ?? \"\";\n }\n\n function updateIndicator(index: number) {\n if (!indicator || !tabs[index]) return;\n indicator.style.left = `${tabs[index].offsetLeft}px`;\n indicator.style.width = `${tabs[index].offsetWidth}px`;\n }\n\n function activate(index: number, options?: { emitSync?: boolean }) {\n const emitSync = options?.emitSync ?? true;\n if (index === currentIndex) return;\n\n // Capture scroll position before DOM changes to prevent layout jump\n const rect = container.getBoundingClientRect();\n const scrollBefore = rect.top;\n\n currentIndex = index;\n\n tabs.forEach((tab, i) => {\n const active = i === index;\n tab.setAttribute(\"aria-selected\", String(active));\n if (rovingTabindex) {\n tab.setAttribute(\"tabindex\", active ? \"0\" : \"-1\");\n }\n });\n\n panels.forEach((panel, i) => {\n const visible = i === index;\n panel.hidden = !visible;\n // Panels with no focusable children need tabindex=\"0\" so keyboard\n // users can Tab into the content (WAI-ARIA Tabs pattern).\n if (visible) {\n const hasFocusable = panel.querySelector(FOCUSABLE) !== null;\n if (!hasFocusable) {\n panel.setAttribute(\"tabindex\", \"0\");\n } else {\n panel.removeAttribute(\"tabindex\");\n }\n }\n });\n\n updateIndicator(index);\n onActivate?.(index);\n\n // Compensate scroll position after panel height change (skip on first paint)\n if (emitSync && !isInitialActivation) {\n const scrollAfter = container.getBoundingClientRect().top;\n const delta = scrollAfter - scrollBefore;\n if (Math.abs(delta) > 1) {\n window.scrollTo({\n top: window.scrollY + delta,\n behavior: \"instant\",\n });\n }\n }\n isInitialActivation = false;\n\n if (sync && emitSync) {\n // `tabs[index]!`: `activate(index)` is only called with validated indices.\n const label = getLabel(tabs[index]!);\n const store = getStorage(sync.storage === \"session\" ? \"session\" : \"local\");\n store?.setItem(sync.key, label);\n window.dispatchEvent(\n new CustomEvent(\"ui-tab-sync\", {\n detail: { key: sync.key, label, origin: container },\n }),\n );\n }\n }\n\n // Resolve initial index from sync storage\n let initialIndex = 0;\n if (sync) {\n const store = getStorage(sync.storage === \"session\" ? \"session\" : \"local\");\n const saved = store?.getItem(sync.key);\n if (saved) {\n const idx = tabs.findIndex((t) => getLabel(t) === saved);\n if (idx >= 0) initialIndex = idx;\n }\n }\n\n // Click delegation on tablist\n function handleClick(e: Event) {\n const target = (e.target as HTMLElement).closest(tabSelector);\n if (!target) return;\n const idx = tabs.indexOf(target as HTMLElement);\n if (idx >= 0) {\n activate(idx);\n if (rovingTabindex) (target as HTMLElement).focus();\n }\n }\n\n // Keyboard navigation (roving tabindex)\n function handleKeydown(e: KeyboardEvent) {\n if (!rovingTabindex) return;\n const ci = tabs.indexOf(e.target as HTMLElement);\n if (ci < 0) return;\n\n let next: number;\n switch (e.key) {\n case \"ArrowRight\":\n next = ci + 1;\n break;\n case \"ArrowLeft\":\n next = ci - 1;\n break;\n case \"Home\":\n next = 0;\n break;\n case \"End\":\n next = tabs.length - 1;\n break;\n default:\n return;\n }\n // No-wrap: ignore if out of bounds\n if (!tabs[next]) return;\n e.preventDefault();\n activate(next);\n // `tabs[next]!`: guard above proves the assertion.\n tabs[next]!.focus();\n }\n\n // Cross-instance sync via CustomEvent\n function handleSync(e: Event) {\n const detail = (e as CustomEvent).detail;\n if (detail.key === sync?.key && detail.origin !== container) {\n const idx = tabs.findIndex((t) => getLabel(t) === detail.label);\n if (idx >= 0) activate(idx, { emitSync: false });\n }\n }\n\n // Wire events\n tablist.addEventListener(\"click\", handleClick);\n tablist.addEventListener(\"keydown\", handleKeydown as EventListener);\n if (sync) window.addEventListener(\"ui-tab-sync\", handleSync);\n\n // Initial activation — skip indicator transition for first paint\n if (indicator) indicator.style.transition = \"none\";\n activate(initialIndex);\n if (indicator) {\n void indicator.offsetHeight; // force reflow\n indicator.style.transition = \"\";\n }\n\n return {\n activate,\n get currentIndex() {\n return currentIndex;\n },\n destroy() {\n tablist.removeEventListener(\"click\", handleClick);\n tablist.removeEventListener(\"keydown\", handleKeydown as EventListener);\n if (sync) window.removeEventListener(\"ui-tab-sync\", handleSync);\n },\n };\n}\n","/**\n * scroll-lock.ts — Body scroll lock with scrollbar-width compensation.\n *\n * Prevents background scrolling when a modal/overlay is open.\n * Compensates for the scrollbar disappearing to avoid layout shift\n * (visible on Windows/Linux where scrollbars have width).\n *\n * Uses a data attribute + CSS for the overflow lock, and inline\n * paddingRight for the scrollbar compensation.\n *\n * Used by: Dialog (and any future overlay primitive).\n */\n\nconst ATTR = \"data-scroll-locked\";\n\nlet lockCount = 0;\nlet savedPaddingRight = \"\";\n\nexport function lockScroll(): void {\n lockCount++;\n if (lockCount > 1) return;\n\n const scrollbarW = window.innerWidth - document.documentElement.clientWidth;\n savedPaddingRight = document.body.style.paddingRight;\n\n document.body.setAttribute(ATTR, \"\");\n if (scrollbarW > 0) {\n document.body.style.paddingRight = `${scrollbarW}px`;\n }\n}\n\nexport function unlockScroll(): void {\n if (lockCount === 0) return;\n lockCount--;\n if (lockCount > 0) return;\n\n document.body.removeAttribute(ATTR);\n document.body.style.paddingRight = savedPaddingRight;\n}\n","/**\n * code-copy.ts — Injects a Nimbus-styled copy button into every Shiki\n * code block rendered by Astro's built-in `<Code>` and fenced\n * code blocks in MDX.\n *\n * Astro emits `<pre class=\"astro-code shiki ...\">` for syntax-highlighted\n * blocks. We attach a copy button positioned in the top-right corner.\n *\n * Page-wide enhancement, not tied to a single component. Call `codeCopy()`\n * once (e.g. from BaseLayout). Uses `mount` for lifecycle so the buttons\n * are torn down on view transitions and re-added against the new DOM.\n *\n * The original code text comes from the `<code>` element's textContent —\n * Shiki's wrapper spans flatten down to the raw source.\n *\n * Code blocks rendered inside [data-cg-row] (CodeGroup) are skipped\n * because CodeGroup brings its own copy button per panel.\n */\n\nimport { mount } from \"./mount\";\n\nconst COPY_ICON = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M216,32H88a8,8,0,0,0-8,8V80H40a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8H168a8,8,0,0,0,8-8V176h40a8,8,0,0,0,8-8V40A8,8,0,0,0,216,32ZM160,208H48V96H160Zm48-48H176V88a8,8,0,0,0-8-8H96V48H208Z\"/></svg>`;\nconst CHECK_ICON = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M173.66,98.34a8,8,0,0,1,0,11.32l-56,56a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L112,148.69l50.34-50.35A8,8,0,0,1,173.66,98.34Z\"/></svg>`;\n\nfunction getCodeText(pre: HTMLElement): string {\n const codeEl = pre.querySelector<HTMLElement>(\"code\");\n return codeEl?.textContent ?? pre.textContent ?? \"\";\n}\n\nfunction initCodeCopy(pre: HTMLElement): () => void {\n // Skip code blocks owned by CodeGroup. `data-cg-panels-raw` is SSR'd\n // (catches pres before CodeGroup's client script reparents them);\n // `data-cg-row` catches them after reparenting.\n if (pre.closest(\"[data-cg-panels-raw], [data-cg-row]\")) return () => {};\n\n // Append the button to the figure wrapper, not the pre. The pre has\n // `overflow-x: auto`, and absolutely-positioned children of overflow:auto\n // containers slide along with horizontal scroll on iOS Safari. The figure\n // is the non-scrolling wrapper emitted by titleAndLangTransformer.\n const host = (pre.closest(\".nb-code-figure\") as HTMLElement | null) ?? pre;\n\n const btn = document.createElement(\"button\");\n btn.type = \"button\";\n btn.className = \"nb-code-copy\";\n btn.setAttribute(\"aria-label\", \"Copy code to clipboard\");\n btn.innerHTML = COPY_ICON;\n\n let resetTimer: number | undefined;\n\n async function handleClick() {\n const text = getCodeText(pre);\n if (!text) return;\n\n try {\n await navigator.clipboard.writeText(text);\n } catch {\n return;\n }\n\n btn.innerHTML = CHECK_ICON;\n btn.dataset.state = \"copied\";\n btn.setAttribute(\"aria-label\", \"Copied!\");\n\n if (resetTimer) window.clearTimeout(resetTimer);\n resetTimer = window.setTimeout(() => {\n btn.innerHTML = COPY_ICON;\n delete btn.dataset.state;\n btn.setAttribute(\"aria-label\", \"Copy code to clipboard\");\n }, 1500);\n }\n\n btn.addEventListener(\"click\", handleClick);\n\n if (getComputedStyle(host).position === \"static\") {\n host.style.position = \"relative\";\n }\n host.appendChild(btn);\n\n return () => {\n if (resetTimer) window.clearTimeout(resetTimer);\n btn.removeEventListener(\"click\", handleClick);\n btn.remove();\n };\n}\n\n/** Wire copy buttons onto all Shiki code blocks on the page. Call once. */\nexport function codeCopy(): void {\n mount(\"pre.astro-code\", initCodeCopy);\n}\n","/** Add hoverable self-links to markdown headings with ids. */\n\nlet liveRegion: HTMLElement | null = null;\n\n/**\n * Singleton polite live region for the \"copied\" announcement.\n * Visually hidden via inline styles so the framework doesn't depend on\n * a starter utility class.\n */\nfunction announce(message: string) {\n if (!liveRegion || !liveRegion.isConnected) {\n liveRegion = document.createElement(\"div\");\n liveRegion.setAttribute(\"aria-live\", \"polite\");\n Object.assign(liveRegion.style, {\n position: \"absolute\",\n width: \"1px\",\n height: \"1px\",\n padding: \"0\",\n margin: \"-1px\",\n overflow: \"hidden\",\n clipPath: \"inset(50%)\",\n whiteSpace: \"nowrap\",\n border: \"0\",\n });\n document.body.appendChild(liveRegion);\n }\n // Clear first so repeating the same message re-announces.\n liveRegion.textContent = \"\";\n liveRegion.textContent = message;\n}\n\nfunction applyHeadingAnchors() {\n document.querySelectorAll<HTMLElement>(\".docs-content :is(h2, h3, h4)[id]\").forEach((heading) => {\n if (heading.hasAttribute(\"data-heading-anchor-ready\")) return;\n heading.setAttribute(\"data-heading-anchor-ready\", \"true\");\n\n const link = document.createElement(\"a\");\n link.href = `#${heading.id}`;\n link.className = \"heading-anchor\";\n link.setAttribute(\"aria-label\", `Copy link to ${heading.textContent?.trim() ?? \"section\"}`);\n link.textContent = \"#\";\n\n // Copy the deep link on click. Default navigation is preserved so\n // the URL bar updates; the clipboard write rides alongside. No-op\n // outside secure contexts.\n link.addEventListener(\"click\", () => {\n const url = new URL(link.getAttribute(\"href\") ?? `#${heading.id}`, location.href).href;\n navigator.clipboard?.writeText(url).then(\n () => announce(\"Link copied to clipboard\"),\n () => {},\n );\n });\n\n heading.appendChild(link);\n });\n}\n\n/**\n * Add hoverable `#` self-links to all `h2`–`h4` headings in `.docs-content`.\n * Clicking one navigates (hash) *and* copies the absolute deep link, with an\n * `aria-live` announcement for screen readers. Re-runs on `astro:page-load`\n * for View Transitions. Call once (e.g. from BaseLayout).\n */\nexport function headingAnchors(): void {\n applyHeadingAnchors();\n document.addEventListener(\"astro:page-load\", applyHeadingAnchors);\n}\n"],"mappings":"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"}
|
package/dist/content.d.ts
CHANGED
|
@@ -237,13 +237,13 @@ declare function docsCollection<TFields extends Record<string, z.ZodTypeAny> = R
|
|
|
237
237
|
*/
|
|
238
238
|
declare function partialsCollection<TFields extends Record<string, z.ZodTypeAny> = Record<string, never>>(options?: PartialsCollectionOptions<TFields>): {
|
|
239
239
|
loader: astro_loaders0.Loader;
|
|
240
|
-
schema: z.
|
|
241
|
-
params: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
242
|
-
}, z.core.$strip>> | z.ZodObject<("params" & keyof TFields extends never ? {
|
|
240
|
+
schema: z.ZodObject<("params" & keyof TFields extends never ? {
|
|
243
241
|
params: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
244
242
|
} & { -readonly [P in keyof TFields]: TFields[P] } : ({
|
|
245
243
|
params: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
246
|
-
} extends infer T_1 extends z.core.util.SomeObject ? { [K in keyof T_1 as K extends keyof TFields ? never : K]: T_1[K] } : never) & { [K_1 in keyof { -readonly [P in keyof TFields]: TFields[P] }]: { -readonly [P in keyof TFields]: TFields[P] }[K_1] }) extends infer T ? { [k in keyof T]: T[k] } : never, z.core.$strip
|
|
244
|
+
} extends infer T_1 extends z.core.util.SomeObject ? { [K in keyof T_1 as K extends keyof TFields ? never : K]: T_1[K] } : never) & { [K_1 in keyof { -readonly [P in keyof TFields]: TFields[P] }]: { -readonly [P in keyof TFields]: TFields[P] }[K_1] }) extends infer T ? { [k in keyof T]: T[k] } : never, z.core.$strip> | z.ZodDefault<z.ZodObject<{
|
|
245
|
+
params: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
246
|
+
}, z.core.$strip>>;
|
|
247
247
|
};
|
|
248
248
|
interface ComponentsCollectionOptions {
|
|
249
249
|
/**
|
package/dist/index.d.ts
CHANGED
|
@@ -85,12 +85,56 @@ interface CollectionLintConfig {
|
|
|
85
85
|
*/
|
|
86
86
|
type CollectionsConfig = Record<string, CollectionLintConfig>;
|
|
87
87
|
//#endregion
|
|
88
|
+
//#region src/_internal/incremental/partial-refs.d.ts
|
|
89
|
+
/**
|
|
90
|
+
* Partial resolver hook. Called for every component opening tag scanner
|
|
91
|
+
* encounters in MDX content. Returns the absolute file path of the partial
|
|
92
|
+
* the component embeds, or null if the component isn't a partial-embedder
|
|
93
|
+
* (Tabs, Aside, etc.) or the props don't match a known pattern.
|
|
94
|
+
*
|
|
95
|
+
* Pattern borrowed from mvvmm's cloudflare-docs PR — supports the
|
|
96
|
+
* multi-prop case (`<Render file="setup" product="workers" />` →
|
|
97
|
+
* `partials/workers/setup.mdx`) that single-prop string regex can't
|
|
98
|
+
* capture.
|
|
99
|
+
*/
|
|
100
|
+
type PartialResolverHook = (componentName: string, props: Record<string, string>) => string | null;
|
|
101
|
+
//#endregion
|
|
102
|
+
//#region src/_internal/incremental/sitemap.d.ts
|
|
103
|
+
/** Mirror of `@astrojs/sitemap`'s `SitemapItem` shape. */
|
|
104
|
+
interface SitemapItem {
|
|
105
|
+
url: string;
|
|
106
|
+
lastmod?: string;
|
|
107
|
+
changefreq?: "always" | "hourly" | "daily" | "weekly" | "monthly" | "yearly" | "never";
|
|
108
|
+
priority?: number;
|
|
109
|
+
links?: {
|
|
110
|
+
lang: string;
|
|
111
|
+
url: string;
|
|
112
|
+
}[];
|
|
113
|
+
}
|
|
114
|
+
type SitemapSerialize = (item: SitemapItem) => SitemapItem | undefined | null | Promise<SitemapItem | undefined | null>;
|
|
115
|
+
//#endregion
|
|
88
116
|
//#region src/integration.d.ts
|
|
117
|
+
interface SitemapOptions {
|
|
118
|
+
serialize?: SitemapSerialize;
|
|
119
|
+
customPages?: string[];
|
|
120
|
+
}
|
|
89
121
|
interface NimbusIntegrationOptions {
|
|
90
122
|
/** MDX options forwarded to `@astrojs/mdx`. */
|
|
91
123
|
mdx?: Parameters<typeof mdx>[0];
|
|
92
|
-
/**
|
|
93
|
-
|
|
124
|
+
/**
|
|
125
|
+
* Sitemap behavior. Defaults: enabled when `site.url` is set, default
|
|
126
|
+
* `@astrojs/sitemap` output. `false` disables it. Pass an object to
|
|
127
|
+
* customise — currently `serialize` and `customPages` are supported, and
|
|
128
|
+
* they apply both when incremental builds are on (we emit the sitemap
|
|
129
|
+
* ourselves so cached routes appear) and when incremental is off (we
|
|
130
|
+
* forward them to `@astrojs/sitemap`).
|
|
131
|
+
*
|
|
132
|
+
* The `serialize` callback runs once per URL and may return modified
|
|
133
|
+
* fields (e.g. `lastmod` from git) or `null`/`undefined` to drop the
|
|
134
|
+
* URL. Cloudflare-docs's pattern of git-sourced `lastmod` is the
|
|
135
|
+
* motivating case.
|
|
136
|
+
*/
|
|
137
|
+
sitemap?: boolean | SitemapOptions;
|
|
94
138
|
/**
|
|
95
139
|
* Override the markdown processor Nimbus wires into Astro's
|
|
96
140
|
* `markdown.processor`. Default is Sätteri (Rust-based, fast).
|
|
@@ -189,6 +233,46 @@ interface NimbusIntegrationOptions {
|
|
|
189
233
|
* }
|
|
190
234
|
*/
|
|
191
235
|
collections?: CollectionsConfig;
|
|
236
|
+
/**
|
|
237
|
+
* Opt into per-page build caching. When `true`, Nimbus wraps Astro's
|
|
238
|
+
* prerenderer and short-circuits cache hits with previously-rendered HTML.
|
|
239
|
+
*
|
|
240
|
+
* Phase 2 MVP — preview-quality:
|
|
241
|
+
* - Per-page cache keyed on file bytes + a global hash of tracked
|
|
242
|
+
* sources (config, components, layouts, lockfile).
|
|
243
|
+
* - No partial-dependency tracking yet — editing a partial triggers a
|
|
244
|
+
* full rebuild (because it doesn't change the page's bytes but it
|
|
245
|
+
* does need to invalidate dependents). Phase 3 closes this gap.
|
|
246
|
+
* - No cache provenance / namespace isolation / trust boundary.
|
|
247
|
+
* Manual `rm -rf .nimbus/cache` between framework upgrades.
|
|
248
|
+
*
|
|
249
|
+
* Default: `false`. The bench (`apps/incremental-bench`) is the only
|
|
250
|
+
* site that should set this today.
|
|
251
|
+
*/
|
|
252
|
+
incrementalBuilds?: boolean;
|
|
253
|
+
/**
|
|
254
|
+
* Custom partial resolver for incremental builds. Called for every
|
|
255
|
+
* PascalCase component opening tag found in MDX content with string-
|
|
256
|
+
* literal props. Return the absolute file path of the partial the
|
|
257
|
+
* component embeds, or `null` to indicate this component isn't a
|
|
258
|
+
* partial-embedder.
|
|
259
|
+
*
|
|
260
|
+
* The default resolver covers the standard `<Render file="topic/slug" />`
|
|
261
|
+
* pattern shipping with Nimbus's starter. Sites with multi-prop
|
|
262
|
+
* conventions need their own — cloudflare-docs is the motivating case:
|
|
263
|
+
*
|
|
264
|
+
* @example
|
|
265
|
+
* partialResolver: (name, props) => {
|
|
266
|
+
* if (name !== "Render" || !props.file) return null;
|
|
267
|
+
* if (props.product) {
|
|
268
|
+
* return resolve(projectRoot, `src/content/partials/${props.product}/${props.file}.mdx`);
|
|
269
|
+
* }
|
|
270
|
+
* return resolve(projectRoot, `src/content/partials/${props.file}.mdx`);
|
|
271
|
+
* }
|
|
272
|
+
*
|
|
273
|
+
* Required only when `incrementalBuilds: true`. Ignored otherwise.
|
|
274
|
+
*/
|
|
275
|
+
partialResolver?: PartialResolverHook;
|
|
192
276
|
}
|
|
193
277
|
declare function nimbus(rawConfig: NimbusConfig, options?: NimbusIntegrationOptions): AstroIntegration;
|
|
194
278
|
//#endregion
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":["Data","Point","line","column","offset","Position","start","end","Literal","Node","value","type","data","position","Parent","children","Data","UnistData","Literal","UnistLiteral","Node","UnistNode","Parent","UnistParent","Properties","Array","PropertyName","ElementContent","ElementContentMap","Comment","Element","Text","comment","element","text","RootContent","RootContentMap","Doctype","doctype","Content","Literals","Nodes","Extract","Root","Parents","data","value","children","CommentData","type","DoctypeData","ElementData","tagName","properties","content","RootData","TextData","ruleIdSymbol","RuleId","__brand","endRuleId","IRuleRegistry","T","Rule","getRule","ruleId","registerRule","id","factory","IGrammarRegistry","IRawRepository","IRawGrammar","getExternalGrammar","scopeName","repository","IRuleFactoryHelper","ILocation","IOnigCaptureIndex","RegExpSourceList","IOnigLib","RegExpString","CompiledRule","$location","_nameIsCapturing","_name","_contentNameIsCapturing","_contentName","constructor","name","contentName","dispose","debugName","getName","lineText","captureIndices","getContentName","collectPatterns","grammar","out","compile","endRegexSource","compileAG","allowA","allowG","RegExpSource","TRuleId","source","hasAnchor","hasBackReferences","_anchorCache","regExpSource","clone","setSource","newSource","resolveBackReferences","_buildAnchorCache","resolveAnchors","_items","_hasAnchors","_cached","_disposeCaches","push","item","unshift","length","index","onigLib","_resolveAnchors","OnigString","FindOption","OrMask","IFindNextMatchResult","regExps","rules","scanner","toString","findNextMatchSync","string","startPosition","options","ScopeName","IRawRule","ILocatable","patterns","injections","expression","injectionSelector","fileTypes","firstLineMatch","IncludeString","RegExp","IRawRepositoryMap","IRawCaptures","include","match","captures","begin","beginCaptures","end","endCaptures","while","whileCaptures","applyEndPatternLast","IRawCapturesMap","captureId","filename","line","char","$vscodeTextmateLocation","OnigScanner","createOnigScanner","sources","createOnigString","str","start","IOnigMatch","None","NotBeginString","NotEndString","NotBeginPosition","DebugCall","content","disposeOnigString","Theme","IRawTheme","ParsedThemeRule","ColorMap","StyleAttributes","ThemeTrieElement","ScopeStack","_colorMap","_defaults","_root","createFromRawTheme","colorMap","createFromParsedTheme","_cachedMatchRoot","getColorMap","getDefaults","scopePath","ScopePath","ScopePattern","IRawThemeSetting","settings","scope","fontStyle","foreground","background","parent","path","scopeNames","from","first","segments","getSegments","extends","other","getExtensionIfDefined","base","FontStyle","foregroundId","backgroundId","parentScopes","NotSet","Italic","Bold","Underline","Strikethrough","_isFrozen","_lastColorId","_id2color","_color2id","getId","color","ThemeTrieElementRule","scopeDepth","cloneArr","arr","acceptOverwrite","ITrieChildrenMap","segment","_mainRule","_children","_rulesWithParentScopes","rulesWithParentScopes","_cmpBySpecificity","insert","_doInsertHere","EncodedTokenAttributes","EncodedTokenMetadata","StandardTokenType","OptionalStandardTokenType","toBinaryStr","encodedTokenAttributes","print","getLanguageId","getTokenType","containsBalancedBrackets","getFontStyle","getForeground","getBackground","set","languageId","tokenType","Other","Comment","String","RegEx","Matcher","matcherInput","BasicScopeAttributes","IThemeProvider","themeMatch","IGrammarRepository","lookup","Injection","debugSelector","matcher","priority","Grammar","IEmbeddedLanguagesMap","ITokenTypeMap","BalancedBracketSelectors","StateStackImpl","ITokenizeLineResult","ITokenizeLineResult2","IGrammar","_rootScopeName","balancedBracketSelectors","_onigLib","_rootId","_lastRuleId","_ruleId2desc","_includedGrammars","_grammarRepository","_grammar","_injections","_basicScopeAttributesProvider","_tokenTypeMatchers","themeProvider","initialLanguage","embeddedLanguages","tokenTypes","grammarRepository","getMetadataForScope","_collectInjections","getInjections","tokenizeLine","prevState","timeLimit","tokenizeLine2","_tokenize","AttributedScopeStack","AttributedScopeStackFrame","tokenAttributes","fromExtension","namesScopeList","contentNameScopesList","createRoot","createRootAndLookUpScopeName","equals","a","b","mergeAttributes","pushAttributed","_pushAttributed","getScopeNames","StateStackFrame","StateStack","beginRuleCapturedEOL","endRule","nameScopesList","_stackElementBrand","NULL","_enterPos","_anchorPos","depth","enterPos","anchorPos","_equals","_structuralEquals","_reset","reset","pop","safePop","getEnterPos","getAnchorPos","_writeString","withContentNameScopesList","contentNameScopeStack","withEndRule","hasSameRuleAs","toStateStackFrame","pushFrame","self","frame","balancedBracketScopes","unbalancedBracketScopes","allowAny","matchesAlways","matchesNever","scopes","SyncRegistry","Map","_grammars","_rawGrammars","_injectionGrammars","_theme","theme","setTheme","addGrammar","injectionScopeNames","targetScope","grammarForScopeName","StackDiff","pops","newFrames","RegistryOptions","loadGrammar","selector","IGrammarConfiguration","unbalancedBracketSelectors","Registry","_options","_syncRegistry","_ensureGrammarCache","loadGrammarWithEmbeddedLanguages","initialScopeName","loadGrammarWithConfiguration","configuration","_loadGrammar","_loadSingleGrammar","_doLoadSingleGrammar","rawGrammar","_grammarForScopeName","IToken","tokens","ruleStack","stoppedEarly","Uint32Array","startIndex","endIndex","INITIAL","Element","Root","FontStyle","IGrammar","IRawGrammar","RawGrammar","IRawTheme","RawTheme","IRawThemeSetting","RawThemeSetting","OnigScanner","OnigString","StateStack","Awaitable","T","Promise","MaybeGetter","MaybeModule","default","MaybeArray","RequireKeys","K","Omit","Pick","Required","Nothing","StringLiteralUnion","U","PatternScanner","RegexEngineString","RegexEngine","RegExp","createScanner","patterns","createString","s","WebAssemblyInstantiator","WebAssembly","ImportValue","Record","WebAssemblyInstance","importObject","WebAssemblyInstantiatedSource","Instance","OnigurumaLoadOptions","ArrayBufferView","ArrayBuffer","Response","instantiator","data","LoadWasmOptionsPlain","LoadWasmOptions","Grammar","name","PlainTextLanguage","AnsiLanguage","SpecialLanguage","LanguageInput","LanguageRegistration","ResolveBundleKey","scopeName","displayName","aliases","embeddedLangs","embeddedLanguages","embeddedLangsLazy","balancedBracketSelectors","unbalancedBracketSelectors","foldingStopMarker","foldingStartMarker","injectTo","BundledLanguageInfo","DynamicImportLanguageRegistration","id","import","DecorationOptions","DecorationItem","decorations","OffsetOrPosition","DecorationTransformType","start","end","tagName","properties","transform","element","type","alwaysWrap","ResolvedDecorationItem","ResolvedPosition","Position","line","character","Offset","offset","SpecialTheme","ThemeInput","ThemeRegistrationAny","ThemeRegistrationRaw","ThemeRegistration","Partial","ThemeRegistrationResolved","settings","tokenColors","fg","bg","colorReplacements","colors","$schema","semanticHighlighting","semanticTokenColors","DynamicImportThemeRegistration","BundledThemeInfo","GrammarState","lang","theme","themes","getInternalStack","getScopes","CodeToTokensBaseOptions","Languages","Themes","TokenizeWithThemeOptions","CodeToTokensOptions","CodeOptionsThemes","CodeToTokensWithThemesOptions","ThemedTokenScopeExplanation","themeMatches","ThemedTokenExplanation","content","scopes","ThemedToken","TokenStyles","TokenBase","explanation","color","bgColor","fontStyle","htmlStyle","htmlAttrs","ThemedTokenWithVariants","variants","includeExplanation","tokenizeMaxLineLength","tokenizeTimeLimit","grammarState","grammarContextCode","TokensResult","tokens","themeName","rootStyle","TransformerOptions","ShikiTransformer","transformers","ShikiTransformerContextMeta","ShikiTransformerContextCommon","CodeToHastOptions","meta","options","codeToHast","code","codeToTokens","ShikiTransformerContextSource","source","ShikiTransformerContext","root","pre","lines","structure","addClassToHast","hast","className","enforce","preprocess","this","span","col","lineElement","token","postprocess","html","HighlighterCoreOptions","Sync","engine","langs","langAlias","warnings","BundledHighlighterOptions","L","CodeOptionsSingleTheme","CodeOptionsMultipleThemes","defaultColor","colorsRendering","cssVariablePrefix","CodeToHastOptionsCommon","CodeOptionsMeta","mergeWhitespaces","mergeSameStyleTokens","tabindex","__raw","key","CodeToHastRenderOptionsCommon","langId","CodeToHastRenderOptions","GrammarStateMapKey","ShikiPrimitive","BundledLangKeys","BundledThemeKeys","Symbol","dispose","loadTheme","loadThemeSync","loadLanguage","loadLanguageSync","getTheme","getLanguage","setTheme","colorMap","resolveLangAlias","getLoadedLanguages","getLoadedThemes","HighlighterGeneric","codeToHtml","codeToTokensBase","codeToTokensWithThemes","getLastGrammarState","getInternalContext","getBundledLanguages","getBundledThemes","HighlighterCore","CreateBundledHighlighterOptions","BundledLangs","BundledThemes","CreatedBundledHighlighterOptions","CreateHighlighterFactory","ShikiError","Error","constructor","message"],"sources":["../src/_internal/content.ts","../src/_internal/sidebar.ts","../src/_internal/transform.ts","../src/lint/config.ts","../src/integration.ts","../../../node_modules/.pnpm/@types+unist@3.0.3/node_modules/@types/unist/index.d.ts","../../../node_modules/.pnpm/@types+hast@3.0.4/node_modules/@types/hast/index.d.ts","../../../node_modules/.pnpm/@shikijs+vscode-textmate@10.0.2/node_modules/@shikijs/vscode-textmate/dist/index.d.ts","../../../node_modules/.pnpm/@shikijs+types@4.1.0/node_modules/@shikijs/types/dist/index.d.mts","../src/_internal/code-transformers.ts","../src/index.ts"],"x_google_ignoreList":[5,6,7,8],"mappings":";;;;;;;;;;;;;ACs8BA;;;;;;;;AC57BA;iBFwBsB,iBAAA,CACpB,WAAA,cACC,OAAA,CAAQ,eAAA;;;;iBCk6BK,WAAA,CAAY,KAAA,EAAO,WAAA;;;;;;;;;;;ADp6BnC;UExBiB,8BAAA;EACf,IAAA;EACA,KAAA,EAAO,MAAA;EACP,QAAA;AAAA;AAAA,KAGU,yBAAA,IACV,OAAA,EAAS,8BAAA;AAAA,UAGM,4BAAA;EFgBS;;;;EEXxB,YAAA,GAAe,MAAA,SAAe,yBAAA;ED66BL;EC36BzB,gBAAA;AAAA;AAAA,UAGQ,aAAA;EACR,IAAA;AAAA;;AArBF;;;;;;iBAiNgB,qBAAA,CACd,KAAA,EAAO,aAAA,EACP,OAAA,GAAS,4BAAA;;;;KCxMC,WAAA,GACR,cAAA,IACC,cAAA,EAAgB,MAAA;;;;;;KAOT,WAAA,GAAc,OAAA,CAAQ,MAAA,CAAO,iBAAA,EAAmB,WAAA;;UAG3C,oBAAA;EACf,KAAA,GAAQ,WAAA;AAAA;;;;;;;ADxBV;KCkCY,iBAAA,GAAoB,MAAA,SAAe,oBAAA;;;UCgC9B,wBAAA;EF/Df;EEiEA,GAAA,GAAM,UAAA,QAAkB,GAAA;EFjEhB;EEmER,OAAA;EFhEmC;;;;AAIrC;;;;;;;;;;AAQC;;;;;AA+LD;;;;;EElHE,QAAA;IFoHS,iKEhHP,SAAA;EAAA;EFgHwC;;;;ACxM5C;;;;;;;;;;;;;AASA;;ECoGE,WAAA;IAGM,cAAA;IACA,WAAA;IACA,IAAA,IAAQ,QAAA;EAAA;EDzGiB;;;;;;;;AAGjC;;;;;AAWA;;;;;;ECgHE,WAAA;IAGM,WAAA,GAAc,MAAA;IACd,WAAA;IACA,IAAA,IAAQ,QAAA;EAAA;EAnFU;;;;;;;;;;EA+FxB,KAAA,GAAQ,WAAA;EApER;;;;;;;;;;;EAgFA,WAAA,GAAc,iBAAA;AAAA;AAAA,iBAGA,MAAA,CACd,SAAA,EAAW,YAAA,EACX,OAAA,GAAS,wBAAA,GACR,gBAAA;;;;;;;;;;AJ7JH;;;;;;;;;;;;ACo6BA;UIj7BiBA,MAAAA;;;;UAKAC,KAAAA;;AHhBjB;;EGoBIC,IAAAA;EHnBF;;;EGwBEC,MAAAA;EHtBM;;AAGV;EGuBIC,MAAAA;AAAAA;;AHnBJ;;;;UG2BiBC,UAAAA;EHtBA;;;EG0BbC,KAAAA,EAAOL,KAAAA;EHrBD;;;EG0BNM,GAAAA,EAAKN,KAAAA;AAAAA;;;;;;;;;;AF1BT;UEuDiBQ,MAAAA;;;;EAIbE,IAAAA;EF3D6B;;;EEgE7BC,IAAAA,GAAOZ,MAAAA;EFhEiD;;;AAG5D;;;EEqEIa,QAAAA,GAAWR,UAAAA;AAAAA;;;;;;;;ALpEf;;;;;;;;;;;;ACo6BA;;UKh7BiBW,IAAAA,SAAaC,MAAAA;;;;UAKbO,UAAAA;EAAAA,CACZE,YAAAA,0DAAsED,KAAAA;AAAAA;AAAAA;;;;;;AJZ3E;KIuBYE,cAAAA,GAAiBC,iBAAAA,OAAwBA,iBAAAA;;;AJnBrD;;;UI0BiBA,iBAAAA;EACbI,OAAAA,EAASH,OAAAA;EACTI,OAAAA,EAASH,OAAAA;EACTI,IAAAA,EAAMH,IAAAA;AAAAA;;AJrBT;;;;;KI8BWI,WAAAA,GAAcC,cAAAA,OAAqBA,cAAAA;;;;;;;;;UAU9BA,cAAAA;EACbJ,OAAAA,EAASH,OAAAA;EACTS,OAAAA,EAASD,OAAAA;EACTJ,OAAAA,EAASH,OAAAA;EACTI,IAAAA,EAAMH,IAAAA;AAAAA;AAAAA;;;;;;;;;;;;;;UAsDOX,IAAAA,SAAaC,MAAAA;EFjB1B;;;EEqBAwB,IAAAA,GAAO7B,IAAAA;AAAAA;;;;;;;;UAUME,OAAAA,SAAgBE,IAAAA;EF6C/B;;;EEzCE0B,KAAAA;AAAAA;;;;;;;;UAUaxB,MAAAA,SAAeF,IAAAA;EFoCrB;;;EEhCP2B,QAAAA,EAAUZ,WAAAA;AAAAA;AAAAA;ADzId;;;AAAA,UCiJiBN,OAAAA,SAAgBX,OAAAA;EDjJZ;AAKrB;;ECgJI+B,IAAAA;EDhJkB;;;ECoJlBJ,IAAAA,GAAOG,WAAAA;AAAAA;AD/HX;;;AAAA,UCqIiBA,WAAAA,SAAoBhC,IAAAA;;;;UAKpBqB,OAAAA,SAAgBhB,MAAAA;EDjInB;AA6Bd;;ECwGI4B,IAAAA;EDvFmB;;;EC2FnBJ,IAAAA,GAAOK,WAAAA;AAAAA;;;;UAMMA,WAAAA,SAAoBlC,IAAAA;AAjLrC;;;AAAA,UAsLiBc,OAAAA,SAAgBR,MAAAA;EAtLM;AAKvC;;EAqLI2B,IAAAA;EApLCvB;;AAWL;EA6KI0B,OAAAA;;;;EAIAC,UAAAA,EAAY7B,UAAAA;EA1KkB;;;EA8K9BuB,QAAAA,EAAUpB,cAAAA;EA3KJI;;;;EAgLNuB,OAAAA,GAAUX,IAAAA;EAjLVV;;;EAqLAY,IAAAA,GAAOM,WAAAA;AAAAA;AA3KX;;;AAAA,UAiLiBA,WAAAA,SAAoBnC,IAAAA;AAvKrC;;;;;;;AAAA,UAgLiB2B,IAAAA,SAAarB,MAAAA;EA5KhB;;;EAgLV2B,IAAAA;EAlLSZ;;;EAsLTU,QAAAA,EAAUZ,WAAAA;EApLJJ;;;EAwLNc,IAAAA,GAAOU,QAAAA;AAAAA;;;;UAMMA,QAAAA,SAAiBvC,IAAAA;;AA1HlC;;UA+HiBe,IAAAA,SAAab,OAAAA;EA/HGE;;AAcjC;EAqHI6B,IAAAA;;;;EAIAJ,IAAAA,GAAOW,QAAAA;AAAAA;;AA7GX;;UAmHiBA,QAAAA,SAAiBxC,IAAAA;;;;;;AAnQlC;KCoLKyL,YAAAA;;;;UAIKjB,SAAAA;EAAAA,SACGhG,IAAAA;EAAAA,SACAmH,QAAAA,EAAUD,gBAAAA;AAAAA;;ADzKvB;;UC8KUA,gBAAAA;EAAAA,SACGlH,IAAAA;EAAAA,SACAoH,KAAAA,GAAQH,YAAAA,GAAeA,YAAAA;EAAAA,SACvBE,QAAAA;IAAAA,SACIE,SAAAA;IAAAA,SACAC,UAAAA;IAAAA,SACAC,UAAAA;EAAAA;AAAAA;AAAAA,mBA+BEY,SAAAA;EACfI,MAAAA;EACA/C,IAAAA;EACAgD,MAAAA;EACAC,IAAAA;EACAC,SAAAA;EACAC,aAAAA;AAAAA;AC4HkC;;;AAAA,UDkU5BqG,UAAAA;EACNI,kBAAAA;EAAAA,SACSI,KAAAA;EACTjO,KAAAA,IAASyN,UAAAA;EACTR,MAAAA,CAAOxG,KAAAA,EAAOgH,UAAAA;AAAAA;;;UCvrBRoG,OAAAA;;;;;;KAMLC,kBAAAA,WAA6BC,CAAAA,gBAAiBb,CAAAA,IAAKa,CAAAA,GAAIF,OAAAA;AAAAA;AAAAA;AAAAA;AAAAA,KAgCvD6B,iBAAAA;AAAAA,KACAC,YAAAA;AAAAA,KACAC,eAAAA,GAAkBF,iBAAAA,GAAoBC,YAAAA;AAAAA;AAAAA;AAAAA,UA2CjCoB,iBAAAA;ELhE+B;;;EKoEvCE,WAAAA,GAAcD,cAAAA;AAAAA;AAAAA,UAENA,cAAAA;;;;EAIRI,KAAAA,EAAOF,gBAAAA;EL5DoB;;;EKgE3BG,GAAAA,EAAKH,gBAAAA;;;;AJhCP;EIqCEI,OAAAA;;;;EAIAC,UAAAA,GAAanF,OAAAA;EJwDL;;;EIpDRoF,SAAAA,IAAaC,OAAAA,EAASrF,OAAAA,EAASsF,IAAAA,EAAMP,uBAAAA,KAA4B/E,OAAAA;EJ3CjE;;;;;;;EImDAuF,UAAAA;AAAAA;AAAAA,KAMGR,uBAAAA;AAAAA,UACKW,QAAAA;EACRC,IAAAA;EACAC,SAAAA;AAAAA;AAAAA,KAEGC,MAAAA;AAAAA,KACAf,gBAAAA,GAAmBY,QAAAA,GAAWG,MAAAA;AAAAA;AAAAA;AAAAA,KAM9BE,YAAAA;AAAAA,UAEKG,oBAAAA,SAA6B3F,SAAAA,EAAU6F,OAAAA,CAAQ9E,IAAAA,CAAK6E,iBAAAA;AAAAA,UACpDA,iBAAAA,SAA0BC,OAAAA,CAAQC,yBAAAA;AAAAA,UAClCA,yBAAAA,SAAkC9F,SAAAA;EJwCzB;;;EIpCjB8C,IAAAA;EJmCA;;;;;EI7BAQ,WAAAA;;AH5IF;;;;EGkJEyB,IAAAA;EH7IF;;;EGiJEgB,QAAAA,EAAU7F,gBAAAA;EH7IR1Z;;;EGiJFwf,WAAAA,GAAc9F,gBAAAA;EHxIN;AAQV;;;;EGsIE+F,EAAAA;EHlIS1f;;;;;EGwIT2f,EAAAA;EHtGmB;;;;;;;EG8GnBC,iBAAAA,GAAoBnE,MAAAA;EH7FC;;;;;EGmGrBoE,MAAAA,GAASpE,MAAAA;EFnLU;;;;AAKrB;EEoLEqE,OAAAA;;;;AFxKF;;EE8KEC,oBAAAA;EF9K2Bpe;;AAO7B;;;EE6KEqe,mBAAAA,GAAsBvE,MAAAA;AAAAA;AAAAA,KAEnB0D,oBAAAA,GAAuBC,oBAAAA,GAAuBC,iBAAAA,GAAoBE,yBAAAA;AAAAA;AAAAA;;;;;AFzJvE;UE0KUY,YAAAA;EAAAA,SACCC,IAAAA;EAAAA,SACAC,KAAAA;EAAAA,SACAC,MAAAA;EF1KEze;;;EE8KX0e,gBAAAA,GAAmBF,KAAAA,cAAmBvG,UAAAA;EACtC0G,SAAAA,GAAYH,KAAAA;AAAAA;AAAAA,UAEJI,uBAAAA,4EAAmGG,wBAAAA;EAC3GR,IAAAA,GAAOM,SAAAA,GAAYhE,eAAAA;EACnB2D,KAAAA,GAAQM,MAAAA,GAASxB,oBAAAA,GAAuBF,YAAAA;AAAAA;AAAAA,KAErC4B,mBAAAA,sEAAyFrG,IAAAA,CAAKiG,uBAAAA,CAAwBC,SAAAA,EAAWC,MAAAA,cAAoBG,iBAAAA,CAAkBH,MAAAA;AAAAA,UAoBlKK,2BAAAA;EACRlE,SAAAA;EACAmE,YAAAA,GAAevH,gBAAAA;AAAAA;AAAAA,UAEPwH,sBAAAA;EACRC,OAAAA;EACAC,MAAAA,EAAQJ,2BAAAA;AAAAA;;;;;;;;;;AFlGV;;;;;AAKA;;;;;;;;;;AAcA;;;;;AAKA;;;;;;;;;;;;;;;;;;;;;;;AA+BA;;UEmGUK,WAAAA,SAAoBC,WAAAA,EAAaC,SAAAA;AAAAA,UACjCA,SAAAA;EFpG+B;AASzC;;EE+FEJ,OAAAA;EFvFYjf;;;EE2FZ8c,MAAAA;EFnGkC;;;;;;EE0GlCwC,WAAAA,GAAcN,sBAAAA;AAAAA;AAAAA,UAENI,WAAAA;EF1FV;;;EE8FEG,KAAAA;EF9FoC;AAKtC;;EE6FEC,OAAAA;EF7FmC;;;EEiGnCC,SAAAA,GAAYvI,SAAAA;EFzFH7V;;;AAMX;;EEyFEqe,SAAAA,GAAYnG,MAAAA;EFzFoB1a;;;EE6FhC8gB,SAAAA,GAAYpG,MAAAA;AAAAA;AAAAA,UAQJmF,wBAAAA;;;;;;;;AD9K6B;ECuLrCoB,kBAAAA;;;;;;;;EAQApC,iBAAAA,GAAoBnE,MAAAA,kBAAwBA,MAAAA;EDrL7B5O;;;;AA8BoJ;EC6JnKoV,qBAAAA;;;;;;EAMAC,iBAAAA;ED5JEjU;;;;AA0be;ECxRjBkU,YAAAA,GAAehC,YAAAA;;;;;;;EAOfiC,kBAAAA;AAAAA;;;;UAKQC,YAAAA;;;AAna8D;EAuatEC,MAAAA,EAAQjB,WAAAA;;;;EAIR3B,EAAAA;EApaqB;;;EAwarBC,EAAAA;EAxasD9E;;;EA4atD0H,SAAAA;EA5asBvI;;;;EAibtBwI,SAAAA;EAjb0D7H;;;EAqb1DwH,YAAAA,GAAehC,YAAAA;AAAAA;AAAAA;AAAAA,UAIPsC,kBAAAA;EAzZY;;;EA6ZpBE,YAAAA,GAAeD,gBAAAA;AAAAA;AAAAA,UAEPE,2BAAAA;;;;UAIAC,6BAAAA;EACRE,IAAAA,EAAMH,2BAAAA;EACNI,OAAAA,EAASF,iBAAAA;EACTG,UAAAA,GAAaC,IAAAA,UAAcF,OAAAA,EAASF,iBAAAA,KAAsB3J,IAAAA;EAC1DgK,YAAAA,GAAeD,IAAAA,UAAcF,OAAAA,EAASnC,mBAAAA,KAAwBwB,YAAAA;AAAAA;AAAAA,UAEtDe,6BAAAA,SAAsCP,6BAAAA;EAAAA,SACrCQ,MAAAA;AAAAA;;;;UAKDC,uBAAAA,SAAgCF,6BAAAA;EAAAA,SAC/Bd,MAAAA,EAAQjB,WAAAA;EAAAA,SACRkC,IAAAA,EAAMpK,IAAAA;EAAAA,SACNqK,GAAAA,EAAKtK,OAAAA;EAAAA,SACLgK,IAAAA,EAAMhK,OAAAA;EAAAA,SACNuK,KAAAA,EAAOvK,OAAAA;EAAAA,SACPwK,SAAAA,EAAWZ,iBAAAA;EA1XpB3E;;;;;EAgYAwF,cAAAA,GAAiBC,IAAAA,EAAM1K,OAAAA,EAAS2K,SAAAA,wBAAiC3K,OAAAA;AAAAA;AAAAA,UAEzDwJ,gBAAAA;EArX6BzE;;;EAyXrC1B,IAAAA;EAjXU;;AAIW;;;;;AAEK;;;EAsX1BuH,OAAAA;EAnXS;AAAA;;EAuXTC,UAAAA,IAAcC,IAAAA,EAAMnB,6BAAAA,EAA+BK,IAAAA,UAAcF,OAAAA,EAASF,iBAAAA;EArXjE;;AAAA;;EA0XTR,MAAAA,IAAU0B,IAAAA,EAAMZ,6BAAAA,EAA+Bd,MAAAA,EAAQjB,WAAAA,SAAoBA,WAAAA;EAzXrDzC;;AAER;EA2Xd2E,IAAAA,IAAQS,IAAAA,EAAMV,uBAAAA,EAAyBM,IAAAA,EAAMzK,IAAAA,KAASA,IAAAA;;;;EAItDqK,GAAAA,IAAOQ,IAAAA,EAAMV,uBAAAA,EAAyBM,IAAAA,EAAM1K,OAAAA,KAAYA,OAAAA;EAzX5B;;;EA6X5BgK,IAAAA,IAAQc,IAAAA,EAAMV,uBAAAA,EAAyBM,IAAAA,EAAM1K,OAAAA,KAAYA,OAAAA;EA7XpBO;;;;;;EAoYrCoF,IAAAA,IAAQmF,IAAAA,EAAMV,uBAAAA,EAAyBM,IAAAA,EAAM1K,OAAAA,EAAS2F,IAAAA,aAAiB3F,OAAAA;EApYXmG;;;EAwY5D4E,IAAAA,IAAQD,IAAAA,EAAMV,uBAAAA,EAAyBM,IAAAA,EAAM1K,OAAAA,EAAS2F,IAAAA,UAAcqF,GAAAA,UAAaC,WAAAA,EAAajL,OAAAA,EAASkL,KAAAA,EAAO/C,WAAAA,KAAgBnI,OAAAA;EAvYrG;;;;EA4YzBmL,WAAAA,IAAeL,IAAAA,EAAMnB,6BAAAA,EAA+ByB,IAAAA,UAActB,OAAAA,EAASF,iBAAAA;AAAAA;AAAAA;AAAAA,UAmDnEiC,sBAAAA;EACR1E,KAAAA,EAAOlB,oBAAAA,GAAuBvE,kBAAAA,CAAmB+F,MAAAA;AAAAA;AAAAA,UAEzCqE,yBAAAA;EAlWI3E;;;AAAc;;;;;;;;;;;;;;;;;;;EAyX1BC,MAAAA,EAAQhB,OAAAA,CAAQ7D,MAAAA,SAAe0D,oBAAAA,GAAuBvE,kBAAAA,CAAmB+F,MAAAA;EArXjC1B;;;AAAY;;;;;;;;;;;;;;;;;;;;;AAoBuB;EA2X3EgG,YAAAA,GAAerK,kBAAAA;;;;;;;;AAvXgB;EAgY/BsK,eAAAA;;;;;;EAMAC,iBAAAA;AAAAA;AAAAA,KAEGrE,iBAAAA,mCAAoDiE,sBAAAA,CAAuBpE,MAAAA,IAAUqE,yBAAAA,CAA0BrE,MAAAA;AAAAA,KAC/GmC,iBAAAA,sEAAuFsC,uBAAAA,CAAwB1E,SAAAA,IAAaI,iBAAAA,CAAkBH,MAAAA,IAAU0E,eAAAA;AAAAA,UACnJD,uBAAAA,4CAAmE3C,kBAAAA,EAAoB5E,iBAAAA,EAAmBpD,IAAAA,CAAKmG,wBAAAA;EA9U3FU;;AAAsB;EAkVlDnF,IAAAA,GAAOV,MAAAA;;;;EAIP2E,IAAAA,EAAMxF,kBAAAA,CAAmB8F,SAAAA,GAAYhE,eAAAA;EAtUrC8E;;;;AAAoC;EA4UpCgB,SAAAA;;;;;;;;;;EAUA8C,gBAAAA;EAlUA1D;;;;;;EAyUA2D,oBAAAA;EA7TgC;;;;;;;;EAsUhC7B,SAAAA;EArToBjI;;;;;;;EA6TpB+J,QAAAA;AAAAA;AAAAA,UAEQH,eAAAA;EAjSY;;;;;;;;;EA2SpBtC,IAAAA;IAlRe5C;;;IAsRbsF,KAAAA;IAAAA,CACCC,GAAAA;EAAAA;AAAAA;;;APyOL;;;;;;;;AC57BA;;AD47BA,iBQ/4BgB,uBAAA,CAAA,GAA2B,gBAAA;;;;;AR+4B3C;iBS72BgB,YAAA,WAAuB,YAAA,CAAA,CAAc,MAAA,EAAQ,CAAA,GAAI,CAAA;AAAA,UAmChD,YAAA;ERnGM;EQqGrB,KAAA,EAF2B,cAAA,CAEI,eAAA;ERrGhB;EQuGf,UAAA;ERrGA;EQuGA,KAAA;ERvGgB;EQyGhB,WAAA;ERtGqB;;;;AA6LvB;;;;;;;EQ3EE,GAAA;ER6E0C;;;;;ACxM5C;;EOmIE,WAAA;AAAA;AAAA,UAGe,oBAAA;EPpII;EOsInB,IAAA;EPtIyB;EOwIzB,KAAA;EPxIG;EO0IH,OAAA,EAAS,YAAA;EP1IgB;;AAO3B;;;;;;;;;EO+IE,IAAA;EP/IgC;;;;;AAGlC;;;EOqJE,MAAA;AAAA;AAAA,UAGe,eAAA;EP7IY;;;;EOkJ3B,MAAA,EAAQ,YAAA;;;ANlHV;;EMuHE,MAAA,EAAQ,oBAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;iBAyBY,iBAAA,CAAA,GAAqB,OAAA,CAAQ,YAAA;;;;;;;ANhCnD;;;;;iBM0GsB,kBAAA,CAAA,GAAsB,OAAA,CAAQ,eAAA;;;;;;;;;;;;;ALjRpD;;;;;AAKA;;;;;;;;;AAqBA;;iBKgVsB,UAAA,CACpB,WAAA,UACA,OAAA;EAAY,UAAA;AAAA,IACX,OAAA,CAAQ,WAAA;;;;;;AL7SX;;;;;;iBKgUsB,kBAAA,CACpB,WAAA,UACA,OAAA;EAAY,UAAA;AAAA,IACX,OAAA,CAAQ,cAAA;;;;;;AJlYX;;;;;AAKA;;;;iBImfsB,WAAA,CACpB,WAAA,UACA,OAAA;EACE,SAAA,GAAY,iBAAA;EACZ,WAAA,GAAc,WAAA;AAAA,IAEf,OAAA,CAAQ,QAAA;;;AJteX;;;;iBIyfsB,cAAA,CACpB,WAAA,UACA,OAAA;EAAY,SAAA;AAAA,IACX,OAAA,CAAQ,UAAA;;;;;;;iBAUW,UAAA,CAAW,KAAA;EAC/B,EAAA;EACA,QAAA;AAAA,IACE,OAAA;;;;;AJnfJ;;;;;;;;;;;;;;;;;;iBIihBsB,cAAA,CAAe,KAAA;EACnC,EAAA;EACA,QAAA;AAAA,IACE,OAAA,CAAQ,IAAA;;;;;;;iBAWI,MAAA,CACd,QAAA;EAAY,KAAA;EAAe,IAAA;EAAc,IAAA;AAAA,KACzC,OAAA;EAAY,eAAA;EAA0B,eAAA;AAAA,IACrC,OAAA;;;;;;AJhcH;;;;;;;;;;AAcA;;;cI8ca,kBAAA,EAAoB,cAAA;;AJzcjC;;;;;;;;;;AAcA;;iBImdsB,gBAAA,CAAiB,KAAA,EAAO,WAAA,GAAc,OAAA;EAC1D,KAAA,EADuD,cAAA,CACxB,eAAA;EAC/B,OAAA;EACA,QAAA;IAAY,KAAA;IAAe,IAAA;IAAc,IAAA;EAAA;AAAA;;;;;;;;;;;;;;;;;;AJlb3C;;iBIqdgB,wBAAA,CAAyB,UAAA,WAAqB,cAAA;;;AJ5c9D;;;;;;;;;;;iBImesB,sBAAA,kBAAA,CACpB,KAAA,EAAO,WAAA,GACN,OAAA;EACD,KAAA,EAAgD,cAAA,CAAjB,eAAA,CAAgB,CAAA;EAC/C,OAAA;EACA,QAAA;IAAY,KAAA;IAAe,IAAA;IAAc,IAAA;EAAA;AAAA;;AJjd3C;;;;;;;;;;AAcA;;;;;;;;ACpFc;iBG8jBQ,WAAA,CAAA,GAAe,OAAA,CAAQ,gBAAA;;;;AHzjB5B;;;;;;;;;AAMsB;;;;;;;;iBGqlBjB,iBAAA,CACpB,YAAA,WACC,OAAA;;;;;;AH/iBkK;;;;;;;;;;;;AAiclJ;;;;;;;;;;;;iBGoJG,oBAAA,CACpB,YAAA,UACA,OAAA,WACC,OAAA,CAAQ,sBAAA;;;;AFt0B6D;;;iBEk1BlD,eAAA,CACpB,YAAA,UACA,OAAA,WACC,OAAA;;AFp1Bc;;;;;;;;;;;;;;;;;AAkCX;;;iBE40BgB,oBAAA,CACpB,YAAA,WACC,OAAA;;AF10BmB;;;;;AACL;;;;;AAwCc;;;;;AAQD;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCP;iBEmzBD,oBAAA,CACpB,OAAA,WACC,OAAA;AAAA,iBAsBmB,gBAAA,CACpB,YAAA,WACC,OAAA,CAAQ,aAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":["Data","Point","line","column","offset","Position","start","end","Literal","Node","value","type","data","position","Parent","children","Data","UnistData","Literal","UnistLiteral","Node","UnistNode","Parent","UnistParent","Properties","Array","PropertyName","ElementContent","ElementContentMap","Comment","Element","Text","comment","element","text","RootContent","RootContentMap","Doctype","doctype","Content","Literals","Nodes","Extract","Root","Parents","data","value","children","CommentData","type","DoctypeData","ElementData","tagName","properties","content","RootData","TextData","ruleIdSymbol","RuleId","__brand","endRuleId","IRuleRegistry","T","Rule","getRule","ruleId","registerRule","id","factory","IGrammarRegistry","IRawRepository","IRawGrammar","getExternalGrammar","scopeName","repository","IRuleFactoryHelper","ILocation","IOnigCaptureIndex","RegExpSourceList","IOnigLib","RegExpString","CompiledRule","$location","_nameIsCapturing","_name","_contentNameIsCapturing","_contentName","constructor","name","contentName","dispose","debugName","getName","lineText","captureIndices","getContentName","collectPatterns","grammar","out","compile","endRegexSource","compileAG","allowA","allowG","RegExpSource","TRuleId","source","hasAnchor","hasBackReferences","_anchorCache","regExpSource","clone","setSource","newSource","resolveBackReferences","_buildAnchorCache","resolveAnchors","_items","_hasAnchors","_cached","_disposeCaches","push","item","unshift","length","index","onigLib","_resolveAnchors","OnigString","FindOption","OrMask","IFindNextMatchResult","regExps","rules","scanner","toString","findNextMatchSync","string","startPosition","options","ScopeName","IRawRule","ILocatable","patterns","injections","expression","injectionSelector","fileTypes","firstLineMatch","IncludeString","RegExp","IRawRepositoryMap","IRawCaptures","include","match","captures","begin","beginCaptures","end","endCaptures","while","whileCaptures","applyEndPatternLast","IRawCapturesMap","captureId","filename","line","char","$vscodeTextmateLocation","OnigScanner","createOnigScanner","sources","createOnigString","str","start","IOnigMatch","None","NotBeginString","NotEndString","NotBeginPosition","DebugCall","content","disposeOnigString","Theme","IRawTheme","ParsedThemeRule","ColorMap","StyleAttributes","ThemeTrieElement","ScopeStack","_colorMap","_defaults","_root","createFromRawTheme","colorMap","createFromParsedTheme","_cachedMatchRoot","getColorMap","getDefaults","scopePath","ScopePath","ScopePattern","IRawThemeSetting","settings","scope","fontStyle","foreground","background","parent","path","scopeNames","from","first","segments","getSegments","extends","other","getExtensionIfDefined","base","FontStyle","foregroundId","backgroundId","parentScopes","NotSet","Italic","Bold","Underline","Strikethrough","_isFrozen","_lastColorId","_id2color","_color2id","getId","color","ThemeTrieElementRule","scopeDepth","cloneArr","arr","acceptOverwrite","ITrieChildrenMap","segment","_mainRule","_children","_rulesWithParentScopes","rulesWithParentScopes","_cmpBySpecificity","insert","_doInsertHere","EncodedTokenAttributes","EncodedTokenMetadata","StandardTokenType","OptionalStandardTokenType","toBinaryStr","encodedTokenAttributes","print","getLanguageId","getTokenType","containsBalancedBrackets","getFontStyle","getForeground","getBackground","set","languageId","tokenType","Other","Comment","String","RegEx","Matcher","matcherInput","BasicScopeAttributes","IThemeProvider","themeMatch","IGrammarRepository","lookup","Injection","debugSelector","matcher","priority","Grammar","IEmbeddedLanguagesMap","ITokenTypeMap","BalancedBracketSelectors","StateStackImpl","ITokenizeLineResult","ITokenizeLineResult2","IGrammar","_rootScopeName","balancedBracketSelectors","_onigLib","_rootId","_lastRuleId","_ruleId2desc","_includedGrammars","_grammarRepository","_grammar","_injections","_basicScopeAttributesProvider","_tokenTypeMatchers","themeProvider","initialLanguage","embeddedLanguages","tokenTypes","grammarRepository","getMetadataForScope","_collectInjections","getInjections","tokenizeLine","prevState","timeLimit","tokenizeLine2","_tokenize","AttributedScopeStack","AttributedScopeStackFrame","tokenAttributes","fromExtension","namesScopeList","contentNameScopesList","createRoot","createRootAndLookUpScopeName","equals","a","b","mergeAttributes","pushAttributed","_pushAttributed","getScopeNames","StateStackFrame","StateStack","beginRuleCapturedEOL","endRule","nameScopesList","_stackElementBrand","NULL","_enterPos","_anchorPos","depth","enterPos","anchorPos","_equals","_structuralEquals","_reset","reset","pop","safePop","getEnterPos","getAnchorPos","_writeString","withContentNameScopesList","contentNameScopeStack","withEndRule","hasSameRuleAs","toStateStackFrame","pushFrame","self","frame","balancedBracketScopes","unbalancedBracketScopes","allowAny","matchesAlways","matchesNever","scopes","SyncRegistry","Map","_grammars","_rawGrammars","_injectionGrammars","_theme","theme","setTheme","addGrammar","injectionScopeNames","targetScope","grammarForScopeName","StackDiff","pops","newFrames","RegistryOptions","loadGrammar","selector","IGrammarConfiguration","unbalancedBracketSelectors","Registry","_options","_syncRegistry","_ensureGrammarCache","loadGrammarWithEmbeddedLanguages","initialScopeName","loadGrammarWithConfiguration","configuration","_loadGrammar","_loadSingleGrammar","_doLoadSingleGrammar","rawGrammar","_grammarForScopeName","IToken","tokens","ruleStack","stoppedEarly","Uint32Array","startIndex","endIndex","INITIAL","Element","Root","FontStyle","IGrammar","IRawGrammar","RawGrammar","IRawTheme","RawTheme","IRawThemeSetting","RawThemeSetting","OnigScanner","OnigString","StateStack","Awaitable","T","Promise","MaybeGetter","MaybeModule","default","MaybeArray","RequireKeys","K","Omit","Pick","Required","Nothing","StringLiteralUnion","U","PatternScanner","RegexEngineString","RegexEngine","RegExp","createScanner","patterns","createString","s","WebAssemblyInstantiator","WebAssembly","ImportValue","Record","WebAssemblyInstance","importObject","WebAssemblyInstantiatedSource","Instance","OnigurumaLoadOptions","ArrayBufferView","ArrayBuffer","Response","instantiator","data","LoadWasmOptionsPlain","LoadWasmOptions","Grammar","name","PlainTextLanguage","AnsiLanguage","SpecialLanguage","LanguageInput","LanguageRegistration","ResolveBundleKey","scopeName","displayName","aliases","embeddedLangs","embeddedLanguages","embeddedLangsLazy","balancedBracketSelectors","unbalancedBracketSelectors","foldingStopMarker","foldingStartMarker","injectTo","BundledLanguageInfo","DynamicImportLanguageRegistration","id","import","DecorationOptions","DecorationItem","decorations","OffsetOrPosition","DecorationTransformType","start","end","tagName","properties","transform","element","type","alwaysWrap","ResolvedDecorationItem","ResolvedPosition","Position","line","character","Offset","offset","SpecialTheme","ThemeInput","ThemeRegistrationAny","ThemeRegistrationRaw","ThemeRegistration","Partial","ThemeRegistrationResolved","settings","tokenColors","fg","bg","colorReplacements","colors","$schema","semanticHighlighting","semanticTokenColors","DynamicImportThemeRegistration","BundledThemeInfo","GrammarState","lang","theme","themes","getInternalStack","getScopes","CodeToTokensBaseOptions","Languages","Themes","TokenizeWithThemeOptions","CodeToTokensOptions","CodeOptionsThemes","CodeToTokensWithThemesOptions","ThemedTokenScopeExplanation","themeMatches","ThemedTokenExplanation","content","scopes","ThemedToken","TokenStyles","TokenBase","explanation","color","bgColor","fontStyle","htmlStyle","htmlAttrs","ThemedTokenWithVariants","variants","includeExplanation","tokenizeMaxLineLength","tokenizeTimeLimit","grammarState","grammarContextCode","TokensResult","tokens","themeName","rootStyle","TransformerOptions","ShikiTransformer","transformers","ShikiTransformerContextMeta","ShikiTransformerContextCommon","CodeToHastOptions","meta","options","codeToHast","code","codeToTokens","ShikiTransformerContextSource","source","ShikiTransformerContext","root","pre","lines","structure","addClassToHast","hast","className","enforce","preprocess","this","span","col","lineElement","token","postprocess","html","HighlighterCoreOptions","Sync","engine","langs","langAlias","warnings","BundledHighlighterOptions","L","CodeOptionsSingleTheme","CodeOptionsMultipleThemes","defaultColor","colorsRendering","cssVariablePrefix","CodeToHastOptionsCommon","CodeOptionsMeta","mergeWhitespaces","mergeSameStyleTokens","tabindex","__raw","key","CodeToHastRenderOptionsCommon","langId","CodeToHastRenderOptions","GrammarStateMapKey","ShikiPrimitive","BundledLangKeys","BundledThemeKeys","Symbol","dispose","loadTheme","loadThemeSync","loadLanguage","loadLanguageSync","getTheme","getLanguage","setTheme","colorMap","resolveLangAlias","getLoadedLanguages","getLoadedThemes","HighlighterGeneric","codeToHtml","codeToTokensBase","codeToTokensWithThemes","getLastGrammarState","getInternalContext","getBundledLanguages","getBundledThemes","HighlighterCore","CreateBundledHighlighterOptions","BundledLangs","BundledThemes","CreatedBundledHighlighterOptions","CreateHighlighterFactory","ShikiError","Error","constructor","message"],"sources":["../src/_internal/content.ts","../src/_internal/sidebar.ts","../src/_internal/transform.ts","../src/lint/config.ts","../src/_internal/incremental/partial-refs.ts","../src/_internal/incremental/sitemap.ts","../src/integration.ts","../../../node_modules/.pnpm/@types+unist@3.0.3/node_modules/@types/unist/index.d.ts","../../../node_modules/.pnpm/@types+hast@3.0.4/node_modules/@types/hast/index.d.ts","../../../node_modules/.pnpm/@shikijs+vscode-textmate@10.0.2/node_modules/@shikijs/vscode-textmate/dist/index.d.ts","../../../node_modules/.pnpm/@shikijs+types@4.1.0/node_modules/@shikijs/types/dist/index.d.mts","../src/_internal/code-transformers.ts","../src/index.ts"],"x_google_ignoreList":[7,8,9,10],"mappings":";;;;;;;;;;;;;AC29BA;;;;;;;;ACj9BA;iBFwBsB,iBAAA,CACpB,WAAA,cACC,OAAA,CAAQ,eAAA;;;;iBCu7BK,WAAA,CAAY,KAAA,EAAO,WAAA;;;;;;;;;;;ADz7BnC;UExBiB,8BAAA;EACf,IAAA;EACA,KAAA,EAAO,MAAA;EACP,QAAA;AAAA;AAAA,KAGU,yBAAA,IACV,OAAA,EAAS,8BAAA;AAAA,UAGM,4BAAA;EFgBS;;;;EEXxB,YAAA,GAAe,MAAA,SAAe,yBAAA;EDk8BL;ECh8BzB,gBAAA;AAAA;AAAA,UAGQ,aAAA;EACR,IAAA;AAAA;;AArBF;;;;;;iBAiNgB,qBAAA,CACd,KAAA,EAAO,aAAA,EACP,OAAA,GAAS,4BAAA;;;;KCxMC,WAAA,GACR,cAAA,IACC,cAAA,EAAgB,MAAA;;;;;;KAOT,WAAA,GAAc,OAAA,CAAQ,MAAA,CAAO,iBAAA,EAAmB,WAAA;;UAG3C,oBAAA;EACf,KAAA,GAAQ,WAAA;AAAA;;;;;;;ADxBV;KCkCY,iBAAA,GAAoB,MAAA,SAAe,oBAAA;;;;;;;;;;;AHV/C;;;KIoBY,mBAAA,IACV,aAAA,UACA,KAAA,EAAO,MAAA;;;;UCZQ,WAAA;EACf,GAAA;EACA,OAAA;EACA,UAAA;EAQA,QAAA;EACA,KAAA;IAAU,IAAA;IAAc,GAAA;EAAA;AAAA;AAAA,KAGd,gBAAA,IACV,IAAA,EAAM,WAAA,KACH,WAAA,sBAAiC,OAAA,CAAQ,WAAA;;;UC4C7B,cAAA;EACf,SAAA,GAAY,gBAAA;EACZ,WAAA;AAAA;AAAA,UAGe,wBAAA;EJ7FN;EI+FT,GAAA,GAAM,UAAA,QAAkB,GAAA;EJ5FT;;;;;;;;;;AAQhB;;;EIkGC,OAAA,aAAoB,cAAA;EJ/FhB;AA4LN;;;;;;;;;;;;;ACtMA;;;;;;;;;;EGkIE,QAAA;IHhIyB,iKGoIvB,SAAA;EAAA;EH7HmB;;;;;;;;;;;;;;AAGvB;;;;;EG+IE,WAAA;IAGM,cAAA;IACA,WAAA;IACA,IAAA,IAAQ,QAAA;EAAA;;;;AF/HhB;;;;;;;;;;;;ACVA;;;;EC8JE,WAAA;IAGM,WAAA,GAAc,MAAA;IACd,WAAA;IACA,IAAA,IAAQ,QAAA;EAAA;EDvJJ;;;;AAGZ;;;;;;ECgKE,KAAA,GAAQ,WAAA;ED9JmC;;;;;;;;;;;EC0K3C,WAAA,GAAc,iBAAA;EA9HC;;;;;;;;;AAKjB;;;;;;;EA0IE,iBAAA;EAjBc;;;;;;;;;;;;;;;;;;;;;;EAwCd,eAAA,GAAkB,mBAAA;AAAA;AAAA,iBAGJ,MAAA,CACd,SAAA,EAAW,YAAA,EACX,OAAA,GAAS,wBAAA,GACR,gBAAA;;;;;;;;;;ANnPH;;;;;;;;;;;;ACy7BA;UMt8BiBA,MAAAA;;;;UAKAC,KAAAA;;ALhBjB;;EKoBIC,IAAAA;ELnBF;;;EKwBEC,MAAAA;ELtBM;;AAGV;EKuBIC,MAAAA;AAAAA;;ALnBJ;;;;UK2BiBC,UAAAA;ELtBA;;;EK0BbC,KAAAA,EAAOL,KAAAA;ELrBD;;;EK0BNM,GAAAA,EAAKN,KAAAA;AAAAA;;;;;;;;;;AJ1BT;UIuDiBQ,MAAAA;;;;EAIbE,IAAAA;EJ3D6B;;;EIgE7BC,IAAAA,GAAOZ,MAAAA;EJhEiD;;;AAG5D;;;EIqEIa,QAAAA,GAAWR,UAAAA;AAAAA;;;;;;;;APpEf;;;;;;;;;;;;ACy7BA;;UOr8BiBW,IAAAA,SAAaC,MAAAA;;;;UAKbO,UAAAA;EAAAA,CACZE,YAAAA,0DAAsED,KAAAA;AAAAA;AAAAA;;;;;;ANZ3E;KMuBYE,cAAAA,GAAiBC,iBAAAA,OAAwBA,iBAAAA;;;ANnBrD;;;UM0BiBA,iBAAAA;EACbI,OAAAA,EAASH,OAAAA;EACTI,OAAAA,EAASH,OAAAA;EACTI,IAAAA,EAAMH,IAAAA;AAAAA;;ANrBT;;;;;KM8BWI,WAAAA,GAAcC,cAAAA,OAAqBA,cAAAA;;;;;;;;;UAU9BA,cAAAA;EACbJ,OAAAA,EAASH,OAAAA;EACTS,OAAAA,EAASD,OAAAA;EACTJ,OAAAA,EAASH,OAAAA;EACTI,IAAAA,EAAMH,IAAAA;AAAAA;AAAAA;;;;;;;;;;;;AH5BV;;UGkFiBX,IAAAA,SAAaC,MAAAA;EHlFF;;;EGsFxBwB,IAAAA,GAAO7B,IAAAA;AAAAA;;;;;AHvEX;;;UGiFiBE,OAAAA,SAAgBE,IAAAA;EH/E5B;;;EGmFD0B,KAAAA;AAAAA;;;;;;;;UAUaxB,MAAAA,SAAeF,IAAAA;;AFjDhC;;EEqDI2B,QAAAA,EAAUZ,WAAAA;AAAAA;AAAAA;;;AFhDd;UEwDiBN,OAAAA,SAAgBX,OAAAA;;;;EAI7B+B,IAAAA;EFmCkB;;;EE/BlBJ,IAAAA,GAAOG,WAAAA;AAAAA;;;;UAMMA,WAAAA,SAAoBhC,IAAAA;;;;UAKpBqB,OAAAA,SAAgBhB,MAAAA;EFLzB;;;EESJ4B,IAAAA;EFgBI;;;EEZJJ,IAAAA,GAAOK,WAAAA;AAAAA;;;;UAMMA,WAAAA,SAAoBlC,IAAAA;;;;UAKpBc,OAAAA,SAAgBR,MAAAA;EFsEX;;;EElElB2B,IAAAA;EFqED;;;EEjECG,OAAAA;EF+DF;;;EE3DEC,UAAAA,EAAY7B,UAAAA;EF6DG;;;EEzDfuB,QAAAA,EAAUpB,cAAAA;;ADvMd;;;EC4MI2B,OAAAA,GAAUX,IAAAA;ED5MO;AAKrB;;EC2MIE,IAAAA,GAAOM,WAAAA;AAAAA;;;;UAMMA,WAAAA,SAAoBnC,IAAAA;;;;;;;;UASpB2B,IAAAA,SAAarB,MAAAA;ED5LhB;AA6Bd;;ECmKI2B,IAAAA;EDlJmB;;;ECsJnBF,QAAAA,EAAUZ,WAAAA;EDtJVtB;;;EC0JAgC,IAAAA,GAAOU,QAAAA;AAAAA;;AA1OX;;UAgPiBA,QAAAA,SAAiBvC,IAAAA;;AA3OlC;;UAgPiBe,IAAAA,SAAab,OAAAA;EA/OzBQ;;AAWL;EAwOIuB,IAAAA;;;;EAIAJ,IAAAA,GAAOW,QAAAA;AAAAA;;;;UAMMA,QAAAA,SAAiBxC,IAAAA;;;;;;;KC/E7ByL,YAAAA;;AHwEL;;UGpEUjB,SAAAA;EAAAA,SACGhG,IAAAA;EAAAA,SACAmH,QAAAA,EAAUD,gBAAAA;AAAAA;;;;UAKbA,gBAAAA;EAAAA,SACGlH,IAAAA;EAAAA,SACAoH,KAAAA,GAAQH,YAAAA,GAAeA,YAAAA;EAAAA,SACvBE,QAAAA;IAAAA,SACIE,SAAAA;IAAAA,SACAC,UAAAA;IAAAA,SACAC,UAAAA;EAAAA;AAAAA;AAAAA,mBA+BEY,SAAAA;EACfI,MAAAA;EACA/C,IAAAA;EACAgD,MAAAA;EACAC,IAAAA;EACAC,SAAAA;EACAC,aAAAA;AAAAA;;;;UA8bMqG,UAAAA;EACNI,kBAAAA;EAAAA,SACSI,KAAAA;EACTjO,KAAAA,IAASyN,UAAAA;EACTR,MAAAA,CAAOxG,KAAAA,EAAOgH,UAAAA;AAAAA;;;UCvrBRoG,OAAAA;;;;;;KAMLC,kBAAAA,WAA6BC,CAAAA,gBAAiBb,CAAAA,IAAKa,CAAAA,GAAIF,OAAAA;AAAAA;AAAAA;AAAAA;AAAAA,KAgCvD6B,iBAAAA;AAAAA,KACAC,YAAAA;AAAAA,KACAC,eAAAA,GAAkBF,iBAAAA,GAAoBC,YAAAA;AAAAA;AAAAA;AAAAA,UA2CjCoB,iBAAAA;EPhE+B;;;EOoEvCE,WAAAA,GAAcD,cAAAA;AAAAA;AAAAA,UAENA,cAAAA;;;;EAIRI,KAAAA,EAAOF,gBAAAA;EP5DoB;;;EOgE3BG,GAAAA,EAAKH,gBAAAA;;;;ANtDP;EM2DEI,OAAAA;;;;EAIAC,UAAAA,GAAanF,OAAAA;EN7Db;;;EMiEAoF,SAAAA,IAAaC,OAAAA,EAASrF,OAAAA,EAASsF,IAAAA,EAAMP,uBAAAA,KAA4B/E,OAAAA;;;AL7EnE;;;;;EKqFEuF,UAAAA;AAAAA;AAAAA,KAMGR,uBAAAA;AAAAA,UACKW,QAAAA;EACRC,IAAAA;EACAC,SAAAA;AAAAA;AAAAA,KAEGC,MAAAA;AAAAA,KACAf,gBAAAA,GAAmBY,QAAAA,GAAWG,MAAAA;AAAAA;AAAAA;AAAAA,KAM9BE,YAAAA;AAAAA,UAEKG,oBAAAA,SAA6B3F,SAAAA,EAAU6F,OAAAA,CAAQ9E,IAAAA,CAAK6E,iBAAAA;AAAAA,UACpDA,iBAAAA,SAA0BC,OAAAA,CAAQC,yBAAAA;AAAAA,UAClCA,yBAAAA,SAAkC9F,SAAAA;EL1Fa;;;EK8FvD8C,IAAAA;EJlDF;;;;;EIwDEQ,WAAAA;EJtDA;;;AAGF;;EIyDEyB,IAAAA;EJvDwB;;;EI2DxBgB,QAAAA,EAAU7F,gBAAAA;EJgDF;;;EI5CR8F,WAAAA,GAAc9F,gBAAAA;EJgGuB;;;;;EI1FrC+F,EAAAA;EJ9BA;;;;;EIoCAC,EAAAA;EJNc;;;;;;;EIcdC,iBAAAA,GAAoBnE,MAAAA;EJwBZ;;;;;EIlBRoE,MAAAA,GAASpE,MAAAA;EJsE4B;;AAGvC;;;EInEEqE,OAAAA;EJqES;;;;;EI/DTC,oBAAAA;EJ+DS;;;;;EIzDTC,mBAAAA,GAAsBvE,MAAAA;AAAAA;AAAAA,KAEnB0D,oBAAAA,GAAuBC,oBAAAA,GAAuBC,iBAAAA,GAAoBE,yBAAAA;AAAAA;AAAAA;;;;AH9KvE;;UG+LUY,YAAAA;EAAAA,SACCC,IAAAA;EAAAA,SACAC,KAAAA;EAAAA,SACAC,MAAAA;EHzLPhgB;;;EG6LFigB,gBAAAA,GAAmBF,KAAAA,cAAmBvG,UAAAA;EACtC0G,SAAAA,GAAYH,KAAAA;AAAAA;AAAAA,UAEJI,uBAAAA,4EAAmGG,wBAAAA;EAC3GR,IAAAA,GAAOM,SAAAA,GAAYhE,eAAAA;EACnB2D,KAAAA,GAAQM,MAAAA,GAASxB,oBAAAA,GAAuBF,YAAAA;AAAAA;AAAAA,KAErC4B,mBAAAA,sEAAyFrG,IAAAA,CAAKiG,uBAAAA,CAAwBC,SAAAA,EAAWC,MAAAA,cAAoBG,iBAAAA,CAAkBH,MAAAA;AAAAA,UAoBlKK,2BAAAA;EACRlE,SAAAA;EACAmE,YAAAA,GAAevH,gBAAAA;AAAAA;AAAAA,UAEPwH,sBAAAA;EACRC,OAAAA;EACAC,MAAAA,EAAQJ,2BAAAA;AAAAA;;;;;;;;;;;;AF5NV;;;;;AAUA;;;;;;;;;;;;;;;;;;;AA0DA;;;;;;;;;AAcA;;;;;AAcA;;;;;UEoLUK,WAAAA,SAAoBC,WAAAA,EAAaC,SAAAA;AAAAA,UACjCA,SAAAA;EFjLe;;AAQzB;EE6KEJ,OAAAA;;;;EAIAnC,MAAAA;EFzKEpc;;;;AAMJ;;EE0KE4e,WAAAA,GAAcN,sBAAAA;AAAAA;AAAAA,UAENI,WAAAA;EFvKV;;;EE2KEG,KAAAA;EF3K+BrgB;;;EE+K/BsgB,OAAAA;EFvKoB;;AAMtB;EEqKEC,SAAAA,GAAYvI,SAAAA;;;;AFhKd;;EEsKEwI,SAAAA,GAAYnG,MAAAA;EF1JEla;;;EE8JdsgB,SAAAA,GAAYpG,MAAAA;AAAAA;AAAAA,UAQJmF,wBAAAA;EFlKN9d;;;;;;;;EE2KFkf,kBAAAA;EF5J0B;;;;AAS5B;;;EE2JEpC,iBAAAA,GAAoBnE,MAAAA,kBAAwBA,MAAAA;EF/InCnY;;;;;EEqJT2e,qBAAAA;EFzJEnf;;;;;EE+JFof,iBAAAA;EFrJF;;;;;EE2JEC,YAAAA,GAAehC,YAAAA;EFtJI;;;;;;EE6JnBiC,kBAAAA;AAAAA;;AF/IF;;UEoJUC,YAAAA;EFpJwBthB;;;EEwJhCuhB,MAAAA,EAAQjB,WAAAA;;AD5OI;;ECgPZ3B,EAAAA;ED3Oe;;AAAA;EC+OfC,EAAAA;;;;EAIA4C,SAAAA;ED7OqB9V;;;AAAgB;ECkPrC+V,SAAAA;;;;EAIAL,YAAAA,GAAehC,YAAAA;AAAAA;AAAAA;AAAAA,UAIPsC,kBAAAA;EDhPO5V;;;ECoPf8V,YAAAA,GAAeD,gBAAAA;AAAAA;AAAAA,UAEPE,2BAAAA;;;;UAIAC,6BAAAA;EACRE,IAAAA,EAAMH,2BAAAA;EACNI,OAAAA,EAASF,iBAAAA;EACTG,UAAAA,GAAaC,IAAAA,UAAcF,OAAAA,EAASF,iBAAAA,KAAsB3J,IAAAA;EAC1DgK,YAAAA,GAAeD,IAAAA,UAAcF,OAAAA,EAASnC,mBAAAA,KAAwBwB,YAAAA;AAAAA;AAAAA,UAEtDe,6BAAAA,SAAsCP,6BAAAA;EAAAA,SACrCQ,MAAAA;AAAAA;;;;UAKDC,uBAAAA,SAAgCF,6BAAAA;EAAAA,SAC/Bd,MAAAA,EAAQjB,WAAAA;EAAAA,SACRkC,IAAAA,EAAMpK,IAAAA;EAAAA,SACNqK,GAAAA,EAAKtK,OAAAA;EAAAA,SACLgK,IAAAA,EAAMhK,OAAAA;EAAAA,SACNuK,KAAAA,EAAOvK,OAAAA;EAAAA,SACPwK,SAAAA,EAAWZ,iBAAAA;ED4NM;;;;ACxrB4C;EAketEa,cAAAA,GAAiBC,IAAAA,EAAM1K,OAAAA,EAAS2K,SAAAA,wBAAiC3K,OAAAA;AAAAA;AAAAA,UAEzDwJ,gBAAAA;EAneO;AAAA;;EAuefnG,IAAAA;EAjegC1B;;;;;;;;;;EA4ehCiJ,OAAAA;EA5e0DnJ;;;EAgf1DoJ,UAAAA,IAAcC,IAAAA,EAAMnB,6BAAAA,EAA+BK,IAAAA,UAAcF,OAAAA,EAASF,iBAAAA;EAhdtD;;;;EAqdpBR,MAAAA,IAAU0B,IAAAA,EAAMZ,6BAAAA,EAA+Bd,MAAAA,EAAQjB,WAAAA,SAAoBA,WAAAA;EApd5D;;;EAwdfkC,IAAAA,IAAQS,IAAAA,EAAMV,uBAAAA,EAAyBM,IAAAA,EAAMzK,IAAAA,KAASA,IAAAA;EAxdvC;;;EA4dfqK,GAAAA,IAAOQ,IAAAA,EAAMV,uBAAAA,EAAyBM,IAAAA,EAAM1K,OAAAA,KAAYA,OAAAA;EA3dH;AAuCxB;;EAwb7BgK,IAAAA,IAAQc,IAAAA,EAAMV,uBAAAA,EAAyBM,IAAAA,EAAM1K,OAAAA,KAAYA,OAAAA;EAhbzD6E;;AAA4B;;;;EAub5Bc,IAAAA,IAAQmF,IAAAA,EAAMV,uBAAAA,EAAyBM,IAAAA,EAAM1K,OAAAA,EAAS2F,IAAAA,aAAiB3F,OAAAA;EApa1DA;;;EAwab+K,IAAAA,IAAQD,IAAAA,EAAMV,uBAAAA,EAAyBM,IAAAA,EAAM1K,OAAAA,EAAS2F,IAAAA,UAAcqF,GAAAA,UAAaC,WAAAA,EAAajL,OAAAA,EAASkL,KAAAA,EAAO/C,WAAAA,KAAgBnI,OAAAA;EApatD;;;;EAyaxEmL,WAAAA,IAAeL,IAAAA,EAAMnB,6BAAAA,EAA+ByB,IAAAA,UAActB,OAAAA,EAASF,iBAAAA;AAAAA;AAAAA;AAAAA,UAmDnEiC,sBAAAA;EACR1E,KAAAA,EAAOlB,oBAAAA,GAAuBvE,kBAAAA,CAAmB+F,MAAAA;AAAAA;AAAAA,UAEzCqE,yBAAAA;EAlciB;;;;AAA0C;;;;;;;;;;;;;;;;;;EAydnE1E,MAAAA,EAAQhB,OAAAA,CAAQ7D,MAAAA,SAAe0D,oBAAAA,GAAuBvE,kBAAAA,CAAmB+F,MAAAA;EA1bzEjB;;;;;;;;;;;;AAsC4B;;;;;;;;;;;;;EA8a5BuF,YAAAA,GAAerK,kBAAAA;EA3ZK;;;;;;;;EAoapBsK,eAAAA;EA5ZA1E;;;;AAA0B;EAka1B2E,iBAAAA;AAAAA;AAAAA,KAEGrE,iBAAAA,mCAAoDiE,sBAAAA,CAAuBpE,MAAAA,IAAUqE,yBAAAA,CAA0BrE,MAAAA;AAAAA,KAC/GmC,iBAAAA,sEAAuFsC,uBAAAA,CAAwB1E,SAAAA,IAAaI,iBAAAA,CAAkBH,MAAAA,IAAU0E,eAAAA;AAAAA,UACnJD,uBAAAA,4CAAmE3C,kBAAAA,EAAoB5E,iBAAAA,EAAmBpD,IAAAA,CAAKmG,wBAAAA;EAlatGzB;;;EAsajBhD,IAAAA,GAAOV,MAAAA;EAxa4H;;;EA4anI2E,IAAAA,EAAMxF,kBAAAA,CAAmB8F,SAAAA,GAAYhE,eAAAA;EA3arC0D;;;;;EAibAoC,SAAAA;EAhbwCvD;;;AAAY;;;;;;EA0bpDqG,gBAAAA;EAxb0K3E;;;;;;EA+b1K4E,oBAAAA;EA/biG9E;;;;;;;AAkBtB;EAsb3EiD,SAAAA;;;;;;;;EAQA8B,QAAAA;AAAAA;AAAAA,UAEQH,eAAAA;EAxb2B;;;;;;AAAA;;;EAkcnCtC,IAAAA;IA1YkD;AAAA;;IA8YhD0C,KAAAA;IAAAA,CACCC,GAAAA;EAAAA;AAAAA;;;AT8PL;;;;;;;;ACj9BA;;ADi9BA,iBUp6BgB,uBAAA,CAAA,GAA2B,gBAAA;;;;;AVo6B3C;iBWl4BgB,YAAA,WAAuB,YAAA,CAAA,CAAc,MAAA,EAAQ,CAAA,GAAI,CAAA;AAAA,UAmChD,YAAA;EVnGM;EUqGrB,KAAA,EAF2B,cAAA,CAEI,eAAA;EVrGhB;EUuGf,UAAA;EVrGA;EUuGA,KAAA;EVvGgB;EUyGhB,WAAA;EVtGqB;;;;AA6LvB;;;;;;;EU3EE,GAAA;EV6E0C;;;;;ACxM5C;;ESmIE,WAAA;AAAA;AAAA,UAGe,oBAAA;ETpII;ESsInB,IAAA;ETtIyB;ESwIzB,KAAA;ETxIG;ES0IH,OAAA,EAAS,YAAA;ET1IgB;;AAO3B;;;;;;;;;ES+IE,IAAA;ET/IgC;;;;;AAGlC;;;ESqJE,MAAA;AAAA;AAAA,UAGe,eAAA;ET7IY;;;;ESkJ3B,MAAA,EAAQ,YAAA;;;ARxIV;;EQ6IE,MAAA,EAAQ,oBAAA;AAAA;;;;;;;;;APvJV;;;;;;;;;;;;;AAeA;iBOiKsB,iBAAA,CAAA,GAAqB,OAAA,CAAQ,YAAA;;;;;;;;;;;;iBA0E7B,kBAAA,CAAA,GAAsB,OAAA,CAAQ,eAAA;;;;;;AN7LpD;;;;;;;;;AAKA;;;;;;;;;;;;;;iBMiRsB,UAAA,CACpB,WAAA,UACA,OAAA;EAAY,UAAA;AAAA,IACX,OAAA,CAAQ,WAAA;;;;;;;;;;;;iBAmBW,kBAAA,CACpB,WAAA,UACA,OAAA;EAAY,UAAA;AAAA,IACX,OAAA,CAAQ,cAAA;;;;;;;;;ANtIX;;;;;;iBM4PsB,WAAA,CACpB,WAAA,UACA,OAAA;EACE,SAAA,GAAY,iBAAA;EACZ,WAAA,GAAc,WAAA;AAAA,IAEf,OAAA,CAAQ,QAAA;;;;;;;iBAmBW,cAAA,CACpB,WAAA,UACA,OAAA;EAAY,SAAA;AAAA,IACX,OAAA,CAAQ,UAAA;;;;;ALhhBX;;iBK0hBsB,UAAA,CAAW,KAAA;EAC/B,EAAA;EACA,QAAA;AAAA,IACE,OAAA;;;;ALxgBJ;;;;;;;;;;AAsCA;;;;;;;;;iBKggBsB,cAAA,CAAe,KAAA;EACnC,EAAA;EACA,QAAA;AAAA,IACE,OAAA,CAAQ,IAAA;;AJlkBZ;;;;;iBI6kBgB,MAAA,CACd,QAAA;EAAY,KAAA;EAAe,IAAA;EAAc,IAAA;AAAA,KACzC,OAAA;EAAY,eAAA;EAA0B,eAAA;AAAA,IACrC,OAAA;;AJxjBH;;;;;;;;;;;;;;;;AAYA;cIwkBa,kBAAA,EAAoB,cAAA;;;;AJ9jBjC;;;;;;;;;;iBIslBsB,gBAAA,CAAiB,KAAA,EAAO,WAAA,GAAc,OAAA;EAC1D,KAAA,EADuD,cAAA,CACxB,eAAA;EAC/B,OAAA;EACA,QAAA;IAAY,KAAA;IAAe,IAAA;IAAc,IAAA;EAAA;AAAA;AJ/hB3C;;;;;;;;;AAcA;;;;;AAcA;;;;;AA5BA,iBIkkBgB,wBAAA,CAAyB,UAAA,WAAqB,cAAA;;;;AJ1hB9D;;;;;;;;;;iBIijBsB,sBAAA,kBAAA,CACpB,KAAA,EAAO,WAAA,GACN,OAAA;EACD,KAAA,EAAgD,cAAA,CAAjB,eAAA,CAAgB,CAAA;EAC/C,OAAA;EACA,QAAA;IAAY,KAAA;IAAe,IAAA;IAAc,IAAA;EAAA;AAAA;;;;;;;AJrhB3C;;;;;AAKA;;;;;;;;;iBIujBsB,WAAA,CAAA,GAAe,OAAA,CAAQ,gBAAA;;;;;;;;;;;;;;AJxhB7C;;;;;AASA;;iBIijBsB,iBAAA,CACpB,YAAA,WACC,OAAA;;;;;;;;;;;;;;AJjiBH;;;;;AAKA;;;;;;;;;;AAcA;iBIojBsB,oBAAA,CACpB,YAAA,UACA,OAAA,WACC,OAAA,CAAQ,sBAAA;;;;;;;iBAYW,eAAA,CACpB,YAAA,UACA,OAAA,WACC,OAAA;;;;;AHrpBc;;;;;;;;;AAMsB;;;;;;;;iBGyqBjB,oBAAA,CACpB,YAAA,WACC,OAAA;;;;;;AHnoBkK;;;;;;;;;;;;AAiclJ;;;;;;;;;;;;;;;;AC/qBqD;;;;;AACvD;;;;;;AD8qBE,iBG+PG,oBAAA,CACpB,OAAA,WACC,OAAA;AAAA,iBAsBmB,gBAAA,CACpB,YAAA,WACC,OAAA,CAAQ,aAAA"}
|