@marimo-team/islands 0.25.3-dev209 → 0.25.3-dev210

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.
Files changed (140) hide show
  1. package/dist/{ConnectedDataExplorerComponent-ApTYh0V3.js → ConnectedDataExplorerComponent-D6RHJV8D.js} +114 -112
  2. package/dist/{ErrorBoundary-B1QlXN-y.js → ErrorBoundary-VruaQLnK.js} +10 -10
  3. package/dist/{abnfDiagram-VCTEODGH-uo9xhZY0.js → abnfDiagram-VCTEODGH-0q7Lbmii.js} +2 -2
  4. package/dist/{any-language-editor-BVFHDDQ3.js → any-language-editor-jGaR0EAo.js} +5 -5
  5. package/dist/{architectureDiagram-5GKGNRK7-Hz6eyeOD.js → architectureDiagram-5GKGNRK7-1PydKPmE.js} +1 -1
  6. package/dist/{button-BQRdqQi1.js → button-B6RjDKJx.js} +54 -51
  7. package/dist/{capabilities-C2QUNRXi.js → capabilities-CkVzWJEX.js} +1 -1
  8. package/dist/{chat-ui-BTA1I5i1.js → chat-ui-B5pH_aXk.js} +414 -413
  9. package/dist/{check-C9Mp9eCK.js → check-Z_vtI3OL.js} +1 -1
  10. package/dist/{chunk-IMKFNOWR-DBM2i23k.js → chunk-IMKFNOWR-DEzZZ1Zc.js} +1 -1
  11. package/dist/{chunk-SHT3W25Y-L8KQLLBy.js → chunk-SHT3W25Y-CuHj-hnn.js} +1 -1
  12. package/dist/{chunk-SVP7TREG-BOUJKJEP.js → chunk-SVP7TREG-BPiZK2bA.js} +1 -1
  13. package/dist/{chunk-TICWLB2K-DY3CzFjX.js → chunk-TICWLB2K-DF6XcIjM.js} +1 -1
  14. package/dist/{classDiagram-ZZMXUADV-s9iwW-q4.js → classDiagram-ZZMXUADV-CMdR-cP4.js} +2 -2
  15. package/dist/{classDiagram-v2-VYDZK3BY-2GI5CjGB.js → classDiagram-v2-VYDZK3BY-DRvc3_7Y.js} +2 -2
  16. package/dist/{code-visibility-CCGlDSq4.js → code-visibility-BdFhHfIC.js} +28 -28
  17. package/dist/{common-C1PmVtVW.js → common-Ce1SgsX1.js} +8034 -8027
  18. package/dist/{toDate-BZZ64K_m.js → config-DbjzjwxX.js} +98 -164
  19. package/dist/{copy-icon-De584pZ4.js → copy-icon-CG57cxwb.js} +3 -3
  20. package/dist/createReducer-DePYJ0F3.js +63 -0
  21. package/dist/{cynefinDiagram-5FMLGOSQ-DOxnhBK2.js → cynefinDiagram-5FMLGOSQ-BkBjEY9l.js} +1 -1
  22. package/dist/{dagre-GXQ25YYZ-D1AhEfpM.js → dagre-GXQ25YYZ-D-HEaW4I.js} +1 -1
  23. package/dist/{data-grid-overlay-editor-B3KXkZvo.js → data-grid-overlay-editor-Bps1p6jQ.js} +1 -1
  24. package/dist/{diagram-S7CK7UJ4-DV_GebF_.js → diagram-S7CK7UJ4-Bn-oF-rB.js} +1 -1
  25. package/dist/{diagram-UQ7AKVKN-6dNzGFfD.js → diagram-UQ7AKVKN-BpzzXWBj.js} +1 -1
  26. package/dist/{diagram-VX7I27RA-DUh9jsfi.js → diagram-VX7I27RA-COOtvfBP.js} +1 -1
  27. package/dist/{diagram-Z3DM3KII-Cug-qcQ8.js → diagram-Z3DM3KII-K5cXvbrl.js} +1 -1
  28. package/dist/{dialog-DVRfQuhD.js → dialog-DsZ49mmU.js} +26 -26
  29. package/dist/{dist-BJtmSgcE.js → dist-11T5wq3_.js} +41 -40
  30. package/dist/{dist-B1M0bGO3.js → dist-17ugwGZc.js} +59 -58
  31. package/dist/{dist-D7mrh5sO.js → dist-7cRjf--y.js} +135 -134
  32. package/dist/{dist-Ck_C32ye.js → dist-B8pkfkzc.js} +31 -30
  33. package/dist/{dist-Ba2VIn1K.js → dist-B9UoM_wq.js} +54 -53
  34. package/dist/{dist-KN80qWCP.js → dist-BGuMTs1i.js} +118 -117
  35. package/dist/{dist-T5rh6JvL.js → dist-BHW11fni.js} +18 -17
  36. package/dist/dist-BLY4m1Wi.js +850 -0
  37. package/dist/{dist-Bj4bmwUm.js → dist-BNlcVoxs.js} +31 -30
  38. package/dist/{dist-BA13RJj5.js → dist-BQYe5Bju.js} +47 -46
  39. package/dist/{dist-OUle2RT7.js → dist-BX1mn8na.js} +297 -297
  40. package/dist/{dist-CTi5FTiV.js → dist-Bh0PTKUW.js} +108 -107
  41. package/dist/{dist-D9Q3xjiP.js → dist-CKaXK92p.js} +56 -55
  42. package/dist/{dist-DYXM73-k.js → dist-CLhwfhpJ.js} +58 -57
  43. package/dist/{dist-BmS-ZGjl.js → dist-CYeqK4Xw.js} +1854 -2702
  44. package/dist/{dist-D1fnFp1J.js → dist-Cxlp3WH6.js} +16 -15
  45. package/dist/{dist-DVVwOfrD.js → dist-DSJPGj42.js} +64 -63
  46. package/dist/{dist-Bzogh7CW.js → dist-DU9ICsWZ.js} +93 -92
  47. package/dist/{dist-DjeybPOb.js → dist-DWv0ALBi.js} +47 -46
  48. package/dist/{dist-D3x9__Fu.js → dist-DiBpWEsB.js} +39 -38
  49. package/dist/{dist-DtGn9N4h.js → dist-DiLFTlnl.js} +165 -165
  50. package/dist/{dist-DTv9KkpW.js → dist-cVDV5IuI.js} +26 -25
  51. package/dist/{dist-DP60Ubh8.js → dist-fRfaOoq8.js} +44 -43
  52. package/dist/{dist-O0qFpEJh.js → dist-gTTI-9Px.js} +66 -65
  53. package/dist/{dropdown-menu-dlEm41Bt.js → dropdown-menu-CSNdPSnS.js} +2886 -1529
  54. package/dist/{ebnfDiagram-PWID7BFC-d5LKx7Vb.js → ebnfDiagram-PWID7BFC-BI1ZmjVm.js} +2 -2
  55. package/dist/{erDiagram-RLTQ6QDP-BwvlkcID.js → erDiagram-RLTQ6QDP-BtWjj9xy.js} +1 -1
  56. package/dist/{error-banner-DxJ3s8YO.js → error-banner-IsonnvA0.js} +47 -46
  57. package/dist/error-entries-CRPfxMqm.js +2505 -0
  58. package/dist/{esm-Bbw_Njjx.js → esm-BgKjMvWw.js} +389 -388
  59. package/dist/{esm-mDQNEFe_.js → esm-CHjVSexr.js} +305 -306
  60. package/dist/{feedback-button-UsovT9sL.js → feedback-button-2ycmR9GG.js} +112 -112
  61. package/dist/{flowDiagram-HODETNUW-CJcSoFer.js → flowDiagram-HODETNUW-DQvZh96A.js} +2 -2
  62. package/dist/{formats-Ry7c-aIV.js → formats-BK4VefeF.js} +6 -6
  63. package/dist/{glide-data-editor-CRd8kBSp.js → glide-data-editor-Buj2OZjL.js} +99 -99
  64. package/dist/{glide-utils-D98laidb.js → glide-utils-CQddGpa-.js} +3 -3
  65. package/dist/{globals-BDWrOstF.js → globals-B-14fUeb.js} +3 -3
  66. package/dist/{error-entries-CVUHA5r_.js → html-to-image-CgAnxFi8.js} +26314 -25474
  67. package/dist/{infoDiagram-27XIBGKW-Cezgppw3.js → infoDiagram-27XIBGKW-BdAObnc_.js} +1 -1
  68. package/dist/{ishikawaDiagram-5VMMS53U-BahZQwJz.js → ishikawaDiagram-5VMMS53U-DP-jE8dw.js} +1 -1
  69. package/dist/{kanban-definition-UXKFOSKX-Cvfn_Obm.js → kanban-definition-UXKFOSKX-BkMgPjfm.js} +1 -1
  70. package/dist/{loader-DOVB0Syl.js → loader-BisjOLiW.js} +1 -1
  71. package/dist/main.js +2996 -2992
  72. package/dist/{mermaid-BrdwbArF.js → mermaid-B-OFqheA.js} +36 -36
  73. package/dist/{mindmap-definition-YA3MSWOX-uB4B2d-J.js → mindmap-definition-YA3MSWOX-Du7toAZX.js} +1 -1
  74. package/dist/{number-overlay-editor-Bp9a4z5Q.js → number-overlay-editor-ZVFcJ7_u.js} +1 -1
  75. package/dist/{dist-CThPVKaP.js → objectWithoutPropertiesLoose-ai5NUqGa.js} +1139 -1120
  76. package/dist/{pegDiagram-XKGWAZYB-CYaIwAmH.js → pegDiagram-XKGWAZYB-CX_729j0.js} +2 -2
  77. package/dist/{pieDiagram-E7YTZNPT-BJ1oUxVv.js → pieDiagram-E7YTZNPT-dtTFJcVI.js} +1 -1
  78. package/dist/{process-output-SjJxB1wh.js → process-output-Bmev5azU.js} +5 -5
  79. package/dist/{railroadDiagram-O6MQD6OU-BqKSaBux.js → railroadDiagram-O6MQD6OU-Dsc2Cf4c.js} +2 -2
  80. package/dist/{requirementDiagram-BXWQKSXE-DwFhgDhH.js → requirementDiagram-BXWQKSXE-D3g0c60I.js} +1 -1
  81. package/dist/{reveal-component-ov3pS-oO.js → reveal-component-BWz1KjWe.js} +725 -725
  82. package/dist/schemas-CdscWNy_.js +4747 -0
  83. package/dist/select-BSxlITBo.js +1200 -0
  84. package/dist/{sequenceDiagram-WJ2MYXX4-L7ENjfKF.js → sequenceDiagram-WJ2MYXX4-w1pWbIpk.js} +1 -1
  85. package/dist/{spec-BcJ9ncAY.js → spec-Dq8RNplp.js} +4 -4
  86. package/dist/{stateDiagram-D77RDMKH-CVf88u-p.js → stateDiagram-D77RDMKH-BCv7kP4H.js} +2 -2
  87. package/dist/{stateDiagram-v2-MP3YSRHH-DvpkQ1V6.js → stateDiagram-v2-MP3YSRHH-D1cTOt0x.js} +2 -2
  88. package/dist/static-state-BldGd99T.js +72 -0
  89. package/dist/strings-BGW-fXVJ.js +507 -0
  90. package/dist/{swimlanes-42K2YHIH-DIuFHbVE.js → swimlanes-42K2YHIH-DNO6jDnd.js} +1 -1
  91. package/dist/{swimlanesDiagram-VR7AAH4N-CAqHAziW.js → swimlanesDiagram-VR7AAH4N-CkSWsxYJ.js} +2 -2
  92. package/dist/{swiper-component-BVfnhbnt.js → swiper-component-Dir1o8ml.js} +2 -2
  93. package/dist/{timeline-definition-24CTP7MA-xO4EQqBm.js → timeline-definition-24CTP7MA-DQvqGFM9.js} +1 -1
  94. package/dist/toast-BWIPi3aF.js +491 -0
  95. package/dist/{tooltip-s4zZxwKe.js → tooltip-C3UnvsRe.js} +58 -58
  96. package/dist/use-restore-focus-BWO0z1lo.js +1672 -0
  97. package/dist/{useAsyncData-Dqw22wZQ.js → useAsyncData-DsZMvNXn.js} +1 -1
  98. package/dist/{useDateFormatter-D3Tkfzej.js → useDateFormatter-ChB4eyim.js} +2 -2
  99. package/dist/{useDeepCompareMemoize-D3gozcjJ.js → useDeepCompareMemoize-KMBBux8C.js} +1 -1
  100. package/dist/{useIframeCapabilities-6a_yDNXp.js → useIframeCapabilities-cMNQ80CK.js} +1 -1
  101. package/dist/useLifecycle-BquH9ET-.js +112 -0
  102. package/dist/useTheme-B9C1JIy9.js +307 -0
  103. package/dist/utils-DXkj82sK.js +813 -0
  104. package/dist/{vega-component-Blvspl7v.js → vega-component-9NOEITbg.js} +55 -54
  105. package/dist/{vennDiagram-4TSXK5OY-DzCi-lRh.js → vennDiagram-4TSXK5OY-BfzXp4SH.js} +1 -1
  106. package/dist/{wardleyDiagram-VM6X3IG4-CW48xa0n.js → wardleyDiagram-VM6X3IG4-CiqEE8eq.js} +1 -1
  107. package/dist/{xychartDiagram-S5SC5T6Z-UPxGGI2B.js → xychartDiagram-S5SC5T6Z-BTIHCVOI.js} +1 -1
  108. package/package.json +1 -1
  109. package/src/components/editor/cell/__tests__/StagedAICell.test.tsx +1 -1
  110. package/src/components/editor/cell/code/cell-editor.tsx +13 -36
  111. package/src/components/editor/chrome/wrapper/__tests__/pending-ai-cells.test.tsx +1 -1
  112. package/src/components/editor/errors/__tests__/send-error-report-button.test.tsx +11 -5
  113. package/src/components/editor/notebook-cell.tsx +0 -1
  114. package/src/components/scratchpad/scratchpad.test.tsx +3 -11
  115. package/src/components/scratchpad/scratchpad.tsx +24 -22
  116. package/src/components/scratchpad/state.ts +7 -0
  117. package/src/core/ai/__tests__/staged-cells.test.ts +6 -8
  118. package/src/core/ai/staged-cells.ts +4 -2
  119. package/src/core/cells/__tests__/cells.test.ts +44 -60
  120. package/src/core/cells/__tests__/document.test.ts +1 -139
  121. package/src/core/cells/__tests__/notebook-outline.test.ts +8 -6
  122. package/src/core/cells/actions.ts +39 -0
  123. package/src/core/cells/cells.ts +15 -35
  124. package/src/core/cells/document.ts +9 -84
  125. package/src/core/codemirror/__tests__/format.test.ts +0 -34
  126. package/src/core/codemirror/cells/extensions.ts +20 -18
  127. package/src/core/codemirror/cells/state.ts +0 -5
  128. package/src/core/codemirror/format.ts +1 -19
  129. package/src/core/codemirror/misc/__tests__/paste.test.ts +3 -1
  130. package/src/core/codemirror/misc/paste.ts +1 -1
  131. package/src/core/notebook/document/__tests__/codemirror.test.ts +172 -0
  132. package/src/stories/layout/vertical/one-column.stories.tsx +26 -18
  133. package/dist/html-to-image--E3uFbJ9.js +0 -3348
  134. package/dist/label-Qvw1E97W.js +0 -281
  135. package/dist/objectWithoutPropertiesLoose-BRDcTsfB.js +0 -23
  136. package/dist/select-2KOiReNY.js +0 -1423
  137. package/dist/toast-B5t9o6s_.js +0 -1848
  138. package/dist/use-restore-focus-BgDTd2tc.js +0 -6418
  139. package/dist/useLifecycle-CaZi4wTw.js +0 -172
  140. package/dist/useTheme-TzPgWXwB.js +0 -1114
@@ -1,1848 +0,0 @@
1
- import { a as e } from "./rolldown-runtime-Cb76FRpK.js";
2
- import { h as t, p as n, r } from "./button-BQRdqQi1.js";
3
- import { t as i } from "./react-sHtZdjeP.js";
4
- import { t as a } from "./compiler-runtime-CldRdSsv.js";
5
- import { p as o } from "./tooltip-s4zZxwKe.js";
6
- import { A as s, O as c } from "./select-2KOiReNY.js";
7
- import { t as l } from "./react-dom-DUmH0GXv.js";
8
- import { t as u } from "./jsx-runtime-3BD1kT0s.js";
9
- import { At as d, Dt as f, Et as p, Ot as m, St as h, Tt as g, bt as ee, ht as te, kt as _, wt as v, xt as ne } from "./use-restore-focus-BgDTd2tc.js";
10
- //#region ../node_modules/.pnpm/@radix-ui+react-toast@1.3.1_@types+react-dom@19.3.0_@types+react@19.3.0__@types+react@1_9e7c08a11157ed276bff36e462c11a8f/node_modules/@radix-ui/react-toast/dist/index.mjs
11
- var y = /* @__PURE__ */ e(i(), 1), re = /* @__PURE__ */ e(l(), 1), b = u(), x = Object.defineProperty, S = (e, t) => x(e, "name", {
12
- value: t,
13
- configurable: !0
14
- }), ie = y.startTransition || (() => void 0), ae = "ToastProvider", [oe, se, C] = c("Toast"), w = {
15
- Up: "up",
16
- Down: "down",
17
- Left: "left",
18
- Right: "right"
19
- }, ce = {
20
- Foreground: "foreground",
21
- Background: "background"
22
- }, [T, le] = m("Toast", [C]), [E, D] = T(ae);
23
- function O(e) {
24
- typeof ie == "function" ? ie(e) : e();
25
- }
26
- S(O, "scheduleUpdate");
27
- var ue = /* @__PURE__ */ S((e) => {
28
- let { __scopeToast: t, label: n = "Notification", duration: r = 5e3, swipeDirection: i = w.Right, swipeThreshold: a = 50, announcerContainer: o, children: s } = e, [c, l] = y.useState(null), [u, d] = y.useState(0), f = y.useRef(!1), p = y.useCallback((e) => {
29
- O(() => l(e));
30
- }, []), m = y.useCallback(() => {
31
- O(() => d((e) => e + 1));
32
- }, []), h = y.useCallback(() => {
33
- O(() => d((e) => e - 1));
34
- }, []);
35
- return n.trim() || console.error(`Invalid prop \`label\` supplied to \`${ae}\`. Expected non-empty \`string\`.`), /* @__PURE__ */ (0, b.jsx)(oe.Provider, {
36
- scope: t,
37
- children: /* @__PURE__ */ (0, b.jsx)(E, {
38
- scope: t,
39
- label: n,
40
- duration: r,
41
- swipeDirection: i,
42
- swipeThreshold: a,
43
- toastCount: u,
44
- viewport: c,
45
- onViewportChange: p,
46
- onToastAdd: m,
47
- onToastRemove: h,
48
- isClosePausedRef: f,
49
- announcerContainer: o,
50
- children: s
51
- })
52
- });
53
- }, "ToastProvider"), de = "ToastViewport", k = ["F8"], fe = "toast.viewportPause", pe = "toast.viewportResume", A = /* @__PURE__ */ y.forwardRef(/* @__PURE__ */ S(function(e, t) {
54
- let { __scopeToast: r, hotkey: i = k, label: a = "Notifications ({hotkey})", ...o } = e, s = D(de, r), c = se(r), l = y.useRef(null), u = y.useRef(null), d = y.useRef(null), f = y.useRef(null), p = n(t, f, s.onViewportChange), m = i.join("+").replace(/Key/g, "").replace(/Digit/g, ""), h = s.toastCount > 0;
55
- y.useEffect(() => {
56
- let e = /* @__PURE__ */ S((e) => {
57
- i.length !== 0 && i.every((t) => e[t] || e.code === t) && f.current?.focus();
58
- }, "handleKeyDown");
59
- return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
60
- }, [i]), y.useEffect(() => {
61
- let e = l.current, t = f.current;
62
- if (h && e && t) {
63
- let n = /* @__PURE__ */ S(() => {
64
- if (!s.isClosePausedRef.current) {
65
- let e = new CustomEvent(fe);
66
- t.dispatchEvent(e), s.isClosePausedRef.current = !0;
67
- }
68
- }, "handlePause"), r = /* @__PURE__ */ S(() => {
69
- if (s.isClosePausedRef.current) {
70
- let e = new CustomEvent(pe);
71
- t.dispatchEvent(e), s.isClosePausedRef.current = !1;
72
- }
73
- }, "handleResume"), i = /* @__PURE__ */ S((t) => {
74
- e.contains(t.relatedTarget) || r();
75
- }, "handleFocusOutResume"), a = /* @__PURE__ */ S(() => {
76
- e.contains(document.activeElement) || r();
77
- }, "handlePointerLeaveResume");
78
- return e.addEventListener("focusin", n), e.addEventListener("focusout", i), e.addEventListener("pointermove", n), e.addEventListener("pointerleave", a), window.addEventListener("blur", n), window.addEventListener("focus", r), () => {
79
- e.removeEventListener("focusin", n), e.removeEventListener("focusout", i), e.removeEventListener("pointermove", n), e.removeEventListener("pointerleave", a), window.removeEventListener("blur", n), window.removeEventListener("focus", r);
80
- };
81
- }
82
- }, [h, s.isClosePausedRef]);
83
- let g = y.useCallback(({ tabbingDirection: e }) => {
84
- let t = c().map((t) => {
85
- let n = t.ref.current, r = [n, ...Ie(n)];
86
- return e === "forwards" ? r : r.reverse();
87
- });
88
- return (e === "forwards" ? t.reverse() : t).flat();
89
- }, [c]);
90
- return y.useEffect(() => {
91
- let e = f.current;
92
- if (e) {
93
- let t = /* @__PURE__ */ S((t) => {
94
- let n = t.altKey || t.ctrlKey || t.metaKey;
95
- if (t.key === "Tab" && !n) {
96
- let n = document.activeElement, r = t.shiftKey;
97
- if (t.target === e && r) {
98
- u.current?.focus();
99
- return;
100
- }
101
- let i = g({ tabbingDirection: r ? "backwards" : "forwards" }), a = i.findIndex((e) => e === n);
102
- N(i.slice(a + 1)) ? t.preventDefault() : r ? u.current?.focus() : d.current?.focus();
103
- }
104
- }, "handleKeyDown");
105
- return e.addEventListener("keydown", t), () => e.removeEventListener("keydown", t);
106
- }
107
- }, [c, g]), /* @__PURE__ */ (0, b.jsxs)(ne, {
108
- ref: l,
109
- role: "region",
110
- "aria-label": a.replace("{hotkey}", m),
111
- tabIndex: -1,
112
- style: { pointerEvents: h ? void 0 : "none" },
113
- children: [
114
- h && /* @__PURE__ */ (0, b.jsx)(he, {
115
- ref: u,
116
- onFocusFromOutsideViewport: () => {
117
- N(g({ tabbingDirection: "forwards" }));
118
- }
119
- }),
120
- /* @__PURE__ */ (0, b.jsx)(oe.Slot, {
121
- scope: r,
122
- children: /* @__PURE__ */ (0, b.jsx)(_.ol, {
123
- tabIndex: -1,
124
- ...o,
125
- ref: p
126
- })
127
- }),
128
- h && /* @__PURE__ */ (0, b.jsx)(he, {
129
- ref: d,
130
- onFocusFromOutsideViewport: () => {
131
- N(g({ tabbingDirection: "backwards" }));
132
- }
133
- })
134
- ]
135
- });
136
- }, "ToastViewport")), me = "ToastFocusProxy", he = /* @__PURE__ */ y.forwardRef(/* @__PURE__ */ S(function(e, t) {
137
- let { __scopeToast: n, onFocusFromOutsideViewport: r, ...i } = e, a = D(me, n);
138
- return /* @__PURE__ */ (0, b.jsx)(o, {
139
- tabIndex: 0,
140
- ...i,
141
- ref: t,
142
- style: { position: "fixed" },
143
- onFocus: (e) => {
144
- let t = e.relatedTarget;
145
- a.viewport?.contains(t) || r();
146
- }
147
- });
148
- }, "ToastFocusProxy")), j = "Toast", ge = "toast.swipeStart", _e = "toast.swipeMove", ve = "toast.swipeCancel", ye = "toast.swipeEnd", be = /* @__PURE__ */ y.forwardRef(/* @__PURE__ */ S(function(e, t) {
149
- let { forceMount: n, open: r, defaultOpen: i, onOpenChange: a, ...o } = e, [s, c] = g({
150
- prop: r,
151
- defaultProp: i ?? !0,
152
- onChange: a,
153
- caller: j
154
- });
155
- return /* @__PURE__ */ (0, b.jsx)(v, {
156
- present: n || s,
157
- children: /* @__PURE__ */ (0, b.jsx)(Ce, {
158
- open: s,
159
- ...o,
160
- ref: t,
161
- onClose: () => c(!1),
162
- onPause: h(e.onPause),
163
- onResume: h(e.onResume),
164
- onSwipeStart: p(e.onSwipeStart, (e) => {
165
- e.currentTarget.setAttribute("data-swipe", "start");
166
- }),
167
- onSwipeMove: p(e.onSwipeMove, (e) => {
168
- let { x: t, y: n } = e.detail.delta;
169
- e.currentTarget.setAttribute("data-swipe", "move"), e.currentTarget.style.setProperty("--radix-toast-swipe-move-x", `${t}px`), e.currentTarget.style.setProperty("--radix-toast-swipe-move-y", `${n}px`);
170
- }),
171
- onSwipeCancel: p(e.onSwipeCancel, (e) => {
172
- e.currentTarget.setAttribute("data-swipe", "cancel"), e.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"), e.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"), e.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"), e.currentTarget.style.removeProperty("--radix-toast-swipe-end-y");
173
- }),
174
- onSwipeEnd: p(e.onSwipeEnd, (e) => {
175
- let { x: t, y: n } = e.detail.delta;
176
- e.currentTarget.setAttribute("data-swipe", "end"), e.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"), e.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"), e.currentTarget.style.setProperty("--radix-toast-swipe-end-x", `${t}px`), e.currentTarget.style.setProperty("--radix-toast-swipe-end-y", `${n}px`), c(!1);
177
- })
178
- })
179
- });
180
- }, "Toast")), [xe, Se] = T(j, { onClose() {} }), Ce = /* @__PURE__ */ y.forwardRef(/* @__PURE__ */ S(function(e, t) {
181
- let { __scopeToast: r, type: i = ce.Foreground, duration: a, open: o, onClose: s, onEscapeKeyDown: c, onPause: l, onResume: u, onSwipeStart: d, onSwipeMove: f, onSwipeCancel: m, onSwipeEnd: g, ...te } = e, v = D(j, r), ne = se(r), [x, ie] = y.useState(null), ae = n(t, ie), C = y.useRef(null), w = y.useRef(null), T = a || v.duration, le = y.useRef(0), E = y.useRef(T), O = y.useRef(0), { onToastAdd: ue, onToastRemove: de } = v, k = h(() => {
182
- x?.contains(document.activeElement) && v.viewport?.focus(), s();
183
- }), A = y.useCallback((e) => {
184
- !e || e === Infinity || (window.clearTimeout(O.current), le.current = (/* @__PURE__ */ new Date()).getTime(), O.current = window.setTimeout(k, e));
185
- }, [k]);
186
- y.useEffect(() => {
187
- let e = v.viewport;
188
- if (e) {
189
- let t = /* @__PURE__ */ S(() => {
190
- A(E.current), u?.();
191
- }, "handleResume"), n = /* @__PURE__ */ S(() => {
192
- let e = (/* @__PURE__ */ new Date()).getTime() - le.current;
193
- E.current -= e, window.clearTimeout(O.current), l?.();
194
- }, "handlePause");
195
- return e.addEventListener(fe, n), e.addEventListener(pe, t), () => {
196
- e.removeEventListener(fe, n), e.removeEventListener(pe, t);
197
- };
198
- }
199
- }, [
200
- v.viewport,
201
- T,
202
- l,
203
- u,
204
- A
205
- ]), y.useEffect(() => {
206
- E.current = T, o && !v.isClosePausedRef.current && A(T);
207
- }, [
208
- o,
209
- T,
210
- v.isClosePausedRef,
211
- A
212
- ]), y.useEffect(() => () => {
213
- window.clearTimeout(O.current);
214
- }, []), y.useEffect(() => (ue(), () => de()), [ue, de]);
215
- let me = y.useMemo(() => x ? Me(x) : null, [x]);
216
- return v.viewport ? /* @__PURE__ */ (0, b.jsxs)(b.Fragment, { children: [me && /* @__PURE__ */ (0, b.jsx)(we, {
217
- __scopeToast: r,
218
- role: "status",
219
- "aria-live": i === ce.Foreground ? "assertive" : "polite",
220
- children: me
221
- }), /* @__PURE__ */ (0, b.jsx)(xe, {
222
- scope: r,
223
- onClose: k,
224
- children: re.createPortal(/* @__PURE__ */ (0, b.jsx)(oe.ItemSlot, {
225
- scope: r,
226
- children: /* @__PURE__ */ (0, b.jsx)(ee, {
227
- asChild: !0,
228
- onEscapeKeyDown: p(c, (e) => {
229
- ne().some((t) => t.ref.current?.contains(e.target)) || k();
230
- }),
231
- children: /* @__PURE__ */ (0, b.jsx)(_.li, {
232
- tabIndex: 0,
233
- "data-state": o ? "open" : "closed",
234
- "data-swipe-direction": v.swipeDirection,
235
- ...te,
236
- ref: ae,
237
- style: {
238
- userSelect: "none",
239
- touchAction: "none",
240
- ...e.style
241
- },
242
- onKeyDown: p(e.onKeyDown, (e) => {
243
- e.key === "Escape" && (c?.(e.nativeEvent), e.nativeEvent.defaultPrevented || k());
244
- }),
245
- onPointerDown: p(e.onPointerDown, (e) => {
246
- e.button === 0 && (C.current = {
247
- x: e.clientX,
248
- y: e.clientY
249
- });
250
- }),
251
- onPointerMove: p(e.onPointerMove, (e) => {
252
- if (!C.current) return;
253
- let t = e.clientX - C.current.x, n = e.clientY - C.current.y, r = !!w.current, i = ["left", "right"].includes(v.swipeDirection), a = ["left", "up"].includes(v.swipeDirection) ? Math.min : Math.max, o = i ? a(0, t) : 0, s = i ? 0 : a(0, n), c = e.pointerType === "touch" ? 10 : 2, l = {
254
- x: o,
255
- y: s
256
- }, u = {
257
- originalEvent: e,
258
- delta: l
259
- };
260
- r ? (w.current = l, M(_e, f, u, { discrete: !1 })) : Ne(l, v.swipeDirection, c) ? (w.current = l, M(ge, d, u, { discrete: !1 }), e.target.setPointerCapture(e.pointerId)) : (Math.abs(t) > c || Math.abs(n) > c) && (C.current = null);
261
- }),
262
- onPointerUp: p(e.onPointerUp, (e) => {
263
- let t = w.current, n = e.target;
264
- if (n.hasPointerCapture(e.pointerId) && n.releasePointerCapture(e.pointerId), w.current = null, C.current = null, t) {
265
- let n = e.currentTarget, r = {
266
- originalEvent: e,
267
- delta: t
268
- };
269
- Ne(t, v.swipeDirection, v.swipeThreshold) ? M(ye, g, r, { discrete: !0 }) : M(ve, m, r, { discrete: !0 }), n.addEventListener("click", (e) => e.preventDefault(), { once: !0 });
270
- }
271
- })
272
- })
273
- })
274
- }), v.viewport)
275
- })] }) : null;
276
- }, "ToastImpl")), we = /* @__PURE__ */ S((e) => {
277
- let { __scopeToast: t, children: n, ...r } = e, i = D(j, t), [a, s] = y.useState(!1), [c, l] = y.useState(!1);
278
- return Pe(() => s(!0)), y.useEffect(() => {
279
- let e = window.setTimeout(() => l(!0), 1e3);
280
- return () => window.clearTimeout(e);
281
- }, []), c ? null : /* @__PURE__ */ (0, b.jsx)(te, {
282
- asChild: !0,
283
- container: i.announcerContainer || void 0,
284
- children: /* @__PURE__ */ (0, b.jsx)(o, {
285
- ...r,
286
- children: a && /* @__PURE__ */ (0, b.jsxs)(b.Fragment, { children: [
287
- i.label,
288
- " ",
289
- n
290
- ] })
291
- })
292
- });
293
- }, "ToastAnnounce"), Te = /* @__PURE__ */ y.forwardRef(/* @__PURE__ */ S(function(e, t) {
294
- let { __scopeToast: n, ...r } = e;
295
- return /* @__PURE__ */ (0, b.jsx)(_.div, {
296
- ...r,
297
- ref: t
298
- });
299
- }, "ToastTitle")), Ee = /* @__PURE__ */ y.forwardRef(/* @__PURE__ */ S(function(e, t) {
300
- let { __scopeToast: n, ...r } = e;
301
- return /* @__PURE__ */ (0, b.jsx)(_.div, {
302
- ...r,
303
- ref: t
304
- });
305
- }, "ToastDescription")), De = "ToastAction", Oe = /* @__PURE__ */ y.forwardRef(/* @__PURE__ */ S(function(e, t) {
306
- let { altText: n, ...r } = e;
307
- return n.trim() ? /* @__PURE__ */ (0, b.jsx)(je, {
308
- altText: n,
309
- asChild: !0,
310
- children: /* @__PURE__ */ (0, b.jsx)(Ae, {
311
- ...r,
312
- ref: t
313
- })
314
- }) : (console.error(`Invalid prop \`altText\` supplied to \`${De}\`. Expected non-empty \`string\`.`), null);
315
- }, "ToastAction")), ke = "ToastClose", Ae = /* @__PURE__ */ y.forwardRef(/* @__PURE__ */ S(function(e, t) {
316
- let { __scopeToast: n, ...r } = e, i = Se(ke, n);
317
- return /* @__PURE__ */ (0, b.jsx)(je, {
318
- asChild: !0,
319
- children: /* @__PURE__ */ (0, b.jsx)(_.button, {
320
- type: "button",
321
- ...r,
322
- ref: t,
323
- onClick: p(e.onClick, i.onClose)
324
- })
325
- });
326
- }, "ToastClose")), je = /* @__PURE__ */ y.forwardRef(/* @__PURE__ */ S(function(e, t) {
327
- let { __scopeToast: n, altText: r, ...i } = e;
328
- return /* @__PURE__ */ (0, b.jsx)(_.div, {
329
- "data-radix-toast-announce-exclude": "",
330
- "data-radix-toast-announce-alt": r || void 0,
331
- ...i,
332
- ref: t
333
- });
334
- }, "ToastAnnounceExclude"));
335
- function Me(e) {
336
- let t = [];
337
- return Array.from(e.childNodes).forEach((e) => {
338
- if (e.nodeType === e.TEXT_NODE && e.textContent && t.push(e.textContent), Fe(e)) {
339
- let n = e.ariaHidden || e.hidden || e.style.display === "none", r = e.dataset.radixToastAnnounceExclude === "";
340
- if (!n) {
341
- if (r) {
342
- let n = e.dataset.radixToastAnnounceAlt;
343
- n && t.push(n);
344
- } else t.push(...Me(e));
345
- }
346
- }
347
- }), t;
348
- }
349
- S(Me, "getAnnounceTextContent");
350
- function M(e, t, n, { discrete: r }) {
351
- let i = n.originalEvent.currentTarget, a = new CustomEvent(e, {
352
- bubbles: !0,
353
- cancelable: !0,
354
- detail: n
355
- });
356
- t && i.addEventListener(e, t, { once: !0 }), r ? d(i, a) : i.dispatchEvent(a);
357
- }
358
- S(M, "handleAndDispatchCustomEvent");
359
- var Ne = /* @__PURE__ */ S((e, t, n = 0) => {
360
- let r = Math.abs(e.x), i = Math.abs(e.y), a = r > i;
361
- return t === w.Left || t === w.Right ? a && r > n : !a && i > n;
362
- }, "isDeltaInDirection");
363
- function Pe(e = () => {}) {
364
- let t = h(e);
365
- f(() => {
366
- let e = 0, n = 0;
367
- return e = window.requestAnimationFrame(() => n = window.requestAnimationFrame(t)), () => {
368
- window.cancelAnimationFrame(e), window.cancelAnimationFrame(n);
369
- };
370
- }, [t]);
371
- }
372
- S(Pe, "useNextFrame");
373
- function Fe(e) {
374
- return e.nodeType === e.ELEMENT_NODE;
375
- }
376
- S(Fe, "isHTMLElement");
377
- function Ie(e) {
378
- let t = [], n = document.createTreeWalker(e, NodeFilter.SHOW_ELEMENT, { acceptNode: /* @__PURE__ */ S((e) => {
379
- let t = e.tagName === "INPUT" && e.type === "hidden";
380
- return e.disabled || e.hidden || t ? NodeFilter.FILTER_SKIP : e.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
381
- }, "acceptNode") });
382
- for (; n.nextNode();) t.push(n.currentNode);
383
- return t;
384
- }
385
- S(Ie, "getTabbableCandidates");
386
- function N(e) {
387
- let t = document.activeElement;
388
- return e.some((e) => e === t || (e.focus(), document.activeElement !== t));
389
- }
390
- S(N, "focusFirst");
391
- //#endregion
392
- //#region ../node_modules/.pnpm/marked@15.0.12/node_modules/marked/lib/marked.esm.js
393
- function Le() {
394
- return {
395
- async: !1,
396
- breaks: !1,
397
- extensions: null,
398
- gfm: !0,
399
- hooks: null,
400
- pedantic: !1,
401
- renderer: null,
402
- silent: !1,
403
- tokenizer: null,
404
- walkTokens: null
405
- };
406
- }
407
- var P = Le();
408
- function Re(e) {
409
- P = e;
410
- }
411
- var F = { exec: () => null };
412
- function I(e, t = "") {
413
- let n = typeof e == "string" ? e : e.source, r = {
414
- replace: (e, t) => {
415
- let i = typeof t == "string" ? t : t.source;
416
- return i = i.replace(L.caret, "$1"), n = n.replace(e, i), r;
417
- },
418
- getRegex: () => new RegExp(n, t)
419
- };
420
- return r;
421
- }
422
- var L = {
423
- codeRemoveIndent: /^(?: {1,4}| {0,3}\t)/gm,
424
- outputLinkReplace: /\\([\[\]])/g,
425
- indentCodeCompensation: /^(\s+)(?:```)/,
426
- beginningSpace: /^\s+/,
427
- endingHash: /#$/,
428
- startingSpaceChar: /^ /,
429
- endingSpaceChar: / $/,
430
- nonSpaceChar: /[^ ]/,
431
- newLineCharGlobal: /\n/g,
432
- tabCharGlobal: /\t/g,
433
- multipleSpaceGlobal: /\s+/g,
434
- blankLine: /^[ \t]*$/,
435
- doubleBlankLine: /\n[ \t]*\n[ \t]*$/,
436
- blockquoteStart: /^ {0,3}>/,
437
- blockquoteSetextReplace: /\n {0,3}((?:=+|-+) *)(?=\n|$)/g,
438
- blockquoteSetextReplace2: /^ {0,3}>[ \t]?/gm,
439
- listReplaceTabs: /^\t+/,
440
- listReplaceNesting: /^ {1,4}(?=( {4})*[^ ])/g,
441
- listIsTask: /^\[[ xX]\] /,
442
- listReplaceTask: /^\[[ xX]\] +/,
443
- anyLine: /\n.*\n/,
444
- hrefBrackets: /^<(.*)>$/,
445
- tableDelimiter: /[:|]/,
446
- tableAlignChars: /^\||\| *$/g,
447
- tableRowBlankLine: /\n[ \t]*$/,
448
- tableAlignRight: /^ *-+: *$/,
449
- tableAlignCenter: /^ *:-+: *$/,
450
- tableAlignLeft: /^ *:-+ *$/,
451
- startATag: /^<a /i,
452
- endATag: /^<\/a>/i,
453
- startPreScriptTag: /^<(pre|code|kbd|script)(\s|>)/i,
454
- endPreScriptTag: /^<\/(pre|code|kbd|script)(\s|>)/i,
455
- startAngleBracket: /^</,
456
- endAngleBracket: />$/,
457
- pedanticHrefTitle: /^([^'"]*[^\s])\s+(['"])(.*)\2/,
458
- unicodeAlphaNumeric: /[\p{L}\p{N}]/u,
459
- escapeTest: /[&<>"']/,
460
- escapeReplace: /[&<>"']/g,
461
- escapeTestNoEncode: /[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,
462
- escapeReplaceNoEncode: /[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,
463
- unescapeTest: /&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi,
464
- caret: /(^|[^\[])\^/g,
465
- percentDecode: /%25/g,
466
- findPipe: /\|/g,
467
- splitPipe: / \|/,
468
- slashPipe: /\\\|/g,
469
- carriageReturn: /\r\n|\r/g,
470
- spaceLine: /^ +$/gm,
471
- notSpaceStart: /^\S*/,
472
- endingNewline: /\n$/,
473
- listItemRegex: (e) => RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),
474
- nextBulletRegex: (e) => RegExp(`^ {0,${Math.min(3, e - 1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),
475
- hrRegex: (e) => RegExp(`^ {0,${Math.min(3, e - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),
476
- fencesBeginRegex: (e) => RegExp(`^ {0,${Math.min(3, e - 1)}}(?:\`\`\`|~~~)`),
477
- headingBeginRegex: (e) => RegExp(`^ {0,${Math.min(3, e - 1)}}#`),
478
- htmlBeginRegex: (e) => RegExp(`^ {0,${Math.min(3, e - 1)}}<(?:[a-z].*>|!--)`, "i")
479
- }, ze = /^(?:[ \t]*(?:\n|$))+/, Be = /^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/, Ve = /^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/, R = /^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/, He = /^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/, Ue = /(?:[*+-]|\d{1,9}[.)])/, We = /^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/, Ge = I(We).replace(/bull/g, Ue).replace(/blockCode/g, /(?: {4}| {0,3}\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\n>]+>\n/).replace(/\|table/g, "").getRegex(), Ke = I(We).replace(/bull/g, Ue).replace(/blockCode/g, /(?: {4}| {0,3}\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\n>]+>\n/).replace(/table/g, / {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(), qe = /^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/, Je = /^[^\n]+/, Ye = /(?!\s*\])(?:\\.|[^\[\]\\])+/, Xe = I(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label", Ye).replace("title", /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(), Ze = I(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g, Ue).getRegex(), z = "address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul", Qe = /<!--(?:-?>|[\s\S]*?(?:-->|$))/, $e = I("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))", "i").replace("comment", Qe).replace("tag", z).replace("attribute", / +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(), et = I(qe).replace("hr", R).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("|table", "").replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)]) ").replace("html", "</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", z).getRegex(), tt = {
480
- blockquote: I(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph", et).getRegex(),
481
- code: Be,
482
- def: Xe,
483
- fences: Ve,
484
- heading: He,
485
- hr: R,
486
- html: $e,
487
- lheading: Ge,
488
- list: Ze,
489
- newline: ze,
490
- paragraph: et,
491
- table: F,
492
- text: Je
493
- }, nt = I("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr", R).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("blockquote", " {0,3}>").replace("code", "(?: {4}| {0,3} )[^\\n]").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)]) ").replace("html", "</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", z).getRegex(), rt = {
494
- ...tt,
495
- lheading: Ke,
496
- table: nt,
497
- paragraph: I(qe).replace("hr", R).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("table", nt).replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)]) ").replace("html", "</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", z).getRegex()
498
- }, it = {
499
- ...tt,
500
- html: I("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment", Qe).replace(/tag/g, "(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),
501
- def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,
502
- heading: /^(#{1,6})(.*)(?:\n+|$)/,
503
- fences: F,
504
- lheading: /^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,
505
- paragraph: I(qe).replace("hr", R).replace("heading", " *#{1,6} *[^\n]").replace("lheading", Ge).replace("|table", "").replace("blockquote", " {0,3}>").replace("|fences", "").replace("|list", "").replace("|html", "").replace("|tag", "").getRegex()
506
- }, at = /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/, ot = /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/, st = /^( {2,}|\\)\n(?!\s*$)/, ct = /^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/, B = /[\p{P}\p{S}]/u, lt = /[\s\p{P}\p{S}]/u, ut = /[^\s\p{P}\p{S}]/u, dt = I(/^((?![*_])punctSpace)/, "u").replace(/punctSpace/g, lt).getRegex(), ft = /(?!~)[\p{P}\p{S}]/u, pt = /(?!~)[\s\p{P}\p{S}]/u, mt = /(?:[^\s\p{P}\p{S}]|~)/u, ht = /\[[^[\]]*?\]\((?:\\.|[^\\\(\)]|\((?:\\.|[^\\\(\)])*\))*\)|`[^`]*?`|<[^<>]*?>/g, gt = /^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/, _t = I(gt, "u").replace(/punct/g, B).getRegex(), vt = I(gt, "u").replace(/punct/g, ft).getRegex(), yt = "^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)", bt = I(yt, "gu").replace(/notPunctSpace/g, ut).replace(/punctSpace/g, lt).replace(/punct/g, B).getRegex(), xt = I(yt, "gu").replace(/notPunctSpace/g, mt).replace(/punctSpace/g, pt).replace(/punct/g, ft).getRegex(), St = I("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)", "gu").replace(/notPunctSpace/g, ut).replace(/punctSpace/g, lt).replace(/punct/g, B).getRegex(), Ct = I(/\\(punct)/, "gu").replace(/punct/g, B).getRegex(), wt = I(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme", /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email", /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(), Tt = I(Qe).replace("(?:-->|$)", "-->").getRegex(), Et = I("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment", Tt).replace("attribute", /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(), V = /(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/, Dt = I(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label", V).replace("href", /<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title", /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(), Ot = I(/^!?\[(label)\]\[(ref)\]/).replace("label", V).replace("ref", Ye).getRegex(), kt = I(/^!?\[(ref)\](?:\[\])?/).replace("ref", Ye).getRegex(), At = {
507
- _backpedal: F,
508
- anyPunctuation: Ct,
509
- autolink: wt,
510
- blockSkip: ht,
511
- br: st,
512
- code: ot,
513
- del: F,
514
- emStrongLDelim: _t,
515
- emStrongRDelimAst: bt,
516
- emStrongRDelimUnd: St,
517
- escape: at,
518
- link: Dt,
519
- nolink: kt,
520
- punctuation: dt,
521
- reflink: Ot,
522
- reflinkSearch: I("reflink|nolink(?!\\()", "g").replace("reflink", Ot).replace("nolink", kt).getRegex(),
523
- tag: Et,
524
- text: ct,
525
- url: F
526
- }, jt = {
527
- ...At,
528
- link: I(/^!?\[(label)\]\((.*?)\)/).replace("label", V).getRegex(),
529
- reflink: I(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label", V).getRegex()
530
- }, Mt = {
531
- ...At,
532
- emStrongRDelimAst: xt,
533
- emStrongLDelim: vt,
534
- url: I(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/, "i").replace("email", /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),
535
- _backpedal: /(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,
536
- del: /^(~~?)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/,
537
- text: /^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/
538
- }, Nt = {
539
- ...Mt,
540
- br: I(st).replace("{2,}", "*").getRegex(),
541
- text: I(Mt.text).replace("\\b_", "\\b_| {2,}\\n").replace(/\{2,\}/g, "*").getRegex()
542
- }, H = {
543
- normal: tt,
544
- gfm: rt,
545
- pedantic: it
546
- }, U = {
547
- normal: At,
548
- gfm: Mt,
549
- breaks: Nt,
550
- pedantic: jt
551
- }, Pt = {
552
- "&": "&amp;",
553
- "<": "&lt;",
554
- ">": "&gt;",
555
- "\"": "&quot;",
556
- "'": "&#39;"
557
- }, Ft = (e) => Pt[e];
558
- function W(e, t) {
559
- if (t) {
560
- if (L.escapeTest.test(e)) return e.replace(L.escapeReplace, Ft);
561
- } else if (L.escapeTestNoEncode.test(e)) return e.replace(L.escapeReplaceNoEncode, Ft);
562
- return e;
563
- }
564
- function It(e) {
565
- try {
566
- e = encodeURI(e).replace(L.percentDecode, "%");
567
- } catch {
568
- return null;
569
- }
570
- return e;
571
- }
572
- function Lt(e, t) {
573
- let n = e.replace(L.findPipe, (e, t, n) => {
574
- let r = !1, i = t;
575
- for (; --i >= 0 && n[i] === "\\";) r = !r;
576
- return r ? "|" : " |";
577
- }).split(L.splitPipe), r = 0;
578
- if (n[0].trim() || n.shift(), n.length > 0 && !n.at(-1)?.trim() && n.pop(), t) {
579
- if (n.length > t) n.splice(t);
580
- else for (; n.length < t;) n.push("");
581
- }
582
- for (; r < n.length; r++) n[r] = n[r].trim().replace(L.slashPipe, "|");
583
- return n;
584
- }
585
- function G(e, t, n) {
586
- let r = e.length;
587
- if (r === 0) return "";
588
- let i = 0;
589
- for (; i < r;) {
590
- let a = e.charAt(r - i - 1);
591
- if (a === t && !n) i++;
592
- else if (a !== t && n) i++;
593
- else break;
594
- }
595
- return e.slice(0, r - i);
596
- }
597
- function Rt(e, t) {
598
- if (e.indexOf(t[1]) === -1) return -1;
599
- let n = 0;
600
- for (let r = 0; r < e.length; r++) if (e[r] === "\\") r++;
601
- else if (e[r] === t[0]) n++;
602
- else if (e[r] === t[1] && (n--, n < 0)) return r;
603
- return n > 0 ? -2 : -1;
604
- }
605
- function zt(e, t, n, r, i) {
606
- let a = t.href, o = t.title || null, s = e[1].replace(i.other.outputLinkReplace, "$1");
607
- r.state.inLink = !0;
608
- let c = {
609
- type: e[0].charAt(0) === "!" ? "image" : "link",
610
- raw: n,
611
- href: a,
612
- title: o,
613
- text: s,
614
- tokens: r.inlineTokens(s)
615
- };
616
- return r.state.inLink = !1, c;
617
- }
618
- function Bt(e, t, n) {
619
- let r = e.match(n.other.indentCodeCompensation);
620
- if (r === null) return t;
621
- let i = r[1];
622
- return t.split("\n").map((e) => {
623
- let t = e.match(n.other.beginningSpace);
624
- if (t === null) return e;
625
- let [r] = t;
626
- return r.length >= i.length ? e.slice(i.length) : e;
627
- }).join("\n");
628
- }
629
- var K = class {
630
- options;
631
- rules;
632
- lexer;
633
- constructor(e) {
634
- this.options = e || P;
635
- }
636
- space(e) {
637
- let t = this.rules.block.newline.exec(e);
638
- if (t && t[0].length > 0) return {
639
- type: "space",
640
- raw: t[0]
641
- };
642
- }
643
- code(e) {
644
- let t = this.rules.block.code.exec(e);
645
- if (t) {
646
- let e = t[0].replace(this.rules.other.codeRemoveIndent, "");
647
- return {
648
- type: "code",
649
- raw: t[0],
650
- codeBlockStyle: "indented",
651
- text: this.options.pedantic ? e : G(e, "\n")
652
- };
653
- }
654
- }
655
- fences(e) {
656
- let t = this.rules.block.fences.exec(e);
657
- if (t) {
658
- let e = t[0], n = Bt(e, t[3] || "", this.rules);
659
- return {
660
- type: "code",
661
- raw: e,
662
- lang: t[2] ? t[2].trim().replace(this.rules.inline.anyPunctuation, "$1") : t[2],
663
- text: n
664
- };
665
- }
666
- }
667
- heading(e) {
668
- let t = this.rules.block.heading.exec(e);
669
- if (t) {
670
- let e = t[2].trim();
671
- if (this.rules.other.endingHash.test(e)) {
672
- let t = G(e, "#");
673
- (this.options.pedantic || !t || this.rules.other.endingSpaceChar.test(t)) && (e = t.trim());
674
- }
675
- return {
676
- type: "heading",
677
- raw: t[0],
678
- depth: t[1].length,
679
- text: e,
680
- tokens: this.lexer.inline(e)
681
- };
682
- }
683
- }
684
- hr(e) {
685
- let t = this.rules.block.hr.exec(e);
686
- if (t) return {
687
- type: "hr",
688
- raw: G(t[0], "\n")
689
- };
690
- }
691
- blockquote(e) {
692
- let t = this.rules.block.blockquote.exec(e);
693
- if (t) {
694
- let e = G(t[0], "\n").split("\n"), n = "", r = "", i = [];
695
- for (; e.length > 0;) {
696
- let t = !1, a = [], o;
697
- for (o = 0; o < e.length; o++) if (this.rules.other.blockquoteStart.test(e[o])) a.push(e[o]), t = !0;
698
- else if (!t) a.push(e[o]);
699
- else break;
700
- e = e.slice(o);
701
- let s = a.join("\n"), c = s.replace(this.rules.other.blockquoteSetextReplace, "\n $1").replace(this.rules.other.blockquoteSetextReplace2, "");
702
- n = n ? `${n}
703
- ${s}` : s, r = r ? `${r}
704
- ${c}` : c;
705
- let l = this.lexer.state.top;
706
- if (this.lexer.state.top = !0, this.lexer.blockTokens(c, i, !0), this.lexer.state.top = l, e.length === 0) break;
707
- let u = i.at(-1);
708
- if (u?.type === "code") break;
709
- if (u?.type === "blockquote") {
710
- let t = u, a = t.raw + "\n" + e.join("\n"), o = this.blockquote(a);
711
- i[i.length - 1] = o, n = n.substring(0, n.length - t.raw.length) + o.raw, r = r.substring(0, r.length - t.text.length) + o.text;
712
- break;
713
- }
714
- if (u?.type === "list") {
715
- let t = u, a = t.raw + "\n" + e.join("\n"), o = this.list(a);
716
- i[i.length - 1] = o, n = n.substring(0, n.length - u.raw.length) + o.raw, r = r.substring(0, r.length - t.raw.length) + o.raw, e = a.substring(i.at(-1).raw.length).split("\n");
717
- continue;
718
- }
719
- }
720
- return {
721
- type: "blockquote",
722
- raw: n,
723
- tokens: i,
724
- text: r
725
- };
726
- }
727
- }
728
- list(e) {
729
- let t = this.rules.block.list.exec(e);
730
- if (t) {
731
- let n = t[1].trim(), r = n.length > 1, i = {
732
- type: "list",
733
- raw: "",
734
- ordered: r,
735
- start: r ? +n.slice(0, -1) : "",
736
- loose: !1,
737
- items: []
738
- };
739
- n = r ? `\\d{1,9}\\${n.slice(-1)}` : `\\${n}`, this.options.pedantic && (n = r ? n : "[*+-]");
740
- let a = this.rules.other.listItemRegex(n), o = !1;
741
- for (; e;) {
742
- let n = !1, r = "", s = "";
743
- if (!(t = a.exec(e)) || this.rules.block.hr.test(e)) break;
744
- r = t[0], e = e.substring(r.length);
745
- let c = t[2].split("\n", 1)[0].replace(this.rules.other.listReplaceTabs, (e) => " ".repeat(3 * e.length)), l = e.split("\n", 1)[0], u = !c.trim(), d = 0;
746
- if (this.options.pedantic ? (d = 2, s = c.trimStart()) : u ? d = t[1].length + 1 : (d = t[2].search(this.rules.other.nonSpaceChar), d = d > 4 ? 1 : d, s = c.slice(d), d += t[1].length), u && this.rules.other.blankLine.test(l) && (r += l + "\n", e = e.substring(l.length + 1), n = !0), !n) {
747
- let t = this.rules.other.nextBulletRegex(d), n = this.rules.other.hrRegex(d), i = this.rules.other.fencesBeginRegex(d), a = this.rules.other.headingBeginRegex(d), o = this.rules.other.htmlBeginRegex(d);
748
- for (; e;) {
749
- let f = e.split("\n", 1)[0], p;
750
- if (l = f, this.options.pedantic ? (l = l.replace(this.rules.other.listReplaceNesting, " "), p = l) : p = l.replace(this.rules.other.tabCharGlobal, " "), i.test(l) || a.test(l) || o.test(l) || t.test(l) || n.test(l)) break;
751
- if (p.search(this.rules.other.nonSpaceChar) >= d || !l.trim()) s += "\n" + p.slice(d);
752
- else {
753
- if (u || c.replace(this.rules.other.tabCharGlobal, " ").search(this.rules.other.nonSpaceChar) >= 4 || i.test(c) || a.test(c) || n.test(c)) break;
754
- s += "\n" + l;
755
- }
756
- !u && !l.trim() && (u = !0), r += f + "\n", e = e.substring(f.length + 1), c = p.slice(d);
757
- }
758
- }
759
- i.loose || (o ? i.loose = !0 : this.rules.other.doubleBlankLine.test(r) && (o = !0));
760
- let f = null, p;
761
- this.options.gfm && (f = this.rules.other.listIsTask.exec(s), f && (p = f[0] !== "[ ] ", s = s.replace(this.rules.other.listReplaceTask, ""))), i.items.push({
762
- type: "list_item",
763
- raw: r,
764
- task: !!f,
765
- checked: p,
766
- loose: !1,
767
- text: s,
768
- tokens: []
769
- }), i.raw += r;
770
- }
771
- let s = i.items.at(-1);
772
- if (s) s.raw = s.raw.trimEnd(), s.text = s.text.trimEnd();
773
- else return;
774
- i.raw = i.raw.trimEnd();
775
- for (let e = 0; e < i.items.length; e++) if (this.lexer.state.top = !1, i.items[e].tokens = this.lexer.blockTokens(i.items[e].text, []), !i.loose) {
776
- let t = i.items[e].tokens.filter((e) => e.type === "space");
777
- i.loose = t.length > 0 && t.some((e) => this.rules.other.anyLine.test(e.raw));
778
- }
779
- if (i.loose) for (let e = 0; e < i.items.length; e++) i.items[e].loose = !0;
780
- return i;
781
- }
782
- }
783
- html(e) {
784
- let t = this.rules.block.html.exec(e);
785
- if (t) return {
786
- type: "html",
787
- block: !0,
788
- raw: t[0],
789
- pre: t[1] === "pre" || t[1] === "script" || t[1] === "style",
790
- text: t[0]
791
- };
792
- }
793
- def(e) {
794
- let t = this.rules.block.def.exec(e);
795
- if (t) {
796
- let e = t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal, " "), n = t[2] ? t[2].replace(this.rules.other.hrefBrackets, "$1").replace(this.rules.inline.anyPunctuation, "$1") : "", r = t[3] ? t[3].substring(1, t[3].length - 1).replace(this.rules.inline.anyPunctuation, "$1") : t[3];
797
- return {
798
- type: "def",
799
- tag: e,
800
- raw: t[0],
801
- href: n,
802
- title: r
803
- };
804
- }
805
- }
806
- table(e) {
807
- let t = this.rules.block.table.exec(e);
808
- if (!t || !this.rules.other.tableDelimiter.test(t[2])) return;
809
- let n = Lt(t[1]), r = t[2].replace(this.rules.other.tableAlignChars, "").split("|"), i = t[3]?.trim() ? t[3].replace(this.rules.other.tableRowBlankLine, "").split("\n") : [], a = {
810
- type: "table",
811
- raw: t[0],
812
- header: [],
813
- align: [],
814
- rows: []
815
- };
816
- if (n.length === r.length) {
817
- for (let e of r) this.rules.other.tableAlignRight.test(e) ? a.align.push("right") : this.rules.other.tableAlignCenter.test(e) ? a.align.push("center") : this.rules.other.tableAlignLeft.test(e) ? a.align.push("left") : a.align.push(null);
818
- for (let e = 0; e < n.length; e++) a.header.push({
819
- text: n[e],
820
- tokens: this.lexer.inline(n[e]),
821
- header: !0,
822
- align: a.align[e]
823
- });
824
- for (let e of i) a.rows.push(Lt(e, a.header.length).map((e, t) => ({
825
- text: e,
826
- tokens: this.lexer.inline(e),
827
- header: !1,
828
- align: a.align[t]
829
- })));
830
- return a;
831
- }
832
- }
833
- lheading(e) {
834
- let t = this.rules.block.lheading.exec(e);
835
- if (t) return {
836
- type: "heading",
837
- raw: t[0],
838
- depth: t[2].charAt(0) === "=" ? 1 : 2,
839
- text: t[1],
840
- tokens: this.lexer.inline(t[1])
841
- };
842
- }
843
- paragraph(e) {
844
- let t = this.rules.block.paragraph.exec(e);
845
- if (t) {
846
- let e = t[1].charAt(t[1].length - 1) === "\n" ? t[1].slice(0, -1) : t[1];
847
- return {
848
- type: "paragraph",
849
- raw: t[0],
850
- text: e,
851
- tokens: this.lexer.inline(e)
852
- };
853
- }
854
- }
855
- text(e) {
856
- let t = this.rules.block.text.exec(e);
857
- if (t) return {
858
- type: "text",
859
- raw: t[0],
860
- text: t[0],
861
- tokens: this.lexer.inline(t[0])
862
- };
863
- }
864
- escape(e) {
865
- let t = this.rules.inline.escape.exec(e);
866
- if (t) return {
867
- type: "escape",
868
- raw: t[0],
869
- text: t[1]
870
- };
871
- }
872
- tag(e) {
873
- let t = this.rules.inline.tag.exec(e);
874
- if (t) return !this.lexer.state.inLink && this.rules.other.startATag.test(t[0]) ? this.lexer.state.inLink = !0 : this.lexer.state.inLink && this.rules.other.endATag.test(t[0]) && (this.lexer.state.inLink = !1), !this.lexer.state.inRawBlock && this.rules.other.startPreScriptTag.test(t[0]) ? this.lexer.state.inRawBlock = !0 : this.lexer.state.inRawBlock && this.rules.other.endPreScriptTag.test(t[0]) && (this.lexer.state.inRawBlock = !1), {
875
- type: "html",
876
- raw: t[0],
877
- inLink: this.lexer.state.inLink,
878
- inRawBlock: this.lexer.state.inRawBlock,
879
- block: !1,
880
- text: t[0]
881
- };
882
- }
883
- link(e) {
884
- let t = this.rules.inline.link.exec(e);
885
- if (t) {
886
- let e = t[2].trim();
887
- if (!this.options.pedantic && this.rules.other.startAngleBracket.test(e)) {
888
- if (!this.rules.other.endAngleBracket.test(e)) return;
889
- let t = G(e.slice(0, -1), "\\");
890
- if ((e.length - t.length) % 2 == 0) return;
891
- } else {
892
- let e = Rt(t[2], "()");
893
- if (e === -2) return;
894
- if (e > -1) {
895
- let n = (t[0].indexOf("!") === 0 ? 5 : 4) + t[1].length + e;
896
- t[2] = t[2].substring(0, e), t[0] = t[0].substring(0, n).trim(), t[3] = "";
897
- }
898
- }
899
- let n = t[2], r = "";
900
- if (this.options.pedantic) {
901
- let e = this.rules.other.pedanticHrefTitle.exec(n);
902
- e && (n = e[1], r = e[3]);
903
- } else r = t[3] ? t[3].slice(1, -1) : "";
904
- return n = n.trim(), this.rules.other.startAngleBracket.test(n) && (n = this.options.pedantic && !this.rules.other.endAngleBracket.test(e) ? n.slice(1) : n.slice(1, -1)), zt(t, {
905
- href: n && n.replace(this.rules.inline.anyPunctuation, "$1"),
906
- title: r && r.replace(this.rules.inline.anyPunctuation, "$1")
907
- }, t[0], this.lexer, this.rules);
908
- }
909
- }
910
- reflink(e, t) {
911
- let n;
912
- if ((n = this.rules.inline.reflink.exec(e)) || (n = this.rules.inline.nolink.exec(e))) {
913
- let e = t[(n[2] || n[1]).replace(this.rules.other.multipleSpaceGlobal, " ").toLowerCase()];
914
- if (!e) {
915
- let e = n[0].charAt(0);
916
- return {
917
- type: "text",
918
- raw: e,
919
- text: e
920
- };
921
- }
922
- return zt(n, e, n[0], this.lexer, this.rules);
923
- }
924
- }
925
- emStrong(e, t, n = "") {
926
- let r = this.rules.inline.emStrongLDelim.exec(e);
927
- if (r && !(r[3] && n.match(this.rules.other.unicodeAlphaNumeric)) && (!(r[1] || r[2]) || !n || this.rules.inline.punctuation.exec(n))) {
928
- let n = [...r[0]].length - 1, i, a, o = n, s = 0, c = r[0][0] === "*" ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd;
929
- for (c.lastIndex = 0, t = t.slice(-1 * e.length + n); (r = c.exec(t)) != null;) {
930
- if (i = r[1] || r[2] || r[3] || r[4] || r[5] || r[6], !i) continue;
931
- if (a = [...i].length, r[3] || r[4]) {
932
- o += a;
933
- continue;
934
- }
935
- if ((r[5] || r[6]) && n % 3 && !((n + a) % 3)) {
936
- s += a;
937
- continue;
938
- }
939
- if (o -= a, o > 0) continue;
940
- a = Math.min(a, a + o + s);
941
- let t = [...r[0]][0].length, c = e.slice(0, n + r.index + t + a);
942
- if (Math.min(n, a) % 2) {
943
- let e = c.slice(1, -1);
944
- return {
945
- type: "em",
946
- raw: c,
947
- text: e,
948
- tokens: this.lexer.inlineTokens(e)
949
- };
950
- }
951
- let l = c.slice(2, -2);
952
- return {
953
- type: "strong",
954
- raw: c,
955
- text: l,
956
- tokens: this.lexer.inlineTokens(l)
957
- };
958
- }
959
- }
960
- }
961
- codespan(e) {
962
- let t = this.rules.inline.code.exec(e);
963
- if (t) {
964
- let e = t[2].replace(this.rules.other.newLineCharGlobal, " "), n = this.rules.other.nonSpaceChar.test(e), r = this.rules.other.startingSpaceChar.test(e) && this.rules.other.endingSpaceChar.test(e);
965
- return n && r && (e = e.substring(1, e.length - 1)), {
966
- type: "codespan",
967
- raw: t[0],
968
- text: e
969
- };
970
- }
971
- }
972
- br(e) {
973
- let t = this.rules.inline.br.exec(e);
974
- if (t) return {
975
- type: "br",
976
- raw: t[0]
977
- };
978
- }
979
- del(e) {
980
- let t = this.rules.inline.del.exec(e);
981
- if (t) return {
982
- type: "del",
983
- raw: t[0],
984
- text: t[2],
985
- tokens: this.lexer.inlineTokens(t[2])
986
- };
987
- }
988
- autolink(e) {
989
- let t = this.rules.inline.autolink.exec(e);
990
- if (t) {
991
- let e, n;
992
- return t[2] === "@" ? (e = t[1], n = "mailto:" + e) : (e = t[1], n = e), {
993
- type: "link",
994
- raw: t[0],
995
- text: e,
996
- href: n,
997
- tokens: [{
998
- type: "text",
999
- raw: e,
1000
- text: e
1001
- }]
1002
- };
1003
- }
1004
- }
1005
- url(e) {
1006
- let t;
1007
- if (t = this.rules.inline.url.exec(e)) {
1008
- let e, n;
1009
- if (t[2] === "@") e = t[0], n = "mailto:" + e;
1010
- else {
1011
- let r;
1012
- do
1013
- r = t[0], t[0] = this.rules.inline._backpedal.exec(t[0])?.[0] ?? "";
1014
- while (r !== t[0]);
1015
- e = t[0], n = t[1] === "www." ? "http://" + t[0] : t[0];
1016
- }
1017
- return {
1018
- type: "link",
1019
- raw: t[0],
1020
- text: e,
1021
- href: n,
1022
- tokens: [{
1023
- type: "text",
1024
- raw: e,
1025
- text: e
1026
- }]
1027
- };
1028
- }
1029
- }
1030
- inlineText(e) {
1031
- let t = this.rules.inline.text.exec(e);
1032
- if (t) {
1033
- let e = this.lexer.state.inRawBlock;
1034
- return {
1035
- type: "text",
1036
- raw: t[0],
1037
- text: t[0],
1038
- escaped: e
1039
- };
1040
- }
1041
- }
1042
- }, q = class e {
1043
- tokens;
1044
- options;
1045
- state;
1046
- tokenizer;
1047
- inlineQueue;
1048
- constructor(e) {
1049
- this.tokens = [], this.tokens.links = /* @__PURE__ */ Object.create(null), this.options = e || P, this.options.tokenizer = this.options.tokenizer || new K(), this.tokenizer = this.options.tokenizer, this.tokenizer.options = this.options, this.tokenizer.lexer = this, this.inlineQueue = [], this.state = {
1050
- inLink: !1,
1051
- inRawBlock: !1,
1052
- top: !0
1053
- };
1054
- let t = {
1055
- other: L,
1056
- block: H.normal,
1057
- inline: U.normal
1058
- };
1059
- this.options.pedantic ? (t.block = H.pedantic, t.inline = U.pedantic) : this.options.gfm && (t.block = H.gfm, t.inline = this.options.breaks ? U.breaks : U.gfm), this.tokenizer.rules = t;
1060
- }
1061
- static get rules() {
1062
- return {
1063
- block: H,
1064
- inline: U
1065
- };
1066
- }
1067
- static lex(t, n) {
1068
- return new e(n).lex(t);
1069
- }
1070
- static lexInline(t, n) {
1071
- return new e(n).inlineTokens(t);
1072
- }
1073
- lex(e) {
1074
- e = e.replace(L.carriageReturn, "\n"), this.blockTokens(e, this.tokens);
1075
- for (let e = 0; e < this.inlineQueue.length; e++) {
1076
- let t = this.inlineQueue[e];
1077
- this.inlineTokens(t.src, t.tokens);
1078
- }
1079
- return this.inlineQueue = [], this.tokens;
1080
- }
1081
- blockTokens(e, t = [], n = !1) {
1082
- for (this.options.pedantic && (e = e.replace(L.tabCharGlobal, " ").replace(L.spaceLine, "")); e;) {
1083
- let r;
1084
- if (this.options.extensions?.block?.some((n) => (r = n.call({ lexer: this }, e, t)) ? (e = e.substring(r.raw.length), t.push(r), !0) : !1)) continue;
1085
- if (r = this.tokenizer.space(e)) {
1086
- e = e.substring(r.raw.length);
1087
- let n = t.at(-1);
1088
- r.raw.length === 1 && n !== void 0 ? n.raw += "\n" : t.push(r);
1089
- continue;
1090
- }
1091
- if (r = this.tokenizer.code(e)) {
1092
- e = e.substring(r.raw.length);
1093
- let n = t.at(-1);
1094
- n?.type === "paragraph" || n?.type === "text" ? (n.raw += "\n" + r.raw, n.text += "\n" + r.text, this.inlineQueue.at(-1).src = n.text) : t.push(r);
1095
- continue;
1096
- }
1097
- if (r = this.tokenizer.fences(e)) {
1098
- e = e.substring(r.raw.length), t.push(r);
1099
- continue;
1100
- }
1101
- if (r = this.tokenizer.heading(e)) {
1102
- e = e.substring(r.raw.length), t.push(r);
1103
- continue;
1104
- }
1105
- if (r = this.tokenizer.hr(e)) {
1106
- e = e.substring(r.raw.length), t.push(r);
1107
- continue;
1108
- }
1109
- if (r = this.tokenizer.blockquote(e)) {
1110
- e = e.substring(r.raw.length), t.push(r);
1111
- continue;
1112
- }
1113
- if (r = this.tokenizer.list(e)) {
1114
- e = e.substring(r.raw.length), t.push(r);
1115
- continue;
1116
- }
1117
- if (r = this.tokenizer.html(e)) {
1118
- e = e.substring(r.raw.length), t.push(r);
1119
- continue;
1120
- }
1121
- if (r = this.tokenizer.def(e)) {
1122
- e = e.substring(r.raw.length);
1123
- let n = t.at(-1);
1124
- n?.type === "paragraph" || n?.type === "text" ? (n.raw += "\n" + r.raw, n.text += "\n" + r.raw, this.inlineQueue.at(-1).src = n.text) : this.tokens.links[r.tag] || (this.tokens.links[r.tag] = {
1125
- href: r.href,
1126
- title: r.title
1127
- });
1128
- continue;
1129
- }
1130
- if (r = this.tokenizer.table(e)) {
1131
- e = e.substring(r.raw.length), t.push(r);
1132
- continue;
1133
- }
1134
- if (r = this.tokenizer.lheading(e)) {
1135
- e = e.substring(r.raw.length), t.push(r);
1136
- continue;
1137
- }
1138
- let i = e;
1139
- if (this.options.extensions?.startBlock) {
1140
- let t = Infinity, n = e.slice(1), r;
1141
- this.options.extensions.startBlock.forEach((e) => {
1142
- r = e.call({ lexer: this }, n), typeof r == "number" && r >= 0 && (t = Math.min(t, r));
1143
- }), t < Infinity && t >= 0 && (i = e.substring(0, t + 1));
1144
- }
1145
- if (this.state.top && (r = this.tokenizer.paragraph(i))) {
1146
- let a = t.at(-1);
1147
- n && a?.type === "paragraph" ? (a.raw += "\n" + r.raw, a.text += "\n" + r.text, this.inlineQueue.pop(), this.inlineQueue.at(-1).src = a.text) : t.push(r), n = i.length !== e.length, e = e.substring(r.raw.length);
1148
- continue;
1149
- }
1150
- if (r = this.tokenizer.text(e)) {
1151
- e = e.substring(r.raw.length);
1152
- let n = t.at(-1);
1153
- n?.type === "text" ? (n.raw += "\n" + r.raw, n.text += "\n" + r.text, this.inlineQueue.pop(), this.inlineQueue.at(-1).src = n.text) : t.push(r);
1154
- continue;
1155
- }
1156
- if (e) {
1157
- let t = "Infinite loop on byte: " + e.charCodeAt(0);
1158
- if (this.options.silent) {
1159
- console.error(t);
1160
- break;
1161
- }
1162
- throw Error(t);
1163
- }
1164
- }
1165
- return this.state.top = !0, t;
1166
- }
1167
- inline(e, t = []) {
1168
- return this.inlineQueue.push({
1169
- src: e,
1170
- tokens: t
1171
- }), t;
1172
- }
1173
- inlineTokens(e, t = []) {
1174
- let n = e, r = null;
1175
- if (this.tokens.links) {
1176
- let e = Object.keys(this.tokens.links);
1177
- if (e.length > 0) for (; (r = this.tokenizer.rules.inline.reflinkSearch.exec(n)) != null;) e.includes(r[0].slice(r[0].lastIndexOf("[") + 1, -1)) && (n = n.slice(0, r.index) + "[" + "a".repeat(r[0].length - 2) + "]" + n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex));
1178
- }
1179
- for (; (r = this.tokenizer.rules.inline.anyPunctuation.exec(n)) != null;) n = n.slice(0, r.index) + "++" + n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);
1180
- for (; (r = this.tokenizer.rules.inline.blockSkip.exec(n)) != null;) n = n.slice(0, r.index) + "[" + "a".repeat(r[0].length - 2) + "]" + n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);
1181
- let i = !1, a = "";
1182
- for (; e;) {
1183
- i || (a = ""), i = !1;
1184
- let r;
1185
- if (this.options.extensions?.inline?.some((n) => (r = n.call({ lexer: this }, e, t)) ? (e = e.substring(r.raw.length), t.push(r), !0) : !1)) continue;
1186
- if (r = this.tokenizer.escape(e)) {
1187
- e = e.substring(r.raw.length), t.push(r);
1188
- continue;
1189
- }
1190
- if (r = this.tokenizer.tag(e)) {
1191
- e = e.substring(r.raw.length), t.push(r);
1192
- continue;
1193
- }
1194
- if (r = this.tokenizer.link(e)) {
1195
- e = e.substring(r.raw.length), t.push(r);
1196
- continue;
1197
- }
1198
- if (r = this.tokenizer.reflink(e, this.tokens.links)) {
1199
- e = e.substring(r.raw.length);
1200
- let n = t.at(-1);
1201
- r.type === "text" && n?.type === "text" ? (n.raw += r.raw, n.text += r.text) : t.push(r);
1202
- continue;
1203
- }
1204
- if (r = this.tokenizer.emStrong(e, n, a)) {
1205
- e = e.substring(r.raw.length), t.push(r);
1206
- continue;
1207
- }
1208
- if (r = this.tokenizer.codespan(e)) {
1209
- e = e.substring(r.raw.length), t.push(r);
1210
- continue;
1211
- }
1212
- if (r = this.tokenizer.br(e)) {
1213
- e = e.substring(r.raw.length), t.push(r);
1214
- continue;
1215
- }
1216
- if (r = this.tokenizer.del(e)) {
1217
- e = e.substring(r.raw.length), t.push(r);
1218
- continue;
1219
- }
1220
- if (r = this.tokenizer.autolink(e)) {
1221
- e = e.substring(r.raw.length), t.push(r);
1222
- continue;
1223
- }
1224
- if (!this.state.inLink && (r = this.tokenizer.url(e))) {
1225
- e = e.substring(r.raw.length), t.push(r);
1226
- continue;
1227
- }
1228
- let o = e;
1229
- if (this.options.extensions?.startInline) {
1230
- let t = Infinity, n = e.slice(1), r;
1231
- this.options.extensions.startInline.forEach((e) => {
1232
- r = e.call({ lexer: this }, n), typeof r == "number" && r >= 0 && (t = Math.min(t, r));
1233
- }), t < Infinity && t >= 0 && (o = e.substring(0, t + 1));
1234
- }
1235
- if (r = this.tokenizer.inlineText(o)) {
1236
- e = e.substring(r.raw.length), r.raw.slice(-1) !== "_" && (a = r.raw.slice(-1)), i = !0;
1237
- let n = t.at(-1);
1238
- n?.type === "text" ? (n.raw += r.raw, n.text += r.text) : t.push(r);
1239
- continue;
1240
- }
1241
- if (e) {
1242
- let t = "Infinite loop on byte: " + e.charCodeAt(0);
1243
- if (this.options.silent) {
1244
- console.error(t);
1245
- break;
1246
- }
1247
- throw Error(t);
1248
- }
1249
- }
1250
- return t;
1251
- }
1252
- }, J = class {
1253
- options;
1254
- parser;
1255
- constructor(e) {
1256
- this.options = e || P;
1257
- }
1258
- space(e) {
1259
- return "";
1260
- }
1261
- code({ text: e, lang: t, escaped: n }) {
1262
- let r = (t || "").match(L.notSpaceStart)?.[0], i = e.replace(L.endingNewline, "") + "\n";
1263
- return r ? "<pre><code class=\"language-" + W(r) + "\">" + (n ? i : W(i, !0)) + "</code></pre>\n" : "<pre><code>" + (n ? i : W(i, !0)) + "</code></pre>\n";
1264
- }
1265
- blockquote({ tokens: e }) {
1266
- return `<blockquote>
1267
- ${this.parser.parse(e)}</blockquote>
1268
- `;
1269
- }
1270
- html({ text: e }) {
1271
- return e;
1272
- }
1273
- heading({ tokens: e, depth: t }) {
1274
- return `<h${t}>${this.parser.parseInline(e)}</h${t}>
1275
- `;
1276
- }
1277
- hr(e) {
1278
- return "<hr>\n";
1279
- }
1280
- list(e) {
1281
- let t = e.ordered, n = e.start, r = "";
1282
- for (let t = 0; t < e.items.length; t++) {
1283
- let n = e.items[t];
1284
- r += this.listitem(n);
1285
- }
1286
- let i = t ? "ol" : "ul", a = t && n !== 1 ? " start=\"" + n + "\"" : "";
1287
- return "<" + i + a + ">\n" + r + "</" + i + ">\n";
1288
- }
1289
- listitem(e) {
1290
- let t = "";
1291
- if (e.task) {
1292
- let n = this.checkbox({ checked: !!e.checked });
1293
- e.loose ? e.tokens[0]?.type === "paragraph" ? (e.tokens[0].text = n + " " + e.tokens[0].text, e.tokens[0].tokens && e.tokens[0].tokens.length > 0 && e.tokens[0].tokens[0].type === "text" && (e.tokens[0].tokens[0].text = n + " " + W(e.tokens[0].tokens[0].text), e.tokens[0].tokens[0].escaped = !0)) : e.tokens.unshift({
1294
- type: "text",
1295
- raw: n + " ",
1296
- text: n + " ",
1297
- escaped: !0
1298
- }) : t += n + " ";
1299
- }
1300
- return t += this.parser.parse(e.tokens, !!e.loose), `<li>${t}</li>
1301
- `;
1302
- }
1303
- checkbox({ checked: e }) {
1304
- return "<input " + (e ? "checked=\"\" " : "") + "disabled=\"\" type=\"checkbox\">";
1305
- }
1306
- paragraph({ tokens: e }) {
1307
- return `<p>${this.parser.parseInline(e)}</p>
1308
- `;
1309
- }
1310
- table(e) {
1311
- let t = "", n = "";
1312
- for (let t = 0; t < e.header.length; t++) n += this.tablecell(e.header[t]);
1313
- t += this.tablerow({ text: n });
1314
- let r = "";
1315
- for (let t = 0; t < e.rows.length; t++) {
1316
- let i = e.rows[t];
1317
- n = "";
1318
- for (let e = 0; e < i.length; e++) n += this.tablecell(i[e]);
1319
- r += this.tablerow({ text: n });
1320
- }
1321
- return r &&= `<tbody>${r}</tbody>`, "<table>\n<thead>\n" + t + "</thead>\n" + r + "</table>\n";
1322
- }
1323
- tablerow({ text: e }) {
1324
- return `<tr>
1325
- ${e}</tr>
1326
- `;
1327
- }
1328
- tablecell(e) {
1329
- let t = this.parser.parseInline(e.tokens), n = e.header ? "th" : "td";
1330
- return (e.align ? `<${n} align="${e.align}">` : `<${n}>`) + t + `</${n}>
1331
- `;
1332
- }
1333
- strong({ tokens: e }) {
1334
- return `<strong>${this.parser.parseInline(e)}</strong>`;
1335
- }
1336
- em({ tokens: e }) {
1337
- return `<em>${this.parser.parseInline(e)}</em>`;
1338
- }
1339
- codespan({ text: e }) {
1340
- return `<code>${W(e, !0)}</code>`;
1341
- }
1342
- br(e) {
1343
- return "<br>";
1344
- }
1345
- del({ tokens: e }) {
1346
- return `<del>${this.parser.parseInline(e)}</del>`;
1347
- }
1348
- link({ href: e, title: t, tokens: n }) {
1349
- let r = this.parser.parseInline(n), i = It(e);
1350
- if (i === null) return r;
1351
- e = i;
1352
- let a = "<a href=\"" + e + "\"";
1353
- return t && (a += " title=\"" + W(t) + "\""), a += ">" + r + "</a>", a;
1354
- }
1355
- image({ href: e, title: t, text: n, tokens: r }) {
1356
- r && (n = this.parser.parseInline(r, this.parser.textRenderer));
1357
- let i = It(e);
1358
- if (i === null) return W(n);
1359
- e = i;
1360
- let a = `<img src="${e}" alt="${n}"`;
1361
- return t && (a += ` title="${W(t)}"`), a += ">", a;
1362
- }
1363
- text(e) {
1364
- return "tokens" in e && e.tokens ? this.parser.parseInline(e.tokens) : "escaped" in e && e.escaped ? e.text : W(e.text);
1365
- }
1366
- }, Vt = class {
1367
- strong({ text: e }) {
1368
- return e;
1369
- }
1370
- em({ text: e }) {
1371
- return e;
1372
- }
1373
- codespan({ text: e }) {
1374
- return e;
1375
- }
1376
- del({ text: e }) {
1377
- return e;
1378
- }
1379
- html({ text: e }) {
1380
- return e;
1381
- }
1382
- text({ text: e }) {
1383
- return e;
1384
- }
1385
- link({ text: e }) {
1386
- return "" + e;
1387
- }
1388
- image({ text: e }) {
1389
- return "" + e;
1390
- }
1391
- br() {
1392
- return "";
1393
- }
1394
- }, Y = class e {
1395
- options;
1396
- renderer;
1397
- textRenderer;
1398
- constructor(e) {
1399
- this.options = e || P, this.options.renderer = this.options.renderer || new J(), this.renderer = this.options.renderer, this.renderer.options = this.options, this.renderer.parser = this, this.textRenderer = new Vt();
1400
- }
1401
- static parse(t, n) {
1402
- return new e(n).parse(t);
1403
- }
1404
- static parseInline(t, n) {
1405
- return new e(n).parseInline(t);
1406
- }
1407
- parse(e, t = !0) {
1408
- let n = "";
1409
- for (let r = 0; r < e.length; r++) {
1410
- let i = e[r];
1411
- if (this.options.extensions?.renderers?.[i.type]) {
1412
- let e = i, t = this.options.extensions.renderers[e.type].call({ parser: this }, e);
1413
- if (t !== !1 || ![
1414
- "space",
1415
- "hr",
1416
- "heading",
1417
- "code",
1418
- "table",
1419
- "blockquote",
1420
- "list",
1421
- "html",
1422
- "paragraph",
1423
- "text"
1424
- ].includes(e.type)) {
1425
- n += t || "";
1426
- continue;
1427
- }
1428
- }
1429
- let a = i;
1430
- switch (a.type) {
1431
- case "space":
1432
- n += this.renderer.space(a);
1433
- continue;
1434
- case "hr":
1435
- n += this.renderer.hr(a);
1436
- continue;
1437
- case "heading":
1438
- n += this.renderer.heading(a);
1439
- continue;
1440
- case "code":
1441
- n += this.renderer.code(a);
1442
- continue;
1443
- case "table":
1444
- n += this.renderer.table(a);
1445
- continue;
1446
- case "blockquote":
1447
- n += this.renderer.blockquote(a);
1448
- continue;
1449
- case "list":
1450
- n += this.renderer.list(a);
1451
- continue;
1452
- case "html":
1453
- n += this.renderer.html(a);
1454
- continue;
1455
- case "paragraph":
1456
- n += this.renderer.paragraph(a);
1457
- continue;
1458
- case "text": {
1459
- let i = a, o = this.renderer.text(i);
1460
- for (; r + 1 < e.length && e[r + 1].type === "text";) i = e[++r], o += "\n" + this.renderer.text(i);
1461
- n += t ? this.renderer.paragraph({
1462
- type: "paragraph",
1463
- raw: o,
1464
- text: o,
1465
- tokens: [{
1466
- type: "text",
1467
- raw: o,
1468
- text: o,
1469
- escaped: !0
1470
- }]
1471
- }) : o;
1472
- continue;
1473
- }
1474
- default: {
1475
- let e = "Token with \"" + a.type + "\" type was not found.";
1476
- if (this.options.silent) return console.error(e), "";
1477
- throw Error(e);
1478
- }
1479
- }
1480
- }
1481
- return n;
1482
- }
1483
- parseInline(e, t = this.renderer) {
1484
- let n = "";
1485
- for (let r = 0; r < e.length; r++) {
1486
- let i = e[r];
1487
- if (this.options.extensions?.renderers?.[i.type]) {
1488
- let e = this.options.extensions.renderers[i.type].call({ parser: this }, i);
1489
- if (e !== !1 || ![
1490
- "escape",
1491
- "html",
1492
- "link",
1493
- "image",
1494
- "strong",
1495
- "em",
1496
- "codespan",
1497
- "br",
1498
- "del",
1499
- "text"
1500
- ].includes(i.type)) {
1501
- n += e || "";
1502
- continue;
1503
- }
1504
- }
1505
- let a = i;
1506
- switch (a.type) {
1507
- case "escape":
1508
- n += t.text(a);
1509
- break;
1510
- case "html":
1511
- n += t.html(a);
1512
- break;
1513
- case "link":
1514
- n += t.link(a);
1515
- break;
1516
- case "image":
1517
- n += t.image(a);
1518
- break;
1519
- case "strong":
1520
- n += t.strong(a);
1521
- break;
1522
- case "em":
1523
- n += t.em(a);
1524
- break;
1525
- case "codespan":
1526
- n += t.codespan(a);
1527
- break;
1528
- case "br":
1529
- n += t.br(a);
1530
- break;
1531
- case "del":
1532
- n += t.del(a);
1533
- break;
1534
- case "text":
1535
- n += t.text(a);
1536
- break;
1537
- default: {
1538
- let e = "Token with \"" + a.type + "\" type was not found.";
1539
- if (this.options.silent) return console.error(e), "";
1540
- throw Error(e);
1541
- }
1542
- }
1543
- }
1544
- return n;
1545
- }
1546
- }, X = class {
1547
- options;
1548
- block;
1549
- constructor(e) {
1550
- this.options = e || P;
1551
- }
1552
- static passThroughHooks = /* @__PURE__ */ new Set([
1553
- "preprocess",
1554
- "postprocess",
1555
- "processAllTokens"
1556
- ]);
1557
- preprocess(e) {
1558
- return e;
1559
- }
1560
- postprocess(e) {
1561
- return e;
1562
- }
1563
- processAllTokens(e) {
1564
- return e;
1565
- }
1566
- provideLexer() {
1567
- return this.block ? q.lex : q.lexInline;
1568
- }
1569
- provideParser() {
1570
- return this.block ? Y.parse : Y.parseInline;
1571
- }
1572
- }, Z = new class {
1573
- defaults = Le();
1574
- options = this.setOptions;
1575
- parse = this.parseMarkdown(!0);
1576
- parseInline = this.parseMarkdown(!1);
1577
- Parser = Y;
1578
- Renderer = J;
1579
- TextRenderer = Vt;
1580
- Lexer = q;
1581
- Tokenizer = K;
1582
- Hooks = X;
1583
- constructor(...e) {
1584
- this.use(...e);
1585
- }
1586
- walkTokens(e, t) {
1587
- let n = [];
1588
- for (let r of e) switch (n = n.concat(t.call(this, r)), r.type) {
1589
- case "table": {
1590
- let e = r;
1591
- for (let r of e.header) n = n.concat(this.walkTokens(r.tokens, t));
1592
- for (let r of e.rows) for (let e of r) n = n.concat(this.walkTokens(e.tokens, t));
1593
- break;
1594
- }
1595
- case "list": {
1596
- let e = r;
1597
- n = n.concat(this.walkTokens(e.items, t));
1598
- break;
1599
- }
1600
- default: {
1601
- let e = r;
1602
- this.defaults.extensions?.childTokens?.[e.type] ? this.defaults.extensions.childTokens[e.type].forEach((r) => {
1603
- let i = e[r].flat(Infinity);
1604
- n = n.concat(this.walkTokens(i, t));
1605
- }) : e.tokens && (n = n.concat(this.walkTokens(e.tokens, t)));
1606
- }
1607
- }
1608
- return n;
1609
- }
1610
- use(...e) {
1611
- let t = this.defaults.extensions || {
1612
- renderers: {},
1613
- childTokens: {}
1614
- };
1615
- return e.forEach((e) => {
1616
- let n = { ...e };
1617
- if (n.async = this.defaults.async || n.async || !1, e.extensions && (e.extensions.forEach((e) => {
1618
- if (!e.name) throw Error("extension name required");
1619
- if ("renderer" in e) {
1620
- let n = t.renderers[e.name];
1621
- n ? t.renderers[e.name] = function(...t) {
1622
- let r = e.renderer.apply(this, t);
1623
- return r === !1 && (r = n.apply(this, t)), r;
1624
- } : t.renderers[e.name] = e.renderer;
1625
- }
1626
- if ("tokenizer" in e) {
1627
- if (!e.level || e.level !== "block" && e.level !== "inline") throw Error("extension level must be 'block' or 'inline'");
1628
- let n = t[e.level];
1629
- n ? n.unshift(e.tokenizer) : t[e.level] = [e.tokenizer], e.start && (e.level === "block" ? t.startBlock ? t.startBlock.push(e.start) : t.startBlock = [e.start] : e.level === "inline" && (t.startInline ? t.startInline.push(e.start) : t.startInline = [e.start]));
1630
- }
1631
- "childTokens" in e && e.childTokens && (t.childTokens[e.name] = e.childTokens);
1632
- }), n.extensions = t), e.renderer) {
1633
- let t = this.defaults.renderer || new J(this.defaults);
1634
- for (let n in e.renderer) {
1635
- if (!(n in t)) throw Error(`renderer '${n}' does not exist`);
1636
- if (["options", "parser"].includes(n)) continue;
1637
- let r = n, i = e.renderer[r], a = t[r];
1638
- t[r] = (...e) => {
1639
- let n = i.apply(t, e);
1640
- return n === !1 && (n = a.apply(t, e)), n || "";
1641
- };
1642
- }
1643
- n.renderer = t;
1644
- }
1645
- if (e.tokenizer) {
1646
- let t = this.defaults.tokenizer || new K(this.defaults);
1647
- for (let n in e.tokenizer) {
1648
- if (!(n in t)) throw Error(`tokenizer '${n}' does not exist`);
1649
- if ([
1650
- "options",
1651
- "rules",
1652
- "lexer"
1653
- ].includes(n)) continue;
1654
- let r = n, i = e.tokenizer[r], a = t[r];
1655
- t[r] = (...e) => {
1656
- let n = i.apply(t, e);
1657
- return n === !1 && (n = a.apply(t, e)), n;
1658
- };
1659
- }
1660
- n.tokenizer = t;
1661
- }
1662
- if (e.hooks) {
1663
- let t = this.defaults.hooks || new X();
1664
- for (let n in e.hooks) {
1665
- if (!(n in t)) throw Error(`hook '${n}' does not exist`);
1666
- if (["options", "block"].includes(n)) continue;
1667
- let r = n, i = e.hooks[r], a = t[r];
1668
- t[r] = X.passThroughHooks.has(n) ? (e) => {
1669
- if (this.defaults.async) return Promise.resolve(i.call(t, e)).then((e) => a.call(t, e));
1670
- let n = i.call(t, e);
1671
- return a.call(t, n);
1672
- } : (...e) => {
1673
- let n = i.apply(t, e);
1674
- return n === !1 && (n = a.apply(t, e)), n;
1675
- };
1676
- }
1677
- n.hooks = t;
1678
- }
1679
- if (e.walkTokens) {
1680
- let t = this.defaults.walkTokens, r = e.walkTokens;
1681
- n.walkTokens = function(e) {
1682
- let n = [];
1683
- return n.push(r.call(this, e)), t && (n = n.concat(t.call(this, e))), n;
1684
- };
1685
- }
1686
- this.defaults = {
1687
- ...this.defaults,
1688
- ...n
1689
- };
1690
- }), this;
1691
- }
1692
- setOptions(e) {
1693
- return this.defaults = {
1694
- ...this.defaults,
1695
- ...e
1696
- }, this;
1697
- }
1698
- lexer(e, t) {
1699
- return q.lex(e, t ?? this.defaults);
1700
- }
1701
- parser(e, t) {
1702
- return Y.parse(e, t ?? this.defaults);
1703
- }
1704
- parseMarkdown(e) {
1705
- return (t, n) => {
1706
- let r = { ...n }, i = {
1707
- ...this.defaults,
1708
- ...r
1709
- }, a = this.onError(!!i.silent, !!i.async);
1710
- if (this.defaults.async === !0 && r.async === !1) return a(/* @__PURE__ */ Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));
1711
- if (t == null) return a(/* @__PURE__ */ Error("marked(): input parameter is undefined or null"));
1712
- if (typeof t != "string") return a(/* @__PURE__ */ Error("marked(): input parameter is of type " + Object.prototype.toString.call(t) + ", string expected"));
1713
- i.hooks && (i.hooks.options = i, i.hooks.block = e);
1714
- let o = i.hooks ? i.hooks.provideLexer() : e ? q.lex : q.lexInline, s = i.hooks ? i.hooks.provideParser() : e ? Y.parse : Y.parseInline;
1715
- if (i.async) return Promise.resolve(i.hooks ? i.hooks.preprocess(t) : t).then((e) => o(e, i)).then((e) => i.hooks ? i.hooks.processAllTokens(e) : e).then((e) => i.walkTokens ? Promise.all(this.walkTokens(e, i.walkTokens)).then(() => e) : e).then((e) => s(e, i)).then((e) => i.hooks ? i.hooks.postprocess(e) : e).catch(a);
1716
- try {
1717
- i.hooks && (t = i.hooks.preprocess(t));
1718
- let e = o(t, i);
1719
- i.hooks && (e = i.hooks.processAllTokens(e)), i.walkTokens && this.walkTokens(e, i.walkTokens);
1720
- let n = s(e, i);
1721
- return i.hooks && (n = i.hooks.postprocess(n)), n;
1722
- } catch (e) {
1723
- return a(e);
1724
- }
1725
- };
1726
- }
1727
- onError(e, t) {
1728
- return (n) => {
1729
- if (n.message += "\nPlease report this to https://github.com/markedjs/marked.", e) {
1730
- let e = "<p>An error occurred:</p><pre>" + W(n.message + "", !0) + "</pre>";
1731
- return t ? Promise.resolve(e) : e;
1732
- }
1733
- if (t) return Promise.reject(n);
1734
- throw n;
1735
- };
1736
- }
1737
- }();
1738
- function Q(e, t) {
1739
- return Z.parse(e, t);
1740
- }
1741
- Q.options = Q.setOptions = function(e) {
1742
- return Z.setOptions(e), Q.defaults = Z.defaults, Re(Q.defaults), Q;
1743
- }, Q.getDefaults = Le, Q.defaults = P, Q.use = function(...e) {
1744
- return Z.use(...e), Q.defaults = Z.defaults, Re(Q.defaults), Q;
1745
- }, Q.walkTokens = function(e, t) {
1746
- return Z.walkTokens(e, t);
1747
- }, Q.parseInline = Z.parseInline, Q.Parser = Y, Q.parser = Y.parse, Q.Renderer = J, Q.TextRenderer = Vt, Q.Lexer = q, Q.lexer = q.lex, Q.Tokenizer = K, Q.Hooks = X, Q.parse = Q, Q.options, Q.setOptions, Q.use, Q.walkTokens, Q.parseInline, Y.parse, q.lex;
1748
- //#endregion
1749
- //#region src/components/ui/toast.tsx
1750
- var $ = a(), Ht = ue, Ut = y.forwardRef((e, n) => {
1751
- let r = (0, $.c)(9), i, a;
1752
- r[0] === e ? (i = r[1], a = r[2]) : ({className: i, ...a} = e, r[0] = e, r[1] = i, r[2] = a);
1753
- let o;
1754
- r[3] === i ? o = r[4] : (o = t("fixed top-0 z-100 flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:w-fit md:max-w-[420px]", "print:hidden", i), r[3] = i, r[4] = o);
1755
- let s;
1756
- return r[5] !== a || r[6] !== n || r[7] !== o ? (s = /* @__PURE__ */ (0, b.jsx)(A, {
1757
- ref: n,
1758
- className: o,
1759
- ...a
1760
- }), r[5] = a, r[6] = n, r[7] = o, r[8] = s) : s = r[8], s;
1761
- });
1762
- Ut.displayName = A.displayName;
1763
- var Wt = {
1764
- default: "bg-background border forced-colors:border-[CanvasText] forced-colors:bg-[Canvas] forced-colors:text-[CanvasText]",
1765
- danger: "group destructive text-error border-destructive bg-(--red-1) shadow-md-solid shadow-error forced-colors:border-[CanvasText] forced-colors:bg-[Canvas] forced-colors:text-[CanvasText]"
1766
- }, Gt = r("data-[swipe=move]:transition-none group relative pointer-events-auto flex w-full items-start justify-between gap-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=move]:translate-x-(--radix-toast-swipe-move-x) data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-(--radix-toast-swipe-end-x) data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=open]:slide-in-from-top-full sm:data-[state=open]:slide-in-from-bottom-full data-[state=closed]:slide-out-to-right-full forced-color-adjust-none", {
1767
- variants: { variant: Wt },
1768
- defaultVariants: { variant: "default" }
1769
- });
1770
- function Kt(e) {
1771
- return typeof e == "string" && e in Wt;
1772
- }
1773
- var qt = y.forwardRef((e, n) => {
1774
- let r = (0, $.c)(11), i, a, o;
1775
- r[0] === e ? (i = r[1], a = r[2], o = r[3]) : ({className: i, variant: o, ...a} = e, r[0] = e, r[1] = i, r[2] = a, r[3] = o);
1776
- let s = Kt(o) ? o : "default", c;
1777
- r[4] !== i || r[5] !== s ? (c = t(Gt({ variant: s }), "print:hidden", i), r[4] = i, r[5] = s, r[6] = c) : c = r[6];
1778
- let l;
1779
- return r[7] !== a || r[8] !== n || r[9] !== c ? (l = /* @__PURE__ */ (0, b.jsx)(be, {
1780
- ref: n,
1781
- className: c,
1782
- ...a
1783
- }), r[7] = a, r[8] = n, r[9] = c, r[10] = l) : l = r[10], l;
1784
- });
1785
- qt.displayName = be.displayName;
1786
- var Jt = y.forwardRef((e, n) => {
1787
- let r = (0, $.c)(9), i, a;
1788
- r[0] === e ? (i = r[1], a = r[2]) : ({className: i, ...a} = e, r[0] = e, r[1] = i, r[2] = a);
1789
- let o;
1790
- r[3] === i ? o = r[4] : (o = t("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors hover:bg-secondary focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-destructive/30 hover:group-[.destructive]:border-destructive/30 hover:group-[.destructive]:bg-destructive hover:group-[.destructive]:text-destructive-foreground focus-visible:group-[.destructive]:ring-destructive", "forced-color-adjust-none forced-colors:border-[ButtonText] forced-colors:bg-[ButtonFace] forced-colors:text-[ButtonText] forced-colors:hover:bg-[Highlight] forced-colors:hover:text-[HighlightText] forced-colors:disabled:border-[GrayText] forced-colors:disabled:text-[GrayText]", i), r[3] = i, r[4] = o);
1791
- let s;
1792
- return r[5] !== a || r[6] !== n || r[7] !== o ? (s = /* @__PURE__ */ (0, b.jsx)(Oe, {
1793
- ref: n,
1794
- className: o,
1795
- ...a
1796
- }), r[5] = a, r[6] = n, r[7] = o, r[8] = s) : s = r[8], s;
1797
- });
1798
- Jt.displayName = Oe.displayName;
1799
- var Yt = y.forwardRef((e, n) => {
1800
- let r = (0, $.c)(10), i, a;
1801
- r[0] === e ? (i = r[1], a = r[2]) : ({className: i, ...a} = e, r[0] = e, r[1] = i, r[2] = a);
1802
- let o;
1803
- r[3] === i ? o = r[4] : (o = t("absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus-visible:outline-hidden focus-visible:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 hover:group-[.destructive]:text-red-500 focus-visible:group-[.destructive]:ring-red-400 focus-visible:group-[.destructive]:ring-offset-red-600", "forced-colors:text-[CanvasText] forced-colors:hover:text-[CanvasText] forced-colors:group-[.destructive]:text-[CanvasText] forced-colors:hover:group-[.destructive]:text-[CanvasText]", i), r[3] = i, r[4] = o);
1804
- let c;
1805
- r[5] === Symbol.for("react.memo_cache_sentinel") ? (c = /* @__PURE__ */ (0, b.jsx)(s, { className: "h-4 w-4" }), r[5] = c) : c = r[5];
1806
- let l;
1807
- return r[6] !== a || r[7] !== n || r[8] !== o ? (l = /* @__PURE__ */ (0, b.jsx)(Ae, {
1808
- ref: n,
1809
- className: o,
1810
- "toast-close": "",
1811
- ...a,
1812
- children: c
1813
- }), r[6] = a, r[7] = n, r[8] = o, r[9] = l) : l = r[9], l;
1814
- });
1815
- Yt.displayName = Ae.displayName;
1816
- var Xt = y.forwardRef((e, n) => {
1817
- let r = (0, $.c)(9), i, a;
1818
- r[0] === e ? (i = r[1], a = r[2]) : ({className: i, ...a} = e, r[0] = e, r[1] = i, r[2] = a);
1819
- let o;
1820
- r[3] === i ? o = r[4] : (o = t("text-sm font-semibold", i), r[3] = i, r[4] = o);
1821
- let s;
1822
- return r[5] !== a || r[6] !== n || r[7] !== o ? (s = /* @__PURE__ */ (0, b.jsx)(Te, {
1823
- ref: n,
1824
- className: o,
1825
- ...a
1826
- }), r[5] = a, r[6] = n, r[7] = o, r[8] = s) : s = r[8], s;
1827
- });
1828
- Xt.displayName = Te.displayName;
1829
- var Zt = y.forwardRef((e, n) => {
1830
- let r = (0, $.c)(13), i, a, o;
1831
- r[0] === e ? (i = r[1], a = r[2], o = r[3]) : ({className: i, onPointerDown: a, ...o} = e, r[0] = e, r[1] = i, r[2] = a, r[3] = o);
1832
- let s;
1833
- r[4] === i ? s = r[5] : (s = t("max-h-48 overflow-auto text-sm opacity-90 whitespace-pre-wrap wrap-break-word select-text cursor-text", i), r[4] = i, r[5] = s);
1834
- let c;
1835
- r[6] === a ? c = r[7] : (c = (e) => {
1836
- e.stopPropagation(), a?.(e);
1837
- }, r[6] = a, r[7] = c);
1838
- let l;
1839
- return r[8] !== o || r[9] !== n || r[10] !== s || r[11] !== c ? (l = /* @__PURE__ */ (0, b.jsx)(Ee, {
1840
- ref: n,
1841
- className: s,
1842
- onPointerDown: c,
1843
- ...o
1844
- }), r[8] = o, r[9] = n, r[10] = s, r[11] = c, r[12] = l) : l = r[12], l;
1845
- });
1846
- Zt.displayName = Ee.displayName;
1847
- //#endregion
1848
- export { Ht as a, Q as c, Zt as i, Jt as n, Xt as o, Yt as r, Ut as s, qt as t };