UNPKG

laif-ds

Version:

Design System di Laif con componenti React basati su principi di Atomic Design

583 lines (582 loc) 15.7 kB
"use client"; import { decodeNumericCharacterReference as Be } from "../../micromark-util-decode-numeric-character-reference/index.js"; import { decodeString as Re } from "../../micromark-util-decode-string/index.js"; import { normalizeIdentifier as T } from "../../micromark-util-normalize-identifier/index.js"; import { decodeNamedCharacterReference as Ce } from "../../decode-named-character-reference/index.dom.js"; import { postprocess as He } from "../../micromark/lib/postprocess.js"; import { parse as Le } from "../../micromark/lib/parse.js"; import { preprocess as ze } from "../../micromark/lib/preprocess.js"; import { stringifyPosition as I } from "../../unist-util-stringify-position/lib/index.js"; import { toString as Pe } from "../../mdast-util-to-string/lib/index.js"; const M = {}.hasOwnProperty; function We(o, a, l) { return typeof a != "string" && (l = a, a = void 0), Oe(l)(He(Le(l).document().write(ze()(o, a, !0)))); } function Oe(o) { const a = { transforms: [], canContainEols: ["emphasis", "fragment", "heading", "paragraph", "strong"], enter: { autolink: r(P), autolinkProtocol: p, autolinkEmail: p, atxHeading: r(H), blockQuote: r(me), characterEscape: p, characterReference: p, codeFenced: r(C), codeFencedFenceInfo: h, codeFencedFenceMeta: h, codeIndented: r(C, h), codeText: r(xe, h), codeTextData: p, data: p, codeFlowValue: p, definition: r(ye), definitionDestinationString: h, definitionLabelString: h, definitionTitleString: h, emphasis: r(be), hardBreakEscape: r(L), hardBreakTrailing: r(L), htmlFlow: r(z, h), htmlFlowData: p, htmlText: r(z, h), htmlTextData: p, image: r(Se), label: h, link: r(P), listItem: r(we), listItemValue: U, listOrdered: r(O, N), listUnordered: r(O), paragraph: r(Ie), reference: he, referenceString: h, resourceDestinationString: h, resourceTitleString: h, setextHeading: r(H), strong: r(Te), thematicBreak: r(Fe) }, exit: { atxHeading: c(), atxHeadingSequence: X, autolink: c(), autolinkEmail: ge, autolinkProtocol: ke, blockQuote: c(), characterEscapeValue: k, characterReferenceMarkerHexadecimal: R, characterReferenceMarkerNumeric: R, characterReferenceValue: fe, characterReference: pe, codeFenced: c(W), codeFencedFence: A, codeFencedFenceInfo: _, codeFencedFenceMeta: j, codeFlowValue: k, codeIndented: c($), codeText: c(ie), codeTextData: k, data: k, definition: c(), definitionDestinationString: K, definitionLabelString: G, definitionTitleString: J, emphasis: c(), hardBreakEscape: c(B), hardBreakTrailing: c(B), htmlFlow: c(te), htmlFlowData: k, htmlText: c(ne), htmlTextData: k, image: c(se), label: ce, labelText: re, lineEnding: ee, link: c(ae), listItem: c(), listOrdered: c(), listUnordered: c(), paragraph: c(), referenceString: ue, resourceDestinationString: oe, resourceTitleString: le, resource: de, setextHeading: c(v), setextHeadingLineSequence: Z, setextHeadingText: Y, strong: c(), thematicBreak: c() } }; V(a, (o || {}).mdastExtensions || []); const l = {}; return d; function d(e) { let t = { type: "root", children: [] }; const n = { stack: [t], tokenStack: [], config: a, enter: E, exit: F, buffer: h, resume: q, data: l }, i = []; let s = -1; for (; ++s < e.length; ) if (e[s][1].type === "listOrdered" || e[s][1].type === "listUnordered") if (e[s][0] === "enter") i.push(s); else { const f = i.pop(); s = Q(e, f, s); } for (s = -1; ++s < e.length; ) { const f = a[e[s][0]]; M.call(f, e[s][1].type) && f[e[s][1].type].call(Object.assign({ sliceSerialize: e[s][2].sliceSerialize }, n), e[s][1]); } if (n.tokenStack.length > 0) { const f = n.tokenStack[n.tokenStack.length - 1]; (f[1] || D).call(n, void 0, f[0]); } for (t.position = { start: x(e.length > 0 ? e[0][1].start : { line: 1, column: 1, offset: 0 }), end: x(e.length > 0 ? e[e.length - 2][1].end : { line: 1, column: 1, offset: 0 }) }, s = -1; ++s < a.transforms.length; ) t = a.transforms[s](t) || t; return t; } function Q(e, t, n) { let i = t - 1, s = -1, f = !1, y, g, S, w; for (; ++i <= n; ) { const u = e[i]; switch (u[1].type) { case "listUnordered": case "listOrdered": case "blockQuote": { u[0] === "enter" ? s++ : s--, w = void 0; break; } case "lineEndingBlank": { u[0] === "enter" && (y && !w && !s && !S && (S = i), w = void 0); break; } case "linePrefix": case "listItemValue": case "listItemMarker": case "listItemPrefix": case "listItemPrefixWhitespace": break; default: w = void 0; } if (!s && u[0] === "enter" && u[1].type === "listItemPrefix" || s === -1 && u[0] === "exit" && (u[1].type === "listUnordered" || u[1].type === "listOrdered")) { if (y) { let b = i; for (g = void 0; b--; ) { const m = e[b]; if (m[1].type === "lineEnding" || m[1].type === "lineEndingBlank") { if (m[0] === "exit") continue; g && (e[g][1].type = "lineEndingBlank", f = !0), m[1].type = "lineEnding", g = b; } else if (!(m[1].type === "linePrefix" || m[1].type === "blockQuotePrefix" || m[1].type === "blockQuotePrefixWhitespace" || m[1].type === "blockQuoteMarker" || m[1].type === "listItemIndent")) break; } S && (!g || S < g) && (y._spread = !0), y.end = Object.assign({}, g ? e[g][1].start : u[1].end), e.splice(g || i, 0, ["exit", y, u[2]]), i++, n++; } if (u[1].type === "listItemPrefix") { const b = { type: "listItem", _spread: !1, start: Object.assign({}, u[1].start), // @ts-expect-error: we’ll add `end` in a second. end: void 0 }; y = b, e.splice(i, 0, ["enter", b, u[2]]), i++, n++, S = void 0, w = !0; } } } return e[t][1]._spread = f, n; } function r(e, t) { return n; function n(i) { E.call(this, e(i), i), t && t.call(this, i); } } function h() { this.stack.push({ type: "fragment", children: [] }); } function E(e, t, n) { this.stack[this.stack.length - 1].children.push(e), this.stack.push(e), this.tokenStack.push([t, n || void 0]), e.position = { start: x(t.start), // @ts-expect-error: `end` will be patched later. end: void 0 }; } function c(e) { return t; function t(n) { e && e.call(this, n), F.call(this, n); } } function F(e, t) { const n = this.stack.pop(), i = this.tokenStack.pop(); if (i) i[0].type !== e.type && (t ? t.call(this, e, i[0]) : (i[1] || D).call(this, e, i[0])); else throw new Error("Cannot close `" + e.type + "` (" + I({ start: e.start, end: e.end }) + "): it’s not open"); n.position.end = x(e.end); } function q() { return Pe(this.stack.pop()); } function N() { this.data.expectingFirstListItemValue = !0; } function U(e) { if (this.data.expectingFirstListItemValue) { const t = this.stack[this.stack.length - 2]; t.start = Number.parseInt(this.sliceSerialize(e), 10), this.data.expectingFirstListItemValue = void 0; } } function _() { const e = this.resume(), t = this.stack[this.stack.length - 1]; t.lang = e; } function j() { const e = this.resume(), t = this.stack[this.stack.length - 1]; t.meta = e; } function A() { this.data.flowCodeInside || (this.buffer(), this.data.flowCodeInside = !0); } function W() { const e = this.resume(), t = this.stack[this.stack.length - 1]; t.value = e.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g, ""), this.data.flowCodeInside = void 0; } function $() { const e = this.resume(), t = this.stack[this.stack.length - 1]; t.value = e.replace(/(\r?\n|\r)$/g, ""); } function G(e) { const t = this.resume(), n = this.stack[this.stack.length - 1]; n.label = t, n.identifier = T(this.sliceSerialize(e)).toLowerCase(); } function J() { const e = this.resume(), t = this.stack[this.stack.length - 1]; t.title = e; } function K() { const e = this.resume(), t = this.stack[this.stack.length - 1]; t.url = e; } function X(e) { const t = this.stack[this.stack.length - 1]; if (!t.depth) { const n = this.sliceSerialize(e).length; t.depth = n; } } function Y() { this.data.setextHeadingSlurpLineEnding = !0; } function Z(e) { const t = this.stack[this.stack.length - 1]; t.depth = this.sliceSerialize(e).codePointAt(0) === 61 ? 1 : 2; } function v() { this.data.setextHeadingSlurpLineEnding = void 0; } function p(e) { const n = this.stack[this.stack.length - 1].children; let i = n[n.length - 1]; (!i || i.type !== "text") && (i = Ee(), i.position = { start: x(e.start), // @ts-expect-error: we’ll add `end` later. end: void 0 }, n.push(i)), this.stack.push(i); } function k(e) { const t = this.stack.pop(); t.value += this.sliceSerialize(e), t.position.end = x(e.end); } function ee(e) { const t = this.stack[this.stack.length - 1]; if (this.data.atHardBreak) { const n = t.children[t.children.length - 1]; n.position.end = x(e.end), this.data.atHardBreak = void 0; return; } !this.data.setextHeadingSlurpLineEnding && a.canContainEols.includes(t.type) && (p.call(this, e), k.call(this, e)); } function B() { this.data.atHardBreak = !0; } function te() { const e = this.resume(), t = this.stack[this.stack.length - 1]; t.value = e; } function ne() { const e = this.resume(), t = this.stack[this.stack.length - 1]; t.value = e; } function ie() { const e = this.resume(), t = this.stack[this.stack.length - 1]; t.value = e; } function ae() { const e = this.stack[this.stack.length - 1]; if (this.data.inReference) { const t = this.data.referenceType || "shortcut"; e.type += "Reference", e.referenceType = t, delete e.url, delete e.title; } else delete e.identifier, delete e.label; this.data.referenceType = void 0; } function se() { const e = this.stack[this.stack.length - 1]; if (this.data.inReference) { const t = this.data.referenceType || "shortcut"; e.type += "Reference", e.referenceType = t, delete e.url, delete e.title; } else delete e.identifier, delete e.label; this.data.referenceType = void 0; } function re(e) { const t = this.sliceSerialize(e), n = this.stack[this.stack.length - 2]; n.label = Re(t), n.identifier = T(t).toLowerCase(); } function ce() { const e = this.stack[this.stack.length - 1], t = this.resume(), n = this.stack[this.stack.length - 1]; if (this.data.inReference = !0, n.type === "link") { const i = e.children; n.children = i; } else n.alt = t; } function oe() { const e = this.resume(), t = this.stack[this.stack.length - 1]; t.url = e; } function le() { const e = this.resume(), t = this.stack[this.stack.length - 1]; t.title = e; } function de() { this.data.inReference = void 0; } function he() { this.data.referenceType = "collapsed"; } function ue(e) { const t = this.resume(), n = this.stack[this.stack.length - 1]; n.label = t, n.identifier = T(this.sliceSerialize(e)).toLowerCase(), this.data.referenceType = "full"; } function R(e) { this.data.characterReferenceType = e.type; } function fe(e) { const t = this.sliceSerialize(e), n = this.data.characterReferenceType; let i; n ? (i = Be(t, n === "characterReferenceMarkerNumeric" ? 10 : 16), this.data.characterReferenceType = void 0) : i = Ce(t); const s = this.stack[this.stack.length - 1]; s.value += i; } function pe(e) { const t = this.stack.pop(); t.position.end = x(e.end); } function ke(e) { k.call(this, e); const t = this.stack[this.stack.length - 1]; t.url = this.sliceSerialize(e); } function ge(e) { k.call(this, e); const t = this.stack[this.stack.length - 1]; t.url = "mailto:" + this.sliceSerialize(e); } function me() { return { type: "blockquote", children: [] }; } function C() { return { type: "code", lang: null, meta: null, value: "" }; } function xe() { return { type: "inlineCode", value: "" }; } function ye() { return { type: "definition", identifier: "", label: null, title: null, url: "" }; } function be() { return { type: "emphasis", children: [] }; } function H() { return { type: "heading", // @ts-expect-error `depth` will be set later. depth: 0, children: [] }; } function L() { return { type: "break" }; } function z() { return { type: "html", value: "" }; } function Se() { return { type: "image", title: null, url: "", alt: null }; } function P() { return { type: "link", title: null, url: "", children: [] }; } function O(e) { return { type: "list", ordered: e.type === "listOrdered", start: null, spread: e._spread, children: [] }; } function we(e) { return { type: "listItem", spread: e._spread, checked: null, children: [] }; } function Ie() { return { type: "paragraph", children: [] }; } function Te() { return { type: "strong", children: [] }; } function Ee() { return { type: "text", value: "" }; } function Fe() { return { type: "thematicBreak" }; } } function x(o) { return { line: o.line, column: o.column, offset: o.offset }; } function V(o, a) { let l = -1; for (; ++l < a.length; ) { const d = a[l]; Array.isArray(d) ? V(o, d) : De(o, d); } } function De(o, a) { let l; for (l in a) if (M.call(a, l)) switch (l) { case "canContainEols": { const d = a[l]; d && o[l].push(...d); break; } case "transforms": { const d = a[l]; d && o[l].push(...d); break; } case "enter": case "exit": { const d = a[l]; d && Object.assign(o[l], d); break; } } } function D(o, a) { throw o ? new Error("Cannot close `" + o.type + "` (" + I({ start: o.start, end: o.end }) + "): a different token (`" + a.type + "`, " + I({ start: a.start, end: a.end }) + ") is open") : new Error("Cannot close document, a token (`" + a.type + "`, " + I({ start: a.start, end: a.end }) + ") is still open"); } export { We as fromMarkdown };